
    si?                         d Z ddl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 ddlmZ ddlmZmZ  G d de      Z G d de
      Z G d de      Z G d de      Zy)z\
This page is handling the cbv methods of work type and shift tab in employee profile page.
    N)Any)reverse)gettext_lazy)AttendanceRequestListTab)HourAccountList)MyAttendancesListView)AttendanceFilters)
Attendance)filtersubordinates)paginator_qry)Employee)HorillaListViewHorillaTabViewc                   6     e Zd ZdZdeddf fdZ fdZ xZS )AttendanceTabViewz)
    generic tab view for attendance
    kwargsreturnNc                 2    t        |   di | d| _        y )Nzattendance-container )super__init__view_id)selfr   	__class__s     A/var/www/python-projects/worksol/attendance/cbv/attendance_tab.pyr   zAttendanceTabView.__init__   s    "6"-    c           	         t        |   di |}| j                  j                  d      }||d<   t        j
                  j                  |      }||d<   t        d      t        dd|i       dd	d
t        d       d| ddgdt        d      t        dd|i       dt        d      t        dd|i       dt        d      t        dd|i       dg|d<   |S )Npkemp_id)idinstancezRequested Attendances!attendance-request-individual-tabr   zCreate Attendance RequestzDattendance.cbv.accessibility.create_attendance_request_accessibilityz)
                                hx-get="zrequest-new-attendancez?emp_id=z",
								hx-target="#genericModalBody"
								data-toggle="oh-modal-toggle"
								data-target="#genericModal"
                      )actionaccessibilityattrs)titleurlactionszValidate Attendancesz"validate-attendance-individual-tab)r'   r(   zHour Account"attendance-overtime-individual-tabzAll Attendancesall-attendances-individual-tabtabsr   )r   get_context_datar   getr   objects_r   )r   r   contextr   employeer   s        r   r-   z"AttendanceTabView.get_context_data!   s'   '*4V4[[__T"##''2'.&
 23!"EdTVZXY #>)o&))01I)J(K8TVSW X"	" 12!"FtUWjYZ
 >*!"FtUWjYZ
 ,-!"B4QS*UV3
< r   )__name__
__module____qualname____doc__r   r   r-   __classcell__r   s   @r   r   r      s%    . . .$ $r   r   c                   2     e Zd ZdZdeddf fdZd Z xZS )!RequestedAttendanceIndividualViewz5
    list view for requested attendance tab view
    r   r   Nc                     t        |   di | | j                  j                  j                  j                  d      }t        dd|i      | _        d| _        y )Nr   r"   r#   zattendance-requests-containerr   	r   r   requestresolver_matchr   r.   r   
search_urlr   r   r   r   r   s      r   r   z*RequestedAttendanceIndividualView.__init__M   sQ    "6"\\((//33D9!/r

 7r   c                     t        j                  |       }| j                  j                  j                  j                  d      }|j                  |d      }|S )Nr   T)employee_id__employee_user_idis_validate_request)r   get_querysetr=   r>   r   r.   filter)r   querysetr   s      r   rD   z.RequestedAttendanceIndividualView.get_querysetU   sR    "//5\\((//33D9??*, $ # 
 r   )r3   r4   r5   r6   r   r   rD   r7   r8   s   @r   r:   r:   H   s     7 7 7r   r:   c                   :     e Zd ZdZdZdeddf fdZ fdZ xZS )HourAccountIndividualTabViewz(
    list view for hour account tab
    z'cbv/hour_account/hour_account_main.htmlr   r   Nc                     t        |   di | | j                  j                  j                  j                  d      }t        dd|i      | _        d| _        y )Nr   r*   r#   zot-tabler   r<   r@   s      r   r   z%HourAccountIndividualTabView.__init__f   sQ    "6"\\((//33D9!0$
 "r   c                 ~    t         |          }| j                  j                  d      }|j	                  |      }|S Nr   )employee_idr   rD   r   r.   rE   r   rF   r   r   s      r   rD   z)HourAccountIndividualTabView.get_querysetn   7    7')[[__T"??r?2r   )	r3   r4   r5   r6   template_namer   r   rD   r7   r8   s   @r   rH   rH   _   s,     >M" " " r   rH   c                   .     e Zd Zdef fdZ fdZ xZS )AllAttendancesListr   c                     t        |   di |}| j                  j                  d      }t	        dd|i       |d<   |S )Nr   r+   r#   r?   r   )r   r-   r   r.   r   )r   r   r1   r   r   s       r   r-   z#AllAttendancesList.get_context_dataw   sJ    '*4V4[[__T"7bzJK 	 r   c                 ~    t         |          }| j                  j                  d      }|j	                  |      }|S rK   rM   rN   s      r   rD   zAllAttendancesList.get_queryset   rO   r   )r3   r4   r5   r   r-   rD   r7   r8   s   @r   rR   rR   u   s      r   rR   ) r6   jsontypingr   django.urlsr   django.utils.translationr   r0   !attendance.cbv.attendance_requestr   attendance.cbv.hour_accountr   attendance.cbv.my_attendancesr   attendance.filtersr	   attendance.modelsr
   base.methodsr   base.request_and_approver   employee.modelsr   horilla_views.generic.cbv.viewsr   r   r   r:   rH   rR   r   r   r   <module>rb      sf       6 F 7 ? 0 ( + 2 $ K/ /d(@ .? ,. r   