
    h                         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mZ d Z G d	 d
e      Z G d de      Z G d d      Zy)    )__version__)ContentRendererStructureRenderer)rescan_placeholders_for_obj)cached_property   )versionables)DRAFT	PUBLISHEDc                 2   | j                         \  } }| j                  j                         D cg c]  }|j                  s|j                  r|  }}|D ](  }	 t        j                  |j                  j                        }|j                  s|j                  r@|j                  j                  j                  t        t         f      j#                  d      }n$|j                  j$                  j'                         }t)        | |j*                        }|s|j,                  |i}	d|j.                  v r|j0                  |	d<    |j                  di |	}|j2                  j                  j*                  |i}
|
|_        + y c c}w # t        $ r Y >w xY w)N)versions__state__inversions__statelanguage )get_plugin_instance_meta
get_fieldsis_relationauto_createdr	   for_grouperremote_fieldmodelKeyErroredit_mode_activepreview_mode_activecontent_model_base_managerfilterr
   r   order_byobjectsallgetattrnamegrouper_field_nameextra_grouping_fieldsrequest_languagegrouper_field_prefetched_objects_cache)instancetoolbarpluginfcandidate_fieldsfieldversionableqsrelated_fieldfiltersprefetch_caches              U/home/dcms/DCMS/lib/python3.12/site-packages/djangocms_versioning/plugin_rendering.py"prefetch_versioned_related_objectsr5      sy   335Hf >>,,.!--  " E	&2253E3E3K3KLK ##w'B'B**88??%*I$6 @ h()  **22668B%**5"55}EG [>>>&-&>&>
#%W%B)77DDII2NN6DM3)E  		s#   FFF)F			FFc                   :     e Zd Zd fd	Zedv r		 ddZ xZS  xZS )VersionContentRendererc                 T    t        || j                         t        |   ||||      S Nr5   r*   superrender_plugin)selfr)   contextplaceholdereditable	__class__s        r4   r<   z$VersionContentRenderer.render_plugin)   s'    *8T\\Bw$XwXNN    )z4.1.0z4.1.1c                     ddl m} | j                  j                         }t	        |       |j
                  j                  |      j                  |      }| j                  ||||dd       }	|	S )Nr   )Placeholder)slotT)r>   pager@   	use_cachenodelist)	
cms.modelsrD   r*   
get_objectr   r    get_for_objgetrender_placeholder)
r=   rE   r>   inheritrH   r@   rD   current_objr?   contents
             r4   render_obj_placeholderz-VersionContentRenderer.render_obj_placeholder0   sv     /,,113K (4%--99+FJJPTJUK-- ! . G NrB   )NF)NT)__name__
__module____qualname__r<   cms_versionrQ   __classcell__rA   s   @r4   r7   r7   (   s%    O (( CG	 )rB   r7   c                         e Zd Zd fd	Z xZS )VersionStructureRendererc                 P    t        || j                         t        |   ||      S r9   r:   )r=   r)   rF   rA   s      r4   r<   z&VersionStructureRenderer.render_pluginJ   s#    *8T\\Bw$Xt44rB   r9   )rR   rS   rT   r<   rV   rW   s   @r4   rY   rY   I   s    5 5rB   rY   c                   ,    e Zd Zed        Zed        Zy)CMSToolbarVersioningMixinc                 .    t        | j                        S N)request)r7   r_   r=   s    r4   content_rendererz*CMSToolbarVersioningMixin.content_rendererP   s    %dll;;rB   c                 .    t        | j                        S r^   )rY   r_   r`   s    r4   structure_rendererz,CMSToolbarVersioningMixin.structure_rendererT   s    '==rB   N)rR   rS   rT   r   ra   rc   r   rB   r4   r\   r\   O   s(    < < > >rB   r\   N)cmsr   rU   cms.plugin_renderingr   r   cms.utils.placeholderr   django.utils.functionalr    r	   	constantsr
   r   r5   r7   rY   r\   r   rB   r4   <module>rj      sA    * C = 3  'E:_ B50 5> >rB   