
    k"g	                     v    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y	)
    )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y)FlatpageForm.Meta__all__N)__name__
__module____qualname__r   modelfields     W/var/www/html/djangosite/lib/python3.12/site-packages/django/contrib/flatpages/forms.pyMetar      s    r   r   c                     t        |   |i | | j                         st        d      | j                  d   _        y y )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,DKK( /r   c                 J    t         j                  xr 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	
r   c                     | j                   d   }|j                  d      st        t        d      d      | j	                         r'|j                  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+   sp    &~~c"!9:,  ((*3<<3D!:;-  
r   c                 
   | j                   j                  d      }| j                   j                  d      }t        j                  j	                  |      }| j
                  j                  r&|j                  | j
                  j                        }|ra|j	                  |      j                         rA|D ]<  }|j	                  |      j                         s$t        t        d      d||d	
       t        | 1         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==''4==+;+;'<HX__u_5<<> ???.557)VW,'*D9  w}r   )r   r   r   r   
RegexFieldr$   r    r   r"   r#   r4   rB   __classcell__)r(   s   @r   r
   r
   	   sh    
%

h

 q:
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 2 , 6A5?? Ar   