
    vg                         d Z ddlZddlmZmZ ddlmZ ddlmZ ddl	m
Z
 d Zd Z ed	 d
D              s@ e       Zej                  edd       ej                  edd       ej!                          yy)z?
scheduler.py

This module is used to register scheduled tasks
    N)date	timedelta)BackgroundScheduler)reverse)notifyc                     ddl m}  ddlm} t	        j
                         }|j                  j                         }| j                  j                  d      j                         }|D ]  }|j                  s|j                  }|t        |j                        z
  }||k(  s;t        j                  ||j                  j                   d|j"                   d|j                   d	d
|j"                   d|j                   dd|j"                   d|j                   dd|j"                   d|j                   dd|j"                   d|j                   dt%        d      dd
        y)zV
    Finds all Expiring Assets and send a notification on the notify_before date.
    r   User)AssetHorilla BotusernamedayszThe Asset '  ' expires in z daysu%   تنتهي صلاحية الأصل ' u    ' خلال u%                       من الأيامz
Das Asset u    läuft in z! Tagen                        ab.z
El activo z caduca en u    días.zL'actif z expire dans z jours.asset-category-viewSysteminformation		recipientverbverb_arverb_deverb_esverb_frredirectlabeliconN)django.contrib.auth.modelsr
   asset.modelsr   r   todayobjectsallfilterfirstexpiry_dater   notify_beforer   sendowneremployee_user_id
asset_namer   )r
   r   r!   assetsbotassetr&   notify_dates           #/var/www/horilla/asset/scheduler.pynotify_expiring_assetsr1      sc    0"JJLE]] F
,,

}

5
;
;
=C ++K%	u7J7J(KKKe##kk::'(8(8'9H[H[G\\abCEDTDTCUUabgbubuav w& '()9)9(:+eFYFYEZ [ ()9)9(:+eFYFYEZZab&u'7'7&8eFYFYEZZab$%:;"&    c                     ddl m}  ddlm} t	        j
                         }|j                  j                         }| j                  j                  d      j                         }|D ]  }|j                  s|j                  }|t        |j                        z
  }||k(  rt        j                  ||j                  j                   d|j"                   d|j                   d	d
|j"                   d|j                   dd|j"                   d|j                   dd|j"                   d|j                   dd|j"                   d|j                   dt%        d      dd
       ||k\  sd|_         y)zY
    Finds all Expiring Documents and send a notification on the notify_before date.
    r   r	   )Documentr   r   r   zThe document ' r   z                        daysu(   تنتهي صلاحية المستند 'u   ' خلال u                       يومzDas Dokument 'u   ' läuft in z!                        Tagen ab.zEl documento 'z' caduca en u                           díaszLe document 'z' expire dans z                        joursr   r   r   r   FN)r   r
   horilla_documents.modelsr4   r   r!   r"   r#   r$   r%   r&   r   r'   r   r(   employee_idr*   titler   	is_active)r
   r4   r!   	documentsr-   documentr&   r/   s           r0   notify_expiring_documentsr;   1   s~    01JJLE  $$&I
,,

}

5
;
;
=C +"..K%	x7M7M(NNKe#&22CC*8>>*:.I_I_H` a Fx~~FVVabjbxbxay z ,X^^,<LI_I_H` a" #,X^^,<LI_I_H` a +HNN+;>(J`J`Ia b $%:;"&" #%*"1+r2   c              #   @   K   | ]  }|t         j                  v   y w)N)sysargv).0cmds     r0   	<genexpr>rA   W   s        388Os   )makemigrationsmigratecompilemessagesflushshellinterval   )hours)__doc__r=   datetimer   r   !apscheduler.schedulers.backgroundr   django.urlsr   notifications.signalsr   r1   r;   any	scheduleradd_jobstart r2   r0   <module>rT      s     $ A  (B#+L  Q  $%I,jB/1EOOr2   