
^Q\u                 @   s`   d  d l  m Z d  d l m Z d  d l m Z m Z d  d l m Z Gd d   d e  Z	 d S)    )apps)BaseCommand)get_jobs
print_jobs)signalcommandc                   sy   e  Z d  Z d Z d d d d d d d g Z   f d	 d
   Z d d   Z d d   Z d d   Z e	 d d    Z
   S)Commandz Runs scheduled maintenance jobs.minutelyquarter_hourlyhourlydailyweeklymonthlyyearlyc          	      se   t  t |   j |  | j d d d d d d j |  j  | j d d d	 d
 d d d d d  S)Nwhennargs?helpzoptions: %sz, z--listz-laction
store_truedest	list_jobsz$List all jobs with their description)superr   add_argumentsadd_argumentjoinwhen_options)selfparser)	__class__ ^/var/www/dbchiro/venv/build/django-extensions/django_extensions/management/commands/runjobs.pyr      s    zCommand.add_argumentsc             C   s'   t  d |  j d j |  j  f  d  S)Nz%s Please specify: %sz, )printr   r   r   )r   r   r   r    	usage_msg   s    zCommand.usage_msgc       	      C   s   t  | j d d   } t | d d } x t | j    D] \ } } | | | f } | d k r t d | | | f  n  y |   j   Wq= t k
 r d d  l } t d | j	   | | f  t d  | j
   t d	  Yq= Xq= Wd  S)
N	verbosity   only_scheduledTzExecuting %s job: %s (app: %s)r   z%ERROR OCCURED IN %s JOB: %s (APP: %s)zSTART TRACEBACK:zEND TRACEBACK
)intgetr   sortedkeysr!   execute	Exception	tracebackupper	print_exc)	r   r   optionsr#   jobsapp_nameZjob_nameZjobr,   r   r   r    runjobs   s    

zCommand.runjobsc             C   s  d d l  m } d d l m } t | j d d   } xD | j D]9 } y t | d d d d g  WqB t k
 rz YqB XqB Wxd d	   t	 j
   D D]f} | d k r d
 j | j j d
  d d   } t d | | f  n  | d k r| j j d | d |  q | d k r7| j j d | d |  q | d k r_| j j d | d |  q | d k r| j j d | d |  q | d k r| j j d | d |  q | d k r| j j d | d |  q | d k r | j j d | d |  q q Wd S)z Run jobs from the signals r   )signals)settingsr#   r$   z.management c             s   s!   |  ] } | j  r | j  Vq d  S)N)Zmodels_module).0appr   r   r    	<genexpr>7   s    z-Command.runjobs_by_signals.<locals>.<genexpr>.NzSending %s job signal for: %sr   Zsenderr7   r	   r
   r   r   r   r   )Zdjango_extensions.managementr3   Zdjango.confr4   r&   r'   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   r/   r3   r4   r#   r1   r7   r   r   r    runjobs_by_signals*   s4    	 %zCommand.runjobs_by_signalsc             O   s}   | j  d  } | j  d  r= t | d d d d d d n< | |  j k ro |  j | |  |  j | |  n
 |  j   d  S)Nr   r   r%   TZ	show_whenZshow_appname)r'   r   r   r2   r@   r"   )r   argsr/   r   r   r   r    handleJ   s    zCommand.handle)r=   
__module____qualname__r   r   r   r"   r2   r@   r   rB   r   r   )r   r    r   	   s   	 r   N)
Zdjango.appsr   Zdjango.core.management.baser   Z!django_extensions.management.jobsr   r   Z"django_extensions.management.utilsr   r   r   r   r   r    <module>   s   