From 8548df41384b7dd6ff8ddd7e3c44921f7cfdcfe0 Mon Sep 17 00:00:00 2001 From: Bianca Nenciu Date: Wed, 8 Mar 2023 15:15:12 +0200 Subject: [PATCH] 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. --- .../jobs}/regular/assign_notification.rb | 0 {jobs => app/jobs}/regular/remind_user.rb | 0 .../jobs}/regular/unassign_notification.rb | 0 .../jobs}/scheduled/enqueue_reminders.rb | 0 config/routes.rb | 22 +++++ lib/discourse_assign/engine.rb | 8 ++ plugin.rb | 80 +++++-------------- 7 files changed, 51 insertions(+), 59 deletions(-) rename {jobs => app/jobs}/regular/assign_notification.rb (100%) rename {jobs => app/jobs}/regular/remind_user.rb (100%) rename {jobs => app/jobs}/regular/unassign_notification.rb (100%) rename {jobs => app/jobs}/scheduled/enqueue_reminders.rb (100%) create mode 100644 lib/discourse_assign/engine.rb diff --git a/jobs/regular/assign_notification.rb b/app/jobs/regular/assign_notification.rb similarity index 100% rename from jobs/regular/assign_notification.rb rename to app/jobs/regular/assign_notification.rb diff --git a/jobs/regular/remind_user.rb b/app/jobs/regular/remind_user.rb similarity index 100% rename from jobs/regular/remind_user.rb rename to app/jobs/regular/remind_user.rb diff --git a/jobs/regular/unassign_notification.rb b/app/jobs/regular/unassign_notification.rb similarity index 100% rename from jobs/regular/unassign_notification.rb rename to app/jobs/regular/unassign_notification.rb diff --git a/jobs/scheduled/enqueue_reminders.rb b/app/jobs/scheduled/enqueue_reminders.rb similarity index 100% rename from jobs/scheduled/enqueue_reminders.rb rename to app/jobs/scheduled/enqueue_reminders.rb diff --git a/config/routes.rb b/config/routes.rb index a5fd25e..32cbf49 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -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 diff --git a/lib/discourse_assign/engine.rb b/lib/discourse_assign/engine.rb new file mode 100644 index 0000000..6260570 --- /dev/null +++ b/lib/discourse_assign/engine.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +module ::DiscourseAssign + class Engine < ::Rails::Engine + engine_name PLUGIN_NAME + isolate_namespace DiscourseAssign + end +end diff --git a/plugin.rb b/plugin.rb index 4b2321c..fe701d7 100644 --- a/plugin.rb +++ b/plugin.rb @@ -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 }