Exemplo n.º 1
0
class ModuloLavoraTesserini(forms.Form):

    MINIMO_CARATTERI_MOTIVO_RIFIUTATO = 16

    stato_richiesta = forms.ChoiceField(
        choices=rimuovi_scelte([Tesserino.RICHIESTO],
                               Tesserino.STATO_RICHIESTA),
        help_text="Scegli se accettare o negare la richiesta "
        "di emissione dei tesserini.")
    stato_emissione = forms.ChoiceField(
        choices=Tesserino.STATO_EMISSIONE,
        required=False,
        help_text="Scegli se registrare i tesserini come emessi. "
        "I tesserini verranno attivati una volta emessi. ")
    motivo_rifiutato = forms.CharField(
        help_text="Se hai negato le richieste, inserisci qui la motivazione. "
        "Es.: Fototessera non conforme. ",
        required=False)

    def clean(self):
        stato_richiesta = self.cleaned_data['stato_richiesta']
        stato_emissione = self.cleaned_data['stato_emissione']
        motivo_rifiutato = self.cleaned_data['motivo_rifiutato']

        if stato_richiesta != Tesserino.ACCETTATO and stato_emissione:
            raise ValidationError("Puoi emettere il tesserino solo se "
                                  "accetti la richiesta di emissione. ")

        if stato_richiesta == Tesserino.RIFIUTATO and len(
                motivo_rifiutato) < self.MINIMO_CARATTERI_MOTIVO_RIFIUTATO:
            raise ValidationError(
                "Rifiutando l'emissione, devi inserire una motivazione descrittiva, con almeno "
                "%d caratteri." % self.MINIMO_CARATTERI_MOTIVO_RIFIUTATO)
Exemplo n.º 2
0
def supporto(request, me=None):
    from base.forms_extra import ModuloRichiestaSupporto
    modulo = None
    if me:
        deleghe = set([d.tipo for d in me.deleghe_attuali()])
        tipi = set((UFFICIO_SOCI, UFFICIO_SOCI_TEMPORANEO, UFFICIO_SOCI_UNITA,
                    PRESIDENTE))
        if deleghe.intersection(tipi):
            modulo = ModuloRichiestaSupportoPersone(request.POST or None)
        else:
            modulo = ModuloRichiestaSupporto(request.POST or None)

        scelte = modulo.fields['tipo'].choices

        # Solo i delegati possono contattare SECONDO_LIVELLO e TERZO_LIVELLO
        if not me.deleghe_attuali().exists():
            scelte = rimuovi_scelte(
                [modulo.TERZO_LIVELLO, modulo.SECONDO_LIVELLO], scelte)

        modulo.fields['tipo'].choices = scelte

    if modulo and modulo.is_valid():
        tipo = modulo.cleaned_data['tipo']
        oggetto = modulo.cleaned_data['oggetto']
        descrizione = modulo.cleaned_data['descrizione']
        persona = modulo.cleaned_data.get('persona', None)

        oggetto = "(%s) %s" % (tipo, oggetto)
        Messaggio.costruisci_e_invia(
            oggetto=oggetto,
            modello="email_supporto.html",
            mittente=me,
            destinatari=[],
            corpo={
                "testo": descrizione,
                "mittente": me,
                "persona": persona
            },
        )
        return messaggio_generico(
            request,
            me,
            titolo="Richiesta inoltrata",
            messaggio=
            "Grazie per aver contattato il supporto. La tua richiesta con "
            "oggetto '%s' è stata correttamente inoltrata. Riceverai a minuti "
            "un messaggio di conferma del codice ticket assegnato alla "
            "tua richiesta." % (oggetto, ))
    contesto = {"modulo": modulo}
    return 'supporto.html', contesto
Exemplo n.º 3
0
def supporto(request, me=None):
    from base.forms_extra import ModuloRichiestaSupporto
    modulo = None
    if me:
        deleghe = set([d.tipo for d in me.deleghe_attuali()])
        tipi = set((UFFICIO_SOCI, UFFICIO_SOCI_TEMPORANEO, UFFICIO_SOCI_UNITA, PRESIDENTE))
        if deleghe.intersection(tipi):
            modulo = ModuloRichiestaSupportoPersone(request.POST or None)
        else:
            modulo = ModuloRichiestaSupporto(request.POST or None)

        scelte = modulo.fields['tipo'].choices

        # Solo i delegati possono contattare SECONDO_LIVELLO e TERZO_LIVELLO
        if not me.deleghe_attuali().exists():
            scelte = rimuovi_scelte([modulo.TERZO_LIVELLO, modulo.SECONDO_LIVELLO], scelte)

        modulo.fields['tipo'].choices = scelte

    if modulo and modulo.is_valid():
        tipo = modulo.cleaned_data['tipo']
        oggetto = modulo.cleaned_data['oggetto']
        descrizione = modulo.cleaned_data['descrizione']
        persona = modulo.cleaned_data.get('persona', None)

        oggetto = "(%s) %s" % (tipo, oggetto)
        Messaggio.costruisci_e_invia(
            oggetto=oggetto,
            modello="email_supporto.html",
            mittente=me,
            destinatari=[],
            corpo={
                "testo": descrizione,
                "mittente": me,
                "persona": persona
            },
        )
        return messaggio_generico(request, me, titolo="Richiesta inoltrata",
                                  messaggio="Grazie per aver contattato il supporto. La tua richiesta con "
                                            "oggetto '%s' è stata correttamente inoltrata. Riceverai a minuti "
                                            "un messaggio di conferma del codice ticket assegnato alla "
                                            "tua richiesta." % (oggetto,))
    contesto = {
        "modulo": modulo
    }
    return 'supporto.html', contesto