🔥 Remove club-specific branding, make app generic multi-club#67
🔥 Remove club-specific branding, make app generic multi-club#67
Conversation
There was a problem hiding this comment.
Pull request overview
This PR removes club-specific branding (“Les Archers de Bordeaux Guyenne / Les Archers de Guyenne”) from user-facing emails, templates, and mail sender names to move the application toward a generic, multi-club-ready product identity.
Changes:
- Replaces hard-coded club names in mail sender names and several Twig templates with generic labels (“Archery Manager”, “du club”, “Logo”).
- Updates shared email footer to remove hard-coded social links and (intended to) conditionally display a club website link.
- Updates README and Copilot instructions to document multi-club intent while preserving historical origin.
Reviewed changes
Copilot reviewed 13 out of 13 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
templates/login/index.html.twig |
Generic logo alt text on login page. |
templates/licensee/mail_account_created.html.twig |
Genericizes welcome text and section header in account-created email. |
templates/email_base.html.twig |
Removes hard-coded social links; attempts to add conditional website link. |
templates/email/security_warning.html.twig |
Genericizes security email footer text. |
templates/email/account_unlocked.html.twig |
Genericizes security email footer text. |
templates/email/account_locked.html.twig |
Genericizes security email footer text. |
templates/base_unauthenticated.html.twig |
Generic logo alt text in unauthenticated layout. |
templates/base_public.html.twig |
Generic default HTML <title> for public pages. |
src/Service/SecurityNotificationService.php |
Updates mail “from” display name to “Archery Manager”. |
src/Controller/ResetPasswordController.php |
Updates reset-password email sender display name. |
src/Controller/RegistrationController.php |
Updates registration/verification email sender display name. |
README.md |
Documents origin and multi-club direction. |
.github/copilot-instructions.md |
Updates project description to multi-club intent. |
| {% if club.websiteUrl is defined and club.websiteUrl %} | ||
| <center> | ||
| <menu> | ||
| <item> | ||
| <a href="https://www.facebook.com/LesArchersdeGuyenne/"> | ||
| <img src="{{ absolute_url(asset('build/facebook-square-brands.png')) }}" alt="Facebook"> | ||
| </a> | ||
| </item> | ||
| <item> | ||
| <a href="https://www.instagram.com/archersdebordeaux/?hl=fr"> | ||
| <img src="{{ absolute_url(asset('build/instagram-square-brands.png')) }}" alt="Instagram"> | ||
| </a> | ||
| </item> | ||
| <item> | ||
| <a href="https://www.archersdebordeaux-guyenne.com/"> | ||
| <a href="{{ club.websiteUrl }}"> |
There was a problem hiding this comment.
club.websiteUrl is referenced here, but the Club entity does not define a websiteUrl field/getter (no getWebsiteUrl()), so Twig will fail to render this template (or silently output nothing depending on strict_variables). Either add a persisted websiteUrl property on Club (with migration + form/admin support + validation) or remove/replace this link block with data that actually exists on Club.
| <p>Une fois inscrit{{ licensee.gender == 'F' ? 'e' }}, voici le lien te permettant | ||
| d'accéder à notre serveur privé en le copiant-collant quand l'application te le demandera :<br><br> | ||
| <strong>https://discord.gg/DmNs4MjbVw</strong></p> | ||
|
|
||
| <h3>L'application des Archers de Guyenne</h3> | ||
| <h3>L'application du club</h3> |
There was a problem hiding this comment.
This email still contains a hard-coded Discord invite link (https://discord.gg/DmNs4MjbVw), which is club-specific and conflicts with the goal of making the app generic/multi-club. Consider making the invite URL a Club field (or configuration) and rendering it dynamically, or remove the Discord section when not configured.
| <div class="col-lg-4 col-sm-10"> | ||
| <img src="{{ asset('build/logo.svg') }}" | ||
| alt="Les Archers de Bordeaux Guyenne" | ||
| alt="Logo" |
There was a problem hiding this comment.
The alt text was changed to a generic "Logo", which is not very informative for screen readers. If the logo conveys identity/branding, prefer something descriptive like the application name (or club name when available); if it’s purely decorative, use an empty alt (alt="") so it’s ignored by assistive tech.
| alt="Logo" | |
| alt="Archery Manager – Les Archers de Bordeaux Guyenne" |
| <a href="{{ path('app_login') }}"> | ||
| <img src="{{ asset('build/logo.svg') }}" | ||
| alt="Les Archers de Bordeaux Guyenne" | ||
| alt="Logo" |
There was a problem hiding this comment.
The alt text was changed to a generic "Logo", which is not very informative for screen readers. Use a descriptive alt text (app name / club name) when the image is meaningful, or alt="" if the logo is decorative in this layout.
| alt="Logo" | |
| alt="Archery Manager – Les Archers de Bordeaux Guyenne" |
| - Gestion des évènements : entraînements, compétitions, autre | ||
|
|
||
| Cet outil est réalisé pour [Les Archers de Bordeaux Guyenne](https://archersdebordeaux-guyenne.com). | ||
| Initialement réalisé pour [Les Archers de Bordeaux Guyenne](https://archersdebordeaux-guyenne.com), cet outil est conçu pour devenir un outil multi-clubs. |
There was a problem hiding this comment.
The README now states the app is becoming multi-club/generic, but there are still hard-coded club identifiers in the runtime setup (e.g. migrations/Version20230211100923.php inserts a default club named "Les Archers de Guyenne" with club-specific email/code). If the intent is to remove club-specific branding for fresh installs, consider adding a follow-up migration to replace/remove that seeded data (and updating any test fixtures/constants accordingly).
|



Summary
Removes all hardcoded references to "Les Archers de Bordeaux Guyenne" / "Les Archers de Guyenne" from the application, replacing them with generic labels to support the planned multi-club architecture.
Historical mentions are preserved in
README.mdand.github/copilot-instructions.mdto document the project's origin.Changes
Backend
src/Service/SecurityNotificationService.php—MAILER_FROM_NAME→'Archery Manager'src/Controller/ResetPasswordController.php— email sender name →'Archery Manager'src/Controller/RegistrationController.php— email sender name →'Archery Manager'Templates
templates/base_public.html.twig— page title →Archery Managertemplates/base_unauthenticated.html.twig— logoalt→Logotemplates/login/index.html.twig— logoalt→Logotemplates/email_base.html.twig— removed hardcoded Facebook/Instagram/website social links; replaced with a conditional block usingclub.websiteUrltemplates/email/account_locked.html.twig— "des Archers de Bordeaux Guyenne" → "du club"templates/email/account_unlocked.html.twig— sametemplates/email/security_warning.html.twig— sametemplates/licensee/mail_account_created.html.twig— "aux Archers de Guyenne" → "au club"; section title generifiedDocumentation
README.md— updated to note the app was originally built for Les Archers de Bordeaux Guyenne and is designed to become multi-club.github/copilot-instructions.md— updated opening sentence to reflect multi-club intent