
    si                     0   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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  eed       G d de             Z eed       G d de             Z eed       G d de             Zy)z1
this page handles the cbv methods for dashboard
    )datetime)Any)reverse)method_decorator)gettext_lazy)OTAttendancesListValidateAttendancesList)LateComeEarlyOutFilter)strtime_seconds)AttendanceLateComeEarlyOutAttendanceValidationCondition)filtersubordinates)login_required)HorillaListViewdispatch)namec                   n     e Zd ZdZdeddf fdZ ed      ddf ed	      d
fgZddddZdZ	dZ
dZ xZS )DashboardAttendanceToValidatez;
    list view for attendance to validate in dashboard
    kwargsreturnNc                 R    t        |   di | t        d      | _        d| _        y )Nzdashboard-attendance-validate  super__init__r   
search_urloption_methodselfr   	__class__s     </var/www/python-projects/worksol/attendance/cbv/dashboard.pyr   z&DashboardAttendanceToValidate.__init__   s(    "6"!"AB    Employeeemployee_idemployee_id__get_avatarzWorked Hoursattendance_worked_hourzI
                    style="width:100px !important;"
                    Y
                            style="width:100px !important;"
                            )r'   r%   action   F)__name__
__module____qualname____doc__r   r   _columnsheader_attrsrecords_per_pagebulk_select_optionshow_toggle_form__classcell__r!   s   @r"   r   r      sk          
:'@A	
>	45G# 
L r#   r   c                   x     e Zd ZdZdeddf fdZ fdZ ed      dd	f ed
      dfgZddddZ	dZ
dZdZ xZS )DashboardaAttendanceOTz>
    list view for OT attendance to validate in dashboard
    r   r   Nc                 R    t        |   di | t        d      | _        d| _        y )Nzdashboard-overtime-approver   r   r   r   s     r"   r   zDashboardaAttendanceOT.__init__<   s(    "6"!">?r#   c                    t         |          }t        j                  j	                         }t        d      }|!|j                  t        |j                        }|j                  |ddd      }t        | j                  |d      }|S )Nz00:00TF)overtime_second__gteattendance_validatedemployee_id__is_activeattendance_overtime_approvezattendance.view_attendance)
r   get_querysetr   objectsfirstr   minimum_overtime_to_approvefilterr   request)r    queryset	conditionminotr!   s       r"   r?   z#DashboardaAttendanceOT.get_querysetA   s    7')199??A	( Y%J%J%V#I$I$IJE??!&!%#'(-	 # 
 &LL($@
 r#   r$   r%   r&   Overtimeattendance_overtimez9
            style="width:100px !important;"
            r(   )r)   rI   r%   Fr*   )r+   r,   r-   r.   r   r   r?   r/   r0   r1   r4   r2   r3   r5   r6   s   @r"   r8   r8   6   so         
$ 
:'@A	
:-.G
  
L r#   r8   c                   ^     e Zd ZdZeZeZdZdZ	de
ddf fdZ fdZ ed      d	d
fgZ xZS )DashboardOnBreakz)
    view for on break employee list
    Fr   r   Nc                 D    t        |   di | t        d      | _        y )Nzdashboard-on-breakr   )r   r   r   r   r   s     r"   r   zDashboardOnBreak.__init__s   s     "6"!"67r#   c                 r    t         |          }t        j                         }|j	                  d|      }|S )N	early_out)typeattendance_id__attendance_date)r   r?   r   todayrC   )r    rE   rQ   r!   s      r"   r?   zDashboardOnBreak.get_querysetw   s;    7') ??U # 
 r#   r$   r%   r&   )r+   r,   r-   r.   r   modelr
   filter_classr4   r3   r   r   r?   r/   r0   r5   r6   s   @r"   rK   rK   g   sP     'E)L8 8 8 
:'@AGr#   rK   N)r.   r   typingr   django.urlsr   django.utils.decoratorsr   django.utils.translationr   r/   attendance.cbv.attendancesr   r	   attendance.filtersr
   attendance.methods.utilsr   attendance.modelsr   r   base.methodsr   horilla_views.cbv_methodsr   horilla_views.generic.cbv.viewsr   r   r8   rK   r   r#   r"   <module>r_      s       4 6 Q 5 4 W + 4 ; .z2$;  3@ .z2-. - 3-` .z2  3r#   