
    si9                        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 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)zD
this page is handling the cbv methods for Job Position in settings
    )Any)messages)HttpResponse)render)reverse)method_decorator)gettext_lazy)DepartmentViewFilter)JobPositionForm)
DepartmentJobPosition)login_requiredpermission_required)HorillaFormViewHorillaListViewHorillaNavViewdispatch)namezbase.view_jobposition)permc                   j     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
ZdddZ xZS )JobPositionListViewz1
    list view for job positions in settings
    kwargsreturnNc                 R    t        |   di | t        d      | _        d| _        y )Njob-position-listjob_position )super__init__r   
search_urlview_idselfr   	__class__s     9/var/www/python-projects/worksol/base/cbv/job_position.pyr   zJobPositionListView.__init__    s'    "6"!"56%    r   get_department_colJob Positionget_job_position_colz
                class="oh-sticky-table__tr oh-permission-table__tr oh-permission-table--collapsed"
                data-label="Job Position"
                data-count="{toggle_count}"
                z" style="width:300px !important; " )r'   r)   )__name__
__module____qualname____doc__r   r   r   modelr
   filter_class_columns	row_attrsheader_attrs__classcell__r$   s   @r%   r   r      sb    & & &
 E'L 
<./	
>	23G
I G H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 )JobPositionNavViewz*
    nav bar of the job position view
    r   r   Nc                     t        |   di | t        d      | _        | j                  j
                  j                  d      rdt        d       d| _        y y )Nr   zbase.add_jobpositiona&  
                                onclick = "event.stopPropagation();"
                                data-toggle="oh-modal-toggle"
                                data-target="#genericModal"
                                hx-target="#genericModalBody"
                                hx-get="zjob-position-create-formz""
                                r   )r   r   r   r    requestuserhas_permcreate_attrsr"   s     r%   r   zJobPositionNavView.__init__@   sa    "6"!"56<<%%&<=%)
 *11K)L(M N!!$D >r&   r(   z#listContainer)r*   r+   r,   r-   r   r   r0   	nav_titlesearch_swap_targetr
   filter_instancer4   r5   s   @r%   r7   r7   9   s5    
$ 
$ 
$ .!I)*,Or&   r7   c                   ^     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dZ xZS )JobPositionCreateFormz9
    form view for creating job position in settings
    zCreate Job Positionc                    t        |   di |}| j                  j                  j                  rV| j                  j                  j
                  | j                  j                  d   _        t        d      | j                  _
        |S )Ndepartment_idUpdate Job Positionr   )r   get_context_dataforminstancepkrC   fieldsinitialr0   
form_classverbose_name)r#   r   contextr$   s      r%   rE   z&JobPositionCreateForm.get_context_data\   sf    '*4V499  8<		8J8J8X8XDII_-5+,-B+CDOO(r&   rF   r   c                 2   | j                   j                  j                  rt        d      | j                  _        |j                         s>|j                  j                         }t        | j                  | j                  ||d      S t        | 5  |      S )NrD   )rF   errors)rF   rG   rH   r0   rK   rL   is_validrO   as_datar   r9   template_namer   form_invalid)r#   rF   rO   r$   s      r%   rS   z"JobPositionCreateForm.form_invalidc   sx    99  +,-B+CDOO(}}[[((*Fd00462R  w#D))r&   c                 4   |j                   }| j                  j                   j                  r|j                         ro|]|j                  j                  d      }|r||_        |j                          t        j                  | j                  t        d             | j                         S |j                   j                  sH|j                  j                  d      r-|j                  j                  d      r|j                  d       | j                         S )NrC   zJob position updated.r   T)commit)rG   rF   rH   rP   cleaned_datagetrC   saver   successr9   r0   datagetlistr   )r#   rF   r   rC   s       r%   
form_validz JobPositionCreateForm.form_validm   s    }}99  T]]_' $ 1 1 5 5o F 1>L.!!#  q1H/IJ   ""   		!!/2		n-IITI"  ""r&   )r*   r+   r,   r-   r   r.   r   rK   r0   new_display_titlerE   r   r   rS   r\   r4   r5   s   @r%   rA   rA   Q   sK     E J/0* * *# #< #r&   rA   N)!r-   typingr   django.contribr   django.httpr   django.shortcutsr   django.urlsr   django.utils.decoratorsr   django.utils.translationr	   r0   base.filtersr
   
base.formsr   base.modelsr   r   horilla_views.cbv_methodsr   r   horilla_views.generic.cbv.viewsr   r   r   r   r7   rA   r   r&   r%   <module>rj      s     # $ #  4 6 - & / I  .z2%+BC*U/  V 3< .z2%+BC*U- - V 3-, .z2%+BC*U)#O )# V 3)#r&   