Files
penracourses/generic/forms.py
T
Ross a7826c003b .
2021-05-04 23:27:35 +01:00

55 lines
1.7 KiB
Python
Executable File

from django.forms import (
Form,
ModelForm,
ModelMultipleChoiceField,
ModelChoiceField,
ChoiceField,
CharField,
)
from django.forms import inlineformset_factory
from generic.models import (
Examination, QuestionNote
)
from django.contrib.admin.widgets import FilteredSelectMultiple
from django.forms.widgets import RadioSelect, TextInput, Textarea
from rapids.models import Rapid
from anatomy.models import AnatomyQuestion
from longs.models import Long
from django.shortcuts import render, get_object_or_404, redirect
class ExaminationForm(ModelForm):
class Meta:
model = Examination
fields = ["examination"]
class QuestionNoteForm(ModelForm):
class Meta:
model = QuestionNote
fields = ["content_type", "object_id", "author", "note_type", "note"]
def __init__(self, *args, **kwargs):
question_type = kwargs.pop("question_type")
if question_type == "rapid":
question = Rapid
elif question_type == "anatomy":
question = AnatomyQuestion
elif question_type == "long":
question = AnatomyQuestion
else:
raise PermissionError()
get_object_or_404(question, pk=kwargs.pop("pk"))
# 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["content_type"] = [t.pk for t in kwargs["instance"].exams.all()]
ModelForm.__init__(self, *args, **kwargs)
#super(QuestionNoteForm(), self).__init__(*args, **kwargs)