From b52a8f71638d1aae56582680ed5e9f9afc9cd3b4 Mon Sep 17 00:00:00 2001 From: Pawe16 <332168@uwr.edu.pl> Date: Mon, 30 Dec 2024 22:52:19 +0100 Subject: [PATCH 1/5] dodanie mozliwosci zmiany semestru w planie zajec dowolnego studenta --- .../users/student_profile_contents.html | 22 +++++++++++++++++++ zapisy/apps/users/urls.py | 2 ++ zapisy/apps/users/views.py | 14 +++++++++--- 3 files changed, 35 insertions(+), 3 deletions(-) diff --git a/zapisy/apps/users/templates/users/student_profile_contents.html b/zapisy/apps/users/templates/users/student_profile_contents.html index d4e703fa5a..27d9e90d3d 100644 --- a/zapisy/apps/users/templates/users/student_profile_contents.html +++ b/zapisy/apps/users/templates/users/student_profile_contents.html @@ -40,6 +40,28 @@

{{student.get_full_name}}

Plan zajęć:

+
{% render_bundle 'timetable-timetable-component' %} diff --git a/zapisy/apps/users/urls.py b/zapisy/apps/users/urls.py index 791dac5bba..b24fdb19d6 100644 --- a/zapisy/apps/users/urls.py +++ b/zapisy/apps/users/urls.py @@ -9,6 +9,8 @@ path('employees/', views.employees_view, name='employees-list'), path('students/', views.students_view, name='students-list'), path('employees//', views.employees_view, name='employee-profile'), + path("employess///", views.employees_view, name="employee-profile-semester"), path('students//', views.students_view, name='student-profile'), + path("students///", views.students_view, name="student-profile-semester"), path('personal-data-consent/', views.personal_data_consent, name='personal_data_consent'), ] diff --git a/zapisy/apps/users/views.py b/zapisy/apps/users/views.py index a7f5753148..e19d099b68 100644 --- a/zapisy/apps/users/views.py +++ b/zapisy/apps/users/views.py @@ -1,10 +1,11 @@ import json import logging +from typing import Optional from django.contrib import messages from django.contrib.auth.decorators import login_required from django.core.serializers.json import DjangoJSONEncoder -from django.shortcuts import Http404, redirect, render, reverse +from django.shortcuts import get_object_or_404, Http404, redirect, render, reverse from django.views.decorators.http import require_POST from apps.enrollment.courses.models import Group, Semester @@ -23,7 +24,7 @@ @login_required @external_contractor_forbidden -def students_view(request, user_id: int = None): +def students_view(request, user_id: int = None, semester_id: Optional[int] = None): """View for students list and student profile if user id in URL is provided.""" students_queryset = Student.get_active_students().select_related('user') if not request.user.employee: @@ -54,7 +55,12 @@ def students_view(request, user_id: int = None): messages.warning(request, "Student ukrył swój profil") return redirect('students-list') - semester = Semester.get_upcoming_semester() + + semester: Optional[Semester] + if semester_id is None: + semester = Semester.get_upcoming_semester() + else: + semester = get_object_or_404(Semester, pk=semester_id) records = Record.objects.filter( student=student, @@ -73,6 +79,8 @@ def students_view(request, user_id: int = None): data.update({ 'student': student, 'groups_json': json.dumps(group_dicts, cls=DjangoJSONEncoder), + 'semester': semester, + 'all_semesters': Semester.objects.filter(visible=True) }) return render(request, 'users/users_view.html', data) From b051e9db5a9515b92dc1d9e93cfec78455784d22 Mon Sep 17 00:00:00 2001 From: Pawe16 <332168@uwr.edu.pl> Date: Mon, 30 Dec 2024 23:03:26 +0100 Subject: [PATCH 2/5] naprawienie bledow formatowania kodu --- zapisy/apps/users/views.py | 1 - 1 file changed, 1 deletion(-) diff --git a/zapisy/apps/users/views.py b/zapisy/apps/users/views.py index e19d099b68..6bac0791e7 100644 --- a/zapisy/apps/users/views.py +++ b/zapisy/apps/users/views.py @@ -55,7 +55,6 @@ def students_view(request, user_id: int = None, semester_id: Optional[int] = Non messages.warning(request, "Student ukrył swój profil") return redirect('students-list') - semester: Optional[Semester] if semester_id is None: semester = Semester.get_upcoming_semester() From 788112e7e62ca409282c6507354e14f7497c15d0 Mon Sep 17 00:00:00 2001 From: Pawe16 <332168@uwr.edu.pl> Date: Mon, 30 Dec 2024 23:22:42 +0100 Subject: [PATCH 3/5] zmiania sciezek dla planu dowolnej osoby na dany semestr --- zapisy/apps/users/urls.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/zapisy/apps/users/urls.py b/zapisy/apps/users/urls.py index b24fdb19d6..243eb87334 100644 --- a/zapisy/apps/users/urls.py +++ b/zapisy/apps/users/urls.py @@ -9,8 +9,8 @@ path('employees/', views.employees_view, name='employees-list'), path('students/', views.students_view, name='students-list'), path('employees//', views.employees_view, name='employee-profile'), - path("employess///", views.employees_view, name="employee-profile-semester"), + path("employess//semester//", views.employees_view, name="employee-profile-semester"), path('students//', views.students_view, name='student-profile'), - path("students///", views.students_view, name="student-profile-semester"), + path("students//semester//", views.students_view, name="student-profile-semester"), path('personal-data-consent/', views.personal_data_consent, name='personal_data_consent'), ] From 6e0b2a4f9e4f26c28a05f9c4b8542f35725a4a58 Mon Sep 17 00:00:00 2001 From: Pawe16 <332168@uwr.edu.pl> Date: Wed, 22 Jan 2025 13:01:10 +0100 Subject: [PATCH 4/5] dodanie mozliwosci zmiany semestru w planie zajec dowolnego pracownika --- .../users/employee_profile_contents.html | 23 ++++++++++++++++++- zapisy/apps/users/views.py | 11 +++++++-- 2 files changed, 31 insertions(+), 3 deletions(-) diff --git a/zapisy/apps/users/templates/users/employee_profile_contents.html b/zapisy/apps/users/templates/users/employee_profile_contents.html index 3e66e0e901..174f87cc2f 100644 --- a/zapisy/apps/users/templates/users/employee_profile_contents.html +++ b/zapisy/apps/users/templates/users/employee_profile_contents.html @@ -44,7 +44,28 @@

Konsultacje:

{% endif %}

Plan zajęć:

- +
{% render_bundle 'timetable-timetable-component' %} diff --git a/zapisy/apps/users/views.py b/zapisy/apps/users/views.py index 6bac0791e7..82c5ad9982 100644 --- a/zapisy/apps/users/views.py +++ b/zapisy/apps/users/views.py @@ -84,7 +84,7 @@ def students_view(request, user_id: int = None, semester_id: Optional[int] = Non return render(request, 'users/users_view.html', data) -def employees_view(request, user_id: int = None): +def employees_view(request, user_id: int = None, semester_id: Optional[int] = None): """View for employees list and employee profile if user id in URL is provided.""" employees_queryset = Employee.get_actives().select_related('user') employees = { @@ -108,7 +108,12 @@ def employees_view(request, user_id: int = None): except Employee.DoesNotExist: raise Http404 - semester = Semester.get_upcoming_semester() + semester: Optional[Semester] + if semester_id is None: + semester = Semester.get_upcoming_semester() + else: + semester = get_object_or_404(Semester, pk=semester_id) + groups = Group.objects.filter( course__semester_id=semester.pk, teacher=employee).select_related( 'teacher', 'teacher__user', 'course').prefetch_related('term', 'term__classrooms') @@ -124,6 +129,8 @@ def employees_view(request, user_id: int = None): data.update({ 'employee': employee, 'groups_json': json.dumps(group_dicts, cls=DjangoJSONEncoder), + 'semester': semester, + 'all_semesters': Semester.objects.filter(visible=True) }) return render(request, 'users/users_view.html', data) From ca8813e9b8b7e5c30fdc9bbeaa866b9e0c7097e0 Mon Sep 17 00:00:00 2001 From: Pawe16 <332168@uwr.edu.pl> Date: Wed, 29 Jan 2025 12:45:48 +0100 Subject: [PATCH 5/5] unikniecie duplikowania kodu przy tworzeniu rozwijalnej listy semestrow --- .../templates/timetable/timetable.html | 23 +-------------- .../users/employee_profile_contents.html | 23 +-------------- .../users/student_profile_contents.html | 23 +-------------- zapisy/templates/semester_dropdown.html | 29 +++++++++++++++++++ 4 files changed, 32 insertions(+), 66 deletions(-) create mode 100644 zapisy/templates/semester_dropdown.html diff --git a/zapisy/apps/enrollment/timetable/templates/timetable/timetable.html b/zapisy/apps/enrollment/timetable/templates/timetable/timetable.html index 73662400a6..61b62e7da5 100644 --- a/zapisy/apps/enrollment/timetable/templates/timetable/timetable.html +++ b/zapisy/apps/enrollment/timetable/templates/timetable/timetable.html @@ -29,28 +29,7 @@

{% endif %} - + {% include "semester_dropdown.html" with url_pattern_name="my-timetable-semester" %}
diff --git a/zapisy/apps/users/templates/users/employee_profile_contents.html b/zapisy/apps/users/templates/users/employee_profile_contents.html index 174f87cc2f..04888070be 100644 --- a/zapisy/apps/users/templates/users/employee_profile_contents.html +++ b/zapisy/apps/users/templates/users/employee_profile_contents.html @@ -44,28 +44,7 @@

Konsultacje:

{% endif %}

Plan zajęć:

- + {% include "semester_dropdown.html" with url_pattern_name="employee-profile-semester" user_id=employee.user_id %}
{% render_bundle 'timetable-timetable-component' %} diff --git a/zapisy/apps/users/templates/users/student_profile_contents.html b/zapisy/apps/users/templates/users/student_profile_contents.html index 27d9e90d3d..33a4d99629 100644 --- a/zapisy/apps/users/templates/users/student_profile_contents.html +++ b/zapisy/apps/users/templates/users/student_profile_contents.html @@ -40,28 +40,7 @@

{{student.get_full_name}}

Plan zajęć:

- + {% include "semester_dropdown.html" with url_pattern_name="student-profile-semester" user_id=student.user_id %}
{% render_bundle 'timetable-timetable-component' %} diff --git a/zapisy/templates/semester_dropdown.html b/zapisy/templates/semester_dropdown.html new file mode 100644 index 0000000000..977ae3d94f --- /dev/null +++ b/zapisy/templates/semester_dropdown.html @@ -0,0 +1,29 @@ + \ No newline at end of file