uprawnienia do stacji i usuwanie firm
This commit is contained in:
+7
-2
@@ -146,6 +146,12 @@ def update_card_policy(vehicle_id):
|
||||
@login_required
|
||||
def fuel():
|
||||
vehicles = accessible_vehicles()
|
||||
settings = current_user.company or CompanySettings.query.first()
|
||||
if settings is None:
|
||||
flash("Najpierw utwórz firmę i przypisz do niej użytkownika, aby korzystać z tankowań.", "warning")
|
||||
if current_user.role in ("admin", "boss"):
|
||||
return redirect(url_for("main.admin_companies"))
|
||||
return redirect(url_for("main.dashboard"))
|
||||
if request.method == "POST":
|
||||
vehicle = next((v for v in vehicles if v.id == int(request.form["vehicle_id"])), None)
|
||||
if not vehicle:
|
||||
@@ -156,7 +162,7 @@ def fuel():
|
||||
fueled_at = datetime.fromisoformat(request.form["fueled_at"]); wholesale = None; source = None
|
||||
station_company_id = request.form.get("station_company_id", type=int)
|
||||
station_company = db.session.get(FuelStationCompany, station_company_id) if station_company_id else None
|
||||
settings = vehicle.company or current_user.company or CompanySettings.query.first()
|
||||
settings = vehicle.company or settings
|
||||
access_mode = settings.station_access_mode or "all_prefer_favorites"
|
||||
if station_company and access_mode == "allowed_only" and station_company not in settings.allowed_stations:
|
||||
response = error_response("Ta stacja nie jest dozwolona przez politykę firmy", 403); return response or redirect(url_for("main.fuel"))
|
||||
@@ -169,7 +175,6 @@ def fuel():
|
||||
station_label = station_company.company_name if station_company else request.form.get("station")
|
||||
e = FuelEntry(vehicle_id=vehicle.id, user_id=current_user.id, fueled_at=fueled_at, liters=Decimal(request.form["liters"]), price_per_liter=Decimal(request.form["price_per_liter"]), fuel_type=request.form["fuel_type"], odometer=odometer, station=station_label, station_company_id=station_company.id if station_company else None, invoice_number=request.form.get("invoice_number"), used_fuel_card="used_fuel_card" in request.form, wholesale_price=wholesale, wholesale_source=source)
|
||||
vehicle.current_odometer = odometer; db.session.add(e); db.session.commit(); socketio.emit("fuel_added", {"vehicle": vehicle.name, "gross": round(e.gross,2)}); response = ok_response("Zapisano tankowanie", redirect=url_for("main.dashboard")); return response or redirect(url_for("main.dashboard"))
|
||||
settings=current_user.company or CompanySettings.query.first()
|
||||
allowed=list(settings.allowed_stations)
|
||||
company_favorites=list(settings.favorite_stations)
|
||||
access_mode=settings.station_access_mode or "all_prefer_favorites"
|
||||
|
||||
Reference in New Issue
Block a user