""" Companies Routes - GMAO Collège Gestion des entreprises """ from flask import Blueprint, render_template, request, flash, redirect, url_for from flask_login import login_required from app_new.extensions import db from ..core.models.company import Company companies_bp = Blueprint('companies', __name__) @companies_bp.route('/') @login_required def index(): """Liste des entreprises.""" page = request.args.get('page', 1, type=int) companies = Company.query.order_by(Company.name).paginate(page=page, per_page=20) return render_template('companies/index.html', companies=companies) @companies_bp.route('/') @login_required def detail(id): """Détail d'une entreprise.""" company = Company.query.get_or_404(id) from ..core.models.maintenance import Intervention interventions = Intervention.query.filter_by(company_id=id, is_deleted=False).all() return render_template('companies/detail.html', company=company, interventions=interventions) @companies_bp.route('/new', methods=['GET', 'POST']) @login_required def create(): """Créer une entreprise.""" if request.method == 'POST': company = Company( name=request.form.get('name'), address=request.form.get('address'), contact_phone=request.form.get('contact_phone') or request.form.get('phone'), contact_email=request.form.get('contact_email') or request.form.get('email'), contact_name=request.form.get('contact_name'), specialty=request.form.get('specialty'), ) db.session.add(company) db.session.commit() flash('Entreprise créée avec succès.', 'success') return redirect(url_for('companies.index')) return render_template('companies/new.html')