def page_listing_buttons(page, page_perms, is_parent=False, next_url=None): if page_perms.can_edit(): yield PageListingButton( _('Edit'), reverse('wagtailadmin_pages:edit', args=[page.id]), attrs={'aria-label': _("Edit '%(title)s'") % {'title': page.get_admin_display_title()}}, priority=10 ) if page.has_unpublished_changes and page.is_previewable(): yield PageListingButton( _('View draft'), reverse('wagtailadmin_pages:view_draft', args=[page.id]), attrs={ 'aria-label': _("Preview draft version of '%(title)s'") % {'title': page.get_admin_display_title()}, 'target': '_blank', 'rel': 'noopener noreferrer' }, priority=20 ) if page.live and page.url: yield PageListingButton( _('View live'), page.url, attrs={ 'target': "_blank", 'rel': 'noopener noreferrer', 'aria-label': _("View live version of '%(title)s'") % {'title': page.get_admin_display_title()}, }, priority=30 ) if page_perms.can_add_subpage(): if is_parent: yield Button( _('Add child page'), reverse('wagtailadmin_pages:add_subpage', args=[page.id]), attrs={ 'aria-label': _("Add a child page to '%(title)s' ") % {'title': page.get_admin_display_title()}, }, classes={'button', 'button-small', 'bicolor', 'icon', 'white', 'icon-plus'}, priority=40 ) else: yield PageListingButton( _('Add child page'), reverse('wagtailadmin_pages:add_subpage', args=[page.id]), attrs={'aria-label': _("Add a child page to '%(title)s' ") % {'title': page.get_admin_display_title()}}, priority=40 ) yield ButtonWithDropdownFromHook( _('More'), hook_name='register_page_listing_more_buttons', page=page, page_perms=page_perms, is_parent=is_parent, next_url=next_url, attrs={ 'target': '_blank', 'rel': 'noopener noreferrer', 'title': _("View more options for '%(title)s'") % {'title': page.get_admin_display_title()} }, priority=50 )
def joplin_page_listing_buttons(page, page_perms, is_parent=False): if page_perms.can_edit(): yield PageListingButton( _('Edit'), reverse('wagtailadmin_pages:edit', args=[page.id]), attrs={'title': _("Edit '{title}'").format( title=page.get_admin_display_title())}, priority=10 ) if page.has_unpublished_changes: try: yield PageListingButton( _('View draft'), page.janis_preview_url(), attrs={'title': _("Preview draft version of '{title}'").format( title=page.get_admin_display_title()), 'target': '_blank'}, priority=20 ) except Exception as e: raise e if page.live and page.url and hasattr(page, 'janis_url'): yield PageListingButton( _('View live'), page.janis_url(), attrs={'target': "_blank", 'title': _("View live version of '{title}'").format( title=page.get_admin_display_title())}, priority=30 ) # make the author notes icon appear if latest revision has notes latest_revision_as_page = page.get_latest_revision_as_page() if hasattr(latest_revision_as_page, 'author_notes') and latest_revision_as_page.author_notes: yield Button( _('📝'), 'javascript:null;', attrs={'title': _("Notes for authors entered"), 'class': 'has-author-notes'}, priority=70 ) yield ButtonWithDropdownFromHook( _('More'), hook_name='register_joplin_page_listing_more_buttons', page=page, page_perms=page_perms, is_parent=is_parent, attrs={'target': '_blank', 'title': _("View more options for '{title}'").format( title=page.get_admin_display_title())}, priority=50 )
def page_listing_variant_buttons(page, page_perms, is_parent=False): """Adds page listing buttons to personalisable pages. Shows variants for the page (if any) and a 'Create a new variant' button. """ if not isinstance(page, models.PersonalisablePageMixin): return metadata = page.personalisation_metadata if metadata.is_canonical: yield ButtonWithDropdownFromHook( _('Variants'), hook_name='register_page_listing_variant_buttons', page=page, page_perms=page_perms, is_parent=is_parent, attrs={'target': '_blank', 'title': _('Create or edit a variant')}, priority=100)
def page_listing_buttons(page, page_perms, is_parent=False, next_url=None): if page_perms.can_edit(): yield PageListingButton( _("Edit"), reverse("wagtailadmin_pages:edit", args=[page.id]), attrs={ "aria-label": _("Edit '%(title)s'") % { "title": page.get_admin_display_title() } }, priority=10, ) if page.has_unpublished_changes and page.is_previewable(): yield PageListingButton( _("View draft"), reverse("wagtailadmin_pages:view_draft", args=[page.id]), attrs={ "aria-label": _("Preview draft version of '%(title)s'") % { "title": page.get_admin_display_title() }, "rel": "noreferrer", }, priority=20, ) if page.live and page.url: yield PageListingButton( _("View live"), page.url, attrs={ "rel": "noreferrer", "aria-label": _("View live version of '%(title)s'") % { "title": page.get_admin_display_title() }, }, priority=30, ) if page_perms.can_add_subpage(): if is_parent: yield Button( _("Add child page"), reverse("wagtailadmin_pages:add_subpage", args=[page.id]), attrs={ "aria-label": _("Add a child page to '%(title)s' ") % { "title": page.get_admin_display_title() }, }, classes={ "button", "button-small", "bicolor", "icon", "white", "icon-plus", }, priority=40, ) else: yield PageListingButton( _("Add child page"), reverse("wagtailadmin_pages:add_subpage", args=[page.id]), attrs={ "aria-label": _("Add a child page to '%(title)s' ") % { "title": page.get_admin_display_title() } }, priority=40, ) yield ButtonWithDropdownFromHook( _("More"), hook_name="register_page_listing_more_buttons", page=page, page_perms=page_perms, is_parent=is_parent, next_url=next_url, attrs={ "target": "_blank", "rel": "noreferrer", "title": _("View more options for '%(title)s'") % { "title": page.get_admin_display_title() }, }, priority=50, )
def joplin_page_listing_buttons(page, page_perms, is_parent=False): if page_perms.can_edit(): yield PageListingButton(_('Edit'), reverse('wagtailadmin_pages:edit', args=[page.id]), attrs={ 'title': _("Edit '{title}'").format( title=page.get_admin_display_title()) }, priority=10) if page.has_unpublished_changes: yield PageListingButton( _('View draft'), page.janis_preview_url(), attrs={ 'title': _("Preview draft version of '{title}'").format( title=page.get_admin_display_title()), 'target': '_blank' }, priority=20) if page.live and page.url and hasattr(page, 'janis_url'): yield PageListingButton(_('View live'), page.janis_url(), attrs={ 'target': "_blank", 'title': _("View live version of '{title}'").format( title=page.get_admin_display_title()) }, priority=30) # This is kinda hacky but it should let us know when we have notes on a revision latest_revision = None all_revisions = PageRevision.objects.filter(page_id=page.id) for revision in all_revisions: if revision.is_latest_revision(): latest_revision = revision if latest_revision: author_notes = latest_revision.as_page_object().author_notes # Following this: https://docs.python.org/3/library/html.parser.html#examples parser = CheckForDataInHTMLParser() parser.feed(author_notes) if parser.has_data: yield Button( _('📝'), 'javascript:alert("Wouldn\'t it be cool if this linked to the notes?");', attrs={ 'title': _("Notes for authors entered"), 'class': 'has-author-notes' }, priority=70) yield ButtonWithDropdownFromHook( _('More'), hook_name='register_joplin_page_listing_more_buttons', page=page, page_perms=page_perms, is_parent=is_parent, attrs={ 'target': '_blank', 'title': _("View more options for '{title}'").format( title=page.get_admin_display_title()) }, priority=50)