mirror of
https://github.com/meineerde/redmine.git
synced 2026-01-31 11:37:14 +00:00
Introduces Redmine::Plugin#attachment_object_type to provide better API for registering plugin models having attachments (#39948, #39862).
Patch by Jens Krämer (@jkraemer). git-svn-id: https://svn.redmine.org/redmine/trunk@22747 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
parent
38d950df55
commit
18cb44684b
@ -428,6 +428,18 @@ module Redmine
|
||||
Redmine::WikiFormatting.register(name, *args)
|
||||
end
|
||||
|
||||
# Register plugin models that use acts_as_attachable.
|
||||
#
|
||||
# Example:
|
||||
# attachment_object_type SomeAttachableModel
|
||||
#
|
||||
# This is necessary for the core attachments controller routes and attachments/_form to work.
|
||||
def attachment_object_type(*args)
|
||||
args.each do |klass|
|
||||
Redmine::Acts::Attachable::ObjectTypeConstraint.register_object_type(klass.name.underscore.pluralize)
|
||||
end
|
||||
end
|
||||
|
||||
# Returns +true+ if the plugin can be configured.
|
||||
def configurable?
|
||||
settings && settings.is_a?(Hash) && settings[:partial].present?
|
||||
|
||||
@ -62,6 +62,14 @@ class Redmine::PluginTest < ActiveSupport::TestCase
|
||||
assert_equal File.join(@klass.directory, 'foo_plugin', 'assets'), plugin.assets_directory
|
||||
end
|
||||
|
||||
::FooModel = Class.new(ActiveRecord::Base)
|
||||
def test_register_attachment_object_type
|
||||
Redmine::Acts::Attachable::ObjectTypeConstraint.expects(:register_object_type).with("foo_models")
|
||||
@klass.register :foo_plugin do
|
||||
attachment_object_type FooModel
|
||||
end
|
||||
end
|
||||
|
||||
def test_register_should_raise_error_if_plugin_directory_does_not_exist
|
||||
e = assert_raises Redmine::PluginNotFound do
|
||||
@klass.register(:bar_plugin) {}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user