
    Bh                     F    d dl Z d dlmZ d dlmZ d dlmZ  G d de      Zy)    N)MP_NodeQuerySet)NoHomeFound)RemovedInDjangoCMS60Warningc                   d     e Zd ZdZddZddZddZd Z fdZd Z	 fdZ
 fd	Z fd
Z xZS )PageQuerySetzkAs of django CMS 5.0 the Page model does not have a node property anymore. Use the related fields directly.c                     || j                         S |j                         r| j                         S | j                  |j                  |j
                        S )N)path__startswith
depth__gte)allis_leafnonefilterpathdepth)selfparents     @/home/dcms/DCMS/lib/python3.12/site-packages/cms/models/query.pyget_descendantszPageQuerySet.get_descendants   sD    >88:>>99;{{FKKFLL{QQ    c                 D    ddl m} | |       }| j                  |      S )Nr   )get_current_site)site)	cms.utilsr   r   )r   r   r   s      r   on_sitezPageQuerySet.on_site   s#    .<#%D{{{%%r   c                     	 | j                  |      j                         j                  d      }|S # | j                  j                  $ r t        d      w xY w)NT)is_homezNo Root page found)r   distinctgetmodelDoesNotExistr   )r   r   homes      r   get_homezPageQuerySet.get_home   sZ    	4<<%..044T4BD  zz&& 	4233	4s	   /3 %Ac                 b    | j                  d      j                  d      j                         S )zT
        Returns True if any page on this queryset has an apphook attached.
        N)application_urls )excludeexistsr   s    r   has_apphookszPageQuerySet.has_apphooks%   s,     ||T|2::B:OVVXXr   c                 *    t         t        |           y N)superr   delete)r   	__class__s    r   delete_fastzPageQuerySet.delete_fast+   s    ot+-r   c                 &    | j                  d      S )N   )r   )r   r(   s    r   	root_onlyzPageQuerySet.root_only/   s    {{{##r   c                 .   g }|D ]  }t        |t              r_|j                  d      rNt        j                  | j
                  t        d       |dk7  sP|j                  |j                  dd             r|j                  |        t        | (  | S )Nnode   
stacklevelnode__r%   )
isinstancestr
startswithwarningswarnnode_warningr   appendreplacer,   select_relatedr   
fieldnamesmodifiedfr.   s       r   rA   zPageQuerySet.select_related2   s     
	#A!S!all6&:%%/ 
 ;OOAIIh$;<"
	# w%x00r   c                    i }|j                         D ]`  \  }}t        |t              rF|j                  d      r5t	        j
                  | j                  t        d       |dk(  rS|||dd  <   \|||<   b t        | $  |i |S )Nr4   r5   r6      )
itemsr9   r:   r;   r<   r=   r>   r   r,   r   )r   argskwargsrD   keyvalr.   s         r   r   zPageQuerySet.filterA   s     	$HC#s#v(>%%/ 
 &=$'QR! #	$ w~t0x00r   c                    g }|D ]o  }t        |t              rL|j                  d      r;t        j                  | j
                  t        d       |j                  |dd         _|j                  |       q t        | $  | S )Nr8   r5   r6   rG   )
r9   r:   r;   r<   r=   r>   r   r?   r,   order_byrB   s       r   rN   zPageQuerySet.order_byQ   sy     		#A!S!all8&<%%/ 
 !"&"		# w,,r   r+   )__name__
__module____qualname__r>   r   r   r"   r)   r/   r2   rA   r   rN   __classcell__)r.   s   @r   r   r   	   s>    7LR&Y.$11 - -r   r   )r<   treebeard.mp_treer   cms.exceptionsr   cms.utils.compat.warningsr   r    r   r   <module>rW      s     - & AT-? T-r   