Index: openacs-4/packages/acs-service-contract/acs-service-contract.info =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-service-contract/acs-service-contract.info,v diff -u -N -r1.45.2.8 -r1.45.2.9 --- openacs-4/packages/acs-service-contract/acs-service-contract.info 27 Feb 2017 07:42:03 -0000 1.45.2.8 +++ openacs-4/packages/acs-service-contract/acs-service-contract.info 17 Mar 2017 13:40:20 -0000 1.45.2.9 @@ -7,7 +7,7 @@ t t - + OpenACS API and UI for service contracts 2017-02-27 @@ -18,7 +18,7 @@ url or the contracts used by dotlrn and new-portals to allow packages to provide portalized panes. GPL version 2 - + Index: openacs-4/packages/acs-service-contract/sql/postgresql/acs-sc-packages-create.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-service-contract/sql/postgresql/acs-sc-packages-create.sql,v diff -u -N -r1.17 -r1.17.2.1 --- openacs-4/packages/acs-service-contract/sql/postgresql/acs-sc-packages-create.sql 27 Oct 2014 16:39:43 -0000 1.17 +++ openacs-4/packages/acs-service-contract/sql/postgresql/acs-sc-packages-create.sql 17 Mar 2017 13:40:20 -0000 1.17.2.1 @@ -433,12 +433,13 @@ p_impl_name varchar ) RETURNS integer AS $$ DECLARE + v_impl_id integer; BEGIN - delete from acs_sc_impls - where impl_contract_name = p_impl_contract_name - and impl_name = p_impl_name; + v_impl_id := acs_sc_impl__get_id(p_impl_contract_name,p_impl_name); + perform acs_object__delete(v_impl_id); + return 0; END; Index: openacs-4/packages/acs-service-contract/sql/postgresql/upgrade/upgrade-5.9.1b3-5.9.1b4.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-service-contract/sql/postgresql/upgrade/upgrade-5.9.1b3-5.9.1b4.sql,v diff -u -N --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/acs-service-contract/sql/postgresql/upgrade/upgrade-5.9.1b3-5.9.1b4.sql 17 Mar 2017 13:40:20 -0000 1.1.2.1 @@ -0,0 +1,22 @@ + +-- Before we were forgetting to delete acs_object. Now we exploit +-- cascade constraint on service contract table. TODO: put cascade +-- constraints on other tables referencing service contracts (like +-- authorities table) + +CREATE OR REPLACE FUNCTION acs_sc_impl__delete( + p_impl_contract_name varchar, + p_impl_name varchar +) RETURNS integer AS $$ +DECLARE + v_impl_id integer; +BEGIN + + v_impl_id := acs_sc_impl__get_id(p_impl_contract_name,p_impl_name); + + perform acs_object__delete(v_impl_id); + + return 0; + +END; +$$ LANGUAGE plpgsql;