feat: module Garage — véhicules, entretiens, pièces (intégration GarageManager)
Deploy to Pacha Family / deploy (push) Failing after 3s

- modules/garage/api.php : API REST MySQL (vehicles, maintenances, parts, stats, photos)
- modules/garage/assets/garage.css + garage.js : UI adaptée (chemins API mis à jour)
- garage.php : page principale avec header/footer HouseHub + i18n
- docker/schema_family.sql : tables pf_vehicles, pf_maintenances, pf_parts
- docker-compose.yml : volume househub_uploads pour photos
- includes/lang/fr|ca|en.php : ~50 clés de traduction garage
- header.php : lien Garage dans nav desktop + mobile
- settings.php : module garage dans les toggles
- README.md : tableau des modules + mise à jour description

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
perco
2026-05-11 15:57:24 +02:00
co-authored by Claude Sonnet 4.6
parent f6de4918bd
commit 62eabfb5ee
12 changed files with 1388 additions and 6 deletions
+53
View File
@@ -529,4 +529,57 @@ return [
'gift_empty_state_no_gifts' => 'No gifts yet.',
'gift_empty_state_no_filter' => 'No gifts match the filter.',
'gift_view_matrix' => 'View detailed matrix',
// ==========================================
// GARAGE MANAGER
// ==========================================
'menu_garage' => 'Garage',
'garage_page_title' => 'HouseHub - Garage',
'garage_stat_vehicles' => 'Vehicles',
'garage_stat_maintenances' => 'Services',
'garage_stat_parts' => 'Parts',
'garage_stat_cost' => 'Total cost',
'garage_my_vehicles' => 'My vehicles',
'garage_reminders' => 'Reminders & upcoming services',
'garage_vehicles_title' => 'My vehicles',
'garage_all_parts' => 'All parts',
'garage_parts_count' => 'parts',
'garage_maintenances' => 'Services',
'garage_parts' => 'Parts',
'garage_add' => 'Add',
'garage_add_vehicle' => 'Add a vehicle',
'garage_add_maintenance' => 'Add a service',
'garage_add_part' => 'Add a part',
'garage_vehicle_name' => 'Vehicle name',
'garage_brand' => 'Make',
'garage_model' => 'Model',
'garage_year' => 'Year',
'garage_plate' => 'Licence plate',
'garage_fuel' => 'Fuel type',
'garage_km' => 'Current mileage',
'garage_color' => 'Colour',
'garage_purchase_date' => 'Purchase date',
'garage_purchase_price' => 'Purchase price (€)',
'garage_photo' => 'Photo',
'garage_notes' => 'Notes',
'garage_maint_type' => 'Service type',
'garage_date' => 'Date',
'garage_km_at' => 'Mileage at the time',
'garage_labor_cost' => 'Labour cost (€)',
'garage_description' => 'Description',
'garage_mechanic' => 'Mechanic',
'garage_garage' => 'Garage / Workshop',
'garage_next_reminder' => 'Next service (reminder)',
'garage_next_date' => 'Planned date',
'garage_next_km' => 'Planned mileage',
'garage_part_name' => 'Part name',
'garage_category' => 'Category',
'garage_reference' => 'Reference',
'garage_unit_price' => 'Unit price (€)',
'garage_quantity' => 'Quantity',
'garage_unit' => 'Unit',
'garage_supplier' => 'Supplier',
'garage_change_photo' => 'Change photo',
'garage_new_photo' => 'New photo',
'garage_update_photo' => 'Update',
];