o
    lf	                     @   s^   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 G dd dejZd	S )
    )forms)settings)FlatPage)ValidationError)gettext)gettext_lazyc                       sj   e Zd ZejedddeddedidZG dd	 d	Z fd
dZdd Z	dd Z
 fddZ  ZS )FlatpageFormURLd   z^[-\w/\.~]+$uO   Example: “/about/contact/”. Make sure to have leading and trailing slashes.invalidz\This value must contain only letters, numbers, dots, underscores, dashes, slashes or tildes.)label
max_lengthregex	help_texterror_messagesc                   @   s   e Zd ZeZdZdS )zFlatpageForm.Meta__all__N)__name__
__module____qualname__r   modelfields r   r   b/var/www/ticemtrilhas/avaliacao_env/lib/python3.10/site-packages/django/contrib/flatpages/forms.pyMeta   s    r   c                    s2   t  j|i | |  std| jd _d S d S )NuA   Example: “/about/contact”. Make sure to have a leading slash.url)super__init___trailing_slash_required_r   r   )selfargskwargs	__class__r   r   r      s   zFlatpageForm.__init__c                 C   s   t jodt jv S )Nz)django.middleware.common.CommonMiddleware)r   APPEND_SLASH
MIDDLEWARE)r   r   r   r   r   %   s   z%FlatpageForm._trailing_slash_requiredc                 C   sJ   | j d }|dsttddd|  r#|ds#ttddd|S )Nr   /zURL is missing a leading slash.missing_leading_slash)codez URL is missing a trailing slash.missing_trailing_slash)cleaned_data
startswithr   r   r   endswith)r   r   r   r   r   	clean_url+   s   

zFlatpageForm.clean_urlc                    s   | j d}| j d}tjj|d}| jjr|j| jjd}|rB|j|d rB|D ]}|j|d rAt	t
dd||d	d
q+t  S )Nr   sites)r   )pk)	sites__in)r.   z:Flatpage with url %(url)s already exists for site %(site)sduplicate_url)r   site)r(   params)r*   getr   objectsfilterinstancer/   excludeexistsr   r   r   clean)r   r   r.   same_urlr2   r"   r   r   r:   9   s   
zFlatpageForm.clean)r   r   r   r   
RegexFieldr   r   r   r   r   r-   r:   __classcell__r   r   r"   r   r   	   s$    r   N)djangor   django.confr   django.contrib.flatpages.modelsr   django.core.exceptionsr   django.utils.translationr   r   r   	ModelFormr   r   r   r   r   <module>   s    