feat: motor vehicle selector in entry form and routes

This commit is contained in:
2026-03-11 17:52:13 +01:00
parent 9a37bc444d
commit ffbbf2da44
4 changed files with 46 additions and 6 deletions

View File

@@ -37,7 +37,7 @@ def index():
month_km = {}
month_co2 = 0.0
for entry in month_entries:
km = compute_km_for_entry(entry.journey_profile_id, journeys)
km = compute_km_for_entry(entry.journey_profile_id, journeys, entry.motor_vehicle_id)
for v, d in km.items():
month_km[v] = month_km.get(v, 0) + d
month_co2 += compute_co2_grams(km, vehicles)

View File

@@ -3,7 +3,7 @@ from datetime import date, time
import sqlalchemy as sa
from app import db
from app.models import WorkEntry, TimeSlot
from app.config_loader import get_journeys, day_types_without_journey
from app.config_loader import get_journeys, get_motor_vehicles, day_types_without_journey, journey_has_motor
bp = Blueprint("entries", __name__, url_prefix="/entries")
@@ -42,6 +42,9 @@ def entry_form(entry_id=None):
entry_date = date.fromisoformat(request.form["date"])
day_type = request.form["day_type"]
journey_profile_id = request.form.get("journey_profile_id") or None
motor_vehicle_id = request.form.get("motor_vehicle_id") or None
if not journey_has_motor(journey_profile_id):
motor_vehicle_id = None
comment = request.form.get("comment") or None
if day_type in day_types_without_journey():
@@ -60,6 +63,7 @@ def entry_form(entry_id=None):
entry.day_type = day_type
entry.journey_profile_id = journey_profile_id
entry.comment = comment
entry.motor_vehicle_id = motor_vehicle_id
for slot in list(entry.time_slots):
db.session.delete(slot)
@@ -84,6 +88,7 @@ def entry_form(entry_id=None):
entry=entry,
day_types=DAY_TYPES,
journeys=journeys,
motor_vehicles=get_motor_vehicles(),
day_types_without_journey=day_types_without_journey(),
today=date.today().isoformat(),
)

View File

@@ -25,7 +25,7 @@ def index():
total_km = {}
total_co2 = 0.0
for entry in entries:
km = compute_km_for_entry(entry.journey_profile_id, journeys)
km = compute_km_for_entry(entry.journey_profile_id, journeys, entry.motor_vehicle_id)
for v, d in km.items():
total_km[v] = total_km.get(v, 0) + d
total_co2 += compute_co2_grams(km, vehicles)