Skip to content
Snippets Groups Projects
Commit fbbc2e79 authored by permcu's avatar permcu
Browse files

Wire register_for_group to url and thread parameters through

It's now reachable under coursebook/print/group/id
parent b0d967dc
No related branches found
No related tags found
1 merge request!422Resolve "Add export functionality to course book"
...@@ -62,6 +62,14 @@ export default { ...@@ -62,6 +62,14 @@ export default {
fullWidth: true, fullWidth: true,
}, },
}, },
{
path: "print/group/:groupId/",
component: () => import("aleksis.core/components/LegacyBaseTemplate.vue"),
name: "alsijil.coursebook_print",
props: {
byTheGreatnessOfTheAlmightyAleksolotlISwearIAmWorthyOfUsingTheLegacyBaseTemplate: true,
},
},
], ],
}, },
{ {
......
from typing import Optional
from copy import deepcopy from copy import deepcopy
from datetime import date, timedelta from datetime import date, timedelta
...@@ -16,8 +18,18 @@ from .models import ExtraMark ...@@ -16,8 +18,18 @@ from .models import ExtraMark
@recorded_task @recorded_task
def generate_full_register_printout(group: int, file_object: int, recorder: ProgressRecorder): def generate_full_register_printout(
"""Generate a full register printout as PDF for a group.""" group: int,
file_object: int,
recorder: ProgressRecorder,
include_cover: Optional[bool] = True,
include_abbreviations: Optional[bool] = True,
include_members_table: Optional[bool] = True,
include_teachers_and_subjects_table: Optional[bool] = True,
include_person_overviews: Optional[bool] = True,
include_coursebook: Optional[bool] = True
):
"""Generate a configurable register printout as PDF for a group."""
context = {} context = {}
_number_of_steps = 8 _number_of_steps = 8
......
...@@ -3,6 +3,11 @@ from django.urls import path ...@@ -3,6 +3,11 @@ from django.urls import path
from . import views from . import views
urlpatterns = [ urlpatterns = [
path(
"coursebook/print/group/<int:id_>",
views.register_for_group,
name="register_for_group"
),
path("group_roles/", views.GroupRoleListView.as_view(), name="group_roles"), path("group_roles/", views.GroupRoleListView.as_view(), name="group_roles"),
path("group_roles/create/", views.GroupRoleCreateView.as_view(), name="create_group_role"), path("group_roles/create/", views.GroupRoleCreateView.as_view(), name="create_group_role"),
path( path(
......
from typing import Any, Dict from typing import Any, Dict, Optional
from django.db.models import Q from django.db.models import Q
from django.http import HttpRequest, HttpResponse from django.http import HttpRequest, HttpResponse
...@@ -42,7 +42,9 @@ from .tasks import generate_full_register_printout ...@@ -42,7 +42,9 @@ from .tasks import generate_full_register_printout
@permission_required( @permission_required(
"alsijil.view_full_register_rule", fn=objectgetter_optional(Group, None, False) "alsijil.view_full_register_rule", fn=objectgetter_optional(Group, None, False)
) )
def full_register_group(request: HttpRequest, id_: int) -> HttpResponse: def register_for_group(request: HttpRequest, id_: int) -> HttpResponse:
"""Show a configurable register printout as PDF for a group."""
group = get_object_or_404(Group, pk=id_) group = get_object_or_404(Group, pk=id_)
file_object = PDFFile.objects.create() file_object = PDFFile.objects.create()
...@@ -52,7 +54,16 @@ def full_register_group(request: HttpRequest, id_: int) -> HttpResponse: ...@@ -52,7 +54,16 @@ def full_register_group(request: HttpRequest, id_: int) -> HttpResponse:
redirect_url = f"/pdfs/{file_object.pk}" redirect_url = f"/pdfs/{file_object.pk}"
result = generate_full_register_printout.delay(group.pk, file_object.pk) result = generate_full_register_printout.delay(
group=group.pk,
file_object=file_object.pk,
include_cover=request.GET.get("cover", True),
include_abbreviations=request.GET.get("abbreviations", True),
include_members_table=request.GET.get("members_table", True),
include_teachers_and_subjects_table=request.GET.get("teachers_and_subjects_table", True),
include_person_overviews=request.GET.get("person_overviews", True),
include_coursebook=request.GET.get("coursebook", True)
)
back_url = request.GET.get("back", "") back_url = request.GET.get("back", "")
back_url_is_safe = url_has_allowed_host_and_scheme( back_url_is_safe = url_has_allowed_host_and_scheme(
...@@ -66,8 +77,8 @@ def full_register_group(request: HttpRequest, id_: int) -> HttpResponse: ...@@ -66,8 +77,8 @@ def full_register_group(request: HttpRequest, id_: int) -> HttpResponse:
return render_progress_page( return render_progress_page(
request, request,
result, result,
title=_("Generate full register printout for {}").format(group), title=_("Generate register printout for {}").format(group),
progress_title=_("Generate full register printout …"), progress_title=_("Generate register printout …"),
success_message=_("The printout has been generated successfully."), success_message=_("The printout has been generated successfully."),
error_message=_("There was a problem while generating the printout."), error_message=_("There was a problem while generating the printout."),
redirect_on_success_url=redirect_url, redirect_on_success_url=redirect_url,
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment