a
    ÆZEg8  ã                   @   s^   d dl Z d dlmZ d dlmZ d dlmZmZ d dlm	Z	m
Z
 e  e¡ZG dd„ deƒZdS )é    N)Úapps)ÚBaseCommand)Úget_jobsÚ
print_jobs)Úsetup_loggerÚsignalcommandc                       sL   e Zd ZdZg d¢Z‡ fdd„Zdd„ Zdd„ Zd	d
„ Ze	dd„ ƒZ
‡  ZS )ÚCommandz Runs scheduled maintenance jobs.)ÚminutelyÚquarter_hourlyÚhourlyÚdailyÚweeklyÚmonthlyÚyearlyc                    sB   t ƒ  |¡ |jdddd | j¡ d� |jdddd	d
dd� d S )NÚwhenú?zoptions: %sú, )ÚnargsÚhelpz--listz-lÚ
store_trueÚ	list_jobsFz$List all jobs with their description)ÚactionÚdestÚdefaultr   )ÚsuperÚadd_argumentsÚadd_argumentÚjoinÚwhen_options)ÚselfÚparser©Ú	__class__© úf/var/www/sistema_ama/venv/lib/python3.9/site-packages/django_extensions/management/commands/runjobs.pyr      s    þþzCommand.add_argumentsc                 C   s   t d| jd | j¡f ƒ d S )Nz%s Please specify: %sr   )Úprintr   r   r   )r   r#   r#   r$   Ú	usage_msg   s    zCommand.usage_msgc              	   C   s‚   |d }t |dd�}t| ¡ ƒD ]\\}}|||f }|dkrLt d|||¡ z|ƒ  ¡  W q  tyz   t d||¡ Y q 0 q d S )NÚ	verbosityT)Úonly_scheduledé   zExecuting %s job: %s (app: %s)z"ERROR OCCURED IN JOB: %s (APP: %s))r   ÚsortedÚkeysÚloggerÚinfoÚexecuteÚ	ExceptionÚ	exception)r   r   Úoptionsr'   ÚjobsÚapp_nameZjob_nameZjobr#   r#   r$   Úrunjobs    s    zCommand.runjobsc              	   C   s`  ddl m} ddlm} |d }|jD ]0}zt|d dddgƒ W q& tyT   Y q&0 q&dd„ t ¡ D ƒD ]ð}|d	kr d
 	|j
 d
¡dd… ¡}td||f ƒ |dkrº|jj||d� qj|dkrÔ|jj||d� qj|dkrî|jj||d� qj|dk�r
|jj||d� qj|dk�r&|jj||d� qj|dk�rB|jj||d� qj|dkrj|jj||d� qjdS )z Run jobs from the signals r   )Úsignals)Úsettingsr'   z.managementÚ c                 s   s   | ]}|j r|j V  qd S )N)Zmodels_module)Ú.0Úappr#   r#   r$   Ú	<genexpr>9   ó    z-Command.runjobs_by_signals.<locals>.<genexpr>r)   Ú.NéÿÿÿÿzSending %s job signal for: %sr	   )Zsenderr9   r
   r   r   r   r   r   )Zdjango_extensions.managementr5   Zdjango.confr6   ZINSTALLED_APPSÚ
__import__ÚImportErrorr   Zget_app_configsr   Ú__name__Úrsplitr%   Zrun_minutely_jobsÚsendZrun_quarter_hourly_jobsZrun_hourly_jobsZrun_daily_jobsZrun_weekly_jobsZrun_monthly_jobsZrun_yearly_jobs)r   r   r1   r5   r6   r'   r3   r9   r#   r#   r$   Úrunjobs_by_signals,   s4    



zCommand.runjobs_by_signalsc                 O   s^   |d }t t| jƒ |d r.t|dddd� n,|| jv rR|  ||¡ |  ||¡ n|  ¡  d S )Nr   r   T)r(   Z	show_whenZshow_appname)r   r,   Ústdoutr   r   r4   rC   r&   )r   Úargsr1   r   r#   r#   r$   ÚhandleL   s    
zCommand.handle)r@   Ú
__module__Ú__qualname__r   r   r   r&   r4   rC   r   rF   Ú__classcell__r#   r#   r!   r$   r      s    r   )ÚloggingZdjango.appsr   Zdjango.core.management.baser   Z!django_extensions.management.jobsr   r   Z"django_extensions.management.utilsr   r   Ú	getLoggerr@   r,   r   r#   r#   r#   r$   Ú<module>   s   
