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)
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
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