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;