summaryrefslogtreecommitdiffstats
path: root/askbot/utils
diff options
context:
space:
mode:
authorEvgeny Fadeev <evgeny.fadeev@gmail.com>2012-09-14 19:59:20 -0400
committerEvgeny Fadeev <evgeny.fadeev@gmail.com>2012-09-14 19:59:20 -0400
commitf76dd3c8b60ddf4fa16dc19a3f5eb8089dee59c1 (patch)
treec4d69a211463e5608dedad1ffdfd504836e4cef5 /askbot/utils
parent9835aedf1127f021f1d50e616aef8c8bd825571e (diff)
downloadaskbot-f76dd3c8b60ddf4fa16dc19a3f5eb8089dee59c1.tar.gz
askbot-f76dd3c8b60ddf4fa16dc19a3f5eb8089dee59c1.tar.bz2
askbot-f76dd3c8b60ddf4fa16dc19a3f5eb8089dee59c1.zip
group description editing works again
Diffstat (limited to 'askbot/utils')
-rw-r--r--askbot/utils/forms.py19
1 files changed, 19 insertions, 0 deletions
diff --git a/askbot/utils/forms.py b/askbot/utils/forms.py
index 917b68c2..6c3af066 100644
--- a/askbot/utils/forms.py
+++ b/askbot/utils/forms.py
@@ -3,6 +3,8 @@ from django import forms
from django.http import str_to_unicode
from django.contrib.auth.models import User
from django.conf import settings
+from django.http import Http404
+from django.shortcuts import get_object_or_404
from django.utils.translation import ugettext as _
from django.utils.safestring import mark_safe
from askbot.conf import settings as askbot_settings
@@ -28,6 +30,23 @@ def clean_next(next, default = None):
def get_next_url(request, default = None):
return clean_next(request.REQUEST.get('next'), default)
+def get_db_object_or_404(params):
+ """a utility function that returns an object
+ in return to the model_name and object_id
+
+ only specific models are accessible
+ """
+ from askbot import models
+ try:
+ model_name = params['model_name']
+ assert(model_name=='Group')
+ model = models.get_model(model_name)
+ obj_id = forms.IntegerField().clean(params['object_id'])
+ return get_object_or_404(model, id=obj_id)
+ except Exception:
+ #need catch-all b/c of the nature of the function
+ raise Http404
+
class StrippedNonEmptyCharField(forms.CharField):
def clean(self, value):
value = value.strip()