diff options
author | Evgeny Fadeev <evgeny.fadeev@gmail.com> | 2013-03-26 03:12:57 -0400 |
---|---|---|
committer | Evgeny Fadeev <evgeny.fadeev@gmail.com> | 2013-03-26 03:12:57 -0400 |
commit | d5a797f9d7d33e020b3679181e4a61df6317e21a (patch) | |
tree | 034585c906047e2253c7c5e9e77fcdfab4dec1bc /askbot/views | |
parent | 056d1c9f0f9dbbbab395a3df79824c9ec7f9afe2 (diff) | |
download | askbot-d5a797f9d7d33e020b3679181e4a61df6317e21a.tar.gz askbot-d5a797f9d7d33e020b3679181e4a61df6317e21a.tar.bz2 askbot-d5a797f9d7d33e020b3679181e4a61df6317e21a.zip |
added new_answer_posted signal and ASKBOT_NEW_ANSWER_FORM settings.py setting
Diffstat (limited to 'askbot/views')
-rw-r--r-- | askbot/views/writers.py | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/askbot/views/writers.py b/askbot/views/writers.py index ee10c1ab..e685a951 100644 --- a/askbot/views/writers.py +++ b/askbot/views/writers.py @@ -35,12 +35,14 @@ from django.views.decorators import csrf from askbot import exceptions as askbot_exceptions from askbot import forms from askbot import models +from askbot.models import signals from askbot.conf import settings as askbot_settings from askbot.utils import decorators from askbot.utils.forms import format_errors from askbot.utils.functions import diff_date from askbot.utils import url_utils from askbot.utils.file_utils import store_file +from askbot.utils.loading import load_module from askbot.views import context from askbot.templatetags import extra_filters_jinja as template_filters from askbot.importers.stackexchange import management as stackexchange#todo: may change @@ -555,7 +557,15 @@ def answer(request, id):#process a new answer """ question = get_object_or_404(models.Post, post_type='question', id=id) if request.method == "POST": - form = forms.AnswerForm(request.POST, user=request.user) + + custom_class_path = getattr(settings, 'ASKBOT_NEW_ANSWER_FORM', None) + if custom_class_path: + form_class = load_module(custom_class_path) + else: + form_class = forms.AnswerForm + + form = form_class(request.POST, user=request.user) + if form.is_valid(): wiki = form.cleaned_data['wiki'] text = form.cleaned_data['text'] @@ -581,6 +591,13 @@ def answer(request, id):#process a new answer is_private = is_private, timestamp = update_time, ) + + signals.new_answer_posted.send(None, + answer=answer, + user=user, + form_data=form.cleaned_data + ) + return HttpResponseRedirect(answer.get_absolute_url()) except askbot_exceptions.AnswerAlreadyGiven, e: request.user.message_set.create(message = unicode(e)) |