The post_serializer_spec was calling Group.refresh_automatic_groups!(:admins), relying on that call booting system users from the group.
This change makes it so the implementation excludes any system users instead.
Adds a before parameter to the events endpoint and uses it through a upcomingDays parameter to the upcoming events list component – which can be used when adding it to the right sidebar blocks theme component.
We must include the year identifier since now we can use same topic to track holidays for multiple years. Also, we don't need to load old public holiday events for more than 6 months.
We know exactly which route this action exists on, so it's cleaner to lookup the route directly. (routeAction iterates through all active routes). Ideally this should be possible via a function on the composer service, but that would require a larger core change.
In https://github.com/discourse/discourse/pull/24740, `min_trust_to_create_topic` site setting was replaced by `create_topic_allowed_groups`. This PR replaces the former, deprecated one, with the latter.
* FEATURE: site setting to include expired events on calendar views
Adds a new site setting to include expired events on calendar views (Upcoming Events and Category Calendar).
Past events are displayed with the configured color (from the category or from the "Map events to color" site setting) as text and border colors instead of the background.
The legacy hamburger menu, which is implemented using the hamburger-menu widget, is being removed from core, so we need to migrate all customizations that currently target the legacy hamburger menu to the new sidebar.
This commit migrates the Upcoming Events link that the plugin adds to the legacy hamburger menu to the new sidebar.
Internal topic: t/113137.
We were incorrectly access the input value from `setCustomField`. Additionally, we can only call `.set` on a `EmberObject`, which we were initializing the `custom_fields` with a empty hash (`{}`) causing the `set` call to fail.
Before, site settings were divided into `discourse calendar` and `discourse events`.
This PR is merging them. Also, translation were moved under `discourse_calendar` key.