discourse/spec/services
Renato Atilio eaca2d8a59
FEATURE: Add "Events" category type for Calendar plugin (#39727)
Adds an Events category type alongside Support and Ideas in the
simplified category creation flow. Auto-enables Calendar + Discourse
Post Event, registers the category in events_calendar_categories, and
writes a matching calendar_categories entry. Gated behind
enable_events_category_type_setup.

The Events tab exposes: default calendar view, display weekends, allowed
groups, event date format, topic sorting, and the upcoming events
sidebar link.

Framework support for per-category type settings:

- CategoriesController#create and #update now accept
category_type_settings, slicing the payload by each type's own
configuration_schema_keys(:category_settings). On create the slice
merges into Categories::Configure's category_configuration_values; on
update the controller iterates the category's attached types and calls
configure_category per type, so per-type fields persist on edit and a
type only ever sees its own keys.

- Categories::Types::Base#read_category_settings is a new extension
point types override to return current per-category values; the
CategorySerializer aggregates these as category_type_settings so the
edit form preloads stored values rather than schema defaults.

- Categories::Types::Base forwards :choices through the resolved schema
and lets a type override site setting :type and :choices when it wants a
bool to render as a labelled enum. configure_custom_fields and
configure_site_settings tolerate string or symbol keys.

- SchemaFormField gains enum (FormKit select) and group_list
(GroupChooser) branches. EditCategoryTypeSchemaFields renders a new form
section bound to a category_type_settings form object that iterates
schema.category_settings, gated by a hasCategorySettings getter. tabs.js
seeds the bucket from model.category_type_settings plus schema defaults;
Category#_categoryTypeSaveProperties sends it on save.

---------

Co-authored-by: Martin Brennan <martin@discourse.org>
2026-05-15 18:24:16 -03:00
..
admin/search DEV: Refactor admin search index into a service (#38959) 2026-04-01 10:09:10 +10:00
admin_notices FEATURE: Add problem checks page to admin panel and allow ignoring problem checks (#39103) 2026-04-23 08:28:33 +08:00
categories FEATURE: Add "Events" category type for Calendar plugin (#39727) 2026-05-15 18:24:16 -03:00
category DEV: Refactor category hierarchical search (#37609) 2026-02-13 09:43:56 +01:00
discourse_id
flags
groups
nested_topic DEV: Fix flaky nested-topic specs (#40078) 2026-05-15 18:55:50 +02:00
notification/action
notifications
problem_check DEV: Remove enable_upcoming_changes global setting gate (#38360) 2026-03-10 10:08:20 +10:00
site_setting UX: Allow more specific enabled for options for upcoming changes (#39916) 2026-05-13 10:22:06 +10:00
tags FIX: Search tags by localized name when content localization is enabled (#39566) 2026-05-05 12:23:34 +02:00
themes FEATURE: Enable high context topic cards in Horizon by default (#39959) 2026-05-15 10:50:42 +10:00
upcoming_changes DEV: Fix upcoming_changes/track specs (#40073) 2026-05-15 16:00:43 +02:00
user SECURITY: Enforce edit permissions and audit trail in TriggerPostAction 2026-03-19 15:21:28 +00:00
video_conversion FEATURE: Add opt-in IAM role assumption for S3 operations (#39174) 2026-04-15 04:29:50 +08:00
admin_dashboard_highlights_spec.rb FEATURE: Admin dashboard highlights to real data (#39895) 2026-05-12 13:15:52 +08:00
admin_dashboard_section_configuration_spec.rb FEATURE: Allow admins to configure sections in the experimental admin dashboard (#39964) 2026-05-13 18:03:39 +08:00
anonymous_shadow_creator_spec.rb UX: Introduce anonymous and logged_in_users auto groups (#39516) 2026-05-06 10:35:52 +10:00
auto_silence_spec.rb
badge_granter_spec.rb DEV: Automatically detect and revert translation overrides in specs (#40003) 2026-05-13 22:09:23 +02:00
base_bookmarkable_spec.rb
category_hashtag_data_source_spec.rb FIX: Use unaccent() for category name/slug search (#37622) 2026-02-12 08:43:23 +01:00
color_scheme_revisor_spec.rb
destroy_task_spec.rb
email_settings_exception_handler_spec.rb
email_settings_validator_spec.rb
email_style_updater_spec.rb
external_upload_manager_spec.rb FIX: Enforce content disposition on S3 presigned URLs (#38850) 2026-03-27 10:04:00 +08:00
flag_sockpuppets_spec.rb
group_action_logger_spec.rb PERF: Add Users to Group Improvements Pt. 2 (#38901) 2026-04-06 09:31:50 -05:00
group_mentions_updater_spec.rb FIX: Sync category description when post content changes outside PostRevisor (#39184) 2026-05-11 16:13:23 +02:00
group_message_spec.rb
hashtag_autocomplete_service_spec.rb
heat_settings_updater_spec.rb
hub_push_notification_pusher_spec.rb DEV: Centralize push notification delivery into a single job (#39207) 2026-04-14 11:55:45 -03:00
inline_uploads_multisite_spec.rb
inline_uploads_spec.rb FIX: Escape markdown characters in upload filenames (#39133) 2026-04-14 10:37:41 +02:00
locale_normalizer_spec.rb
notification_emailer_spec.rb FIX: Send notification emails for staff-coloured posts (#37712) 2026-02-11 13:26:27 +01:00
post_action_notifier_spec.rb
post_alerter_spec.rb FEATURE: Notification/tracking changes for nested replies (#39750) 2026-05-07 12:33:56 -05:00
post_bookmarkable_spec.rb
post_owner_changer_spec.rb
problem_check_spec.rb FIX: Allow only sanitized strings in admin notices (#39796) 2026-05-06 13:40:20 -04:00
push_notification_pusher_spec.rb FIX: Clean up push subscriptions whose endpoint domain no longer resolves (#39804) 2026-05-06 14:37:58 -03:00
random_topic_selector_spec.rb
search_indexer_spec.rb
sidebar_site_settings_backfiller_spec.rb
site_settings_spec.rb
staff_action_logger_spec.rb
tag_hashtag_data_source_spec.rb FIX: Tag search 500 when content_localization is enabled (#37769) 2026-02-12 23:58:03 +08:00
tag_settings_updater_spec.rb FIX: Clean localized tag names (#38488) 2026-03-12 12:54:50 +08:00
theme_settings_migrations_runner_spec.rb DEV: Add category helper for theme migration (#38816) 2026-03-24 16:50:37 +08:00
themes_spec.rb
topic_bookmarkable_spec.rb
topic_status_updater_spec.rb DEV: Add automatically closed topics event trigger and adapt the automation plugin's auto tag_topic_script accordingly (#39235) 2026-04-14 14:50:36 -05:00
topic_timestamp_changer_spec.rb
trust_level_granter_spec.rb
user_activator_spec.rb DEV: Change authenticated_with_oauth to use key instead of string. (#38381) 2026-03-10 18:31:32 -03:00
user_anonymizer_spec.rb
user_authenticator_spec.rb
user_destroyer_spec.rb FEATURE: Link staff action log entries to originating reviewable (#39519) 2026-04-30 09:15:45 +08:00
user_merger_spec.rb
user_notification_schedule_processor_spec.rb
user_password_expirer_spec.rb
user_silencer_spec.rb FIX: Prevent moderators from being auto-silenced (#39709) 2026-05-05 14:54:46 +08:00
user_stat_count_updater_spec.rb
user_suspender_spec.rb FEATURE: Link staff action log entries to originating reviewable (#39519) 2026-04-30 09:15:45 +08:00
user_updater_spec.rb
username_changer_spec.rb FIX: Preserve display name in quotes when using the rich text editor (#38078) 2026-02-26 21:04:07 +01:00
username_checker_service_spec.rb
wildcard_domain_checker_spec.rb
wildcard_url_checker_spec.rb
word_watcher_spec.rb FIX: unify watched word boundary regex across Ruby and JS engines (#37965) 2026-02-23 16:30:10 +01:00