def answer(request, id): question = get_object_or_404(Question, id=id) if request.POST: form = AnswerForm(question, request.POST) if form.is_valid(): if request.user.is_authenticated(): answer = AnswerAction(user=request.user, ip=request.META['REMOTE_ADDR']).save(dict(question=question, **form.cleaned_data)).node return HttpResponseRedirect(answer.get_absolute_url()) else: request.session['temp_node_data'] = request.POST request.session['temp_node_type'] = 'answer' request.session['temp_question_id'] = id return HttpResponseRedirect(reverse('auth_action_signin', kwargs={'action': 'newquestion'})) else: request.session['redirect_POST_data'] = request.POST return HttpResponseRedirect(question.get_absolute_url() + '#fmanswer') return HttpResponseRedirect(question.get_absolute_url())
def answer(request, id): question = get_object_or_404(Question, id=id) if request.POST: form = AnswerForm(request.POST, request.user) if request.session.pop('reviewing_pending_data', False) or not form.is_valid(): request.session['redirect_POST_data'] = request.POST return HttpResponseRedirect(question.get_absolute_url() + '#fmanswer') if request.user.is_authenticated( ) and request.user.email_valid_and_can_answer(): answer_action = AnswerAction(user=request.user, ip=request.META['REMOTE_ADDR']).save( dict(question=question, **form.cleaned_data)) answer = answer_action.node if settings.WIKI_ON and request.POST.get('wiki', False): answer.nstate.wiki = answer_action return HttpResponseRedirect(answer.get_absolute_url()) else: # request.session[PENDING_SUBMISSION_SESSION_ATTR] = { # 'POST': request.POST, # 'data_name': _("answer"), # 'type': 'answer', # 'submission_url': reverse('answer', kwargs={'id': id}), # 'time': datetime.datetime.now(pytz.utc) # } if request.user.is_authenticated(): # messages.info(request, _("Your answer is pending until you %s.") % html.hyperlink( # django_settings.APP_URL + reverse('send_validation_email', prefix='/'), _("validate your email") # )) messages.info( request, _("Your Magnate status does not allow you to answer questions." )) return HttpResponseRedirect(question.get_absolute_url()) else: return HttpResponseRedirect(reverse('auth_signin')) return HttpResponseRedirect(question.get_absolute_url())
def answer(request, id): question = get_object_or_404(Question, id=id) from forum.models import CustomBadge if not CustomBadge.is_response_restricted(request.user, question) and request.POST: form = AnswerForm(request.POST, request.user) if request.session.pop('reviewing_pending_data', False) or not form.is_valid(): request.session['redirect_POST_data'] = request.POST return HttpResponseRedirect(question.get_absolute_url() + '#fmanswer') if request.user.is_authenticated( ) and request.user.email_valid_and_can_answer(): answer_action = AnswerAction(user=request.user, ip=request.META['REMOTE_ADDR']).save( dict(question=question, **form.cleaned_data)) answer = answer_action.node if settings.WIKI_ON and request.POST.get('wiki', False): answer.nstate.wiki = answer_action return HttpResponseRedirect(answer.get_absolute_url()) else: request.session['pending_submission_data'] = { 'POST': request.POST, 'data_name': _("answer"), 'type': 'answer', 'submission_url': reverse('answer', kwargs={'id': id}), 'time': datetime.datetime.now() } if request.user.is_authenticated(): request.user.message_set.create( message=_("Your answer is pending until you %s.") % html.hyperlink(reverse('send_validation_email'), _("validate your email"))) return HttpResponseRedirect(question.get_absolute_url()) else: return HttpResponseRedirect(reverse('auth_signin')) return HttpResponseRedirect(question.get_absolute_url())
room.speak(unicode(message)) def full_app_url(url): return APP_URL + url def question_posted(action, new): if not enabled(): return question = action.node speak(_('New question: %(headline)s - %(url)s' % { 'headline': question.headline, 'url': full_app_url(question.get_absolute_url()) })) def answer_posted(action, new): if not enabled(): return answer = action.node question = answer.question speak(_('New answer posted for question: %(headline)s - %(url)s' % { 'headline': question.headline, 'url': full_app_url(question.get_absolute_url()) })) AskAction.hook(question_posted) AnswerAction.hook(answer_posted)
subscribers = question.subscribers.filter( subscription_settings__enable_notifications=True, subscription_settings__notify_answers=True, subscription_settings__subscribed_questions='i').exclude( id=answer.author.id).distinct() subscribers = filter_subscribers(subscribers) send_template_email(subscribers, "notifications/newanswer.html", {'answer': answer}) create_subscription_if_not_exists(question, answer.author) AnswerAction.hook(answer_posted) def comment_posted(action, new): comment = action.node post = comment.parent if not comment.is_notifiable or not post.is_notifiable: return if post.__class__ == Question: question = post else: question = post.question q_filter = Q(subscription_settings__notify_comments=True) | Q(