示例#1
0
 def risultati(self):
     qs_sedi = self.args[0]
     self.deleghe = self.kwargs['deleghe']
     me = self.kwargs['me_id']
     delegati = Persona.objects.none()
     for delega in self.deleghe:
         tipo = None
         oggetti = None
         if delega in DELEGHE_OGGETTI_DICT and DELEGHE_OGGETTI_DICT[delega][1] != 'Sede':
             try:
                 model = apps.get_model(DELEGHE_OGGETTI_DICT[delega][0], DELEGHE_OGGETTI_DICT[delega][1])
                 tipo = ContentType.objects.get_for_model(model)
                 oggetti = model.objects.filter(**{DELEGHE_OGGETTI_DICT[delega][2]: qs_sedi})
             except Exception as e:
                 pass
         if not tipo:
             tipo = ContentType.objects.get_for_model(Sede)
             oggetti = qs_sedi
         if oggetti:
             delegati |= Persona.objects.filter(
                 Delega.query_attuale(
                     oggetto_tipo=tipo,
                     oggetto_id__in=oggetti,
                     tipo=delega
                 ).via('delega')
             ).exclude(pk=me)
     return delegati.order_by('nome', 'cognome', 'codice_fiscale')\
         .distinct('nome', 'cognome', 'codice_fiscale')
示例#2
0
 def risultati(self):
     qs_sedi = self.args[0]
     self.deleghe = self.kwargs['deleghe']
     me = self.kwargs['me_id']
     delegati = Persona.objects.none()
     for delega in self.deleghe:
         tipo = None
         oggetti = None
         if delega in DELEGHE_OGGETTI_DICT and DELEGHE_OGGETTI_DICT[delega][
                 1] != 'Sede':
             try:
                 model = apps.get_model(DELEGHE_OGGETTI_DICT[delega][0],
                                        DELEGHE_OGGETTI_DICT[delega][1])
                 tipo = ContentType.objects.get_for_model(model)
                 oggetti = model.objects.filter(
                     **{DELEGHE_OGGETTI_DICT[delega][2]: qs_sedi})
             except Exception as e:
                 pass
         if not tipo:
             tipo = ContentType.objects.get_for_model(Sede)
             oggetti = qs_sedi
         if oggetti:
             delegati |= Persona.objects.filter(
                 Delega.query_attuale(
                     oggetto_tipo=tipo, oggetto_id__in=oggetti,
                     tipo=delega).via('delega')).exclude(pk=me)
     return delegati.order_by('nome', 'cognome', 'codice_fiscale')\
         .distinct('nome', 'cognome', 'codice_fiscale')
示例#3
0
def _referenti_attivita(queryset, obiettivo=0):
    # TODO: Assicurarsi che questo filtro funzioni davvero!
    if obiettivo > 0:
        qs = queryset.filter(
            # Subquery per mischiarsi bene con le altre deleghe.
            pk__in=Persona.objects.filter(
                Delega.query_attuale(tipo=REFERENTE, oggetto_tipo=ContentType.objects.get_for_model(Attivita),
                                     oggetto_id__in=Attivita.objects.filter(
                                         area__obiettivo=obiettivo
                                     ).values_list('pk', flat=True)).via("delega")
            ).values_list('pk', flat=True)
        )
        return qs
    return queryset.none()
示例#4
0
def _referenti_attivita(queryset, obiettivo=0):
    # TODO: Assicurarsi che questo filtro funzioni davvero!
    if obiettivo > 0:
        qs = queryset.filter(
            # Subquery per mischiarsi bene con le altre deleghe.
            pk__in=Persona.objects.filter(
                Delega.query_attuale(tipo=REFERENTE, oggetto_tipo=ContentType.objects.get_for_model(Attivita),
                                     oggetto_id__in=Attivita.objects.filter(
                                         area__obiettivo=obiettivo
                                     ).values_list('pk', flat=True)).via("delega")
            ).values_list('pk', flat=True)
        )
        return qs
    return queryset.none()
示例#5
0
    def risultati(self):
        qs_sedi = self.args[0]
        qs_deleghe = self.args[1]
        me = self.args[2]

        delegati = Persona.objects.filter(
            Delega.query_attuale(
                oggetto_tipo=ContentType.objects.get_for_model(Sede),
                oggetto_id__in=qs_sedi,
                tipo__in=qs_deleghe
            ).via("delega")
        ).exclude(pk=me.pk).order_by('nome', 'cognome', 'codice_fiscale')\
            .distinct('nome', 'cognome', 'codice_fiscale')
        return delegati
示例#6
0
def _deleghe_attive(queryset):
    return queryset.filter(
        delega__in=Delega.query_attuale().values_list('pk', flat='True')
    )
示例#7
0
def _deleghe_attive(queryset):
    return queryset.filter(
        delega__in=Delega.query_attuale().values_list('pk', flat='True')
    )