115 lines
3.0 KiB
Python
115 lines
3.0 KiB
Python
from datetime import datetime
|
|
from django import forms
|
|
from django.utils import timezone
|
|
from .models import Employee, LogEntry, Todo, Event
|
|
from .regex import process_regex
|
|
|
|
class EmployeePreCreateForm(forms.Form):
|
|
initial_data = forms.CharField(widget=forms.Textarea(attrs = {
|
|
'autofocus': True
|
|
}))
|
|
|
|
def filter_onboarding_email(self):
|
|
data = process_regex(self.cleaned_data['initial_data'])
|
|
|
|
try:
|
|
hire_date = datetime.strptime(data['hire_date'], '%m/%d/%Y').date()
|
|
except ValueError as e:
|
|
hire_date = datetime.now().date()
|
|
|
|
|
|
initial_comments = data['initial_comments'] + '\nIT Requests: ' + data['it_requests']
|
|
|
|
employee = Employee.objects.create(
|
|
first_name = data['first_name'],
|
|
last_name = data['last_name'],
|
|
hire_date = hire_date,
|
|
title = data['title'],
|
|
department = data['department'],
|
|
manager = data['manager'],
|
|
initial_comments = initial_comments,
|
|
)
|
|
|
|
|
|
return employee
|
|
|
|
class EmployeeForm(forms.ModelForm):
|
|
class Meta:
|
|
model = Employee
|
|
fields = (
|
|
'first_name',
|
|
'last_name',
|
|
'hire_date',
|
|
'title',
|
|
'department',
|
|
'manager',
|
|
'initial_comments',
|
|
)
|
|
widgets = {
|
|
'first_name': forms.TextInput(attrs = {
|
|
'autofocus': 'autofocus'
|
|
})
|
|
}
|
|
|
|
class EmployeeArchiveForm(forms.ModelForm):
|
|
class Meta:
|
|
model = Employee
|
|
fields = ('archived',)
|
|
|
|
|
|
class LogEntryForm(forms.ModelForm):
|
|
class Meta:
|
|
model = LogEntry
|
|
fields = ('notes',)
|
|
widgets = {
|
|
'notes': forms.TextInput(attrs = {
|
|
'autofocus': 'autofocus'
|
|
})
|
|
}
|
|
|
|
|
|
class TodoForm(forms.ModelForm):
|
|
class Meta:
|
|
model = Todo
|
|
fields = ('completed', 'description')
|
|
widgets = {
|
|
'completed': forms.CheckboxInput(attrs = {
|
|
'class': 'todo__checkbox',
|
|
}),
|
|
'description': forms.TextInput(attrs = {
|
|
'autofocus': 'autofocus'
|
|
})
|
|
}
|
|
|
|
class TodoCreateForm(forms.ModelForm):
|
|
class Meta:
|
|
model = Todo
|
|
fields = ('description',)
|
|
widgets = {
|
|
'description': forms.TextInput(attrs = {
|
|
'autofocus': 'autofocus'
|
|
})
|
|
}
|
|
|
|
class EventForm(forms.ModelForm):
|
|
class Meta:
|
|
model = Event
|
|
fields = (
|
|
'name',
|
|
'date',
|
|
'time',
|
|
'employee',
|
|
)
|
|
widgets = {
|
|
'name': forms.TextInput(attrs = {
|
|
'autofocus': 'autofocus'
|
|
}),
|
|
'date': forms.DateInput(attrs = {
|
|
'type': 'date',
|
|
'value': timezone.now().date(),
|
|
}),
|
|
'time': forms.DateInput(attrs = {
|
|
'type': 'time',
|
|
}),
|
|
}
|