
    hs                         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
 d dlmZ d dlmZ d	d
lmZmZ 	 d dlmZ ddZ G d de      Z G d de      Zy# e$ r d dlmZ d ZY +w xY w)    N)get_plugin_toolbar_info)PermissionDenied)Q)JsonResponse)render)get_language)ListView   )AliasCategory)get_plugin_tree)get_plugin_tree_as_jsonc                 @    t        j                  t        | |            S )z;
        Fallback for older versions of django CMS
        )jsonloadsr   )requestpluginss     E/home/dcms/DCMS/lib/python3.12/site-packages/djangocms_alias/views.pyr   r      s     zz1'7CDD    c                    g g }}|D ]  }|j                   r|j                   j                         n|}|gt        |j                               z   }|j                  j                  |j                  |j                        }	t        | |      }
t        |      }|	|d<   |j                  |
       |j                  t        j                  |             |j                  t        j                  t        |            t        j                  |
      f        ||dd}|!t        j                  t        |            |d<   |%t        j                  |j                  dd      |d<   t        | d|      S )	N)	parent_idplugin_orderT)added_pluginsmoved_pluginsis_popupreplaced_plugin)placeholder_iddeletedreplaced_placeholderz"djangocms_alias/alias_replace.html)parentget_bound_pluginlistget_descendantsplaceholderget_plugin_tree_orderlanguager   r   r   updateappendr   dumpspkr   )r   new_pluginssource_placeholdersource_pluginmove_pluginsadd_pluginspluginrootr   r   plugin_tree	move_datacontexts                r   render_replace_responser5      sg    "B+L 
39==v}}--/f&4 4 4 677))??OO&& @ 
 &gw7+F3	$0	.!%DJJy12

26:;

;'	

* %%G
  %)ZZ#M2&
!" %*.**"4"7"7+
&' '?IIr   c                   j     e Zd Zej                  j                  d      Zd Z fdZ fdZ	d Z
 xZS )CategorySelect2Viewtranslations__namec                     | j                         | _        | j                         }t        |d   D cg c]  }t	        |      |j
                  d c}|d   j                         d      S c c}w Nobject_list)textidpage_obj)resultsmoreget_querysetr;   get_context_datar   strr*   has_nextselfr   argskwargsr4   objs         r   getzCategorySelect2View.getG   z    ,,.'')  '}5
  !$C!ff  
+446	
 	
   A,c                 b    |j                   j                  st        t        |   |g|i |S Nuseris_staffr   superdispatchrG   r   rH   rI   	__class__s       r   rT   zCategorySelect2View.dispatchW   0    ||$$""w9$9&99r   c                 d   | j                   j                  j                  d      }| j                   j                  j                  d      }t        |          }|j                  d      }	 t        | j                   j                  j                  d            }t               }|r|t        |      z  }|r|t        |      t        d      z  z  }|r|t        |	      z  }|j                  t                     j                  |      j                         S # t        t        f$ r d}Y w xY w)
z|
        Only show Categories that have an Alias attached.
        If site is selected, use that to filter further.
        termsiteF)aliases__isnullr*   N)translations__name__icontains)aliases__siter*   )r   GETrK   rS   rB   filterint	TypeError
ValueErrorr   
translatedr   distinct)rG   rY   rZ   querysetr*   qrV   s         r   rB   z CategorySelect2View.get_queryset\   s   
 ||##F+||##F+7')??5?9	T\\%%))$/0B C66A&)>>>AbMA""<>299!<EEGG :& 	B	s   -.D D/.D/c                 N    | j                   j                  j                  dd      S Nlimit   r   r_   rK   rG   rf   s     r   get_paginate_byz#CategorySelect2View.get_paginate_byv       ||##GR00r   )__name__
__module____qualname__r   objectsorder_byrf   rK   rT   rB   rn   __classcell__rV   s   @r   r7   r7   D   s/    (()=>H
 :
H41r   r7   c                   l     e Zd Zej                  j                  dd      Zd Z fdZ fdZ	d Z
 xZS )AliasSelect2Viewcategory__translations__namepositionc                     | j                         | _        | j                         }t        |d   D cg c]  }t	        |      |j
                  d c}|d   j                         d      S c c}w r:   rA   rF   s         r   rK   zAliasSelect2View.get}   rL   rM   c                 b    |j                   j                  st        t        |   |g|i |S rO   rP   rU   s       r   rT   zAliasSelect2View.dispatch   rW   r   c                    | j                   j                  j                  d      }| j                   j                  j                  d      }| j                   j                  j                  d      }t        |          j                  t                     j                         }	 t        | j                   j                  j                  d            }t               }|r|t        |      z  }|r|t        |      z  }|r|t        |      t        d       z  z  }|r|t        |	      z  }|j                  |      j                         S # t        t        f$ r d }Y w xY w)
NrY   categoryrZ   )contents__languager*   )contents__name__icontains)r~   )rZ   r^   )r   r_   rK   rS   rB   r`   r   re   ra   rb   rc   r   )rG   rY   r~   rZ   rf   r*   rg   rV   s          r   rB   zAliasSelect2View.get_queryset   s0   ||##F+<<##''
3||##F+ G V#/>   XZ 		T\\%%))$/0B CT22AH%%At,,AbMAq!**,, :& 	B	s   &.E E"!E"c                 N    | j                   j                  j                  dd      S ri   rl   rm   s     r   rn   z AliasSelect2View.get_paginate_by   ro   r   )rp   rq   rr   r   rs   rt   rf   rK   rT   rB   rn   ru   rv   s   @r   rx   rx   z   s.    }}%%&DjQH
 :
->1r   rx   )NN)r   cms.toolbar.utilsr   django.core.exceptionsr   django.db.modelsr   django.httpr   django.shortcutsr   django.utils.translationr   django.views.genericr	   modelsr   r   r   ImportErrorr   r5   r7   rx    r   r   <module>r      sj     5 3  $ # * #	E1&JR31( 31l81x 81S  E9EEs   A A*)A*