î
ªÍ Xr  ã               @   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)ÚugettextÚugettext_lazyc                   s„   e  Z d  Z e j d e d ƒ d d d d d e d ƒ d	 i e d
 ƒ d 6ƒ Z Gd d „  d ƒ Z d d „  Z ‡  f d d †  Z	 ‡  S)ÚFlatpageFormÚlabelÚURLÚ
max_lengthéd   Úregexz^[-\w/\.~]+$Ú	help_textzKExample: '/about/contact/'. Make sure to have leading and trailing slashes.Zerror_messagesz\This value must contain only letters, numbers, dots, underscores, dashes, slashes or tildes.Úinvalidc               @   s   e  Z d  Z e Z d Z d S)zFlatpageForm.MetaÚ__all__N)Ú__name__Ú
__module__Ú__qualname__r   ÚmodelÚfields© r   r   úL/home/ubuntu/projects/ifolica/build/django/django/contrib/flatpages/forms.pyÚMeta   s   r   c             C   sœ   |  j  d } | j d ƒ s: t j t d ƒ d d ƒ‚ n  t j r˜ t j r[ d t j k sj d t j k r˜ | j	 d ƒ r˜ t j t d ƒ d d ƒ‚ n  | S)	NÚurlú/zURL is missing a leading slash.ÚcodeZmissing_leading_slashz)django.middleware.common.CommonMiddlewarez URL is missing a trailing slash.Zmissing_trailing_slash)
Úcleaned_dataÚ
startswithr   ÚValidationErrorr   r   ZAPPEND_SLASHZ
MIDDLEWAREZMIDDLEWARE_CLASSESÚendswith)Úselfr   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 ƒ } n  | rÜ | j d | ƒ j ƒ  rÜ x[ | D]P } | j d | ƒ j ƒ  r… t	 j
 t d ƒ d d d i | d 6| d	 6ƒ‚ q… q… Wn  t t |  ƒ 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   Ú_Úsuperr   Úclean)r   r   r!   Zsame_urlr$   )Ú	__class__r   r   r,   *   s    !zFlatpageForm.clean)
r   r   r   r   Z
RegexFieldr*   r   r   r    r,   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   