210 lines
7.1 KiB
Python
210 lines
7.1 KiB
Python
from bootstrap_datepicker_plus import DatePickerInput
|
|
from django import forms
|
|
from django.forms import ModelForm
|
|
from .models import Absence, AbsenceReason, FreeDays, Workday, Breaks
|
|
from users.models import UserFullName
|
|
from django.forms import HiddenInput
|
|
|
|
class AddAbsence(forms.ModelForm):
|
|
class Meta:
|
|
model = Absence
|
|
labels = {
|
|
"start" : "Beginn der Abwesenheit",
|
|
"start_ishalf" : "Halber Tag?",
|
|
"end" : "Ende der Abwesenheit",
|
|
"end_ishalf" : "Halber Tag?",
|
|
"reason" : "Abwesenheitsgrund",
|
|
"representator" : "Vertreter",
|
|
"info" : "Begründung",
|
|
"startday_info" : "",
|
|
"endday_info" : ""
|
|
}
|
|
widgets = {
|
|
'start': DatePickerInput(options={"format":'DD.MM.YYYY', "locale":'de'}),
|
|
'end': DatePickerInput(options={"format":'DD.MM.YYYY', "locale":'de'}),
|
|
}
|
|
|
|
|
|
#fields = ['start', 'start_ishalf', 'end','end_ishalf', 'reason', "representator", 'info']
|
|
fields = ['start', 'startday_info', 'end','endday_info', 'reason', "representator", 'info']
|
|
|
|
def __init__(self, *arg, **kwargs):
|
|
super(AddAbsence, self).__init__(*arg, **kwargs)
|
|
self.fields['reason'].queryset = AbsenceReason.objects.filter(agency=kwargs['instance'].profile.agency).order_by('-name')
|
|
self.fields['representator'].queryset = UserFullName.objects.filter(profile__agency=kwargs['instance'].profile.agency)
|
|
self.fields['info'].widget.attrs['rows'] = 3
|
|
self.fields['start'].required = True
|
|
self.fields['end'].required = True
|
|
self.fields['reason'].required = True
|
|
|
|
self.fields['nextmonth'] = forms.CharField(initial="", required=False, widget=forms.HiddenInput())
|
|
self.fields['prevmonth'] = forms.CharField(initial="", required=False, widget=forms.HiddenInput())
|
|
self.fields['nextyear'] = forms.CharField(initial="", required=False, widget=forms.HiddenInput())
|
|
self.fields['prevyear'] = forms.CharField(initial="", required=False, widget=forms.HiddenInput())
|
|
self.fields['activemonth'] = forms.CharField(initial="", required=False, widget=forms.HiddenInput())
|
|
self.fields['activeyear'] = forms.CharField(initial="", required=False, widget=forms.HiddenInput())
|
|
self.fields['userid'] = forms.CharField(initial="", required=False, widget=forms.HiddenInput())
|
|
|
|
|
|
|
|
class UpdateAbsence(forms.ModelForm):
|
|
|
|
class Meta:
|
|
model = Absence
|
|
labels = {
|
|
"start" : "Beginn der Abwesenheit",
|
|
"start_ishalf" : "Halber Tag?",
|
|
"end" : "Ende der Abwesenheit",
|
|
"end_ishalf" : "Halber Tag?",
|
|
"reason" : "Abwesenheitsgrund",
|
|
"representator" : "Vertreter",
|
|
"info" : "Begründung",
|
|
"startday_info" : "",
|
|
"endday_info" : ""
|
|
}
|
|
widgets = {
|
|
'start': DatePickerInput(options={"format":'DD.MM.YYYY', "locale":'de'}),
|
|
'end': DatePickerInput(options={"format":'DD.MM.YYYY', "locale":'de'}),
|
|
}
|
|
|
|
|
|
#fields = ['start', 'start_ishalf', 'end','end_ishalf', 'reason', "representator", 'info']
|
|
fields = ['start', 'startday_info', 'end','endday_info', 'reason', "representator", 'info', 'holidays_normal', 'holidays_rest', 'holidays_normal_next', 'holidays_rest_next' ]
|
|
|
|
def __init__(self, *arg, **kwargs):
|
|
super(UpdateAbsence, self).__init__(*arg, **kwargs)
|
|
self.fields['reason'].queryset = AbsenceReason.objects.filter(agency=kwargs['instance'].profile.agency).order_by('-name')
|
|
self.fields['representator'].queryset = UserFullName.objects.filter(profile__agency=kwargs['instance'].profile.agency, )
|
|
self.fields['info'].widget.attrs['rows'] = 3
|
|
self.fields['start'].required = True
|
|
self.fields['end'].required = True
|
|
self.fields['reason'].required = True
|
|
|
|
self.fields['nextmonth'] = forms.CharField(initial="", required=False, widget=forms.HiddenInput())
|
|
self.fields['prevmonth'] = forms.CharField(initial="", required=False, widget=forms.HiddenInput())
|
|
self.fields['nextyear'] = forms.CharField(initial="", required=False, widget=forms.HiddenInput())
|
|
self.fields['prevyear'] = forms.CharField(initial="", required=False, widget=forms.HiddenInput())
|
|
self.fields['activemonth'] = forms.CharField(initial="", required=False, widget=forms.HiddenInput())
|
|
self.fields['activeyear'] = forms.CharField(initial="", required=False, widget=forms.HiddenInput())
|
|
self.fields['userid'] = forms.CharField(initial="", required=False, widget=forms.HiddenInput())
|
|
|
|
self.fields['holidays_normal'] = forms.FloatField(required=False, widget=forms.HiddenInput())
|
|
self.fields['holidays_rest'] = forms.FloatField(required=False, widget=forms.HiddenInput())
|
|
self.fields['holidays_normal_next'] = forms.FloatField(required=False, widget=forms.HiddenInput())
|
|
self.fields['holidays_rest_next'] = forms.FloatField(required=False, widget=forms.HiddenInput())
|
|
|
|
'''
|
|
def clean(self):
|
|
start_date = self.cleaned_data['start']
|
|
end_date = self.cleaned_data['end']
|
|
|
|
if end_date <= start_date:
|
|
raise forms.ValidationError("Das Ende der Abwesenheit muss am oder nach dem Start der Abwesenheit liegen.")
|
|
return super(AddAbsence, self).clean()
|
|
'''
|
|
|
|
class ConfirmAbsenceForm(forms.ModelForm):
|
|
class Meta:
|
|
model = Absence
|
|
|
|
labels = {
|
|
"confirm_info" : "Begründung zur Annahme/zur Ablehnung"
|
|
}
|
|
fields = ['confirm_info']
|
|
|
|
def __init__(self, *arg, **kwargs):
|
|
super(ConfirmAbsenceForm, self).__init__(*arg, **kwargs)
|
|
self.fields['confirm_info'].widget.attrs['rows'] = 3
|
|
|
|
|
|
# NEW USER FORM
|
|
class AddFreeDayForm(forms.ModelForm):
|
|
class Meta:
|
|
model = FreeDays
|
|
labels = {
|
|
"day" : "Datum",
|
|
"name" : "Bezeichnung"
|
|
}
|
|
|
|
fields = [
|
|
"name", "day"
|
|
]
|
|
widgets = {
|
|
'day': DatePickerInput(options={"format":'DD.MM.YYYY', "locale":'de'}),
|
|
}
|
|
|
|
def __init__(self, *arg, **kwargs):
|
|
super(AddFreeDayForm, self).__init__(*arg, **kwargs)
|
|
self.fields['name'].required = True
|
|
self.fields['day'].required = True
|
|
|
|
|
|
# UPDATE WORK FORM
|
|
class UpdateWorkdayForm(forms.ModelForm):
|
|
class Meta:
|
|
model = Workday
|
|
labels = {
|
|
"start" : "Start",
|
|
"end" : "Ende",
|
|
"target" : "Zielarbeitszeit"
|
|
}
|
|
|
|
fields = [
|
|
"start", "end", "target"
|
|
]
|
|
widgets = {
|
|
'start': DatePickerInput(options={"format":'HH:mm', "locale":'de'}),
|
|
'end': DatePickerInput(options={"format":'HH:mm', "locale":'de'}),
|
|
}
|
|
|
|
def __init__(self, *arg, **kwargs):
|
|
super(UpdateWorkdayForm, self).__init__(*arg, **kwargs)
|
|
self.fields['start'].required = True
|
|
self.fields['end'].required = True
|
|
|
|
|
|
# ADD WORKDAY FORM
|
|
class AddWorkdayForm(forms.ModelForm):
|
|
class Meta:
|
|
model = Workday
|
|
labels = {
|
|
"start" : "Start",
|
|
"end" : "Ende",
|
|
"target" : "Zielarbeitszeit"
|
|
}
|
|
|
|
fields = [
|
|
"start", "end", "target"
|
|
]
|
|
widgets = {
|
|
'start': DatePickerInput(options={"format":'DD.MM.YYYY HH:mm', "locale":'de'}),
|
|
'end': DatePickerInput(options={"format":'DD.MM.YYYY HH:mm', "locale":'de'}),
|
|
}
|
|
|
|
def __init__(self, *arg, **kwargs):
|
|
super(AddWorkdayForm, self).__init__(*arg, **kwargs)
|
|
self.fields['start'].required = True
|
|
self.fields['end'].required = True
|
|
|
|
# ADD BREAK FORM
|
|
class AddBreakForm(forms.ModelForm):
|
|
class Meta:
|
|
model = Breaks
|
|
labels = {
|
|
"start" : "Start",
|
|
"end" : "Ende"
|
|
}
|
|
|
|
fields = [
|
|
"start", "end"
|
|
]
|
|
widgets = {
|
|
'start': DatePickerInput(options={"format":'HH:mm', "locale":'de'}),
|
|
'end': DatePickerInput(options={"format":'HH:mm', "locale":'de'}),
|
|
}
|
|
|
|
def __init__(self, *arg, **kwargs):
|
|
super(AddBreakForm, self).__init__(*arg, **kwargs)
|
|
self.fields['start'].required = True
|
|
self.fields['end'].required = True
|