
    >Tf@                     ~   d dl mZ d dlmZ d dlmZ d dlmZm	Z	m
Z
mZmZ d dlT d dlT d dlT 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mZmZ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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          Z0 G d% d&e          Z1 G d' d(e          Z2 G d) d*e          Z3 G d+ d,e3          Z4d-S ).    )forms)ContentType)gettext_lazy)LocationRackRegionSite	SiteGroup)*)ASN)NetBoxModelBulkEditForm)Tenant)add_blank_choice)CommentFieldContentTypeChoiceFieldDynamicModelChoiceFieldDynamicModelMultipleChoiceFieldNumericArrayFieldNumericRangeArrayField)FieldSet)BulkEditNullBooleanSelect)ClusterClusterGroup)AggregateBulkEditFormASNBulkEditFormASNRangeBulkEditFormFHRPGroupBulkEditFormIPAddressBulkEditFormIPRangeBulkEditFormPrefixBulkEditFormRIRBulkEditFormRoleBulkEditFormRouteTargetBulkEditFormServiceBulkEditFormServiceTemplateBulkEditFormVLANBulkEditFormVLANGroupBulkEditFormVRFBulkEditFormc                   "   e Zd Z e ed          ej                                        d          Z e	j
        d e             ed                    Z e	j         ed          dd          Z e            ZeZ ed	d
d          fZdZdS )r(   r   FlabelquerysetrequiredzEnforce unique spacer-   widgetr+   Description   r+   
max_lengthr-   tenantenforce_uniquedescriptionr4   r6   commentsN)__name__
__module____qualname__r   _r   objectsallr4   r   NullBooleanFieldr   r5   	CharFieldr6   r   r8   VRFmodelr   	fieldsetsnullable_fields     9/var/www/html/netbox-4.1.3/netbox/ipam/forms/bulk_edit.pyr(   r(   (   s        $$akk##%%  F
 ,U+((**a&''  N
 "%/a  K
 |~~HE+];;I <OOOrF   r(   c                       e Zd Z e ed          ej                                        d          Z e	j
         ed          dd          Z e            ZeZ edd          fZd	Zd
S )r#   r   Fr*   r0   r1   r2   r4   r6   r7   N)r9   r:   r;   r   r<   r   r=   r>   r4   r   r@   r6   r   r8   RouteTargetrB   r   rC   rD   rE   rF   rG   r#   r#   A   s        $$akk##%%  F
 "%/a  K
 |~~HE=))I <OOOrF   r#   c                       e Zd Z ej         ed          de          Z ej         ed          dd          Z	e
Z edd          fZd	Zd
S )r!   z
Is privateF)r+   r-   r/   r0   r1   r2   
is_privater6   )rK   r6   N)r9   r:   r;   r   r?   r<   r   rK   r@   r6   RIRrB   r   rC   rD   rE   rF   rG   r!   r!   U   s        ''aoo(  J
 "%/a  K E}--I 4OOOrF   r!   c                   "   e Zd Z eej                                        d ed                    Z e ed          e	j                                        d          Z
 ej         ed          dd          ZeZ ed	d
d          fZdZdS )r   FrL   r,   r-   r+   r   r*   r0   r1   r2   rirr4   r6   r6   N)r9   r:   r;   r   rL   r=   r>   r<   rO   r   r4   r   r@   r6   ASNRangerB   r   rC   rD   rE   rF   rG   r   r   h   s        
!
!""ahh  C
 %$akk##%%  F
 "%/a  K E-00I 'OOOrF   r   c                      e Zd Z e ed          ej                                        d          Z e	e
j                                        d ed                    Z e	 ed          ej                                        d          Z ej         ed          dd	          Z e            ZeZ ed
ddd          fZdZdS )r   SitesFr*   rL   rN   r   r0   r1   r2   sitesrO   r4   r6   r7   N)r9   r:   r;   r   r<   r	   r=   r>   rT   r   rL   rO   r   r4   r   r@   r6   r   r8   r   rB   r   rC   rD   rE   rF   rG   r   r      s       ++ajj!!##  E
 "
!""ahh  C
 %$akk##%%  F
 "%/a  K
 |~~HE%=99I <OOOrF   r   c                   n   e Zd Z eej                                        d ed                    Z e ed          e	j                                        d          Z
 ej         ed          d          Z ej         ed          d	d
          Z e            ZeZ edddd          fZdZdS )r   FrL   rN   r   r*   z
Date addedr+   r-   r0   r1   r2   rO   r4   
date_addedr6   )rW   r6   r8   N)r9   r:   r;   r   rL   r=   r>   r<   rO   r   r4   r   	DateFieldrW   r@   r6   r   r8   	AggregaterB   r   rC   rD   rE   rF   rG   r   r      s       
!
!""ahh  C
 %$akk##%%  F
 !aoo  J "%/a  K
 |~~HE,>>I @OOOrF   r   c                       e Zd Z ej         ed          d          Z ej         ed          dd          Ze	Z
 edd          fZd	Zd
S )r"   WeightFrV   r0   r1   r2   weightr6   rP   N)r9   r:   r;   r   IntegerFieldr<   r\   r@   r6   RolerB   r   rC   rD   rE   rF   rG   r"   r"      s        Uakk  F "%/a  K E=))I 'OOOrF   r"   c                      e Zd Z e ed          ej                                        d          Z e ed          e	j                                        d          Z
 e ed          ej                                        dddd	          Z eej                                        d ed
                    Z eej                                        d ed          ddi          Z eej                                        d ed                    Z ej         ed          eed          Z e ed          ej                                        d          Z ej         ed           ee          d          Z e ed          ej                                        d          Z ej         d e!             ed                    Z" ej         d e!             ed                    Z# ej$         ed          dd          Z% e&            Z'e(Z) e*dddd            e*d!d"d# ed          $           e*d%d&d'd( ed)          $           e*d*d+ ed,          $          fZ+d-Z,d.S )/r    r   Fr*   
Site groupr	   $region$site_group	region_idgroup_idr+   r,   r-   query_paramsz
VLAN GrouprN   VLANre   z$vlan_group)r,   r-   r+   rg   rA   zPrefix lengthr+   	min_value	max_valuer-   r   Statusr+   choicesr-   r^   z	Is a poolr.   Treat as fully utilizedr0   r1   r2   r4   statusroler6   region
site_groupsitenamevrfprefix_lengthis_poolmark_utilized
Addressing
vlan_groupvlanzVLAN Assignment)rt   r}   rw   r4   rq   r6   r8   N)-r9   r:   r;   r   r<   r   r=   r>   rr   r
   rs   r	   rt   	VLANGroupr|   rh   r}   rA   rw   r   r]   PREFIX_LENGTH_MINPREFIX_LENGTH_MAXrx   r   r4   ChoiceFieldr   PrefixStatusChoicesrp   r^   rq   r?   r   ry   rz   r@   r6   r   r8   PrefixrB   r   rC   rD   rE   rF   rG   r    r       sy       $$akk##%%  F
 )(aoo"&&((  J
 #"aii!!##"%
 
	  D )("&&((aoo  J
 #"!!##aii
	  D "
!""ahh  C
 'E&a  ##	  M %$akk##%%  F
 Uakk  !455  F
 #"aii!!##  D
 %e$((**ann  G
 +E*((**a)**  M
 "%/a  K
 |~~HE8V];;<aaii@@@O!!L//ZZZvAA.?,@,@AAA	IOOOrF   r    c                   *   e Zd Z eej                                        d ed                    Z e ed          e	j                                        d          Z
 ej         ed           ee          d          Z e ed          ej                                        d          Z ej        d e             ed	          
          Z ej         ed          dd          Z e            ZeZ edddddd          fZdZdS )r   FrA   rN   r   r*   rl   rm   r^   ro   r.   r0   r1   r2   rp   rq   rw   r4   rz   r6   )rw   r4   rq   r6   r8   N)r9   r:   r;   r   rA   r=   r>   r<   rw   r   r4   r   r   r   IPRangeStatusChoicesrp   r^   rq   r?   r   rz   r@   r6   r   r8   IPRangerB   r   rC   rD   rE   rF   rG   r   r   %  s       
!
!""ahh  C
 %$akk##%%  F
 Uakk  !566  F
 #"aii!!##  D
 +E*((**a)**  M
 "%/a  K
 |~~HE65(O]SSIOOOrF   r   c            	       l   e Zd Z eej                                        d ed                    Z e	j
         ed          eed          Z e ed          ej                                        d          Z e	j         ed           ee          d	          Z e	j         ed
           ee          d	          Z e	j        dd ed                    Z e	j         ed          dd          Z e            ZeZ edddd           eddd ed                    fZdZdS )r   FrA   rN   zMask lengthri   r   r*   rl   rm   r^      zDNS namer3   r-   r+   r0   r1   r2   rp   rq   r4   r6   rw   mask_lengthdns_namer{   ru   )rw   rq   r4   r   r6   r8   N) r9   r:   r;   r   rA   r=   r>   r<   rw   r   r]   IPADDRESS_MASK_LENGTH_MINIPADDRESS_MASK_LENGTH_MAXr   r   r4   r   r   IPAddressStatusChoicesrp   IPAddressRoleChoicesrq   r@   r   r6   r   r8   	IPAddressrB   r   rC   rD   rE   rF   rG   r   r   O  s       
!
!""ahh  C
 %%$a++	  K %$akk##%%  F
 Uakk  !788  F
 5aii  !566  D
 ua
mm  H
 "%/a  K
 |~~HE68];;z,HHHIOOOrF   r   c                      e Zd Z ej         ed           ee          d          Z ej	        dd ed                    Z
 ej         ee          d ed                    Z ej        d	d ed
                    Z ej         ed          dd          Z ej         ed          dd          Z e            ZeZ edddd           edd ed                    fZdZdS )r   ProtocolFrm   r   zGroup ID)rj   r-   r+   zAuthentication type)rn   r-   r+   r   zAuthentication keyr   Named   r2   r0   r1   protocolre   rv   r6   	auth_typeauth_keyAuthenticationru   )r   r   rv   r6   r8   N)r9   r:   r;   r   r   r<   r   FHRPGroupProtocolChoicesr   r]   re   FHRPGroupAuthTypeChoicesr   r@   r   rv   r6   r   r8   	FHRPGrouprB   r   rC   rD   rE   rF   rG   r   r     s        u a
mm  !9::  H
 "u!a
mm  H
 "!  !9::a%&&  I
 ua$%%  H
 5?aii  D
 "%/a  K
 |~~HEZ??jqq1A/B/BCCCI SOOOrF   r   c                       e Zd Z ej         ed          dd          Z e ed          ej	        
                    e          d          Z ej        d ej                              Z e ed	          ej	                                        d          Z eej	                                        d ed
                    Z e ed          ej	                                        dddd          Z e ed          ej	                                        dddi          Z e ed          ej	                                        dddd          Z eej	                                        d ed                    Z e ed          ej	                                        dddi          Z e  ed          d          Z!e"Z# e$ddd           e$d d!d"dd#d$d%d& ed'          (	  	        fZ%d)Z& fd*Z' xZ(S )+r'   r0   r1   Fr2   z
Scope type)	model__inr*   )r-   r/   r   r`   rN   r	   ra   z
$sitegrouprc   rf   r   site_id$siter   z	$location)r   location_idzCluster groupr   re   z$clustergroupzVLAN ID rangesrV   rt   
vid_rangesr6   
scope_typerr   	sitegrouplocationrackclustergroupclusterScoperu   rP   c                    t                                                       | j                            d          r| j        d         j        }| j                            |          x}r+|j        | j        d<   | j                            d           d S | j                            d           | j        	                    d           d S d S )Nr   scope_id)
supercleancleaned_datagetrB   pkchanged_dataappendpopremove)selfscope_field	scope_obj	__class__s      rG   r   zVLANGroupBulkEditForm.clean  s       .. 	7+L9?K -11+>>>y 709!*-!((44444!%%l333!((66666	7 	7rF   ))r9   r:   r;   r   r@   r<   r6   r   r   r=   filterVLANGROUP_SCOPE_TYPESr   r]   HiddenInputr   r   r   r>   rr   r
   r   r	   rt   r   r   r   r   r   r   r   r   r   r   r~   rB   r   rC   rD   r   __classcell__)r   s   @rG   r'   r'     s       !%/a  K
 ('aoo$++6K+LL  J
 "u! u ""  H %$akk##%%  F
 ('"&&((aoo  I
 #"aii!!##"$
 
	  D '&a
mm!%%''w
	  H #"aii!!##&
 
	  D +*%))++a    L
 &%a	ll$$&&
	  G ('a !!  J
 E}55(KV^]fmnmnovmwmw	
 	
 	
I 'O7 7 7 7 7 7 7 7 7rF   r'   c            
       0   e Zd Z e ed          ej                                        d          Z e ed          e	j                                        d          Z
 e ed          ej                                        dddd	          Z e ed
          ej                                        dddi	          Z e ed          ej                                        d          Z ej         ed           ee          d          Z e ed          ej                                        d          Z ej         ed          dd          Z e            ZeZ edddd           edddd ed                    fZdZ dS ) r&   r   Fr*   r`   r	   ra   rb   rc   rf   Groupr   r   r   rl   rm   r^   r0   r1   r2   rp   rq   r4   r6   rr   rs   rt   groupzSite & Groupru   )rt   r   r4   rq   r6   r8   N)!r9   r:   r;   r   r<   r   r=   r>   rr   r
   rs   r	   rt   r~   r   r   r4   r   r   r   VLANStatusChoicesrp   r^   rq   r@   r6   r   r8   rh   rB   r   rC   rD   rE   rF   rG   r&   r&     s2       $$akk##%%  F
 )(aoo"&&((  J
 #"aii!!##"%
 
	  D $#ajj"&&((w
	  E %$akk##%%  F
 Uakk  !233  F
 #"aii!!##  D
 "%/a  K
 |~~HE68];;<qq?P?PQQQIOOOrF   r&   c                      e Zd Z ej         ed           ee          d          Z e	 ed           ej
        ee          d          Z ej         ed          dd	          Z e            ZeZ ed
dd          fZdZdS )r%   r   Frm   Ports)rj   rk   )r+   
base_fieldr-   r0   r1   r2   r   portsr6   )r6   r8   N)r9   r:   r;   r   r   r<   r   ServiceProtocolChoicesr   r   r]   SERVICE_PORT_MINSERVICE_PORT_MAXr   r@   r6   r   r8   ServiceTemplaterB   r   rC   rD   rE   rF   rG   r%   r%   A  s         u a
mm  !788  H
 ajj%5%&&
 
 
   E "%/a  K
 |~~HEWm44I 2OOOrF   r%   c                       e Zd ZeZdS )r$   N)r9   r:   r;   ServicerB   rE   rF   rG   r$   r$   ]  s        EEErF   r$   N)5djangor   "django.contrib.contenttypes.modelsr   django.utils.translationr   r<   dcim.modelsr   r   r   r	   r
   ipam.choicesipam.constantsipam.modelsr   netbox.formsr   tenancy.modelsr   utilities.formsr   utilities.forms.fieldsr   r   r   r   r   r   utilities.forms.renderingr   utilities.forms.widgetsr   virtualization.modelsr   r   __all__r(   r#   r!   r   r   r   r"   r    r   r   r   r'   r&   r%   r$   rE   rF   rG   <module>r      s         : : : : : : 6 6 6 6 6 6 ? ? ? ? ? ? ? ? ? ? ? ? ? ?                   0 0 0 0 0 0 ! ! ! ! ! ! , , , , , ,                / . . . . . = = = = = = 7 7 7 7 7 7 7 7&< < < < <- < < <2< < < < <5 < < <(4 4 4 4 4- 4 4 4&' ' ' ' '2 ' ' '0< < < < <- < < <<@ @ @ @ @3 @ @ @:' ' ' ' '. ' ' '$U U U U U0 U U Up' ' ' ' '1 ' ' 'T. . . . .3 . . .b&S &S &S &S &S3 &S &S &SRY7 Y7 Y7 Y7 Y73 Y7 Y7 Y7x9 9 9 9 9. 9 9 9x2 2 2 2 2"9 2 2 28    5     rF   