
    >Tf                        d dl Z d dlmZ d dlmZ d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 G d dej                  Z G d dej                  ZdS )    N)forms)gettext)BulkEditFormBulkRenameFormConfirmationFormCSVModelForm
FilterFormTableConfigFormc                       e Zd ZdZ ej        d ej                              Z ej        d ej                    d          Z	dS )r   zc
    A generic confirmation form. The form is not valid unless the `confirm` field is checked.
    F)requiredwidgetT)r   r   initialN)
__name__
__module____qualname____doc__r   	CharFieldHiddenInput
return_urlBooleanFieldconfirm     :/var/www/html/netbox-4.1.3/netbox/utilities/forms/forms.pyr   r      sr          ! u ""  J !e  u ""  GGGr   r   c                       e Zd ZdZdZdS )r   z1
    Provides bulk edit support for objects.
    r   N)r   r   r   r   nullable_fieldsr   r   r   r   r      s          OOOr   r   c                        e Zd ZdZ ej        d          Z ej        dd          Z ej        dd e	d                    Z
 fdZ xZS )	r   zE
    An extendable form to be used for renaming objects in bulk.
    F)strip)r   r   TzUse regular expressions)r   r   labelc                     t                                                       | j        d         rK	 t          j        | j        d                    d S # t          j        $ r t          j        ddi          w xY wd S )N	use_regexfindzInvalid regular expression)supercleancleaned_datarecompileerrorr   ValidationError)self	__class__s    r   r$   zBulkRenameForm.clean7   s     [) 	
4,V4555558   +8-   	 	s   A &A7)r   r   r   r   r   r   r"   replacer   _r!   r$   __classcell__r+   s   @r   r   r   &   s          5?  D eo  G #"a)**  I
 
 
 
 
 
 
 
 
r   r   c                   |     e Zd ZdZ ej         ed          d ed                    Zdd fd
Z fd	Z	 xZ
S )
r   zA
    ModelForm used for the import of objects in CSV format.
    IDFzINumeric ID of an existing object to update (if not creating a new object))r   r   	help_textN)headersc                    |pi | _          t                      j        |i | | j                                         D ]\  }}||| j        |         _        d S N)r3   r#   __init__itemsfieldsto_field_name)r*   r3   argskwargsfieldto_fieldr+   s         r   r6   zCSVModelForm.__init__N   sm    }"$)&)))  $|1133 	< 	<OE8#3;E"0	< 	<r   c                     | j         D ]@}|| j        vr5t          j        t	          d                              |                    At                                                      S )NzUnrecognized header: {name})name)r3   r8   r   r)   r-   formatr#   r$   )r*   headerr+   s     r   r$   zCSVModelForm.cleanW   sl    l 	 	FT[((+344;;;HH   )
 ww}}r   )r   r   r   r   r   IntegerFieldr-   idr6   r$   r.   r/   s   @r   r   r   D   s          
	agg!_``
 
 
B '+ < < < < < < <        r   r   c                   H    e Zd ZdZ ej        d ed                    ZdS )r	   z.
    Base Form class for FilterSet forms.
    FSearch)r   r   N)r   r   r   r   r   r   r-   qr   r   r   r	   r	   b   s@          	akk	 	 	AAAr   r	   c            	            e Zd ZdZ ej        g d ej        ddd           ed                    Z ej        g d ej        ddd           ed	                    Z	 fd
Z
ed             Z xZS )r
   z8
    Form for configuring user's table preferences.
    F
   zform-select)sizeclass)attrszAvailable Columns)choicesr   r   r   zSelected Columnsc                     || _          t                      j        |i | |j        | j        d         _        |j        | j        d         _        d S )Navailable_columnscolumns)tabler#   r6   rN   r8   rL   selected_columns)r*   rP   r:   r;   r+   s       r   r6   zTableConfigForm.__init__   sS    
$)&))) 493J'(0).)?I&&&r   c                 $    | j         j        j        S r5   )rP   r+   r   )r*   s    r   
table_namezTableConfigForm.table_name   s    z#,,r   )r   r   r   r   r   MultipleChoiceFieldSelectMultipler-   rN   rO   r6   propertyrS   r.   r/   s   @r   r
   r
   l   s	         21#u#66
 
 
 a#$$   (e'#u#66
 
 
 a"##  G@ @ @ @ @ - - X- - - - -r   r
   )r&   djangor   django.utils.translationr   r-   __all__Formr   r   r   	ModelFormr   r	   r
   r   r   r   <module>r\      sK   				       1 1 1 1 1 1    uz       5:       UZ   <    5?   <        -  -  -  -  -ej  -  -  -  -  -r   