def delete_thank(sender, instance, **kwargs): """ Undo the updates when the thank was created. """ try: instance.review except ObjectDoesNotExist: return False signalAPI.remove_karma_action( recipient_id=instance.review.user_id, giver_id=instance.giver_id, karma=1, time_range=(instance.created_at, instance.created_at + dt.timedelta(hours=1))) signalAPI.update_statistics(model_name="userstatistics", obj_id=instance.giver_id, thanks_out=-1) signalAPI.update_statistics(model_name="userstatistics", obj_id=instance.review.user_id, thanks_in=-1, karma=-1) signalAPI.update_statistics(model_name="review", obj_id=instance.review_id, thanks=-1) signalAPI.update_statistics(model_name="popularity", obj_id=instance.review.item_id, **utils.decrement_popularities( instance.created_at, instance.review.rating))
def delete_agree(sender, instance, **kwargs): """ Undo the updates when the agree was created. """ try: instance.review except ObjectDoesNotExist: return False signalAPI.remove_activity(sender_id=instance.giver_id, verb="re-raved", model_name="review", obj_id=instance.review_id) signalAPI.remove_karma_action( recipient_id=instance.review.user_id, giver_id=instance.giver_id, karma=2, time_range=(instance.created_at, instance.created_at + dt.timedelta(hours=1))) signalAPI.remove_karma_action( recipient_id=instance.giver_id, giver_id=instance.giver_id, karma=1, time_range=(instance.created_at, instance.created_at + dt.timedelta(hours=1))) signalAPI.update_statistics(model_name="userstatistics", obj_id=instance.giver_id, agrees_out=-1, karma=-1) signalAPI.update_statistics(model_name="userstatistics", obj_id=instance.review.user_id, agrees_in=-1, karma=-2) signalAPI.update_statistics(model_name="review", obj_id=instance.review_id, agrees=-1) signalAPI.update_statistics(model_name="popularity", obj_id=instance.review.item_id, **utils.decrement_popularities( instance.created_at, instance.review.rating)) reviews = signalAPI.filter_then_count(model_name="review", user=instance.giver_id, item=instance.review.item_id) if reviews == 0: remaining = signalAPI.filter_then_order_by( model_name="agree", order_criteria="-created_at", giver=instance.giver_id, review__item=instance.review.item_id) if (not remaining or remaining[0].created_at < instance.created_at): old_rating = utils.get_rating_field(instance.review.rating) signalAPI.update_statistics(model_name="item", obj_id=instance.review.item_id, **{old_rating: -1}) if remaining: new_rating = utils.get_rating_field(remaining[0].review.rating) signalAPI.update_statistics(model_name="item", obj_id=instance.review.item_id, **{new_rating: 1})
def delete_thank(sender, instance, **kwargs): """ Undo the updates when the thank was created. """ try: instance.review except ObjectDoesNotExist: return False signalAPI.remove_karma_action( recipient_id=instance.review.user_id, giver_id=instance.giver_id, karma=1, time_range=(instance.created_at, instance.created_at+dt.timedelta(hours=1)) ) signalAPI.update_statistics( model_name="userstatistics", obj_id=instance.giver_id, thanks_out=-1 ) signalAPI.update_statistics( model_name="userstatistics", obj_id=instance.review.user_id, thanks_in=-1, karma=-1 ) signalAPI.update_statistics( model_name="review", obj_id=instance.review_id, thanks=-1 ) signalAPI.update_statistics( model_name="popularity", obj_id=instance.review.item_id, **utils.decrement_popularities(instance.created_at, instance.review.rating) )
def delete_agree(sender, instance, **kwargs): """ Undo the updates when the agree was created. """ try: instance.review except ObjectDoesNotExist: return False signalAPI.remove_activity( sender_id=instance.giver_id, verb="re-raved", model_name="review", obj_id=instance.review_id ) signalAPI.remove_karma_action( recipient_id=instance.review.user_id, giver_id=instance.giver_id, karma=2, time_range=(instance.created_at, instance.created_at+dt.timedelta(hours=1)) ) signalAPI.remove_karma_action( recipient_id=instance.giver_id, giver_id=instance.giver_id, karma=1, time_range=(instance.created_at, instance.created_at+dt.timedelta(hours=1)) ) signalAPI.update_statistics( model_name="userstatistics", obj_id=instance.giver_id, agrees_out=-1, karma=-1 ) signalAPI.update_statistics( model_name="userstatistics", obj_id=instance.review.user_id, agrees_in=-1, karma=-2 ) signalAPI.update_statistics( model_name="review", obj_id=instance.review_id, agrees=-1 ) signalAPI.update_statistics( model_name="popularity", obj_id=instance.review.item_id, **utils.decrement_popularities(instance.created_at, instance.review.rating) ) reviews = signalAPI.filter_then_count( model_name="review", user=instance.giver_id, item=instance.review.item_id ) if reviews == 0: remaining = signalAPI.filter_then_order_by( model_name="agree", order_criteria="-created_at", giver=instance.giver_id, review__item=instance.review.item_id ) if (not remaining or remaining[0].created_at < instance.created_at): old_rating = utils.get_rating_field(instance.review.rating) signalAPI.update_statistics( model_name="item", obj_id=instance.review.item_id, **{ old_rating: -1 } ) if remaining: new_rating = utils.get_rating_field( remaining[0].review.rating) signalAPI.update_statistics( model_name="item", obj_id=instance.review.item_id, **{ new_rating: 1 } )