Source code for apps.healthperson.secretariat.forms
# -*- coding: utf-8 -*-
"""
This module contains the forms for profile editing by a secretary and
als for the manager to search for a secretary.
:subtitle:`Class definitions:`
"""
from django import forms
from django.utils.translation import ugettext_lazy as _
from apps.account.forms import BaseProfileEditForm, BasePasswordProfileEditForm
from apps.healthperson.healthprofessional.models import SPECIALISM_CHOICES
from core.forms import BaseForm
[docs]class SecretarySearchForm(BaseForm):
'''
Search for a secretary by last_name or specialism, used
by a manager.
'''
last_name = forms.CharField(
max_length=128, label=_('Achternaam'), required=False)
specialism = forms.TypedChoiceField(
label=_('Specialisme'), required=False)
def __init__(self, *args, **kwargs):
super(SecretarySearchForm, self).__init__(*args, **kwargs)
# Set specialism list
specialism_choices = list(SPECIALISM_CHOICES)
specialism_choices.insert(0, ('', '---------'))
self.fields['specialism'].choices = specialism_choices
[docs]class SecretaryEditForm(BasePasswordProfileEditForm):
'''
Edit secretary profile/personalia form
'''
specialism = forms.TypedChoiceField(label=_('Specialisme'), required=True)
def __init__(self, *args, **kwargs):
super(SecretaryEditForm, self).__init__(*args, **kwargs)
# Set specialism list
specialism_choices = list(SPECIALISM_CHOICES)
specialism_choices.insert(0, ('', '---------'))
self.fields['specialism'].choices = specialism_choices
if self.instance:
self.fields['specialism'].initial =\
self.instance.healthperson.specialism
# Minimal age is 16, so remove the last 16 year choices..
self.fields['date_of_birth'].years =\
self.fields['date_of_birth'].years[:-16]
self.fields['date_of_birth'].widget.years =\
self.fields['date_of_birth'].years
class Meta(BasePasswordProfileEditForm.Meta):
exclude = BasePasswordProfileEditForm.Meta.exclude + (
'BSN', 'local_hospital_number',
'hospital',)
fieldsets = (
(None, {'fields': ('title', 'first_name',
'initials', 'last_name',
'prefix', 'gender', 'date_of_birth',)}),
(None, {'fields': ('mobile_number', 'mobile_number2',
'email', 'email2')}),
(None, {'fields': ('specialism', 'change_password')}),
('change_password', {'fields': ('password', 'password2')}),
)
[docs]class SecretaryAddForm(BaseProfileEditForm):
'''
Add new secretary form
'''
specialism = forms.TypedChoiceField(label=_('Specialisme'), required=True)
def __init__(self, *args, **kwargs):
super(SecretaryAddForm, self).__init__(*args, **kwargs)
# Set specialism list
specialism_choices = list(SPECIALISM_CHOICES)
specialism_choices.insert(0, ('', '---------'))
self.fields['specialism'].choices = specialism_choices
# Minimal age is 16, so remove the last 16 year choices..
self.fields['date_of_birth'].years =\
self.fields['date_of_birth'].years[:-16]
self.fields['date_of_birth'].widget.years =\
self.fields['date_of_birth'].years
class Meta(BaseProfileEditForm.Meta):
exclude = BaseProfileEditForm.Meta.exclude
fieldsets = (
(None, {'fields': ('title', 'first_name', 'initials',
'last_name',
'prefix', 'gender', 'date_of_birth')}),
(None, {'fields': ('mobile_number', 'mobile_number2',
'email', 'email2',
'specialism')}),
)