Add tests

This commit is contained in:
Christian Cueni 2024-07-16 10:57:37 +02:00
parent 9f880baffd
commit b8c4125b37
2 changed files with 30 additions and 92 deletions

View File

@ -132,94 +132,10 @@ class PersonsExportTestCase(ExportBaseTestCase):
) )
self._check_export(wb, data, 3, 6) self._check_export(wb, data, 3, 6)
# def test_export_feedback_with_cs_circle_pairs(self): def test_cannot_export_other_session(self):
# cs_circle_pairs = [ wb = self._generate_workbook(self.test_trainer1, [self.course_session_zh.id])
# ( self.assertEqual(len(wb.sheetnames), 1)
# self.course_session_be.id, self.assertEqual(wb.sheetnames[0], "Test Zürich 2022 a")
# [self.circle_fahrzeug.id, self.circle_reisen.id], wb.active = wb["Test Zürich 2022 a"]
# ),
# (
# self.course_session_zh.id,
# [self.circle_reisen.id, self.circle_fahrzeug.id],
# ),
# ]
# export_data = io.BytesIO(
# export_feedback_with_circle_restriction(cs_circle_pairs, save_as_file=False)
# )
# wb = load_workbook(export_data)
# self.assertEqual(len(wb.sheetnames), 2)
# self.assertEqual(wb.sheetnames[0], "Fahrzeug")
# self.assertEqual(wb.sheetnames[1], "Reisen")
#
# self._check_export(wb, self.expected_data_fahrzeug, 3, 12)
#
# wb.active = wb["Reisen"]
# self._check_export(wb, self.expected_data_reisen, 2, 12)
# def test_does_not_include_unsubmitted_feedback(self): self._check_export(wb, [[None] * 6], 1, 6)
# feedback = FeedbackResponse.objects.get(
# circle=self.circle_reisen,
# course_session=self.course_session_zh,
# feedback_user=self.test_student2,
# )
#
# feedback.submitted = False
# feedback.save()
#
# wb = self._generate_workbook(
# [self.course_session_be.id, self.course_session_zh.id]
# )
# self.assertEqual(len(wb.sheetnames), 1)
# self.assertEqual(wb.sheetnames[0], "Fahrzeug")
#
# self._check_export(wb, self.expected_data_fahrzeug, 3, 12)
#
# def test_french_export(self):
# activate("fr")
# wb = self._generate_workbook(
# [self.course_session_be.id, self.course_session_zh.id]
# )
#
# header = [
# "Opérations",
# "Date",
# "Degré de satisfaction au global",
# "Degré de réalisation des objectifs",
# "As-tu limpression de bien maîtriser les sujets qui ont été abordés pendant le cours ?",
# "Les travaux préparatoires étaient-ils clairs et compréhensibles ?",
# "Que penses-tu des compétences techniques de la personne chargée du cours et de sa maîtrise du sujet ?",
# "Les questions et les suggestions des participants ont-elles été prises au sérieux et traitées correctement ?",
# "Souhaites-tu ajouter quelque chose à lintention de la personne chargée du cours ?",
# "Est-ce que tu recommandes ce cours ?",
# "Quest-ce qui ta particulièrement plu ?",
# "À ton avis, quels sont les points qui pourraient être améliorés ?",
# ]
#
# self.expected_data_fahrzeug[0] = header
#
# self._check_export(wb, self.expected_data_fahrzeug, 3, 12)
#
# def test_italian_export(self):
# activate("it")
# wb = self._generate_workbook(
# [self.course_session_be.id, self.course_session_zh.id]
# )
#
# header = [
# "Svolgimenti",
# "Data",
# "Soddisfazione complessiva",
# "Raggiungimento complessivo degli obiettivi",
# "Come valuti il tuo livello di preparazione sui temi dopo il corso?",
# "Gli incarichi di preparazione erano chiari e comprensibili?",
# "Come valuti il livello di preparazione sui temi e le competenze specialistiche dellistruttore/istruttrice del corso?",
# "Le domande e i suggerimenti dei/delle partecipanti al corso sono stati accolti e presi sul serio?",
# "Cosaltro vorresti ancora dire allistruttore/istruttrice del corso?",
# "Raccomanderesti il corso?",
# "Coshai apprezzato particolarmente?",
# "Dove vedi un potenziale di miglioramento?",
# ]
#
# self.expected_data_fahrzeug[0] = header
#
# self._check_export(wb, self.expected_data_fahrzeug, 3, 12)

View File

@ -31,7 +31,7 @@ from vbv_lernwelt.course_session.services.export_attendance import (
export_attendance, export_attendance,
make_export_filename, make_export_filename,
) )
from vbv_lernwelt.dashboard.person_export import export_persons from vbv_lernwelt.dashboard.person_export import export_persons, PERSONS_EXPORT_FILENAME
from vbv_lernwelt.dashboard.utils import ( from vbv_lernwelt.dashboard.utils import (
CourseSessionWithRoles, CourseSessionWithRoles,
create_course_session_dict, create_course_session_dict,
@ -41,6 +41,10 @@ from vbv_lernwelt.dashboard.utils import (
) )
from vbv_lernwelt.duedate.models import DueDate from vbv_lernwelt.duedate.models import DueDate
from vbv_lernwelt.duedate.serializers import DueDateSerializer from vbv_lernwelt.duedate.serializers import DueDateSerializer
from vbv_lernwelt.feedback.export import (
export_feedback_with_circle_restriction,
FEEDBACK_EXPORT_FILE_NAME,
)
from vbv_lernwelt.learnpath.models import Circle from vbv_lernwelt.learnpath.models import Circle
from vbv_lernwelt.self_evaluation_feedback.models import SelfEvaluationFeedback from vbv_lernwelt.self_evaluation_feedback.models import SelfEvaluationFeedback
@ -396,6 +400,24 @@ def export_competence_elements_as_xsl(request):
@api_view(["POST"]) @api_view(["POST"])
def export_feedback_as_xsl(request): def export_feedback_as_xsl(request):
circle_ids = request.data.get("circleIds", None)
requested_course_session_ids = request.data.get("courseSessionIds", [])
course_sessions_with_roles = _get_permitted_courses_sessions_for_user(
request.user, requested_course_session_ids
) # noqa
allowed_circles = _get_permitted_circles_ids_for_user_and_course_session(
request.user,
course_sessions_with_roles,
circle_ids,
) # noqa
data = export_feedback_with_circle_restriction(allowed_circles, False)
return _make_excel_response(data, FEEDBACK_EXPORT_FILE_NAME)
@api_view(["POST"])
def export_persons_as_xsl(request):
requested_course_session_ids = request.data.get("courseSessionIds", []) requested_course_session_ids = request.data.get("courseSessionIds", [])
course_sessions_with_roles = _get_permitted_courses_sessions_for_user( course_sessions_with_roles = _get_permitted_courses_sessions_for_user(
request.user, requested_course_session_ids request.user, requested_course_session_ids
@ -404,7 +426,7 @@ def export_feedback_as_xsl(request):
data = export_persons( data = export_persons(
[cswr.id for cswr in course_sessions_with_roles], [cswr.id for cswr in course_sessions_with_roles],
) )
return _make_excel_response(data, COMPETENCE_ELEMENT_EXPORT_FILE_NAME) return _make_excel_response(data, PERSONS_EXPORT_FILENAME)
def _get_permitted_courses_sessions_for_user( def _get_permitted_courses_sessions_for_user(