コード例 #1
0
def create_thank(sender, instance, created, **kwargs):
    """
    Create a notification for the writer of the review.
    Create a karma action for the agree.
    Increment the giver's thanks by one and karma by one.
    Increment the receiver's thanks by one and karma by two.
    """
    if created:
        signalAPI.queue_notification(sender_id=instance.giver_id,
                                     recipient_id=instance.review.user_id,
                                     model_name="thank",
                                     obj_id=instance.pk)
        signalAPI.add_karma_action(recipient_id=instance.review.user_id,
                                   giver_id=instance.giver_id,
                                   karma=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,
                                    today=instance.review.rating,
                                    week=instance.review.rating,
                                    month=instance.review.rating,
                                    alltime=instance.review.rating)
コード例 #2
0
def create_agree(sender, instance, created, **kwargs):
    """
    Creates a notification for the writer of the review.
    Create two karma actions for the agree.
    Increment the giver's agrees by one and karma by one.
    Increment the receiver's agrees by one and karma by two.
    Increment the item's rating count by one.
    """
    if created:
        signalAPI.queue_activity(sender_id=instance.giver_id,
                                 verb="re-raved",
                                 model_name="review",
                                 obj_id=instance.review_id)
        signalAPI.queue_notification(sender_id=instance.giver_id,
                                     recipient_id=instance.review.user_id,
                                     model_name="agree",
                                     obj_id=instance.pk)
        signalAPI.add_karma_action(recipient_id=instance.review.user_id,
                                   giver_id=instance.giver_id,
                                   karma=2)
        signalAPI.add_karma_action(recipient_id=instance.giver_id,
                                   giver_id=instance.giver_id,
                                   karma=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,
                                    today=instance.review.rating,
                                    week=instance.review.rating,
                                    month=instance.review.rating,
                                    alltime=instance.review.rating)
        reviews = signalAPI.filter_then_count(model_name="review",
                                              user=instance.giver_id,
                                              item=instance.review.item_id)
        if reviews == 0:
            rating = utils.get_rating_field(instance.review.rating)
            signalAPI.update_statistics(model_name="item",
                                        obj_id=instance.review.item_id,
                                        **{rating: 1})
            old_agrees = signalAPI.filter_excluding_me_then_order_by(
                model_name="agree",
                obj_id=instance.pk,
                order_criteria="-created_at",
                giver=instance.giver_id,
                review__item=instance.review.item_id)
            if old_agrees:
                rating = utils.get_rating_field(old_agrees[0].review.rating)
                signalAPI.update_statistics(model_name="item",
                                            obj_id=instance.review.item_id,
                                            **{rating: -1})
コード例 #3
0
ファイル: models.py プロジェクト: dennisai/mavenize-beta
def create_review(sender, instance, created, **kwargs):
    """
    Queue an activity for the review.
    Create a karma action for the review.
    Increment the user's reviews by one and karma by five.
    Update the item's ratings by the review's rating.
    Update the item's popularity by the review's rating.
    """
    if created:
        signalAPI.queue_activity(
            sender_id=instance.user_id, 
            verb="raved about",
            model_name="review",
            obj_id=instance.pk
        )
        signalAPI.add_karma_action(
            recipient_id=instance.user_id,
            giver_id=instance.user_id,
            karma=5
        )
        signalAPI.update_statistics(
            model_name="userstatistics",
            obj_id=instance.user_id,
            reviews=1,
            karma=5
        )
        rating = utils.get_rating_field(instance.rating)
        signalAPI.update_statistics(
            model_name="item",
            obj_id=instance.item_id,
            **{ rating: 1, 'reviews': 1 }
        )
        signalAPI.update_statistics(
            model_name="popularity",
            obj_id=instance.item_id,
            today=instance.rating,
            week=instance.rating,
            month=instance.rating,
            alltime=instance.rating
        )
        agrees = signalAPI.filter_then_order_by(
            model_name="agree",
            order_criteria="-created_at",
            giver=instance.user_id,
            review__item=instance.item_id
        )
        if agrees:
            rating = utils.get_rating_field(agrees[0].review.rating)
            signalAPI.update_statistics(
                model_name="item",
                obj_id=instance.item_id,
                **{ rating: -1}
            )
コード例 #4
0
ファイル: models.py プロジェクト: dennisai/mavenize-beta
def create_thank(sender, instance, created, **kwargs):
    """
    Create a notification for the writer of the review.
    Create a karma action for the agree.
    Increment the giver's thanks by one and karma by one.
    Increment the receiver's thanks by one and karma by two.
    """
    if created:
        signalAPI.queue_notification(
            sender_id=instance.giver_id,
            recipient_id=instance.review.user_id,
            model_name="thank",
            obj_id=instance.pk
        )
        signalAPI.add_karma_action(
            recipient_id=instance.review.user_id,
            giver_id=instance.giver_id,
            karma=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,
            today=instance.review.rating,
            week=instance.review.rating,
            month=instance.review.rating,
            alltime=instance.review.rating
        )
コード例 #5
0
def create_review(sender, instance, created, **kwargs):
    """
    Queue an activity for the review.
    Create a karma action for the review.
    Increment the user's reviews by one and karma by five.
    Update the item's ratings by the review's rating.
    Update the item's popularity by the review's rating.
    """
    if created:
        signalAPI.queue_activity(sender_id=instance.user_id,
                                 verb="raved about",
                                 model_name="review",
                                 obj_id=instance.pk)
        signalAPI.add_karma_action(recipient_id=instance.user_id,
                                   giver_id=instance.user_id,
                                   karma=5)
        signalAPI.update_statistics(model_name="userstatistics",
                                    obj_id=instance.user_id,
                                    reviews=1,
                                    karma=5)
        rating = utils.get_rating_field(instance.rating)
        signalAPI.update_statistics(model_name="item",
                                    obj_id=instance.item_id,
                                    **{
                                        rating: 1,
                                        'reviews': 1
                                    })
        signalAPI.update_statistics(model_name="popularity",
                                    obj_id=instance.item_id,
                                    today=instance.rating,
                                    week=instance.rating,
                                    month=instance.rating,
                                    alltime=instance.rating)
        agrees = signalAPI.filter_then_order_by(model_name="agree",
                                                order_criteria="-created_at",
                                                giver=instance.user_id,
                                                review__item=instance.item_id)
        if agrees:
            rating = utils.get_rating_field(agrees[0].review.rating)
            signalAPI.update_statistics(model_name="item",
                                        obj_id=instance.item_id,
                                        **{rating: -1})
コード例 #6
0
ファイル: models.py プロジェクト: dennisai/mavenize-beta
def create_agree(sender, instance, created, **kwargs):
    """
    Creates a notification for the writer of the review.
    Create two karma actions for the agree.
    Increment the giver's agrees by one and karma by one.
    Increment the receiver's agrees by one and karma by two.
    Increment the item's rating count by one.
    """
    if created:
        signalAPI.queue_activity(
            sender_id=instance.giver_id,
            verb="re-raved",
            model_name="review",
            obj_id=instance.review_id
        )
        signalAPI.queue_notification(
            sender_id=instance.giver_id,
            recipient_id=instance.review.user_id,
            model_name="agree",
            obj_id=instance.pk
        )
        signalAPI.add_karma_action(
            recipient_id=instance.review.user_id,
            giver_id=instance.giver_id,
            karma=2
        )
        signalAPI.add_karma_action(
            recipient_id=instance.giver_id,
            giver_id=instance.giver_id,
            karma=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,
            today=instance.review.rating,
            week=instance.review.rating,
            month=instance.review.rating,
            alltime=instance.review.rating
        )
        reviews = signalAPI.filter_then_count(
            model_name="review",
            user=instance.giver_id,
            item=instance.review.item_id
        )
        if reviews == 0:
            rating = utils.get_rating_field(instance.review.rating)
            signalAPI.update_statistics(
                model_name="item",
                obj_id=instance.review.item_id,
                **{ rating: 1}
            )
            old_agrees = signalAPI.filter_excluding_me_then_order_by(
                model_name="agree",
                obj_id=instance.pk,
                order_criteria="-created_at",
                giver=instance.giver_id,
                review__item=instance.review.item_id
            )
            if old_agrees:
                rating = utils.get_rating_field(
                                old_agrees[0].review.rating)
                signalAPI.update_statistics(
                    model_name="item",
                    obj_id=instance.review.item_id,
                    **{ rating: -1 }
                )