106 lines
2.7 KiB
Python
Executable File
106 lines
2.7 KiB
Python
Executable File
from django.forms import (
|
|
Form,
|
|
ModelForm,
|
|
ModelMultipleChoiceField,
|
|
ModelChoiceField,
|
|
ChoiceField,
|
|
CharField,
|
|
)
|
|
from django.forms import inlineformset_factory
|
|
|
|
from longs.models import (
|
|
Examination,
|
|
Note,
|
|
Long,
|
|
LongSeries,
|
|
LongSeriesImage,
|
|
LongCreationDefault,
|
|
CidUserAnswer,
|
|
Exam,
|
|
)
|
|
|
|
from django.contrib.admin.widgets import FilteredSelectMultiple
|
|
from django.forms.widgets import RadioSelect, TextInput, Textarea
|
|
|
|
|
|
class LongAnswerForm(ModelForm):
|
|
class Meta:
|
|
model = CidUserAnswer
|
|
fields = ("answer_observations","answer_interpretation","answer_principle_diagnosis","answer_differential_diagnosis","answer_further_management",)
|
|
|
|
|
|
class MarkLongQuestionForm(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"]
|
|
|
|
|
|
class NoteForm(ModelForm):
|
|
class Meta:
|
|
model = Note
|
|
fields = ["note"]
|
|
|
|
|
|
|
|
class LongCreationDefaultForm(ModelForm):
|
|
class Meta:
|
|
model = LongCreationDefault
|
|
fields = ["site"]
|
|
exclude = ["author"]
|
|
|
|
|
|
class LongForm(ModelForm):
|
|
class Media:
|
|
# Django also includes a few javascript files necessary
|
|
# for the operation of this form element. You need to
|
|
# include <script src="/admin/jsi18n"></script>
|
|
# in the template.
|
|
css = {
|
|
"all": ["css/widgets.css"],
|
|
}
|
|
# Adding this javascript is crucial
|
|
js = ["jsi18n.js", "tesseract.min.js"]
|
|
|
|
def __init__(self, *args, **kwargs):
|
|
super(LongForm, 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["examination"] = ModelMultipleChoiceField(
|
|
# queryset=Examination.objects.all(),
|
|
# widget=FilteredSelectMultiple(verbose_name="Examination", is_stacked=False),
|
|
#)
|
|
|
|
class Meta:
|
|
model = Long
|
|
# fields = ['due_back']
|
|
# fields = '__all__'
|
|
fields = [
|
|
#"examination",
|
|
"site",
|
|
"feedback",
|
|
]
|
|
# fields = ['question', 'feedback', 'subspecialty', 'references']
|
|
widgets = {
|
|
# "normal": RadioSelect(
|
|
# choices=[(True, 'Yes'),
|
|
# (False, 'No')])
|
|
}
|
|
|
|
|
|
SeriesFormSet = inlineformset_factory(
|
|
Long,
|
|
LongSeries,
|
|
exclude=[],
|
|
can_delete=True,
|
|
extra=4,
|
|
max_num=10,
|
|
field_classes="testing",
|
|
)
|