Index: openacs-4/packages/contacts/www/contact-edit.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/contacts/www/contact-edit.tcl,v diff -u -N -r1.3 -r1.4 --- openacs-4/packages/contacts/www/contact-edit.tcl 9 Jun 2005 12:29:16 -0000 1.3 +++ openacs-4/packages/contacts/www/contact-edit.tcl 17 Jun 2005 10:42:47 -0000 1.4 @@ -52,7 +52,22 @@ ad_form -name party_ae \ -mode "edit" \ -form $form_elements \ - -has_edit "1" \ + -has_edit "1" + +foreach group_id $groups_belonging_to { + set element_name "category_ids$group_id" + if {$group_id < 0} { + set element_name "category_ids[expr - $group_id]" + } + + category::ad_form::add_widgets \ + -container_object_id $group_id \ + -categorized_object_id $party_id \ + -form_name party_ae \ + -element_name $element_name +} + +ad_form -extend -name party_ae \ -on_request { if { $object_type == "person" } { @@ -120,6 +135,21 @@ } util_user_message -html -message "The $object_type [contact::name -party_id $party_id] was updated" + set cat_ids [list] + foreach group_id $groups_belonging_to { + set element_name "category_ids$group_id" + if {$group_id < 0} { + set element_name "category_ids[expr - $group_id]" + } + + set cat_ids [concat $cat_ids \ + [category::ad_form::get_categories \ + -container_object_id $group_id \ + -element_name $element_name]] + } + + category::map_object -remove_old -object_id $party_id $cat_ids + } -after_submit { ad_returnredirect [contact::url -party_id $party_id] ad_script_abort