myexperiment-hackers
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[myexperiment-hackers] [3101] branches/events: added workflow and workfl


From: noreply
Subject: [myexperiment-hackers] [3101] branches/events: added workflow and workflow version events
Date: Thu, 23 Aug 2012 13:34:25 +0000 (UTC)

Revision
3101
Author
dgc
Date
2012-08-23 13:34:24 +0000 (Thu, 23 Aug 2012)

Log Message

added workflow and workflow version events

Modified Paths

Diff

Modified: branches/events/app/controllers/workflows_controller.rb (3100 => 3101)


--- branches/events/app/controllers/workflows_controller.rb	2012-08-23 13:33:21 UTC (rev 3100)
+++ branches/events/app/controllers/workflows_controller.rb	2012-08-23 13:34:24 UTC (rev 3101)
@@ -335,6 +335,9 @@
     
     respond_to do |format|
       if @workflow.save
+
+        Event.create(:subject => current_user, :action ="" 'create', :objekt => @workflow)
+
         if params[:workflow][:tag_list]
           @workflow.refresh_tags(convert_tags_to_gem_format(params[:workflow][:tag_list]), current_user)
           @workflow.reload
@@ -350,7 +353,7 @@
 
         # Credits and Attributions:
         update_credits(@workflow, params)
-        update_attributions(@workflow, params)
+        update_attributions(@workflow, params, current_user)
 
         update_layout(@workflow, params[:layout])
         
@@ -464,6 +467,8 @@
         rescue
         end
 
+        Event.create(:subject => current_user, :action ="" 'create version', :objekt => @workflow)
+
         respond_to do |format|
           flash[:notice] = 'New workflow version successfully created.'
           format.html {
@@ -520,6 +525,8 @@
       
       if @workflow.update_attributes(params[:workflow])
 
+        Event.create(:subject => current_user, :action ="" 'edit', :objekt => @workflow)
+
         if params[:workflow][:tag_list]
           @workflow.refresh_tags(convert_tags_to_gem_format(params[:workflow][:tag_list]), current_user)
           @workflow.reload
@@ -528,7 +535,7 @@
 
         policy_err_msg = update_policy(@workflow, params)
         update_credits(@workflow, params)
-        update_attributions(@workflow, params)
+        update_attributions(@workflow, params, current_user)
 
         update_layout(@workflow, params[:layout])
 
@@ -573,6 +580,7 @@
 
     respond_to do |format|
       if success
+        Event.create(:subject => current_user, :action ="" 'edit version', :extra => version.version, :objekt => @workflow)
         flash[:notice] = "Workflow version #{version.version}: \"#{original_title}\" has been updated."
         format.html { redirect_to(workflow_url(@workflow) + "?version=#{params[:version]}") }
       else

Modified: branches/events/lib/rest.rb (3100 => 3101)


--- branches/events/lib/rest.rb	2012-08-23 13:33:21 UTC (rev 3100)
+++ branches/events/lib/rest.rb	2012-08-23 13:34:24 UTC (rev 3101)
@@ -1121,6 +1121,15 @@
 
     success = ob.save
 
+    if success
+      case "#{action} #{new_version || edit_version}"
+      when "create false": Event.create(:subject => opts[:user], :action ="" 'create', :objekt => ob)
+      when "create true":  Event.create(:subject => opts[:user], :action ="" 'create version', :objekt => ob)
+      when "edit false":   Event.create(:subject => opts[:user], :action ="" 'edit', :objekt => ob)
+      when "edit true":    Event.create(:subject => opts[:user], :action ="" 'edit version', :objekt => ob, :extra => ob.version)
+      end
+    end
+
     return rest_response(400, :object => ob) unless success
 
     # Elements to update if we're not dealing with a workflow version
@@ -1244,6 +1253,7 @@
     ob.content_blob = ContentBlob.new(:data ="" content) if content
 
     new_version = action == 'create' && opts[:query][:id]
+    edit_version = action == 'edit'   && opts[:query]['version'] != nil
 
     if new_version
       ob[:revision_comments] = revision_comment
@@ -2286,10 +2296,10 @@
 # Call dispatcher
 
 def rest_call_request(opts)
-  begin
+# begin
     send(opts[:rules]['Function'], opts)
-  rescue
-    return rest_response(500)
-  end
+# rescue
+#   return rest_response(500)
+# end
 end
 

Modified: branches/events/test/functional/api_controller_test.rb (3100 => 3101)


--- branches/events/test/functional/api_controller_test.rb	2012-08-23 13:33:21 UTC (rev 3100)
+++ branches/events/test/functional/api_controller_test.rb	2012-08-23 13:34:24 UTC (rev 3101)
@@ -19,6 +19,7 @@
   def test_workflows
 
     existing_workflows = Workflow.find(:all)
+    existing_events = Event.all
 
     login_as(:john)
 
@@ -44,9 +45,17 @@
     assert_response(:success)
 
     extra_workflows = Workflow.find(:all) - existing_workflows
+    extra_events = Event.find(:all). - existing_events
 
     assert_equal(1, extra_workflows.length)
+    assert_equal(1, extra_events.length)
 
+    new_event = (extra_events - existing_events).first
+
+    assert_equal("John Smith", new_event.subject_label);
+    assert_equal("create", new_event.action);
+    assert_equal(title, new_event.objekt_label);
+
     @workflow_id = extra_workflows.first.id
 
     # get the workflow
@@ -77,6 +86,8 @@
     setup
     login_as(:john)
 
+    existing_events = Event.all
+
     rest_request(:put, 'workflow', "<?xml version='1.0'?>
       <workflow>
         <title>#{title2}</title>
@@ -84,6 +95,15 @@
 
     assert_response(:success)
 
+    extra_events = Event.find(:all). - existing_events
+    assert_equal(1, extra_events.length)
+    
+    new_event = (extra_events - existing_events).first
+
+    assert_equal("John Smith", new_event.subject_label);
+    assert_equal("edit", new_event.action);
+    assert_equal(title2, new_event.objekt_label);
+
     # get the updated workflow
 
     response = rest_request(:get, 'workflow', nil, "id" => @workflow_id,
@@ -100,6 +120,8 @@
 
     # post a new version of the workflow
 
+    existing_events = Event.all
+
     rest_request(:post, 'workflow', "<?xml version='1.0'?>
       <workflow>
         <type>Taverna 2</type>
@@ -108,6 +130,15 @@
 
     assert_response(:success)
 
+    extra_events = Event.find(:all). - existing_events
+    assert_equal(1, extra_events.length)
+
+    new_event = (extra_events - existing_events).first
+
+    assert_equal("John Smith", new_event.subject_label);
+    assert_equal("create version", new_event.action);
+    assert_equal("Fetch today's xkcd comic", new_event.objekt_label);
+
     workflow = Workflow.find(@workflow_id)
 
     assert_equal(2, workflow.versions.length)
@@ -134,6 +165,8 @@
 
     # edit a particular version of a workflow
 
+    existing_events = Event.all
+
     rest_request(:put, 'workflow', "<?xml version='1.0'?>
       <workflow>
         <title>Oranges</title>
@@ -141,6 +174,16 @@
 
     assert_response(:success)
 
+    extra_events = Event.find(:all). - existing_events
+    assert_equal(1, extra_events.length)
+    
+    new_event = (extra_events - existing_events).first
+
+    assert_equal("John Smith", new_event.subject_label);
+    assert_equal("edit version", new_event.action);
+    assert_equal("1", new_event.extra);
+    assert_equal("Oranges", new_event.objekt_label);
+
     # Verify that only version 1 was changed
 
     response = rest_request(:get, 'workflow', nil, "id" => @workflow_id, "version" => "1",

reply via email to

[Prev in Thread] Current Thread [Next in Thread]