Ë
    £2Úi‚.  ã                   ó  — 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lmZ d d	lmZ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"m#Z#  e$edd«      Z% G d„ dejL                  «      Z'y)é    )Úhttp)Úapps)Úsettings)Úadmin)Úhelpers)Úunquote)Úget_permission_codenameÚget_user_model)ÚPermissionDenied)Úget_object_or_404Úrender)Úre_pathÚreverse)Ú	force_str)Ú	mark_safe)Úcapfirst)Úgettexté   )Úget_history_manager_for_modelÚget_history_model_for_modelÚSIMPLE_HISTORY_EDITFc                   ó¼   ‡ — e Zd ZdZdZˆ fd„Zdd„Zd„ Zˆ fd„Zdd„Z	d„ Z
d	„ Zˆ fd
„Zed„ «       Zdd„Zdˆ fd„	Zdˆ fd„	Zdd„Zdd„Zdd„Zdd„Zed„ «       Zˆ xZS )ÚSimpleHistoryAdminz"simple_history/object_history.htmlz'simple_history/object_history_form.htmlc                 óô   •— t         ‰| �  «       }| j                  }| j                  j                  }|j
                  |j                  f}t        d|j                  | j                  «      d|z  ¬«      g}||z   S )z8Returns the additional urls used by the Reversion admin.z^([^/]+)/history/([^/]+)/$z%s_%s_simple_history)Úname)
ÚsuperÚget_urlsÚ
admin_siteÚmodelÚ_metaÚ	app_labelÚ
model_namer   Ú
admin_viewÚhistory_form_view)ÚselfÚurlsr   ÚoptsÚinfoÚhistory_urlsÚ	__class__s         €úK/var/www/html/acx/venv/lib/python3.12/site-packages/simple_history/admin.pyr   zSimpleHistoryAdmin.get_urls   su   ø€ ä‰wÑÓ!ˆØ—_‘_ˆ
Ø�z‰z×ÑˆØ�~‰~˜tŸ™Ð.ˆäØ,Ø×%Ñ% d×&<Ñ&<Ó=Ø+¨dÑ2ôð
ˆð ˜dÑ"Ð"ó    c                 ó‚  — | j                   j                  |_        | j                  }|j                  }|j
                  }|j                  j                  }t        ||j                  j                  «      }t        |«      } |j                  di ||i¤Ž}	t        |j                  j                  t        «      s|	j                  d«      }	t        | dg «      }
	  | j!                  |«      j"                  di ||i¤Ž}| j/                  ||«      st0        ‚|
D ]8  }t        | |d«      }|sŒt3        |«      sŒ|	D ]  }t5        || ||«      «       Œ Œ: | j6                  j8                  j;                  t=        «       «      }dj?                  |j
                  |j                  «      }| jA                  ||«      |	tC        tE        |jF                  «      «      |t        | j                   dd«      ||||
| jI                  ||«      dœ
}|jK                  | j                   jM                  |«      «       |jK                  |xs i «       i } | jN                  || jP                  |fi |¤ŽS # |j$                  $ rN 	 |	j'                  d«      j(                  }n-# |	j                  j$                  $ r t*        j,                  ‚w xY wY �ŒÂw xY w)	z(The 'history' admin view for this model.Úhistory_userÚhistory_list_displayÚhistory_dateNzadmin:{}_{}_changeÚ	root_path)
ÚtitleÚaction_listÚmodule_nameÚobjectr1   r!   r'   Úadmin_user_viewr/   Úrevert_disabled© ))r   r   Úcurrent_appr   r    r!   ÚpkÚattnameÚgetattrÚ simple_history_manager_attributer   ÚfilterÚ
isinstancer.   ÚpropertyÚselect_relatedÚget_querysetÚgetÚDoesNotExistÚlatestÚinstancer   ÚHttp404Ú-has_view_history_or_change_history_permissionr   ÚcallableÚsetattrÚcontent_type_model_clsÚobjectsÚget_for_modelr
   ÚformatÚhistory_view_titler   r   Úverbose_name_pluralr7   ÚupdateÚeach_contextÚrender_history_viewÚobject_history_template)r%   ÚrequestÚ	object_idÚextra_contextr   r'   r!   Úpk_nameÚhistoryr3   r/   ÚobjÚhistory_list_entryÚvalue_for_entryÚ
list_entryÚcontent_typer6   ÚcontextÚextra_kwargss                      r+   Úhistory_viewzSimpleHistoryAdmin.history_view(   sš  € à"Ÿo™o×2Ñ2ˆÔØ—
‘
ˆØ�{‰{ˆØ—N‘Nˆ	Ø—'‘'—/‘/ˆÜ˜% §¡×!MÑ!MÓNˆÜ˜IÓ&ˆ	Ø$�g—n‘nÑ<¨°Ð';Ñ<ˆÜ˜'Ÿ-™-×4Ñ4´hÔ?à%×4Ñ4°^ÓDˆKÜ& tÐ-CÀRÓHÐð	#Ø0�$×#Ñ# GÓ,×0Ñ0ÑH°G¸YÐ3GÑHˆCð ×AÑAÀ'È3ÔOÜ"Ð"ð #7ò 	YÐÜ% dÐ,>ÀÓEˆOÚ¤8¨OÕ#<Ø"-ò Y�JÜ˜JÐ(:¹OÈJÓ<WÕXñYð	Yð ×2Ñ2×:Ñ:×HÑHÜÓó
ˆð /×5Ñ5Ø×"Ñ"Ø×Ñó
ˆð
 ×,Ñ,¨W°cÓ:Ø&Ü#¤I¨d×.FÑ.FÓ$GÓHØÜ  §¡°+¸tÓDØ"ØØ.Ø$8Ø#×3Ñ3°G¸SÓAñ
ˆð 	�‰�t—‘×3Ñ3°GÓ<Ô=Ø�‰�}Ò*¨Ô+ØˆØ'ˆt×'Ñ'Ø�T×1Ñ1°7ñ
Ø>Jñ
ð 	
øðO ×!Ñ!ò 	#ð#Ø!×(Ñ(¨Ó8×AÑA‘øØ×$Ñ$×1Ñ1ò #Ü—l‘lÐ"ð#úò ð	#ús*   Ã#I! É!J>É1JÊJ>Ê*J7Ê7J>Ê=J>c                 óŽ   — | j                  ||«      rt        st        d«      t        |«      z  S t        d«      t        |«      z  S )NzView history: %szChange history: %s)r7   r   Ú_r   ©r%   rU   rZ   s      r+   rO   z%SimpleHistoryAdmin.history_view_titled   s?   € Ø×Ñ ¨Ô-Õ6IÜÐ'Ó(¬9°S«>Ñ9Ð9äÐ)Ó*¬Y°s«^Ñ;Ð;r,   c           	      óR  •— d|j                   v r‰t        rƒ|j                  j                  }t	        d«      t        |«      t        |«      dœz  }| j                  |dj                  |t	        d«      «      «       t        j                  |j                  «      S t        ‰| �1  ||«      S )NÚ_change_historyz0The %(name)s "%(obj)s" was changed successfully.)r   rZ   z{} - {}zYou may edit it again below)ÚPOSTr   r    Úverbose_namerc   r   Úmessage_userrN   r   ÚHttpResponseRedirectÚpathr   Úresponse_change)r%   rU   rZ   rh   Úmsgr*   s        €r+   rl   z"SimpleHistoryAdmin.response_changej   s—   ø€ Ø §¡Ñ,Õ1DØŸ9™9×1Ñ1ˆLäÐFÓGÜ! ,Ó/Ü  “~ñKñ ˆCð
 ×ÑØ˜×)Ñ)¨#¬qÐ1NÓ/OÓPôô ×,Ñ,¨W¯\©\Ó:Ð:ä‘7Ñ*¨7°CÓ8Ð8r,   c                 ód  — | j                   j                  |_        | j                  j                  }t        | j                  | j                  j                  j                  «      j                  }t        |fi |j                  j                  |d|i¤Žj                  }d|j                  _        | j                  ||«      st        ‚t        rd}nd}d|j                   v r-t        r't#        |«      }	|	j%                  |¬«      j                  }g }
| j'                  ||«      }|j(                  dk(  rž ||j                   |j*                  |¬«      }|j-                  «       rx| j/                  ||d¬«      }| j1                  |||d¬«       |j3                  «        | j5                  ||| j7                  |||
«      «       | j9                  ||«      S  ||¬«      }t;        j<                  || j?                  ||«      | j@                  | jC                  ||«      | ¬	«      }|jD                  }| j                   j                  |jF                  |f}i d
| jI                  ||«      “d|“d|“d|“dd“dtK        | jL                  |jL                  z   «      “dt;        jN                  ||
«      “d|jF                  “d|“dtQ        d|z  «      “dtQ        d|z  |j                  f¬«      “dtQ        d|z  |j                  f¬«      “d|“d| jS                  ||«      “dd“dd“d| jU                  |«      “| jW                  ||«      | jY                  ||«      | j[                  ||«      ddd|j                  | j\                  j^                  ja                  | j                  «      jb                  | jd                  | jf                  t        | j                   d d «      d!œ¥}|ji                  | j                   jk                  |«      «       |ji                  |xs i «       i } | jl                  || jn                  |fi |¤ŽS )"NÚ
history_idFTrf   )r:   rg   )rF   )Úchange)Úmodel_adminr2   Ú	adminformrV   ÚoriginalÚis_popupÚmediaÚerrorsr!   Úoriginal_optsÚchangelist_urlz%s:%s_%s_changelistÚ
change_urlz%s:%s_%s_change)ÚargsÚhistory_urlz%s:%s_%s_historyÚchange_historyr7   Úaddrp   Úhas_add_permissionÚ r1   )Úhas_view_permissionÚhas_change_permissionÚhas_delete_permissionÚhas_file_fieldÚhas_absolute_urlÚform_urlr'   Úcontent_type_idÚsave_asÚsave_on_topr1   )8r   r   r9   r   r    r<   r=   r   r:   r;   rF   Ú_stateÚaddingrH   r   r   rg   r   rC   Úget_formÚmethodÚFILESÚis_validÚ	save_formÚ
save_modelÚsave_m2mÚ
log_changeÚconstruct_change_messagerl   r   Ú	AdminFormÚget_fieldsetsÚprepopulated_fieldsÚget_readonly_fieldsr"   r!   Úhistory_form_view_titler   ru   ÚAdminErrorListr   r7   r~   Úhas_view_history_permissionÚhas_change_history_permissionr‚   rK   rL   rM   Úidr‡   rˆ   rQ   rR   rS   Úobject_history_form_template)r%   rU   rV   Ú
version_idrW   rw   r   rZ   r|   rY   ÚformsetsÚ
form_classÚformÚ
new_objectÚ
admin_formr"   Úurl_tripletr_   r`   s                      r+   r$   z$SimpleHistoryAdmin.history_form_view{   s8  € Ø"Ÿo™o×2Ñ2ˆÔØŸ
™
×(Ñ(ˆÜØ�J‰J˜Ÿ
™
×(Ñ(×IÑIó
ç
‰%ð 	ô  Øñ
Ø#×&Ñ&×.Ñ.°	¸<ÈÐTñ
ç
‰(ð 	ð "ˆ�
‰
Ôà×AÑAÀ'È3ÔOÜ"Ð"åØ!‰Nà"ˆNà §¡Ñ,Õ1DÜ3°CÓ8ˆGØ—+‘+ �+Ó,×5Ñ5ˆCàˆØ—]‘] 7¨CÓ0ˆ
Ø�>‰>˜VÒ#Ù˜gŸl™l¨G¯M©MÀCÔHˆDØ�}‰}ŒØ!Ÿ^™^¨G°TÀ$˜^ÓG�
Ø—‘ ¨°TÀ$�ÔGØ—‘”à—‘ØØØ×1Ñ1°'¸4ÀÓJôð
 ×+Ñ+¨G°ZÓ@Ð@ñ  sÔ+ˆDä×&Ñ&ØØ×Ñ˜w¨Ó,Ø×$Ñ$Ø×$Ñ$ W¨cÓ2Øô
ˆ
ð #×-Ñ-ˆ
Ø—o‘o×*Ñ*¨M×,CÑ,CÀZÐOˆð 
Ø�T×1Ñ1°'¸3Ó?ð 
à˜ð 
ð ˜ð 
ð ˜ð	 
ð
 ˜ð 
ð ”Y˜tŸz™z¨J×,<Ñ,<Ñ<Ó=ð 
ð ”g×,Ñ,¨T°8Ó<ð 
ð ˜×0Ñ0ð 
ð ˜]ð 
ð œgÐ&;¸kÑ&IÓJð 
ð œ'Ð"3°kÑ"AÈÏÉÈ	ÔRð 
ð œ7Ð#5¸Ñ#CÈ3Ï6É6È)ÔTð 
ð ˜nð 
ð ˜t×3Ñ3°G¸SÓAð 
ð  �5ð! 
ð" �dð# 
ð$ ! $×"9Ñ"9¸'Ó"Bð% 
ð& $(×#CÑ#CÀGÈSÓ#QØ%)×%GÑ%GÈÐQTÓ%UØ%)×%?Ñ%?ÀÈÓ%MØ"Ø %ØØ—K‘KØ#×:Ñ:×BÑB×PÑPØ—
‘
ó ç‰bØ—|‘|Ø×+Ñ+Ü  §¡°+¸tÓDò? 
ˆðB 	�‰�t—‘×3Ñ3°GÓ<Ô=Ø�‰�}Ò*¨Ô+ØˆØ'ˆt×'Ñ'Ø�T×6Ñ6¸ñ
ØCOñ
ð 	
r,   c                 ó‚   — | j                  ||«      rt        d«      t        |«      z  S t        d«      t        |«      z  S )NzView %sz	Revert %s)r7   rc   r   rd   s      r+   r˜   z*SimpleHistoryAdmin.history_form_view_title×   s8   € Ø×Ñ ¨Ô-Ü�Y“<¤)¨C£.Ñ0Ð0ä�[“>¤I¨c£NÑ2Ð2r,   c                 ó   — t        |||fi |¤ŽS )z*Catch call to render, to allow overriding.)r   )r%   rU   Útemplater_   Úkwargss        r+   rS   z&SimpleHistoryAdmin.render_history_viewÝ   s   € ä�g˜x¨Ñ;°FÑ;Ð;r,   c                 óL   •— |j                   |_        t        ‰| �  ||||«       y)z<Set special model attribute to user for reference after saveN)ÚuserÚ_history_userr   r�   )r%   rU   rZ   r¡   rp   r*   s        €r+   r�   zSimpleHistoryAdmin.save_modelá   s"   ø€ à#ŸL™LˆÔÜ‰Ñ˜7 C¨¨vÕ6r,   c                 ó,   — t        j                  d«      S )z$Returns the ContentType model class.zcontenttypes.contenttype)Údjango_appsÚ	get_model©r%   s    r+   rK   z)SimpleHistoryAdmin.content_type_model_clsæ   s   € ô ×$Ñ$Ð%?Ó@Ð@r,   c                 ór   — t        t        dd«      ry| j                  ||«      r| j                  ||«      syy)zHIf `True`, hides the "Revert" button in the `submit_line.html` template.ÚSIMPLE_HISTORY_REVERT_DISABLEDFT)r<   r   rš   r›   rd   s      r+   r7   z"SimpleHistoryAdmin.revert_disabledë   s;   € ä”8Ð=¸uÔEØØ×-Ñ-Ø�Sô
à×4Ñ4°W¸cÔBØØr,   c                 ó$   •— t         ‰| �  ||«      S ©N)r   r€   ©r%   rU   rZ   r*   s      €r+   r€   z&SimpleHistoryAdmin.has_view_permissionõ   s   ø€ Ü‰wÑ*¨7°CÓ8Ð8r,   c                 ó$   •— t         ‰| �  ||«      S r³   )r   r�   r´   s      €r+   r�   z(SimpleHistoryAdmin.has_change_permissionø   s   ø€ Ü‰wÑ,¨W°cÓ:Ð:r,   c                 óN   — | j                  ||«      xs | j                  ||«      S r³   )r€   r�   rd   s      r+   Úhas_view_or_change_permissionz0SimpleHistoryAdmin.has_view_or_change_permissionû   s.   € Ø×'Ñ'¨°Ó5ò 
¸×9SÑ9SØ�Só:
ð 	
r,   c                 óŠ   — | j                   r&| j                  ||«      xs | j                  ||«      S | j                  ||«      S r³   )Úenforce_history_permissionsrš   r›   r·   rd   s      r+   rH   z@SimpleHistoryAdmin.has_view_history_or_change_history_permission   sO   € Ø×+Ò+Ø×3Ñ3Ø˜óò Bà×3Ñ3°G¸SÓAðBð ×1Ñ1°'¸3Ó?Ð?r,   c                 óè   — | j                   rUt        | j                  «      j                  }t	        d|«      }|j
                  j                  |j                  › d|› �«      S | j                  ||«      S )NÚviewú.)	r¹   r   r   r    r	   rª   Úhas_permr!   r€   )r%   rU   rZ   Úopts_historyÚcodename_view_historys        r+   rš   z.SimpleHistoryAdmin.has_view_history_permission  so   € Ø×+Ò+Ü6°t·z±zÓB×HÑHˆLÜ$;¸FÀLÓ$QÐ!Ø—<‘<×(Ñ(Ø×)Ñ)Ð*¨!Ð,AÐ+BÐCóð ð ×'Ñ'¨°Ó5Ð5r,   c                 óè   — | j                   rUt        | j                  «      j                  }t	        d|«      }|j
                  j                  |j                  › d|› �«      S | j                  ||«      S )Nrp   r¼   )	r¹   r   r   r    r	   rª   r½   r!   r�   )r%   rU   rZ   r¾   Úcodename_change_historys        r+   r›   z0SimpleHistoryAdmin.has_change_history_permission  so   € Ø×+Ò+Ü6°t·z±zÓB×HÑHˆLÜ&=¸hÈÓ&UÐ#Ø—<‘<×(Ñ(Ø×)Ñ)Ð*¨!Ð,CÐ+DÐEóð ð ×)Ñ)¨'°3Ó7Ð7r,   c                 ó$   — t        t        dd«      S )NÚ0SIMPLE_HISTORY_ENFORCE_HISTORY_MODEL_PERMISSIONSF)r<   r   r¯   s    r+   r¹   z.SimpleHistoryAdmin.enforce_history_permissions  s   € äÜÐHÈ%ó
ð 	
r,   r³   )Ú__name__Ú
__module__Ú__qualname__rT   r�   r   ra   rO   rl   r$   r˜   rS   r�   r@   rK   r7   r€   r�   r·   rH   rš   r›   r¹   Ú__classcell__)r*   s   @r+   r   r      sˆ   ø„ ØBÐØ#LÐ ô#ó:
òx<ô9ó"Z
òx3ò<ô7ð
 ñAó ðAóõ9õ;ó
ó
@ó6ó8ð ñ
ó ô
r,   r   N)(Údjangor   Údjango.appsr   r­   Údjango.confr   Údjango.contribr   Údjango.contrib.adminr   Údjango.contrib.admin.utilsr   Údjango.contrib.authr	   r
   Údjango.core.exceptionsr   Údjango.shortcutsr   r   Údjango.urlsr   r   Údjango.utils.encodingr   Údjango.utils.htmlr   Údjango.utils.textr   Údjango.utils.translationr   rc   Úutilsr   r   r<   r   Ú
ModelAdminr   r8   r,   r+   ú<module>rØ      sV   ðÝ Ý +Ý  Ý  Ý (Ý .ß GÝ 3ß 6ß (Ý +Ý 'Ý &Ý 1ç Má˜hÐ(=¸uÓEÐ ôH
˜×)Ñ)õ H
r,   