]> git.openstreetmap.org Git - osqa.git/blobdiff - forum/models/action.py
Merge pull request #26 from udacity/remove_dj_version
[osqa.git] / forum / models / action.py
index 58ec7d55f145b90331128d86f66909c2f9ffebf9..b3cfd260f33ef8d147e6214245da998f3ac9bd58 100644 (file)
@@ -1,4 +1,6 @@
 from django.utils.translation import ugettext as _
+from django.utils.encoding import smart_unicode
+
 from utils import PickledObjectField
 from threading import Thread
 from forum.utils import html
@@ -26,7 +28,7 @@ class ActionQuerySet(CachedQuerySet):
 class ActionManager(CachedManager):
     use_for_related_fields = True
 
-    def get_query_set(self):
+    def get_queryset(self):
         qs = ActionQuerySet(self.model)
 
         if self.model is not Action:
@@ -42,9 +44,9 @@ class ActionManager(CachedManager):
 class Action(BaseModel):
     user = models.ForeignKey('User', related_name="actions")
     real_user = models.ForeignKey('User', related_name="proxied_actions", null=True)
-    ip   = models.CharField(max_length=16)
+    ip   = models.CharField(max_length=39)
     node = models.ForeignKey('Node', null=True, related_name="actions")
-    action_type = models.CharField(max_length=16)
+    action_type = models.CharField(max_length=32)
     action_date = models.DateTimeField(default=datetime.datetime.now)
 
     extra = PickledObjectField()
@@ -52,7 +54,7 @@ class Action(BaseModel):
     canceled = models.BooleanField(default=False)
     canceled_by = models.ForeignKey('User', null=True, related_name="canceled_actions")
     canceled_at = models.DateTimeField(null=True)
-    canceled_ip = models.CharField(max_length=16)
+    canceled_ip = models.CharField(max_length=39)
 
     hooks = {}
 
@@ -213,10 +215,10 @@ class ActionProxy(Action):
     __metaclass__ = ActionProxyMetaClass
 
     def friendly_username(self, viewer, user):
-        return (viewer == user) and _('You') or user.username
+        return (viewer == user) and _('You') or smart_unicode(user.username)
 
     def friendly_ownername(self, owner, user):
-        return (owner == user) and _('your') or user.username
+        return (owner == user) and _('your') or smart_unicode(user.username)
 
     def viewer_or_user_verb(self, viewer, user, viewer_verb, user_verb):
         return (viewer == user) and viewer_verb or user_verb
@@ -300,7 +302,7 @@ class ActionRepute(models.Model):
         return 0
 
     def _add_to_rep(self, value):
-        if self.user.reputation + value < 1:
+        if int(self.user.reputation + value) < 1 and not settings.ALLOW_NEGATIVE_REPUTATION:
             return 0
         else:
             return models.F('reputation') + value