
    h@                     t   d dl 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
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 d dlmZ d dlmZ d dlmZmZ ddlmZmZ erd dlmZ dede defdZ!de de"d   fdZ#ejH                  du sde jJ                  v r ee#      Z#de&dedejN                  de fdZ(d Z)y)     N)cache)TYPE_CHECKING)Placeholder)BaseRenderer)_get_nodelist_scan_placeholders)settings)ContentType)models)HttpRequest)get_templateTemplateResponse)	mark_safe)StaticAlias_static_alias_editing_enabled   )AliasAliasContent)DeclaredStaticAliasrequestalias_contentreturnc                 (    d}d|i}t        | ||      S )Nz*djangocms_alias/alias_content_preview.htmlr   r   )r   r   templatecontexts       I/home/dcms/DCMS/lib/python3.12/site-packages/djangocms_alias/rendering.pyrender_alias_contentr      s     ;H.GGXw77    r   r   c                     t         du rg S t        |       }t        t        |      t              }|D cg c]  }|j                          }}|D cg c]  }|j                  s| c}S c c}w c c}w )zjScan a template for static_alias declarations.
    Returns a list of DeclaredStaticAlias namedtuples.
    F)
node_class)r   r   r   r   r   get_declarationstatic_code)r   compiled_templatenodesnodeplaceholdersplaceholders         r   get_declared_static_aliasesr)      sk     %-	$X..? @kZE7<=tD((*=L=+7SK;;R;RKSS >Ss   A*A/#A/FPYTEST_VERSIONr   rendererobjc                    | j                  d      } t        |dd              }|syt        t        |dd       dd       }t        |      }|sy|D cg c]  }|j                  s|j                   }}|D cg c]  }|j                  r|j                   }	}|r!t        j                  ||j                        nt        j                         }
|	r|
t        j                  |	d	      z  }
t        j                  j                  |
      }t        j                  j                  t              }t        j                  j                  |
      j!                  dd      }t"        j                  j                  ||      D ci c]  }|j$                  | }}g }|D ]J  }|j                  |j                        }|s!d|_        |j)                  |j+                  |||             L dj-                  |      S c c}w c c}w c c}w )Nr   r   c                       y )N r/   r   r   <lambda>z+render_alias_structure_js.<locals>.<lambda>4   s    r    toolbarrequest_language)static_code__insiteT)r4   site__isnull)	alias__inpk)flat)content_typeobject_id__in)languagepage
)getgetattrr)   r5   r#   r   Qcurrent_siter   objectsfilterr
   get_for_modelr   admin_managercurrent_contentvalues_listr   slot	is_staticappendrender_placeholderjoin)r   r+   r,   r   r   langdeclareda
site_codesnosite_codesq_partsalias_qs
content_ct	alias_pksphr'   js_partsdecls                     r   render_alias_structure_jsrZ   0   s   kk)$G :wsNL9;H 77It46H$OD +84H *2<AQVV!--<J<+3Ba166AMMBLBR\fhhz8M8MNbhbjbjblG688LtLL}}##G,H $$22<@J**::X:NZZ[_fjZkI*5*=*=*D*DR\lu*D*vwBBGGRKwLw H Rd../33BC3PQR 99X) =B xs   G;$G;8H 
H Hc                 |     ddl m} dt        dt        dt        j
                  f fd}|j                  |dd	      S )
Nr   )registerr   r+   r,   c                 R     | ||      }t        | ||      }t        | d|       S )Nr>   )rZ   r   )r   r+   r,   cms_jsalias_jstags        r   extended_static_alias_jsz5add_static_alias_js.<locals>.extended_static_alias_js[   s5    Wh,,WhDF82hZ011r   Trender_cms_structure_js)functakes_contextname)cms.templatetags.cms_js_tagsr\   dictr   r   Model
simple_tag)r`   r\   ra   s   `  r   add_static_alias_jsrj   X   s@    52$ 2, 2V\\ 2
 $<DWpqqr   )*os	functoolsr   typingr   
cms.modelsr   cms.plugin_renderingr   cms.utils.placeholderr   r   django.confr	   "django.contrib.contenttypes.modelsr
   	django.dbr   django.httpr   django.template.loaderr   django.template.responser   django.utils.safestringr   1djangocms_alias.templatetags.djangocms_alias_tagsr   r   r   r   r   strr   listr)   DEBUGenvironrg   rh   rZ   rj   r/   r   r   <module>r}      s    	    " - C   :  # / 5 - h 'U8+ 8c 8FV 8	T# 	T$7L2M 	T >>U."**< #((C"D%t %| %&,, %[^ %Prr   