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