def post(self, request, *args, **kwargs): context = self.get_context_data(**kwargs) questions = Domanda.get_domande() form = QuestionarioPartitiForm(self.request.POST, extra=questions) p = get_object_or_404(Partito, party_key=kwargs['party_key']) if form.is_valid(): # controlla e salva le risposte p.responsabile_nome = form.cleaned_data['contact_name'] p.risposte_at = datetime.now() for d in questions: c, t = form.get_answer(d.ordine) rp = RispostaPartito(partito=p, domanda=d, risposta_int=c, risposta_txt=t) rp.save() p.save() # manda una mail ai managers dell'applicazione con il link per controllare i risultati del questionario template = get_template("q_partiti_alert_mail.html") context = Context({ 'nome_lista': p.denominazione, 'url_link': PROJECT_ROOT + "questionario/" + p.slug + "/completato", }) text_c = template.render(context) subj = "VoiSieteQui - La lista " + p.denominazione + " ha completato il questionario" from_email = "*****@*****.**" to_address = [] for m in MANAGERS: to_address.append(m[1]) msg = EmailMessage( subj, text_c, from_email, to_address, ) msg.send() return redirect("questionario_partiti_fine", slug=p.slug) else: context['has_errors'] = "True" # stampa la form con gli eventuali errori context['form'] = form return self.render_to_response(context)
def get_context_data(self, **kwargs): context = super(QuestionarioPartitiView, self).get_context_data(**kwargs) questions = Domanda.get_domande() n_questions = Domanda.get_n_domande() form = QuestionarioPartitiForm(extra=questions) party_key = kwargs['party_key'] p = get_object_or_404(Partito, party_key=party_key) context['nome_lista'] = p.denominazione context['n_questions'] = n_questions context['form'] = form context['possible_answers'] = RispostaPartito.get_tipo_risposta() return context