o
    h6                     @   s  d dl 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 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m Z  d dl!m"Z" G dd deeZG dd deZG dd deZG dd deZ#G dd deZdS )    N)render_to_string)reverse)capfirst)gettext_lazy)WagtailAdminTemplateMixin)AddView)CreateFromUploadView)DeleteUploadView)
DeleteView)EditViewget_image_model)get_allowed_image_extensions)get_image_formget_image_multi_form)ImagesPermissionPolicyGetterpermission_policy)find_image_duplicatesc                       s   e Zd Ze ZdZdZedZdZ	dZ
dZdZdZdZdZd	Zd
ZdZdZdd Zdd Zdd Zdd Zdd Z fddZdd Z fddZ  ZS )r   zwagtailimages/multiple/add.htmlimagez
Add imageszwagtailimages:indexwagtailimages:edit_multiplewagtailimages:delete_multipleimage_id1wagtailimages:create_multiple_from_uploaded_image$wagtailimages:delete_upload_multipleuploaded-imageuploaded_imageuploaded_file_idc                 C   s.   | j t| jt| jjjdd|  dg S )N)urllabel )breadcrumbs_itemsr   index_url_namer   model_metaverbose_name_pluralget_page_titleself r(   ]/var/www/html/ndineBlogger/venv/lib/python3.10/site-packages/wagtail/images/views/multiple.pyget_breadcrumbs_items,   s   zAddView.get_breadcrumbs_itemsc                 C      t  S Nr   r&   r(   r(   r)   	get_model5      zAddView.get_modelc                 C   
   t | jS r,   )r   r"   r&   r(   r(   r)   get_upload_form_class8      
zAddView.get_upload_form_classc                 C   r/   r,   r   r"   r&   r(   r(   r)   get_edit_form_class;   r1   zAddView.get_edit_form_classc                 C   s*   t d|d t| j| jjfdd| jdS )Nz2wagtailimages/images/confirm_duplicate_upload.htmlr   )args)existing_imagedelete_action)request)r   r   delete_object_url_nameobjectidr7   )r'   
duplicatesr(   r(   r)   %get_confirm_duplicate_upload_response>   s   z-AddView.get_confirm_duplicate_upload_responsec                    sL   t   }t| j| jj| jd}|s|jdd |S |jd| |d |S )N)r   userr   F)	duplicateT)r>   confirm_duplicate_upload)	superget_edit_object_response_datar   r9   r7   r=   r   updater<   )r'   datar;   	__class__r(   r)   rA   J   s    
	z%AddView.get_edit_object_response_datac                 C   s"   |j dd}| jj|_|   |S )NF)commit)saver7   r=   uploaded_by_user)r'   formr   r(   r(   r)   save_object]   s   
zAddView.save_objectc                    s^   t  jdi |}|| jjd j| jjd jt | jjd jd | jjd jd d |S )Nfiletitlefile_too_large_unknown_sizeinvalid_image_extension)max_filesizemax_title_lengthallowed_extensionserror_max_file_sizeerror_accepted_file_typesr(   )	r@   get_context_datarB   rI   fieldsmax_upload_size
max_lengthr   error_messages)r'   kwargscontextrD   r(   r)   rT   c   s   zAddView.get_context_data)__name__
__module____qualname__r   r   template_nameheader_iconr   
page_titler!   edit_object_url_namer8   edit_object_form_prefixcontext_object_namecontext_object_id_nameedit_upload_url_namedelete_upload_url_nameedit_upload_form_prefixcontext_upload_namecontext_upload_id_namer*   r-   r0   r3   r<   rA   rJ   rT   __classcell__r(   r(   rD   r)   r      s0    	r   c                   @   s8   e Zd ZeZdZdZdZdZdZdZ	dd Z
dd Zd	S )
r   r   r   r   r   c                 C   r+   r,   r   r&   r(   r(   r)   r-      r.   zEditView.get_modelc                 C   r/   r,   r2   r&   r(   r(   r)   r3      r1   zEditView.get_edit_form_classN)r[   r\   r]   r   pk_url_kwargrb   rc   rd   ra   r8   r-   r3   r(   r(   r(   r)   r   w   s    r   c                   @   s    e Zd ZeZdZdZdd ZdS )r
   r   c                 C   r+   r,   r   r&   r(   r(   r)   r-      r.   zDeleteView.get_modelN)r[   r\   r]   r   rk   rd   r-   r(   r(   r(   r)   r
      s
    r
   c                   @   s<   e Zd ZdZdZdZdZdZdZdd Z	d	d
 Z
dd ZdS )CreateFromUploadedImageViewr   r   r   r   r   r   c                 C   r+   r,   r   r&   r(   r(   r)   r-      r.   z%CreateFromUploadedImageView.get_modelc                 C   r/   r,   r2   r&   r(   r(   r)   r3      r1   z/CreateFromUploadedImageView.get_edit_form_classc                 C   sJ   | j jjtj| jjj| jjjdd | jj	| j _
| j   |  d S )NF)rG   )r9   rK   rG   ospathbasenameuploadnamer7   r=   rH   _set_image_file_metadata)r'   rI   r(   r(   r)   rJ      s   
z'CreateFromUploadedImageView.save_objectN)r[   r\   r]   re   rf   upload_pk_url_kwargrg   rd   rh   r-   r3   rJ   r(   r(   r(   r)   rl      s    rl   c                   @   s   e Zd ZdZdd ZdS )r	   r   c                 C   r+   r,   r   r&   r(   r(   r)   r-      r.   zDeleteUploadView.get_modelN)r[   r\   r]   rs   r-   r(   r(   r(   r)   r	      s    r	   )$os.pathrm   django.template.loaderr   django.urlsr   django.utils.textr   django.utils.translationr    wagtail.admin.views.generic.baser   +wagtail.admin.views.generic.multiple_uploadr   BaseAddViewr   BaseCreateFromUploadViewr	   BaseDeleteUploadViewr
   BaseDeleteViewr   BaseEditViewwagtail.imagesr   wagtail.images.fieldsr   wagtail.images.formsr   r   wagtail.images.permissionsr   r   wagtail.images.utilsr   rl   r(   r(   r(   r)   <module>   s*    ^	