177 lines
6.1 KiB
Python
177 lines
6.1 KiB
Python
import django_filters
|
|
from horilla.filters import FilterSet, filter_by_name
|
|
from django_filters import CharFilter
|
|
from django import forms
|
|
from base.models import ShiftRequest,WorkTypeRequest, RotatingShiftAssign, RotatingWorkTypeAssign
|
|
|
|
|
|
|
|
|
|
|
|
class ShiftRequestFilter(FilterSet):
|
|
requested_date = django_filters.DateFilter(
|
|
field_name='requested_date',
|
|
widget=forms.DateInput(attrs={'type': 'date'})
|
|
)
|
|
requested_date__gte = django_filters.DateFilter(
|
|
field_name='requested_date',
|
|
lookup_expr='gte',
|
|
widget=forms.DateInput(attrs={'type': 'date'})
|
|
)
|
|
requested_date__lte = django_filters.DateFilter(
|
|
field_name='requested_date',
|
|
lookup_expr='lte',
|
|
widget=forms.DateInput(attrs={'type': 'date'})
|
|
)
|
|
search = CharFilter(method=filter_by_name)
|
|
|
|
class Meta:
|
|
fields = '__all__'
|
|
model = ShiftRequest
|
|
fields = [
|
|
|
|
'employee_id',
|
|
'requested_date',
|
|
'previous_shift_id',
|
|
'shift_id',
|
|
'approved',
|
|
'canceled',
|
|
'employee_id__employee_first_name',
|
|
'employee_id__employee_last_name',
|
|
'employee_id__is_active',
|
|
'employee_id__gender',
|
|
'employee_id__employee_work_info__job_position_id',
|
|
'employee_id__employee_work_info__department_id',
|
|
'employee_id__employee_work_info__work_type_id',
|
|
'employee_id__employee_work_info__employee_type_id',
|
|
'employee_id__employee_work_info__job_role_id',
|
|
'employee_id__employee_work_info__reporting_manager_id',
|
|
'employee_id__employee_work_info__company_id',
|
|
'employee_id__employee_work_info__shift_id',
|
|
]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class WorkTypeRequestFilter(FilterSet):
|
|
requested_date = django_filters.DateFilter(
|
|
field_name='requested_date',
|
|
widget=forms.DateInput(attrs={'type': 'date'})
|
|
)
|
|
requested_date__gte = django_filters.DateFilter(
|
|
field_name='requested_till',
|
|
lookup_expr='gte',
|
|
widget=forms.DateInput(attrs={'type': 'date'})
|
|
)
|
|
requested_date__lte = django_filters.DateFilter(
|
|
field_name='requested_till',
|
|
lookup_expr='lte',
|
|
widget=forms.DateInput(attrs={'type': 'date'})
|
|
)
|
|
search = CharFilter(method=filter_by_name)
|
|
|
|
class Meta:
|
|
fields = '__all__'
|
|
model = WorkTypeRequest
|
|
fields = [
|
|
|
|
'employee_id',
|
|
'requested_date',
|
|
'previous_work_type_id',
|
|
'approved',
|
|
'work_type_id',
|
|
'canceled',
|
|
'employee_id__employee_first_name',
|
|
'employee_id__employee_last_name',
|
|
'employee_id__is_active',
|
|
'employee_id__gender',
|
|
'employee_id__employee_work_info__job_position_id',
|
|
'employee_id__employee_work_info__department_id',
|
|
'employee_id__employee_work_info__work_type_id',
|
|
'employee_id__employee_work_info__employee_type_id',
|
|
'employee_id__employee_work_info__job_role_id',
|
|
'employee_id__employee_work_info__reporting_manager_id',
|
|
'employee_id__employee_work_info__company_id',
|
|
'employee_id__employee_work_info__shift_id',
|
|
]
|
|
|
|
|
|
|
|
|
|
class RotatingShiftAssignFilters(FilterSet):
|
|
search = CharFilter(method=filter_by_name)
|
|
|
|
next_change_date = django_filters.DateFilter(
|
|
field_name='next_change_date',
|
|
widget=forms.DateInput(attrs={'type': 'date'})
|
|
)
|
|
start_date = django_filters.DateFilter(
|
|
field_name='start_date',
|
|
widget=forms.DateInput(attrs={'type': 'date'})
|
|
)
|
|
class Meta:
|
|
fields = '__all__'
|
|
model = RotatingShiftAssign
|
|
fields = [
|
|
'employee_id',
|
|
'rotating_shift_id',
|
|
'next_change_date',
|
|
'start_date',
|
|
'based_on',
|
|
'rotate_after_day',
|
|
'rotate_every_weekend',
|
|
'rotate_every',
|
|
'current_shift',
|
|
'next_shift',
|
|
'is_active',
|
|
'employee_id__employee_work_info__job_position_id',
|
|
'employee_id__employee_work_info__department_id',
|
|
'employee_id__employee_work_info__work_type_id',
|
|
'employee_id__employee_work_info__employee_type_id',
|
|
'employee_id__employee_work_info__job_role_id',
|
|
'employee_id__employee_work_info__reporting_manager_id',
|
|
'employee_id__employee_work_info__company_id',
|
|
'employee_id__employee_work_info__shift_id',
|
|
|
|
]
|
|
|
|
|
|
|
|
class RotatingWorkTypeAssignFilter(FilterSet):
|
|
search = CharFilter(method=filter_by_name)
|
|
|
|
next_change_date = django_filters.DateFilter(
|
|
field_name='next_change_date',
|
|
widget=forms.DateInput(attrs={'type': 'date'})
|
|
)
|
|
start_date = django_filters.DateFilter(
|
|
field_name='start_date',
|
|
widget=forms.DateInput(attrs={'type': 'date'})
|
|
)
|
|
class Meta:
|
|
fields = '__all__'
|
|
model = RotatingWorkTypeAssign
|
|
fields = [
|
|
'employee_id',
|
|
'rotating_work_type_id',
|
|
'next_change_date',
|
|
'start_date',
|
|
'based_on',
|
|
'rotate_after_day',
|
|
'rotate_every_weekend',
|
|
'rotate_every',
|
|
'current_work_type',
|
|
'next_work_type',
|
|
'is_active',
|
|
'employee_id__employee_work_info__job_position_id',
|
|
'employee_id__employee_work_info__department_id',
|
|
'employee_id__employee_work_info__work_type_id',
|
|
'employee_id__employee_work_info__employee_type_id',
|
|
'employee_id__employee_work_info__job_role_id',
|
|
'employee_id__employee_work_info__reporting_manager_id',
|
|
'employee_id__employee_work_info__company_id',
|
|
'employee_id__employee_work_info__shift_id',
|
|
|
|
] |