本文整理汇总了Python中wagtail.core.hooks.register方法的典型用法代码示例。如果您正苦于以下问题:Python hooks.register方法的具体用法?Python hooks.register怎么用?Python hooks.register使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类wagtail.core.hooks
的用法示例。
在下文中一共展示了hooks.register方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: test_register_page_listing_buttons
# 需要导入模块: from wagtail.core import hooks [as 别名]
# 或者: from wagtail.core.hooks import register [as 别名]
def test_register_page_listing_buttons(self):
@hooks.register('register_page_listing_buttons')
def page_listing_buttons(page, page_perms, is_parent=False, next_url=None):
yield wagtailadmin_widgets.PageListingButton(
'Another useless page listing button',
'/custom-url',
priority=10
)
response = self.client.get(
reverse('wagtailadmin_explore', args=(self.root_page.id, ))
)
self.assertEqual(response.status_code, 200)
self.assertTemplateUsed(response, 'wagtailadmin/pages/listing/_button_with_dropdown.html')
self.assertTemplateUsed(response, 'wagtailadmin/pages/listing/_buttons.html')
self.assertContains(response, 'Another useless page listing button')
示例2: test_register_page_listing_more_buttons
# 需要导入模块: from wagtail.core import hooks [as 别名]
# 或者: from wagtail.core.hooks import register [as 别名]
def test_register_page_listing_more_buttons(self):
@hooks.register('register_page_listing_more_buttons')
def page_listing_more_buttons(page, page_perms, is_parent=False, next_url=None):
yield wagtailadmin_widgets.Button(
'Another useless button in default "More" dropdown',
'/custom-url',
priority=10
)
response = self.client.get(
reverse('wagtailadmin_explore', args=(self.root_page.id, ))
)
self.assertEqual(response.status_code, 200)
self.assertTemplateUsed(response, 'wagtailadmin/pages/listing/_button_with_dropdown.html')
self.assertTemplateUsed(response, 'wagtailadmin/pages/listing/_buttons.html')
self.assertContains(response, 'Another useless button in default "More" dropdown')
示例3: register_quotation_feature
# 需要导入模块: from wagtail.core import hooks [as 别名]
# 或者: from wagtail.core.hooks import register [as 别名]
def register_quotation_feature(features):
features.register_editor_plugin(
'hallo', 'quotation', HalloPlugin(
name='halloquotation',
js=['testapp/js/hallo-quotation.js'],
css={'all': ['testapp/css/hallo-quotation.css']},
)
)
features.register_editor_plugin(
'draftail', 'quotation', draftail_features.EntityFeature(
{},
js=['testapp/js/draftail-quotation.js'],
css={'all': ['testapp/css/draftail-quotation.css']},
)
)
# register 'intro' as a rich text feature which converts an `intro-paragraph` contentstate block
# to a <p class="intro"> tag in db HTML and vice versa
示例4: register_textcolour_feature
# 需要导入模块: from wagtail.core import hooks [as 别名]
# 或者: from wagtail.core.hooks import register [as 别名]
def register_textcolour_feature(features):
# register all colour features
register_all_colour_features(features)
# register the color picker
feature_name = 'textcolour'
type_ = feature_name.upper()
control = {
'type': type_,
'icon': get_setting('ICON'),
'description': _('Text Colour'),
}
features.register_editor_plugin(
'draftail',
feature_name,
draftail_features.EntityFeature(
control,
js=['colourpicker/js/chooser.js']
)
)
features.default_features.append(feature_name)
示例5: test_menus_modify_primed_menu_items
# 需要导入模块: from wagtail.core import hooks [as 别名]
# 或者: from wagtail.core.hooks import register [as 别名]
def test_menus_modify_primed_menu_items(self):
# NOTE: Positional args used to ensure supplied args remain consistent
@hooks.register('menus_modify_primed_menu_items')
def modify_menu_items(
menu_items, request, parent_context, parent_page, menu_instance,
original_menu_instance, menu_tag, original_menu_tag, current_level,
max_levels, current_site, current_page, current_section_root_page,
current_page_ancestor_ids, apply_active_classes,
allow_repeating_parents, use_absolute_page_urls
):
if original_menu_tag == 'main_menu' and current_level == 1:
menu_items.append({
'href': 'https://rkh.co.uk',
'text': 'VISIT RKH.CO.UK',
'active_class': 'external',
})
return menu_items
# Let's render the test homepage to see what happens!
response = self.client.get('/')
# unhook asap to prevent knock-on effects on failure
del hooks._hooks['menus_modify_primed_menu_items']
# If the the hook failed to receive any of the arguments defined
# on `modify_menu_items` above, there will be an error
self.assertEqual(response.status_code, 200)
# There are 5 main menus being output, and because our hook only adds
# the additional item to the first level of each of those, the
# 'VISIT RKH.CO.UK' text should appear exactly 5 times
self.assertContains(response, 'VISIT RKH.CO.UK', 5)
示例6: test_menus_modify_base_menuitem_queryset
# 需要导入模块: from wagtail.core import hooks [as 别名]
# 或者: from wagtail.core.hooks import register [as 别名]
def test_menus_modify_base_menuitem_queryset(self):
# NOTE: Positional args used to ensure supplied args remain consistent
@hooks.register('menus_modify_base_menuitem_queryset')
def modify_menuitem_queryset(
queryset, request, parent_context, parent_page, menu_instance,
original_menu_instance, menu_tag, original_menu_tag, current_level,
max_levels, current_site, current_page, current_section_root_page,
current_page_ancestor_ids, apply_active_classes,
allow_repeating_parents, use_absolute_page_urls
):
"""
Nullify menu items completely for all 'flat menus'. Should result
in completely empty menus
"""
if menu_tag == 'flat_menu':
queryset = queryset.none()
return queryset
# Let's render the test homepage to see what happens!
response = self.client.get('/')
# unhook asap to prevent knock-on effects on failure
del hooks._hooks['menus_modify_base_menuitem_queryset']
# If the the hook failed to receive any of the arguments defined
# on `modify_menu_items` above, there will be an error
self.assertEqual(response.status_code, 200)
# Test output reflects hook changes
soup = BeautifulSoup(response.content, 'html5lib')
contact_menu_html = soup.find(id='nav-contact').decode()
# There should be no menu items, so just an empty div (no <ul>)
expected_html = """
<div id="nav-contact">
<div class="flat-menu contact no_heading"></div>
</div>
"""
self.assertHTMLEqual(contact_menu_html, expected_html)
示例7: test_custom_button_with_dropdown
# 需要导入模块: from wagtail.core import hooks [as 别名]
# 或者: from wagtail.core.hooks import register [as 别名]
def test_custom_button_with_dropdown(self):
@hooks.register('register_page_listing_buttons')
def page_custom_listing_buttons(page, page_perms, is_parent=False, next_url=None):
yield wagtailadmin_widgets.ButtonWithDropdownFromHook(
'One more more button',
hook_name='register_page_listing_one_more_more_buttons',
page=page,
page_perms=page_perms,
is_parent=is_parent,
next_url=next_url,
attrs={'target': '_blank', 'rel': 'noopener noreferrer'},
priority=50
)
@hooks.register('register_page_listing_one_more_more_buttons')
def page_custom_listing_more_buttons(page, page_perms, is_parent=False, next_url=None):
yield wagtailadmin_widgets.Button(
'Another useless dropdown button in "One more more button" dropdown',
'/custom-url',
priority=10
)
response = self.client.get(
reverse('wagtailadmin_explore', args=(self.root_page.id, ))
)
self.assertEqual(response.status_code, 200)
self.assertTemplateUsed(response, 'wagtailadmin/pages/listing/_button_with_dropdown.html')
self.assertTemplateUsed(response, 'wagtailadmin/pages/listing/_buttons.html')
self.assertContains(response, 'One more more button')
self.assertContains(response, 'Another useless dropdown button in "One more more button" dropdown')
示例8: hide_hidden_pages
# 需要导入模块: from wagtail.core import hooks [as 别名]
# 或者: from wagtail.core.hooks import register [as 别名]
def hide_hidden_pages(parent_page, pages, request):
# Pages with 'hidden' in their title are hidden. Magic!
return pages.exclude(title__icontains='hidden')
# register 'quotation' as a rich text feature supported by a hallo.js plugin
# and a Draftail feature
示例9: register_with_wagtail
# 需要导入模块: from wagtail.core import hooks [as 别名]
# 或者: from wagtail.core.hooks import register [as 别名]
def register_with_wagtail(self):
@hooks.register('register_permissions')
def register_permissions():
return self.get_permissions_for_registration()
@hooks.register('register_admin_urls')
def register_admin_urls():
return self.get_admin_urls_for_registration()
menu_hook = (
'register_settings_menu_item' if self.add_to_settings_menu else
'register_admin_menu_item'
)
@hooks.register(menu_hook)
def register_admin_menu_item():
return self.get_menu_item()
# Overriding the explorer page queryset is a somewhat 'niche' / experimental
# operation, so only attach that hook if we specifically opt into it
# by returning True from will_modify_explorer_page_queryset
if self.will_modify_explorer_page_queryset():
@hooks.register('construct_explorer_page_queryset')
def construct_explorer_page_queryset(parent_page, queryset, request):
return self.modify_explorer_page_queryset(
parent_page, queryset, request)
示例10: get_admin_urls_for_registration
# 需要导入模块: from wagtail.core import hooks [as 别名]
# 或者: from wagtail.core.hooks import register [as 别名]
def get_admin_urls_for_registration(self):
"""
Utilised by Wagtail's 'register_admin_urls' hook to register urls for
our the views that class offers.
"""
urls = (
url(self.url_helper.get_action_url_pattern('index'),
self.index_view,
name=self.url_helper.get_action_url_name('index')),
url(self.url_helper.get_action_url_pattern('create'),
self.create_view,
name=self.url_helper.get_action_url_name('create')),
url(self.url_helper.get_action_url_pattern('edit'),
self.edit_view,
name=self.url_helper.get_action_url_name('edit')),
url(self.url_helper.get_action_url_pattern('delete'),
self.delete_view,
name=self.url_helper.get_action_url_name('delete')),
)
if self.inspect_view_enabled:
urls = urls + (
url(self.url_helper.get_action_url_pattern('inspect'),
self.inspect_view,
name=self.url_helper.get_action_url_name('inspect')),
)
if self.is_pagemodel:
urls = urls + (
url(self.url_helper.get_action_url_pattern('choose_parent'),
self.choose_parent_view,
name=self.url_helper.get_action_url_name('choose_parent')),
)
return urls
示例11: register_decorator
# 需要导入模块: from wagtail.core import hooks [as 别名]
# 或者: from wagtail.core.hooks import register [as 别名]
def register_decorator(self, model=None, **kwargs):
"""
Register a model as a setting in the Wagtail admin
"""
if model is None:
return lambda model: self.register(model, **kwargs)
return self.register(model, **kwargs)
示例12: setUpClass
# 需要导入模块: from wagtail.core import hooks [as 别名]
# 或者: from wagtail.core.hooks import register [as 别名]
def setUpClass(cls):
hooks.register('test_hook_name', test_hook)
示例13: register_errata_menu_item
# 需要导入模块: from wagtail.core import hooks [as 别名]
# 或者: from wagtail.core.hooks import register [as 别名]
def register_errata_menu_item():
return MenuItem('Errata', '/django-admin/errata/errata', classnames='icon icon-form', order=10000)
# @hooks.register('register_admin_menu_item')
# def register_errata_menu_item():
# return MenuItem('Errata (beta)', '/api/errata/admin/dashboard/', classnames='icon icon-form', order=10000)
示例14: register
# 需要导入模块: from wagtail.core import hooks [as 别名]
# 或者: from wagtail.core.hooks import register [as 别名]
def register(request):
return {
"url": reverse('wagtail_2fa_device_list', kwargs={'user_id': request.user.id}),
"label": _("Manage your 2FA devices"),
"help_text": _("Add or remove devices for 2 factor authentication."),
}
示例15: test_menus_modify_raw_menu_items
# 需要导入模块: from wagtail.core import hooks [as 别名]
# 或者: from wagtail.core.hooks import register [as 别名]
def test_menus_modify_raw_menu_items(self):
# NOTE: Positional args used to ensure supplied args remain consistent
@hooks.register('menus_modify_raw_menu_items')
def modify_menu_items(
menu_items, request, parent_context, parent_page, menu_instance,
original_menu_instance, menu_tag, original_menu_tag, current_level,
max_levels, current_site, current_page, current_section_root_page,
current_page_ancestor_ids, apply_active_classes,
allow_repeating_parents, use_absolute_page_urls
):
if original_menu_tag == 'section_menu' and current_level == 1:
"""
For the first level of section menus, add a copy of the first
page to the end of the list
"""
try:
menu_items.append(menu_items[0])
except KeyError:
pass
return menu_items
# Let's render the 'about us' page to see what happens!
response = self.client.get('/about-us/')
# unhook asap to prevent knock-on effects on failure
del hooks._hooks['menus_modify_raw_menu_items']
# If the the hook failed to receive any of the arguments defined
# on `modify_menu_items` above, there will be an error
self.assertEqual(response.status_code, 200)
# Test output reflects hook changes
soup = BeautifulSoup(response.content, 'html5lib')
section_menu_html = soup.find(id='section-menu-one-level').decode()
# 'Call us' is a page link, so should no longer appear
expected_html = """
<div id="section-menu-one-level">
<nav class="nav-section" role="navigation">
<a href="/about-us/" class="ancestor section_root">About us</a>
<ul>
<li class="active"><a href="/about-us/">Section home</a></li>
<li class=""><a href="/about-us/meet-the-team/">Meet the team</a></li>
<li class=""><a href="/about-us/our-heritage/">Our heritage</a></li>
<li class=""><a href="/about-us/mission-and-values/">Our mission and values</a></li>
<li class=""><a href="/about-us/meet-the-team/">Meet the team</a></li>
</ul>
</nav>
</div>
"""
self.assertHTMLEqual(section_menu_html, expected_html)