a
    DgG                     @   sX   d dl mZ d dlmZ d dlmZmZ d dlmZm	Z	m
Z
 dd ZG dd deZd	S )
    )apps)BaseCommand)	dateparsetimezone)DraftStateMixinPageRevisionc                 C   s6   | j d}|sdS t|}|t k r.dS dS d S )N	expire_atFT)contentgetr   Zparse_datetimer   now)rZ
expiry_strr	    r   l/var/www/lab.imftr.de/x/nb_venv/lib/python3.9/site-packages/wagtail/management/commands/publish_scheduled.pyrevision_date_expired   s    
r   c                   @   s   e Zd Zdd Zdd ZdS )Commandc                 C   s   |j dddddd d S )Nz--dryrun
store_truedryrunFz!Dry run -- don't change anything.)actiondestdefaulthelp)add_argument)selfparserr   r   r   add_arguments   s    zCommand.add_argumentsc                 O   s&  d}|d r| j d d}tg}|dd t D 7 }g }|D ]$}||jjdt d	dg7 }q@|r,| j d	 |r| j d
 | j d | j d |D ]t}|j
tu r|D ],}| j d|jd|jj|j|j qq|D ],}| j d|jd|j
jdt| qqn| j d n*|D ]$}t|D ]}|jddd q<q0tjjt d	d}	|r
| j d	 |	r| j d | j d | j d |	D ]J}
|
j }|
j}| j d|
jd|j|dd|d|
j qn| j d n|	D ]}
|
jdd qd S )NFr   zWill do a dry run.Tc                 S   s$   g | ]}t |trt |ts|qS r   )
issubclassr   r   ).0modelr   r   r   
<listcomp>$   s   z"Command.handle.<locals>.<listcomp>)ZliveZexpire_at__ltr	   z"
---------------------------------z"Expired objects to be deactivated:z"Expiry datetime		Model		Slug		Namez"---------------		-----		----		----z{}	{}	{}	{}z%Y-%m-%d %H:%Mz{}	{}	{}		{} z+No expired objects to be deactivated found.zwagtail.unpublish.scheduled)Zset_expired
log_action)Zapproved_go_live_at__ltapproved_go_live_atzRevisions to be published:z"Go live datetime	Model		Slug		Namez"----------------	-----		----		----slugtitlezNo objects to go live.zwagtail.publish.scheduled)r!   )stdoutwriter   r   Z
get_modelsZobjectsfilterr   r   Zorder_byr   formatr	   strftimeZspecific_class__name__r#   r$   strlistZ	unpublishr   content_typeZmodel_classr
   r"   r   Z
object_strpublish)r   argsoptionsr   modelsZexpired_objectsr   ZquerysetobjZrevs_for_publishingrpZrev_datar   r   r   handle   s    

	

	



	zCommand.handleN)r*   
__module____qualname__r   r4   r   r   r   r   r      s   	r   N)Zdjango.appsr   Zdjango.core.management.baser   Zdjango.utilsr   r   Zwagtail.modelsr   r   r   r   r   r   r   r   r   <module>   s
   