some updates
This commit is contained in:
+99
-32
@@ -32,6 +32,7 @@ from atlas.models import (
|
||||
Resource,
|
||||
SelfReview,
|
||||
Series,
|
||||
SeriesDetail,
|
||||
SeriesImage,
|
||||
SeriesFinding,
|
||||
Condition,
|
||||
@@ -296,6 +297,31 @@ class SeriesForm(ModelForm):
|
||||
}
|
||||
|
||||
|
||||
#def save(self, commit=True):
|
||||
# # Get the unsaved Case 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
|
||||
|
||||
class CaseForm(ModelForm):
|
||||
|
||||
class Media:
|
||||
@@ -523,28 +549,28 @@ class CaseResourceForm(ModelForm):
|
||||
self.fields["pre_review"] = BooleanField(required=False)
|
||||
|
||||
|
||||
class CaseSeriesForm(ModelForm):
|
||||
|
||||
def __init__(self, *args, user, **kwargs):
|
||||
super(CaseSeriesForm, self).__init__(*args, **kwargs)
|
||||
|
||||
if not user.groups.filter(name="atlas_editor").exists():
|
||||
queryset = Series.objects.filter(author__id=user.id)
|
||||
else:
|
||||
queryset = Series.objects.all()
|
||||
|
||||
# Optimize the queryset for the ModelChoiceField
|
||||
queryset = queryset.select_related(
|
||||
"modality"
|
||||
).prefetch_related(
|
||||
"examination", "plane", "contrast", "images"
|
||||
)
|
||||
|
||||
self.fields["series"] = ModelChoiceField(
|
||||
required=False,
|
||||
queryset=queryset,
|
||||
# widget=Select(verbose_name="Series", is_stacked=False),
|
||||
)
|
||||
#class CaseSeriesForm(ModelForm):
|
||||
#
|
||||
# def __init__(self, *args, user, **kwargs):
|
||||
# super(CaseSeriesForm, self).__init__(*args, **kwargs)
|
||||
#
|
||||
# if not user.groups.filter(name="atlas_editor").exists():
|
||||
# queryset = Series.objects.filter(author__id=user.id)
|
||||
# else:
|
||||
# queryset = Series.objects.all()
|
||||
#
|
||||
# # Optimize the queryset for the ModelChoiceField
|
||||
# queryset = queryset.select_related(
|
||||
# "modality"
|
||||
# ).prefetch_related(
|
||||
# "examination", "plane", "contrast", "images"
|
||||
# )
|
||||
#
|
||||
# self.fields["series"] = ModelChoiceField(
|
||||
# required=False,
|
||||
# queryset=queryset,
|
||||
# # widget=Select(verbose_name="Series", is_stacked=False),
|
||||
# )
|
||||
|
||||
|
||||
|
||||
@@ -561,15 +587,15 @@ class CaseCollectionCaseForm(ModelForm):
|
||||
)
|
||||
|
||||
|
||||
SeriesFormSet = inlineformset_factory(
|
||||
Case,
|
||||
Series.case.through,
|
||||
form=CaseSeriesForm,
|
||||
exclude=[],
|
||||
can_delete=True,
|
||||
extra=0,
|
||||
max_num=10,
|
||||
)
|
||||
#SeriesFormSet = inlineformset_factory(
|
||||
# Case,
|
||||
# Series.case.through,
|
||||
# form=CaseSeriesForm,
|
||||
# exclude=[],
|
||||
# can_delete=True,
|
||||
# extra=0,
|
||||
# max_num=10,
|
||||
#)
|
||||
|
||||
CaseCollectionCaseFormSet = inlineformset_factory(
|
||||
CaseCollection,
|
||||
@@ -893,4 +919,45 @@ class PriorCaseForm(Form):
|
||||
# self.fields["case"] = ChoiceField(
|
||||
# required=False,
|
||||
# # widget=Select(verbose_name="Series", is_stacked=False),
|
||||
# )
|
||||
# )
|
||||
|
||||
class CaseSeriesForm(forms.ModelForm):
|
||||
def __init__(self, *args, user=None, is_atlas_editor=False, **kwargs):
|
||||
super().__init__(*args, **kwargs)
|
||||
if not is_atlas_editor:
|
||||
queryset = Series.objects.filter(author__id=user.id)
|
||||
else:
|
||||
queryset = Series.objects.all()
|
||||
queryset = queryset.select_related("modality").prefetch_related(
|
||||
"examination", "plane", "contrast", "images"
|
||||
)
|
||||
self.fields["series"].queryset = queryset
|
||||
|
||||
class Meta:
|
||||
model = SeriesDetail # through model for Case.series
|
||||
fields = ["series", "sort_order", "feedback"]
|
||||
|
||||
class CaseUpdateSeriesForm(forms.ModelForm):
|
||||
def __init__(self, *args, **kwargs):
|
||||
self.user = kwargs.pop("user")
|
||||
super().__init__(*args, **kwargs)
|
||||
self.helper = FormHelper()
|
||||
self.helper.form_id = "id-case-form"
|
||||
self.helper.form_class = "case-form"
|
||||
self.helper.form_method = "post"
|
||||
self.helper.form_action = "submit"
|
||||
self.helper.form_tag = False
|
||||
self.helper.layout = Layout()
|
||||
class Meta:
|
||||
model = Case
|
||||
fields = [] # No fields, just for compatibility with UpdateView
|
||||
|
||||
|
||||
|
||||
SeriesFormSet = inlineformset_factory(
|
||||
Case,
|
||||
SeriesDetail,
|
||||
form=CaseSeriesForm,
|
||||
extra=1,
|
||||
can_delete=True,
|
||||
)
|
||||
Reference in New Issue
Block a user