a
    Dg                     @   s   d dl mZ d dlmZ d dlmZ d dlmZ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 d dlmZmZ dd ZdS )    )settings)PermissionDenied)transaction)get_object_or_404redirect)TemplateResponse)reverse)gettext)hooks)DeletePageAction)messages)get_valid_next_url_from_request)PageReferenceIndexc                    s  t t|dj  | j s"tttdd}t	
  tdD ].}||  }t|drD|  W  d    S qDt| } h}ttddrtdD ]6}| gd	}|rt|tr| D ]}|| qqt|}| jd
kr&d}	| jdr | jd|kr t| d| d d}	|	r&  j}
t | jd}|jdd ttddr   }|D ].}| |v rht|| jd}|jdd qht| tdd   i  tdD ]2}||  }t|dr|  W  d    S q|rt!|W  d    S t!d|
W  d    S W d    n1 s<0    Y  t"# $ } % }t&| d || j't(d jfdd |) |j*|d ttddk|t+ fdd|D t,dd |D dS ) N)idZWAGTAIL_SITE_NAMEwagtailZbefore_delete_pagestatus_codeZWAGTAIL_I18N_ENABLEDFZ-construct_translated_pages_to_cascade_actionsdeletePOSTTZconfirm_site_namezPlease type 'z' to confirm.)user)Zskip_permission_checkszPage '%(page_title)s' deleted.Z
page_titleZafter_delete_pageZwagtailadmin_explorez&wagtailadmin/pages/confirm_delete.htmlzwagtailadmin_pages:usage)argsz?describe_on_delete=1   Z'WAGTAILADMIN_UNSAFE_PAGE_DELETION_LIMIT
   c                    s$   g | ]}|j s|j jkr|jqS  )Zalias_of_idr   .0translationpager   _/var/www/lab.imftr.de/x/nb_venv/lib/python3.9/site-packages/wagtail/admin/views/pages/delete.py
<listcomp>j   s   zdelete.<locals>.<listcomp>c                 S   s    g | ]}|  jd d qS )T)Zalias_of__isnull)Zget_descendantsfiltercountr   r   r   r   r    q   s   )r   descendant_countnextZ
model_optsZ	usage_urlZusage_countis_protectedZconfirm_before_deletewagtail_site_nameZtranslation_countZtranslation_descendant_count)-r   r   ZspecificZpermissions_for_userr   Z
can_deleter   getattrr   r   Zatomicr
   Z	get_hookshasattrr   
isinstancedictvaluesupdatelistmethodr   getr   errorZ
get_parentr   r   executeZget_translationssuccess_Zget_admin_display_titler   r   Zget_references_toZgroup_by_source_objectZget_descendant_countr   Z_metar   r"   r%   lensum)requestZpage_idr&   fnresultZnext_urlZpages_to_deleteZfn_pagesZadditional_pagesZcontinue_deletingZ	parent_idactionZparent_page_translationsZpage_or_aliasusager#   r   r   r   r      s    





8

r   N)Zdjango.confr   Zdjango.core.exceptionsr   Z	django.dbr   Zdjango.shortcutsr   r   Zdjango.template.responser   Zdjango.urlsr   Zdjango.utils.translationr	   r3   r   r
   Zwagtail.actions.delete_pager   Zwagtail.adminr   Zwagtail.admin.utilsr   Zwagtail.modelsr   r   r   r   r   r   r   <module>   s   