Skip to content
Snippets Groups Projects
Verified Commit f937ba46 authored by Maximilian Marx's avatar Maximilian Marx
Browse files

Add JSON import form

parent edffc9e3
Branches
No related tags found
No related merge requests found
Pipeline #117729 passed
...@@ -101,3 +101,12 @@ class SlideExportForm(AdminIntermediateForm): ...@@ -101,3 +101,12 @@ class SlideExportForm(AdminIntermediateForm):
coerce=lambda x: x == "True", coerce=lambda x: x == "True",
help_text=_("Create symbols indicating space to note down owners and timeslots for wishes, e.g., to be filled " help_text=_("Create symbols indicating space to note down owners and timeslots for wishes, e.g., to be filled "
"out on a touch screen while presenting?")) "out on a touch screen while presenting?"))
class JSONImportForm(AdminIntermediateForm):
json_data = forms.CharField(
required=True,
widget=forms.Textarea,
label=_("JSON data"),
help_text=_("JSON data from the scheduling solver"),
)
...@@ -6,7 +6,8 @@ from rest_framework.routers import DefaultRouter ...@@ -6,7 +6,8 @@ from rest_framework.routers import DefaultRouter
from AKModel import views from AKModel import views
from AKModel.views import NewEventWizardStartView, NewEventWizardSettingsView, NewEventWizardPrepareImportView, \ from AKModel.views import NewEventWizardStartView, NewEventWizardSettingsView, NewEventWizardPrepareImportView, \
NewEventWizardImportView, NewEventWizardActivateView, NewEventWizardFinishView, EventStatusView, \ NewEventWizardImportView, NewEventWizardActivateView, NewEventWizardFinishView, EventStatusView, \
AKRequirementOverview, AKCSVExportView, AKWikiExportView, AKJSONExportView, AKMessageDeleteView, ExportSlidesView AKRequirementOverview, AKCSVExportView, AKWikiExportView, AKJSONExportView, AKJSONImportView, \
AKMessageDeleteView, ExportSlidesView
api_router = DefaultRouter() api_router = DefaultRouter()
api_router.register('akowner', views.AKOwnerViewSet, basename='AKOwner') api_router.register('akowner', views.AKOwnerViewSet, basename='AKOwner')
...@@ -79,6 +80,8 @@ def get_admin_urls_event(admin_site): ...@@ -79,6 +80,8 @@ def get_admin_urls_event(admin_site):
name="ak_csv_export"), name="ak_csv_export"),
path('<slug:event_slug>/ak-json-export/', admin_site.admin_view(AKJSONExportView.as_view()), path('<slug:event_slug>/ak-json-export/', admin_site.admin_view(AKJSONExportView.as_view()),
name="ak_json_export"), name="ak_json_export"),
path('<slug:event_slug>/ak-json-import/', admin_site.admin_view(AKJSONImportView.as_view()),
name="ak_json_import"),
path('<slug:slug>/ak-wiki-export/', admin_site.admin_view(AKWikiExportView.as_view()), path('<slug:slug>/ak-wiki-export/', admin_site.admin_view(AKWikiExportView.as_view()),
name="ak_wiki_export"), name="ak_wiki_export"),
path('<slug:event_slug>/delete-orga-messages/', admin_site.admin_view(AKMessageDeleteView.as_view()), path('<slug:event_slug>/delete-orga-messages/', admin_site.admin_view(AKMessageDeleteView.as_view()),
......
...@@ -15,7 +15,7 @@ from rest_framework import viewsets, permissions, mixins ...@@ -15,7 +15,7 @@ from rest_framework import viewsets, permissions, mixins
from AKModel.forms import NewEventWizardStartForm, NewEventWizardSettingsForm, NewEventWizardPrepareImportForm, \ from AKModel.forms import NewEventWizardStartForm, NewEventWizardSettingsForm, NewEventWizardPrepareImportForm, \
NewEventWizardImportForm, NewEventWizardActivateForm, AdminIntermediateForm, SlideExportForm, \ NewEventWizardImportForm, NewEventWizardActivateForm, AdminIntermediateForm, SlideExportForm, \
AdminIntermediateActionForm AdminIntermediateActionForm, JSONImportForm
from AKModel.models import Event, AK, AKSlot, Room, AKTrack, AKCategory, AKOwner, AKOrgaMessage, AKRequirement, \ from AKModel.models import Event, AK, AKSlot, Room, AKTrack, AKCategory, AKOwner, AKOrgaMessage, AKRequirement, \
ConstraintViolation ConstraintViolation
from AKModel.serializers import AKSerializer, AKSlotSerializer, RoomSerializer, AKTrackSerializer, AKCategorySerializer, \ from AKModel.serializers import AKSerializer, AKSlotSerializer, RoomSerializer, AKTrackSerializer, AKCategorySerializer, \
...@@ -575,3 +575,13 @@ class PlanUnpublishView(IntermediateAdminActionView): ...@@ -575,3 +575,13 @@ class PlanUnpublishView(IntermediateAdminActionView):
def action(self, form): def action(self, form):
self.entities.update(plan_published_at=None, plan_hidden=True) self.entities.update(plan_published_at=None, plan_hidden=True)
class AKJSONImportView(EventSlugMixin, IntermediateAdminView):
form_class = JSONImportForm
title = _("AK JSON Import")
def form_valid(self, form):
self.event.schedule_from_json(form.data["json_data"])
return redirect("admin:event_status", self.event.slug)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment