from flask import Blueprint, render_template, request, redirect, url_for, current_app, send_from_directory from werkzeug.utils import secure_filename from flask_login import login_user, logout_user, login_required from sqlalchemy import desc import datetime import os from .models import db, Repostajes, Vehiculos bp = Blueprint("paginas", __name__) @bp.route('/') def index(): return render_template('index.html') @bp.route('/repostajes') def repostajes(): repostajes = Repostajes.query.all() return render_template('repostajes.html', repostajes=repostajes) @bp.route('/vehiculos') def vehiculos(): vehiculos = Vehiculos.query.all() #return render_template('vehiculos.html', vehiculos=vehiculos) return render_template('vehiculoscard.html', vehiculos=vehiculos) @bp.route('/404') def cuatrocerocuatro(): return render_template('404.html') @bp.route('/help') def help(): return render_template('help.html') @bp.route('/account') @login_required def account(): return render_template('account.html') """ @bp.route('/repostaje/') def repostaje(repostaje_id): repostaje = Repostajes.query.get_or_404(repostaje_id) vehiculo = Vehiculos.query.get_or_404(repostaje.vehiculo_id) return render_template('repostaje.html', repostaje=repostaje, vehiculo=vehiculo) """ @bp.route('/add_repostaje', methods=['GET', 'POST']) @login_required def add_repostaje(): if request.method == 'POST': fecha = datetime.date.fromisoformat(request.form['fecha']) vehiculo_id = request.form['vehiculo_id'] kms = request.form['kms'] litros = request.form['litros'] importe = request.form['importe'] descuento = 0 precioxlitro = int(importe) / int(litros) new_repostaje = Repostajes(fecha=fecha, vehiculo_id=vehiculo_id, kms=kms, litros=litros, importe=importe, descuento=descuento, precioxlitro=precioxlitro) db.session.add(new_repostaje) db.session.commit() return redirect(url_for('paginas.vehiculo', vehiculo_id=vehiculo_id)) vehiculos = Vehiculos.query.all() for coche in vehiculos: print("add_repostaje: ", coche.matricula) return render_template('add_repostaje.html', vehiculos=vehiculos) @bp.route('/edit_repostaje/', methods=['GET', 'POST']) @login_required def edit_repostaje(repostaje_id): repostaje = Repostajes.query.get_or_404(repostaje_id) vehiculos = Vehiculos.query.all() if request.method == 'POST': repostaje.fecha = request.form['fecha'] repostaje.vehiculo_id = request.form['vehiculo_id'] repostaje.kms = request.form['kms'] repostaje.litros = request.form['litros'] repostaje.importe = request.form['importe'] db.session.commit() return redirect(url_for('paginas.repostaje', repostaje_id=repostaje.id)) vehiculos = Vehiculos.query.all() return render_template('edit_repostaje.html', repostaje=repostaje, vehiculos=vehiculos) @bp.route('/add_vehiculo', methods=['GET', 'POST']) @login_required def add_vehiculo(): if request.method == 'POST': marca = request.form['marca'] modelo = request.form['modelo'] matricula = request.form['matricula'] # Verificar que el campo 'cover_image' está en request.files if 'foto' not in request.files: return "No file part in the request", 400 foto = request.files['foto'] # Verificar que se ha seleccionado un archivo if foto.filename == '': return "No selected file", 400 if foto: image_filename = secure_filename(foto.filename) foto.save(os.path.join(current_app.config['UPLOAD_FOLDER'], image_filename)) else: image_filename = None new_vehiculo = Vehiculos(marca=marca, modelo=modelo, matricula=matricula, foto=image_filename) db.session.add(new_vehiculo) db.session.commit() return redirect(url_for('paginas.index')) return render_template('add_vehiculo.html') @bp.route('/edit_vehiculo/', methods=['GET', 'POST']) @login_required def edit_vehiculo(vehiculo_id): vehiculo = Vehiculos.query.get_or_404(vehiculo_id) if request.method == 'POST': vehiculo.marca = request.form['marca'] vehiculo.modelo = request.form['modelo'] vehiculo.matricula = request.form['matricula'] if 'foto' in request.files: foto = request.files['foto'] if foto.filename != '': image_filename = secure_filename(foto.filename) foto.save(os.path.join(current_app.config['UPLOAD_FOLDER'], image_filename)) vehiculo.foto = image_filename db.session.commit() return redirect(url_for('paginas.vehiculo', vehiculo_id=vehiculo.id)) return render_template('edit_vehiculo.html', vehiculo=vehiculo) @bp.route('/vehiculo/') def vehiculo(vehiculo_id): vehiculo = Vehiculos.query.get_or_404(vehiculo_id) repostajes = Repostajes.query.filter_by(vehiculo_id=vehiculo_id).all() return render_template('vehiculo.html', vehiculo=vehiculo, repostajes=repostajes) @bp.route('/uploads/') def uploaded_file(filename): return send_from_directory(current_app.config['UPLOAD_FOLDER'], filename) @bp.route('/searchvehiculo') def searchvehiculo(): query = request.args.get('query', '') if query: vehiculos = Vehiculos.query.filter(vehiculo.name.contains(query)).all() else: vehiculos = [] return render_template('searchvehiculo.html', query=query, vehiculos=vehiculos)