
    vg              
           d dl mZ d dlmZ d dlmZ d dlmZ d dl	m
Z
 d dlmZ d dlmZ d dlmZ g Zd	 ed
      fd ed      fd ed      fd ed      fd ed      fd ed      fd ed      fgZ G d de      Zy)    )models)reverse)gettext_lazy)eval_validate)HorillaMailTemplate)Employee)HorillaModelrender_templateequalz
Equal (==)notequalzNot Equal (!=)ltzLess Than (<)gtzGreater Than (>)lezLess Than or Equal To (<=)gezGreater Than or Equal To (>=)	icontainsContainsc                       e Zd ZdZg dZ ej                  dd      Z ej                  dd      Z ej                  d	e	d
      Z
 ej                  d      Z ej                  d ed            Z ej                  dd      Z ej                  de      Z ej"                  eej&                        Z ej*                  ed ed            Z ej*                  edd      Z ej                  dd      Z ej                  dd      Z ej                         Z fdZdefdZd Zd Z d Z!d  Z"d! Z#d" Z$d# Z%d$ Z& xZ'S )%MailAutomationz
    MailAutoMation
    ))	on_createz	On Create)	on_updatez	On Update)	on_deletez	On Delete   T)
max_lengthunique2   F)r   editabled   )r   choicesnullzMail to)verbose_name   zcFill mail template details(reciever/instance, `self` will be the person who trigger the automation))r   	help_text )defaultr   
   )r   r   )r   zAlso Send to)blankr!   template_attachment)related_namer'   )r    r   c                     | j                   s/| j                  j                  dd      j                         | _        t        |   |i |S )N _)pktitlereplacelowermethod_titlesupersave)selfargskwargs	__class__s      ./var/www/horilla/horilla_automations/models.pyr3   zMailAutomation.save@   s@    ww $

 2 23 < B B DDw|T,V,,    returnc                     | j                   S )Nr.   r4   s    r8   __str__zMailAutomation.__str__E   s    zzr9   c                 &    d| j                    d}|S )zV
        Method will retun the api to the avatar or path to the profile image
        z!https://ui-avatars.com/api/?name=z&background=randomr<   )r4   urls     r8   
get_avatarzMailAutomation.get_avatarH   s     2$**=OP
r9   c                 0   t        | j                        }g }|D ]l  }|j                  d      }d}|D ]<  }|j                  dd      j                  dd      }|j	                         }|| dz   }> |dd }|j                  |       n t        d	| |d
      S )zS
        method that returns the display value for `mail_to`
        field
        __r$   _idr,   r+   z >Nz horilla_automations/mail_to.html)instancemappings)r   mail_tosplitr/   
capitalizeappendr   )r4   rH   rG   mappingdisplayrI   s         r8   get_mail_to_displayz"MailAutomation.get_mail_to_displayP   s    
  - 	%GmmD)GG  1eR088cB((*!ugRL01 crlGOOG$	% .Tx0X
 	
r9   c                 R    | j                   j                         }t        dd|i      S )Nz horilla_automations/mail_cc.html	employees)also_sent_toallr   )r4   rP   s     r8   get_mail_cc_displayz"MailAutomation.get_mail_cc_displayd   s-    %%))+	.i0H
 	
r9   c                 4    t        dd| j                  i      S )Nzautomation-detailed-viewr-   r6   r   r-   r=   s    r8   detailed_urlzMailAutomation.detailed_urlj   s    14/JJr9   c                     t        dd| i      S )Nz#horilla_automations/conditions.htmlrF   r
   r=   s    r8   
conditionszMailAutomation.conditionsm   s    1J3E
 	
r9   c                 4    t        dd| j                  i      S )Nzdelete-automationr-   rU   rV   r=   s    r8   
delete_urlzMailAutomation.delete_urlr   s    *D$''?CCr9   c                 4    t        dd| j                  i      S )z
        Edit url
        zupdate-automationr-   rU   rV   r=   s    r8   edit_urlzMailAutomation.edit_urlu   s     *D$''?CCr9   c                 "    | j                         S )r$   )get_trigger_displayr=   s    r8   trigger_displayzMailAutomation.trigger_display{   s    ''))r9   )(__name__
__module____qualname____doc__r   r   	CharFieldr.   r1   MODEL_CHOICESmodel	TextFieldrH   _transmail_detailsmail_detail_choicetrigger
ForeignKeyr   CASCADEmail_templateManyToManyFieldr   rQ   template_attachmentscondition_htmlcondition_querystring	conditionr3   strr>   rA   rN   rS   rW   rY   r[   r]   r`   __classcell__)r7   s   @r8   r   r      s|   G
 FD9E#6##rEBLF]OEfI6G#6##q
L *))"uEf"g>G &F%%&9V^^TM)6))N+L
 2611*
 &V%%4%@N,F,,$G   "I-
 
(
K

DD*r9   r   N)	django.dbr   django.urlsr   django.utils.translationr   ri   base.methodsr   base.modelsr   employee.modelsr   horilla.modelsr	   horilla_views.cbv_methodsr   rf   
CONDITIONSr    r9   r8   <module>r      s      ; & + $ ' 5 f\"#()*	6/"#	6$%&	6./0	6123&$%
e*\ e*r9   