def ask(request): form = None if request.POST: if request.session.pop('reviewing_pending_data', False): form = AskForm(initial=request.POST, user=request.user) elif "text" in request.POST: form = AskForm(request.POST, user=request.user) if form.is_valid(): if request.user.is_authenticated( ) and request.user.email_valid_and_can_ask(): ask_action = AskAction( user=request.user, ip=request.META['REMOTE_ADDR']).save( data=form.cleaned_data) question = ask_action.node if settings.WIKI_ON and request.POST.get('wiki', False): question.nstate.wiki = ask_action if "expert_email" in form.cleaned_data: email = form.cleaned_data["expert_email"].split() u = User(username=_("Friend"), email=email) send_template_email([u], "notifications/newquestion.html", { 'question': question, "exclude_finetune": True }) return HttpResponseRedirect(question.get_absolute_url()) else: request.session[PENDING_SUBMISSION_SESSION_ATTR] = { 'POST': request.POST, 'data_name': _("question"), 'type': 'ask', 'submission_url': reverse('ask'), 'time': datetime.datetime.now() } if request.user.is_authenticated(): request.user.message_set.create( message=_("Your question is pending until you %s.") % html.hyperlink(reverse('send_validation_email'), _("validate your email"))) return HttpResponseRedirect(reverse('index')) else: return HttpResponseRedirect(reverse('auth_signin')) elif "go" in request.POST: form = AskForm({'title': request.POST['q']}, user=request.user) if not form: form = AskForm(user=request.user) return render_to_response('ask.html', { 'form': form, 'tab': 'ask' }, context_instance=RequestContext(request))
def ask(request): form = None if request.POST: if request.session.pop('reviewing_pending_data', False): form = AskForm(initial=request.POST, user=request.user) elif "text" in request.POST: form = AskForm(request.POST, user=request.user) if form.is_valid(): if request.user.is_authenticated( ) and request.user.email_valid_and_can_ask(): ask_action = AskAction( user=request.user, ip=request.META['REMOTE_ADDR']).save( data=form.cleaned_data) question = ask_action.node if settings.WIKI_ON and request.POST.get('wiki', False): question.nstate.wiki = ask_action return HttpResponseRedirect(question.get_absolute_url()) else: request.session[PENDING_SUBMISSION_SESSION_ATTR] = { 'POST': request.POST, 'data_name': _("question"), 'type': 'ask', 'submission_url': reverse('ask'), 'time': datetime.datetime.now() } if request.user.is_authenticated(): messages.info( request, _("Your question is pending until you %s.") % html.hyperlink( django_settings.APP_URL + reverse('send_validation_email', prefix='/'), _("validate your email"))) return HttpResponseRedirect(reverse('index')) else: return HttpResponseRedirect(reverse('auth_signin')) elif "go" in request.POST: form = AskForm({'title': request.POST['q']}, user=request.user) if not form: form = AskForm(user=request.user) return render_to_response('ask.html', { 'form': form, 'tab': 'ask' }, context_instance=RequestContext(request))
def ask(request): form = None if request.POST: if request.session.pop('reviewing_pending_data', False): form = AskForm(initial=request.POST, user=request.user) elif "text" in request.POST: form = AskForm(request.POST, user=request.user) if form.is_valid(): if request.user.is_authenticated( ) and request.user.email_valid_and_can_ask(): ask_action = AskAction( user=request.user, ip=request.META['REMOTE_ADDR']).save( data=form.cleaned_data) question = ask_action.node if settings.WIKI_ON and request.POST.get('wiki', False): question.nstate.wiki = ask_action return HttpResponseRedirect(question.get_absolute_url()) else: request.session[PENDING_SUBMISSION_SESSION_ATTR] = { 'POST': request.POST, 'data_name': _("question"), 'type': 'ask', 'submission_url': reverse('ask'), 'time': datetime.datetime.now(pytz.utc) } if request.user.is_authenticated(): messages.info( request, _("Your question is pending until you %s.") % html.hyperlink( django_settings.APP_URL + reverse('send_validation_email', prefix='/'), _("validate your email"))) return HttpResponseRedirect(reverse('index')) else: return HttpResponseRedirect(reverse('auth_signin')) elif "go" in request.POST: form = AskForm({'title': request.POST['q']}, user=request.user) #BEGIN template_name = 'ask.html' if not form: # BEGIN # Changed this part to link OSQA to Magnate's zinnia entries # # Original: form = AskForm(user=request.user) from zinnia.models.entry import Entry entry_id = None entry_title = None try: entry_id = int(request.GET.get('entry_id')) entry = Entry.objects.get(pk=entry_id) if entry.is_public( ): # Can only ask questions about public entries form = AskForm(user=request.user, initial={ 'entry_id': entry_id, 'entry_title': entry.title }) template_name = 'ask_about.html' else: # No point to ask questions about private entries, # as this is likely a mistake. raise Http404 except (TypeError, ValueError, Entry.DoesNotExist) as e: # No point to ask questions about no entry in particular, # as nobody will ever find them. # # form = AskForm(user=request.user) # template_name='ask.html' raise Http404 # Also changed below ask.html --> ask_about.html # END # template_name was just ask.html return render_to_response(template_name, { 'form': form, 'tab': 'ask', }, context_instance=RequestContext(request))