Skip to content

Feature/admin venue IC telegram handle - #168

Merged
Kennyando merged 1 commit into
masterfrom
features/admin/venue-ic-telegram
Oct 28, 2026
Merged

Kennyando merged 1 commit into
masterfrom
features/admin/venue-ic-telegram

Conversation

@Kennyando

Copy link
Copy Markdown
Contributor

Why

Venue ICs are often easiest to reach on Telegram, but a venue could only list an IC name, email and phone number. Users with a booking question had no way to find the IC's Telegram.

This PR adds an optional Venue IC Telegram Handle to each venue and shows it to users in the booking Help popup.

What changed

Admin (Admin → Venues → Create / Edit)

  • New Venue IC Telegram Handle field in the Venue Details section, on the same row as the other Venue IC fields.
  • Optional. Admins can type @handle or handle; the @ is removed before saving.
  • Validated against Telegram's username rules: 5–32 letters, numbers or underscores.

Users (booking creation → Help button)

  • If the venue has a handle, the Help popup shows Telegram: @handle, linked to https://t.me/handle (opens in a new tab).

Backend

  • Venue gets ic_telegram_handle (CharField, max 32, blank allowed, regex validated), migration 0019.
  • Returned by venue_to_json(full_details=True); accepted by POST /venues/ and PUT /venues/:id through VenueSerializer, which rejects invalid handles with a 400.
  • API doc examples updated.
  • New test test_serializer_validates_telegram_handle covers valid, empty and invalid handles.

Notes

  • Handles are stored without the @, so the link can be built directly and the data stays consistent. The backend rejects a leading @; the frontend removes it before sending.
  • Existing venues get an empty handle from the migration, so nothing changes for them until an admin fills it in.

Testing

  • python manage.py test venues in the backend container: 5/5 pass.
  • tsc --noEmit and ESLint pass on the frontend.
  • Not yet clicked through in the browser.

@Kennyando
Kennyando merged commit 23f6362 into master Oct 28, 2026
2 checks passed
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