Added:
/trunk/pirate-politics/pirate_reputation/templatetags
/trunk/pirate-politics/pirate_reputation/templatetags/__init__.py
/trunk/pirate-politics/pirate_reputation/templatetags/reputationtags.py
=======================================
--- /dev/null
+++ /trunk/pirate-politics/pirate_reputation/templatetags/reputationtags.py
Wed Jan 26 16:01:25 2011
@@ -0,0 +1,47 @@
+from django import template
+from django import forms
+from django.http import HttpResponseRedirect
+import datetime
+from django.contrib.auth.models import User
+from django.contrib.contenttypes.models import ContentType
+from tagging.models import Tag, TaggedItem
+from pirate_reputation.models import ReputationManager, Reputation,
ReputationDimension
+from pirate_core import HttpRedirectException, namespace_get, FormMixin,
template_for_model
+
+from customtags.decorators import block_decorator
+register = template.Library()
+block = block_decorator(register)
+
+get_namespace = namespace_get('pp_reputation')
+
+@block
+def pp_get_reputation(context, nodelist, *args, **kwargs):
+ '''
+ This block tag can create or process forms to get tags.
+ Usage is as follows:
+
+ {% pp_get_reputation user=request.object %}
+ Do stuff with {{ pp_reputation.reputation }}.
+ {% endpp_get_reputation %}
+
+ '''
+
+ context.push()
+ namespace = get_namespace(context)
+
+ user = kwargs.get('user',None)
+
+ if user is not None and isinstance(user, User):
+ #get argument score
+ tot_score = 0
+ for dim in ReputationDimension.objects.all():
+ rep = Reputation.objects.get_user_score(user, dim)
+ try: tot_score+=rep.score
+ except: pass #rep does not yet exist
+ else: tot_score = 0
+
+ namespace['reputation'] = tot_score
+
+ output = nodelist.render(context)
+ context.pop()
+ return output