2020-01-08 04:41:21 +00:00
|
|
|
from django.conf.urls import include, url
|
|
|
|
from django.urls import reverse
|
|
|
|
from django.utils.html import format_html
|
|
|
|
from django.utils.translation import ugettext
|
|
|
|
|
|
|
|
import wagtail.admin.rich_text.editors.draftail.features as draftail_features
|
|
|
|
from wagtail.core import hooks
|
|
|
|
|
|
|
|
from . import urls
|
2020-03-31 17:34:05 +01:00
|
|
|
from .richtext import (
|
|
|
|
ContentstateSnippetLinkConversionRule, ContentstateSnippetEmbedConversionRule,
|
|
|
|
SnippetEmbedHandler, SnippetLinkHandler
|
|
|
|
)
|
2020-01-08 04:41:21 +00:00
|
|
|
|
|
|
|
|
|
|
|
@hooks.register("register_rich_text_features")
|
|
|
|
def register_snippet_feature(features):
|
|
|
|
feature_name = "snippet"
|
|
|
|
type_ = "SNIPPET"
|
|
|
|
|
|
|
|
features.register_link_type(SnippetLinkHandler)
|
|
|
|
|
|
|
|
features.register_editor_plugin(
|
|
|
|
"draftail",
|
|
|
|
feature_name,
|
|
|
|
draftail_features.EntityFeature(
|
|
|
|
{"type": type_, "icon": "snippet", "description": ugettext("Snippet")},
|
|
|
|
js=[
|
|
|
|
"wagtailsnippets/js/snippet-chooser-modal.js",
|
|
|
|
"wagtail_draftail_snippet/js/snippet-model-chooser-modal.js",
|
|
|
|
"wagtail_draftail_snippet/js/wagtail_draftail_snippet.js",
|
|
|
|
],
|
|
|
|
),
|
|
|
|
)
|
|
|
|
|
|
|
|
features.register_converter_rule(
|
|
|
|
"contentstate", feature_name, ContentstateSnippetLinkConversionRule
|
|
|
|
)
|
|
|
|
|
|
|
|
|
2020-03-31 17:34:05 +01:00
|
|
|
@hooks.register("register_rich_text_features")
|
|
|
|
def register_snippet_embed_feature(features):
|
|
|
|
feature_name = "snippet-embed"
|
|
|
|
type_ = "SNIPPET-EMBED"
|
|
|
|
|
|
|
|
features.register_embed_type(SnippetEmbedHandler)
|
|
|
|
|
|
|
|
features.register_editor_plugin(
|
|
|
|
"draftail",
|
|
|
|
feature_name,
|
|
|
|
draftail_features.EntityFeature(
|
|
|
|
{"type": type_, "icon": "media", "description": ugettext("Snippet Embed")},
|
|
|
|
js=[
|
|
|
|
"wagtailsnippets/js/snippet-chooser-modal.js",
|
|
|
|
"wagtail_draftail_snippet/js/snippet-model-chooser-modal.js",
|
|
|
|
"wagtail_draftail_snippet/js/wagtail_draftail_snippet.js",
|
|
|
|
],
|
|
|
|
),
|
|
|
|
)
|
|
|
|
|
|
|
|
features.register_converter_rule(
|
|
|
|
"contentstate", feature_name, ContentstateSnippetEmbedConversionRule
|
|
|
|
)
|
|
|
|
|
|
|
|
|
2020-01-08 04:41:21 +00:00
|
|
|
@hooks.register("insert_editor_js")
|
|
|
|
def editor_js():
|
|
|
|
return format_html(
|
|
|
|
"""
|
|
|
|
<script>window.chooserUrls.snippetModelChooser = '{0}';</script>
|
|
|
|
""",
|
|
|
|
reverse("wagtaildraftailsnippet:choose_snippet_model"),
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
@hooks.register("register_admin_urls")
|
|
|
|
def register_admin_urls():
|
|
|
|
return [url(r"^snippets/", include(urls, namespace="wagtaildraftailsnippet"))]
|