
    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 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 is handling the cbv methods for Job role in settings
    )Any)messages)HttpResponse)render)reverse)method_decorator)gettext_lazy)JobRoleFilter)JobRoleForm)JobPositionJobRole)login_requiredpermission_required)HorillaFormViewHorillaListViewHorillaNavViewdispatch)namezbase.view_jobrole)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
d
dZdZ xZS )JobRoleListViewz
    List view of the page
    kwargsreturnNc                 R    t        |   di | d| _        t        d      | _        y )Njob_rolejob-role-list )super__init__view_idr   
search_urlselfr   	__class__s     5/var/www/python-projects/worksol/base/cbv/job_role.pyr   zJobRoleListView.__init__    s&    "6"!!/2    zJob Positionjob_position_colJob Rolejob_role_colz[
                             style="width:300px !important;"
                             )r'   r)   z
                class = "oh-sticky-table__tr oh-permission-table__tr oh-permission-table--collapsed"
                data-count="{get_data_count}"
                data-label="Job Role"
                )__name__
__module____qualname____doc__r   r   r   modelr
   filter_class_columnsheader_attrs	row_attrs__classcell__r$   s   @r%   r   r      sb    3 3 3
 E L 
>	./	
:'G
!!	L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 )
JobRoleNavz
    Nav bar
    r   r   Nc                     t        |   di | t        d      | _        | j                  j
                  j                  d      rdt        d       d| _        y y )Nr   base.add_jobrolea&  
                                onclick = "event.stopPropagation();"
                                data-toggle="oh-modal-toggle"
                                data-target="#genericModal"
                                hx-target="#genericModalBody"
                                hx-get="zcreate-job-rolez""
                                r   )r   r   r   r!   requestuserhas_permcreate_attrsr"   s     r%   r   zJobRoleNav.__init__C   s`    "6"!/2<<%%&89%)
 *11B)C(D E!!$D :r&   r(   z#listContainer)r*   r+   r,   r-   r   r   r0   	nav_titler
   filter_instancesearch_swap_targetr4   r5   s   @r%   r7   r7   <   s3    
$ 
$ 
$ *I#oO)r&   r7   r9   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 )JobRoleFormViewz
    Create and edit form
    zCreate Job Rolec                     t        |   di |}| j                  j                  j                  rt        d      | j                  _        |S )NzUpdate Job Roler   )r   get_context_dataforminstancepkr0   
form_classverbose_name)r#   r   contextr$   s      r%   rD   z JobRoleFormView.get_context_data_   s?    '*4V499  +,->+?DOO(r&   rE   r   c                     |j                         s>|j                  j                         }t        | j                  | j
                  ||d      S t        |   |      S )N)rE   errors)is_validrL   as_datar   r:   template_namer   form_invalid)r#   rE   rL   r$   s      r%   rP   zJobRoleFormView.form_invalide   sS    }}[[((*Fd00462R  w#D))r&   c                 h   | j                   j                  j                  r|j                         rw|j                  }|j                  j                  d      }||_        |j                          t        j                  | j                  t        d             | j                         S | j                   j                  j                  s\| j                   j                  j                  d      r7| j                   j                  j                  d      r|j                  d       | j                         S )Njob_position_idz'Job role has been updated successfully!r   T)commit)rE   rF   rG   rM   cleaned_datagetrR   saver   successr:   r0   datagetlistr   )r#   rE   rF   job_positions       r%   
form_validzJobRoleFormView.form_validm   s    99  T]]_}}H,,001BCL'3H$MMOT\\1-V+WX   "" 		""%%		&&'89		"":.IITI"  ""r&   )r*   r+   r,   r-   r   r.   r   rH   r0   new_display_titlerD   r   r   rP   r[   r4   r5   s   @r%   rB   rB   T   sK     EJ+,* * *#{ #| #r&   rB   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   rB   r   r&   r%   <module>ri      s     # $ #  4 6 & " , I  .z2%+>?jQo  R 3B .z2%+>?jQ* * R 3*, .z2%+=>ZP$#o $# Q 3$#r&   