Skip to content

🔥 Remove club-specific branding, make app generic multi-club#67

Open
dehy wants to merge 1 commit intomainfrom
refactor/remove-club-branding
Open

🔥 Remove club-specific branding, make app generic multi-club#67
dehy wants to merge 1 commit intomainfrom
refactor/remove-club-branding

Conversation

@dehy
Copy link
Owner

@dehy dehy commented Mar 8, 2026

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.md and .github/copilot-instructions.md to document the project's origin.

Changes

Backend

  • src/Service/SecurityNotificationService.phpMAILER_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 Manager
  • templates/base_unauthenticated.html.twig — logo altLogo
  • templates/login/index.html.twig — logo altLogo
  • templates/email_base.html.twig — removed hardcoded Facebook/Instagram/website social links; replaced with a conditional block using club.websiteUrl
  • templates/email/account_locked.html.twig — "des Archers de Bordeaux Guyenne" → "du club"
  • templates/email/account_unlocked.html.twig — same
  • templates/email/security_warning.html.twig — same
  • templates/licensee/mail_account_created.html.twig — "aux Archers de Guyenne" → "au club"; section title generified

Documentation

  • 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

Copilot AI review requested due to automatic review settings March 8, 2026 20:11
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Comment on lines +55 to +59
{% 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 }}">
Copy link

Copilot AI Mar 8, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Copilot uses AI. Check for mistakes.
Comment on lines 43 to +47
<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>
Copy link

Copilot AI Mar 8, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Copilot uses AI. Check for mistakes.
<div class="col-lg-4 col-sm-10">
<img src="{{ asset('build/logo.svg') }}"
alt="Les Archers de Bordeaux Guyenne"
alt="Logo"
Copy link

Copilot AI Mar 8, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Suggested change
alt="Logo"
alt="Archery Manager – Les Archers de Bordeaux Guyenne"

Copilot uses AI. Check for mistakes.
<a href="{{ path('app_login') }}">
<img src="{{ asset('build/logo.svg') }}"
alt="Les Archers de Bordeaux Guyenne"
alt="Logo"
Copy link

Copilot AI Mar 8, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Suggested change
alt="Logo"
alt="Archery Manager – Les Archers de Bordeaux Guyenne"

Copilot uses AI. Check for mistakes.
- 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.
Copy link

Copilot AI Mar 8, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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).

Copilot uses AI. Check for mistakes.
@sonarqubecloud
Copy link

sonarqubecloud bot commented Mar 8, 2026

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.

2 participants