def post(self, request, *args, **kwargs): context = self.get_context_data(**kwargs) questions = Domanda.get_domande() p = get_object_or_404(Partito, party_key=kwargs['party_key']) form= QuestionarioPartitiForm(self.request.POST, party=p, extra=questions) 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) if c == '': continue rp, created = RispostaPartito.objects.get_or_create( partito=p, domanda=d, defaults=dict( risposta_int=c, risposta_txt=t ) ) if not created: rp.risposta_int = c rp.risposta_txt = t rp.save() # rp = RispostaPartito(partito=p,domanda=d, risposta_int=c, risposta_txt=t) # rp.save() p.save() # if not p.has_replied_to_all_answers(): # return redirect("questionario_partiti", party_key=p.party_key) # manda una mail ai managers dell'applicazione con il link per controllare i risultati del questionario template = get_template("q_partiti_alert_mail.html") text_c = template.render({ 'nome_lista':p.denominazione, 'url_link': "http://{}{}".format( Site.objects.get_current(request).domain, reverse('questionario_partiti_fine', kwargs={'slug': p.slug}) ), }) subj = '[vsq]%s: - %s "%s" ha completato il questionario' % ( settings.ELECTION_NAME, prepend(u'La', u'Il', settings.PARTY_TERM), p.denominazione ) # subj = "VoiSieteQui - La lista " + p.denominazione + " ha completato il questionario" mail_managers(subj, text_c, fail_silently=True) 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 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 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