
    h                         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
 G d dej                        Z G d	 d
      Z G d de      Zy)    )forms)ValidationError)gettext_lazy)EntangledModelFormMixinc                   $     e Zd Z fdZd Z xZS )TitleWidgetc                     |j                  dt        j                         t        j                         f       t	        |   |i | y )Nwidgets)
setdefaultr   CheckboxInput	TextInputsuper__init__selfargskwargs	__class__s      O/home/dcms/DCMS/lib/python3.12/site-packages/djangocms_frontend/common/title.pyr   zTitleWidget.__init__   sC    ##%!	
 	$)&)    c                 r    t        |t              r$|j                  dd      |j                  dd      gS ddgS )NshowFtitle )
isinstancedictget)r   values     r   
decompresszTitleWidget.decompress   s7    eT"IIfe,eii.DEEr{r   )__name__
__module____qualname__r   r   __classcell__r   s   @r   r   r      s    *r   r   c                   .     e Zd Z fdZ fdZd Z xZS )
TitleFieldc                     |j                  dt        j                  d      t        j                  d      f       |j                  dd       |j                  dt	                      t        |   |i | y )NfieldsF)requiredrequire_all_fieldswidget)r   r   BooleanField	CharFieldr   r   r   r   s      r   r   zTitleField.__init__   sj    ""E2/	
 	.6(KM2$)&)r   c                 b    |d   r|d   st        t        d      d      t        |   |      S )Nr      z-Please add a title if you want to publish it.
incomplete)code)r   _r   clean)r   r   r   s     r   r3   zTitleField.clean%   s3    8E!H!!$S"T[ghhw}U##r   c                 (    t        |d   |d         S )Nr   r/   r   r   )r   )r   	data_lists     r   compresszTitleField.compress*   s    1Yq\::r   )r    r!   r"   r   r3   r7   r#   r$   s   @r   r&   r&      s    
*$
;r   r&   c                        e Zd Z fdZ xZS )
TitleMixinc                     |j                   j                  di       j                  dd      r,|j                  d|j                  j                  dd             t        |   |||      S )Nplugin_titler   Fr   r   )configr   add_attributer;   r   render)r   contextinstanceplaceholderr   s       r   r>   zTitleMixin.render/   sZ    ??~r266vuE""7H,A,A,E,Egr,RSw~gx==r   )r    r!   r"   r>   r#   r$   s   @r   r9   r9   .   s    > >r   r9   c                   V    e Zd Z G d d      Z e ed      dddd ed            Zy	)
TitleFormMixinc                       e Zd ZddgiZy)TitleFormMixin.Metar<   r;   N)r    r!   r"   entangled_fields r   r   MetarE   6   s    
r   rH   TitleFr   r5   zOptional title of the plugin for easier identification. Its <code>title</code> attribute will only be set if the checkbox is selected.)labelr)   initial	help_textN)r    r!   r"   rH   r&   r2   r;   rG   r   r   rC   rC   5   s7    
 
 j,<
		Lr   rC   N)djangor   django.core.exceptionsr   django.utils.translationr   r2   entangled.formsr   MultiWidgetr   MultiValueFieldr&   r9   rC   rG   r   r   <module>rS      sL     2 6 3%## ";&& ;,> >, r   