示例#1
0
def update_ratings(item_id):
    # itemiin liittyvät muuttujat
    item = Item.get_by_id(item_id=item_id)
    ratings = Rating.get_by_item(item_id=item_id)
    i_rating = 0.0
    r = 0
    # useriin liittyvät muuttujat
    user = User.get_by_id(id=item.user_id)
    user_items = Item.get_all_by_user(user_id=item.user_id)
    u_rating = 0.0
    ru = 0

    # lasketaan itemin ratingien keskiarvo
    for rating in ratings:
        r = r + 1
        i_rating = i_rating + rating.__dict__["rating"]

    i_rating_dict = {"rating": i_rating / r}
    item.rating = i_rating_dict.get("rating")

    # lasketaan userin kaikkien itemien ratingien keskiarvo
    for rating in user_items:
        if rating.__dict__["rating"] is None:
            continue
        ru = ru + 1
        u_rating = u_rating + rating.__dict__["rating"]

    u_rating_dict = {"rating": u_rating / ru}
    user.rating = u_rating_dict.get("rating")

    # tallennetaan muutokset
    item.save()
    user.save()
示例#2
0
 def get(self, item_id):
     item = Item.get_by_id(item_id=item_id)
     if item is None:
         return item_not_found()
     ratings = Rating.get_by_item(item_id=item.id)
     return rating_list_schema.dump(ratings).data, HTTPStatus.OK