示例#1
0
    def test_is_not_equal_instance_should_be_false(self):
        moderated_object = ModeratedObject(content_object=self.profile)
        moderated_object.save()

        value = moderated_object._is_not_equal_instance(self.profile)

        self.assertEqual(value, False)
示例#2
0
    def test_is_not_equal_instance_should_be_true(self):
        self.profile.description = 'New description'

        moderated_object = ModeratedObject(content_object=self.profile)
        moderated_object.save()

        user_profile = UserProfile.objects.get(user__username='******')

        value = moderated_object._is_not_equal_instance(user_profile)

        self.assertEqual(value, True)
示例#3
0
    def post_save_handler(self, sender, instance, **kwargs):
        """
        Creates new moderation object if instance is created,
        If instance exists and is only updated then save instance as
        content_object of moderated_object
        """
        #check if object was loaded from fixture, bypass moderation if so

        if kwargs['raw']:
            return
        
        pk = instance.pk
        moderator = self.get_moderator(sender)

        if kwargs['created']:
            old_object = sender._default_manager.get(pk=pk)
            moderated_obj = ModeratedObject(content_object=old_object)
            moderated_obj.save()
            moderator.inform_moderator(instance)
        else:
            
            moderated_obj \
             = ModeratedObject.objects.get_for_instance(instance)
             
            if moderated_obj.moderation_status == MODERATION_STATUS_APPROVED\
               and moderator.bypass_moderation_after_approval:
                return

            if moderated_obj._is_not_equal_instance(instance):
                copied_instance = self._copy_model_instance(instance)
                # save instance with data from changed_object
                moderated_obj.changed_object.save_base(raw=True)

                # save new data in moderated object
                moderated_obj.changed_object = copied_instance

                moderated_obj.moderation_status = MODERATION_STATUS_PENDING
                moderated_obj.save()
                moderator.inform_moderator(instance)