.
This commit is contained in:
+46
-2
@@ -90,6 +90,9 @@ class LongSeriesForm(ModelForm):
|
||||
|
||||
|
||||
class LongForm(ModelForm):
|
||||
|
||||
exams = ModelMultipleChoiceField(required=False, queryset=Exam.objects.all(),widget=FilteredSelectMultiple(verbose_name="Exams", is_stacked=False))
|
||||
|
||||
class Media:
|
||||
# Django also includes a few javascript files necessary
|
||||
# for the operation of this form element. You need to
|
||||
@@ -110,6 +113,16 @@ class LongForm(ModelForm):
|
||||
# widget=FilteredSelectMultiple(verbose_name="Examination", is_stacked=False),
|
||||
#)
|
||||
|
||||
if kwargs.get("instance"):
|
||||
# We get the 'initial' keyword argument or initialize it
|
||||
# as a dict if it didn't exist.
|
||||
initial = kwargs.setdefault("initial", {})
|
||||
# The widget for a ModelMultipleChoiceField expects
|
||||
# a list of primary key for the selected data.
|
||||
initial["exams"] = [t.pk for t in kwargs["instance"].exams.all()]
|
||||
|
||||
ModelForm.__init__(self, *args, **kwargs)
|
||||
|
||||
class Meta:
|
||||
model = Long
|
||||
# fields = ['due_back']
|
||||
@@ -117,7 +130,16 @@ class LongForm(ModelForm):
|
||||
fields = [
|
||||
#"examination",
|
||||
#"site",
|
||||
"history",
|
||||
"feedback",
|
||||
"condition",
|
||||
"sign",
|
||||
"model_observations",
|
||||
"model_interpretation",
|
||||
"model_principle_diagnosis",
|
||||
"model_differential_diagnosis",
|
||||
"model_management",
|
||||
"open_access",
|
||||
]
|
||||
# fields = ['question', 'feedback', 'subspecialty', 'references']
|
||||
widgets = {
|
||||
@@ -126,13 +148,35 @@ class LongForm(ModelForm):
|
||||
# (False, 'No')])
|
||||
}
|
||||
|
||||
def save(self, commit=True):
|
||||
# Get the unsaved Long instance
|
||||
instance = ModelForm.save(self, False)
|
||||
|
||||
# Prepare a 'save_m2m' method for the form,
|
||||
old_save_m2m = self.save_m2m
|
||||
|
||||
def save_m2m():
|
||||
old_save_m2m()
|
||||
instance.exams.clear()
|
||||
for exam in self.cleaned_data["exams"]:
|
||||
# We need the id here
|
||||
instance.exams.add(exam.pk)
|
||||
|
||||
self.save_m2m = save_m2m
|
||||
|
||||
# Do we need to save all changes now?
|
||||
# if commit:
|
||||
instance.save()
|
||||
self.save_m2m()
|
||||
|
||||
return instance
|
||||
|
||||
SeriesFormSet = inlineformset_factory(
|
||||
Long,
|
||||
LongSeries,
|
||||
exclude=[],
|
||||
can_delete=True,
|
||||
extra=4,
|
||||
extra=1,
|
||||
max_num=10,
|
||||
field_classes="testing",
|
||||
)
|
||||
@@ -143,7 +187,7 @@ LongSeriesImageFormSet = inlineformset_factory(
|
||||
LongSeriesImage,
|
||||
exclude=[],
|
||||
can_delete=True,
|
||||
extra=4,
|
||||
extra=1,
|
||||
max_num=2000,
|
||||
field_classes="testing",
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user