
    h<                    @   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lmZ d dlmZmZ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mZm Z m!Z! ddl"m#Z#m$Z$m%Z% ddlm&Z&m'Z'm(Z( ddl)m*Z*m+Z+m,Z, g dZ-g dZ.ej^                  Z/e/r$e.ja                  dd       e.ja                  dd        ejb                  e(       G d de             Z2 ejb                  e&       G d de             Z3 ejb                  e'       G d dejh                               Z5y)    )annotations)GrouperModelAdmin)get_model_permission_codename)admin_reverse)forms)adminmessages)models)Http404HttpRequestHttpResponseHttpResponseRedirect)	mark_safe)gettext_lazy)TranslatableAdmin   )AliasCMSConfig)CHANGE_ALIAS_URL_NAMEDELETE_ALIAS_URL_NAMELIST_ALIAS_URL_NAMEUSAGE_ALIAS_URL_NAME)CategoryFilter
SiteFilter
UsedFilter)AliasAliasContentCategory)emit_content_changeemit_content_deleteis_versioning_enabled)
AliasAdminCategoryAdminAliasContentAdmin)content__namecategorystaticusedadmin_list_actions
get_authorget_modified_datec                  *     e Zd ZdgZdgZ fdZ xZS )r"   nametranslations__namec                    |j                   j                   }t        |   ||||       |rNt	        t
        j                  j                  |j                  j                               | j                         y y )N)	alias__insender)_stateaddingsuper
save_modelr   r   admin_managerfilteraliasesallmodelselfrequestobjformchange	__class__s        E/home/dcms/DCMS/lib/python3.12/site-packages/djangocms_alias/admin.pyr6   zCategoryAdmin.save_model5   sc    ZZ&&&7Cv6  **11CKKOO<M1Nzz     )__name__
__module____qualname__list_displaysearch_fieldsr6   __classcell__rB   s   @rC   r"   r"   0   s    8L)*M	 	rD   r"   c                  6    e Zd ZeZdZeeefZ	dZ
dZdgZddgZdZ e ed            Zd fd	Z fd
Z ej*                   ed      dd      dd       Z ej*                   ed      d      dd       ZdddZd fdZd fdZd  fdZd!dZd!dZ xZS )"r!   N)r$   r%   sitecontent__language)static_coder$   r%   rM   languagez<i>Missing language</i>c                R    t         |          | j                  | j                  gz   S )zAdd alias usage list actions)r5   get_actions_list_get_alias_usage_link_get_alias_delete_link)r=   rB   s    rC   rS   zAliasAdmin.get_actions_listQ   s'    w')T-G-GIdId,eeerD   c                l    t         |   |      }|j                  t        j                  d            S )Ncms_plugins)cmsplugins_count)r5   get_querysetannotater
   Count)r=   r>   qsrB   s      rC   rY   zAliasAdmin.get_querysetU   s,    W!'*{{FLL,G{HHrD   UsedTrX   )descriptionbooleanorderingc                X    |j                   r|j                  dk(  ry |j                  dkD  S )Nr   )rO   rX   r=   r?   s     rC   r'   zAliasAdmin.usedZ   s*    ??s33q8##a''rD   Static)r^   r_   c                ,    t        |j                        S N)boolrO   rb   s     rC   r&   zAliasAdmin.static`   s    COO$$rD   c                    |rQ|j                   s/|j                  j                  t        | j                  d            S |j                  j
                  S y)NaddT)	is_in_useuserhas_permr   r;   is_superuser)r=   r>   r?   s      rC   has_delete_permissionz AliasAdmin.has_delete_permissiond   sH     ==||,,1$**eD  <<,,,rD   c                    t         |   ||||       t               s6t        t        j
                  j                  |      | j                         y y )N)aliasr1   )r5   r6   r    r   r   r7   r8   r;   r<   s        rC   r6   zAliasAdmin.save_modelo   sI    7Cv6 %&**111<zz 'rD   c                d    t         |   ||      \  }}}}d|v r|j                  d       ||||fS )Nplaceholder)r5   get_deleted_objectsremove)r=   objsr>   deleted_objectsmodel_countperms_needed	protectedrB   s          rC   rr   zAliasAdmin.get_deleted_objectsz   sL     G'g6	
 L(.\9DDrD   c                    |j                   }t        | 	  ||       t               s6t	        t
        j                  j                  |      | j                         y y )N)alias_idr1   )	pkr5   delete_modelr    r   r   r7   r8   r;   )r=   r>   r?   r{   rB   s       rC   r|   zAliasAdmin.delete_model   sN    VVWc* %&**1121>zz 'rD   c                r    t        t        |j                  g      }| j                  |dt	        d            S )Nargsinfoz
View usage)r   r   r{   admin_action_button_r=   r?   r>   urls       rC   rT   z AliasAdmin._get_alias_usage_link   s.    0x@''VQ|_EErD   c           	         t        t        |j                  g      }| j                  |dt	        d      | j                  ||             S )Nr~   binzDelete Alias)disabled)r   r   r{   r   r   rm   r   s       rC   rU   z!AliasAdmin._get_alias_delete_link   sN    1A''n33GSAA	 ( 
 	
rD   )returnlist)r?   r   r   zbool | None)r?   r   r   rf   re   )r>   r   r?   r   r   rf   )
r>   r   r?   r   r@   z
forms.FormrA   rf   r   None)r>   r   r   tuple)r>   r   r?   r   )r?   r   r>   r   r   str)rE   rF   rG   alias_admin_list_displayrH   list_display_linksr   r   r   list_filterfieldsreadonly_fieldsrI   autocomplete_fieldsextra_grouping_fieldsr   r   EMPTY_CONTENT_VALUErS   rY   r   displayr'   r&   rm   r6   rr   r|   rT   rU   rJ   rK   s   @rC   r!   r!   A   s    +LK
 HF&O$%M%v.)#A&?$@AfI
 U]]qy$AST( U(
 U]]q{D9% :%		
E
F
rD   r!   c                  Z     e Zd ZdZdZdddZ	 	 d		 	 	 	 	 	 	 	 	 d
dZddZd fdZ xZ	S )r#   Nz3admin/djangocms_alias/aliascontent/change_form.htmlc                2    t        t        t                    S ).Needed for the Alias Content Admin breadcrumbs)r   r   r   )r=   r>   extra_contexts      rC   changelist_viewz!AliasContentAdmin.changelist_view   s    ##
 	
rD   c                    | j                   j                  j                  |      j                         }|s
t	               t        t        t        |j                  f      d|j                   z         S )r   )r{   r~   z
?language=)
r;   r7   r8   firstr   r   r   r   rz   rQ   )r=   r>   	object_idform_urlr   r?   s         rC   change_viewzAliasContentAdmin.change_view   sf     jj&&---;AAC)O#/s||oF:VYVbVbUcIdd
 	
rD   c                     y)z(Hides admin class in admin site overviewF )r=   r>   s     rC   has_module_permissionz'AliasContentAdmin.has_module_permission   s     rD   c                4   |j                   j                  j                  |j                        j	                         dk(  rFt        d      j                  |j                        }| j                  ||t        j                         t        | -  ||      S )NrP   r   z[Alias content for language {} deleted. A new empty alias content will be created if needed.)level)r>   r?   )ro   _default_managerr8   rQ   countr   formatmessage_userr	   WARNINGr5   r|   )r=   r>   r?   messagerB   s       rC   r|   zAliasContentAdmin.delete_model   s    99%%,,cll,CIIKqPmfS\\"  gwh6F6FGw# $ 
 	
rD   re   )r>   r   r   dictr   r   ) N)
r>   r   r   intr   r   r   r   r   r   )r>   r   r   rf   )r>   r   r?   r   )
rE   rF   rG   actionschange_form_templater   r   r   r|   rJ   rK   s   @rC   r#   r#      sa     GP
 "

 
 	

 
 




 

rD   r#   N)6
__future__r   cms.admin.utilsr   cms.utils.permissionsr   cms.utils.urlutilsr   djangor   django.contribr   r	   	django.dbr
   django.httpr   r   r   r   django.utils.safestringr   django.utils.translationr   r   parler.adminr   
cms_configr   	constantsr   r   r   r   filtersr   r   r   r   r   r   utilsr   r   r    __all__r   djangocms_versioning_enabledinsertregisterr"   r!   
ModelAdminr#   r   rD   rC   <module>r      s   " - ? ,  *   . 6 * &  < ; 1 1  a -JJ ##B5##B(;< %    [
" [
 [
| +
(( +
 +
rD   