
    si                        d 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 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  eed       e ed      d       G d de                    Z eed       e ed      d       G d de                    Z eed       e ed      d       G d de                    Z y)zB
this page is handling the cbv methods for Audit tags in settings
    )Any)messages)HttpResponse)render)reverse)method_decorator)gettext_lazy)AuditTagForm)permission_required)AudiTagFilter)AuditTag)login_required)HorillaFormViewHorillaListViewHorillaNavViewdispatch)namezhorilla_audit.view_audittagc                        e Zd ZdZdeddf fdZeZeZ	dgZ
 ed      df ed	      d
fgZdZ ed      ddd ed      dddgZdddZ xZS )AudiTagsListz1
    list view of the audit tags in settings
    kwargsreturnNc                 D    t        |   di | t        d      | _        y )Naudit-tag-list )super__init__r   
search_urlselfr   	__class__s     ;/var/www/python-projects/worksol/horilla_audit/cbv/audit.pyr   zAudiTagsList.__init__!   s     "6"!"23    	highlightTitletitle	Highlightcustom_highlight_colzF
                id="auditTagTr{get_delete_instance}"
                Editzcreate-outlinea  
                        class="oh-btn oh-btn--light-bkg w-100"
                        hx-get='{get_update_url}?instance_ids={ordered_ids}'
								hx-target="#genericModalBody"
								data-toggle="oh-modal-toggle"
								data-target="#genericModal"
                      )actioniconattrsDeleteztrash-outlinea\  
                        class="oh-btn oh-btn--light-bkg w-100 text-danger"
                        hx-confirm="Are you sure you want to delete this history tag ?"
                        hx-post="{get_delete_url}"
                        hx-target="#auditTagTr{get_delete_instance}"
                        hx-swap="delete"

                      z  style="width:180px !important" )r%   r'   )__name__
__module____qualname____doc__r   r   r   modelr   filter_classbulk_update_fields_columns	row_attrsactionsheader_attrs__classcell__r    s   @r!   r   r      s    4 4 4 E L% 
7W	
;/0G
I i$
	
 k#	
G6 8 FLr"   r   c                   N     e Zd ZdZdeddf fdZ ed      ZdZ e	       Z
 xZS )AuditTagsNavViewz#
    navbar of audit tags view
    r   r   Nc                 l    t        |   di | t        d      | _        dt        d       d| _        y )Nr   a  
                            onclick = "event.stopPropagation();"
                            data-toggle="oh-modal-toggle"
                            data-target="#genericModal"
                            hx-target="#genericModalBody"
                            hx-get="zsettings-audit-tag-createz"
                            r   )r   r   r   r   create_attrsr   s     r!   r   zAuditTagsNavView.__init__Z   sC    "6"!"23!%
 &--H%I$J K r"   zHistory Tagsz#listContainer)r-   r.   r/   r0   r   r   r4   	nav_titlesearch_swap_targetr   filter_instancer9   r:   s   @r!   r<   r<   S   s4    	  	  	  .!I)#oOr"   r<   zhorilla_audit.add_audittagc                   b     e Zd ZdZeZeZ ed      Z	 fdZ
dedef fdZdedef fdZ xZS )AuditTagCreateFormzA
    form view for creating and update Audit Tag in settings
    zCreate Audit Tagc                    t        |   di |}| j                         }| j                  j                  j
                  r@| j                  | j                  j                        }t        d      | j                  _        |||<   |S )zO
        Add form to context, initializing with instance if it exists.
        )instanceAudit Tag Updater   )r   get_context_data
form_classformrE   pkr4   verbose_name)r   r   contextrI   r    s       r!   rG   z#AuditTagCreateForm.get_context_datau   sp     '*4V4 99  ??DII,>,>??D+,-?+@DOO(r"   rI   r   c                 2   | j                   j                  j                  rt        d      | j                  _        |j                         s>|j                  j                         }t        | j                  | j                  ||d      S t        | 5  |      S )zJ
        Handles and renders form errors or defers to superclass.
        rF   )rI   errors)rI   rE   rJ   r4   rH   rK   is_validrN   as_datar   requesttemplate_namer   form_invalid)r   rI   rN   r    s      r!   rS   zAuditTagCreateForm.form_invalid   sz     99  +,-?+@DOO(}}[[((*Fd00462R  w#D))r"   c                 T   |j                         r|j                  j                  r*t        j                  | j
                  t        d             n)t        j                  | j
                  t        d             |j                          | j                         S t        | )  |      S )z/
        Handle valid form submission.
        z"Tag has been updated successfully!z"Tag has been created successfully!)rO   rE   rJ   r   successrQ   r4   saver   r   
form_valid)r   rI   r    s     r!   rW   zAuditTagCreateForm.form_valid   sw     ==?}}  q1U/VW  q1U/VWIIK$$&&w!$''r"   )r-   r.   r/   r0   r   r1   r
   rH   r4   new_display_titlerG   r   r   rS   rW   r9   r:   s   @r!   rC   rC   j   sP     EJ,-
* * *(| ( ( (r"   rC   N)!r0   typingr   django.contribr   django.httpr   django.shortcutsr   django.urlsr   django.utils.decoratorsr   django.utils.translationr	   r4   
base.formsr
   horilla.decoratorsr   horilla_audit.filtersr   horilla_audit.modelsr   horilla_views.cbv_methodsr   horilla_views.generic.cbv.viewsr   r   r   r   r<   rC   r   r"   r!   <module>rf      s     # $ #  4 6 # 2 / ) 4  .z2%&CD:V4? 4 W 34n .z2%&CD:V&~ & W 3&* .z2%&BC*U-( -( V 3-(r"   