mirror of
https://github.com/anteo/redmine_custom_workflows.git
synced 2026-01-26 08:14:20 +00:00
#17: Compatibility with 2.x.x
This commit is contained in:
parent
b0b17c20da
commit
208a84eebd
@ -21,10 +21,17 @@ class CustomWorkflow < ActiveRecord::Base
|
||||
validates_format_of :author, :with => /\A([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})\z/i, :allow_blank => true
|
||||
validate :validate_syntax
|
||||
|
||||
default_scope { order(:position => :asc) }
|
||||
if Rails::VERSION::MAJOR >= 4
|
||||
default_scope { order(:position => :asc) }
|
||||
projects_join_table = reflect_on_association(:projects).join_table
|
||||
else
|
||||
default_scope :order => 'position ASC'
|
||||
projects_join_table = reflect_on_association(:projects).options[:join_table]
|
||||
end
|
||||
|
||||
scope :active, lambda { where(:active => true) }
|
||||
scope :for_project, (lambda do |project|
|
||||
where("is_for_all OR EXISTS (SELECT * FROM #{reflect_on_association(:projects).join_table} WHERE project_id=? AND custom_workflow_id=id)", project.id)
|
||||
where("is_for_all OR EXISTS (SELECT * FROM #{projects_join_table} WHERE project_id=? AND custom_workflow_id=id)", project.id)
|
||||
end)
|
||||
scope :observing, lambda { |observable| where(:observable => observable) }
|
||||
|
||||
|
||||
@ -7,17 +7,24 @@ module RedmineCustomWorkflows
|
||||
before_save :before_save_custom_workflows
|
||||
after_save :after_save_custom_workflows
|
||||
|
||||
callback = lambda do |event, group, user|
|
||||
def self.users_callback(event, group, user)
|
||||
group.instance_variable_set(:@group, group)
|
||||
group.instance_variable_set(:@user, user)
|
||||
CustomWorkflow.run_shared_code(group) if event.to_s.starts_with? 'before_'
|
||||
CustomWorkflow.run_custom_workflows(:group_users, group, event)
|
||||
end
|
||||
|
||||
before_add_for_users << callback
|
||||
before_remove_for_users << callback
|
||||
after_add_for_users << callback
|
||||
after_remove_for_users << callback
|
||||
if Rails::VERSION::MAJOR >= 4
|
||||
callback_lambda = lambda { |event, group, user| Group.users_callback(event, group, user) }
|
||||
before_add_for_users << callback_lambda
|
||||
before_remove_for_users << callback_lambda
|
||||
after_add_for_users << callback_lambda
|
||||
after_remove_for_users << callback_lambda
|
||||
else
|
||||
before_add_for_users << lambda { |group, user| Group.users_callback(:before_add, group, user) }
|
||||
before_remove_for_users << lambda { |group, user| Group.users_callback(:before_remove, group, user) }
|
||||
after_add_for_users << lambda { |group, user| Group.users_callback(:after_add, group, user) }
|
||||
after_remove_for_users << lambda { |group, user| Group.users_callback(:after_remove, group, user) }
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user