
    >Tf+                     P	   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mZ ddlmZmZmZ dd	lT  G d
 dej                  Z G d dej                  Z ee           G d deej                              Z eed           G d dej                              Z eed           G d dej                              Z G d dej                  Z  G d dej!                  Z" G d dej#                  Z$ G d dej                  Z% ee&           G d deej                              Z' ee&d           G d  d!ej                              Z( ee&d           G d" d#ej                              Z) G d$ d%ej                  Z* G d& d'ej!                  Z+ G d( d)ej#                  Z, ee&d*           G d+ d,e                      Z- G d- d.ej                  Z. ee/           G d/ d0eej                              Z0 ee/d           G d1 d2ej                              Z1 ee/d           G d3 d4ej                              Z2 G d5 d6ej                  Z3 G d7 d8ej!                  Z4 G d9 d:ej#                  Z5 G d; d<ej                  Z6 ee7           G d= d>eej                              Z8 ee7d           G d? d@ej                              Z9 ee7d           G dA dBej                              Z: G dC dDej                  Z; G dE dFej!                  Z< G dG dHej#                  Z= G dI dJej                  Z> ee?           G dK dLej                              Z@ ee?d           G dM dNej                              ZA ee?d           G dO dPej                              ZB G dQ dRej                  ZC G dS dTej!                  ZD G dU dVej#                  ZE G dW dXej                  ZF eeGd           G dY dZej                              ZH G d[ d\ej!                  ZI G d] d^ej                  ZJ G d_ d`ej#                  ZK eeGd           G da dbej                              ZLdcS )d    )ContentType)get_object_or_404)gettext)generic)count_related)GetRelatedModelsMixinViewTabregister_model_view   )
filtersetsformstables)*c                        e Zd ZeZej        Zej	        Z
ej        ZdZ e ed          d dd          Zd Z fdZ xZS )	ObjectContactsViewztenancy/object_contacts.htmlContactsc                 4    | j                                         S )N)contactscount)objs    2/var/www/html/netbox-4.1.3/netbox/tenancy/views.py<lambda>zObjectContactsView.<lambda>   s    #,,,..     ztenancy.view_contactassignmenti  )labelbadge
permissionweightc                     t           j                            |j        d                              t
          j                            |          |j                                      ddd          S )Nviewobject_type	object_idprioritycontactrole)	ContactAssignmentobjectsrestrictuserfilterr   get_for_modelpkorder_by)selfrequestparents      r   get_childrenzObjectContactsView.get_children   sa     (11',GGNN#+99&AAi O 
 
 (:y&
1
1	2r   c                      t                      j        |i |}|j                            d           |j                            d           |S )Nr!   object)super	get_tablecolumnshide)r.   argskwargstable	__class__s       r   r5   zObjectContactsView.get_table   sQ    !!42622 	=)))8$$$r   )__name__
__module____qualname__r&   child_modelr   ContactAssignmentTabler:   r   ContactAssignmentFilterSet	filtersetr   ContactAssignmentFilterFormfilterset_formtemplate_namer	   _tabr1   r5   __classcell__)r;   s   @r   r   r      s        #K)E5I6N2M
'a
mm..3	  C2 2 2        r   r   c                       e Zd Zej                            ej                                        eddd          Ze	j
        Zej        Zej        ZdS )TenantGroupListViewgrouptenant_countT
cumulativeN)r<   r=   r>   TenantGroupr'   add_related_countallTenantquerysetr   TenantGroupFilterSetrB   r   TenantGroupFilterFormrD   r   TenantGroupTabler:    r   r   rJ   rJ   -   sc        "44!! 5  H /I0N#EEEr   rJ   c                   F    e Zd Zej                                        Zd ZdS )TenantGroupViewc                 ^    |                     d          }d|                     ||          iS NT)include_selfrelated_modelsget_descendantsget_related_modelsr.   r/   instancegroupss       r   get_extra_contextz!TenantGroupView.get_extra_context>   9    ))t)<< d55gvFF
 	
r   N)r<   r=   r>   rO   r'   rQ   rS   rd   rW   r   r   rY   rY   :   s7        "&&((H
 
 
 
 
r   rY   editc                   N    e Zd Zej                                        Zej        Z	dS )TenantGroupEditViewN)
r<   r=   r>   rO   r'   rQ   rS   r   TenantGroupFormformrW   r   r   rh   rh   F   *        "&&((H DDDr   rh   deletec                   @    e Zd Zej                                        ZdS )TenantGroupDeleteViewN)r<   r=   r>   rO   r'   rQ   rS   rW   r   r   rn   rn   L   "        "&&((HHHr   rn   c                   N    e Zd Zej                                        Zej        Z	dS )TenantGroupBulkImportViewN)
r<   r=   r>   rO   r'   rQ   rS   r   TenantGroupImportForm
model_formrW   r   r   rq   rq   Q   *        "&&((H,JJJr   rq   c                       e Zd Zej                            ej                                        eddd          Ze	j
        Zej        Zej        ZdS )TenantGroupBulkEditViewrK   rL   TrM   N)r<   r=   r>   rO   r'   rP   rQ   rR   rS   r   rT   rB   r   rV   r:   r   TenantGroupBulkEditFormrj   rW   r   r   rv   rv   V   sc        "44!! 5  H /I#E(DDDr   rv   c                       e Zd Zej                            ej                                        eddd          Ze	j
        Zej        ZdS )TenantGroupBulkDeleteViewrK   rL   TrM   N)r<   r=   r>   rO   r'   rP   rQ   rR   rS   r   rT   rB   r   rV   r:   rW   r   r   ry   ry   c   s[        "44!! 5  H /I#EEEr   ry   c                   j    e Zd Zej                                        Zej        Z	e
j        Zej        ZdS )TenantListViewN)r<   r=   r>   rR   r'   rQ   rS   r   TenantFilterSetrB   r   TenantFilterFormrD   r   TenantTabler:   rW   r   r   r{   r{   s   s9        ~!!##H*I+NEEEr   r{   c                   F    e Zd Zej                                        Zd ZdS )
TenantViewc                 2    d|                      ||          iS Nr]   r`   r.   r/   rb   s      r   rd   zTenantView.get_extra_context~   !    d55gxHH
 	
r   N)r<   r=   r>   rR   r'   rQ   rS   rd   rW   r   r   r   r   z   s6        ~!!##H
 
 
 
 
r   r   c                   N    e Zd Zej                                        Zej        Z	dS )TenantEditViewN)
r<   r=   r>   rR   r'   rQ   rS   r   
TenantFormrj   rW   r   r   r   r      s)        ~!!##HDDDr   r   c                   @    e Zd Zej                                        ZdS )TenantDeleteViewNr<   r=   r>   rR   r'   rQ   rS   rW   r   r   r   r      !        ~!!##HHHr   r   c                   N    e Zd Zej                                        Zej        Z	dS )TenantBulkImportViewN)
r<   r=   r>   rR   r'   rQ   rS   r   TenantImportFormrs   rW   r   r   r   r      s)        ~!!##H'JJJr   r   c                   j    e Zd Zej                                        Zej        Z	e
j        Zej        ZdS )TenantBulkEditViewN)r<   r=   r>   rR   r'   rQ   rS   r   r|   rB   r   r~   r:   r   TenantBulkEditFormrj   rW   r   r   r   r      s9        ~!!##H*IE#DDDr   r   c                   \    e Zd Zej                                        Zej        Z	e
j        ZdS )TenantBulkDeleteViewN)r<   r=   r>   rR   r'   rQ   rS   r   r|   rB   r   r~   r:   rW   r   r   r   r      s1        ~!!##H*IEEEr   r   r   c                   @    e Zd Zej                                        ZdS )TenantContactsViewNr   rW   r   r   r   r      r   r   r   c                       e Zd Zej                            ej                                        eddd          Ze	j
        Zej        Zej        ZdS )ContactGroupListViewrK   contact_countTrM   N)r<   r=   r>   ContactGroupr'   rP   rQ   ContactrS   r   ContactGroupFilterSetrB   r   ContactGroupFilterFormrD   r   ContactGroupTabler:   rW   r   r   r   r      sc        #55  "" 6  H 0I1N$EEEr   r   c                   F    e Zd Zej                                        Zd ZdS )ContactGroupViewc                 ^    |                     d          }d|                     ||          iS r[   r^   ra   s       r   rd   z"ContactGroupView.get_extra_context   re   r   N)r<   r=   r>   r   r'   rQ   rS   rd   rW   r   r   r   r      s7        #''))H
 
 
 
 
r   r   c                   N    e Zd Zej                                        Zej        Z	dS )ContactGroupEditViewN)
r<   r=   r>   r   r'   rQ   rS   r   ContactGroupFormrj   rW   r   r   r   r      s*        #''))H!DDDr   r   c                   @    e Zd Zej                                        ZdS )ContactGroupDeleteViewN)r<   r=   r>   r   r'   rQ   rS   rW   r   r   r   r      s"        #''))HHHr   r   c                   N    e Zd Zej                                        Zej        Z	dS )ContactGroupBulkImportViewN)
r<   r=   r>   r   r'   rQ   rS   r   ContactGroupImportFormrs   rW   r   r   r   r      s*        #''))H-JJJr   r   c                       e Zd Zej                            ej                                        eddd          Ze	j
        Zej        Zej        ZdS )ContactGroupBulkEditViewrK   r   TrM   N)r<   r=   r>   r   r'   rP   rQ   r   rS   r   r   rB   r   r   r:   r   ContactGroupBulkEditFormrj   rW   r   r   r   r      sc        #55  "" 6  H 0I$E)DDDr   r   c                       e Zd Zej                            ej                                        eddd          Ze	j
        Zej        ZdS )ContactGroupBulkDeleteViewrK   r   TrM   N)r<   r=   r>   r   r'   rP   rQ   r   rS   r   r   rB   r   r   r:   rW   r   r   r   r      s[        #55  "" 6  H 0I$EEEr   r   c                   j    e Zd Zej                                        Zej        Z	e
j        Zej        ZdS )ContactRoleListViewN)r<   r=   r>   ContactRoler'   rQ   rS   r   ContactRoleFilterSetrB   r   ContactRoleFilterFormrD   r   ContactRoleTabler:   rW   r   r   r   r      s:        "&&((H/I0N#EEEr   r   c                   F    e Zd Zej                                        Zd ZdS )ContactRoleViewc                 2    d|                      ||          iS r   r   r   s      r   rd   z!ContactRoleView.get_extra_context   r   r   N)r<   r=   r>   r   r'   rQ   rS   rd   rW   r   r   r   r      s7        "&&((H
 
 
 
 
r   r   c                   N    e Zd Zej                                        Zej        Z	dS )ContactRoleEditViewN)
r<   r=   r>   r   r'   rQ   rS   r   ContactRoleFormrj   rW   r   r   r   r     rk   r   r   c                   @    e Zd Zej                                        ZdS )ContactRoleDeleteViewN)r<   r=   r>   r   r'   rQ   rS   rW   r   r   r   r     ro   r   r   c                   N    e Zd Zej                                        Zej        Z	dS )ContactRoleBulkImportViewN)
r<   r=   r>   r   r'   rQ   rS   r   ContactRoleImportFormrs   rW   r   r   r   r     rt   r   r   c                   j    e Zd Zej                                        Zej        Z	e
j        Zej        ZdS )ContactRoleBulkEditViewN)r<   r=   r>   r   r'   rQ   rS   r   r   rB   r   r   r:   r   ContactRoleBulkEditFormrj   rW   r   r   r   r     s:        "&&((H/I#E(DDDr   r   c                   \    e Zd Zej                                        Zej        Z	e
j        ZdS )ContactRoleBulkDeleteViewN)r<   r=   r>   r   r'   rQ   rS   r   r   rB   r   r   r:   rW   r   r   r   r     s2        "&&((H/I#EEEr   r   c                       e Zd Zej                             eed                    Ze	j
        Zej        Zej        ZdS )ContactListViewr$   assignment_countN)r<   r=   r>   r   r'   annotater   r&   rS   r   ContactFilterSetrB   r   ContactFilterFormrD   r   ContactTabler:   rW   r   r   r   r   "  sT        ''&'8)DD (  H +I,NEEEr   r   c                   @    e Zd Zej                                        ZdS )ContactViewNr<   r=   r>   r   r'   rQ   rS   rW   r   r   r   r   +  !        ""$$HHHr   r   c                   N    e Zd Zej                                        Zej        Z	dS )ContactEditViewN)
r<   r=   r>   r   r'   rQ   rS   r   ContactFormrj   rW   r   r   r   r   0  s)        ""$$HDDDr   r   c                   @    e Zd Zej                                        ZdS )ContactDeleteViewNr   rW   r   r   r   r   6  r   r   r   c                   N    e Zd Zej                                        Zej        Z	dS )ContactBulkImportViewN)
r<   r=   r>   r   r'   rQ   rS   r   ContactImportFormrs   rW   r   r   r   r   ;  s)        ""$$H(JJJr   r   c                       e Zd Zej                             eed                    Ze	j
        Zej        Zej        ZdS )ContactBulkEditViewr$   r   N)r<   r=   r>   r   r'   r   r   r&   rS   r   r   rB   r   r   r:   r   ContactBulkEditFormrj   rW   r   r   r   r   @  sT        ''&'8)DD (  H +IE$DDDr   r   c                   t    e Zd Zej                             eed                    Ze	j
        Zej        ZdS )ContactBulkDeleteViewr$   r   N)r<   r=   r>   r   r'   r   r   r&   rS   r   r   rB   r   r   r:   rW   r   r   r   r   I  sL        ''&'8)DD (  H +IEEEr   r   c                       e Zd Zej                                        Zej        Z	e
j        Zej        ZdhdhdhdhdZdS )ContactAssignmentListViewaddr   changerl   )importexport	bulk_editbulk_deleteN)r<   r=   r>   r&   r'   rQ   rS   r   rA   rB   r   rC   rD   r   r@   r:   actionsrW   r   r   r   r   U  sZ         (,,..H5I6N)E'(Z z	 GGGr   r   c                   Z    e Zd Zej                                        Zej        Z	d Z
d ZdS )ContactAssignmentEditViewc                     |j         snt          t          |j                            d                    }t          |                                |j                            d                    |_        |S )Nr!   )r,   r"   )r,   r   r   GETgetmodel_classr3   )r.   rb   r/   r8   r9   r!   s         r   alter_objectz&ContactAssignmentEditView.alter_objectg  sa    { 	l+KGKOOM<Z<Z[[[K/0G0G0I0Igkoo^iNjNjkkkHOr   c                 l    |j                             d          |j                             d          dS )Nr!   r"   r    )r   r   )r.   r/   s     r   get_extra_addanother_paramsz5ContactAssignmentEditView.get_extra_addanother_paramsn  s3    ";??=99 55
 
 	
r   N)r<   r=   r>   r&   r'   rQ   rS   r   ContactAssignmentFormrj   r   r   rW   r   r   r   r   b  sN         (,,..H&D  
 
 
 
 
r   r   c                   j    e Zd Zej                                        Zej        Z	e
j        Zej        ZdS )ContactAssignmentBulkEditViewN)r<   r=   r>   r&   r'   rQ   rS   r   rA   rB   r   r@   r:   r   ContactAssignmentBulkEditFormrj   rW   r   r   r   r   u  s:         (,,..H5I)E.DDDr   r   c                   N    e Zd Zej                                        Zej        Z	dS )ContactAssignmentBulkImportViewN)
r<   r=   r>   r&   r'   rQ   rS   r   ContactAssignmentImportFormrs   rW   r   r   r   r   |  s*         (,,..H2JJJr   r   c                   \    e Zd Zej                                        Zej        Z	e
j        ZdS )ContactAssignmentBulkDeleteViewN)r<   r=   r>   r&   r'   rQ   rS   r   rA   rB   r   r@   r:   rW   r   r   r   r     s2         (,,..H5I)EEEr   r   c                   @    e Zd Zej                                        ZdS )ContactAssignmentDeleteViewN)r<   r=   r>   r&   r'   rQ   rS   rW   r   r   r   r     s"         (,,..HHHr   r   N)M"django.contrib.contenttypes.modelsr   django.shortcutsr   django.utils.translationr   rF   netbox.viewsr   utilities.queryr   utilities.viewsr   r	   r
    r   r   r   modelsObjectChildrenViewr   ObjectListViewrJ   rO   
ObjectViewrY   ObjectEditViewrh   ObjectDeleteViewrn   BulkImportViewrq   BulkEditViewrv   BulkDeleteViewry   r{   rR   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r&   r   r   r   r   r   rW   r   r   <module>r     s
   : : : : : : . . . . . . 1 1 1 1 1 1             ) ) ) ) ) ) O O O O O O O O O O ' ' ' ' ' ' ' ' ' '        3   B
$ 
$ 
$ 
$ 
$'0 
$ 
$ 
$ [!!
 
 
 
 
+W-? 
 
 "!
 [&))! ! ! ! !'0 ! ! *)!
 [(++) ) ) ) )G4 ) ) ,+)- - - - - 6 - - -

) 
) 
) 
) 
)g2 
) 
) 
)	$ 	$ 	$ 	$ 	$ 6 	$ 	$ 	$     W+    V
 
 
 
 
&(: 
 
 
 VV$$    W+   %$
 VX&&$ $ $ $ $w/ $ $ '&$( ( ( ( (71 ( ( (
$ $ $ $ $- $ $ $    71    VZ(($ $ $ $ $+ $ $ )($
% 
% 
% 
% 
%71 
% 
% 
% \""
 
 
 
 
,g.@ 
 
 #"
 \6**" " " " "71 " " +*"
 \8,,* * * * *W5 * * -,*. . . . .!7 . . .

* 
* 
* 
* 
*w3 
* 
* 
*	% 	% 	% 	% 	%!7 	% 	% 	% $ $ $ $ $'0 $ $ $ [!!
 
 
 
 
+W-? 
 
 "!
 [&))! ! ! ! !'0 ! ! *)!
 [(++) ) ) ) )G4 ) ) ,+)- - - - - 6 - - -
) ) ) ) )g2 ) ) )$ $ $ $ $ 6 $ $ $         g,       W% % % % %'$ % % % Wf%%    g,   &%
 Wh''% % % % %0 % % ('%) ) ) ) )G2 ) ) )
% % % % %'. % % %         G2      
 
 
 
 
 6 
 
 
 &//
 
 
 
 
 6 
 
 0/
$/ / / / /G$8 / / /3 3 3 3 3g&< 3 3 3
* * * * *g&< * * * &11/ / / / /'": / / 21/ / /r   