3
gt	                 @   sV   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 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_textZ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   \/var/www/tester-filtro-web/env/lib/python3.6/site-packages/django/contrib/flatpages/forms.pyMeta   s   r   c                s*   t  j|| | j s&td| jd _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kS )Nz)django.middleware.common.CommonMiddleware)r   ZAPPEND_SLASHZ
MIDDLEWARE)r   r   r   r   r   !   s    z%FlatpageForm._trailing_slash_requiredc             C   sL   | j d }|jds$ttddd| j rH|jd rHttddd|S )Nr   /zURL is missing a leading slash.Zmissing_leading_slash)codez URL is missing a trailing slash.Zmissing_trailing_slash)cleaned_data
startswithr   r   r   endswith)r   r   r   r   r   	clean_url'   s    

zFlatpageForm.clean_urlc                s   | j jd}| j jd}tjj|d}| jjr>|j| jjd}|r|j|dj rx4|D ],}|j|dj rXt	t
dd||d	d
qXW t j S )Nr   sites)r   )pk)Z	sites__in)r(   z:Flatpage with url %(url)s already exists for site %(site)sZduplicate_url)r   site)r#   params)r$   getr   Zobjectsfilterinstancer)   excludeexistsr   r   r   clean)r   r   r(   Zsame_urlr*   )r!   r   r   r1   5   s    
zFlatpageForm.clean)r   r   r   r   Z
RegexFieldr   r   r   r   r   r'   r1   __classcell__r   r   )r!   r   r      s   r   N)Zdjangor   Zdjango.confr   Zdjango.contrib.flatpages.modelsr   Zdjango.core.exceptionsr   Zdjango.utils.translationr   r   r   Z	ModelFormr   r   r   r   r   <module>   s
   