Rateable Plugin

  • Tags: rating
  • Latest: 0.7.1
  • Last Updated: 10 January 2012
  • Grails version: 1.2 > *
13 votes
Dependency:
compile ":rateable:0.7.1"
Custom repositories:
mavenRepo "http://localhost:8081/artifactory/plugins-releases-local/"

 Documentation  Source  Issues

Summary

A plugin that adds a generic mechanism for rating domain objects.

Description

Rateable Plugin

This plugin provides allows ratings to be attached to domain objects, as well as a 5-star rating component with ajax update.

Requirements

  • Grails Version: 1.1 and above
  • JDK: 1.5 and above
  • YUI 2.6.1

Installation

grails install-plugin rateable

Usage

Implement the Rateable interface:

import org.grails.rateable.*

class Vehicle implements Rateable { }

On your page load the rateable resources:

<rateable:resources/>

Include a tag to allow users to rate:

<rateable:ratings bean='${myVehicle}'/>

Like the Commentable Plugin, to use you may need to define a rater evaluator in grails-app/conf/Config.groovy. The default one looks like:

grails.rateable.rater.evaluator = { request.user }

But if you store users in the session instead you may want this to be:

grails.rateable.rater.evaluatorr = { session.user }

The plugin also adds some useful static methods and properties to each Rateable as defined below:

Static Methods
  • listOrderByAverageRating - lists all rated items by their average rating. Takes an optional Map parameter for pagination
  • countRated - Counts the number of rated items, good for pagination in combination with the above method.
Properties
  • ratings - Returns all the ratings for a given Rateable
  • averageRating - Returns the average rating of all the ratings
  • totalRatings - Returns the total number of ratings given to the Rateable
Methods
  • rate(user, Double rating) - Rates a Rateable for the given user and specified rating
  • userRating(user) - Returns the rating for the specified user