Source code for apps.report.forms
# -*- coding: utf-8 -*-
"""
Module providing the forms for adding a report & message during handling
a filled-in control by an healthprofessional.
:subtitle:`Class definitions:`
"""
from django.forms.utils import ErrorList
from django.utils.translation import ugettext_lazy as _
from apps.report.models import Report
from apps.rcmessages.models import RCMessage
from core.forms import BaseModelForm
# Items that need to be filled in
report_black_list = ('--Vul aanvullend onderzoek in--',
'--Vul conclusie in--',
'--Vul beleid in-',
'--Vul crp waarde in--',
'--Vul CRP waarde in--',
'--Vul fecaal calprotectine in--',
'--Vul reactie hier in--')
[docs]class MessageAddEditForm(BaseModelForm):
'''
Add/Edit a message for a patient
(as part of the report function)
'''
def __init__(self, *args, **kwargs):
kwargs.pop('finishquestionnare', None)
super(MessageAddEditForm, self).__init__(*args, **kwargs)
self.fields['internal_message'].widget.attrs.update(
{'class': 'ckeditor'})
class Meta:
model = RCMessage
fields = ['internal_message']
def clean(self):
cleaned_data = super(MessageAddEditForm, self).clean()
if 'internal_message' in cleaned_data:
for entry in report_black_list:
if entry in cleaned_data['internal_message']:
self.errors['internal_message'] = ErrorList(
[_('"' + entry + '" is niet ingevuld.')])
break
return cleaned_data
[docs]class UrgentReportAddEditForm(BaseModelForm):
'''
Add edit an urgent report, checks that items that
are included in the template as placeholder are removed.
'''
def __init__(self, *args, **kwargs):
super(UrgentReportAddEditForm, self).__init__(*args, **kwargs)
self.fields['report'].widget.attrs.update({'class': 'ckeditor'})
self.fields['report'].help_text = ''
def clean(self):
cleaned_data = super(UrgentReportAddEditForm, self).clean()
if 'report' in cleaned_data:
for entry in report_black_list:
if entry in cleaned_data['report']:
self.errors['report'] = ErrorList(
[_('"' + entry + '" is niet ingevuld.')])
break
return cleaned_data
class Meta:
model = Report
fields = ['report']
[docs]class ReportAddEditForm(BaseModelForm):
'''
Add/Edit an normal report. Is merely the same as the urgent
one but needs some extra initialization.
'''
def __init__(self, *args, **kwargs):
kwargs.pop('post', None)
finishquestionnare = kwargs.pop('finishquestionnare', None)
super(ReportAddEditForm, self).__init__(*args, **kwargs)
do_delete = True
if finishquestionnare:
if finishquestionnare.appointment == 'no':
do_delete = False
if do_delete:
del self.fields['patient_needs_appointment']
self.fields['report'].widget.attrs.update({'class': 'ckeditor'})
def clean(self):
cleaned_data = super(ReportAddEditForm, self).clean()
if 'report' in cleaned_data:
for entry in report_black_list:
if entry in cleaned_data['report']:
self.errors['report'] = ErrorList(
[_('"' + entry + '" is niet ingevuld.')])
break
return cleaned_data
class Meta:
model = Report
fields = ['sent_to_doctor', 'patient_needs_appointment', 'report']