rapid exams

This commit is contained in:
Ross
2021-01-25 14:13:51 +00:00
parent 697a7c63f2
commit 4893b1e90b
4 changed files with 631 additions and 66 deletions
+72 -37
View File
@@ -1,40 +1,69 @@
from django.forms import ModelForm, ModelMultipleChoiceField, ModelChoiceField, ChoiceField
from django.forms import (
ModelForm,
ModelMultipleChoiceField,
ModelChoiceField,
ChoiceField,
)
from django.forms import inlineformset_factory
from rapids.models import Abnormality, Examination, Note, Rapid, RapidCreationDefault, RapidImage, Region, Answer
from rapids.models import (
Abnormality,
Examination,
Note,
Rapid,
RapidCreationDefault,
RapidImage,
Region,
Answer,
CidUserAnswer,
Examm,
)
from django.contrib.admin.widgets import FilteredSelectMultiple
from django.forms.widgets import RadioSelect, TextInput, Textarea
class RapidAnswerForm(ModelForm):
class Meta:
model = CidUserAnswer
fields = ("answer",)
class MarkRapidQuestionForm(Form):
# correct = forms.CharField(required=False)
# half_correct = forms.CharField(required=False)
# incorrect = forms.CharField(required=False)
marked_answers = CharField(required=False)
class ExaminationForm(ModelForm):
class Meta:
model = Examination
fields = ['examination']
fields = ["examination"]
class NoteForm(ModelForm):
class Meta:
model = Note
fields = ['note']
fields = ["note"]
class RegionForm(ModelForm):
class Meta:
model = Region
fields = ['name']
fields = ["name"]
class AbnormalityForm(ModelForm):
class Meta:
model = Abnormality
fields = ['name']
fields = ["name"]
class RapidCreationDefaultForm(ModelForm):
class Meta:
model = RapidCreationDefault
fields = ['site']
fields = ["site"]
exclude = ["author"]
@@ -45,46 +74,50 @@ class RapidForm(ModelForm):
# include <script src="/admin/jsi18n"></script>
# in the template.
css = {
'all': ['css/widgets.css'],
"all": ["css/widgets.css"],
}
# Adding this javascript is crucial
js = ['jsi18n.js', "tesseract.min.js"]
js = ["jsi18n.js", "tesseract.min.js"]
def __init__(self, *args, **kwargs):
super(RapidForm, self).__init__(*args, **kwargs)
#self.fields['question'].widget.attrs = {'class': 'question-form', 'rows': 10, 'cols': 100}
#self.fields['feedback'].widget.attrs = {'class': 'feedback-form', 'rows': 10, 'cols': 100}
self.fields['abnormality'] = ModelMultipleChoiceField(
# self.fields['question'].widget.attrs = {'class': 'question-form', 'rows': 10, 'cols': 100}
# self.fields['feedback'].widget.attrs = {'class': 'feedback-form', 'rows': 10, 'cols': 100}
self.fields["abnormality"] = ModelMultipleChoiceField(
required=False,
queryset=Abnormality.objects.all(),
widget=FilteredSelectMultiple(verbose_name="Abnormality",
is_stacked=False))
widget=FilteredSelectMultiple(verbose_name="Abnormality", is_stacked=False),
)
self.fields['region'] = ModelMultipleChoiceField(
self.fields["region"] = ModelMultipleChoiceField(
required=False,
queryset=Region.objects.all(),
widget=FilteredSelectMultiple(verbose_name="Region",
is_stacked=False))
widget=FilteredSelectMultiple(verbose_name="Region", is_stacked=False),
)
self.fields['examination'] = ModelMultipleChoiceField(
self.fields["examination"] = ModelMultipleChoiceField(
queryset=Examination.objects.all(),
widget=FilteredSelectMultiple(verbose_name="Examination",
is_stacked=False))
widget=FilteredSelectMultiple(verbose_name="Examination", is_stacked=False),
)
self.fields['laterality'] = ChoiceField(
choices=Rapid.LATERALITY_CHOICES,
required=True,
widget=RadioSelect())
self.fields["laterality"] = ChoiceField(
choices=Rapid.LATERALITY_CHOICES, required=True, widget=RadioSelect()
)
class Meta:
model = Rapid
#fields = ['due_back']
#fields = '__all__'
# fields = ['due_back']
# fields = '__all__'
fields = [
"normal", "abnormality", "region", "laterality", "examination",
"site", "feedback"
"normal",
"abnormality",
"region",
"laterality",
"examination",
"site",
"feedback",
]
#fields = ['question', 'feedback', 'subspecialty', 'references']
# fields = ['question', 'feedback', 'subspecialty', 'references']
widgets = {
# "normal": RadioSelect(
# choices=[(True, 'Yes'),
@@ -92,14 +125,16 @@ class RapidForm(ModelForm):
}
ImageFormSet = inlineformset_factory(Rapid,
RapidImage,
fields=['image', 'feedback_image'],
exclude=[],
can_delete=True,
extra=4,
max_num=10,
field_classes="testing")
ImageFormSet = inlineformset_factory(
Rapid,
RapidImage,
fields=["image", "feedback_image"],
exclude=[],
can_delete=True,
extra=4,
max_num=10,
field_classes="testing",
)
AnswerFormSet = inlineformset_factory(
Rapid,