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