#691 A tooltip for finished workflows
This commit is contained in:
parent
4c0538c349
commit
7ab6b37263
@ -28,6 +28,7 @@ class DmsfFileRevision < ActiveRecord::Base
|
||||
belongs_to :source_revision, :class_name => 'DmsfFileRevision', :foreign_key => 'source_dmsf_file_revision_id'
|
||||
belongs_to :user
|
||||
belongs_to :deleted_by_user, :class_name => 'User', :foreign_key => 'deleted_by_user_id'
|
||||
belongs_to :dmsf_workflow
|
||||
has_many :dmsf_file_revision_access, :dependent => :destroy
|
||||
has_many :dmsf_workflow_step_assignment, :dependent => :destroy
|
||||
|
||||
@ -311,4 +312,25 @@ class DmsfFileRevision < ActiveRecord::Base
|
||||
dmsf_file.propfind_cache_key
|
||||
end
|
||||
|
||||
def workflow_tooltip
|
||||
tooltip = ''
|
||||
if self.dmsf_workflow
|
||||
case workflow
|
||||
when DmsfWorkflow::STATE_WAITING_FOR_APPROVAL, DmsfWorkflow::STATE_ASSIGNED
|
||||
assignments = self.dmsf_workflow.next_assignments(self.id)
|
||||
if assignments
|
||||
assignments.each_with_index do |assignment, index|
|
||||
tooltip << ', ' if index > 0
|
||||
tooltip << assignment.user.name
|
||||
end
|
||||
end
|
||||
when DmsfWorkflow::STATE_APPROVED, DmsfWorkflow::STATE_REJECTED
|
||||
action = DmsfWorkflowStepAction.joins(:dmsf_workflow_step_assignment).where(
|
||||
['dmsf_workflow_step_assignments.dmsf_file_revision_id', self.id]).order('dmsf_workflow_step_actions.id').last
|
||||
tooltip << action.author.name if action
|
||||
end
|
||||
end
|
||||
tooltip
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
@ -167,19 +167,6 @@ class DmsfWorkflow < ActiveRecord::Base
|
||||
results
|
||||
end
|
||||
|
||||
def self.assignments_to_users_str(assignments)
|
||||
str = ''
|
||||
if assignments
|
||||
assignments.each_with_index do |assignment, index|
|
||||
if index > 0
|
||||
str << ', '
|
||||
end
|
||||
str << assignment.user.name
|
||||
end
|
||||
end
|
||||
str
|
||||
end
|
||||
|
||||
def assign(dmsf_file_revision_id)
|
||||
dmsf_workflow_steps.each do |ws|
|
||||
ws.assign(dmsf_file_revision_id)
|
||||
|
||||
@ -21,6 +21,7 @@
|
||||
class DmsfWorkflowStepAction < ActiveRecord::Base
|
||||
|
||||
belongs_to :dmsf_workflow_step_assignment
|
||||
belongs_to :author, :class_name => 'User', :foreign_key => 'author_id'
|
||||
|
||||
validates :dmsf_workflow_step_assignment_id, :presence => true
|
||||
validates :action, :presence => true
|
||||
|
||||
@ -80,7 +80,7 @@
|
||||
:project_id => project.id,
|
||||
:id => wf.id,
|
||||
:dmsf_file_revision_id => file.last_revision.id),
|
||||
:title => DmsfWorkflow.assignments_to_users_str(wf.next_assignments(file.last_revision.id)),
|
||||
:title => file.last_revision.workflow_tooltip,
|
||||
:remote => true) %>
|
||||
<% else %>
|
||||
<%= file.last_revision.workflow_str(false) %>
|
||||
|
||||
@ -129,7 +129,7 @@
|
||||
<%= link_to(revision.workflow_str(false),
|
||||
log_dmsf_workflow_path(:project_id => @project.id,
|
||||
:id => wf.id, :dmsf_file_revision_id => revision.id),
|
||||
:title => DmsfWorkflow.assignments_to_users_str(wf.next_assignments(revision.id)),
|
||||
:title => revision.workflow_tooltip,
|
||||
:remote => true) %>
|
||||
</p>
|
||||
<% end %>
|
||||
|
||||
@ -22,18 +22,21 @@ require File.expand_path('../../test_helper', __FILE__)
|
||||
|
||||
class DmsfFileRevisionTest < RedmineDmsf::Test::UnitTest
|
||||
fixtures :projects, :users, :email_addresses, :dmsf_folders, :dmsf_files, :dmsf_file_revisions, :roles, :members,
|
||||
:member_roles, :enabled_modules, :enumerations, :dmsf_locks
|
||||
:member_roles, :enabled_modules, :enumerations, :dmsf_locks, :dmsf_workflows, :dmsf_workflow_steps,
|
||||
:dmsf_workflow_step_assignments, :dmsf_workflow_step_actions
|
||||
|
||||
def setup
|
||||
@revision1 = DmsfFileRevision.find_by_id 1
|
||||
@revision2 = DmsfFileRevision.find_by_id 2
|
||||
@revision5 = DmsfFileRevision.find_by_id 5
|
||||
@wf1 = DmsfWorkflow.find_by_id 1
|
||||
end
|
||||
|
||||
def test_truth
|
||||
assert_kind_of DmsfFileRevision, @revision1
|
||||
assert_kind_of DmsfFileRevision, @revision2
|
||||
assert_kind_of DmsfFileRevision, @revision5
|
||||
assert_kind_of DmsfWorkflow, @wf1
|
||||
end
|
||||
|
||||
def test_delete_restore
|
||||
@ -144,4 +147,9 @@ class DmsfFileRevisionTest < RedmineDmsf::Test::UnitTest
|
||||
RedmineDmsf::Webdav::Cache.init_nullcache
|
||||
end
|
||||
|
||||
def test_workflow_tooltip
|
||||
@revision2.set_workflow @wf1.id, 'start'
|
||||
assert_equal 'John Smith', @revision2.workflow_tooltip
|
||||
end
|
||||
|
||||
end
|
||||
@ -188,12 +188,6 @@ class DmsfWorkflowTest < RedmineDmsf::Test::UnitTest
|
||||
assignments = @wf1.next_assignments(2)
|
||||
assert_equal assignments.size, 1
|
||||
assert_equal assignments[0].user_id, 2
|
||||
end
|
||||
|
||||
def test_assignments_to_users_str
|
||||
assignments = @wf1.next_assignments(2)
|
||||
str = DmsfWorkflow.assignments_to_users_str(assignments)
|
||||
assert_equal str, 'John Smith', str
|
||||
end
|
||||
|
||||
def test_assign
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user