Skip to content

Improve/refactoring - #400

Open
Q1009 wants to merge 21 commits into
OpenClassrooms-Student-Center:masterfrom
Q1009:improve/refactoring
Open

Improve/refactoring#400
Q1009 wants to merge 21 commits into
OpenClassrooms-Student-Center:masterfrom
Q1009:improve/refactoring

Conversation

@Q1009

@Q1009 Q1009 commented Jul 24, 2026

Copy link
Copy Markdown

Centralized login/session helpers in utils.py.
Updated and standardized html templates
Global code refactoring

Quentin Tellier added 21 commits June 1, 2026 19:08
…ls dans le module utils. Implémentation des tests unitaires pour les fonctions utils. Affichage des messages flash dans le template index. Création des fonctions utils pour le login.
- move route registration into create_app
- inject clubs and competitions into the app factory for tests
- use current_app.config inside route handlers
- add pytest warning filters for Flask/Werkzeug deprecations
- Replace fragile [0] indexing with safe getClubByName/getCompetitionByName
  lookups in /book route
- Validate config data presence and handle missing club/competition separately
- Make JSON loaders return None on errors (OSError, JSONDecodeError, KeyError)
- Add helper functions for safe dictionary lookups
- Update corresponding unit tests to match new None-return behavior
harden the purchase route when clubs/competitions data is missing or invalid
replace fragile list indexing with safe lookup helpers
add getClubPoints/getCompetitionPlaces with invalid-input handling
add validateBooking to enforce available club points checks
display flash messages on the booking page when validation fails
update available places only after successful validation
- Update flash message to display the number of places purchased
- Remove unnecessary blank lines
…nstraints

- Implement dynamic max value for booking input based on club points, available places, and 12-place cap
- Add HTML5 validation (min, required) and disable submit when no booking possible
- Add server-side validation to reject requests exceeding 12-place limit
…elcome

- Add isCompetitionBookable utility function to check if competition can be booked
- Implement buildCompetitionsView to add canBook flag to competitions
- Hide Book Places link when competition is no longer bookable
- Protect /book route to prevent bypassing via direct URL
- Fix welcome page header to show club name instead of email
- Update mock competition dates to 2026
…n purchasePlaces route

- rename validateBooking → isBookingValid in utils and server
- add competition bookability check in /purchasePlaces route to prevent
  booking a past/full competition via direct POST request
- update import in server.py accordingly
- add updateClubPoints helper to safely deduct club points
- add updateCompetitionPlaces helper to safely deduct competition places
- use the new helpers in purchase flow instead of inline update logic
- keep booking confirmation flow unchanged while making updates reusable and safer
…tion

- add booking tracker by club/competition pair in app config
- pass already booked places to purchase validation
- block booking when cumulative total exceeds 12 places
- extend validation for zero/negative places and insufficient competition places
- persist cumulative counter only after successful purchase
- on validation error, render welcome with flash messages
-add new public route /pointsBoard (no login required)
-render a dedicated read-only page listing each club with available points
-handle missing clubs data with flash error + redirect to home
-add navigation link to points board from home page
-add navigation link to points board from welcome page
…es when clearing session, and add logout confirmation flash
…ics and accessibility

- simplify server route handlers by introducing a shared welcome renderer
- standardize import/style formatting and remove duplicated render blocks
- update booking/index/welcome/points board templates with semantic layout:
  header/main structure, navigation labels, accessible flash regions
- switch form action to url_for where applicable and normalize template formatting
- keep application behavior unchanged while improving readability and maintainability
…for functional tests

-add testpaths=tests to prevent external package test collection
-add id=login on index submit button for Selenium functional tests
…ase to snake_case for variables and functions
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant