Valuate
=======
A portable application to easily associate a user valuation (rating, like etc) 
to any object, just on the basis of template tags. No configuration of existing 
models and views required. 


Installation
============

 - Run `python setup.py install`
 - Include 'valuate' in your installed apps settings. 
 - Add `(r'^valuate/', include('valuate.urls'))` to your main urls.py. 
 - Ensure you have request context preprocessor added in the list of preprocessors
   or pass request varible context to views. 
   
   
Usage
=====

**Available settings:**  

`VALUATION_NAME`: Name for the type of valuation, will be visible in forms. 
Eg: rating,like etc.  

`VALUATION_CHOICES`: A list of choices which will be used as the choice set for users.  
Each choice will be assigned an integer value, going from low to high.   
Eg: `['low', 'medium', 'high']` => `((1, 'low'), (2, 'medium'), (3, 'high'))`


`VALUATION_TEMPLATE`: Name of a predefined template.  
Currently available: rating, like.  

Load the template tags: `{% load valuation %}`
 
**Available tags:**  

{% render_valuation_form object %}  
----------------------------------
Renders the valuation form for the provided object.  
Override template: 'valuate/form.html' for modifying the look.

{% render_valuation_status object %}  
------------------------------------
Renders the status according to the score of various choices.   
Override template: 'valuate/status.html' for modifying the look.

{% get_valuation_ajax_fields object 'as_name' %}
----------------------------------------------
Adds the fields as dictionary required for an ajax post request to
the context with variable name `as_var` provided as a string.   
Variables available:   
For post request: 'content_type','object_pk', 'value' (to be selected
by user, can have an initial value if user has already submitted once)
'choices': dictionary of choices for user to provide the 'value' data.  
'target': target for the request.   
On a successfull request, true will be retuned.   
If you are not using a popular javascript liberary, pass on a POST
variable with name `ajax` and a `true` value.

{% get_valuation_form object 'as_name' %}
---------------------------------------
Adds the valuation form to the context with variable name as_var
provided as a string.  
User `form_name.target` to access the target for the post request.


{% get_valuation_score object %}
--------------------------------
Returns the average score of the object using the corresponding values
of chioces.

{% get_choice_count object 'choice' %}
--------------------------------------
Returns the score count for a perticular choice of an object. Choice
should be provided with quotes (as string).


