
    >Tf3L                        d dl Z d dlZd dlmZ d dlmZ d dlT d dl	m
Z
 d dlmZ d dlmZmZmZ dd	lmZ d
ZdZdZdZ G d de          Z G d de          Z G d de          Z G d de          Z G d de          Z G d de          Z G d de          Z G d de          Z G d de          Z G d  d!e          Z G d" d#e          Z  G d$ d%e          Z! G d& d'e          Z" G d( d)e          Z# G d* d+e          Z$ G d, d-e          Z% G d. d/e          Z& G d0 d1e          Z' G d2 d3e          Z(dS )4    Nformat_html)gettext_lazy)*)EMPTY_TABLE_TEXT)get_event_text)	BaseTableNetBoxTablecolumns   )NotificationActionsColumn)BookmarkTableConfigContextTableConfigTemplateTableCustomFieldChoiceSetTableCustomFieldTableCustomLinkTableEventRuleTableExportTemplateTableImageAttachmentTableJournalEntryTableNotificationGroupTableNotificationTableSavedFilterTableReportResultsTableScriptResultsTableSubscriptionTableTaggedItemTableTagTableWebhookTablez
{% if record.image %}
  <a class="image-preview" href="{{ record.image.url }}" target="_blank">{{ record }}</a>
{% else %}
  &mdash;
{% endif %}
zS
<span class="text-{{ value.color }} fs-3"><i class="{{ value.icon }}"></i></span>
z
{% if not record.event.destructive %}
  <a href="{% url 'extras:notification_read' pk=record.pk %}">{{ record.object_repr }}</a>
{% else %}
  {{ record.object_repr }}
{% endif %}
c                      e Zd Z ej         ed          d          Z ej         ed                    Z	 ej
         ed          d          Z ej
         ed	          d          Z ej         ed
                    Z ej         ed                    Z ej         ed                    Z ej         ed                    Z ej        d ed                    Z ej        dd ed                    Z ej
         ed          d          Z ej         ed                    Z ej         ed                    Z ej         ed                    Z G d dej                  ZdS )r   NameTverbose_namelinkifyObject Typesr$   RequiredNr$   
false_markzValidate UniquenessVisibleEditableDescriptionzRelated Object Typez
Choice Setr%   r$   
   FChoices)	max_items	orderabler$   zIs CloneablezMinimum ValuezMaximum ValuezValidation Regexc                       e Zd ZeZdZdZdS )CustomFieldTable.Meta)pkidnameobject_typeslabeltyperelated_object_type
group_namerequireduniquedefaultdescriptionsearch_weightfilter_logic
ui_visibleui_editableis_cloneableweight
choice_setchoicesvalidation_minimumvalidation_maximumvalidation_regexcommentscreatedlast_updated)	r5   r7   r8   r9   r<   r:   r=   r>   r@   N)__name__
__module____qualname__CustomFieldmodelfieldsdefault_columns     9/var/www/html/netbox-4.1.3/netbox/extras/tables/tables.pyMetar4   k   s!        

rW   rY   )rO   rP   rQ   tablesColumn_r7   r   ContentTypesColumnr8   BooleanColumnr=   r>   ChoiceFieldColumnrC   rD   MarkdownColumnr@   ContentTypeColumnr;   rG   ChoicesColumnrH   rE   rI   rJ   rK   r
   rY   rV   rW   rX   r   r   8   sz       6=QvYY  D .7-Q~&&  L %w$Qz]]  H #W"Q,--  F +*Qy\\  J ,'+Qz]]  K )'(Q}%%  K 4'3Q,--   Q|__  J $g#Qy\\  G
 )7(Q~&&  L 'Q''   'Q''   %v}Q)**  

 

 

 

 

{ 

 

 

 

 

rW   r   c                   Z   e Zd Z ej         ed          d          Z ej                    Z	 ej
        d          Z ej        dd          Z ej
         ej        d	          d
d ed                    Z ej         ed          d          Z G d dej                  ZdS )r   r"   Tr#   zV{% for k, v in value.items %}{{ v }}{% if not forloop.last %}, {% endif %}{% endfor %})template_coder/   F)r1   r2   extra_choicesz{{ value|length }}Count)accessorrd   r2   r$   zOrder AlphabeticallyNr)   c                       e Zd ZeZdZdZdS )CustomFieldChoiceSetTable.Meta)r5   r6   r7   r@   base_choicesre   choice_countrH   order_alphabeticallyrM   rN   )r5   r7   rj   rk   r@   N)rO   rP   rQ   CustomFieldChoiceSetrS   rT   rU   rV   rW   rX   rY   ri      s"        $
 XrW   rY   )rO   rP   rQ   rZ   r[   r\   r7   r   r_   rj   TemplateColumnre   rb   rH   Ark   r^   rl   r
   rY   rV   rW   rX   r   r   x   s(       6=QvYY  D -7,..L)F)r  M $g#  G )6(/***QwZZ	  L 170Q-..  
X X X X X{ X X X X XrW   r   c                      e Zd Z ej         ed          d          Z ej         ed                    Z	 ej
         ed                    Z ej
         ed          d	          Z G d
 dej                  ZdS )r   r"   Tr#   r&   r'   Enabledz
New WindowNr)   c                       e Zd ZeZdZdZdS )CustomLinkTable.Meta)r5   r6   r7   r8   enabled	link_textlink_urlrF   r<   button_class
new_windowrM   rN   )r5   r7   r8   rt   r<   rw   rx   N)rO   rP   rQ   
CustomLinkrS   rT   rU   rV   rW   rX   rY   rs      s"        
 prW   rY   )rO   rP   rQ   rZ   r[   r\   r7   r   r]   r8   r^   rt   rx   r
   rY   rV   rW   rX   r   r      s        6=QvYY  D .7-Q~&&  L $g#Qy\\  G '&Q|__  J
p p p p p{ p p p p prW   r   c                   v   e Zd Z ej         ed          d          Z ej         ed                    Z	 ej
         ed          d          Z ej         ed	          d          Z ej         ed
          d          Z ej
        d ed                    Z G d dej                  ZdS )r   r"   Tr#   r&   r'   zAs AttachmentNr)   Data Source	Data FileFSyncedr2   r$   c                       e Zd ZeZdZdZdS )ExportTemplateTable.Meta)r5   r6   r7   r8   r@   	mime_typefile_extensionas_attachmentdata_source	data_filedata_syncedrM   rN   )r5   r7   r8   r@   r   r   r   	is_syncedN)rO   rP   rQ   ExportTemplaterS   rT   rU   rV   rW   rX   rY   r      !        

rW   rY   )rO   rP   rQ   rZ   r[   r\   r7   r   r]   r8   r^   r   r   r   r   r
   rY   rV   rW   rX   r   r      s5       6=QvYY  D .7-Q~&&  L *G)Q''  M  &-Q}%%  K Q{^^  I &%Qx[[  I

 
 
 
 
{ 
 
 
 
 
rW   r   c                   @   e Zd Z ej         ed          d          Z ej         ed                    Z	 ej         ed          d          Z
 ej         ed          e	          Z ej        d ed
                    Z G d dej                  ZdS )r   IDFr#   Object Typer'   ParentTImage)r$   rd   zSize (Bytes)r~   c                       e Zd ZeZdZdZdS )ImageAttachmentTable.Meta)
r5   object_typeparentimager7   image_heightimage_widthsizerM   rN   )r   r   r   r7   r   rM   N)rO   rP   rQ   ImageAttachmentrS   rT   rU   rV   rW   rX   rY   r      s"        
 XrW   rY   N)rO   rP   rQ   rZ   r[   r\   r6   r   ra   r   r   rn   IMAGEATTACHMENT_IMAGEr   r   r
   rY   rV   rW   rX   r   r      s       	QtWW
 
 
B ,'+Q}%%  K V]Qx[[  F "F!QwZZ+  E 6=Q~&&  D
X X X X X{ X X X X XrW   r   c                      e Zd Z ej         ed          d          Z ej         ed                    Z	 ej
         ed                    Z ej
         ed          d	          Zd
 Z G d dej                  ZdS )r   r"   Tr#   r&   r'   rq   SharedNr)   c                 *    t          j        |          S N)jsondumpsselfvalues     rX   value_parametersz!SavedFilterTable.value_parameters  s    z%   rW   c                       e Zd ZeZdZdZdS )SavedFilterTable.Meta)r5   r6   r7   slugr8   r@   userrF   rt   sharedrM   rN   
parameters)r5   r7   r8   r   r@   rt   r   N)rO   rP   rQ   SavedFilterrS   rT   rU   rV   rW   rX   rY   r     s!        

rW   rY   )rO   rP   rQ   rZ   r[   r\   r7   r   r]   r8   r^   rt   r   r   r
   rY   rV   rW   rX   r   r      s        6=QvYY  D .7-Q~&&  L $g#Qy\\  G #W"Qx[[  F
! ! !
 
 
 
 
{ 
 
 
 
 
rW   r   c                       e Zd Z ej         ed                    Z ej         ed          d          Z	 ej
        d          Z G d d	ej                  Zd
S )r   r&   r'   ObjectTr#   deleteactionsc                       e Zd ZeZdZdZdS )BookmarkTable.Meta)r5   objectr   rM   r   r   rM   N)rO   rP   rQ   BookmarkrS   rT   rU   rV   rW   rX   rY   r     s        ;>rW   rY   N)rO   rP   rQ   r   ra   r\   r   rZ   r[   r   ActionsColumnr   r
   rY   rV   rW   rX   r   r     s        +'+Q~&&  K V]Qx[[  F $g#  G? ? ? ? ?{ ? ? ? ? ?rW   r   c                       e Zd Z ej         ed                    Z ej         ed          dd          Z	 ej         ed          d          Z
 ej        d	
          Z G d dej                  ZdS )r   r   r'   r   TF)r$   r%   r2   Userr#   r   r   c                       e Zd ZeZdZdZdS )SubscriptionTable.Meta)r5   r   r   rM   r   r   N)rO   rP   rQ   SubscriptionrS   rT   rU   rV   rW   rX   rY   r   5  s        C>rW   rY   N)rO   rP   rQ   r   ra   r\   r   rZ   r[   r   r   r   r   r
   rY   rV   rW   rX   r   r   $  s        +'+Q}%%  K V]Qx[[  F
 6=QvYY  D $g#  G? ? ? ? ?{ ? ? ? ? ?rW   r   c                      e Zd Z ej        e ej        d          ddiddidd          Z ej	         e
d                    Z ej         e
d	          ed
          Z ej        d e
d                    Z ej        d e
d                    Z ej         e
d          d          Z ed          Z G d dej                  ZdS )r   eventclasszw-1)tdth )rd   rg   attrsr$   r   r'   r   F)r$   rd   r2   minutesCreated)timespecr$   Readr   Tr#   )dismissr   c                   $    e Zd ZeZdZdZdd iZdS )NotificationTable.Meta)r5   iconr   r   
event_typerM   readr   )r   r   r   r   rM   z	data-readc                 *    t          | j                  S r   )boolr   records    rX   <lambda>zNotificationTable.Meta.<lambda>b  s    V[(9(9 rW   N)rO   rP   rQ   NotificationrS   rT   rU   	row_attrsrV   rW   rX   rY   r   ]  s-        aT99
			rW   rY   N)rO   rP   rQ   r   rn   NOTIFICATION_ICONrZ   ro   r   ra   r\   r   NOTIFICATION_LINKr   DateTimeColumnrM   r   r[   r   r   r   r
   rY   rV   rW   rX   r   r   ;  su       !7!''""E"E"
 
   D ,'+Q}%%  K $W#Qx[['  F
 %g$Qy\\  G "7!QvYY  D 6=QvYY  D ('  G
 
 
 
 
{ 
 
 
 
 
rW   r   c                       e Zd Z ej        d ed                    Z ej        d          Z	 ej        d          Z
 G d dej                  ZdS )r   Tr"   r.   )linkify_itemc                       e Zd ZeZdZdZdS )NotificationGroupTable.Meta)r5   r7   r@   groupsusers)r7   r@   r   r   N)rO   rP   rQ   NotificationGrouprS   rT   rU   rV   rW   rX   rY   r   r  s        !ADrW   rY   N)rO   rP   rQ   rZ   r[   r\   r7   r   ManyToManyColumnr   r   r
   rY   rV   rW   rX   r   r   f  s        6=QvYY  D %G$  E &W%  FE E E E E{ E E E E ErW   r   c                       e Zd Z ej         ed          d          Z ej         ed                    Z	 ej
        d          Z G d d	ej                  Zd
S )r    r"   Tr#   zSSL Validationr'   extras:webhook_listurl_namec                       e Zd ZeZdZdZdS )WebhookTable.Meta)r5   r6   r7   http_methodpayload_urlhttp_content_typesecretssl_verificationca_file_pathr@   tagsrM   rN   )r5   r7   r   r   r@   N)rO   rP   rQ   WebhookrS   rT   rU   rV   rW   rX   rY   r     s!        

rW   rY   N)rO   rP   rQ   rZ   r[   r\   r7   r   r^   ssl_validation	TagColumnr   r
   rY   rV   rW   rX   r    r    x  s        6=QvYY  D +W*Q'((  N 7&  D
 
 
 
 
{ 
 
 
 
 
rW   r    c                      e Zd Z ej         ed          d          Z ej         ed                    Z ej        d ed                    Z e	j
         ed                    Z e	j         ed	                    Z e	j         ed
          ed          Z e	j        d          Z G d dej                  ZdS )r   r"   Tr#   Typer'   r   r.   r&   rq   zEvent TypesF)r$   funcr2   r   r   c                       e Zd ZeZdZdZdS )EventRuleTable.Meta)r5   r6   r7   rt   r@   action_typeaction_objectr8   event_typesr   rM   rN   )r5   r7   rt   r   r   r8   r   N)rO   rP   rQ   	EventRulerS   rT   rU   rV   rW   rX   rY   r     s!        

rW   rY   N)rO   rP   rQ   rZ   r[   r\   r7   r   r   r   r]   r8   r^   rt   ArrayColumnr   r   r   r   r
   rY   rV   rW   rX   r   r     sN       6=QvYY  D  &-QvYY  K "FMQx[[  M .7-Q~&&  L $g#Qy\\  G &'%Q}%%  K
 7&  D
 
 
 
 
{ 
 
 
 
 
rW   r   c                       e Zd Z ej         ed          d          Z ej         ed                    Z	 ej
         ed                    Z G d dej                  Zd	S )
r   r"   Tr#   Colorr'   r&   c                       e Zd ZeZdZdZdS )TagTable.Meta)r5   r6   r7   itemsr   colorr@   r8   rM   rN   r   )r5   r7   r   r   r   r@   N)rO   rP   rQ   TagrS   rT   rU   rV   rW   rX   rY   r     s"        
 RrW   rY   N)rO   rP   rQ   rZ   r[   r\   r7   r   ColorColumnr   r]   r8   r
   rY   rV   rW   rX   r   r     s        6=QvYY  D  GQwZZ  E .7-Q~&&  LR R R R R{ R R R R RrW   r   c                       e Zd Z ej         ed          d d          Z ej         ed                    Z	 ej        dd ed	          
          Z
 ej        d          Z G d dej                  ZdS )r   r   c                 4    | j                                         S r   )content_objectget_absolute_urlr   s    rX   r   zTaggedItemTable.<lambda>  s    v4EEGG rW   content_object__id)r$   r%   rg   r   r'   TFr   r%   r2   r$   rV   r   c                       e Zd ZeZdZdS )TaggedItemTable.Meta)r6   content_typer  N)rO   rP   rQ   
TaggedItemrS   rT   rV   rW   rX   rY   r    s        9rW   rY   N)rO   rP   rQ   rZ   r[   r\   r6   r   ra   r  r  r   r   r
   rY   rV   rW   rX   r   r     s        	QtWWGG%
 
 
B
 -7,QvYY  L #V]Qx[[  N
 $g#  G: : : : :{ : : : : :rW   r   c                   @   e Zd Z ej         ed          d          Z ej         ed          d          Z ej         ed          d          Z e	j
         ed                    Z e	j
        d ed	          
          Z G d dej                  ZdS )r   r{   Tr#   r|   r"   Activer'   Fr}   r~   c                       e Zd ZeZdZdZdS )ConfigContextTable.Meta)r5   r6   r7   rF   	is_activer   r@   regionssites	locationsroles	platformscluster_typescluster_groupsclusterstenant_groupstenantsr   r   r   rM   rN   )r5   r7   rF   r  r   r@   N)rO   rP   rQ   ConfigContextrS   rT   rU   rV   rW   rX   rY   r    s"        

 \rW   rY   N)rO   rP   rQ   rZ   r[   r\   r   r   r7   r   r^   r  r   r
   rY   rV   rW   rX   r   r     s       &-Q}%%  K Q{^^  I 6=QvYY  D &%Qx[[  I &%Qx[[  I
\ \ \ \ \{ \ \ \ \ \rW   r   c                      e Zd Z ej         ed          d          Z ej         ed          d          Z ej         ed          d          Z e	j
        d ed                    Z e	j        d	
          Z e	j        dddi ed                    Z e	j        dddi ed                    Z e	j        dddi ed                    Z e	j        dddi ed                    Z G d dej                  ZdS )r   r"   Tr#   r{   r|   Fr}   r~   zextras:configtemplate_listr   zdcim:devicerole_listconfig_template_idr5   zDevice Roles)viewname
url_paramsr$   zdcim:platform_list	Platformszdcim:device_listDevicesz"virtualization:virtualmachine_listzVirtual Machinesc                       e Zd ZeZdZdZdS )ConfigTemplateTable.Meta)r5   r6   r7   r@   r   r   r   
role_countplatform_countdevice_countvm_countrM   rN   r   )r5   r7   r@   r   r$  r%  N)rO   rP   rQ   ConfigTemplaterS   rT   rU   rV   rW   rX   rY   r!  )  r   rW   rY   N)rO   rP   rQ   rZ   r[   r\   r7   r   r   r   r^   r   r   r   LinkedCountColumnr"  r#  r$  r%  r
   rY   rV   rW   rX   r   r      s       6=QvYY  D  &-Q}%%  K Q{^^  I &%Qx[[  I 7-  D +*'($/Q~&&  J
 /W.%($/Q{^^  N
 -7,#($/Qy\\  L
 )w(5($/Q)**  H
 
 
 
 
{ 
 
 
 
 
rW   r   c                      e Zd Z ej         ed          dd          Z ej         ed                    Z e	j
        dd ed          	          Z ej         ed
                    Z ej         ed                    Z e	j         e	j        d          d ed                    Z ej        d          Z G d dej                  ZdS )r   r   r   T)r$   r   r%   r   r'   Fr   r  KindCommentsrL   z*{{ value|markdown|truncatewords_html:50 }}zComments (Short))rg   rd   r$   zextras:journalentry_listr   c                       e Zd ZeZdZdZdS )JournalEntryTable.Meta)r5   r6   rM   
created_byassigned_object_typeassigned_objectkindrL   comments_shortr   r   )r5   rM   r-  r.  r/  r0  rL   N)rO   rP   rQ   JournalEntryrS   rT   rU   rV   rW   rX   rY   r,  Q  s!        

rW   rY   N)rO   rP   rQ   r   r   r\   rM   ra   r.  rZ   r[   r/  r_   r0  r`   rL   rn   ro   r1  r   r   r
   rY   rV   rW   rX   r   r   4  sd       $g$Qy\\  G
 574Q}%%   $fmQx[[  O
 %7$QvYY  D &w%Qz]]  H +V**%%BQ)**  N
 7+  D
 
 
 
 
{ 
 
 
 
 
rW   r   c                   F   e Zd Z ej         ed                    Z ej         ed                    Z ej        d ed                    Z	 ej         ed                    Z
 ej         ed                    Z G d	 d
ej                  Zd Zd ZdS )r   Liner'   Time2{% load log_levels %}{% log_level record.status %}Levelrd   r$   r   Messagec                   ,    e Zd Z ee          ZdZdZdS )ScriptResultsTable.Meta)indextimestatusr   messageN)rO   rP   rQ   r\   r   
empty_textrT   rU   rV   rW   rX   rY   r;  n  s,        Q'((


rW   rY   c                 0    t          d|d         |          S N<a href='{}'>{}</a>urlr   r   r   r   s      rX   render_objectz ScriptResultsTable.render_objectw      0&-GGGrW   c                 $    t          d||          S NrC  r   r   s     rX   
render_urlzScriptResultsTable.render_urlz      0%???rW   N)rO   rP   rQ   rZ   r[   r\   r<  r=  rn   r>  r   r   r`   r?  r	   rY   rF  rJ  rV   rW   rX   r   r   \  s"       FMQvYY  E 6=QvYY  D #V"NQwZZ  F V]Qx[[  F %g$Qy\\  G
 
 
 
 
y~ 
 
 
H H H@ @ @ @ @rW   r   c                      e Zd Z ej         ed                    Z ej         ed                    Z ej         ed                    Z ej	        d ed                    Z
 ej         ed                    Z ej         ed	                    Z ej         ed
                    Z G d dej                  Zd Zd ZdS )r   r4  r'   Methodr5  r6  r7  r8  r   URLr9  c                   (    e Zd Z ee          ZdZdS )ReportResultsTable.Meta)r<  methodr=  r>  r   rD  r?  N)rO   rP   rQ   r\   r   r@  rT   rV   rW   rX   rY   rP    s%        Q'((

rW   rY   c                 0    t          d|d         |          S rB  r   rE  s      rX   rF  z ReportResultsTable.render_object  rG  rW   c                 $    t          d||          S rI  r   r   s     rX   rJ  zReportResultsTable.render_url  rK  rW   N)rO   rP   rQ   rZ   r[   r\   r<  rQ  r=  rn   r>  r   rD  r   r`   r?  r	   rY   rF  rJ  rV   rW   rX   r   r   ~  sl       FMQvYY  E V]Qx[[  F 6=QvYY  D #V"NQwZZ  F V]Qx[[  F &-QuXX  C %g$Qy\\  G
 
 
 
 
y~ 
 
 
H H H@ @ @ @ @rW   r   ))r   django_tables2rZ   django.utils.htmlr   django.utils.translationr   r\   extras.modelsnetbox.constantsr   netbox.eventsr   netbox.tablesr	   r
   r   r   __all__r   r   r   r   r   r   r   r   r   r   r   r   r   r    r   r   r   r   r   r   r   r   rV   rW   rX   <module>r\     s/        ) ) ) ) ) ) 6 6 6 6 6 6     - - - - - - ( ( ( ( ( ( 9 9 9 9 9 9 9 9 9 9 . . . . . .,   =
 =
 =
 =
 =
{ =
 =
 =
@X X X X X X X XBp p p p pk p p p2!
 !
 !
 !
 !
+ !
 !
 !
HX X X X X; X X X<
 
 
 
 
{ 
 
 
<? ? ? ? ?K ? ? ?$? ? ? ? ? ? ? ?.(
 (
 (
 (
 (
 (
 (
 (
VE E E E E[ E E E$
 
 
 
 
; 
 
 
.#
 #
 #
 #
 #
[ #
 #
 #
LR R R R R{ R R R*: : : : :k : : :.\ \ \ \ \ \ \ \>1
 1
 1
 1
 1
+ 1
 1
 1
h%
 %
 %
 %
 %
 %
 %
 %
P@ @ @ @ @ @ @ @D"@ "@ "@ "@ "@ "@ "@ "@ "@ "@rW   