Repository navigation
feat(teams): public team pages, map and communities - #539
Merged
Merged
Conversation
Buzz Team becomes a website generator. A published team gets a server-rendered page with its logo, short description, about, links and a day-grouped Upcoming / Past timeline of its own events, built on the event pages' layout and espresso tab buttons. Owners, admins and managers edit the page from the team's settings in the dashboard through buzz.api.teams.update_public_page. The route is filled on first publish and only a System Manager changes it. The site header now supplies the visitor's name and avatar, which a website generator's page does not get, so signed-in visitors can open the page.
A dot-matrix map strip pins each upcoming event's venue, framed on the visitor's country (read from their browser time zone) or on every pin. Dots grow with the zoom so land keeps its shape when framed close. Country chips filter the timeline, and a mini calendar jumps to a day. Event Venue gains city and venue_country, filled in the background from OpenStreetMap Nominatim when a venue's address or coordinates change. A patch queues the same lookup for existing venues. The field is not named country: Frappe would fill that from the system default.
A published team can be a community. Another team's owners, admins and managers submit an event from its details page or from the community page's Submit event dialog; the community's managers approve, reject, remove, or add events directly from a new Community page in the dashboard. Approved events show on the community page under their own team's name. Community Event Request holds one row per (event, community), guarded by a unique index. Changes go through buzz.api.communities, which checks roles on each side, and emails go to the community on submit and to the submitter on review. Deleting an event deletes its requests.
Team page cards name the event's co-hosts after its team, read for every card in one query, and say "Registrations closed" on upcoming events whose registrations have closed, using espresso's badge. The event page's "Hosted by" row links the team to its public page while that page is published.
Smaller dots (20% of the grid gap, 2.5 to 6px) in fixed colours chosen by eye for each mode: #969696 on #0f0f0f in dark mode and #404040 on #fafafa in light, both at 60% opacity, under a 12% glow from the top.
Contributor
|
Let's show the country flags if country wise filter? 👀 |
…im misses
Nominatim finds nothing for many street-level addresses, Google's
especially ("No. 374, ..., situated at, Koramangala, Bengaluru, ...").
The lookup now tries the full address, then its last four and last three
parts, one request a second, so the venue still gets a pin and a country.
It matches the Everywhere chip under the identity bar, which shows the same set of events.
Frappe already turns an empty "not in" list into valid SQL, so not_in_filter goes. The calendar builds YYYY-MM-DD dates with Intl's sv-SE format instead of padding parts by hand.
A running event shows Live in place of its start time, as on the discover page. An event the visitor holds a ticket for shows Attending, the dashboard's rule, read for every card in one query; it replaces Registrations closed, which no longer concerns them.
…ider Events in one city share a pin, whose tooltip always showed the first of them; hovering a card now shows that card's event. Everywhere frames at least 100 degrees, wider than Nearby's 60, so the two differ even when every event is in one city.
The sidebar narrows from 300px to 248px, giving the event cards the room. The team logo takes frappe-ui's square 3xl Avatar: 46px with 10px corners.
start_time is required on Buzz Event, so the row always has a time to show.
Conflicts with the factory rewrite (#540): its EventVenueFactory replaces this branch's identical one, and the public page tests move onto TeamTestCase and BuzzTeamMembershipFactory.
Collaborator
Author
Cluttery imo, can experiment |
Contributor
Backend test coverage: 91%Commit 9337198. Test modules are excluded. Coverage by file
89 empty files skipped. |
The dashboard's Community page, its route and sidebar item, and the data calls only it used go. Submitting stays: the Community switch, the Communities section on event details and the page's Submit event dialog. The review endpoints in buzz.api.communities and their tests remain for the page's return; until then a System Manager reviews in Desk. The submit email loses its link to the removed page.
CI never runs bench build, so bundled_asset fails without assets.json.
harshtandiya
marked this pull request as ready for review
October 6, 2026 15:18
Contributor
There was a problem hiding this comment.
Your trial has ended. Reactivate Greptile to resume code reviews.
…d batches Batches run one after another so lookups stay at Nominatim's one request a second.
…view it Removes the team page's Submit event dialog, the event page's Communities section, and the unused search_addable_events endpoint and TeamOption field.
Contributor
There was a problem hiding this comment.
Your trial has ended. Reactivate Greptile to resume code reviews.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What changed
Teams get a public page, and a team can act as a community that lists other teams' events.
/community/<slug>: logo, description, links and an Upcoming / Past day timeline. Cards show Live, Attending (the visitor holds a ticket) and Registrations closed, plus co-hosts. Edited from team settings → Public page.buzz.api.communities, which checks roles on both sides. Emails on submit and on review.approve_request,reject_request,remove_event,add_event) and tests are in; until the page lands, a System Manager reviews in Desk.Demo
Testing
test_team_route,test_team_page,test_team_page_render,test_team_map,test_geocode,buzz.api.communities.test_communities(submit, review, resubmit, withdraw, add, role checks, emails);buzz.api.teams.test_teamsextended. All pass locally.