From c5fdc397159b2de728f68c06edd51ce3c1064659 Mon Sep 17 00:00:00 2001 From: Ross Date: Wed, 24 Nov 2021 22:32:54 +0000 Subject: [PATCH] . --- longs/forms.py | 11 +++++++++++ longs/views.py | 6 ++++++ 2 files changed, 17 insertions(+) diff --git a/longs/forms.py b/longs/forms.py index 19db73f1..549c8f28 100755 --- a/longs/forms.py +++ b/longs/forms.py @@ -81,6 +81,17 @@ class LongSeriesForm(ModelForm): js = ["jsi18n.js", "tesseract.min.js"] def __init__(self, *args, **kwargs): + self.user = kwargs.pop( + "user" + ) # To get request.user. Do not use kwargs.pop('user', None) due to potential security hole + 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["long"] = [t.pk for t in kwargs["instance"].exams.all()] + super(LongSeriesForm, self).__init__(*args, **kwargs) # self.fields["examination"] = ModelChoiceField( # queryset=Examination.objects.all(), diff --git a/longs/views.py b/longs/views.py index f453b74b..455a209c 100755 --- a/longs/views.py +++ b/longs/views.py @@ -310,6 +310,12 @@ class LongSeriesCreate(RevisionMixin, LoginRequiredMixin, CreateView): return initial + def get_form_kwargs(self): + kwargs = super(LongSeriesCreate, self).get_form_kwargs() + kwargs.update({"user": self.request.user}) + return kwargs + + def get_context_data(self, **kwargs): context = super(LongSeriesCreate, self).get_context_data(**kwargs)