make rapid form crispy

This commit is contained in:
Ross
2024-10-21 12:30:21 +01:00
parent ad54fce54b
commit eeaa345f3c
5 changed files with 123 additions and 109 deletions
+34 -7
View File
@@ -25,6 +25,10 @@ from django.contrib.admin.widgets import FilteredSelectMultiple
from django.forms.widgets import RadioSelect, TextInput, Textarea
from django.contrib.auth.models import User
from crispy_forms.helper import FormHelper
from crispy_forms.layout import Submit, Layout, Div, Field, HTML
from crispy_forms.bootstrap import InlineRadios
class RapidAnswerForm(ModelForm):
class Meta:
@@ -97,25 +101,50 @@ class RapidForm(ModelForm):
ModelForm.__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.helper = FormHelper()
self.helper.form_id = 'id-anatomy-question-form'
self.helper.form_tag = False
self.helper.layout = Layout(
Div(InlineRadios('normal')),
Div(
HTML("<h4 class='clearfix' id='abnormality-label'>Abnormality</h4>"),
Field('abnormality', css_class='form-control'),
HTML("<h4 class='clear-both' id='region-label'>Region</h4>"),
Field('region', css_class='form-control'),
css_class='clearfix abnormal-fields'
),
HTML("<h4 class='clear-both' id='examination-label'>Examination*</h4>"),
Field('examination', css_class='form-control'),
Div(InlineRadios('laterality', css_class='form-control'), css_class='clearfix clear-both'),
Field('feedback', css_class='form-control'),
Field('history', css_class='form-control'),
Field('open_access', css_class='form-control'),
HTML("<h4 class='clear-both' id='exams-label'>Exams</h4>"),
Field('exams', css_class='form-control'),
)
self.fields["abnormality"] = ModelMultipleChoiceField(
required=False,
queryset=Abnormality.objects.all(),
widget=FilteredSelectMultiple(verbose_name="Abnormality", is_stacked=False),
)
self.fields["abnormality"].label = ""
self.fields["region"] = ModelMultipleChoiceField(
required=False,
queryset=Region.objects.all(),
widget=FilteredSelectMultiple(verbose_name="Region", is_stacked=False),
)
self.fields["region"].label = ""
self.fields["examination"] = ModelMultipleChoiceField(
queryset=Examination.objects.all(),
widget=FilteredSelectMultiple(verbose_name="Examination", is_stacked=False),
)
self.fields["examination"].label = ""
self.fields["laterality"] = ChoiceField(
choices=Rapid.LATERALITY_CHOICES, required=False, widget=RadioSelect()
@@ -133,6 +162,7 @@ class RapidForm(ModelForm):
queryset=exam_queryset.distinct(),
widget=FilteredSelectMultiple(verbose_name="Exams", is_stacked=False),
)
self.fields["exams"].label = ""
def save(self, commit=True):
instance = ModelForm.save(self, False)
@@ -186,11 +216,8 @@ class RapidForm(ModelForm):
]
# fields = ['question', 'feedback', 'subspecialty', 'references']
widgets = {
# "normal": RadioSelect(
# choices=[(True, 'Yes'),
# (False, 'No')])
}
"normal": RadioSelect()
}
ImageFormSet = inlineformset_factory(
Rapid,