gmao/app_new/companies/routes.py
2026-08-14 16:02:25 +00:00

47 lines
No EOL
1.7 KiB
Python

"""
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('/<int:id>')
@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')