示例#1
0
    def render_revision_form(self, request, obj, version, context, revert=False, recover=False):
        # reset parent to null if parent is not found
        if version.field_dict['parent']: 
            try:
                Page.objects.get(pk=version.field_dict['parent'])
            except:
                if revert and obj.parent_id != int(version.field_dict['parent']):
                    version.field_dict['parent'] = obj.parent_id
                if recover:
                    obj.parent = None
                    obj.parent_id = None
                    version.field_dict['parent'] = None

        response = super(PageAdmin, self).render_revision_form(request, obj, version, context, revert, recover)
        if request.method == "POST" \
            and ('history' in request.path or 'recover' in request.path) \
            and response.status_code == 302:
            obj.pagemoderatorstate_set.all().delete()
            if settings.CMS_MODERATOR:
                from cms.utils.moderator import page_changed
                page_changed(obj, force_moderation_action=PageModeratorState.ACTION_CHANGED)
                
            # revert plugins
            revert_plugins(request, version.pk, obj)
        return response
示例#2
0
    def move_page(self, target, position='first-child'):
        """
        Called from admin interface when page is moved. Should be used on
        all the places which are changing page position. Used like an interface
        to mptt, but after move is done page_moved signal is fired.

        Note for issue #1166: url conflicts are handled by updated
        check_title_slugs, overwrite_url on the moved page don't need any check
        as it remains the same regardless of the page position in the tree
        """
        # make sure move_page does not break when using INHERIT template
        # and moving to a top level position
        if (position in ('left', 'right')
            and not target.parent
            and self.template == constants.TEMPLATE_INHERITANCE_MAGIC):
            self.template = self.get_template()
        self.move_to(target, position)

        # fire signal
        from cms.models.moderatormodels import PageModeratorState
        from cms.utils import moderator
        import cms.signals as cms_signals
        cms_signals.page_moved.send(sender=Page, instance=self)  # titles get saved before moderation
        self.save()  # always save the page after move, because of publisher
        moderator.page_changed(self, force_moderation_action=PageModeratorState.ACTION_MOVE)
        # check the slugs
        page_utils.check_title_slugs(self)
示例#3
0
def post_save_page_moderator(instance, raw, created, **kwargs):
    """Helper post save signal.
    """
    old_page = instance.old_page

    # tell moderator something was happen with this page
    from cms.utils.moderator import page_changed
    if not old_page:
        page_changed(instance, old_page)
示例#4
0
def post_save_page(instance, raw, created, **kwargs):
    """Helper post save signal, cleans old_page attribute.
    """
    old_page = instance.old_page
    del (instance.old_page)

    if cms_settings.CMS_MODERATOR:
        # tell moderator something was happen with this page
        page_changed(instance, old_page)
示例#5
0
def post_save_page_moderator(instance, raw, created, **kwargs):
    """Helper post save signal.
    """
    old_page = instance.old_page

    # tell moderator something was happen with this page
    from cms.utils.moderator import page_changed
    if not old_page:
        page_changed(instance, old_page)
示例#6
0
def post_save_page(instance, raw, created, **kwargs):   
    """Helper post save signal, cleans old_page attribute.
    """
    old_page = instance.old_page
    del(instance.old_page)
    
    if settings.CMS_MODERATOR:
        # tell moderator something was happen with this page
        page_changed(instance, old_page)
示例#7
0
    def render_revision_form(self,
                             request,
                             obj,
                             version,
                             context,
                             revert=False,
                             recover=False):
        # reset parent to null if parent is not found
        if version.field_dict['parent']:
            try:
                Page.objects.get(pk=version.field_dict['parent'])
            except:
                if revert and obj.parent_id != int(
                        version.field_dict['parent']):
                    version.field_dict['parent'] = obj.parent_id
                if recover:
                    obj.parent = None
                    obj.parent_id = None
                    version.field_dict['parent'] = None

        response = super(PageAdmin,
                         self).render_revision_form(request, obj, version,
                                                    context, revert, recover)
        if request.method == "POST" \
            and ('history' in request.path or 'recover' in request.path) \
            and response.status_code == 302:
            obj.pagemoderatorstate_set.all().delete()
            if settings.CMS_MODERATOR:
                from cms.utils.moderator import page_changed
                page_changed(
                    obj,
                    force_moderation_action=PageModeratorState.ACTION_CHANGED)

            # revert plugins
            revert_plugins(request, version.pk, obj)
        return response