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 tool_shed.webapp.util.ratings_util

import logging

from galaxy.model.base import transaction
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) with transaction(trans.sa_session): trans.sa_session.commit() 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) with transaction(trans.sa_session): trans.sa_session.commit() return item_rating