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
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
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())), ]
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 []
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
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
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
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
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
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