Exemplo n.º 1
0
    def register_hook(self, hook_name, fn, order=0):
        from wagtail import hooks

        hooks.register(hook_name, fn, order)
        try:
            yield
        finally:
            hooks._hooks[hook_name].remove((fn, order))
Exemplo n.º 2
0
class CollectionAdminURLFinder(ModelAdminURLFinder):
    permission_policy = collection_permission_policy
    edit_url_name = "wagtailadmin_collections:edit"


register_admin_url_finder(Collection, CollectionAdminURLFinder)


class WorkflowAdminURLFinder(ModelAdminURLFinder):
    permission_policy = workflow_permission_policy
    edit_url_name = "wagtailadmin_workflows:edit"


register_admin_url_finder(Workflow, WorkflowAdminURLFinder)


class WorkflowTaskAdminURLFinder(ModelAdminURLFinder):
    permission_policy = task_permission_policy
    edit_url_name = "wagtailadmin_workflows:edit_task"


register_admin_url_finder(Task, WorkflowTaskAdminURLFinder)

for action_class in [
        DeleteBulkAction,
        MoveBulkAction,
        PublishBulkAction,
        UnpublishBulkAction,
]:
    hooks.register("register_bulk_action", action_class)
Exemplo n.º 3
0
 def setUpClass(cls):
     hooks.register("test_hook_name", test_hook)
Exemplo n.º 4
0
from .forms import FavouriteColourForm


# Register one hook using decorators...
@hooks.register("insert_editor_css")
def editor_css():
    return """<link rel="stylesheet" href="/path/to/my/custom.css">"""


# And the other using old-style function calls
def editor_js():
    return """<script src="/path/to/my/custom.js"></script>"""


hooks.register("insert_editor_js", editor_js)


def block_googlebot(page, request, serve_args, serve_kwargs):
    if request.META.get("HTTP_USER_AGENT") == "GoogleBot":
        return HttpResponse("<h1>bad googlebot no cookie</h1>")


hooks.register("before_serve_page", block_googlebot)


class KittensMenuItem(MenuItem):
    def is_shown(self, request):
        return not request.GET.get("hide-kittens", False)

Exemplo n.º 5
0
@hooks.register("register_snippet_listing_buttons")
def register_snippet_listing_buttons(snippet, user, next_url=None):
    model = type(snippet)

    if user_can_edit_snippet_type(user, model):
        yield SnippetListingButton(
            _("Edit"),
            reverse(
                f"wagtailsnippets_{model._meta.app_label}_{model._meta.model_name}:edit",
                args=[quote(snippet.pk)],
            ),
            attrs={"aria-label": _("Edit '%(title)s'") % {"title": str(snippet)}},
            priority=10,
        )

    if user.has_perm(get_permission_name("delete", model)):
        yield SnippetListingButton(
            _("Delete"),
            reverse(
                f"wagtailsnippets_{model._meta.app_label}_{model._meta.model_name}:delete",
                args=[quote(snippet.pk)],
            ),
            attrs={"aria-label": _("Delete '%(title)s'") % {"title": str(snippet)}},
            priority=20,
            classes=["no"],
        )


hooks.register("register_bulk_action", DeleteBulkAction)