
v^S	                 @   sc   d  d l  m Z d  d l m Z d  d l m Z d  d l m Z m Z	 Gd d   d e j
  Z d S)    )forms)settings)FlatPage)gettextgettext_lazyc                   s   e  Z d  Z e j d e d  d d d d d e d  d	 d
 e d  i  Z Gd d   d  Z   f d d   Z d d   Z	 d d   Z
   f d d   Z   S)FlatpageFormlabelURL
max_lengthd   regexz^[-\w/\.~]+$	help_textuO   Example: “/about/contact/”. Make sure to have leading and trailing slashes.Zerror_messagesinvalidz\This value must contain only letters, numbers, dots, underscores, dashes, slashes or tildes.c               @   s   e  Z d  Z e Z d Z d S)zFlatpageForm.Meta__all__N)__name__
__module____qualname__r   modelfields r   r   @/tmp/pip-build-8lau8j11/django/django/contrib/flatpages/forms.pyMeta   s   r   c                s9   t    j | |   |  j   s5 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   sr   |  j  d } | j d  s7 t j t d  d d  |  j   rn | j d  rn t j t d  d d  | S)Nr   /zURL is missing a leading slash.codeZmissing_leading_slashz URL is missing a trailing slash.Zmissing_trailing_slash)cleaned_data
startswithr   ValidationErrorr   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 d |  j j  } | r | j d |  j   r xS | D]K } | j d |  j   r t	 j
 t d  d d d d | d	 | i  q Wt   j   S)
Nr   sitespkZ	sites__inz:Flatpage with url %(url)s already exists for site %(site)sr"   Zduplicate_urlparamssite)r#   getr   Zobjectsfilterinstancer)   excludeexistsr   r%   r   r   clean)r   r   r(   Zsame_urlr+   )r    r   r   r1   4   s    zFlatpageForm.clean)r   r   r   r   Z
RegexFieldr   r   r   r   r   r'   r1   r   r   )r    r   r      s   	r   N)Zdjangor   Zdjango.confr   Zdjango.contrib.flatpages.modelsr   Zdjango.utils.translationr   r   r   Z	ModelFormr   r   r   r   r   <module>   s   