Index: openacs-4/packages/workflow/workflow.info
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/workflow/workflow.info,v
diff -u -N -r1.5.2.4 -r1.5.2.5
--- openacs-4/packages/workflow/workflow.info 23 Apr 2003 08:57:37 -0000 1.5.2.4
+++ openacs-4/packages/workflow/workflow.info 9 May 2003 13:49:36 -0000 1.5.2.5
@@ -8,7 +8,7 @@
t
workflow
-
+
oracle
postgresql
@@ -22,7 +22,7 @@
<p>
For more information, see: <a href="http://www.collaboraid.biz/developer/workflow-spec">the workflow specification</a>.
-
+
Index: openacs-4/packages/workflow/sql/oracle/workflow-procedural-create.sql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/workflow/sql/oracle/workflow-procedural-create.sql,v
diff -u -N -r1.2.2.1 -r1.2.2.2
--- openacs-4/packages/workflow/sql/oracle/workflow-procedural-create.sql 7 Mar 2003 12:22:33 -0000 1.2.2.1
+++ openacs-4/packages/workflow/sql/oracle/workflow-procedural-create.sql 9 May 2003 13:50:02 -0000 1.2.2.2
@@ -69,7 +69,7 @@
-- All workflow data cascades from the case id
delete from workflow_cases
- where object_id = delete_case_id;
+ where case_id = delete_case_id;
return 0;
end delete;
Index: openacs-4/packages/workflow/sql/oracle/upgrade/upgrade-1.0d2-1.0d3.sql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/workflow/sql/oracle/upgrade/upgrade-1.0d2-1.0d3.sql,v
diff -u -N
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/workflow/sql/oracle/upgrade/upgrade-1.0d2-1.0d3.sql 9 May 2003 13:50:56 -0000 1.1.2.1
@@ -0,0 +1,78 @@
+-- Upgrade script
+--
+-- Reload the workflow_case PL/SQL package.
+-- workflow_case.delete was implemented wrong, so it tried to delete the case by object_id instead of case_id.
+--
+-- Lars Pind (lars@collaboraid.biz)
+-- $Id: upgrade-1.0d2-1.0d3.sql,v 1.1.2.1 2003/05/09 13:50:56 simonc Exp $
+
+
+
+create or replace package workflow_case
+as
+ function get_pretty_state(
+ workflow_short_name in varchar,
+ object_id in integer
+ ) return varchar;
+
+ function delete(
+ delete_case_id in integer
+ ) return integer;
+
+end workflow_case;
+/
+show errors
+
+create or replace package body workflow_case
+as
+ function get_pretty_state(
+ workflow_short_name in varchar,
+ object_id in integer
+ ) return varchar
+ is
+ v_state_pretty varchar(4000);
+ v_object_id integer;
+ begin
+ v_object_id := object_id;
+
+ select s.pretty_name
+ into v_state_pretty
+ from workflows w,
+ workflow_cases c,
+ workflow_case_fsm cfsm,
+ workflow_fsm_states s
+ where w.short_name = workflow_short_name
+ and c.object_id = v_object_id
+ and c.workflow_id = w.workflow_id
+ and cfsm.case_id = c.case_id
+ and s.state_id = cfsm.current_state;
+
+ return v_state_pretty;
+
+ end get_pretty_state;
+
+ function delete(
+ delete_case_id in integer
+ ) return integer
+ is
+ begin
+ for rec in (select cr.item_id
+ from cr_items cr, workflow_case_log wcl
+ where cr.item_id = wcl.entry_id
+ and wcl.case_id = delete_case_id)
+ loop
+ delete from workflow_case_log where entry_id = rec.item_id;
+ content_item.delete(rec.item_id);
+ end loop;
+
+ -- All workflow data cascades from the case id
+ delete from workflow_cases
+ where case_id = delete_case_id;
+
+ return 0;
+ end delete;
+
+end workflow_case;
+/
+show errors
+
Index: openacs-4/packages/workflow/sql/postgresql/workflow-procedural-create.sql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/workflow/sql/postgresql/workflow-procedural-create.sql,v
diff -u -N -r1.6.2.1 -r1.6.2.2
--- openacs-4/packages/workflow/sql/postgresql/workflow-procedural-create.sql 7 Mar 2003 12:22:58 -0000 1.6.2.1
+++ openacs-4/packages/workflow/sql/postgresql/workflow-procedural-create.sql 9 May 2003 13:52:01 -0000 1.6.2.2
@@ -48,7 +48,7 @@
-- All workflow data cascades from the case id
delete from workflow_cases
- where object_id = delete_case_id;
+ where case_id = delete_case_id;
return 0;
end;' language 'plpgsql';
Index: openacs-4/packages/workflow/sql/postgresql/upgrade/upgrade-1.0d2-1.0d3.sql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/workflow/sql/postgresql/upgrade/upgrade-1.0d2-1.0d3.sql,v
diff -u -N
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/workflow/sql/postgresql/upgrade/upgrade-1.0d2-1.0d3.sql 9 May 2003 13:52:35 -0000 1.1.2.1
@@ -0,0 +1,31 @@
+-- Upgrade script
+--
+-- Redefine workflow_case__delete.
+-- workflow_case__delete was implemented wrong, so it tried to delete the case by object_id instead of case_id.
+--
+-- Lars Pind (lars@collaboraid.biz)
+-- $Id: upgrade-1.0d2-1.0d3.sql,v 1.1.2.1 2003/05/09 13:52:35 simonc Exp $
+
+create or replace function workflow_case__delete (integer)
+returns integer as '
+declare
+ delete_case_id alias for $1;
+ rec record;
+begin
+
+ for rec in select cr.item_id
+ from cr_items cr, workflow_case_log wcl
+ where cr.item_id = wcl.entry_id
+ and wcl.case_id = delete_case_id loop
+
+ delete from workflow_case_log where entry_id = rec.item_id;
+ perform content_item__delete(rec.item_id);
+ end loop;
+
+ -- All workflow data cascades from the case id
+ delete from workflow_cases
+ where case_id = delete_case_id;
+
+ return 0;
+end;' language 'plpgsql';
+
Index: openacs-4/packages/workflow/tcl/case-procs-oracle.xql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/workflow/tcl/case-procs-oracle.xql,v
diff -u -N -r1.2.2.1 -r1.2.2.2
--- openacs-4/packages/workflow/tcl/case-procs-oracle.xql 7 Mar 2003 12:23:25 -0000 1.2.2.1
+++ openacs-4/packages/workflow/tcl/case-procs-oracle.xql 9 May 2003 13:52:55 -0000 1.2.2.2
@@ -93,5 +93,12 @@
+
+
+ begin
+ :1 := workflow_case.delete(:case_id);
+ end;
+
+
Index: openacs-4/packages/workflow/tcl/case-procs-postgresql.xql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/workflow/tcl/case-procs-postgresql.xql,v
diff -u -N -r1.3.2.1 -r1.3.2.2
--- openacs-4/packages/workflow/tcl/case-procs-postgresql.xql 7 Mar 2003 12:23:25 -0000 1.3.2.1
+++ openacs-4/packages/workflow/tcl/case-procs-postgresql.xql 9 May 2003 13:52:55 -0000 1.3.2.2
@@ -85,4 +85,10 @@
+
+
+ select workflow_case__delete(:case_id)
+
+
+
Index: openacs-4/packages/workflow/tcl/case-procs.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/workflow/tcl/case-procs.tcl,v
diff -u -N -r1.6.2.8 -r1.6.2.9
--- openacs-4/packages/workflow/tcl/case-procs.tcl 5 May 2003 10:09:49 -0000 1.6.2.8
+++ openacs-4/packages/workflow/tcl/case-procs.tcl 9 May 2003 13:52:55 -0000 1.6.2.9
@@ -24,13 +24,13 @@
{-object_id:required}
} {
Internal procedure that creates a new workflow case in the
- database. Should not be used by applications.
+ database. Should not be used by applications. Use workflow::case::new instead.
@param object_id The object_id which the case is about
@param workflow_short_name The short_name of the workflow.
@return The case_id of the case. Returns the empty string if no case could be found.
- @see
+ @see workflow::case::new
@author Lars Pind (lars@collaboraid.biz)
} {
@@ -147,6 +147,18 @@
return $row($element)
}
+ad_proc -public workflow::case::delete {
+ {-case_id:required}
+} {
+ Delete a workflow case.
+
+ @param case_id The case_id you wish to delete
+
+ @author Simon Carstensen (simon@collaboraid.biz)
+} {
+ db_exec_plsql delete_case {}
+}
+
ad_proc -public workflow::case::get_user_roles {
{-case_id:required}
-user_id