
    h                     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
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 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   ed      Z! ed      Z" ed      Z# eejH                        Z% G d dejL                        Z' G d dejP                        Z)edd       Z*y)    )adminmessages)ValidationError)modelform_factory)JsonResponse)pathreverse)gettext_lazy)csrf_exempt   )settings)	ClipboardClipboardItemFolder)FILER_THUMBNAIL_ICON_SIZE)handle_request_files_uploadhandle_upload)
load_model)validate_upload   )viewsz+You do not have permission to upload files.z9Can't find folder to upload. Please refresh and try againzGCan't use this folder, Permission Denied. Please select another folder.c                       e Zd ZeZy)ClipboardItemInlineN)__name__
__module____qualname__r   model     J/home/dcms/DCMS/lib/python3.12/site-packages/filer/admin/clipboardadmin.pyr   r      s    Er   r   c                   :     e Zd ZeZegZdZdZdZ	 fdZ
d Z xZS )ClipboardAdmin)userzDEBUG ClipboardzDEBUG Clipboardsc           	         t        d| j                  j                  t        j                        d      t        d| j                  j                  t        j
                        d      t        d| j                  j                  t        j                        d      t        dt        d	      t        d
t        d	      gt        | %         z   S )Nz%operations/paste_clipboard_to_folder/zfiler-paste_clipboard_to_folder)namezoperations/discard_clipboard/zfiler-discard_clipboardzoperations/delete_clipboard/zfiler-delete_clipboardz"operations/upload/<int:folder_id>/zfiler-ajax_uploadzoperations/upload/no_folder/)
r   
admin_site
admin_viewr   paste_clipboard_to_folderdiscard_clipboarddelete_clipboardajax_uploadsuperget_urls)self	__class__s    r    r-   zClipboardAdmin.get_urls(   s    8++E,K,KL79 0++E,C,CD/1 /++E,B,BC.0 5)+ /)+
  G! 	r   c                     ddddS )zH
        It seems this is only used for the list view. NICE :-)
        F)addchangedeleter   )r.   argskwargss      r    get_model_permszClipboardAdmin.get_model_perms;   s    
 
 	
r   )r   r   r   r   r   r   inlinesraw_id_fieldsverbose_nameverbose_name_pluralr-   r6   __classcell__)r/   s   @r    r"   r"   !   s*    E"#GM$L,&
r   r"   Nc           
      @   | j                   j                  d      s+t        j                  | t               t        dt        i      S |r"	 t        j                  j                  |      }nHt        j                  j                  | j                  j                  dd            j                         }|r<|j                  |       s+t        j                  | t               t        dt        i      S t!        | j"                        dk(  rt%        |       \  }}}}nt'        |       \  }}}}t(        j*                  D ]/  }t-        |      }|j/                  |||      s"t1        |d      }	 n  	|| j                   j2                  d	d
|i      }
| |
_        ||
j6                  _        |
j;                         r	 t=        ||| j                   |       |
j?                  d      }t(        j@                  |_!        ||_$        |j?                          	 d}|dtG        |      |j2                  d}tK        |tL              rGtO        d|jP                  jR                   d|j2                  tT        f      |d<   |jV                  |d<   t        |      S |
jZ                  j]                         D ]"  \  }}|D ]  }t        j                  | |        $ dj_                  ta        |
jZ                  jc                               D cg c]"  }dje                  dj_                  |            $ c}      }t        dtG        |      id      S # t        j                  $ r. t        j                  | t               t        dt        i      cY S w xY w# tD        $ r?}t        j                  | tG        |             t        dtG        |      i      cY d}~S d}~ww xY w# tX        $ r?}t        j                  | tG        |             t        dtG        |      i      cY d}~S d}~ww xY wc c}w )zQ
    Receives an upload from the uploader. Receives only one file at a time.
    zfiler.add_fileerror)pkfiler_last_folder_idr   r   )original_filenameownerfile)r   fields)r@   rA   rB   F)commitN )	thumbnailalt_textlabelfile_idzadmin:filer_	_fileicon)r4   thumbnail_180original_imagez; z{}z,    )status)3r#   has_permr   r=   NO_PERMISSIONSr   r   objectsgetDoesNotExistNO_FOLDER_ERRORfiltersessionfirsthas_add_children_permissionNO_PERMISSIONS_FOR_FOLDERlenFILESr   r   filer_settingsFILER_FILE_MODELSr   matches_file_typer   r>   requestinstance	mime_typeis_validr   saveFILER_IS_PUBLIC_DEFAULT	is_publicr   strfolder
isinstanceImager	   _meta
model_namer   url	Exceptionerrorsitemsjoinlistvaluesformat)r_   	folder_idrg   uploadfilenameis_rawra   filer_classFileSubClassFileForm
uploadformfile_objr=   rF   datakey
error_listrn   form_errorss                      r    r+   r+   F   s    <<  !12w/Wn566	<^^''9'5F
 &&'//*=*=>TVW*X&Y__a f88Aw 9:W&?@AA
7==Q.I'.R+&) /<G.D+&) &77 !+.))(FIF("=H  7<<??S!6*,J J$-J!	7HfgllIF!e4H!/!G!GH !	7I&X#;;	D (E*(/"8>>#<#<"=YG"++'@A)_% *2%&%%
  *00668 	/OC# /w./	/ ii-1*2C2C2J2J2L-M!
#) "&IIf" !
  Wc+&67DD] "" 	<NN7O4/ :;;	<R  	7NN7CJ/#e* 566	74  	7NN7CJ/#e* 566	7!
sU   
 M 7?N A=O ;'P>NN	O4OOO	P4PPP)N)+django.contribr   r   django.core.exceptionsr   django.forms.modelsr   django.httpr   django.urlsr   r	   django.utils.translationr
   _django.views.decorators.csrfr   rE   r   r\   modelsr   r   r   r   utils.filesr   r   utils.loaderr   
validationr   r   rP   rT   rY   FILER_IMAGE_MODELri   TabularInliner   
ModelAdminr"   r+   r   r   r    <module>r      s    * 2 1 $ % 6 4 ) 5 5 0 D % (  @AOPM 
 	>334%-- "
U%% "
J [E [Er   