Files
xamxam/formulaire/error.log
Théophile Gervreau-Mercier 95f52d549e Add comprehensive thesis management system with database migration
This commit introduces a complete thesis management interface and migrates
the system from YAML-based storage to SQLite:

Core Changes:
- Add Database.php helper class with PDO connection and entity management
- Add list.php for viewing all theses with filtering and sorting
- Add edit.php for modifying existing thesis records
- Add import.php for migrating legacy YAML data to SQLite
- Add justfile with development tasks (serve, init-test-db, etc.)

Documentation:
- Add MIGRATION.md with complete migration guide and architecture docs
- Update README.md with database setup and Just recipe instructions
- Update .gitignore to exclude test databases and error logs

Modified Forms:
- Enhanced formulaire.php with transaction-based SQLite processing
- Updated index.php with database-driven form options
- Improved thanks.php to read from database views

The new architecture provides:
- Normalized database schema (19 tables, 2 views)
- Transaction safety and referential integrity
- CRUD operations for thesis management
- Filtering by year, orientation, AP program, publication status
- Secure file handling with metadata tracking

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-01-28 10:08:50 +01:00

252 lines
4.8 KiB
Plaintext

[27-Jan-2026 14:57:08 UTC] FILES array: Array
(
[couverture] => Array
(
[name] =>
[full_path] =>
[type] =>
[tmp_name] =>
[error] => 4
[size] => 0
)
[files] => Array
(
[name] => Array
(
[0] =>
)
[full_path] => Array
(
[0] =>
)
[type] => Array
(
[0] =>
)
[tmp_name] => Array
(
[0] =>
)
[error] => Array
(
[0] => 4
)
[size] => Array
(
[0] => 0
)
)
)
[27-Jan-2026 14:57:08 UTC] Form processing error: Veuillez sélectionner au moins une langue.
[27-Jan-2026 15:16:43 UTC] FILES array: Array
(
[couverture] => Array
(
[name] =>
[full_path] =>
[type] =>
[tmp_name] =>
[error] => 4
[size] => 0
)
[files] => Array
(
[name] => Array
(
[0] =>
)
[full_path] => Array
(
[0] =>
)
[type] => Array
(
[0] =>
)
[tmp_name] => Array
(
[0] =>
)
[error] => Array
(
[0] => 4
)
[size] => Array
(
[0] => 0
)
)
)
[27-Jan-2026 15:16:43 UTC] Form processing error: Lien URL invalide.
[27-Jan-2026 15:30:28 UTC] FILES array: Array
(
[couverture] => Array
(
[name] =>
[full_path] =>
[type] =>
[tmp_name] =>
[error] => 4
[size] => 0
)
[files] => Array
(
[name] => Array
(
[0] =>
)
[full_path] => Array
(
[0] =>
)
[type] => Array
(
[0] =>
)
[tmp_name] => Array
(
[0] =>
)
[error] => Array
(
[0] => 4
)
[size] => Array
(
[0] => 0
)
)
)
[27-Jan-2026 15:30:28 UTC] Author ID: 1
[27-Jan-2026 15:30:28 UTC] Thesis ID: 1
[27-Jan-2026 15:30:29 UTC] Thesis submission completed successfully: 2026-001
[27-Jan-2026 15:33:11 UTC] FILES array: Array
(
[couverture] => Array
(
[name] =>
[full_path] =>
[type] =>
[tmp_name] =>
[error] => 4
[size] => 0
)
[files] => Array
(
[name] => Array
(
[0] =>
)
[full_path] => Array
(
[0] =>
)
[type] => Array
(
[0] =>
)
[tmp_name] => Array
(
[0] =>
)
[error] => Array
(
[0] => 4
)
[size] => Array
(
[0] => 0
)
)
)
[27-Jan-2026 15:33:11 UTC] Author ID: 2
[27-Jan-2026 15:33:11 UTC] Thesis ID: 2
[27-Jan-2026 15:33:12 UTC] Thesis submission completed successfully: 2026-002
[27-Jan-2026 15:48:51 UTC] FILES array: Array
(
[couverture] => Array
(
[name] =>
[full_path] =>
[type] =>
[tmp_name] =>
[error] => 4
[size] => 0
)
[files] => Array
(
[name] => Array
(
[0] =>
)
[full_path] => Array
(
[0] =>
)
[type] => Array
(
[0] =>
)
[tmp_name] => Array
(
[0] =>
)
[error] => Array
(
[0] => 4
)
[size] => Array
(
[0] => 0
)
)
)
[27-Jan-2026 15:48:51 UTC] Author ID: 14
[27-Jan-2026 15:48:51 UTC] Thesis ID: 14
[27-Jan-2026 15:48:51 UTC] Thesis submission completed successfully: 2026-003