a
    ›"Wfù  ã                   @   sf   d dl Z d dlmZ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 G dd	„ d	ejƒZdS )
é    N)ÚpatternsÚurl)Úadmin)Údefault_storage)ÚHttp404ÚHttpResponseÚHttpResponseBadRequesté   )Ú	save_filec                       s(   e Zd ZdZ‡ fdd„Zdd„ Z‡  ZS )Ú
QuillAdminz8Admin class offering the ability to accept file uploads.c                    s0   t dtd| j | j¡dd�ƒ}|tt| ƒ ¡  S )z(Add URLs needed to handle image uploads.Ú z	^upload/$zquill-file-upload)Úname)r   r   Z
admin_siteZ
admin_viewÚhandle_uploadÚsuperr   Úget_urls)ÚselfÚurls©Ú	__class__© úD/var/www/sistema_ama/venv/lib/python3.9/site-packages/quill/admin.pyr      s
    þzQuillAdmin.get_urlsc                 C   sÀ   |j dkrt‚| ¡ rJz|jd }|}d}W q” tyF   tdƒ Y S 0 nJt|jƒdkr`tdƒS z|jd }|j}d}W n ty’   tdƒ Y S 0 t	|||t
ƒ}i }||d	< tt |¡d
d�S )z!Handle file uploads from WYSIWYG.ÚPOSTZquillUploadFileTzInvalid file upload.r	   z!Can only upload 1 file at a time.Fz Missing image `quillUploadFile`.r   ztext/html; charset=utf-8)Úcontent_type)Úmethodr   Zis_ajaxÚGETÚKeyErrorr   ÚlenZFILESr   r
   r   r   ÚjsonÚdumps)r   ÚrequestÚfilenameÚdataZis_rawr   Zresponse_datar   r   r   r      s*    


zQuillAdmin.handle_upload)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   Ú__classcell__r   r   r   r   r      s   r   )r   Zdjango.conf.urlsr   r   Zdjango.contribr   Zdjango.core.files.storager   Zdjango.httpr   r   r   Zhelpersr
   Z
ModelAdminr   r   r   r   r   Ú<module>   s   