Files
penracourses/rcr/forms.py
T
Ross d50fbaafd6 .
2024-05-18 18:11:12 +01:00

67 lines
2.2 KiB
Python

from django import forms
from django.contrib.admin import widgets
from django.forms import (
BaseInlineFormSet,
Form,
HiddenInput,
ModelForm,
ModelMultipleChoiceField,
ModelChoiceField,
ChoiceField,
CharField,
ValidationError,
modelformset_factory,
CheckboxSelectMultiple,
)
from rcr.models import Item, RadiologyCategory, OncologyCategory, Level
from django.contrib.auth.models import User
from atlas.models import Condition
from django.contrib.admin.widgets import FilteredSelectMultiple
class ItemForm(ModelForm):
#radiology_category = ModelMultipleChoiceField(queryset=RadiologyCategory.objects.all())
#oncology_category = ModelMultipleChoiceField(queryset=OncologyCategory.objects.all())
radiology_condition = ModelMultipleChoiceField(queryset=Condition.objects.filter(rcr_curriculum=True), required=False,
widget=FilteredSelectMultiple(verbose_name="Condition", is_stacked=False),
)
class Meta:
model = Item
exclude = [
"rcr_platform_id",
"name",
"description",
"content_type",
"created_on",
"number_of_items",
"specialty",
"access_count",
"targeted_to_group",
"assessed_by",
"assessed_date",
"assigned_to_radiology",
"assigned_to_oncology",
"review_link",
"review_link_password",
]
# fields = ["category", "level"]
widgets = {
"radiology_categories": forms.SelectMultiple(attrs={"size": 12}),
#"radiology_condition": forms.SelectMultiple(attrs={"size": 12}),
#"oncology_category": CheckboxSelectMultiple(),
#"level": CheckboxSelectMultiple(),
}
def __init__(self, *args, **kwargs):
super(ItemForm, self).__init__(*args, **kwargs)
self.fields['radiology_condition'].label_from_instance = lambda obj: "%s" % obj.get_with_subspecialty()
class AssessorAssignmentForm(Form):
items = ModelMultipleChoiceField(queryset=Item.objects.all(), widget=forms.SelectMultiple(attrs={'size': 20}))