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', }), }