45 lines
1.5 KiB
Python
45 lines
1.5 KiB
Python
from django import forms
|
|
from django.utils.translation import gettext_lazy as _
|
|
|
|
from app.models import Course, Marksheet, Subject
|
|
|
|
# class MarksheetForm(forms.ModelForm):
|
|
# class Meta:
|
|
# model = Marksheet
|
|
# fields = "__all__"
|
|
#
|
|
# def __init__(self, *args, **kwargs):
|
|
# super().__init__(*args, **kwargs)
|
|
#
|
|
# if self.instance.pk and self.instance.course:
|
|
# self.fields["subject"].queryset = Subject.objects.filter(
|
|
# course=self.instance.course,
|
|
# semester_or_year_number=self.instance.period_number,
|
|
# )
|
|
# # else:
|
|
# # self.fields["subject"].queryset = Subject.objects.none()
|
|
|
|
|
|
class SubjectForm(forms.ModelForm):
|
|
class Meta:
|
|
model = Subject
|
|
fields = ["name", "course", "semester_or_year_number", "teacher"]
|
|
|
|
def __init__(self, *args, **kwargs):
|
|
super().__init__(*args, **kwargs)
|
|
|
|
if "course" in self.data:
|
|
try:
|
|
course_id = int(self.data.get("course"))
|
|
course = Course.objects.get(pk=course_id)
|
|
self.fields["semester_or_year_number"].choices = [
|
|
(i, i) for i in range(1, course.duration + 1)
|
|
]
|
|
except (ValueError, Course.DoesNotExist):
|
|
pass
|
|
elif self.instance.pk:
|
|
course = self.instance.course
|
|
self.fields["semester_or_year_number"].choices = [
|
|
(i, i) for i in range(1, course.duration + 1)
|
|
]
|