
    Dvg	                     t    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ej                  Zd	S )
    )forms)settings)FlatPage)ValidationError)gettext)gettext_lazyc            
            e Zd Z ej         ed          dd ed          d ed          i          Z G d d	          Z fd
Zd Z	d Z
 fdZ x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                       e Zd ZeZdZdS )FlatpageForm.Meta__all__N)__name__
__module____qualname__r   modelfields     [/var/www/pixelcanvas.ch/venv/lib/python3.11/site-packages/django/contrib/flatpages/forms.pyMetar      s        r   r   c                      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__s      r   r"   zFlatpageForm.__init__   s_    $)&))),,.. 	+,S, ,DK(((	 	r   c                 6    t           j        odt           j        v S )Nz)django.middleware.common.CommonMiddleware)r   APPEND_SLASH
MIDDLEWARE)r%   s    r   r#   z%FlatpageForm._trailing_slash_required%   s    ! S;x?RR	
r   c                    | j         d         }|                    d          st          t          d          d          |                                 r3|                    d          st          t          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    s     r   	clean_urlzFlatpageForm.clean_url+   s    &~~c"" 	!9::,    ((** 	3<<3D3D 	!:;;-    
r   c                 6   | j                             d          }| j                             d          }t          j                            |          }| j        j        r |                    | j        j                  }|rw|                    |                                          rO|D ]L}|                    |                                          r"t          t          d          d||d	
          Mt                                                      S )Nr    sites)r    )pk)	sites__in)r6   z:Flatpage with url %(url)s already exists for site %(site)sduplicate_url)r    site)r/   params)r1   getr   objectsfilterinstancer7   excludeexistsr   r$   r!   clean)r%   r    r6   same_urlr:   r(   s        r   rB   zFlatpageForm.clean9   s   ##E**!%%g..#**s*33= 	=''4=+;'<<H 	X__u_55<<>> 	  ???..5577 )VWW,'*D99    ww}}r   )r   r   r   r   
RegexFieldr$   r    r   r"   r#   r4   rB   __classcell__)r(   s   @r   r
   r
   	   s        
%
ahh!
 

 qq: 
  C            
 
 
          r   r
   N)djangor   django.confr   django.contrib.flatpages.modelsr   django.core.exceptionsr   django.utils.translationr   r   r$   	ModelFormr
   r   r   r   <module>rL      s                      4 4 4 4 4 4 2 2 2 2 2 2 , , , , , , 6 6 6 6 6 6A A A A A5? A A A A Ar   