def aspirante_corso_base_iscriviti(request, me=None, pk=None): corso = get_object_or_404(CorsoBase, pk=pk) puoi_partecipare = corso.persona(me) if not puoi_partecipare in corso.PUOI_ISCRIVERTI: return errore_generico( request, me, titolo="Non puoi partecipare a questo corso", messaggio="Siamo spiacenti, ma non sembra che tu possa partecipare " "a questo corso per qualche motivo. ", torna_titolo="Torna al corso", torna_url=corso.url) p = PartecipazioneCorsoBase(persona=me, corso=corso) p.save() p.richiedi() return messaggio_generico( request, me, titolo="Sei iscritto al corso base", messaggio="Complimenti! Abbiamo inoltrato la tua richiesta al direttore " "del corso, che ti contatterà appena possibile.", torna_titolo="Torna al corso", torna_url=corso.url)
def aspirante_corso_base_iscritti_aggiungi(request, me, pk): corso = get_object_or_404(CorsoBase, pk=pk) if not me.permessi_almeno(corso, MODIFICA): return redirect(ERRORE_PERMESSI) if not corso.possibile_aggiungere_iscritti: return errore_generico(request, me, titolo="Impossibile aggiungere iscritti", messaggio="Non si possono aggiungere altri iscritti a questo " "stadio della vita del corso base.", torna_titolo="Torna al corso base", torna_url=corso.url_iscritti) modulo = ModuloIscrittiCorsoBaseAggiungi(request.POST or None) risultati = [] if modulo.is_valid(): for persona in modulo.cleaned_data['persone']: esito = corso.persona(persona) ok = False if esito in corso.PUOI_ISCRIVERTI or \ esito in corso.NON_PUOI_ISCRIVERTI_SOLO_SE_IN_AUTONOMIA: ok = True p = PartecipazioneCorsoBase(persona=persona, corso=corso) p.save() Log.crea(me, p) Messaggio.costruisci_e_invia( oggetto="Iscrizione a Corso Base", modello="email_corso_base_iscritto.html", corpo={ "persona": persona, "corso": corso, }, mittente=me, destinatari=[persona] ) risultati += [{ "persona": persona, "esito": esito, "ok": ok, }] contesto = { "corso": corso, "puo_modificare": True, "modulo": modulo, "risultati": risultati, } return 'aspirante_corso_base_scheda_iscritti_aggiungi.html', contesto
def aspirante_corso_base_iscriviti(request, me=None, pk=None): corso = get_object_or_404(CorsoBase, pk=pk) puoi_partecipare = corso.persona(me) if not puoi_partecipare in corso.PUOI_ISCRIVERTI: return errore_generico(request, me, titolo="Non puoi partecipare a questo corso", messaggio="Siamo spiacenti, ma non sembra che tu possa partecipare " "a questo corso per qualche motivo. ", torna_titolo="Torna al corso", torna_url=corso.url) p = PartecipazioneCorsoBase(persona=me, corso=corso) p.save() p.richiedi() return messaggio_generico(request, me, titolo="Sei iscritto al corso base", messaggio="Complimenti! Abbiamo inoltrato la tua richiesta al direttore " "del corso, che ti contatterà appena possibile.", torna_titolo="Torna al corso", torna_url=corso.url)
def test_appartenenza(self): data_corrente = datetime.date.today() anno_corrente = data_corrente.year LIVELLI_DELEGATI = [(DELEGATO_OBIETTIVO_1, 'M'), (DELEGATO_OBIETTIVO_2, 'N'), (DELEGATO_OBIETTIVO_3, 'O'), (DELEGATO_OBIETTIVO_4, 'P'), (DELEGATO_OBIETTIVO_5, 'Q'), (DELEGATO_OBIETTIVO_6, 'R')] LIVELLI_ATTIVITA = ['S', 'T', 'U', 'V', 'W', 'X'] # Notizie di test notizia_1 = NotiziaTest.objects.create(testo="Notizia 1: Testo di prova!") notizia_2 = NotiziaTest.objects.create(testo="Notizia 2: Altro testo di prova!") # SEGMENTI NOTIZIA_1 # Segmento per filtrare tutti gli utenti segmento_tutti_no_filtri = NotiziaTestSegmento.objects.create( segmento='A', notiziatest=notizia_1 ) # Segmento per filtrare tutti i volontari segmento_volontari_no_filtri = NotiziaTestSegmento.objects.create( segmento='B', notiziatest=notizia_1 ) # Segmento per filtrare tutti i volontari con meno di un anno di attivita segmento_volontari_meno_uno_no_filtri = NotiziaTestSegmento.objects.create( segmento='C', notiziatest=notizia_1 ) # Segmento per filtrare tutti i volontari con più di un anno di attivita segmento_volontari_piu_uno_no_filtri = NotiziaTestSegmento.objects.create( segmento='D', notiziatest=notizia_1 ) # Segmento per filtrare tutti i volontari con meno di 35 anni segmento_volontari_meno_35_anni_no_filtri = NotiziaTestSegmento.objects.create( segmento='E', notiziatest=notizia_1 ) # Segmento per filtrare tutti i volontari con meno di 35 anni segmento_volontari_35_anni_o_piu_no_filtri = NotiziaTestSegmento.objects.create( segmento='F', notiziatest=notizia_1 ) # Segmento per filtrare tutti i sostenitori segmento_sostenitori_no_filtri = NotiziaTestSegmento.objects.create( segmento='G', notiziatest=notizia_1 ) # Segmento per filtrare tutti i sostenitori segmento_aspiranti_corsisti_no_filtri = NotiziaTestSegmento.objects.create( segmento='H', notiziatest=notizia_1 ) # Segmento per filtrare tutti i presidenti con delega attiva segmento_presidenti_no_filtri = NotiziaTestSegmento.objects.create( segmento='I', notiziatest=notizia_1 ) # Segmento per filtrare tutti i presidenti di comitati locali con delega attiva segmento_presidenti_comitati_locali_no_filtri = NotiziaTestSegmento.objects.create( segmento='J', notiziatest=notizia_1 ) # Segmento per filtrare tutti i presidenti di comitati regionali con delega attiva segmento_presidenti_comitati_regionali_no_filtri = NotiziaTestSegmento.objects.create( segmento='K', notiziatest=notizia_1 ) # Segmento per filtrare tutti i delegati Ufficio Soci con delega attiva segmento_delegati_US_no_filtri = NotiziaTestSegmento.objects.create( segmento='L', notiziatest=notizia_1 ) # Segmento per filtrare tutti i delegati Autoparco con delega attiva segmento_delegati_autoparco_no_filtri = NotiziaTestSegmento.objects.create( segmento='Y', notiziatest=notizia_1 ) # Segmento per filtrare tutti i delegati Formazione con delega attiva segmento_delegati_formazione_no_filtri = NotiziaTestSegmento.objects.create( segmento='Z', notiziatest=notizia_1 ) # Segmento per filtrare tutti i volontari con titolo titolo_patenteCRI = Titolo.objects.create(tipo='PC', nome='Titolo test') segmento_volontari_con_titolo_no_filtri = NotiziaTestSegmento.objects.create( segmento='AA', notiziatest=notizia_1, titolo=titolo_patenteCRI ) # Utente gaia generico persona = crea_persona() persona.save() # Test appartenenza esito = persona.appartiene_al_segmento(segmento_tutti_no_filtri) self.assertTrue(esito) esito = persona.appartiene_al_segmento(segmento_volontari_no_filtri) self.assertFalse(esito) esito = persona.appartiene_al_segmento(segmento_presidenti_no_filtri) self.assertFalse(esito) # Volontario volontario, _, _ = crea_persona_sede_appartenenza() esito = volontario.appartiene_al_segmento(segmento_tutti_no_filtri) self.assertTrue(esito) esito = volontario.appartiene_al_segmento(segmento_volontari_no_filtri) self.assertTrue(esito) esito = volontario.appartiene_al_segmento(segmento_presidenti_no_filtri) self.assertFalse(esito) # Volontario con meno di un anno di attività volontario_meno_uno, _, _ = crea_persona_sede_appartenenza() volontario_meno_uno.creazione = data_corrente - datetime.timedelta(days=5) volontario_meno_uno.save() esito = volontario_meno_uno.appartiene_al_segmento(segmento_tutti_no_filtri) self.assertTrue(esito) esito = volontario_meno_uno.appartiene_al_segmento(segmento_volontari_no_filtri) self.assertTrue(esito) esito = volontario_meno_uno.appartiene_al_segmento(segmento_presidenti_no_filtri) self.assertFalse(esito) # TODO: creare dati di test per verificare il segmento #esito = volontario_meno_uno.appartiene_al_segmento(segmento_volontari_piu_uno_no_filtri) #self.assertFalse(esito) #esito = volontario_meno_uno.appartiene_al_segmento(segmento_volontari_meno_uno_no_filtri) #self.assertTrue(esito) # Volontario con più di un anno di attività volontario_piu_uno, _, _ = crea_persona_sede_appartenenza() volontario_piu_uno.creazione = data_corrente - datetime.timedelta(days=720) volontario_piu_uno.save() esito = volontario_piu_uno.appartiene_al_segmento(segmento_tutti_no_filtri) self.assertTrue(esito) esito = volontario_piu_uno.appartiene_al_segmento(segmento_volontari_no_filtri) self.assertTrue(esito) esito = volontario_piu_uno.appartiene_al_segmento(segmento_presidenti_no_filtri) self.assertFalse(esito) # TODO: creare dati di test per verificare il segmento #esito = volontario_piu_uno.appartiene_al_segmento(segmento_volontari_meno_uno_no_filtri) #self.assertFalse(esito) #esito = volontario_piu_uno.appartiene_al_segmento(segmento_volontari_piu_uno_no_filtri) #self.assertTrue(esito) # Volontario con meno di 35 anni volontario_meno_35_anni, _, _ = crea_persona_sede_appartenenza() esito = volontario_meno_35_anni.appartiene_al_segmento(segmento_tutti_no_filtri) self.assertTrue(esito) esito = volontario_meno_35_anni.appartiene_al_segmento(segmento_volontari_no_filtri) self.assertTrue(esito) esito = volontario_meno_35_anni.appartiene_al_segmento(segmento_volontari_meno_35_anni_no_filtri) self.assertTrue(esito) esito = volontario_meno_35_anni.appartiene_al_segmento(segmento_presidenti_no_filtri) self.assertFalse(esito) # Volontario con 35 anni o più di età volontario_35_anni_o_piu, _, _ = crea_persona_sede_appartenenza() volontario_35_anni_o_piu.data_nascita = "1960-2-5" volontario_35_anni_o_piu.save() esito = volontario_35_anni_o_piu.appartiene_al_segmento(segmento_tutti_no_filtri) self.assertTrue(esito) esito = volontario_35_anni_o_piu.appartiene_al_segmento(segmento_volontari_no_filtri) self.assertTrue(esito) esito = volontario_35_anni_o_piu.appartiene_al_segmento(segmento_volontari_meno_35_anni_no_filtri) self.assertFalse(esito) esito = volontario_35_anni_o_piu.appartiene_al_segmento(segmento_volontari_35_anni_o_piu_no_filtri) self.assertTrue(esito) esito = volontario_35_anni_o_piu.appartiene_al_segmento(segmento_presidenti_no_filtri) self.assertFalse(esito) # Sostenitore sostenitore, _, appartenenza = crea_persona_sede_appartenenza() appartenenza.membro = Appartenenza.SOSTENITORE appartenenza.save() esito = sostenitore.appartiene_al_segmento(segmento_tutti_no_filtri) self.assertTrue(esito) esito = sostenitore.appartiene_al_segmento(segmento_volontari_no_filtri) self.assertFalse(esito) esito = sostenitore.appartiene_al_segmento(segmento_sostenitori_no_filtri) self.assertTrue(esito) esito = sostenitore.appartiene_al_segmento(segmento_presidenti_no_filtri) self.assertFalse(esito) # Presidente presidente = crea_persona() presidente.save() presidente, sede, _ = crea_persona_sede_appartenenza(presidente) delega_presidente_in_corso = Delega( persona=presidente, tipo=PRESIDENTE, oggetto=sede, inizio=datetime.datetime.now() - datetime.timedelta(days=5), fine=datetime.datetime.now() + datetime.timedelta(days=5) ) delega_presidente_in_corso.save() esito = presidente.appartiene_al_segmento(segmento_tutti_no_filtri) self.assertTrue(esito) esito = presidente.appartiene_al_segmento(segmento_volontari_no_filtri) self.assertTrue(esito) esito = presidente.appartiene_al_segmento(segmento_presidenti_no_filtri) self.assertTrue(esito) # Presidente comitato locale presidente_comitato_locale = crea_persona() presidente_comitato_locale, sede, appartenenza = crea_persona_sede_appartenenza(presidente_comitato_locale) delega_presidente_comitato_locale_in_corso = Delega( persona=presidente_comitato_locale, tipo=PRESIDENTE, oggetto=sede, inizio=datetime.datetime.now() - datetime.timedelta(days=5), fine=datetime.datetime.now() + datetime.timedelta(days=5) ) delega_presidente_comitato_locale_in_corso.save() esito = presidente_comitato_locale.appartiene_al_segmento(segmento_tutti_no_filtri) self.assertTrue(esito) esito = presidente_comitato_locale.appartiene_al_segmento(segmento_volontari_no_filtri) self.assertTrue(esito) esito = presidente_comitato_locale.appartiene_al_segmento(segmento_presidenti_no_filtri) self.assertTrue(esito) esito = presidente_comitato_locale.appartiene_al_segmento(segmento_presidenti_comitati_locali_no_filtri) self.assertTrue(esito) esito = presidente_comitato_locale.appartiene_al_segmento(segmento_presidenti_comitati_regionali_no_filtri) self.assertFalse(esito) # Presidente comitato regionale presidente_comitato_regionale = crea_persona() presidente_comitato_regionale, sede, appartenenza = crea_persona_sede_appartenenza(presidente_comitato_regionale) sede.estensione = REGIONALE sede.save() delega_presidente_comitato_regionale_in_corso = Delega( persona=presidente_comitato_regionale, tipo=PRESIDENTE, oggetto=sede, inizio=datetime.datetime.now() - datetime.timedelta(days=5), fine=datetime.datetime.now() + datetime.timedelta(days=5) ) delega_presidente_comitato_regionale_in_corso.save() esito = presidente_comitato_regionale.appartiene_al_segmento(segmento_tutti_no_filtri) self.assertTrue(esito) esito = presidente_comitato_regionale.appartiene_al_segmento(segmento_volontari_no_filtri) self.assertTrue(esito) esito = presidente_comitato_regionale.appartiene_al_segmento(segmento_presidenti_no_filtri) self.assertTrue(esito) esito = presidente_comitato_regionale.appartiene_al_segmento(segmento_presidenti_comitati_locali_no_filtri) self.assertFalse(esito) esito = presidente_comitato_regionale.appartiene_al_segmento(segmento_presidenti_comitati_regionali_no_filtri) self.assertTrue(esito) # Delegato Ufficio Soci delegato_US = crea_persona() sede_delegato_US = crea_sede() appartenenza = crea_appartenenza(delegato_US, sede_delegato_US) delega_ufficio_soci = Delega( persona=delegato_US, tipo=UFFICIO_SOCI, oggetto=sede_delegato_US, inizio=datetime.datetime.now() - datetime.timedelta(days=5), fine=datetime.datetime.now() + datetime.timedelta(days=5) ) delega_ufficio_soci.save() esito = delegato_US.appartiene_al_segmento(segmento_tutti_no_filtri) self.assertTrue(esito) esito = delegato_US.appartiene_al_segmento(segmento_volontari_no_filtri) self.assertTrue(esito) esito = delegato_US.appartiene_al_segmento(segmento_presidenti_no_filtri) self.assertFalse(esito) esito = delegato_US.appartiene_al_segmento(segmento_delegati_US_no_filtri) self.assertTrue(esito) esito = delegato_US.appartiene_al_segmento(segmento_delegati_autoparco_no_filtri) self.assertFalse(esito) # Delegati Obiettivo for livello_obiettivo in LIVELLI_DELEGATI: delegato = crea_persona() sede_delegato = crea_sede() appartenenza = crea_appartenenza(delegato, sede_delegato) segmento = NotiziaTestSegmento.objects.create( segmento=livello_obiettivo[1], notiziatest=notizia_1 ) delega_obiettivo = Delega( persona=delegato, tipo=livello_obiettivo[0], oggetto=sede_delegato, inizio=datetime.datetime.now() - datetime.timedelta(days=5), fine=datetime.datetime.now() + datetime.timedelta(days=5) ) delega_obiettivo.save() esito = delegato.appartiene_al_segmento(segmento_tutti_no_filtri) self.assertTrue(esito) esito = delegato.appartiene_al_segmento(segmento_volontari_no_filtri) self.assertTrue(esito) esito = delegato.appartiene_al_segmento(segmento_presidenti_no_filtri) self.assertFalse(esito) esito = delegato.appartiene_al_segmento(segmento) self.assertTrue(esito) esito = delegato.appartiene_al_segmento(segmento_delegati_autoparco_no_filtri) self.assertFalse(esito) # Referenti attività area for idx, livello_attivita in enumerate(LIVELLI_ATTIVITA): referente = crea_persona() sede_referente = crea_sede() appartenenza = crea_appartenenza(referente, sede_referente) segmento = NotiziaTestSegmento.objects.create( segmento=livello_attivita, notiziatest=notizia_1 ) delega_referente = Delega( persona=referente, tipo=REFERENTE, oggetto=sede_referente, inizio=datetime.datetime.now() - datetime.timedelta(days=5), fine=datetime.datetime.now() + datetime.timedelta(days=5) ) delega_referente.save() area, attivita = crea_area_attivita(sede=sede_referente) area.obiettivo = idx + 1 area.save() attivita.aggiungi_delegato(REFERENTE, referente) esito = referente.appartiene_al_segmento(segmento_tutti_no_filtri) self.assertTrue(esito) esito = referente.appartiene_al_segmento(segmento_volontari_no_filtri) self.assertTrue(esito) esito = referente.appartiene_al_segmento(segmento_presidenti_no_filtri) self.assertFalse(esito) esito = referente.appartiene_al_segmento(segmento) self.assertTrue(esito) esito = referente.appartiene_al_segmento(segmento_delegati_autoparco_no_filtri) self.assertFalse(esito) # Delegato Autoparco delegato_autoparco = crea_persona() sede_delegato_autoparco = crea_sede() appartenenza = crea_appartenenza(delegato_autoparco, sede_delegato_autoparco) delega_autoparco = Delega( persona=delegato_autoparco, tipo=RESPONSABILE_AUTOPARCO, oggetto=sede_delegato_autoparco, inizio=datetime.datetime.now() - datetime.timedelta(days=5), fine=datetime.datetime.now() + datetime.timedelta(days=5) ) delega_autoparco.save() esito = delegato_autoparco.appartiene_al_segmento(segmento_tutti_no_filtri) self.assertTrue(esito) esito = delegato_autoparco.appartiene_al_segmento(segmento_volontari_no_filtri) self.assertTrue(esito) esito = delegato_autoparco.appartiene_al_segmento(segmento_presidenti_no_filtri) self.assertFalse(esito) esito = delegato_autoparco.appartiene_al_segmento(segmento_delegati_US_no_filtri) self.assertFalse(esito) esito = delegato_autoparco.appartiene_al_segmento(segmento_delegati_autoparco_no_filtri) self.assertTrue(esito) # Delegato Formazione delegato_formazione = crea_persona() sede_delegato_formazione = crea_sede() appartenenza = crea_appartenenza(delegato_formazione, sede_delegato_formazione) delega_formazione = Delega( persona=delegato_formazione, tipo=RESPONSABILE_FORMAZIONE, oggetto=sede_delegato_formazione, inizio=datetime.datetime.now() - datetime.timedelta(days=5), fine=datetime.datetime.now() + datetime.timedelta(days=5) ) delega_formazione.save() esito = delegato_formazione.appartiene_al_segmento(segmento_tutti_no_filtri) self.assertTrue(esito) esito = delegato_formazione.appartiene_al_segmento(segmento_volontari_no_filtri) self.assertTrue(esito) esito = delegato_formazione.appartiene_al_segmento(segmento_presidenti_no_filtri) self.assertFalse(esito) esito = delegato_formazione.appartiene_al_segmento(segmento_delegati_US_no_filtri) self.assertFalse(esito) esito = delegato_formazione.appartiene_al_segmento(segmento_delegati_autoparco_no_filtri) self.assertFalse(esito) esito = delegato_formazione.appartiene_al_segmento(segmento_delegati_formazione_no_filtri) self.assertTrue(esito) # Aspirante volontario iscritto ad un corso aspirante_corsista = crea_persona() sede = crea_sede() aspirante = Aspirante(persona=aspirante_corsista) aspirante.save() corso = CorsoBase.objects.create( stato='A', sede=sede, data_inizio=datetime.datetime.now() + datetime.timedelta(days=5), data_esame=datetime.datetime.now() + datetime.timedelta(days=25), progressivo=1, anno=anno_corrente ) partecipazione = PartecipazioneCorsoBase( persona=aspirante_corsista, corso=corso ) partecipazione.ammissione = 'AM' partecipazione.save() esito = aspirante_corsista.appartiene_al_segmento(segmento_tutti_no_filtri) self.assertTrue(esito) esito = aspirante_corsista.appartiene_al_segmento(segmento_volontari_no_filtri) self.assertFalse(esito) esito = aspirante_corsista.appartiene_al_segmento(segmento_presidenti_no_filtri) self.assertFalse(esito) esito = aspirante_corsista.appartiene_al_segmento(segmento_delegati_US_no_filtri) self.assertFalse(esito) esito = aspirante_corsista.appartiene_al_segmento(segmento_delegati_autoparco_no_filtri) self.assertFalse(esito) esito = aspirante_corsista.appartiene_al_segmento(segmento_delegati_formazione_no_filtri) self.assertFalse(esito) esito = aspirante_corsista.appartiene_al_segmento(segmento_aspiranti_corsisti_no_filtri) self.assertTrue(esito) # Volontario con titolo volontario_con_titolo, _, _ = crea_persona_sede_appartenenza() titolo_personale = TitoloPersonale.objects.create(titolo=titolo_patenteCRI, persona=volontario_con_titolo) esito = volontario_con_titolo.appartiene_al_segmento(segmento_tutti_no_filtri) self.assertTrue(esito) esito = volontario_con_titolo.appartiene_al_segmento(segmento_volontari_no_filtri) self.assertTrue(esito) esito = volontario_con_titolo.appartiene_al_segmento(segmento_presidenti_no_filtri) self.assertFalse(esito) esito =volontario_con_titolo.appartiene_al_segmento(segmento_volontari_con_titolo_no_filtri) self.assertTrue(esito) # Volontario con titolo di tipo differente dal filtro volontario_con_titolo_differente, _, _ = crea_persona_sede_appartenenza() titolo_patenteCIVILE = Titolo.objects.create(tipo='PP', nome='Titolo test 2') titolo_personale = TitoloPersonale.objects.create(titolo=titolo_patenteCIVILE, persona=volontario_con_titolo_differente) esito = volontario_con_titolo_differente.appartiene_al_segmento(segmento_tutti_no_filtri) self.assertTrue(esito) esito = volontario_con_titolo_differente.appartiene_al_segmento(segmento_volontari_no_filtri) self.assertTrue(esito) esito = volontario_con_titolo_differente.appartiene_al_segmento(segmento_presidenti_no_filtri) self.assertFalse(esito) esito = volontario_con_titolo_differente.appartiene_al_segmento(segmento_volontari_con_titolo_no_filtri) self.assertFalse(esito)
def test_appartenenza(self): data_corrente = datetime.date.today() anno_corrente = data_corrente.year LIVELLI_DELEGATI = [(DELEGATO_OBIETTIVO_1, 'M'), (DELEGATO_OBIETTIVO_2, 'N'), (DELEGATO_OBIETTIVO_3, 'O'), (DELEGATO_OBIETTIVO_4, 'P'), (DELEGATO_OBIETTIVO_5, 'Q'), (DELEGATO_OBIETTIVO_6, 'R')] LIVELLI_ATTIVITA = ['S', 'T', 'U', 'V', 'W', 'X'] # Notizie di test notizia_1 = NotiziaTest.objects.create( testo="Notizia 1: Testo di prova!") notizia_2 = NotiziaTest.objects.create( testo="Notizia 2: Altro testo di prova!") # SEGMENTI NOTIZIA_1 # Segmento per filtrare tutti gli utenti segmento_tutti_no_filtri = NotiziaTestSegmento.objects.create( segmento='A', notiziatest=notizia_1) # Segmento per filtrare tutti i volontari segmento_volontari_no_filtri = NotiziaTestSegmento.objects.create( segmento='B', notiziatest=notizia_1) # Segmento per filtrare tutti i volontari con meno di un anno di attivita segmento_volontari_meno_uno_no_filtri = NotiziaTestSegmento.objects.create( segmento='C', notiziatest=notizia_1) # Segmento per filtrare tutti i volontari con più di un anno di attivita segmento_volontari_piu_uno_no_filtri = NotiziaTestSegmento.objects.create( segmento='D', notiziatest=notizia_1) # Segmento per filtrare tutti i volontari con meno di 35 anni segmento_volontari_meno_35_anni_no_filtri = NotiziaTestSegmento.objects.create( segmento='E', notiziatest=notizia_1) # Segmento per filtrare tutti i volontari con meno di 35 anni segmento_volontari_35_anni_o_piu_no_filtri = NotiziaTestSegmento.objects.create( segmento='F', notiziatest=notizia_1) # Segmento per filtrare tutti i sostenitori segmento_sostenitori_no_filtri = NotiziaTestSegmento.objects.create( segmento='G', notiziatest=notizia_1) # Segmento per filtrare tutti i sostenitori segmento_aspiranti_corsisti_no_filtri = NotiziaTestSegmento.objects.create( segmento='H', notiziatest=notizia_1) # Segmento per filtrare tutti i presidenti con delega attiva segmento_presidenti_no_filtri = NotiziaTestSegmento.objects.create( segmento='I', notiziatest=notizia_1) # Segmento per filtrare tutti i presidenti di comitati locali con delega attiva segmento_presidenti_comitati_locali_no_filtri = NotiziaTestSegmento.objects.create( segmento='J', notiziatest=notizia_1) # Segmento per filtrare tutti i presidenti di comitati regionali con delega attiva segmento_presidenti_comitati_regionali_no_filtri = NotiziaTestSegmento.objects.create( segmento='K', notiziatest=notizia_1) # Segmento per filtrare tutti i delegati Ufficio Soci con delega attiva segmento_delegati_US_no_filtri = NotiziaTestSegmento.objects.create( segmento='L', notiziatest=notizia_1) # Segmento per filtrare tutti i delegati Autoparco con delega attiva segmento_delegati_autoparco_no_filtri = NotiziaTestSegmento.objects.create( segmento='Y', notiziatest=notizia_1) # Segmento per filtrare tutti i delegati Formazione con delega attiva segmento_delegati_formazione_no_filtri = NotiziaTestSegmento.objects.create( segmento='Z', notiziatest=notizia_1) # Segmento per filtrare tutti i volontari con titolo titolo_patenteCRI = Titolo.objects.create(tipo='PC', nome='Titolo test') segmento_volontari_con_titolo_no_filtri = NotiziaTestSegmento.objects.create( segmento='AA', notiziatest=notizia_1, titolo=titolo_patenteCRI) # Utente gaia generico persona = crea_persona() persona.save() # Test appartenenza esito = persona.appartiene_al_segmento(segmento_tutti_no_filtri) self.assertTrue(esito) esito = persona.appartiene_al_segmento(segmento_volontari_no_filtri) self.assertFalse(esito) esito = persona.appartiene_al_segmento(segmento_presidenti_no_filtri) self.assertFalse(esito) # Volontario volontario, _, _ = crea_persona_sede_appartenenza() esito = volontario.appartiene_al_segmento(segmento_tutti_no_filtri) self.assertTrue(esito) esito = volontario.appartiene_al_segmento(segmento_volontari_no_filtri) self.assertTrue(esito) esito = volontario.appartiene_al_segmento( segmento_presidenti_no_filtri) self.assertFalse(esito) # Volontario con meno di un anno di attività volontario_meno_uno, _, _ = crea_persona_sede_appartenenza() volontario_meno_uno.creazione = data_corrente - datetime.timedelta( days=5) volontario_meno_uno.save() esito = volontario_meno_uno.appartiene_al_segmento( segmento_tutti_no_filtri) self.assertTrue(esito) esito = volontario_meno_uno.appartiene_al_segmento( segmento_volontari_no_filtri) self.assertTrue(esito) esito = volontario_meno_uno.appartiene_al_segmento( segmento_presidenti_no_filtri) self.assertFalse(esito) # TODO: creare dati di test per verificare il segmento #esito = volontario_meno_uno.appartiene_al_segmento(segmento_volontari_piu_uno_no_filtri) #self.assertFalse(esito) #esito = volontario_meno_uno.appartiene_al_segmento(segmento_volontari_meno_uno_no_filtri) #self.assertTrue(esito) # Volontario con più di un anno di attività volontario_piu_uno, _, _ = crea_persona_sede_appartenenza() volontario_piu_uno.creazione = data_corrente - datetime.timedelta( days=720) volontario_piu_uno.save() esito = volontario_piu_uno.appartiene_al_segmento( segmento_tutti_no_filtri) self.assertTrue(esito) esito = volontario_piu_uno.appartiene_al_segmento( segmento_volontari_no_filtri) self.assertTrue(esito) esito = volontario_piu_uno.appartiene_al_segmento( segmento_presidenti_no_filtri) self.assertFalse(esito) # TODO: creare dati di test per verificare il segmento #esito = volontario_piu_uno.appartiene_al_segmento(segmento_volontari_meno_uno_no_filtri) #self.assertFalse(esito) #esito = volontario_piu_uno.appartiene_al_segmento(segmento_volontari_piu_uno_no_filtri) #self.assertTrue(esito) # Volontario con meno di 35 anni volontario_meno_35_anni, _, _ = crea_persona_sede_appartenenza() esito = volontario_meno_35_anni.appartiene_al_segmento( segmento_tutti_no_filtri) self.assertTrue(esito) esito = volontario_meno_35_anni.appartiene_al_segmento( segmento_volontari_no_filtri) self.assertTrue(esito) esito = volontario_meno_35_anni.appartiene_al_segmento( segmento_volontari_meno_35_anni_no_filtri) self.assertTrue(esito) esito = volontario_meno_35_anni.appartiene_al_segmento( segmento_presidenti_no_filtri) self.assertFalse(esito) # Volontario con 35 anni o più di età volontario_35_anni_o_piu, _, _ = crea_persona_sede_appartenenza() volontario_35_anni_o_piu.data_nascita = "1960-2-5" volontario_35_anni_o_piu.save() esito = volontario_35_anni_o_piu.appartiene_al_segmento( segmento_tutti_no_filtri) self.assertTrue(esito) esito = volontario_35_anni_o_piu.appartiene_al_segmento( segmento_volontari_no_filtri) self.assertTrue(esito) esito = volontario_35_anni_o_piu.appartiene_al_segmento( segmento_volontari_meno_35_anni_no_filtri) self.assertFalse(esito) esito = volontario_35_anni_o_piu.appartiene_al_segmento( segmento_volontari_35_anni_o_piu_no_filtri) self.assertTrue(esito) esito = volontario_35_anni_o_piu.appartiene_al_segmento( segmento_presidenti_no_filtri) self.assertFalse(esito) # Sostenitore sostenitore, _, appartenenza = crea_persona_sede_appartenenza() appartenenza.membro = Appartenenza.SOSTENITORE appartenenza.save() esito = sostenitore.appartiene_al_segmento(segmento_tutti_no_filtri) self.assertTrue(esito) esito = sostenitore.appartiene_al_segmento( segmento_volontari_no_filtri) self.assertFalse(esito) esito = sostenitore.appartiene_al_segmento( segmento_sostenitori_no_filtri) self.assertTrue(esito) esito = sostenitore.appartiene_al_segmento( segmento_presidenti_no_filtri) self.assertFalse(esito) # Presidente presidente = crea_persona() presidente.save() presidente, sede, _ = crea_persona_sede_appartenenza(presidente) delega_presidente_in_corso = Delega( persona=presidente, tipo=PRESIDENTE, oggetto=sede, inizio=datetime.datetime.now() - datetime.timedelta(days=5), fine=datetime.datetime.now() + datetime.timedelta(days=5)) delega_presidente_in_corso.save() esito = presidente.appartiene_al_segmento(segmento_tutti_no_filtri) self.assertTrue(esito) esito = presidente.appartiene_al_segmento(segmento_volontari_no_filtri) self.assertTrue(esito) esito = presidente.appartiene_al_segmento( segmento_presidenti_no_filtri) self.assertTrue(esito) # Presidente comitato locale presidente_comitato_locale = crea_persona() presidente_comitato_locale, sede, appartenenza = crea_persona_sede_appartenenza( presidente_comitato_locale) delega_presidente_comitato_locale_in_corso = Delega( persona=presidente_comitato_locale, tipo=PRESIDENTE, oggetto=sede, inizio=datetime.datetime.now() - datetime.timedelta(days=5), fine=datetime.datetime.now() + datetime.timedelta(days=5)) delega_presidente_comitato_locale_in_corso.save() esito = presidente_comitato_locale.appartiene_al_segmento( segmento_tutti_no_filtri) self.assertTrue(esito) esito = presidente_comitato_locale.appartiene_al_segmento( segmento_volontari_no_filtri) self.assertTrue(esito) esito = presidente_comitato_locale.appartiene_al_segmento( segmento_presidenti_no_filtri) self.assertTrue(esito) esito = presidente_comitato_locale.appartiene_al_segmento( segmento_presidenti_comitati_locali_no_filtri) self.assertTrue(esito) esito = presidente_comitato_locale.appartiene_al_segmento( segmento_presidenti_comitati_regionali_no_filtri) self.assertFalse(esito) # Presidente comitato regionale presidente_comitato_regionale = crea_persona() presidente_comitato_regionale, sede, appartenenza = crea_persona_sede_appartenenza( presidente_comitato_regionale) sede.estensione = REGIONALE sede.save() delega_presidente_comitato_regionale_in_corso = Delega( persona=presidente_comitato_regionale, tipo=PRESIDENTE, oggetto=sede, inizio=datetime.datetime.now() - datetime.timedelta(days=5), fine=datetime.datetime.now() + datetime.timedelta(days=5)) delega_presidente_comitato_regionale_in_corso.save() esito = presidente_comitato_regionale.appartiene_al_segmento( segmento_tutti_no_filtri) self.assertTrue(esito) esito = presidente_comitato_regionale.appartiene_al_segmento( segmento_volontari_no_filtri) self.assertTrue(esito) esito = presidente_comitato_regionale.appartiene_al_segmento( segmento_presidenti_no_filtri) self.assertTrue(esito) esito = presidente_comitato_regionale.appartiene_al_segmento( segmento_presidenti_comitati_locali_no_filtri) self.assertFalse(esito) esito = presidente_comitato_regionale.appartiene_al_segmento( segmento_presidenti_comitati_regionali_no_filtri) self.assertTrue(esito) # Delegato Ufficio Soci delegato_US = crea_persona() sede_delegato_US = crea_sede() appartenenza = crea_appartenenza(delegato_US, sede_delegato_US) delega_ufficio_soci = Delega( persona=delegato_US, tipo=UFFICIO_SOCI, oggetto=sede_delegato_US, inizio=datetime.datetime.now() - datetime.timedelta(days=5), fine=datetime.datetime.now() + datetime.timedelta(days=5)) delega_ufficio_soci.save() esito = delegato_US.appartiene_al_segmento(segmento_tutti_no_filtri) self.assertTrue(esito) esito = delegato_US.appartiene_al_segmento( segmento_volontari_no_filtri) self.assertTrue(esito) esito = delegato_US.appartiene_al_segmento( segmento_presidenti_no_filtri) self.assertFalse(esito) esito = delegato_US.appartiene_al_segmento( segmento_delegati_US_no_filtri) self.assertTrue(esito) esito = delegato_US.appartiene_al_segmento( segmento_delegati_autoparco_no_filtri) self.assertFalse(esito) # Delegati Obiettivo for livello_obiettivo in LIVELLI_DELEGATI: delegato = crea_persona() sede_delegato = crea_sede() appartenenza = crea_appartenenza(delegato, sede_delegato) segmento = NotiziaTestSegmento.objects.create( segmento=livello_obiettivo[1], notiziatest=notizia_1) delega_obiettivo = Delega( persona=delegato, tipo=livello_obiettivo[0], oggetto=sede_delegato, inizio=datetime.datetime.now() - datetime.timedelta(days=5), fine=datetime.datetime.now() + datetime.timedelta(days=5)) delega_obiettivo.save() esito = delegato.appartiene_al_segmento(segmento_tutti_no_filtri) self.assertTrue(esito) esito = delegato.appartiene_al_segmento( segmento_volontari_no_filtri) self.assertTrue(esito) esito = delegato.appartiene_al_segmento( segmento_presidenti_no_filtri) self.assertFalse(esito) esito = delegato.appartiene_al_segmento(segmento) self.assertTrue(esito) esito = delegato.appartiene_al_segmento( segmento_delegati_autoparco_no_filtri) self.assertFalse(esito) # Referenti attività area for idx, livello_attivita in enumerate(LIVELLI_ATTIVITA): referente = crea_persona() sede_referente = crea_sede() appartenenza = crea_appartenenza(referente, sede_referente) segmento = NotiziaTestSegmento.objects.create( segmento=livello_attivita, notiziatest=notizia_1) delega_referente = Delega( persona=referente, tipo=REFERENTE, oggetto=sede_referente, inizio=datetime.datetime.now() - datetime.timedelta(days=5), fine=datetime.datetime.now() + datetime.timedelta(days=5)) delega_referente.save() area, attivita = crea_area_attivita(sede=sede_referente) area.obiettivo = idx + 1 area.save() attivita.aggiungi_delegato(REFERENTE, referente) esito = referente.appartiene_al_segmento(segmento_tutti_no_filtri) self.assertTrue(esito) esito = referente.appartiene_al_segmento( segmento_volontari_no_filtri) self.assertTrue(esito) esito = referente.appartiene_al_segmento( segmento_presidenti_no_filtri) self.assertFalse(esito) esito = referente.appartiene_al_segmento(segmento) self.assertTrue(esito) esito = referente.appartiene_al_segmento( segmento_delegati_autoparco_no_filtri) self.assertFalse(esito) # Delegato Autoparco delegato_autoparco = crea_persona() sede_delegato_autoparco = crea_sede() appartenenza = crea_appartenenza(delegato_autoparco, sede_delegato_autoparco) delega_autoparco = Delega( persona=delegato_autoparco, tipo=RESPONSABILE_AUTOPARCO, oggetto=sede_delegato_autoparco, inizio=datetime.datetime.now() - datetime.timedelta(days=5), fine=datetime.datetime.now() + datetime.timedelta(days=5)) delega_autoparco.save() esito = delegato_autoparco.appartiene_al_segmento( segmento_tutti_no_filtri) self.assertTrue(esito) esito = delegato_autoparco.appartiene_al_segmento( segmento_volontari_no_filtri) self.assertTrue(esito) esito = delegato_autoparco.appartiene_al_segmento( segmento_presidenti_no_filtri) self.assertFalse(esito) esito = delegato_autoparco.appartiene_al_segmento( segmento_delegati_US_no_filtri) self.assertFalse(esito) esito = delegato_autoparco.appartiene_al_segmento( segmento_delegati_autoparco_no_filtri) self.assertTrue(esito) # Delegato Formazione delegato_formazione = crea_persona() sede_delegato_formazione = crea_sede() appartenenza = crea_appartenenza(delegato_formazione, sede_delegato_formazione) delega_formazione = Delega( persona=delegato_formazione, tipo=RESPONSABILE_FORMAZIONE, oggetto=sede_delegato_formazione, inizio=datetime.datetime.now() - datetime.timedelta(days=5), fine=datetime.datetime.now() + datetime.timedelta(days=5)) delega_formazione.save() esito = delegato_formazione.appartiene_al_segmento( segmento_tutti_no_filtri) self.assertTrue(esito) esito = delegato_formazione.appartiene_al_segmento( segmento_volontari_no_filtri) self.assertTrue(esito) esito = delegato_formazione.appartiene_al_segmento( segmento_presidenti_no_filtri) self.assertFalse(esito) esito = delegato_formazione.appartiene_al_segmento( segmento_delegati_US_no_filtri) self.assertFalse(esito) esito = delegato_formazione.appartiene_al_segmento( segmento_delegati_autoparco_no_filtri) self.assertFalse(esito) esito = delegato_formazione.appartiene_al_segmento( segmento_delegati_formazione_no_filtri) self.assertTrue(esito) # Aspirante volontario iscritto ad un corso aspirante_corsista = crea_persona() sede = crea_sede() aspirante = Aspirante(persona=aspirante_corsista) aspirante.save() corso = CorsoBase.objects.create( stato='A', sede=sede, data_inizio=datetime.datetime.now() + datetime.timedelta(days=5), data_esame=datetime.datetime.now() + datetime.timedelta(days=25), progressivo=1, anno=anno_corrente) partecipazione = PartecipazioneCorsoBase(persona=aspirante_corsista, corso=corso) partecipazione.ammissione = 'AM' partecipazione.save() esito = aspirante_corsista.appartiene_al_segmento( segmento_tutti_no_filtri) self.assertTrue(esito) esito = aspirante_corsista.appartiene_al_segmento( segmento_volontari_no_filtri) self.assertFalse(esito) esito = aspirante_corsista.appartiene_al_segmento( segmento_presidenti_no_filtri) self.assertFalse(esito) esito = aspirante_corsista.appartiene_al_segmento( segmento_delegati_US_no_filtri) self.assertFalse(esito) esito = aspirante_corsista.appartiene_al_segmento( segmento_delegati_autoparco_no_filtri) self.assertFalse(esito) esito = aspirante_corsista.appartiene_al_segmento( segmento_delegati_formazione_no_filtri) self.assertFalse(esito) esito = aspirante_corsista.appartiene_al_segmento( segmento_aspiranti_corsisti_no_filtri) self.assertTrue(esito) # Volontario con titolo volontario_con_titolo, _, _ = crea_persona_sede_appartenenza() titolo_personale = TitoloPersonale.objects.create( titolo=titolo_patenteCRI, persona=volontario_con_titolo) esito = volontario_con_titolo.appartiene_al_segmento( segmento_tutti_no_filtri) self.assertTrue(esito) esito = volontario_con_titolo.appartiene_al_segmento( segmento_volontari_no_filtri) self.assertTrue(esito) esito = volontario_con_titolo.appartiene_al_segmento( segmento_presidenti_no_filtri) self.assertFalse(esito) esito = volontario_con_titolo.appartiene_al_segmento( segmento_volontari_con_titolo_no_filtri) self.assertTrue(esito) # Volontario con titolo di tipo differente dal filtro volontario_con_titolo_differente, _, _ = crea_persona_sede_appartenenza( ) titolo_patenteCIVILE = Titolo.objects.create(tipo='PP', nome='Titolo test 2') titolo_personale = TitoloPersonale.objects.create( titolo=titolo_patenteCIVILE, persona=volontario_con_titolo_differente) esito = volontario_con_titolo_differente.appartiene_al_segmento( segmento_tutti_no_filtri) self.assertTrue(esito) esito = volontario_con_titolo_differente.appartiene_al_segmento( segmento_volontari_no_filtri) self.assertTrue(esito) esito = volontario_con_titolo_differente.appartiene_al_segmento( segmento_presidenti_no_filtri) self.assertFalse(esito) esito = volontario_con_titolo_differente.appartiene_al_segmento( segmento_volontari_con_titolo_no_filtri) self.assertFalse(esito)