diff --git a/app/models/messenger.rb b/app/models/messenger.rb index 83b8c6a..3b2ade7 100644 --- a/app/models/messenger.rb +++ b/app/models/messenger.rb @@ -80,7 +80,7 @@ class Messenger return if proj.blank? # project based - pm = MessengerSetting.find_by project_id: proj.id + pm = proj.messenger_setting return pm.messenger_url if !pm.nil? && pm.messenger_url.present? # parent project based @@ -104,7 +104,7 @@ class Messenger return if proj.blank? # project based - pm = MessengerSetting.find_by project_id: proj.id + pm = proj.messenger_setting return pm.send config if !pm.nil? && pm.send(config).present? default_textfield proj, config @@ -123,7 +123,7 @@ class Messenger return [] if proj.blank? # project based - pm = MessengerSetting.find_by project_id: proj.id + pm = proj.messenger_setting if !pm.nil? && pm.messenger_channel.present? return [] if pm.messenger_channel == '-' @@ -137,7 +137,7 @@ class Messenger @setting_found = 0 # project based - pm = MessengerSetting.find_by project_id: proj.id + pm = proj.messenger_setting unless pm.nil? || pm.send(config).zero? @setting_found = 1 return false if pm.send(config) == 1 diff --git a/app/models/messenger_setting.rb b/app/models/messenger_setting.rb index 0df0b23..437b14c 100644 --- a/app/models/messenger_setting.rb +++ b/app/models/messenger_setting.rb @@ -5,11 +5,11 @@ class MessengerSetting < ActiveRecord::Base validates :messenger_url, format: { with: URI::DEFAULT_PARSER.make_regexp(%w[http https]), allow_blank: true } - def self.find_or_create(p_id) - setting = MessengerSetting.find_by project_id: p_id + def self.find_or_create(project_id) + setting = MessengerSetting.find_by project_id: project_id unless setting setting = MessengerSetting.new - setting.project_id = p_id + setting.project_id = project_id setting.save! end diff --git a/lib/redmine_messenger.rb b/lib/redmine_messenger.rb index d4cf2ba..7be81de 100644 --- a/lib/redmine_messenger.rb +++ b/lib/redmine_messenger.rb @@ -10,6 +10,7 @@ module RedmineMessenger def setup # Patches Issue.include RedmineMessenger::Patches::IssuePatch + Project.include RedmineMessenger::Patches::ProjectPatch WikiPage.include RedmineMessenger::Patches::WikiPagePatch ProjectsController.send :helper, MessengerProjectsHelper Contact.include RedmineMessenger::Patches::ContactPatch if RedmineMessenger::REDMINE_CONTACTS_SUPPORT diff --git a/lib/redmine_messenger/patches/project_patch.rb b/lib/redmine_messenger/patches/project_patch.rb new file mode 100644 index 0000000..98dad55 --- /dev/null +++ b/lib/redmine_messenger/patches/project_patch.rb @@ -0,0 +1,13 @@ +# frozen_string_literal: true + +module RedmineMessenger + module Patches + module ProjectPatch + extend ActiveSupport::Concern + + included do + has_one :messenger_setting + end + end + end +end