a
    Dg6                     @   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 )Zbreadcrumbs_itemsr   index_url_namer   modelZ_metaZverbose_name_pluralZget_page_titleself r$   \/var/www/lab.imftr.de/x/nb_venv/lib/python3.9/site-packages/wagtail/images/views/multiple.pyget_breadcrumbs_items,   s    zAddView.get_breadcrumbs_itemsc                 C   s   t  S Nr   r"   r$   r$   r%   	get_model5   s    zAddView.get_modelc                 C   s
   t | jS r'   )r   r!   r"   r$   r$   r%   get_upload_form_class8   s    zAddView.get_upload_form_classc                 C   s
   t | jS r'   r   r!   r"   r$   r$   r%   get_edit_form_class;   s    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)Zexisting_imageZdelete_action)request)r   r   delete_object_url_nameobjectidr-   )r#   
duplicatesr$   r$   r%   %get_confirm_duplicate_upload_response>   s    z-AddView.get_confirm_duplicate_upload_responsec                    sJ   t   }t| j| jj| jd}|s2|jdd n|jd| |d |S )N)r   userr   F)	duplicateT)r4   Zconfirm_duplicate_upload)	superget_edit_object_response_datar   r/   r-   r3   r   updater2   )r#   datar1   	__class__r$   r%   r6   J   s    
z%AddView.get_edit_object_response_datac                 C   s"   |j dd}| jj|_|   |S )NF)commit)saver-   r3   uploaded_by_user)r#   formr   r$   r$   r%   save_object]   s    
zAddView.save_objectc                    s^   t  jf i |}|| jjd j| jjd jt | jjd jd | jjd jd d |S )NfiletitleZfile_too_large_unknown_sizeZinvalid_image_extension)Zmax_filesizeZmax_title_lengthZallowed_extensionsZerror_max_file_sizeZerror_accepted_file_types)	r5   get_context_datar7   r>   fieldsZmax_upload_size
max_lengthr   Zerror_messages)r#   kwargscontextr9   r$   r%   rB   c   s    zAddView.get_context_data)__name__
__module____qualname__r   r   Ztemplate_nameZheader_iconr   Z
page_titler    edit_object_url_namer.   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_nameZcontext_upload_id_namer&   r(   r)   r+   r2   r6   r?   rB   __classcell__r$   r$   r9   r%   r      s.   	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   s   t  S r'   r   r"   r$   r$   r%   r(      s    zEditView.get_modelc                 C   s
   t | jS r'   r*   r"   r$   r$   r%   r+      s    zEditView.get_edit_form_classN)rG   rH   rI   r   pk_url_kwargrK   rL   rM   rJ   r.   r(   r+   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   s   t  S r'   r   r"   r$   r$   r%   r(      s    zDeleteView.get_modelN)rG   rH   rI   r   rS   rM   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   s   t  S r'   r   r"   r$   r$   r%   r(      s    z%CreateFromUploadedImageView.get_modelc                 C   s
   t | jS r'   r*   r"   r$   r$   r%   r+      s    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)r<   )r/   r@   r<   ospathbasenameuploadnamer-   r3   r=   Z_set_image_file_metadata)r#   r>   r$   r$   r%   r?      s    
z'CreateFromUploadedImageView.save_objectN)rG   rH   rI   rN   rO   upload_pk_url_kwargrP   rM   rQ   r(   r+   r?   r$   r$   r$   r%   rT      s   rT   c                   @   s   e Zd ZdZdd ZdS )r	   r   c                 C   s   t  S r'   r   r"   r$   r$   r%   r(      s    zDeleteUploadView.get_modelN)rG   rH   rI   rZ   r(   r$   r$   r$   r%   r	      s   r	   )$os.pathrU   Zdjango.template.loaderr   Zdjango.urlsr   Zdjango.utils.textr   Zdjango.utils.translationr   Z wagtail.admin.views.generic.baser   Z+wagtail.admin.views.generic.multiple_uploadr   ZBaseAddViewr   ZBaseCreateFromUploadViewr	   ZBaseDeleteUploadViewr
   ZBaseDeleteViewr   ZBaseEditViewZwagtail.imagesr   Zwagtail.images.fieldsr   Zwagtail.images.formsr   r   Zwagtail.images.permissionsr   r   Zwagtail.images.utilsr   rT   r$   r$   r$   r%   <module>   s(   ^	