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
============

 - Use django-dev/django 1.3 beta versions
 - 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:**  

`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_valuation_form object 'for_valuation_type' %}  
------------------------------------------------------
Renders the valuation form for the provided object.  
Override template: 'valuate/form.html' for modifying the look.

{% render_valuation_status object 'for_valuation_type' %}  
---------------------------------------------------------
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' 'for_valuation_type' %}
---------------------------------------------------------------------
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' 'for_valuation_type' %}
--------------------------------------------------------------
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 'for_valuation_type' %}
-----------------------------------------------------
Returns the average score of the object using the corresponding values
of chioces.

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

Example
=======
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
 
If you have an object `post` to be associated a valuation (Let us say Rating)
In the template: 

 - Render the form: `{% render_valuation_form  post 'Rating' %}`
 - Get Score: `{% get_valuation_score post 'Rating' %}`

And Thats it!
