
    Bh                     8   d dl mZ d dlmZ d dlmZmZ d dlmZ d dl	m
Z
 d dlmZmZmZmZ d dlmZ d dlmZ d	 Zd
 ZddZddZddZ ej2                  ee        ej2                  ee        ej2                  ee        ej2                  ee       y)    )Site)Prefetch)post_delete	post_save)escape)	mark_safe)_page_cache_key_site_cache_keyclean_page_choices_cacheclean_site_choices_cache)Page)i18nc                      t         j                  j                  d      j                  d      j	                         } | S )NF)djangocms_pages__isnullname)r   objectsfilterorder_bydistinct)sitess    ?/home/dcms/DCMS/lib/python3.12/site-packages/cms/forms/utils.py	get_sitesr      s3    			.	&		 
 L    c           
   #     K   ddl m} t        j                  || j                        }|g|z   }t        dd|j                  j                  |      j                  ddd	d
            }t        j                  j                  |       j                  |      j                  d      j                  d      }|D ]~  }|j                  }|D 	ci c]  }	|	j                  |	j                   }
}	|D ]G  }||
v s|
|   }d|j                   dz
  z  }t#        | t%        |             }|j                  |f  ~  y c c}	w w)Nr   )PageContent)site_idpagecontent_setfiltered_translations)language__inpkpagelanguagetitle)to_attrquerysetpathz&nbsp;&nbsp;   )
cms.modelsr   r   get_fallback_languagesr    r   r   r   onlyr   on_siteprefetch_relatedr   r   r"   r#   depthr   r   )siter"   r   	fallbacks	languagestranslation_lookuppagesr!   translationstranspagecontent_by_languagelangr#   indentlabels                  r   get_page_choices_for_siter9      s<    &++HdggFI
Y&I!'$$+++CHHvWacjk 					,	-	&		d 
  11LX"Y55>>5;;#>"Y"Y 	D ../5'4::>:!VHVE]O"<=ww&&		"Ys   C	D?D:)D?5A
D?Nc                    | t        j                         } g }dg}t        |       }t        |       }t	               D ][  }t        t        ||             }|j                  |j                  |j                  f       |j                  |j                  |f       ] ddl
m} |j                  ||d       |j                  ||d       ||fS )N) z----r   cacheiQ )r   get_current_languager
   r	   r   listr9   appendr    r   django.core.cacher=   set)r"   site_choicespage_choicessite_choices_keypage_choices_keyr.   _page_choicesr=   s           r   update_site_and_page_choicesrH   >   s    ,,.L >L&x0&x0 86tXFGTWWdii01TYY678
 ( 
IIe4	IIe4%%r   c                     ddl m} | xs t        j                         } |j	                  t        |             }|t        |       \  }}|S Nr   r<   )rA   r=   r   r>   getr
   rH   )r6   r=   rC   _s       r   get_site_choicesrM   T   sE    '.4,,.D99_T23L6t<ar   c                     ddl m} | xs t        j                         } |j	                  t        |             }|t        |       \  }}|S rJ   )rA   r=   r   r>   rK   r	   rH   )r6   r=   rD   rL   s       r   get_page_choicesrO   ]   sE    '.4,,.D99_T23L6t<<r   )sender)N)django.contrib.sites.modelsr   django.db.modelsr   django.db.models.signalsr   r   django.utils.htmlr   django.utils.safestringr   cms.cache.choicesr	   r
   r   r   r(   r   	cms.utilsr   r   r9   rH   rM   rO   connect r   r   <module>rZ      s    , % ; $ -   D&, 	  *4 8 	  *4 8   ,T :   ,T :r   