DEV: Update plugin to match latest guidelines (#448)

This commit updates the plugin to follow the latest guidelines, as
shown in discourse-plugin-skeleton, removing the explicit require calls
and using config/routes.rb for defining all routes.
This commit is contained in:
Bianca Nenciu 2023-03-08 15:15:12 +02:00 committed by GitHub
parent aec66333f4
commit 8548df4138
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 51 additions and 59 deletions

View File

@ -9,3 +9,25 @@ DiscourseAssign::Engine.routes.draw do
get "/members/:group_name" => "assign#group_members"
get "/user-menu-assigns" => "assign#user_menu_assigns"
end
Discourse::Application.routes.append do
mount ::DiscourseAssign::Engine, at: "/assign"
get "topics/private-messages-assigned/:username" => "list#private_messages_assigned",
:as => "topics_private_messages_assigned",
:constraints => {
username: ::RouteFormat.username,
}
get "/topics/messages-assigned/:username" => "list#messages_assigned",
:constraints => {
username: ::RouteFormat.username,
},
:as => "messages_assigned"
get "/topics/group-topics-assigned/:groupname" => "list#group_topics_assigned",
:constraints => {
username: ::RouteFormat.username,
},
:as => "group_topics_assigned"
get "/g/:id/assigned" => "groups#index"
get "/g/:id/assigned/:route_type" => "groups#index"
end

View File

@ -0,0 +1,8 @@
# frozen_string_literal: true
module ::DiscourseAssign
class Engine < ::Rails::Engine
engine_name PLUGIN_NAME
isolate_namespace DiscourseAssign
end
end

View File

@ -14,67 +14,29 @@ register_asset "stylesheets/mobile/assigns.scss", :mobile
%w[user-plus user-times group-plus group-times].each { |i| register_svg_icon(i) }
require_relative "app/models/assign_mailer_site_settings.rb"
require_relative "app/models/remind_assigns_frequency_site_settings.rb"
require_relative "lib/validators/assign_statuses_validator.rb"
module ::DiscourseAssign
PLUGIN_NAME = "discourse-assign"
end
require_relative "lib/discourse_assign/engine"
require_relative "lib/validators/assign_statuses_validator"
after_initialize do
module ::DiscourseAssign
PLUGIN_NAME = "discourse-assign"
class Engine < ::Rails::Engine
engine_name DiscourseAssign::PLUGIN_NAME
isolate_namespace DiscourseAssign
end
end
require_relative "app/controllers/discourse_assign/assign_controller.rb"
require_relative "app/mailers/assign_mailer.rb"
require_relative "app/models/assign_mailer_site_settings.rb"
require_relative "app/models/assignment.rb"
require_relative "app/models/remind_assigns_frequency_site_settings.rb"
require_relative "app/serializers/assigned_group_serializer.rb"
require_relative "app/serializers/assigned_topic_serializer.rb"
require_relative "app/serializers/group_user_assigned_serializer.rb"
require_relative "config/routes.rb"
require_relative "jobs/regular/assign_notification.rb"
require_relative "jobs/regular/remind_user.rb"
require_relative "jobs/regular/unassign_notification.rb"
require_relative "jobs/scheduled/enqueue_reminders.rb"
require_relative "lib/assigner.rb"
require_relative "lib/discourse_assign/discourse_calendar.rb"
require_relative "lib/discourse_assign/group_extension.rb"
require_relative "lib/discourse_assign/helpers.rb"
require_relative "lib/discourse_assign/list_controller_extension.rb"
require_relative "lib/discourse_assign/post_extension.rb"
require_relative "lib/discourse_assign/topic_extension.rb"
require_relative "lib/discourse_assign/web_hook_extension.rb"
require_relative "lib/pending_assigns_reminder.rb"
require_relative "lib/random_assign_utils.rb"
require_relative "lib/topic_assigner.rb"
require_relative "lib/validators/assign_statuses_validator.rb"
Discourse::Application.routes.append do
mount ::DiscourseAssign::Engine, at: "/assign"
get "topics/private-messages-assigned/:username" => "list#private_messages_assigned",
:as => "topics_private_messages_assigned",
:constraints => {
username: ::RouteFormat.username,
}
get "/topics/messages-assigned/:username" => "list#messages_assigned",
:constraints => {
username: ::RouteFormat.username,
},
:as => "messages_assigned"
get "/topics/group-topics-assigned/:groupname" => "list#group_topics_assigned",
:constraints => {
username: ::RouteFormat.username,
},
:as => "group_topics_assigned"
get "/g/:id/assigned" => "groups#index"
get "/g/:id/assigned/:route_type" => "groups#index"
end
require_relative "app/jobs/regular/assign_notification"
require_relative "app/jobs/regular/remind_user"
require_relative "app/jobs/regular/unassign_notification"
require_relative "app/jobs/scheduled/enqueue_reminders"
require_relative "lib/assigner"
require_relative "lib/discourse_assign/discourse_calendar"
require_relative "lib/discourse_assign/group_extension"
require_relative "lib/discourse_assign/helpers"
require_relative "lib/discourse_assign/list_controller_extension"
require_relative "lib/discourse_assign/post_extension"
require_relative "lib/discourse_assign/topic_extension"
require_relative "lib/discourse_assign/web_hook_extension"
require_relative "lib/pending_assigns_reminder"
require_relative "lib/random_assign_utils"
require_relative "lib/topic_assigner"
reloadable_patch do |plugin|
Group.class_eval { prepend DiscourseAssign::GroupExtension }