Ejemplo n.º 1
0
    def update_actions_for_phase(cls, fase, piano, procedura_vas, user):
        ensure_fase(fase, Fase.ANAGRAFICA)

        _epv = piano.getFirstAction(
            TipologiaAzione.emissione_provvedimento_verifica)
        if needs_execution(_epv):
            now = get_now()
            chiudi_azione(_epv, now)

            procedura_vas.data_assoggettamento = now
            procedura_vas.verifica_effettuata = True
            procedura_vas.save()

            crea_azione(
                Azione(
                    piano=piano,
                    tipologia=TipologiaAzione.
                    pubblicazione_provvedimento_verifica_ac,
                    qualifica_richiesta=QualificaRichiesta.AC,
                    stato=StatoAzione.NECESSARIA,
                ))

            crea_azione(
                Azione(
                    piano=piano,
                    tipologia=TipologiaAzione.
                    pubblicazione_provvedimento_verifica_ap,
                    qualifica_richiesta=QualificaRichiesta.COMUNE,
                    stato=StatoAzione.NECESSARIA,
                ))
Ejemplo n.º 2
0
    def update_actions_for_phase(cls, fase, piano, procedura_vas, user):
        ensure_fase(fase, Fase.ANAGRAFICA)

        if procedura_vas.tipologia == TipologiaVAS.VERIFICA:
            exp = TipoExpire.EMISSIONE_PV_VERIFICA
        elif procedura_vas.tipologia == TipologiaVAS.PROCEDIMENTO_SEMPLIFICATO:
            exp = TipoExpire.EMISSIONE_PV_PROCEDIMENTOSEMPLIFICATO
        else:
            raise GraphQLError("Tipo procedura VAS inaspettata: {}".format(
                procedura_vas.tipologia),
                               code=403)

        _pareri_verifica_vas = piano.getFirstAction(
            TipologiaAzione.pareri_verifica_sca)
        if needs_execution(_pareri_verifica_vas):
            chiudi_azione(_pareri_verifica_vas)

            _azione_start_vas = piano.getFirstAction(
                TipologiaAzione.selezione_tipologia_vas)
            _data_start_vas = _azione_start_vas.data

            crea_azione(
                Azione(
                    piano=piano,
                    tipologia=TipologiaAzione.emissione_provvedimento_verifica,
                    qualifica_richiesta=QualificaRichiesta.AC,
                    stato=StatoAzione.ATTESA,
                ).imposta_scadenza(get_scadenza(_data_start_vas, exp)))
    def update_actions_for_phase(cls, fase, piano, procedura_approvazione,
                                 user):

        # Update Azioni Piano
        # - Complete Current Actions
        # - Update Action state accordingly

        ensure_fase(fase, Fase.ADOZIONE)

        _pubblicazione_approvazione = piano.getFirstAction(
            TipologiaAzione.pubblicazione_approvazione)

        if needs_execution(_pubblicazione_approvazione):
            chiudi_azione(_pubblicazione_approvazione)

            _trasmissione_approvazione = piano.getFirstAction(
                TipologiaAzione.trasmissione_approvazione)

            crea_azione(
                Azione(
                    piano=piano,
                    tipologia=TipologiaAzione.attribuzione_conformita_pit,
                    qualifica_richiesta=QualificaRichiesta.REGIONE,
                    stato=StatoAzione.ATTESA,
                ).imposta_scadenza(
                    get_scadenza(_trasmissione_approvazione.data,
                                 TipoExpire.ATTRIBUZIONE_CONFORMITA_PIT)))
Ejemplo n.º 4
0
    def update_actions_for_phase(cls, fase, piano, procedura_avvio, user):
        # Update Azioni Piano
        # - Complete Current Actions
        # - Update Action state accordingly

        ensure_fase(fase, Fase.ANAGRAFICA)

        _esito_cc = piano.getFirstAction(
            TipologiaAzione.esito_conferenza_copianificazione)
        if needs_execution(_esito_cc):
            chiudi_azione(_esito_cc, set_data=False)

            procedura_avvio.notifica_genio_civile = True
            procedura_avvio.save()

            now = get_now()

            _cc = ConferenzaCopianificazione.objects.get(piano=piano)
            _cc.data_chiusura_conferenza = now
            _cc.save()

            crea_azione(
                Azione(
                    piano=piano,
                    tipologia=TipologiaAzione.protocollo_genio_civile,
                    qualifica_richiesta=QualificaRichiesta.GC,
                    stato=StatoAzione.NECESSARIA,
                ))
Ejemplo n.º 5
0
    def update_actions_for_phase(cls, fase, piano, procedura_adozione, user):

        # Update Azioni Piano
        # - Complete Current Actions
        # - Update Action state accordingly
        ensure_fase(fase, Fase.AVVIO)

        if not piano.procedura_vas or (piano.procedura_vas
                                       and piano.procedura_vas.tipologia
                                       == TipologiaVAS.NON_NECESSARIA):
            raise Exception(
                "Tipologia VAS incongruente con l'azione richiesta")

        # TODO: controllare se possibile usare --> _pareri_sca = piano.getFirstAction(TIPOLOGIA_AZIONE.pareri_adozione_sca)
        _pareri_sca_list = piano.azioni(
            tipologia_azione=TipologiaAzione.pareri_adozione_sca)
        _pareri_sca = next((x for x in _pareri_sca_list if needs_execution(x)),
                           None)

        if _pareri_sca:
            chiudi_azione(_pareri_sca)

            crea_azione(
                Azione(
                    piano=piano,
                    tipologia=TipologiaAzione.parere_motivato_ac,
                    qualifica_richiesta=QualificaRichiesta.AC,
                    stato=StatoAzione.ATTESA,
                ).imposta_scadenza(
                    get_scadenza(procedura_adozione.pubblicazione_burt_data,
                                 TipoExpire.ADOZIONE_VAS_PARERE_MOTIVATO_AC)))
Ejemplo n.º 6
0
    def update_actions_for_phase(cls, fase, piano, procedura_adozione, user):

        ensure_fase(fase, Fase.AVVIO)

        pubblicazione_burt = piano.getFirstAction(
            TipologiaAzione.pubblicazione_burt)

        if needs_execution(pubblicazione_burt):
            chiudi_azione(pubblicazione_burt)

            now = get_now()

            crea_azione(
                Azione(
                    piano=piano,
                    tipologia=TipologiaAzione.osservazioni_enti,
                    qualifica_richiesta=QualificaRichiesta.REGIONE,
                    stato=StatoAzione.ATTESA,
                ).imposta_scadenza((
                    now,  # ???
                    procedura_adozione.data_ricezione_osservazioni)))

            crea_azione(
                Azione(
                    piano=piano,
                    tipologia=TipologiaAzione.osservazioni_regione,
                    qualifica_richiesta=QualificaRichiesta.REGIONE,
                    stato=StatoAzione.ATTESA,
                ).imposta_scadenza((
                    now,  # ???
                    procedura_adozione.data_ricezione_osservazioni)))

            crea_azione(
                Azione(
                    piano=piano,
                    tipologia=TipologiaAzione.upload_osservazioni_privati,
                    qualifica_richiesta=QualificaRichiesta.COMUNE,
                    stato=StatoAzione.ATTESA,
                ).imposta_scadenza((
                    now,  # ???
                    procedura_adozione.data_ricezione_osservazioni)))

            if procedura_adozione.pubblicazione_burt_data and \
                    piano.procedura_vas.tipologia != TipologiaVAS.NON_NECESSARIA:

                _procedura_adozione_vas, created = ProceduraAdozioneVAS.objects.get_or_create(
                    piano=piano)

                crea_azione(
                    Azione(
                        piano=piano,
                        tipologia=TipologiaAzione.pareri_adozione_sca,
                        qualifica_richiesta=QualificaRichiesta.SCA,
                        stato=StatoAzione.ATTESA,
                    ).imposta_scadenza(
                        get_scadenza(
                            procedura_adozione.pubblicazione_burt_data,
                            TipoExpire.ADOZIONE_VAS_PARERI_SCA)))
Ejemplo n.º 7
0
    def update_actions_for_phase(cls, fase, piano, procedura_vas, user):
        ensure_fase(fase, Fase.ANAGRAFICA)

        _azione = piano.getFirstAction(TipologiaAzione.trasmissione_pareri_ac)

        if needs_execution(_azione):
            chiudi_azione(_azione)

        check_join_redazione_documenti_vas(user, piano)
Ejemplo n.º 8
0
    def update_actions_for_phase(cls, fase, piano, procedura_vas, info):
        ensure_fase(fase, Fase.ANAGRAFICA)

        _ppv = piano.getFirstAction(
            TipologiaAzione.pubblicazione_provvedimento_verifica_ac)
        if needs_execution(_ppv):
            chiudi_azione(_ppv)

            check_join_pubblicazione_provvedimento(info, piano)
Ejemplo n.º 9
0
    def update_actions_for_phase(cls, fase, piano, procedura_adozione, user):
        ensure_fase(fase, Fase.AVVIO)

        _trasmissione_adozione = piano.getFirstAction(
            TipologiaAzione.trasmissione_adozione)

        if needs_execution(_trasmissione_adozione):
            chiudi_azione(_trasmissione_adozione)

            inizializza_procedura_cartografica(_trasmissione_adozione)
Ejemplo n.º 10
0
def try_and_close_avvio(piano: Piano):

    procedura_avvio: ProceduraAvvio = piano.procedura_avvio
    procedura_vas: ProceduraVAS = piano.procedura_vas

    _conferenza_copianificazione_attiva = \
        needs_execution(piano.getFirstAction(TipologiaAzione.richiesta_conferenza_copianificazione)) or \
        needs_execution(piano.getFirstAction(TipologiaAzione.esito_conferenza_copianificazione))

    _richiesta_integrazioni = piano.getFirstAction(
        TipologiaAzione.richiesta_integrazioni)
    _integrazioni_richieste = piano.getFirstAction(
        TipologiaAzione.integrazioni_richieste)

    _protocollo_genio_civile = piano.getFirstAction(
        TipologiaAzione.protocollo_genio_civile)

    _formazione_del_piano = piano.getFirstAction(
        TipologiaAzione.formazione_del_piano)

    if not _conferenza_copianificazione_attiva and \
            is_executed(_protocollo_genio_civile) and \
            is_executed(_formazione_del_piano) and \
            (not procedura_avvio.richiesta_integrazioni or (is_executed(_integrazioni_richieste))) and \
            (not procedura_vas or procedura_vas.conclusa or procedura_vas.tipologia == TipologiaVAS.NON_NECESSARIA):

        if procedura_vas and procedura_vas.conclusa:
            chiudi_pendenti(piano, attesa=True, necessaria=False)

        procedura_avvio.conclusa = True
        procedura_avvio.save()

        PianoControdedotto.objects.get_or_create(piano=piano)
        PianoRevPostCP.objects.get_or_create(piano=piano)

        procedura_adozione, created = ProceduraAdozione.objects.get_or_create(
            piano=piano)
        piano.procedura_adozione = procedura_adozione
        piano.save()

        return True

    return False
Ejemplo n.º 11
0
    def update_actions_for_phase(cls, fase, piano, procedura_vas, user):

        ensure_fase(fase, Fase.ANAGRAFICA)

        _formazione_del_piano = piano.getFirstAction(
            TipologiaAzione.formazione_del_piano)
        if needs_execution(_formazione_del_piano):
            chiudi_azione(_formazione_del_piano)

            try_and_close_avvio(piano)
Ejemplo n.º 12
0
    def update_actions_for_phase(cls, fase, piano, procedura_vas, user):
        ensure_fase(fase, Fase.ANAGRAFICA)

        _azione = piano.getFirstAction(TipologiaAzione.redazione_documenti_vas)

        if needs_execution(_azione):
            chiudi_azione(_azione)

        procedura_vas.conclusa = True
        procedura_vas.save()
Ejemplo n.º 13
0
    def update_actions_for_phase(cls, fase, piano: Piano, procedura_avvio,
                                 user):
        # Update Azioni Piano
        # - Update Action state accordingly
        ensure_fase(fase, Fase.ANAGRAFICA)

        _integrazioni_richieste = piano.getFirstAction(
            TipologiaAzione.integrazioni_richieste)
        if needs_execution(_integrazioni_richieste):
            chiudi_azione(_integrazioni_richieste)

            try_and_close_avvio(piano)
Ejemplo n.º 14
0
    def update_actions_for_phase(cls, fase, piano, procedura_adozione, user):

        # Update Azioni Piano
        # - Update Action state accordingly
        ensure_fase(fase, Fase.AVVIO)

        _rev_piano_post_cp = piano.getFirstAction(
            TipologiaAzione.rev_piano_post_cp)

        if needs_execution(_rev_piano_post_cp):
            chiudi_azione(_rev_piano_post_cp)

            inizializza_procedura_cartografica(_rev_piano_post_cp)
Ejemplo n.º 15
0
    def update_actions_for_phase(cls, fase, piano, procedura_adozione, user):

        # Update Azioni Piano
        # - Complete Current Actions
        # - Update Action state accordingly
        ensure_fase(fase, Fase.AVVIO)

        _piano_controdedotto = piano.getFirstAction(
            TipologiaAzione.piano_controdedotto)

        if needs_execution(_piano_controdedotto):
            chiudi_azione(_piano_controdedotto)

            inizializza_procedura_cartografica(_piano_controdedotto)
    def update_actions_for_phase(cls, fase, piano, procedura_approvazione,
                                 user):
        # Update Azioni Piano
        # - Complete Current Actions
        # - Update Action state accordingly

        ensure_fase(fase, Fase.ADOZIONE)

        _trasmissione_approvazione = piano.getFirstAction(
            TipologiaAzione.trasmissione_approvazione)
        if needs_execution(_trasmissione_approvazione):
            chiudi_azione(_trasmissione_approvazione)

            inizializza_procedura_cartografica(_trasmissione_approvazione)
Ejemplo n.º 17
0
    def update_actions_for_phase(cls, fase, piano, procedura_adozione, user):

        ensure_fase(fase, Fase.AVVIO)

        _controdeduzioni = piano.getFirstAction(
            TipologiaAzione.controdeduzioni)
        if needs_execution(_controdeduzioni):
            now = get_now()
            chiudi_azione(_controdeduzioni, now)

            for tipo in [
                    TipologiaAzione.osservazioni_enti,
                    TipologiaAzione.osservazioni_regione,
                    TipologiaAzione.upload_osservazioni_privati
            ]:
                oss = piano.getFirstAction(tipo)
                if needs_execution(oss):
                    chiudi_azione(oss, now)

            crea_azione(
                Azione(piano=piano,
                       tipologia=TipologiaAzione.piano_controdedotto,
                       qualifica_richiesta=QualificaRichiesta.COMUNE,
                       stato=StatoAzione.ATTESA))
Ejemplo n.º 18
0
def promuovi_piano(fase: Fase, piano):

    procedura_vas = piano.procedura_vas

    # Update Azioni Piano
    _order = Azione.count_by_piano(piano)

    # - Attach Actions Templates for the Next "Fase"
    for _a in AZIONI_BASE[fase]:
        crea_azione(
            Azione(piano=piano,
                   tipologia=_a["tipologia"],
                   qualifica_richiesta=_a["qualifica"],
                   order=_order,
                   stato=StatoAzione.NECESSARIA))
        _order += 1

    # - Update Action state accordingly
    if fase == Fase.ANAGRAFICA:
        _creato = piano.getFirstAction(TipologiaAzione.creato_piano)
        if _creato.stato != StatoAzione.NECESSARIA:
            raise Exception("Stato Inconsistente!")

        chiudi_azione(_creato)

    elif fase == Fase.AVVIO:
        ## TODO check -- WTF?????
        _richiesta_integrazioni = piano.getFirstAction(
            TipologiaAzione.richiesta_integrazioni)
        if needs_execution(_richiesta_integrazioni):
            chiudi_azione(_richiesta_integrazioni)

        _integrazioni_richieste = piano.getFirstAction(
            TipologiaAzione.integrazioni_richieste)
        if needs_execution(_integrazioni_richieste):
            chiudi_azione(_integrazioni_richieste)
Ejemplo n.º 19
0
    def update_actions_for_phase(cls, fase, piano, procedura_avvio, user):
        ensure_fase(fase, Fase.ANAGRAFICA)

        _protocollo_genio_civile = piano.getFirstAction(
            TipologiaAzione.protocollo_genio_civile)
        if needs_execution(_protocollo_genio_civile):
            now = datetime.datetime.now(timezone.get_current_timezone())
            chiudi_azione(_protocollo_genio_civile, data=now)

            piano.data_protocollo_genio_civile = now
            piano.save()

            return try_and_close_avvio(piano)

        return False
Ejemplo n.º 20
0
    def update_actions_for_phase(cls, fase, piano, procedura_adozione, user):

        ensure_fase(fase, Fase.AVVIO)

        _upload_osservazioni_privati = piano.getFirstAction(
            TipologiaAzione.upload_osservazioni_privati)
        if needs_execution(_upload_osservazioni_privati):
            chiudi_azione(_upload_osservazioni_privati)

            if not piano.getFirstAction(TipologiaAzione.controdeduzioni):
                crea_azione(
                    Azione(piano=piano,
                           tipologia=TipologiaAzione.controdeduzioni,
                           qualifica_richiesta=QualificaRichiesta.COMUNE,
                           stato=StatoAzione.ATTESA))
    def update_actions_for_phase(cls, fase, piano, procedura_approvazione,
                                 user):

        # Update Azioni Piano
        # - Complete Current Actions
        # - Update Action state accordingly

        ensure_fase(fase, Fase.ADOZIONE)

        _esito_cp = piano.getFirstAction(
            TipologiaAzione.esito_conferenza_paesaggistica_ap)

        if needs_execution(_esito_cp):
            chiudi_azione(_esito_cp)

            inizializza_procedura_cartografica(_esito_cp)
Ejemplo n.º 22
0
    def update_actions_for_phase(cls, fase, piano, procedura_vas, user):
        ensure_fase(fase, Fase.ANAGRAFICA)

        _pareri_verifica_vas = piano.getFirstAction(
            TipologiaAzione.trasmissione_dpv_vas)
        if needs_execution(_pareri_verifica_vas):
            now = get_now()
            chiudi_azione(_pareri_verifica_vas, now)

            crea_azione(
                Azione(
                    piano=piano,
                    tipologia=TipologiaAzione.pareri_verifica_sca,
                    qualifica_richiesta=QualificaRichiesta.SCA,
                    stato=StatoAzione.ATTESA,
                ).imposta_scadenza(
                    get_scadenza(now, TipoExpire.PARERI_VERIFICA_SCA)))
    def update_actions_for_phase(cls, fase, piano, procedura_pubblicazione,
                                 user):

        ensure_fase(fase, Fase.APPROVAZIONE)

        # - Update Action state accordingly
        _pubblicazione_piano = piano.getFirstAction(
            TipologiaAzione.pubblicazione_piano)

        if needs_execution(_pubblicazione_piano):
            chiudi_azione(_pubblicazione_piano)

        if not procedura_pubblicazione.conclusa:
            chiudi_pendenti(piano, attesa=True, necessaria=True)
            procedura_pubblicazione.data_pubblicazione = _pubblicazione_piano.data
            procedura_pubblicazione.conclusa = True
            procedura_pubblicazione.save()
            piano.save()
Ejemplo n.º 24
0
    def update_actions_for_phase(cls, fase, piano, procedura_adozione, user):

        # Update Azioni Piano
        # - Complete Current Actions
        # - Update Action state accordingly
        ensure_fase(fase, Fase.AVVIO)

        _esito_cp = piano.getFirstAction(
            TipologiaAzione.esito_conferenza_paesaggistica)

        if needs_execution(_esito_cp):
            chiudi_azione(_esito_cp)

            crea_azione(
                Azione(piano=piano,
                       tipologia=TipologiaAzione.rev_piano_post_cp,
                       qualifica_richiesta=QualificaRichiesta.COMUNE,
                       stato=StatoAzione.NECESSARIA))
Ejemplo n.º 25
0
    def update_actions_for_phase(cls, fase, piano, procedura_avvio, user):

        ensure_fase(fase, Fase.ANAGRAFICA)

        _avvio_procedimento = piano.getFirstAction(
            TipologiaAzione.avvio_procedimento)
        if needs_execution(_avvio_procedimento):
            if not cls.autorita_ok(piano, [Qualifica.GC]):
                raise GraphQLError(
                    "Genio Civile non trovato tra i soggetti operanti",
                    code=400)

            if not cls.autorita_ok(piano, [Qualifica.OPREG]):
                raise GraphQLError(
                    "Pianificazione o Urbanistica non trovato tra i soggetti operanti",
                    code=400)

            if procedura_avvio.conferenza_copianificazione is None:
                raise GraphQLError("Conferenza copianificazione non impostata",
                                   code=400)

            chiudi_azione(_avvio_procedimento)

            crea_azione(
                Azione(
                    piano=piano,
                    tipologia=TipologiaAzione.contributi_tecnici,
                    qualifica_richiesta=QualificaRichiesta.REGIONE,
                    stato=StatoAzione.ATTESA,
                ).imposta_scadenza((
                    get_now(),  # ??
                    procedura_avvio.data_scadenza_risposta)))

            crea_azione(Azione(
                piano=piano,
                tipologia=TipologiaAzione.selezione_tipologia_vas,
                qualifica_richiesta=QualificaRichiesta.COMUNE,
                stato=StatoAzione.ATTESA,
            ),
                        send_mail=False)

            init_vas_procedure(piano, user)
    def update_actions_for_phase(cls, fase, piano, procedura_approvazione,
                                 user):

        ensure_fase(fase, Fase.ADOZIONE)

        _attribuzione_conformita_pit = piano.getFirstAction(
            TipologiaAzione.attribuzione_conformita_pit)

        if needs_execution(_attribuzione_conformita_pit):
            chiudi_azione(_attribuzione_conformita_pit)

        if not procedura_approvazione.conclusa:
            chiudi_pendenti(piano, attesa=True, necessaria=False)
            procedura_approvazione.conclusa = True
            procedura_approvazione.save()

            procedura_pubblicazione, created = ProceduraPubblicazione.objects.get_or_create(
                piano=piano)
            piano.procedura_pubblicazione = procedura_pubblicazione
            piano.save()
Ejemplo n.º 27
0
    def update_actions_for_phase(cls, fase, piano, procedura_avvio, user):
        # Update Azioni Piano
        # - Complete Current Actions
        # - Update Action state accordingly

        ensure_fase(fase, Fase.ANAGRAFICA)

        _richiesta_integrazioni = piano.getFirstAction(
            TipologiaAzione.richiesta_integrazioni)
        if needs_execution(_richiesta_integrazioni):

            chiudi_azione(_richiesta_integrazioni)

            if procedura_avvio.richiesta_integrazioni:
                crea_azione(
                    Azione(piano=piano,
                           tipologia=TipologiaAzione.integrazioni_richieste,
                           qualifica_richiesta=QualificaRichiesta.COMUNE,
                           stato=StatoAzione.ATTESA))
            else:
                try_and_close_avvio(piano)
Ejemplo n.º 28
0
    def update_actions_for_phase(cls, fase, piano, procedura_avvio, user):

        ensure_fase(fase, Fase.ANAGRAFICA)

        # _avvio_procedimento = piano.getFirstAction(TIPOLOGIA_AZIONE.avvio_procedimento)
        # if isExecuted(_avvio_procedimento):
        if procedura_avvio.conferenza_copianificazione != TipologiaCopianificazione.POSTICIPATA:
            return GraphQLError(
                "Errore nello stato del piano - Tipologia copianificazione errata",
                code=400)

        _richiesta_cc = piano.getFirstAction(
            TipologiaAzione.richiesta_conferenza_copianificazione)
        if needs_execution(_richiesta_cc):
            chiudi_azione(_richiesta_cc, set_data=False)

            procedura_avvio.notifica_genio_civile = False
            procedura_avvio.save()

            _cc = ConferenzaCopianificazione.objects.get(piano=piano)
            _cc.data_richiesta_conferenza = get_now()
            _cc.data_scadenza_risposta = procedura_avvio.data_scadenza_risposta
            _cc.save()

            crea_azione(
                Azione(piano=piano,
                       tipologia=TipologiaAzione.richiesta_integrazioni,
                       qualifica_richiesta=QualificaRichiesta.REGIONE,
                       stato=StatoAzione.ATTESA))

            crea_azione(
                Azione(
                    piano=piano,
                    tipologia=TipologiaAzione.
                    esito_conferenza_copianificazione,
                    qualifica_richiesta=QualificaRichiesta.REGIONE,
                    stato=StatoAzione.ATTESA,
                ))
Ejemplo n.º 29
0
    def update_actions_for_phase(cls, fase, piano, procedura_adozione, user):

        # Update Azioni Piano
        # - Complete Current Actions
        # - Update Action state accordingly
        ensure_fase(fase, Fase.AVVIO)

        if not piano.procedura_vas or (piano.procedura_vas
                                       and piano.procedura_vas.tipologia
                                       == TipologiaVAS.NON_NECESSARIA):
            raise Exception(
                "Tipologia VAS incongruente con l'azione richiesta")

        _parere_motivato_ac = piano.getFirstAction(
            TipologiaAzione.parere_motivato_ac)

        if needs_execution(_parere_motivato_ac):
            chiudi_azione(_parere_motivato_ac)

            crea_azione(
                Azione(piano=piano,
                       tipologia=TipologiaAzione.upload_elaborati_adozione_vas,
                       qualifica_richiesta=QualificaRichiesta.COMUNE,
                       stato=StatoAzione.ATTESA))
Ejemplo n.º 30
0
    def update_actions_for_phase(cls, fase, piano, procedura_adozione, user):

        # Update Azioni Piano
        # - Update Action state accordingly
        ensure_fase(fase, Fase.AVVIO)

        if not piano.procedura_vas or (piano.procedura_vas
                                       and piano.procedura_vas.tipologia
                                       == TipologiaVAS.NON_NECESSARIA):
            raise Exception(
                "Tipologia VAS incongruente con l'azione richiesta")

        _upload_elaborati_adozione_vas = piano.getFirstAction(
            TipologiaAzione.upload_elaborati_adozione_vas)

        if needs_execution(_upload_elaborati_adozione_vas):
            chiudi_azione(_upload_elaborati_adozione_vas)

            _procedura_adozione_vas = ProceduraAdozioneVAS.objects.filter(
                piano=piano).last()
            _procedura_adozione_vas.conclusa = True
            _procedura_adozione_vas.save()

            try_and_close_adozione(piano)