
    si%                     T   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 ddlmZ ddlmZmZ ddlmZm Z 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& eed       e ed      d       G d de                    Z' G d de       Z( G d de(      Z)y )!z"
Multiple approval condition page
    )Any)forms)messages)HttpResponse)reverse)method_decorator)gettext_lazy)MultipleApprovalConditionFilter)MultipleApproveConditionForm)MultipleApprovalConditionMultipleApprovalManagers)CustomModelChoiceWidget)Employee)login_requiredpermission_required)HorillaDetailedViewHorillaFormViewHorillaListViewHorillaNavViewTemplateViewdispatch)namez#base.view_multipleapprovalcondition)permc                       e Zd ZdZdZy)MultipleApprovalConditionViewz.
    for Multiple approval condition page
    z@cbv/multiple_approval_condition/multiple_approval_condition.htmlN)__name__
__module____qualname____doc__template_name     H/var/www/python-projects/worksol/base/cbv/multiple_approval_condition.pyr   r      s    
 WMr"   r   c                        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 e
d
      df e
d      df e
d      df e
d      dfgZdddZg dZdZ xZS )MultipleApprovalConditionListz.
    List view of the resticted days page
    kwargsreturnNc                 `    t        |   di | t        d      | _        d| _        d| _        y )Nhx-multiple-approval-conditionactions_colmultipleApproveConditionr!   )super__init__r   
search_urlaction_methodview_idselfr&   	__class__s     r#   r-   z&MultipleApprovalConditionList.__init__2   s/    "6"!"BC*1r"   
Department
departmentCondition Fieldget_condition_fieldCondition Operatorget_condition_operatorCondition Valueget_condition_valueApproval Managersapproval_managers_colCompany
company_idz  style="width:180px !important" z  style="width:200px !important" )r5   r=   ))r4   department__department)r8   r9   )r:   r;   z
                hx-get='{detail_view}?instance_ids={ordered_ids}'
                hx-target="#genericModalBody"
                data-target="#genericModal"
                data-toggle="oh-modal-toggle"
                )r   r   r   r   r   r-   r   modelr
   filter_class_columnsheader_attrssortby_mapping	row_attrs__classcell__r3   s   @r#   r%   r%   )   s    
2 2 2 &E2L 
<,'	
	45	
	 ":;	
	45	
	!89	
9|$G =!GL
N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 )MultipleApprovalConditionNavz
    Nav bar
    r&   r'   Nc                     t        |   di | t        d      | _        | j                  j
                  j                  d      rdt        d       d| _        y y )Nr)   z"base.add_multipleapprovalconditiona&  
                                onclick = "event.stopPropagation();"
                                data-toggle="oh-modal-toggle"
                                data-target="#genericModal"
                                hx-target="#genericModalBody"
                                hx-get="zmultiple-level-approval-createz""
                                r!   )r,   r-   r   r.   requestuserhas_permcreate_attrsr1   s     r#   r-   z%MultipleApprovalConditionNav.__init__a   sb    "6"!"BC<<%%&JK%)
 *11Q)R(S T!!$D Lr"   zMultiple Approval Conditionz#listContainer)r   r   r   r   r   r-   rC   	nav_titler
   filter_instancesearch_swap_targetrH   rI   s   @r#   rK   rK   X   s6    

$ 
$ 
$ /0I57O)r"   rK   c                   P     e Zd ZdZdeddf fdZdZeZ e	d      Z
dd	d
dZ xZS )#MultipleApprovalConditionDetailViewz
    detail view of page
    r&   r'   Nc                     t        |   d	i | t        d      dft        d      dft        d      dft        d      dfg| _        y )
Nr6   r7   r8   r9   r:   r;   r<   r=   r!   )r,   r-   rC   bodyr1   s     r#   r-   z,MultipleApprovalConditionDetailView.__init__{   sX    "6" !#89#$&>? !#89"#%<=	
	r"   detail_actionsDetailsr5    
get_avatar)titlesubtitleavatar)r   r   r   r   r   r-   r/   r   rA   rC   r\   headerrH   rI   s   @r#   rU   rU   r   s@    

 
 
 %M%EiLEFr"   rU   c                   R     e Zd ZdZeZeZ ed      Z	dZ
 fdZdedef fdZ xZS )!MultipleApprovalConditionFormViewz
    Create and edit form
    z"Create Multiple Approval Conditionz)cbv/multiple_approval_condition/form.htmlc                     t        |   di |}d| j                  j                  d   j                  j
                  d<   d| j                  j                  d   j                  j
                  d<   |S )N#id_condition_value_parent_divcondition_operator	hx-target	innerHTMLhx-swapr!   )r,   get_context_dataformfieldswidgetattrs)r2   r&   contextr3   s      r#   rh   z2MultipleApprovalConditionFormView.get_context_data   sr    '*4V4 - 			-.55;;	
 JU		-.55;;IFr"   ri   r'   c                 h   |j                         r|j                         }d}|j                  j                  rt        j
                  j                  | j                  j                        j                          t        d      }| j                  j                  j                  d      }|D ]8  }|dz  }d }	 t        |      }t        j
                  j                  ||||       : t        j                   | j                  |       | j#                         S t$        	| M  |      S #  d }|}Y lxY w)Nr   condition_idz/Multiple approval conditon Created Successfullymulti_approval_manager   rp   sequenceemployee_idreporting_manager)is_validsaveinstancepkr   objectsfilterri   deleterC   rM   POSTgetlistintcreater   successr   r,   
form_valid)
r2   ri   ry   rt   messagecondition_approval_managersemp_idrv   ru   r3   s
            r#   r   z,MultipleApprovalConditionFormView.form_valid   s   ==?yy{HH}}(0077!%!3!3 8 &(MN.2ll.?.?.G.G,/+ : FMH(,%3&)&k -44;;%-!)$/*;	 <    w7$$&&w!$''3&*,2)s   :D))D1)r   r   r   r   r   rA   r   
form_classrC   new_display_titler    rh   r   r   rH   rI   s   @r#   ra   ra      sC     &E-J>??M(; ( ( (r"   ra   c                   @     e Zd ZdZdZ fdZd Zdedef fdZ	 xZ
S )EditApprovalConditionFormViewz
    Edit form
    z.cbv/multiple_approval_condition/form_edit.htmlc                    t        |   di |}d| j                  j                  d   j                  j
                  d<   d| j                  j                  d   j                  j
                  d<   t        j                  j                  | j                  j                        j                  d      }| j                  | j                  |       t        |      |d<   | j                  |d	<   t        d
      | j                  _        |S )Nrf   rd   rg   rc   re   ro   rt   managers_countri   z"Update Multiple Approval Conditionr!   )r,   rh   ri   rj   rk   rl   r   r{   r|   ry   order_byapproval_managers_editlenrC   r   verbose_name)r2   r&   rm   managersr3   s       r#   rh   z.EditApprovalConditionFormView.get_context_data   s    '*4V4IT		-.55;;IF - 			-.55;;	
 ,33::++ ; 

(:
 	 	##DIIx8$'M !))'()M'N$r"   c                 r   t        |      D ]  \  }}|dk(  r|d   j                  |j                  d<   (d| }t        j                  t
        j                  j                         |dk(  rt        d      ndt        dd|d| d	
      d      |j                  |<   |j                  |j                  |<    y )Nr   rq   multi_approval_manager_zApproval ManagerrZ   z&/configuration/remove-approval-managerzoh-select oh-select-2 mb-3id_)classr   id)
delete_urlrl   F)querysetlabelrk   required)	enumerateru   initialr   ModelChoiceFieldr   r{   allrC   r   rj   )r2   ri   r   imanager
field_names         r#   r   z4EditApprovalConditionFormView.approval_managers_edit   s    #H- 	?JAwAv9A!9P9P566qc:
*/*@*@%--113346!./r2#K%A$.$'
|"4 #+J' ,3+>+>Z(%	?r"   ri   r'   c                    |j                         r#|j                         }d}| j                  j                  j                  rt
        j                  j                  | j                  j                        j                          t        d      }| j                  j                  j                         D ]M  \  }}|j                  d      s|dz  }d }	 t        |      }t
        j                  j                  ||||       O t!        j"                  | j                  |       | j%                         S t&        	| Q  |      S #  d }|}Y lxY w)Nr   ro   z/Multiple approval conditon updated Successfullyrq   rr   rs   )rw   rx   ri   ry   rz   r   r{   r|   r}   rC   rM   r~   items
startswithr   r   r   r   r   r,   r   )
r2   ri   ry   rt   r   keyvaluerv   ru   r3   s
            r#   r   z(EditApprovalConditionFormView.form_valid   s&   ==?yy{HHyy!!$$(0077!%!3!3 8 &(MN"&,,"3"3"9"9"; JC~~&>? A,0)6*-e*K 188??)1%-(3.?	 @    w7$$&&w!$''6*.K05-s   EE)r   r   r   r   r    rh   r   r   r   r   rH   rI   s   @r#   r   r      s3     EM?*(; ( ( (r"   r   N)*r   typingr   djangor   django.contribr   django.httpr   django.urlsr   django.utils.decoratorsr   django.utils.translationr	   rC   base.filtersr
   
base.formsr   base.modelsr   r   base.widgetsr   employee.modelsr   horilla_views.cbv_methodsr   r   horilla_views.generic.cbv.viewsr   r   r   r   r   r   r%   rK   rU   ra   r   r!   r"   r#   <module>r      sF     # $  4 6 8 3 K 0 $ I  .z2BC*WL W 3W .z2BC*(O ( 3(V .z2BC**> * 3*, .z2BC**=  32.( .(bE($E E(r"   