rapid exams
This commit is contained in:
+72
-37
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user