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
=====
Create a valuation type from admin site.   
Let us say: 
**Rating**

 - Excellent  5
 - Good       4
 - Average    3
 - Bad        2
 - Poor       1

or  

**LikeDislike**

 - Like       1
 - Dislike    0
 
 
**Available settings:**  

`DEFAULT_VALUATION_TYPE_ID`: The ID of default valuation type to be used in the project
Load the template tags: `{% load valuation %}`
 
**Available tags:**  

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

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

{% get_valuate ajax_fields of object for valuation_type as variable %}
---------------------------------------------------------------------
Get the fields as dictionary required for an ajax post request in the context
or directly.
Variables available:
For post request: 'content_type','object_pk', 'choice' (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.
'vtype'": the valuation type. 
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_valuate form of object for valuation_type as variable %}
--------------------------------------------------------------
Gets the valuation form in context or directly.
User `form_name.target` to access the target for the post request.

{% get_valuate score of object for valuation_type as variable %}
-----------------------------------------------------
The average score of the object using the corresponding values
of chioces.

{% get_valuate choice_count of object for_chioce choice_name for valuation_type as variable %}
----------------------------------------------------------------------------------------------
Returns the score count for a perticular choice of an object. Choice
should be provided with quotes (as string).

*The `for valuation_type` and `as variable` are optional arguments*

And Thats it!
