
    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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)z<
This page handles the department managers page in settings
    )Any)messages)HttpResponse)reverse)method_decorator)gettext_lazy)DepartmentManagerFilter)DepartmentManagerCreateForm)DepartmentManager)login_requiredpermission_required)HorillaFormViewHorillaListViewHorillaNavViewdispatch)namezhelpdesk.add_departmentmanager)permc                        e Zd ZdZdeddf fdZeZeZ	 e
d      df e
d      d	fgZd
d
dZddgZddddddddgZdZ xZS )DepartmentManagersListViewz.
    List view of the resticted days page
    kwargsreturnNc                 R    t        |   di | d| _        t        d      | _        y )Ndepartment_managersdepartment-manager-list )super__init__view_idr   
search_urlselfr   	__class__s     D/var/www/python-projects/worksol/helpdesk/cbv/department_managers.pyr   z#DepartmentManagersListView.__init__!   s)    "6" -!";<    
Department
departmentManagermanagerzH
                   style = "width:200px !important"
                   )r&   r(   )r%   department__department)r'   manager__get_full_nameEditzcreate-outlinea,  
                    class="oh-btn oh-btn--light-bkg w-50"
                    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--danger-outline oh-btn--light-bkg w-50"
                    hx-confirm="Are you sure you want to remove this department manager?"
                    hx-target="#dapartmentManagerTr{get_instance_id}"
                    hx-post="{get_delete_url}"
                    hx-swap="innerHTML"
                    zM
                id = "dapartmentManagerTr{get_instance_id}"
                )__name__
__module____qualname____doc__r   r   r   modelr	   filter_class_columnsheader_attrssortby_mappingactions	row_attrs__classcell__r"   s   @r#   r   r      s    
= = = E*L 
<,'	
9y!G	L 	1-N $
	
 #
	
G2Ir$   r   c                   N     e Zd ZdZdeddf fdZ ed      Z e       Z	dZ
 xZS )DepartmentManagersNavz
    Nav bar
    r   r   Nc                     t        |   di | t        d      | _        dt	        d      fdg| _        dt        d       d| _        y )	Nr   r)   r%   )manager__employee_first_namer'   a  
                            onclick = "event.stopPropagation();"
                            data-toggle="oh-modal-toggle"
                            data-target="#genericModal"
                            hx-target="#genericModalBody"
                            hx-get="zdepartment-manager-createz"
                            r   )r   r   r   r   r6   	search_increate_attrsr    s     r#   r   zDepartmentManagersNav.__init__e   s]    "6"!";<%q7
!%
 &--H%I$J K r$   zDepartment managersz#listContainer)r0   r1   r2   r3   r   r   r6   	nav_titler	   filter_instancesearch_swap_targetr<   r=   s   @r#   r?   r?   \   s6    
     $ '(I-/O)r$   r?   c                   N     e Zd ZdZeZeZ ed      Z	 fdZ
dedef fdZ xZS )DepartmentManagersFormViewz5
    Create and edit form for Department Manager
    zCreate department managerc                     t        |   di |}| j                  j                  j                  rt        d      | j                  _        |S )z?
        Get context data for rendering the form view.
        zUpdate department managerr   )r   get_context_dataforminstancepkr6   
form_classverbose_name)r!   r   contextr"   s      r#   rJ   z+DepartmentManagersFormView.get_context_data   sA     '*4V499  +,-H+IDOO(r$   rK   r   c                    |j                         rm|j                  j                  rt        d      }nt        d      }|j	                          t        j                  | j                  |       | j                         S t        | )  |      S )z
        Handle a valid form submission.
        If the form is valid, save the instance and display a success message.
        z,The department manager updated successfully.z,The department manager created successfully.)is_validrL   rM   r6   saver   successrequestr   r   
form_valid)r!   rK   messager"   s      r#   rV   z%DepartmentManagersFormView.form_valid   sm    
 ==?}}JKJKIIKT\\73$$&&w!$''r$   )r0   r1   r2   r3   r   r4   r
   rN   r6   new_display_titlerJ   r   rV   r<   r=   s   @r#   rH   rH   |   s>    
 E,J56(: (| ( (r$   rH   N)r3   typingr   django.contribr   django.httpr   django.urlsr   django.utils.decoratorsr   django.utils.translationr   r6   helpdesk.filterr	   helpdesk.formsr
   helpdesk.modelsr   horilla_views.cbv_methodsr   r   horilla_views.generic.cbv.viewsr   r   r   r   r?   rH   r   r$   r#   <module>rd      s     # $  4 6 3 6 - I  .z2=>Z= = 3=@ .z2=>Z*N * 3*8 .z2=>Z( ( 3(r$   