You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

162 lines
5.4 KiB

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 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/<int:repostaje_id>')
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 = request.form['fecha']
vehiculo_id = request.form['vehiculo_id']
kms = request.form['kms']
litros = request.form['litros']
importe = request.form['importe']
new_repostaje = Repostajes(fecha=fecha, vehiculo_id=vehiculo_id, kms=kms, litros=litros, importe=importe)
db.session.add(new_repostaje)
db.session.commit()
return redirect(url_for('paginas.vehiculo', vehiculo_id=vehiculo_id))
vehiculos = Vehiculos.query.all()
return render_template('add_repostaje.html', vehiculos=vehiculos)
@bp.route('/edit_repostaje/<int:repostaje_id>', 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/<int:vehiculo_id>', 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/<int:vehiculo_id>')
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/<filename>')
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)