
    si%                     d   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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 ddlmZ ddlmZ ddlmZ  G d de      Z G d de      Z  G d de      Z! G d de      Z" G d de      Z# G d de      Z$ eed       G d de             Z%y) z\
This page is handling the cbv methods of work type and shift tab in employee profile page.
    )Any)reverse)method_decorator)gettext_lazy)RotatingShiftDetailviewRotatingShiftListParent)GeneralParentRotatingWorkDetailView)ShiftRequestList)WorkRequestListView)filtersubordinatesis_reportingmanager)WorkTypeRequest)Employee)login_required)HorillaTabViewc                   :     e Zd ZdZdZdeddf fdZ fdZ xZS )WorkAndShiftTabViewz2
    generic tab view for work type and shift
    z+cbv/work_shift_tab/extended_work-shift.htmlkwargsreturnNc                 2    t        |   di | d| _        y )Nz
work-shift )super__init__view_id)selfr   	__class__s     ;/var/www/python-projects/worksol/base/cbv/work_shift_tab.pyr   zWorkAndShiftTabView.__init__    s    "6"#    c                 :   t        |   di |}| j                  j                  d      }||d<   t        j
                  j                  |      }||d<   t        d      t        dd|i       dd	t        d
       d| ddgdt        d      t        dd|i       dd	t        d       d| ddgdt        d      t        dd|i       dd	t        d       d| ddgdt        d      t        dd|i       dd	t        d       d| ddgdg|d<   |S )Npkemp_id)idemployeezWork type requestemployee-worktype-tab-listr   zAdd Work Type Requestz)
                                hx-get="zwork-type-requestz?emp_id=z",
								hx-target="#genericModalBody"
								data-toggle="oh-modal-toggle"
								data-target="#genericModal"
                      )actionattrs)titleurlactionszRotating work typeemployee-rotating-work-tab-listzAdd Rotating Workzrotating-work-type-assign-addzShift request!shift-request-individual-tab-viewzAdd Shift Requestzshift-requestzRotating Shift"rotating-shift-individual-tab-viewzAdd Rotating Shiftzrotating-shift-assign-addtabsr   )r   get_context_datar   getr   objects_r   )r   r   contextr!   r$   r   s        r   r0   z$WorkAndShiftTabView.get_context_data$   s   '*4V4[[__T"##''2'.&
 ./!">tRjQR #:&))01D)E(Fhrd S"
  /0!"CDRT:VW #6&))01P)Q(RRZ[]Z^ _"
  ?+!"EdTVZXY #6&))0)A(B(2$ O"
  +,!"FtUWjYZ #7&))01L)M(NhWYVZ ["
]=
| r   )	__name__
__module____qualname____doc__template_namer   r   r0   __classcell__r   s   @r   r   r      s/     BM$ $ $D Dr   r   c                       e Zd ZdZdeddffdZfdZej                  D  cg c]  }|d   dk7  s| c}}  e	d	      d
fgz   ZxZ
S c c}} w )WorkTypeIndividualTabListz%
    List view for work type tab
    r   r   Nc                     t        |   di | | j                  j                  j                  j                  d      }t        dd|i      | _        d| _        y )Nr!   r%   r&   work_targetr   	r   r   requestresolver_matchr   r1   r   
search_urlr   r   r   r!   r   s      r   r   z"WorkTypeIndividualTabList.__init__p   sM    "6"\\((//33D9!">bzR$r   c                     t         |          }| j                  j                  d      }t        j
                  j                  |      }|S Nr!   employee_id)r   get_querysetr   r1   r   r2   filterr   querysetr!   r   s      r   rI   z&WorkTypeIndividualTabList.get_querysetv   s@    7')[[__T""**11b1Ar      comment_noteStatusrequest_status)r5   r6   r7   r8   r   r   rI   r   columnsr3   r:   ).0colr   s   00@r   r=   r=   k   sb    % % % +22c!f6N
H+'	()*G s
   AAr=   c                       e Zd ZdZdeddffdZej                  D  cg c]  }|d   dk7  s| c}}  ed      d	fgz   Zfd
Z	xZ
S c c}} w )ShiftRequestIndividualTabViewz)
    List view for shift request tab
    r   r   Nc                     t        |   di | d| _        d| _        | j                  j
                  j                  j                  d      }t        dd|i      | _	        y )Nzshift-reques-individual-div shiftselectedInstancesIndividualr!   r-   r&   r   )
r   r   r   selected_instances_key_idrA   rB   r   r1   r   rC   rD   s      r   r   z&ShiftRequestIndividualTabView.__init__   sW    "6"4)K&\\((//33D9!/r

r   rM   commentrO   rP   c                 ~    t         |          }| j                  j                  d      }|j	                  |      }|S rF   r   rI   r   r1   rJ   rK   s      r   rI   z*ShiftRequestIndividualTabView.get_queryset   7    7')[[__T"??r?2r   )r5   r6   r7   r8   r   r   r   rQ   r3   rI   r:   )rR   columnr   s   00@r   rU   rU      sg    
 
 
 .55i9O
H+'	()*G 	s
   AArU   c                   j     e Zd ZdZdeddf fdZej                   ed      dfgz   ZdZ	 fd	Z
 xZS )
!RotatingShiftAssignIndividualViewz2
    List view for Rotating shift request tab
    r   r   Nc                     t        |   di | | j                  j                  j                  j                  d      }t        dd|i      | _        d| _        y )Nr!   r.   r&   zrotating-divr   r@   rD   s      r   r   z*RotatingShiftAssignIndividualView.__init__   sQ    "6"\\((//33D9!0$
 &r   rO   check_activez
                hx-get='{rotating_shift_individual_detail}?instance_ids={ordered_ids}'
                hx-target="#genericModalBody"
                data-target="#genericModal"
                data-toggle="oh-modal-toggle"
                c                 ~    t         |          }| j                  j                  d      }|j	                  |      }|S rF   r[   rK   s      r   rI   z.RotatingShiftAssignIndividualView.get_queryset   r\   r   )r5   r6   r7   r8   r   r   r   rQ   r3   	row_attrsrI   r:   r;   s   @r   r_   r_      sO    & & & &--	
8n%1 GI r   r_   c                   j     e Zd ZdZdeddf fdZej                   ed      dfgz   Z fdZ	d	Z
 xZS )
RotatingWorkIndividualTabz.
    List view for rotating work type tab
    r   r   Nc                     t        |   di | | j                  j                  j                  j                  d      }t        dd|i      | _        d| _        y )Nr!   r,   r&   zrotating-work-divr   r@   rD   s      r   r   z"RotatingWorkIndividualTab.__init__   sN    "6"\\((//33D9!"CTSUJW*r   rO   detail_is_activec                 ~    t         |          }| j                  j                  d      }|j	                  |      }|S rF   r[   rK   s      r   rI   z&RotatingWorkIndividualTab.get_queryset   r\   r   z
                hx-get='{individual_tab_work_rotate_detail_view}?instance_ids={ordered_ids}'
                hx-target="#genericModalBody"
                data-target="#genericModal"
                data-toggle="oh-modal-toggle"
                )r5   r6   r7   r8   r   r   r	   rQ   r3   rI   rc   r:   r;   s   @r   re   re      sK    + + + ##	
8()' GIr   re   c                   F     e Zd ZdZ eed       fd       Z fdZ xZS )'RotatingShiftAssignIndividualDetailViewz6
    Individual rotating shift assign detail view
    dispatchnamec                 *    t        t        | 
  |i |S N)r   r   rk   r   argsr   r   s      r   rk   z0RotatingShiftAssignIndividualDetailView.dispatch   s    ,d<dMfMMr   c                 &   t         |          }| j                  j                  d      }|j                  |      }|j                  }t        | j                        rJt        | j                  |d      |j                  | j                  j                  j                        z  }|S | j                  j                  j                  d      r|j                  |      }|S |j                  | j                  j                  j                        }|S )Nr!   r!   zbase.view_rotatingshiftassignrG   r   rI   r   r1   rH   r   rA   r   rJ   useremployee_gethas_perm)r   rL   r!   objrH   r   s        r   rI   z4RotatingShiftAssignIndividualDetailView.get_queryset   s    7')[[__T"llbl!oot||,)h(GDLL,=,=,J,JKLH 	 \\''(GH;?H   4<<3D3D3Q3QRHr   	r5   r6   r7   r8   r   r   rk   rI   r:   r;   s   @r   rj   rj      s/     n:6N 7N r   rj   rk   rl   c                   F     e Zd ZdZ eed       fd       Z fdZ xZS )DetailViewChildz 
    parent for detail view
    rk   rl   c                 *    t        t        | 
  |i |S ro   )r   r
   rk   rp   s      r   rk   zDetailViewChild.dispatch  s    +T;TLVLLr   c                 &   t         |          }| j                  j                  d      }|j                  |      }|j                  }t        | j                        rJt        | j                  |d      |j                  | j                  j                  j                        z  }|S | j                  j                  j                  d      r|j                  |      }|S |j                  | j                  j                  j                        }|S )Nr!   rs   z base.view_rotatingworktypeassignrG   rt   )r   rL   r!   rx   r"   r   s        r   rI   zDetailViewChild.get_queryset
  s    7')[[__T"llbl!t||,)h(JDLL,=,=,J,JKLH  \\''(JK6:H   4<<3D3D3Q3QRHr   ry   r;   s   @r   r{   r{      s/     n:6M 7M r   r{   N)&r8   typingr   django.urlsr   django.utils.decoratorsr   django.utils.translationr   r3   base.cbv.rotating_shift_assignr   r   base.cbv.rotating_work_typer	   r
   base.cbv.shift_requestr   base.cbv.work_type_requestr   base.methodsr   r   base.modelsr   employee.modelsr   horilla_views.cbv_methodsr   horilla_views.generic.cbv.viewsr   r   r=   rU   r_   re   rj   r{   r   r   r   <module>r      s      4 6 N 3 : @ ' $ 4 :O. Od* 3 *,$4 2(? > \.E 2 .z2,  3r   