From d6515f741cc5e7c0ea16e1999cc0fd361db3e2a7 Mon Sep 17 00:00:00 2001 From: Guillaume Pellerin Date: Tue, 23 May 2023 22:59:25 +0200 Subject: [PATCH] update professor list in record form according to department --- teleforma/models/core.py | 2 ++ .../teleforma/course_conference_record.html | 13 +++++++++++++ teleforma/views/core.py | 6 ++++++ 3 files changed, 21 insertions(+) diff --git a/teleforma/models/core.py b/teleforma/models/core.py index 71ada957..ec159311 100644 --- a/teleforma/models/core.py +++ b/teleforma/models/core.py @@ -225,6 +225,8 @@ class Professor(Model): courses = ManyToManyField('Course', related_name="professor", verbose_name=_('courses'), blank=True, null=True) + department = ForeignKey('Department', related_name='professors', + verbose_name=_('department')) def __unicode__(self): if self.user.first_name and self.user.last_name: diff --git a/teleforma/templates/teleforma/course_conference_record.html b/teleforma/templates/teleforma/course_conference_record.html index aca49568..f59ef17d 100644 --- a/teleforma/templates/teleforma/course_conference_record.html +++ b/teleforma/templates/teleforma/course_conference_record.html @@ -35,10 +35,23 @@ jQuery(window).ready(function(){ $("#id_period").attr('disabled', false); } + var update_professors = function(data){ + var professors = data.result; + var options = ''; + for (var i = 0; i < professors.length; i++) { + options += ''; + } + $("#id_professor").html(options); + $("#id_professor option:first").attr('selected', 'selected'); + $("#id_professor").attr('disabled', false); + } + + $('#id_department').change(function() { var dep_id = $('#id_department option:selected').val(); json([dep_id],'teleforma.get_dep_courses', update_courses); json([dep_id],'teleforma.get_dep_periods', update_periods); + json([dep_id],'teleforma.get_dep_professors', update_professors); }); }); diff --git a/teleforma/views/core.py b/teleforma/views/core.py index 95eac19c..57ac7083 100644 --- a/teleforma/views/core.py +++ b/teleforma/views/core.py @@ -718,6 +718,7 @@ class ProfessorListView(View): if course: if not course[0] in professor.courses.all(): professor.courses.add(course[0]) + professor.department = department professor.save() professors_new.append(professor) #print professor @@ -727,6 +728,11 @@ class ProfessorListView(View): if not professor in professors_new: professor.delete() + @jsonrpc_method('teleforma.get_dep_professor') + def get_dep_professors(request, id): + department = Department.objects.get(id=id) + return [p.to_json_dict() for p in Professor.objects.filter(department=department)] + class HelpView(TemplateView): -- 2.39.5