Repository navigation
feat(listings): list partner events on buzz.events - #658
Merged
Merged
Conversation
An integration user holds a membership so a partner site can act for its team, but every permission helper ignores the row: it reads and writes nothing, never shows in rosters or mentions, and only a System Manager can grant, change or remove it.
upsert_event and remove_event let a team's integration user keep an approved external Community Event Request in sync, keyed by a new source_id. A request the community took down stays down. A guest openapi endpoint describes the contract as OpenAPI 3.1, generated from the pydantic schema.
A buzz.events tab in Buzz Settings takes the integration user's API key. Saving a Buzz Event then lists it on buzz.events, or takes it off once unpublished, ended or deleted. Turning listing on syncs every upcoming event.
Contributor
There was a problem hiding this comment.
Your trial has ended. Reactivate Greptile to resume code reviews.
Contributor
Backend test coverage: 93%Commit efbc73e. Test modules are excluded. Coverage by file
104 empty files skipped. |
change_settings on System Settings fails on its mandatory language field in CI.
Contributor
There was a problem hiding this comment.
Your trial has ended. Reactivate Greptile to resume code reviews.
Nothing calls it yet; a project-wide document can come later.
- Pushes to buzz.events give up after 30 seconds instead of holding a worker. - Deleting a never-published event no longer posts a removal. - Payload reuses EventMeta for the end time and event URL. - Rename PEOPLE to HUMAN_MEMBER_FILTERS, post to post_to_buzz_events, ListingPush.push to sync_listing, find to find_request_name.
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
Partners who run Buzz on their own sites can now list their events on their community page on buzz.events. Closes #613.
On buzz.events
Integrationteam role. An integration user is a member of the partner's team, but every permission helper ignores the membership. It reads and writes no team data, does not show in rosters or mentions, and only a System Manager can grant, change or remove it. The dashboard never offers the role.buzz.api.listings.upsert_eventandremove_event. The integration user's API key keeps an approved externalCommunity Event Requestin sync, keyed by a newsource_idfield. If the community takes a listing down, later pushes update its details but do not approve it again.buzz.api.listings.openapireturns an OpenAPI 3.1 document for the contract, generated from the pydantic schema.On a partner site
Setup for a partner (System Manager on buzz.events)
Integrationrole. The team must be a published community.Not in this PR: a retry queue (re-saving the settings re-syncs everything), a self-serve key panel for team admins, partner events on
/events.Demo
Backend only, no UI changes.
Testing
buzz/api/listings/test_listings.py: upsert creates and updates one request, system time zone conversion, a taken-down request stays down, remove is idempotent, non-integration users are refused, the Integration member gets no team access, the role is hidden and not assignable, only a System Manager can grant or delete it, and the OpenAPI document.buzz/events/test_buzz_events_listing.py: the payload, upsert versus remove, and nothing runs when listing is disabled.