o
    uvXjK	  ã                   @   sJ   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)Ú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ÚURLéd   z^[-\w/\.~]+$zKExample: '/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                   @   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/html/myproject/venv/lib/python3.10/site-packages/django/contrib/flatpages/forms.pyÚMeta   s    r   c                    s2   t ƒ j|i |¤Ž |  ¡ stdƒ| jd _d S d S )Nz=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v S )Nz)django.middleware.common.CommonMiddleware)r   ÚAPPEND_SLASHÚ
MIDDLEWARE)r   r   r   r   r       s   þz%FlatpageForm._trailing_slash_requiredc                 C   sN   | j d }| d¡stjtdƒdd�‚|  ¡ r%| d¡s%tjtdƒ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   ÚValidationErrorr   r   Úendswith)r   r   r   r   r   Ú	clean_url&   s   

þþzFlatpageForm.clean_urlc                    s�   | j  d¡}| j  d¡}tjj|d�}| jjr|j| jjd�}|rC|j|d� ¡ rC|D ]}|j|d� ¡ rBt	j
tdƒd||d	œd
�‚q+tƒ  ¡ S )Nr   Úsites)r   )Úpk)Ú	sites__in)r.   z:Flatpage with url %(url)s already exists for site %(site)sÚduplicate_url)r   Úsite)r'   Úparams)r)   Úgetr   ÚobjectsÚfilterÚinstancer/   ÚexcludeÚexistsr   r+   r   r   Úclean)r   r   r.   Úsame_urlr2   r!   r   r   r:   4   s   ýÿ
zFlatpageForm.clean)r   r   r   r   Ú
RegexFieldr   r   r   r   r   r-   r:   Ú__classcell__r   r   r!   r   r      s     ÿÿûr   N)Údjangor   Údjango.confr   Údjango.contrib.flatpages.modelsr   Údjango.utils.translationr   r   r   Ú	ModelFormr   r   r   r   r   Ú<module>   s
    