wip: Rename fns, add filename translations

This commit is contained in:
Christian Cueni 2024-06-17 15:50:35 +02:00
parent 0a9a4af5b2
commit 5b60e50ac4
12 changed files with 162 additions and 98 deletions

View File

@ -42,7 +42,7 @@ from vbv_lernwelt.course.views import (
from vbv_lernwelt.course_session.views import get_course_session_documents
from vbv_lernwelt.dashboard.views import (
export_attendance_as_xsl,
export_competence_certificate_as_xsl,
export_competence_elements_as_xsl,
export_feedback_as_xsl,
get_dashboard_config,
get_dashboard_due_dates,
@ -135,7 +135,7 @@ urlpatterns = [
path(r"api/dashboard/course/<str:course_id>/open_tasks/", get_mentor_open_tasks_count,
name="get_mentor_open_tasks_count"),
path(r"api/dashboard/export/attendance/", export_attendance_as_xsl, name="export_attendance_as_xsl"),
path(r"api/dashboard/export/certificate/", export_competence_certificate_as_xsl, name="export_certificate_as_xsl"),
path(r"api/dashboard/export/certificate/", export_competence_elements_as_xsl, name="export_certificate_as_xsl"),
path(r"api/dashboard/export/feedback/", export_feedback_as_xsl, name="export_feedback_as_xsl"),
# course

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-06-17 08:25+0200\n"
"POT-Creation-Date: 2024-06-17 15:43+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -18,16 +18,20 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: vbv_lernwelt/assignment/export.py:181
#: vbv_lernwelt/assignment/export.py:31
msgid "export_kompetenznachweis_elemente"
msgstr ""
#: vbv_lernwelt/assignment/export.py:183
msgid "Bestanden"
msgstr ""
#: vbv_lernwelt/assignment/export.py:181
#: vbv_lernwelt/assignment/export.py:185
msgid "Nicht bestanden"
msgstr ""
#: vbv_lernwelt/assignment/export.py:195 vbv_lernwelt/assignment/export.py:198
#: vbv_lernwelt/assignment/export.py:199
#: vbv_lernwelt/assignment/export.py:199 vbv_lernwelt/assignment/export.py:202
#: vbv_lernwelt/assignment/export.py:203
msgid "Keine Daten"
msgstr ""
@ -103,81 +107,89 @@ msgstr ""
msgid "ÜK-Lehrgang"
msgstr ""
#: vbv_lernwelt/course_session/services/export_attendance.py:111
#: vbv_lernwelt/course_session/services/export_attendance.py:15
msgid "export_anwesenheit"
msgstr ""
#: vbv_lernwelt/course_session/services/export_attendance.py:113
msgid "Anwesend"
msgstr ""
#: vbv_lernwelt/course_session/services/export_attendance.py:111
#: vbv_lernwelt/course_session/services/export_attendance.py:113
msgid "Nicht anwesend"
msgstr ""
#: vbv_lernwelt/course_session/services/export_attendance.py:118
#: vbv_lernwelt/course_session/services/export_attendance.py:120
msgid "Vorname"
msgstr ""
#: vbv_lernwelt/course_session/services/export_attendance.py:119
#: vbv_lernwelt/course_session/services/export_attendance.py:121
msgid "Nachname"
msgstr ""
#: vbv_lernwelt/course_session/services/export_attendance.py:120
#: vbv_lernwelt/course_session/services/export_attendance.py:122
msgid "Email"
msgstr ""
#: vbv_lernwelt/course_session/services/export_attendance.py:121
#: vbv_lernwelt/course_session/services/export_attendance.py:133
#: vbv_lernwelt/course_session/services/export_attendance.py:123
#: vbv_lernwelt/course_session/services/export_attendance.py:135
msgid "Lehrvertragsnummer"
msgstr ""
#: vbv_lernwelt/feedback/export.py:33
#: vbv_lernwelt/feedback/export.py:19
msgid "export_feedback"
msgstr ""
#: vbv_lernwelt/feedback/export.py:35
msgid "Zufriedenheit insgesamt"
msgstr ""
#: vbv_lernwelt/feedback/export.py:34
#: vbv_lernwelt/feedback/export.py:36
msgid "Zielerreichung insgesamt"
msgstr ""
#: vbv_lernwelt/feedback/export.py:37
#: vbv_lernwelt/feedback/export.py:39
msgid ""
"Wie beurteilst du deine Sicherheit bezüglichen den Themen nach dem Kurs?"
msgstr ""
#: vbv_lernwelt/feedback/export.py:41
#: vbv_lernwelt/feedback/export.py:43
msgid "Waren die Vorbereitungsaufträge klar und verständlich?"
msgstr ""
#: vbv_lernwelt/feedback/export.py:45
#: vbv_lernwelt/feedback/export.py:48
msgid ""
"Wie beurteilst du die Themensicherheit und Fachkompetenz des Kursleiters/der "
"Kursleiterin?"
msgstr ""
#: vbv_lernwelt/feedback/export.py:49
#: vbv_lernwelt/feedback/export.py:54
msgid ""
"Wurden Fragen und Anregungen der Kursteilnehmenden ernst genommen und "
"aufgegriffen?"
msgstr ""
#: vbv_lernwelt/feedback/export.py:53
#: vbv_lernwelt/feedback/export.py:59
msgid "Was möchtest du dem Kursleiter/der Kursleiterin sonst noch sagen?"
msgstr ""
#: vbv_lernwelt/feedback/export.py:55
#: vbv_lernwelt/feedback/export.py:61
msgid "Würdest du den Kurs weiterempfehlen?"
msgstr ""
#: vbv_lernwelt/feedback/export.py:56
#: vbv_lernwelt/feedback/export.py:62
msgid "Was hat dir besonders gut gefallen?"
msgstr ""
#: vbv_lernwelt/feedback/export.py:57
#: vbv_lernwelt/feedback/export.py:63
msgid "Wo siehst du Verbesserungspotential?"
msgstr ""
#: vbv_lernwelt/feedback/export.py:144
#: vbv_lernwelt/feedback/export.py:150
msgid "Durchführung"
msgstr ""
#: vbv_lernwelt/feedback/export.py:145
#: vbv_lernwelt/feedback/export.py:151
msgid "Datum"
msgstr ""

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-06-17 08:25+0200\n"
"POT-Creation-Date: 2024-06-17 15:43+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -18,16 +18,20 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#: vbv_lernwelt/assignment/export.py:181
#: vbv_lernwelt/assignment/export.py:31
msgid "export_kompetenznachweis_elemente"
msgstr "export_elements_de_controle"
#: vbv_lernwelt/assignment/export.py:183
msgid "Bestanden"
msgstr "Réussi"
#: vbv_lernwelt/assignment/export.py:181
#: vbv_lernwelt/assignment/export.py:185
msgid "Nicht bestanden"
msgstr "Échoué"
#: vbv_lernwelt/assignment/export.py:195 vbv_lernwelt/assignment/export.py:198
#: vbv_lernwelt/assignment/export.py:199
#: vbv_lernwelt/assignment/export.py:199 vbv_lernwelt/assignment/export.py:202
#: vbv_lernwelt/assignment/export.py:203
msgid "Keine Daten"
msgstr "Aucune donnée"
@ -103,81 +107,97 @@ msgstr ""
msgid "ÜK-Lehrgang"
msgstr ""
#: vbv_lernwelt/course_session/services/export_attendance.py:111
#: vbv_lernwelt/course_session/services/export_attendance.py:15
msgid "export_anwesenheit"
msgstr "export_presence"
#: vbv_lernwelt/course_session/services/export_attendance.py:113
msgid "Anwesend"
msgstr "Présent"
#: vbv_lernwelt/course_session/services/export_attendance.py:111
#: vbv_lernwelt/course_session/services/export_attendance.py:113
msgid "Nicht anwesend"
msgstr "Pas présent"
#: vbv_lernwelt/course_session/services/export_attendance.py:118
#: vbv_lernwelt/course_session/services/export_attendance.py:120
msgid "Vorname"
msgstr "Prénom"
#: vbv_lernwelt/course_session/services/export_attendance.py:119
#: vbv_lernwelt/course_session/services/export_attendance.py:121
msgid "Nachname"
msgstr "Nom de famille"
#: vbv_lernwelt/course_session/services/export_attendance.py:120
#: vbv_lernwelt/course_session/services/export_attendance.py:122
msgid "Email"
msgstr "Email"
#: vbv_lernwelt/course_session/services/export_attendance.py:121
#: vbv_lernwelt/course_session/services/export_attendance.py:133
#: vbv_lernwelt/course_session/services/export_attendance.py:123
#: vbv_lernwelt/course_session/services/export_attendance.py:135
msgid "Lehrvertragsnummer"
msgstr "Numéro de contrat d'apprentissage"
#: vbv_lernwelt/feedback/export.py:33
#: vbv_lernwelt/feedback/export.py:19
msgid "export_feedback"
msgstr "export_feedback"
#: vbv_lernwelt/feedback/export.py:35
msgid "Zufriedenheit insgesamt"
msgstr "Degré de satisfaction au global"
#: vbv_lernwelt/feedback/export.py:34
#: vbv_lernwelt/feedback/export.py:36
msgid "Zielerreichung insgesamt"
msgstr "Degré de réalisation des objectifs"
#: vbv_lernwelt/feedback/export.py:37
#: vbv_lernwelt/feedback/export.py:39
msgid ""
"Wie beurteilst du deine Sicherheit bezüglichen den Themen nach dem Kurs?"
msgstr "As-tu limpression de bien maîtriser les sujets qui ont été abordés pendant le cours ?"
msgstr ""
"As-tu limpression de bien maîtriser les sujets qui ont été abordés pendant "
"le cours ?"
#: vbv_lernwelt/feedback/export.py:41
#: vbv_lernwelt/feedback/export.py:43
msgid "Waren die Vorbereitungsaufträge klar und verständlich?"
msgstr "Les travaux préparatoires étaient-ils clairs et compréhensibles ?"
#: vbv_lernwelt/feedback/export.py:45
#: vbv_lernwelt/feedback/export.py:48
msgid ""
"Wie beurteilst du die Themensicherheit und Fachkompetenz des Kursleiters/der "
"Kursleiterin?"
msgstr "Que penses-tu des compétences techniques de la personne chargée du cours et de sa maîtrise du sujet ?"
msgstr ""
"Que penses-tu des compétences techniques de la personne chargée du cours et "
"de sa maîtrise du sujet ?"
#: vbv_lernwelt/feedback/export.py:49
#: vbv_lernwelt/feedback/export.py:54
msgid ""
"Wurden Fragen und Anregungen der Kursteilnehmenden ernst genommen und "
"aufgegriffen?"
msgstr "Les questions et les suggestions des participants ont-elles été prises au sérieux et traitées correctement ?"
msgstr ""
"Les questions et les suggestions des participants ont-elles été prises au "
"sérieux et traitées correctement ?"
#: vbv_lernwelt/feedback/export.py:53
#: vbv_lernwelt/feedback/export.py:59
msgid "Was möchtest du dem Kursleiter/der Kursleiterin sonst noch sagen?"
msgstr "Souhaites-tu ajouter quelque chose à lintention de la personne chargée du cours ?"
msgstr ""
"Souhaites-tu ajouter quelque chose à lintention de la personne chargée du "
"cours ?"
#: vbv_lernwelt/feedback/export.py:55
#: vbv_lernwelt/feedback/export.py:61
msgid "Würdest du den Kurs weiterempfehlen?"
msgstr "Est-ce que tu recommandes ce cours ?"
#: vbv_lernwelt/feedback/export.py:56
#: vbv_lernwelt/feedback/export.py:62
msgid "Was hat dir besonders gut gefallen?"
msgstr "Quest-ce qui ta particulièrement plu ?"
#: vbv_lernwelt/feedback/export.py:57
#: vbv_lernwelt/feedback/export.py:63
msgid "Wo siehst du Verbesserungspotential?"
msgstr "À ton avis, quels sont les points qui pourraient être améliorés ?"
#: vbv_lernwelt/feedback/export.py:144
#: vbv_lernwelt/feedback/export.py:150
msgid "Durchführung"
msgstr "Opérations"
#: vbv_lernwelt/feedback/export.py:145
#: vbv_lernwelt/feedback/export.py:151
msgid "Datum"
msgstr "Date"

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-06-17 08:25+0200\n"
"POT-Creation-Date: 2024-06-17 15:43+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -18,16 +18,20 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: vbv_lernwelt/assignment/export.py:181
#: vbv_lernwelt/assignment/export.py:31
msgid "export_kompetenznachweis_elemente"
msgstr "esportazione_elementi_del_controllo"
#: vbv_lernwelt/assignment/export.py:183
msgid "Bestanden"
msgstr "Superato"
#: vbv_lernwelt/assignment/export.py:181
#: vbv_lernwelt/assignment/export.py:185
msgid "Nicht bestanden"
msgstr "Fallito"
#: vbv_lernwelt/assignment/export.py:195 vbv_lernwelt/assignment/export.py:198
#: vbv_lernwelt/assignment/export.py:199
#: vbv_lernwelt/assignment/export.py:199 vbv_lernwelt/assignment/export.py:202
#: vbv_lernwelt/assignment/export.py:203
msgid "Keine Daten"
msgstr "Nessun dato"
@ -103,81 +107,93 @@ msgstr ""
msgid "ÜK-Lehrgang"
msgstr ""
#: vbv_lernwelt/course_session/services/export_attendance.py:111
#: vbv_lernwelt/course_session/services/export_attendance.py:15
msgid "export_anwesenheit"
msgstr "esportazione_presenza"
#: vbv_lernwelt/course_session/services/export_attendance.py:113
msgid "Anwesend"
msgstr "Presente"
#: vbv_lernwelt/course_session/services/export_attendance.py:111
#: vbv_lernwelt/course_session/services/export_attendance.py:113
msgid "Nicht anwesend"
msgstr "Non presente"
#: vbv_lernwelt/course_session/services/export_attendance.py:118
#: vbv_lernwelt/course_session/services/export_attendance.py:120
msgid "Vorname"
msgstr "Nome"
#: vbv_lernwelt/course_session/services/export_attendance.py:119
#: vbv_lernwelt/course_session/services/export_attendance.py:121
msgid "Nachname"
msgstr "Cognome"
#: vbv_lernwelt/course_session/services/export_attendance.py:120
#: vbv_lernwelt/course_session/services/export_attendance.py:122
msgid "Email"
msgstr "E-mail"
#: vbv_lernwelt/course_session/services/export_attendance.py:121
#: vbv_lernwelt/course_session/services/export_attendance.py:133
#: vbv_lernwelt/course_session/services/export_attendance.py:123
#: vbv_lernwelt/course_session/services/export_attendance.py:135
msgid "Lehrvertragsnummer"
msgstr "Numero di contratto di tirocinio"
#: vbv_lernwelt/feedback/export.py:33
#: vbv_lernwelt/feedback/export.py:19
msgid "export_feedback"
msgstr "esportazione_feedback"
#: vbv_lernwelt/feedback/export.py:35
msgid "Zufriedenheit insgesamt"
msgstr "Soddisfazione complessiva"
#: vbv_lernwelt/feedback/export.py:34
#: vbv_lernwelt/feedback/export.py:36
msgid "Zielerreichung insgesamt"
msgstr "Raggiungimento complessivo degli obiettivi"
#: vbv_lernwelt/feedback/export.py:37
#: vbv_lernwelt/feedback/export.py:39
msgid ""
"Wie beurteilst du deine Sicherheit bezüglichen den Themen nach dem Kurs?"
msgstr "Come valuti il tuo livello di preparazione sui temi dopo il corso?"
#: vbv_lernwelt/feedback/export.py:41
#: vbv_lernwelt/feedback/export.py:43
msgid "Waren die Vorbereitungsaufträge klar und verständlich?"
msgstr "Gli incarichi di preparazione erano chiari e comprensibili?"
#: vbv_lernwelt/feedback/export.py:45
#: vbv_lernwelt/feedback/export.py:48
msgid ""
"Wie beurteilst du die Themensicherheit und Fachkompetenz des Kursleiters/der "
"Kursleiterin?"
msgstr "Come valuti il livello di preparazione sui temi e le competenze specialistiche dellistruttore/istruttrice del corso?"
msgstr ""
"Come valuti il livello di preparazione sui temi e le competenze "
"specialistiche dellistruttore/istruttrice del corso?"
#: vbv_lernwelt/feedback/export.py:49
#: vbv_lernwelt/feedback/export.py:54
msgid ""
"Wurden Fragen und Anregungen der Kursteilnehmenden ernst genommen und "
"aufgegriffen?"
msgstr "Le domande e i suggerimenti dei/delle partecipanti al corso sono stati accolti e presi sul serio?"
msgstr ""
"Le domande e i suggerimenti dei/delle partecipanti al corso sono stati "
"accolti e presi sul serio?"
#: vbv_lernwelt/feedback/export.py:53
#: vbv_lernwelt/feedback/export.py:59
msgid "Was möchtest du dem Kursleiter/der Kursleiterin sonst noch sagen?"
msgstr "Cosaltro vorresti ancora dire allistruttore/istruttrice del corso?"
#: vbv_lernwelt/feedback/export.py:55
#: vbv_lernwelt/feedback/export.py:61
msgid "Würdest du den Kurs weiterempfehlen?"
msgstr "Raccomanderesti il corso?"
#: vbv_lernwelt/feedback/export.py:56
#: vbv_lernwelt/feedback/export.py:62
msgid "Was hat dir besonders gut gefallen?"
msgstr "Coshai apprezzato particolarmente?"
#: vbv_lernwelt/feedback/export.py:57
#: vbv_lernwelt/feedback/export.py:63
msgid "Wo siehst du Verbesserungspotential?"
msgstr "Dove vedi un potenziale di miglioramento?"
#: vbv_lernwelt/feedback/export.py:144
#: vbv_lernwelt/feedback/export.py:150
msgid "Durchführung"
msgstr "Svolgimenti"
#: vbv_lernwelt/feedback/export.py:145
#: vbv_lernwelt/feedback/export.py:151
msgid "Datum"
msgstr "Data"

View File

@ -28,6 +28,8 @@ from vbv_lernwelt.learnpath.models import LearningContent
logger = structlog.get_logger(__name__)
COMPETENCE_ELEMENT_EXPORT_FILE_NAME = _("export_kompetenznachweis_elemente")
@dataclass
class CompetenceCertificateElement:
@ -37,7 +39,7 @@ class CompetenceCertificateElement:
course_session: CourseSession
def export_competence_certificates(
def export_competence_elements(
course_session_ids: list[str],
circle_ids: list[int] = None,
save_as_file: bool = False,
@ -99,7 +101,7 @@ def export_competence_certificates(
)
if save_as_file:
wb.save(make_export_filename(name="competence_certificate_export"))
wb.save(make_export_filename(COMPETENCE_ELEMENT_EXPORT_FILE_NAME))
else:
output = BytesIO()
wb.save(output)

View File

@ -1,7 +1,7 @@
import djclick as click
import structlog
from vbv_lernwelt.assignment.export import export_competence_certificates
from vbv_lernwelt.assignment.export import export_competence_elements
logger = structlog.get_logger(__name__)
@ -15,4 +15,4 @@ logger = structlog.get_logger(__name__)
)
def command(course_session_id, save_as_file):
# using the output from call_command was a bit cumbersome, so this is just a wrapper for the actual function
export_competence_certificates([course_session_id], save_as_file=save_as_file)
export_competence_elements([course_session_id], save_as_file=save_as_file)

View File

@ -2,7 +2,7 @@ import io
from openpyxl import load_workbook
from vbv_lernwelt.assignment.export import export_competence_certificates
from vbv_lernwelt.assignment.export import export_competence_elements
from vbv_lernwelt.assignment.models import Assignment
from vbv_lernwelt.assignment.services import update_assignment_completion
from vbv_lernwelt.core.constants import TEST_STUDENT1_USER_ID, TEST_STUDENT2_USER_ID
@ -115,7 +115,7 @@ class AssignmentCompletionExportTestCase(ExportBaseTestCase):
def _generate_workbook(self, course_session_ids):
export_data = io.BytesIO(
export_competence_certificates(course_session_ids, save_as_file=False)
export_competence_elements(course_session_ids, save_as_file=False)
)
return load_workbook(export_data)

View File

@ -12,6 +12,8 @@ from vbv_lernwelt.course_session.models import CourseSessionAttendanceCourse
logger = structlog.get_logger(__name__)
ATTENDANCE_EXPORT_FILENAME = _("export_anwesenheit")
def export_attendance(
course_session_ids: list[str],
@ -56,7 +58,7 @@ def export_attendance(
)
if save_as_file:
wb.save(make_export_filename())
wb.save(make_export_filename(ATTENDANCE_EXPORT_FILENAME))
else:
output = BytesIO()
wb.save(output)
@ -155,7 +157,7 @@ def group_by_session_title(items):
}
def make_export_filename(name: str = "attendance_export"):
def make_export_filename(name: str):
today_date = datetime.today().strftime("%Y-%m-%d")
return f"{name}_{today_date}.xlsx"

View File

@ -11,7 +11,10 @@ from rest_framework.decorators import api_view
from rest_framework.exceptions import PermissionDenied
from rest_framework.response import Response
from vbv_lernwelt.assignment.export import export_competence_certificates
from vbv_lernwelt.assignment.export import (
COMPETENCE_ELEMENT_EXPORT_FILE_NAME,
export_competence_elements,
)
from vbv_lernwelt.assignment.models import (
AssignmentCompletion,
AssignmentCompletionStatus,
@ -28,13 +31,17 @@ from vbv_lernwelt.course.models import (
)
from vbv_lernwelt.course.views import logger
from vbv_lernwelt.course_session.services.export_attendance import (
ATTENDANCE_EXPORT_FILENAME,
export_attendance,
make_export_filename,
)
from vbv_lernwelt.course_session_group.models import CourseSessionGroup
from vbv_lernwelt.duedate.models import DueDate
from vbv_lernwelt.duedate.serializers import DueDateSerializer
from vbv_lernwelt.feedback.export import export_feedback_with_circle_restriction
from vbv_lernwelt.feedback.export import (
export_feedback_with_circle_restriction,
FEEDBACK_EXPORT_FILE_NAME,
)
from vbv_lernwelt.learning_mentor.models import LearningMentor
from vbv_lernwelt.learnpath.models import Circle
from vbv_lernwelt.self_evaluation_feedback.models import SelfEvaluationFeedback
@ -550,21 +557,21 @@ def export_attendance_as_xsl(request):
[cs.id for cs in course_sessions_with_roles],
circle_ids=circle_ids,
)
return _make_excel_response(data)
return _make_excel_response(data, file_name=ATTENDANCE_EXPORT_FILENAME)
@api_view(["POST"])
def export_competence_certificate_as_xsl(request):
def export_competence_elements_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
)
data = export_competence_certificates(
data = export_competence_elements(
[cswr.id for cswr in course_sessions_with_roles],
circle_ids=circle_ids,
)
return _make_excel_response(data)
return _make_excel_response(data, COMPETENCE_ELEMENT_EXPORT_FILE_NAME)
@api_view(["POST"])
@ -582,7 +589,7 @@ def export_feedback_as_xsl(request):
) # noqa
data = export_feedback_with_circle_restriction(allowed_circles, False)
return _make_excel_response(data)
return _make_excel_response(data, FEEDBACK_EXPORT_FILE_NAME)
def _get_permitted_courses_sessions_for_user(
@ -597,11 +604,14 @@ def _get_permitted_courses_sessions_for_user(
return user_course_sessions_with_roles
def _make_excel_response(data: bytes) -> HttpResponse:
def _make_excel_response(data: bytes, file_name: str) -> HttpResponse:
encoded_data = base64.b64encode(data).decode("utf-8")
# Create the JSON response
response_data = {"encoded_data": encoded_data, "file_name": make_export_filename()}
response_data = {
"encoded_data": encoded_data,
"file_name": make_export_filename(file_name),
}
return Response(response_data, status=200)

View File

@ -16,6 +16,8 @@ from vbv_lernwelt.feedback.models import FeedbackResponse
logger = structlog.get_logger(__name__)
FEEDBACK_EXPORT_FILE_NAME = _("export_feedback")
VV_FEEDBACK_QUESTIONS = [
("satisfaction", "Zufriedenheit insgesamt"),
("goal_attainment", "Zielerreichung insgesamt"),
@ -121,7 +123,7 @@ def _generate_feedback_export(feedback_unordered: QuerySet, save_as_file: bool):
_create_sheet(wb, circle.title, group_feedbacks)
if save_as_file:
wb.save(make_export_filename(name="feedback_export"))
wb.save(make_export_filename(FEEDBACK_EXPORT_FILE_NAME))
else:
# todo handle IndexError
output = BytesIO()