Index: openacs-4/packages/contacts/www/relationship-delete.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/contacts/www/relationship-delete.tcl,v diff -u -r1.7 -r1.8 --- openacs-4/packages/contacts/www/relationship-delete.tcl 15 Feb 2006 10:06:36 -0000 1.7 +++ openacs-4/packages/contacts/www/relationship-delete.tcl 14 Mar 2006 08:38:04 -0000 1.8 @@ -16,21 +16,44 @@ } } +# ams::object_delete -object_id $rel_id +db_1row get_rel_info {} +if { $object_id_one eq $party_id } { + set other_party_id $object_id_two +} else { + set other_party_id $object_id_two +} + +# we can only delete relationships where both parties belong to this package contact::require_visiblity -party_id $party_id +contact::require_visiblity -party_id $other_party_id -# ams::object_delete -object_id $rel_id -db_1row get_object_id_one {} +# delete the rel (we don't use relation_remove because it +# requires a rel_type__delete proc, which we don't have +# acs_object__delete allows and on delete cascades to work +# along with this rel removal. db_1row delete_rel {} -# flush cache for employee data -util_memoize_flush_regexp "::contact::employee_not_cached -employee_id $object_id_one" -util_memoize_flush_regexp "::contact::employee::get_not_cached -employee_id $object_id_one *" -util_memoize_flush_regexp "::contact::employee_not_cached -employee_id $party_id" -util_memoize_flush_regexp "::contact::employee::get_not_cached -employee_id $party_id *" +# flush cache for relationship data +contact::flush -party_id party_id +contact::flush -party_id other_party_id + if { ![exists_and_not_null return_url] } { set return_url "$party_id/relationships" } -ad_returnredirect -message "[_ contacts.Relationship_Deleted]" $return_url + + +set redirect_rel_types [parameter::get -parameter EditDataAfterRel -package_id [ad_conn package_id] -default ""] +if { [regexp {\*} $redirect_rel_types match] || [lsearch $redirect_rel_types $rel_type] >= 0 } { + # we need to redirect the party to the attribute add/edit page + set return_url [export_vars -base "[contact::url -party_id $party_id]edit" -url {return_url}] + ad_returnredirect -message "[_ contacts.Relationship_Deleted]. [_ contacts.lt_update_contact_if_needed]" $return_url +} else { + # we redirect the party to the specified return_url + ad_returnredirect -message "[_ contacts.Relationship_Deleted]" $return_url + +} + ad_script_abort