o
    Dj 
                     @   s\   d dl mZ d dlmZ d dlmZ d dlmZ dd ZG dd deZ	G d	d
 d
eZ
dS )    )	FileField)
ImageField)forms)gettext_lazyc                 C   s   | dk r	d | S | dk rd | d ddd S | dk r/d | d ddd	 S | d
k rBd | d ddd S | dk rUd | d
 ddd S d S )Ni  z{} bytes@B z{:.03f}0.z kBi ʚ;z MBl    J)z GBl     I5 z TB)formatrstrip)taille r   4/home/reyt/e-colle-new/accueil/models/contenttype.py
fileformat   s   
r   c                       s2   e Zd ZdZg df fdd	Z fddZ  ZS )ContentTypeRestrictedFileFieldz
    Same as FileField, but you can specify:
        * content_types - list containing allowed content_types. Example: ['application/pdf', 'image/jpeg']
        * max_upload_size - the maximum file size (in bytes) allowed for upload.
  r   c                    s"   || _ || _t j|i | d S )N)content_typesmax_upload_sizesuper__init__)selfr   r   argskwargs	__class__r   r   r      s   z'ContentTypeRestrictedFileField.__init__c                    s   t  j|i |}|j}z)|j}|| jv r/|j| jkr,tt	d
t| jt|jW |S tt	d ty?   Y |S w )NE   taille maximale d'un téléversement: {}. taille de votre fichier: {}u   type de fichier non supporté)r   cleanfilecontent_typer   sizer   r   ValidationError_r	   r   AttributeError)r   r   r   datar   r   r   r   r   r      s   
"z$ContentTypeRestrictedFileField.clean__name__
__module____qualname____doc__r   r   __classcell__r   r   r   r   r      s    r   c                       s,   e Zd ZdZ fddZ fddZ  ZS )RestrictedImageFieldz
    Same as ImageField, but you can specify:
        * max_upload_size - the maximum file size (in bytes) allowed for upload.
    c                    s"   | d| _t j|i | d S )Nr   )popr   r   r   )r   r   r   r   r   r   r   1   s   zRestrictedImageField.__init__c                    sT   t  j|i |}|r(|j}| j}|| jkr(ttd	t
| jt
||S )Nr   )r   r   r   	getbuffernbytesr   r   r   r   r	   r   )r   r   r   r!   r   r   r   r   r   r   6   s   

 zRestrictedImageField.cleanr"   r   r   r   r   r(   ,   s    r(   N)django.db.modelsr   django.formsr   r   django.utils.translationr   r   r   r   r(   r   r   r   r   <module>   s    