Warning
This document is for an in-development version 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 tool_shed.webapp.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