# SPDX-FileCopyrightText: Thomas Breitner <t.breitner@csl.mpg.de>
#
# SPDX-License-Identifier: EUPL-1.2
from django.urls import path
from django.urls import reverse
from django.http import HttpResponse
from wagtail import hooks
from wagtail.admin import widgets as wagtailadmin_widgets
from .models import IssuePage
from .views import (
issue_page_listing_viewset,
export_issue_content,
export_issue_articles,
)
[docs]
@hooks.register("register_admin_viewset")
def register_viewset():
return issue_page_listing_viewset
# @hooks.register('insert_editor_js')
# def editor_js():
# js_files = [
# 'issue/js/slug_from_issue.js',
# ]
# js_includes = format_html_join(
# '\n',
# '<script src="{0}"></script>',
# ((static(filename),) for filename in js_files)
# )
# return js_includes + mark_safe(
# """
# <script>
# console.log("insert_editor_js")
# </script>
# """
# )
[docs]
@hooks.register("before_publish_page")
def before_issue_publish_page(request, page):
# Test if trying to publish an IssuePage without attached pdf
# eg. a proposed IssuePage
if page.specific_class == IssuePage:
if not page.pdf:
return HttpResponse(
f"An issue PDF file must be set to publish this the page `{page.title}`. Go back and add the PDF file or save this page as draft.",
content_type="text/plain",
)
else:
return page
[docs]
@hooks.register("register_admin_urls")
def register_export_issue_content_url():
return [
path(
"export-issue-content/<int:issue_page_pk>/articles/",
export_issue_articles,
name="export_issue_articles",
),
path(
"export-issue-content/<int:issue_page_pk>",
export_issue_content,
name="export_issue_content",
),
]