Beispiel #1
0
def veicoli_veicolo_modifica_o_nuovo(request, me, pk=None):
    veicolo = None
    if pk is not None:
        veicolo = get_object_or_404(Veicolo, pk=pk)
        if not me.permessi_almeno(veicolo, MODIFICA):
            return redirect(ERRORE_PERMESSI)

    modulo = ModuloCreazioneVeicolo(request.POST or None, instance=veicolo)
    if pk is None:
        autoparchi, veicoli = _autoparchi_e_veicoli(me)
        modulo.fields["autoparco"] = forms.ModelChoiceField(
            queryset=autoparchi)
        modulo.fields["data_collocazione"] = forms.DateField(
            initial=datetime.date.today())
    if modulo.is_valid():
        v = modulo.save()

        if pk is None:
            collocazione = Collocazione(
                autoparco=modulo.cleaned_data["autoparco"],
                inizio=modulo.cleaned_data["data_collocazione"],
                veicolo=v)
            collocazione.save()
            return redirect("/veicoli/")
    contesto = {
        "modulo": modulo,
        "veicolo": veicolo,
    }

    return "veicoli_veicolo_modifica_o_nuovo.html", contesto
Beispiel #2
0
def veicoli_veicolo_modifica_o_nuovo(request, me, pk=None):
    veicolo = None
    if pk is not None:
        veicolo = get_object_or_404(Veicolo, pk=pk)
        if not me.permessi_almeno(veicolo, MODIFICA):
            return redirect(ERRORE_PERMESSI)

    modulo = ModuloCreazioneVeicolo(request.POST or None, instance=veicolo)
    if pk is None:
        autoparchi, veicoli =_autoparchi_e_veicoli(me)
        modulo.fields["autoparco"] = forms.ModelChoiceField(queryset=autoparchi)
        modulo.fields["data_collocazione"] = forms.DateField(initial=datetime.date.today())
    if modulo.is_valid():
        v = modulo.save()

        if pk is None:
            collocazione = Collocazione(
                autoparco=modulo.cleaned_data["autoparco"],
                inizio=modulo.cleaned_data["data_collocazione"],
                veicolo=v
            )
            collocazione.save()
            return redirect("/veicoli/")
    contesto = {
        "modulo": modulo,
        "veicolo": veicolo,
    }

    return "veicoli_veicolo_modifica_o_nuovo.html", contesto
Beispiel #3
0
def espandi_gestione_autoparchi_sede(qs_sedi, al_giorno=None):
    from veicoli.models import Autoparco, Veicolo, Collocazione
    return [
        (MODIFICA,  Autoparco.objects.filter(sede__in=qs_sedi.espandi())),
        (MODIFICA,  Veicolo.objects.filter(Collocazione.query_attuale().via("collocazioni"),
                                           collocazioni__autoparco__sede__in=qs_sedi.espandi())),
        (MODIFICA,  Collocazione.query_attuale(autoparco__sede__in=qs_sedi.espandi())),
    ]
Beispiel #4
0
def espandi_gestione_autoparchi_sede(qs_sedi, al_giorno=None):
    from veicoli.models import Autoparco, Veicolo, Collocazione
    try:
        return [
            (MODIFICA, Autoparco.objects.filter(sede__in=qs_sedi.espandi())),
            (MODIFICA, Veicolo.objects.filter(Collocazione.query_attuale().via("collocazioni"),
                                              collocazioni__autoparco__sede__in=qs_sedi.espandi())),
            (MODIFICA, Collocazione.query_attuale(autoparco__sede__in=qs_sedi.espandi())),
        ]
    except (AttributeError, ValueError, KeyError, TypeError):
        return []
Beispiel #5
0
def veicoli_elenco(request, me):

    modulo = ModuloFiltraVeicoli(request.POST or None)

    autoparchi, veicoli = _autoparchi_e_veicoli(me)
    modulo.fields['autoparchi'].queryset = autoparchi
    modulo.fields['autoparchi'].initial = autoparchi

    if modulo.is_valid():
        autoparchi = modulo.cleaned_data.get('autoparchi')
        targa = modulo.cleaned_data.get('targa')
        stati = modulo.cleaned_data.get('stato')
        veicoli = veicoli.filter(
            Collocazione.query_attuale().via("collocazioni"),
            collocazioni__autoparco__in=autoparchi,
            targa__icontains=targa,
            stato=stati)
    else:
        veicoli = veicoli.filter(stato=Veicolo.IN_SERVIZIO)

    contesto = {
        "veicoli": veicoli,
        "autoparchi": autoparchi,
        "modulo": modulo,
    }
    return "veicoli_elenco.html", contesto
Beispiel #6
0
def _autoparchi_e_veicoli(persona):
    sedi = persona.oggetti_permesso(GESTIONE_AUTOPARCHI_SEDE)
    autoparchi = Autoparco.objects.filter(sede__in=sedi)
    veicoli = Veicolo.objects.filter(
        Collocazione.query_attuale().via("collocazioni"),
        collocazioni__autoparco__in=autoparchi)
    return autoparchi, veicoli
Beispiel #7
0
def _autoparchi_e_veicoli(persona):
    sedi = persona.oggetti_permesso(GESTIONE_AUTOPARCHI_SEDE)
    autoparchi = Autoparco.objects.filter(sede__in=sedi)
    veicoli = Veicolo.objects.filter(
        Collocazione.query_attuale().via("collocazioni"),
        collocazioni__autoparco__in=autoparchi
    )
    return autoparchi, veicoli
Beispiel #8
0
def veicoli_elenco_autoparco(request, me, autoparco):

    autoparco = get_object_or_404(Autoparco, pk=autoparco)
    veicoli = Veicolo.objects.filter(Collocazione.query_attuale().via("collocazioni"), collocazioni__autoparco=autoparco, stato=Veicolo.IN_SERVIZIO)

    if not me.permessi_almeno(autoparco, MODIFICA):
        return redirect(ERRORE_PERMESSI)

    contesto = {
        "veicoli": veicoli,
    }
    return "veicoli_elenco_autoparco.html", contesto
Beispiel #9
0
def veicoli_elenco_autoparco(request, me, autoparco):

    autoparco = get_object_or_404(Autoparco, pk=autoparco)
    veicoli = Veicolo.objects.filter(
        Collocazione.query_attuale().via("collocazioni"),
        collocazioni__autoparco=autoparco,
        stato=Veicolo.IN_SERVIZIO)

    if not me.permessi_almeno(autoparco, MODIFICA):
        return redirect(ERRORE_PERMESSI)

    contesto = {
        "veicoli": veicoli,
    }
    return "veicoli_elenco_autoparco.html", contesto
Beispiel #10
0
def veicoli_elenco(request, me):

    modulo = ModuloFiltraVeicoli(request.POST or None)

    autoparchi, veicoli = _autoparchi_e_veicoli(me)
    modulo.fields['autoparchi'].queryset = autoparchi
    modulo.fields['autoparchi'].initial = autoparchi

    if modulo.is_valid():
        autoparchi = modulo.cleaned_data.get('autoparchi')
        targa = modulo.cleaned_data.get('targa')
        stati = modulo.cleaned_data.get('stato')
        veicoli = veicoli.filter(Collocazione.query_attuale().via("collocazioni"), collocazioni__autoparco__in=autoparchi, targa__icontains=targa, stato=stati)
    else:
        veicoli = veicoli.filter(stato=Veicolo.IN_SERVIZIO)


    contesto = {
        "veicoli": veicoli,
        "autoparchi": autoparchi,
        "modulo": modulo,
    }
    return "veicoli_elenco.html", contesto