예제 #1
0
    def risultati(self):
        qs_sedi = self.args[0]

        cd = self.modulo_riempito.cleaned_data
        metodo = cd['metodo']
        titoli = cd['titoli']

        base = Persona.objects.filter(
            Appartenenza.query_attuale(
                sede__in=qs_sedi, membro__in=Appartenenza.MEMBRO_SOCIO,
            ).via("appartenenze")
        ).prefetch_related(
            'appartenenze', 'appartenenze__sede',
            'utenza', 'numeri_telefono'
        )

        if metodo == self.modulo_riempito.METODO_OR:
            # Almeno un titolo
            return base.filter(titoli_personali__in=TitoloPersonale.con_esito_ok().filter(
                    titolo__in=titoli,
            )).distinct('cognome', 'nome', 'codice_fiscale')
        else:
            # Tutti i titoli
            base = base.filter(titoli_personali__in=TitoloPersonale.con_esito_ok())
            for titolo in titoli:
                base = base.filter(titoli_personali__titolo=titolo)
            return base.distinct('cognome', 'nome', 'codice_fiscale')
예제 #2
0
    def risultati(self):
        qs_sedi = self.args[0]

        cd = self.modulo_riempito.cleaned_data
        metodo = cd['metodo']
        titoli = cd['titoli']

        base = Persona.objects.filter(
            Appartenenza.query_attuale(
                sede__in=qs_sedi, membro__in=Appartenenza.MEMBRO_SOCIO,
            ).via("appartenenze")
        ).prefetch_related(
            'appartenenze', 'appartenenze__sede',
            'utenza', 'numeri_telefono'
        )

        if metodo == self.modulo_riempito.METODO_OR:
            # Almeno un titolo
            return base.filter(titoli_personali__in=TitoloPersonale.con_esito_ok().filter(
                    titolo__in=titoli,
            )).distinct('cognome', 'nome', 'codice_fiscale')
        else:
            # Tutti i titoli
            base = base.filter(titoli_personali__in=TitoloPersonale.con_esito_ok())
            for titolo in titoli:
                base = base.filter(titoli_personali__titolo=titolo)

        return base.distinct('cognome', 'nome', 'codice_fiscale')
예제 #3
0
    def risultati(self):
        cd = self.modulo_riempito.cleaned_data
        self.kwargs['cleaned_data'] = cd

        # Mostra persone con titoli scaduti/non scaduti
        results = super().risultati()
        return results.filter(titoli_personali__in=TitoloPersonale.con_esito_ok())