예제 #1
0
def page_listing_more_buttons(page, page_perms, is_parent=False):
    if page_perms.can_move():
        yield Button(_('Move'),
                     reverse('wagtailadmin_pages:move', args=[page.id]),
                     attrs={"title": _('Move this page')},
                     priority=10)
    if not page.is_root():
        yield Button(_('Copy'),
                     reverse('wagtailadmin_pages:copy', args=[page.id]),
                     attrs={'title': _('Copy this page')},
                     priority=20)
    if page_perms.can_delete():
        yield Button(_('Delete'),
                     reverse('wagtailadmin_pages:delete', args=[page.id]),
                     attrs={'title': _('Delete this page')},
                     priority=30)
    if page_perms.can_unpublish():
        yield Button(_('Unpublish'),
                     reverse('wagtailadmin_pages:unpublish', args=[page.id]),
                     attrs={'title': _('Unpublish this page')},
                     priority=40)
    yield Button(_('Revisions'),
                 reverse('wagtailadmin_pages:revisions_index', args=[page.id]),
                 attrs={'title': _("View this page's revision history")},
                 priority=50)
def page_listing_more_buttons(page, page_perms, is_parent=False):
    """Adds a 'more' button to personalisable pages allowing users to quickly
    create a new variant for the selected segment.

    """
    if not isinstance(page, models.PersonalisablePageMixin):
        return

    metadata = page.personalisation_metadata

    for vm in metadata.variants_metadata:
        yield Button('%s variant' % (vm.segment.name),
                     reverse('wagtailadmin_pages:edit', args=[vm.variant_id]),
                     attrs={"title": _('Edit this variant')},
                     classes=("icon", "icon-fa-pencil"),
                     priority=0)

    for segment in metadata.get_unused_segments():
        yield Button('%s variant' % (segment.name),
                     reverse('segment:copy_page', args=[page.pk, segment.pk]),
                     attrs={"title": _('Create this variant')},
                     classes=("icon", "icon-fa-plus"),
                     priority=100)

    yield Button(_('Create a new segment'),
                 reverse('wagtail_personalisation_segment_modeladmin_create'),
                 attrs={"title": _('Create a new segment')},
                 classes=("icon", "icon-fa-snowflake-o"),
                 priority=200)
예제 #3
0
def page_listing_more_buttons(page, page_perms, is_parent=False):
    if page_perms.can_move():
        yield Button(_('Move'), reverse('wagtailadmin_pages:move', args=[page.id]), priority=10)
    if not page.is_root():
        yield Button(_('Copy'), reverse('wagtailadmin_pages:copy', args=[page.id]), priority=20)
    if page_perms.can_delete():
        yield Button(_('Delete'), reverse('wagtailadmin_pages:delete', args=[page.id]), priority=30)
    if page_perms.can_unpublish():
        yield Button(_('Unpublish'), reverse('wagtailadmin_pages:unpublish', args=[page.id]), priority=40)
예제 #4
0
def 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 this page')},
                                priority=10)
    if page.has_unpublished_changes:
        yield PageListingButton(_('Draft'),
                                reverse('wagtailadmin_pages:view_draft',
                                        args=[page.id]),
                                attrs={
                                    'title': _('Preview draft'),
                                    'target': '_blank'
                                },
                                priority=20)
    if page.live and page.url:
        yield PageListingButton(_('Live'),
                                page.url,
                                attrs={
                                    'target': "_blank",
                                    'title': _('View live')
                                },
                                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={
                             'title':
                             _("Add a child page to '{0}' ".format(page.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={
                                        'title':
                                        _("Add a child page to '{0}' ".format(
                                            page.title))
                                    },
                                    priority=40)

    yield ButtonWithDropdownFromHook(
        _('More'),
        hook_name='register_page_listing_more_buttons',
        page=page,
        page_perms=page_perms,
        is_parent=is_parent,
        attrs={
            'target': '_blank',
            'title': _('View more options')
        },
        priority=50)
예제 #5
0
def page_listing_more_buttons(page, page_perms, is_parent=False):
    if page_perms.can_move():
        yield Button(_('Move'),
                     reverse('wagtailadmin_pages:move', args=[page.id]),
                     attrs={
                         "title":
                         _("Move page '{title}'").format(
                             title=page.get_admin_display_title())
                     },
                     priority=10)
    if not page.is_root():
        yield Button(_('Copy'),
                     reverse('wagtailadmin_pages:copy', args=[page.id]),
                     attrs={
                         'title':
                         _("Copy page '{title}'").format(
                             title=page.get_admin_display_title())
                     },
                     priority=20)
    if page_perms.can_delete():
        yield Button(_('Delete'),
                     reverse('wagtailadmin_pages:delete', args=[page.id]),
                     attrs={
                         'title':
                         _("Delete page '{title}'").format(
                             title=page.get_admin_display_title())
                     },
                     priority=30)
    if page_perms.can_unpublish():
        yield Button(_('Unpublish'),
                     reverse('wagtailadmin_pages:unpublish', args=[page.id]),
                     attrs={
                         'title':
                         _("Unpublish page '{title}'").format(
                             title=page.get_admin_display_title())
                     },
                     priority=40)
    if not page.is_root():
        yield Button(_('Revisions'),
                     reverse('wagtailadmin_pages:revisions_index',
                             args=[page.id]),
                     attrs={
                         'title':
                         _("View revision history for '{title}'").format(
                             title=page.get_admin_display_title())
                     },
                     priority=50)
def page_listing_more_buttons(page, page_perms, is_parent=False):
    """Adds a 'more' button to personalisable pages allowing users to quickly
    create a new variant for the selected segment.

    """
    for segment in page.get_unused_segments():
        yield Button(segment.name,
                     reverse('segment:copy_page', args=[page.pk, segment.pk]),
                     attrs={"title": _('Create this variant')})
예제 #7
0
def page_listing_more_buttons(page, page_perms, is_parent=False):
    """Adds a 'more' button to personalisable pages allowing users to quickly
    create a new variant for the selected segment.

    """
    segments = Segment.objects.all()
    available_segments = [
        item for item in segments
        if not PersonalisablePage.objects.filter(segment=item, pk=page.pk)
    ]

    for segment in available_segments:
        yield Button(segment.name,
                     reverse('segment:copy_page', args=[page.id, segment.id]),
                     attrs={"title": _('Create this variant')})