
    sir                        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 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 department in settings
    )Any)messages)HttpResponse)	get_token)render)reverse)method_decorator)gettext_lazy)DepartmentViewFilter)DepartmentForm)
Department)_thread_locals)login_requiredpermission_required)HorillaFormViewHorillaListViewHorillaNavViewdispatch)namezbase.view_department)permc                   r     e Zd ZdZeZeZdeddf fdZ	dZ
 ed      dfgZ ed      dfgZd	d
dZdZ xZS )DepartmentListViewz.
    list view for department in settings
    kwargsreturnNc                    t        |   di | t        d      | _        g | _        | j
                  j                  j                  d      r(| j                  j                  t        d      ddd       | j
                  j                  j                  d      r)| j                  j                  t        d      d	d
d       y y )Ndepartment-listzbase.change_department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attrszbase.delete_departmentDeleteztrash-outlineaO  
                    class="oh-btn oh-btn--danger-outline oh-btn--light-bkg w-100"
                    hx-get="{get_delete_url}?model=base.Department&pk={pk}"
                    data-toggle="oh-modal-toggle"
                    data-target="#deleteConfirmation"
                    hx-target="#deleteConfirmationBody"
                 )
super__init__r   
search_urlactionsrequestuserhas_permappend_selfr   	__class__s     7/var/www/python-projects/worksol/base/cbv/department.pyr$   zDepartmentListView.__init__%   s    "6"!"34<<%%&>?LLi,
 <<%%&>?LLk+
 @    zH
                id="departmentTr{get_delete_instance}"
                r   
departmentz  style="width:300px !important" z  style="width:180px !important" )r1   r      )__name__
__module____qualname____doc__r   modelr   filter_classr   r$   	row_attrsr+   columnssortby_mappingheader_attrsrecords_per_page__classcell__r.   s   @r/   r   r      sp     E'L     ZI
 
<,'G 
<,'N
 =8L
 r0   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 )DepartmentNavViewz(
    nav bar of the department view
    r   r   Nc                     t        |   di | t        d      | _        | j                  j
                  j                  d      rdt        d       d| _        y y )Nr   base.add_departmenta&  
                                onclick = "event.stopPropagation();"
                                data-toggle="oh-modal-toggle"
                                data-target="#genericModal"
                                hx-target="#genericModalBody"
                                hx-get="zsettings-department-creationz""
                                r"   )r#   r$   r   r%   r'   r(   r)   create_attrsr,   s     r/   r$   zDepartmentNavView.__init__l   sa    "6"!"34<<%%&;<%)
 *11O)P(Q R!!$D =r0   r   z#listContainer)r3   r4   r5   r6   r   r$   r+   	nav_titlesearch_swap_targetr   filter_instancer>   r?   s   @r/   rA   rA   e   s4    
$ 
$ 
$ ,I)*,Or0   rA   rC   c                   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 )DepartmentCreateFormzD
    form view for creating and editing departments in settings
    zCreate Departmentc                    t        |   di |}| j                         }| j                  j                  j
                  r@| j                  | j                  j                        }t        d      | j                  _        |||<   |S )N)instanceUpdate Departmentr"   )r#   get_context_data
form_classformrK   pkr+   verbose_name)r-   r   contextrO   r.   s       r/   rM   z%DepartmentCreateForm.get_context_data   sn    '*4V4 99  ??DII,>,>??D+,-@+ADOO(r0   rO   r   c                 2   | j                   j                  j                  rt        d      | j                  _        |j                         s>|j                  j                         }t        | j                  | j                  ||d      S t        | 5  |      S )NrL   )rO   errors)rO   rK   rP   r+   rN   rQ   is_validrT   as_datar   r'   template_namer#   form_invalid)r-   rO   rT   r.   s      r/   rX   z!DepartmentCreateForm.form_invalid   sx    99  +,-@+ADOO(}}[[((*Fd00462R  w#D))r0   c                 T   |j                         r|j                  j                  r*t        j                  | j
                  t        d             n)t        j                  | j
                  t        d             |j                          | j                         S t        | )  |      S )NzDepartment updatedz)Department has been created successfully!)rU   rK   rP   r   successr'   r+   saver   r#   
form_valid)r-   rO   r.   s     r/   r\   zDepartmentCreateForm.form_valid   sz    ==?}}  q1E/FG  LL!$O"P IIK$$&&w!$''r0   )r3   r4   r5   r6   r   r7   r   rN   r+   new_display_titlerM   r   r   rX   r\   r>   r?   s   @r/   rI   rI   }   sP     EJ-.* * *
(~ 
(, 
( 
(r0   rI   N)$r6   typingr   django.contribr   django.httpr   django.middleware.csrfr   django.shortcutsr   django.urlsr   django.utils.decoratorsr	   django.utils.translationr
   r+   base.filtersr   
base.formsr   base.modelsr   horilla.horilla_middlewaresr   horilla_views.cbv_methodsr   r   horilla_views.generic.cbv.viewsr   r   r   r   rA   rI   r"   r0   r/   <module>rl      s     # $ , #  4 6 - % " 6 I  .z2%+ABTE E U 3EP .z2%+ABT- - U 3-, .z2%+@A
S&(? &( T 3&(r0   