コード例 #1
0
ファイル: views.py プロジェクト: arnists/voisietequi
    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)
コード例 #2
0
ファイル: views.py プロジェクト: idlweb/voisietequi
    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)
コード例 #3
0
ファイル: views.py プロジェクト: opencorato/voisietequi
    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)
コード例 #4
0
ファイル: views.py プロジェクト: idlweb/voisietequi
    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