
    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 ddl	mZ dd	lmZ  G d
 d      Z G d dej"                        Z G d deej"                        Z G d deej"                        Zy)    )forms)widgets)	AdminForm)ValidationError)models)gettext   )ThumbnailOption)get_valid_filenamec                       e Zd Zd Zd Zy)WithFieldsetMixinc           
      `    t        | dd d| j                  D cg c]  }| c}ifg      S c c}w )N	fieldsetsfields)getattrr   )selffields     A/home/dcms/DCMS/lib/python3.12/site-packages/filer/admin/forms.pyget_fieldsetszWithFieldsetMixin.get_fieldsets   s7    t[H$++>u>?@+
  	>s   	+c                 8    t        | | j                         i       S )zFReturns a class contains the Admin fieldset to show form as admin form)r   r   r   s    r   
admin_formzWithFieldsetMixin.admin_form   s    t113R88    N)__name__
__module____qualname__r   r    r   r   r   r      s    
9r   r   c                   F    e Zd Z ej                  d ed            Zd Zy)CopyFilesAndFoldersFormFz;Suffix which will be appended to filenames of copied files.)required	help_textc                     | j                   d   rt        | j                   d         nd}|| j                   d   k7  r#t        j                  t	        d      d|iz        | j                   d   S )Nsuffix zOSuffix should be a valid, simple and lowercase filename part, like "%(valid)s".valid)cleaned_datar   r   r   _)r   r%   s     r   clean_suffixz$CopyFilesAndFoldersForm.clean_suffix   s    CGCTCTU]C^"4#4#4X#>?dfD%%h//''*{(|  AH  JO  @P  )P  Q  Q  **r   N)r   r   r   r   	CharFieldr'   r#   r(   r   r   r   r   r      s    U__eq9v7wxF+r   r   c                   8    e Zd Z ej                  d      Zd Zy)RenameFilesFormT)r    c                 :   	 | j                   d   dddddddddd	z   | j                   d   S # t        $ r5}t        j                  t	        d      d	|j
                  d
   iz        d }~wt        $ r(}t        j                  t	        d      d|iz        d }~ww xY w)Nrename_formatfilenamebasenameextfolder*   )	original_filenameoriginal_basenameoriginal_extensioncurrent_filenamecurrent_basenamecurrent_extensioncurrent_foldercounterglobal_counterz*Unknown rename format value key "%(key)s".keyr   z!Invalid rename format: %(error)s.error)r&   KeyErrorr   r   r'   args	Exception)r   es     r   clean_rename_formatz#RenameFilesForm.clean_rename_format&   s    	_o.%/%/&+$.$.%*"*"$
2 
   11	  	n''*V(W[`bcbhbhijbkZl(lmm 	_''*M(NRY[\Q](]^^	_s    - 	B0A&&B2#BBN)r   r   r   r   r)   r-   rB   r   r   r   r+   r+   #   s    #EOOT2M2r   r+   c                      e Zd ZdddiffZ ej
                  edd ed      ej                        j                         Z
 ej                   ed      dd      j                  ej                  	      Z ej                   ed
      dd      j                  ej                  	      Z ej                    ed      d      j                         Z ej                    ed      d      j                         Zd Zy)ResizeImagesFormNr   )thumbnail_option)widthheight)cropupscaleTzthumbnail option)nullblankverbose_name	on_deleterF   )rJ   rK   )widgetrG   rH   )defaultrI   c                     | j                   j                  d      sS| j                   j                  d      xs d| j                   j                  d      xs dz   st        t        d            | j                   S )NrE   rF   r   rG   z6Thumbnail option or resize parameters must be choosen.)r&   getr   r'   r   s    r   cleanzResizeImagesForm.cleanM   s    !!%%&89t?P?P?T?TU\?]?babgkgxgxg|g|  ~F  hG  hL  KL  ?M!!$\"]^^   r   )r   r   r   r   r   
ForeignKeyr
   r'   CASCADE	formfieldrE   PositiveIntegerFieldr   AdminIntegerFieldWidgetrF   rG   BooleanFieldrH   rI   rR   r   r   r   rD   rD   :   s     $   !I
 )v(()*.. ik  (F'''
TJTT\c\{\{T|E(V((84tLVV^e^}^}V~F6qy$7AACD!f!!!I,=GGIG!r   rD   N)djangor   django.contrib.adminr   django.contrib.admin.helpersr   django.core.exceptionsr   	django.dbr   django.utils.translationr   r'   r
   utils.filesr   r   Formr   r+   rD   r   r   r   <module>ra      s]     ( 2 2  1 $ ,9 9	+ejj 	+2' 2.!(%** !r   