Warning
This document is for an old release of Galaxy. You can alternatively view this page in the latest release if it exists or view the top of the latest release's documentation.
Source code for galaxy.webapps.tool_shed.util.ratings_util
import logging
from galaxy.model.item_attrs import UsesItemRatings
log = logging.getLogger(__name__)
[docs]class ItemRatings(UsesItemRatings):
"""Overrides rate_item method since we also allow for comments"""
[docs] def rate_item(self, trans, user, item, rating, comment=''):
""" Rate an item. Return type is <item_class>RatingAssociation. """
item_rating = self.get_user_item_rating(trans.sa_session, user, item, webapp_model=trans.model)
if not item_rating:
# User has not yet rated item; create rating.
item_rating_assoc_class = self._get_item_rating_assoc_class(item, webapp_model=trans.model)
item_rating = item_rating_assoc_class()
item_rating.user = trans.user
item_rating.set_item(item)
item_rating.rating = rating
item_rating.comment = comment
trans.sa_session.add(item_rating)
trans.sa_session.flush()
elif item_rating.rating != rating or item_rating.comment != comment:
# User has previously rated item; update rating.
item_rating.rating = rating
item_rating.comment = comment
trans.sa_session.add(item_rating)
trans.sa_session.flush()
return item_rating