Beispiel #1
0
 def annulla(self, annullato_da, invia_notifica=True):
     self.stato = self.ANNULLATA
     self.annullato_da = annullato_da
     self.data_annullamento = oggi()
     self.save()
     if invia_notifica:
         self._invia_notifica_annullamento()
Beispiel #2
0
 def annulla(self, annullato_da, invia_notifica=True):
     self.stato = self.ANNULLATA
     self.annullato_da = annullato_da
     self.data_annullamento = oggi()
     self.save()
     if invia_notifica:
         self._invia_notifica_annullamento()
Beispiel #3
0
    def accetta_pagamenti(self, data=None, iv=False, nv=False):
        if not data:
            data = oggi()
        if iv and self.fine_soci_iv:
            termine = self.fine_soci_iv
        elif nv and self.fine_soci_nv:
            termine = self.fine_soci_nv
        else:
            termine = self.fine_soci
        if not termine:
            if self.stato == self.APERTO:
                termine = oggi() + timedelta(days=1)
            else:
                termine = oggi()

        return self.stato == self.APERTO and data >= self.inizio and data <= termine
Beispiel #4
0
    def accetta_pagamenti(self, data=None, iv=False, nv=False):
        if not data:
            data = oggi()
        if iv and self.fine_soci_iv:
            termine = self.fine_soci_iv
        elif nv and self.fine_soci_nv:
            termine = self.fine_soci_nv
        else:
            termine = self.fine_soci
        if not termine:
            if self.stato == self.APERTO:
                termine = oggi() + timedelta(days=1)
            else:
                termine = oggi()

        return self.stato == self.APERTO and data >= self.inizio and data <= termine
Beispiel #5
0
 def aperto_anno(cls, data=None, iv=False, nv=False):
     try:
         if not data:
             data = oggi()
         t = Tesseramento.objects.get(anno=data.year)
         return t.accetta_pagamenti(data, iv, nv)
     except Tesseramento.DoesNotExist:
         return False
Beispiel #6
0
 def aperto_anno(cls, data=None, iv=False, nv=False):
     try:
         if not data:
             data = oggi()
         t = Tesseramento.objects.get(anno=data.year)
         return t.accetta_pagamenti(data, iv, nv)
     except Tesseramento.DoesNotExist:
         return False
Beispiel #7
0
def titoli_del_corso(persona, cd):
    init_query = persona.titoli_personali_confermati().filter(
        is_course_title=True)
    lista = init_query.filter(titolo__in=cd['titoli'])

    if cd.get('show_only_active', False):
        lista = lista.filter(data_scadenza__gte=oggi())

    return {
        'lista': lista.order_by('-data_scadenza'),
        'num_of_titles': init_query.count()
    }
Beispiel #8
0
    def risultati(self):
        qs_sedi = self.args[0]
        modulo = self.modulo_riempito

        membri = modulo.cleaned_data['membri']
        attivi = membri == modulo.MEMBRI_VOLONTARI
        ordinari = membri == modulo.MEMBRI_ORDINARI

        anno = modulo.cleaned_data['anno']

        try:
            tesseramento = Tesseramento.objects.get(anno=anno)

        except Tesseramento.DoesNotExist:  # Errore tesseramento anno non esistente
            raise ValueError(
                "Anno di tesseramento non valido o gestito da Gaia.")

        # Dobbiamo ridurre il set a tutti i volontari che sono, al giorno attuale, appartenenti a questa sede
        # Nel caso di un anno passato, generiamo l'elenco al 31 dicembre. Nel caso dell'anno in corso,
        # generiamo l'elenco al giorno attuale. Questo e' equivalente a:
        #  giorno = min(31/dicembre/<anno selezionato>, oggi)
        giorno_appartenenza = min(date(day=31, month=12, year=anno), oggi())

        if modulo.cleaned_data['tipo'] == modulo.VERSATE:
            origine = tesseramento.paganti(
                attivi=attivi, ordinari=ordinari)  # Persone con quote pagate

        else:
            origine = tesseramento.non_paganti(
                attivi=attivi,
                ordinari=ordinari)  # Persone con quote NON pagate

        # Ora filtra per Sede
        q = Appartenenza.query_attuale(
            al_giorno=giorno_appartenenza,
            membro=Appartenenza.VOLONTARIO).filter(sede__in=qs_sedi).defer(
                'membro', 'inizio', 'sede')

        return origine.filter(appartenenze__in=q).annotate(
            appartenenza_tipo=F('appartenenze__membro'),
            appartenenza_inizio=F('appartenenze__inizio'),
            appartenenza_sede=F('appartenenze__sede'),
        ).prefetch_related('quote').distinct('cognome', 'nome',
                                             'codice_fiscale')
Beispiel #9
0
    def risultati(self):
        qs_sedi = self.args[0]
        modulo = self.modulo_riempito

        membri = modulo.cleaned_data['membri']
        attivi = membri == modulo.MEMBRI_VOLONTARI
        ordinari = membri == modulo.MEMBRI_ORDINARI

        anno = modulo.cleaned_data['anno']

        try:
            tesseramento = Tesseramento.objects.get(anno=anno)

        except Tesseramento.DoesNotExist:  # Errore tesseramento anno non esistente
            raise ValueError("Anno di tesseramento non valido o gestito da Gaia.")

        # Dobbiamo ridurre il set a tutti i volontari che sono, al giorno attuale, appartenenti a questa sede
        # Nel caso di un anno passato, generiamo l'elenco al 31 dicembre. Nel caso dell'anno in corso,
        # generiamo l'elenco al giorno attuale. Questo e' equivalente a:
        #  giorno = min(31/dicembre/<anno selezionato>, oggi)
        giorno_appartenenza = min(date(day=31, month=12, year=anno), oggi())

        if modulo.cleaned_data['tipo'] == modulo.VERSATE:
            origine = tesseramento.paganti(attivi=attivi, ordinari=ordinari)  # Persone con quote pagate

        else:
            origine = tesseramento.non_paganti(attivi=attivi, ordinari=ordinari)  # Persone con quote NON pagate

        # Ora filtra per Sede
        q = Appartenenza.query_attuale(al_giorno=giorno_appartenenza,
                                       membro=Appartenenza.VOLONTARIO)

        app = Appartenenza.objects.filter(pk__in=q).filter(sede__in=qs_sedi)
        return origine.filter(appartenenze__in=app).annotate(
                appartenenza_tipo=F('appartenenze__membro'),
                appartenenza_inizio=F('appartenenze__inizio'),
                appartenenza_sede=F('appartenenze__sede'),
        ).prefetch_related('quote').distinct('cognome', 'nome', 'codice_fiscale')
Beispiel #10
0
 def accetta_pagamenti(self):
     return self.stato == self.APERTO and oggi() >= self.inizio