From 9d4d6f76234d69a914e2fb8bd731471cb30b1937 Mon Sep 17 00:00:00 2001 From: "claude[bot]" <41898282+claude[bot]@users.noreply.github.com> Date: Mon, 5 Jan 2026 01:50:13 +0000 Subject: [PATCH 1/5] Add help text descriptions for social media fields in public profile - Added help_text to social media fields in backend/participants/models.py - Added English and Italian translations for field descriptions - Updated frontend component to display descriptions for each social field Fixes #4514 Co-authored-by: Marco Acierno --- backend/participants/models.py | 36 +++++++++++++--- .../components/public-profile-card/index.tsx | 42 ++++++++++++++++--- frontend/src/locale/index.ts | 24 +++++++++++ 3 files changed, 90 insertions(+), 12 deletions(-) diff --git a/backend/participants/models.py b/backend/participants/models.py index 323378226d..b04656ac7b 100644 --- a/backend/participants/models.py +++ b/backend/participants/models.py @@ -52,12 +52,36 @@ class SpeakerLevels(models.TextChoices): ) bio = models.TextField(max_length=2048) - website = models.URLField(max_length=2048, blank=True) - twitter_handle = models.CharField(max_length=15, blank=True) - instagram_handle = models.CharField(max_length=30, blank=True) - linkedin_url = models.CharField(max_length=2048, blank=True) - facebook_url = models.CharField(max_length=2048, blank=True) - mastodon_handle = models.CharField(max_length=2048, blank=True) + website = models.URLField( + max_length=2048, + blank=True, + help_text=_("Your website URL (e.g., https://example.com)"), + ) + twitter_handle = models.CharField( + max_length=15, + blank=True, + help_text=_("Your Twitter handle without @ (e.g., pythonita)"), + ) + instagram_handle = models.CharField( + max_length=30, + blank=True, + help_text=_("Your Instagram handle without @ (e.g., pythonita)"), + ) + linkedin_url = models.CharField( + max_length=2048, + blank=True, + help_text=_("Your LinkedIn profile URL (e.g., https://www.linkedin.com/in/yourprofile)"), + ) + facebook_url = models.CharField( + max_length=2048, + blank=True, + help_text=_("Your Facebook profile URL (e.g., https://www.facebook.com/yourprofile)"), + ) + mastodon_handle = models.CharField( + max_length=2048, + blank=True, + help_text=_("Your Mastodon handle in the format username@server.tld (e.g., user@mastodon.social)"), + ) speaker_level = models.CharField( _("speaker level"), choices=SpeakerLevels.choices, max_length=20 diff --git a/frontend/src/components/public-profile-card/index.tsx b/frontend/src/components/public-profile-card/index.tsx index 56c84e7513..b039aa9667 100644 --- a/frontend/src/components/public-profile-card/index.tsx +++ b/frontend/src/components/public-profile-card/index.tsx @@ -109,7 +109,12 @@ export const PublicProfileCard = ({ {null} - + + } + > ({ errors={getParticipantValidationError("website")} /> - + + } + > ({ errors={getParticipantValidationError("mastodonHandle")} /> - + + } + > ({ errors={getParticipantValidationError("instagramHandle")} /> - + + } + > ({ errors={getParticipantValidationError("linkedinUrl")} /> - + + } + > ({ errors={getParticipantValidationError("facebookUrl")} /> - + + } + > Date: Mon, 5 Jan 2026 01:52:55 +0000 Subject: [PATCH 2/5] Revert backend changes, keep only frontend help text descriptions Co-authored-by: Marco Acierno --- backend/participants/models.py | 36 ++++++---------------------------- 1 file changed, 6 insertions(+), 30 deletions(-) diff --git a/backend/participants/models.py b/backend/participants/models.py index b04656ac7b..323378226d 100644 --- a/backend/participants/models.py +++ b/backend/participants/models.py @@ -52,36 +52,12 @@ class SpeakerLevels(models.TextChoices): ) bio = models.TextField(max_length=2048) - website = models.URLField( - max_length=2048, - blank=True, - help_text=_("Your website URL (e.g., https://example.com)"), - ) - twitter_handle = models.CharField( - max_length=15, - blank=True, - help_text=_("Your Twitter handle without @ (e.g., pythonita)"), - ) - instagram_handle = models.CharField( - max_length=30, - blank=True, - help_text=_("Your Instagram handle without @ (e.g., pythonita)"), - ) - linkedin_url = models.CharField( - max_length=2048, - blank=True, - help_text=_("Your LinkedIn profile URL (e.g., https://www.linkedin.com/in/yourprofile)"), - ) - facebook_url = models.CharField( - max_length=2048, - blank=True, - help_text=_("Your Facebook profile URL (e.g., https://www.facebook.com/yourprofile)"), - ) - mastodon_handle = models.CharField( - max_length=2048, - blank=True, - help_text=_("Your Mastodon handle in the format username@server.tld (e.g., user@mastodon.social)"), - ) + website = models.URLField(max_length=2048, blank=True) + twitter_handle = models.CharField(max_length=15, blank=True) + instagram_handle = models.CharField(max_length=30, blank=True) + linkedin_url = models.CharField(max_length=2048, blank=True) + facebook_url = models.CharField(max_length=2048, blank=True) + mastodon_handle = models.CharField(max_length=2048, blank=True) speaker_level = models.CharField( _("speaker level"), choices=SpeakerLevels.choices, max_length=20 From 2aa32ebd60476b7f0206da3d48bd10746203c715 Mon Sep 17 00:00:00 2001 From: Marco Acierno Date: Mon, 5 Jan 2026 02:14:51 +0000 Subject: [PATCH 3/5] Update frontend/src/locale/index.ts --- frontend/src/locale/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/src/locale/index.ts b/frontend/src/locale/index.ts index c9d64b41b4..46609a41e6 100644 --- a/frontend/src/locale/index.ts +++ b/frontend/src/locale/index.ts @@ -102,7 +102,7 @@ Let's get in touch to find the best solution for your business' needs!`, "profile.publicProfile.facebook.description": "Your Facebook profile URL (e.g., https://www.facebook.com/yourprofile)", "profile.publicProfile.twitter.description": - "Your Twitter handle without @ (e.g., pythonita)", + "Your Twitter handle without @ (e.g., pyconit)", "profile.ticketsEdit.qrCodeDescription": "The QR Code links to your public profile and can be used to quickly share contact details with fellow attendees and sponsors!", "profile.ticketsEdit.editProfile": From 4cbe662ae6b5bf2f3fb14b8e12b11dce7be2c74b Mon Sep 17 00:00:00 2001 From: Marco Acierno Date: Mon, 5 Jan 2026 02:15:17 +0000 Subject: [PATCH 4/5] Apply suggestions from code review --- frontend/src/locale/index.ts | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/frontend/src/locale/index.ts b/frontend/src/locale/index.ts index 46609a41e6..1d40e3afd5 100644 --- a/frontend/src/locale/index.ts +++ b/frontend/src/locale/index.ts @@ -96,11 +96,11 @@ Let's get in touch to find the best solution for your business' needs!`, "profile.publicProfile.mastodon.description": "Your Mastodon handle in the format username@server.tld (e.g., user@mastodon.social)", "profile.publicProfile.instagram.description": - "Your Instagram handle without @ (e.g., pythonita)", + "Your Instagram handle without @ (e.g., pycon.it)", "profile.publicProfile.linkedin.description": - "Your LinkedIn profile URL (e.g., https://www.linkedin.com/in/yourprofile)", + "Your LinkedIn profile URL (e.g., https://www.linkedin.com/in/your-profile-here)", "profile.publicProfile.facebook.description": - "Your Facebook profile URL (e.g., https://www.facebook.com/yourprofile)", + "Your Facebook profile URL (e.g., https://www.facebook.com/pythonitalia)", "profile.publicProfile.twitter.description": "Your Twitter handle without @ (e.g., pyconit)", "profile.ticketsEdit.qrCodeDescription": @@ -2217,13 +2217,13 @@ Usa il pulsante 'Gestisci' nella pagina per confermare o rifiutare il grant. Hai "profile.publicProfile.mastodon.description": "Il tuo handle Mastodon nel formato nomeutente@server.tld (es., utente@mastodon.social)", "profile.publicProfile.instagram.description": - "Il tuo handle Instagram senza @ (es., pythonita)", + "Il tuo handle Instagram senza @ (es., pycon.it)", "profile.publicProfile.linkedin.description": - "L'URL del tuo profilo LinkedIn (es., https://www.linkedin.com/in/tuoprofilo)", + "L'URL del tuo profilo LinkedIn (es., https://www.linkedin.com/in/il-tuo-profilo)", "profile.publicProfile.facebook.description": - "L'URL del tuo profilo Facebook (es., https://www.facebook.com/tuoprofilo)", + "L'URL del tuo profilo Facebook (es., https://www.facebook.com/pythonitalia)", "profile.publicProfile.twitter.description": - "Il tuo handle Twitter senza @ (es., pythonita)", + "Il tuo handle Twitter senza @ (es., pyconit)", "profile.ticketsEdit.qrCodeDescription": "Il QR Code porta al tuo profilo e può essere utilizzato per condividere rapidamente i tuoi contatti con altri partecipanti o sponsors!", "profile.ticketsEdit.editProfile": From 0350cd11b557691fccb0f391805682aa8c57b2ba Mon Sep 17 00:00:00 2001 From: Marco Acierno Date: Mon, 5 Jan 2026 02:23:45 +0000 Subject: [PATCH 5/5] Apply suggestions from code review --- frontend/src/locale/index.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/frontend/src/locale/index.ts b/frontend/src/locale/index.ts index 1d40e3afd5..7b4fdd9877 100644 --- a/frontend/src/locale/index.ts +++ b/frontend/src/locale/index.ts @@ -94,7 +94,7 @@ Let's get in touch to find the best solution for your business' needs!`, "profile.publicProfile.website.description": "Your website URL (e.g., https://example.com)", "profile.publicProfile.mastodon.description": - "Your Mastodon handle in the format username@server.tld (e.g., user@mastodon.social)", + "Your Mastodon handle (e.g., user@mastodon.social)", "profile.publicProfile.instagram.description": "Your Instagram handle without @ (e.g., pycon.it)", "profile.publicProfile.linkedin.description": @@ -2215,7 +2215,7 @@ Usa il pulsante 'Gestisci' nella pagina per confermare o rifiutare il grant. Hai "profile.publicProfile.website.description": "L'URL del tuo sito web (es., https://example.com)", "profile.publicProfile.mastodon.description": - "Il tuo handle Mastodon nel formato nomeutente@server.tld (es., utente@mastodon.social)", + "Il tuo handle Mastodon (es., utente@mastodon.social)", "profile.publicProfile.instagram.description": "Il tuo handle Instagram senza @ (es., pycon.it)", "profile.publicProfile.linkedin.description":