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
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)
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)
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)
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)
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