Feature #39948 » 0001-introduces-Redmine-Plugin-attachment_object_type-399.patch
lib/redmine/plugin.rb | ||
---|---|---|
416 | 416 |
Redmine::WikiFormatting.register(name, *args) |
417 | 417 |
end |
418 | 418 | |
419 |
# Register plugin models that use acts_as_attachable. |
|
420 |
# |
|
421 |
# Example: |
|
422 |
# attachment_object_type SomeAttachableModel |
|
423 |
# |
|
424 |
# This is necessary for the core attachments controller routes and attachments/_form to work. |
|
425 |
def attachment_object_type(*args) |
|
426 |
args.each do |klass| |
|
427 |
Redmine::Acts::Attachable::ObjectTypeConstraint.register_object_type(klass.name.underscore.pluralize) |
|
428 |
end |
|
429 |
end |
|
430 | ||
419 | 431 |
# Returns +true+ if the plugin can be configured. |
420 | 432 |
def configurable? |
421 | 433 |
settings && settings.is_a?(Hash) && settings[:partial].present? |
test/unit/lib/redmine/plugin_test.rb | ||
---|---|---|
62 | 62 |
assert_equal File.join(@klass.directory, 'foo_plugin', 'assets'), plugin.assets_directory |
63 | 63 |
end |
64 | 64 | |
65 |
::FooModel = Class.new(ActiveRecord::Base) |
|
66 |
def test_register_attachment_object_type |
|
67 |
Redmine::Acts::Attachable::ObjectTypeConstraint.expects(:register_object_type).with("foo_models") |
|
68 |
@klass.register :foo_plugin do |
|
69 |
attachment_object_type FooModel |
|
70 |
end |
|
71 |
end |
|
72 | ||
65 | 73 |
def test_register_should_raise_error_if_plugin_directory_does_not_exist |
66 | 74 |
e = assert_raises Redmine::PluginNotFound do |
67 | 75 |
@klass.register(:bar_plugin) {} |