Index: openacs-4/packages/acs-tcl/tcl/application-data-link-procs.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-tcl/tcl/application-data-link-procs.tcl,v
diff -u -r1.6 -r1.7
--- openacs-4/packages/acs-tcl/tcl/application-data-link-procs.tcl	1 Nov 2006 19:22:51 -0000	1.6
+++ openacs-4/packages/acs-tcl/tcl/application-data-link-procs.tcl	2 Nov 2006 08:51:46 -0000	1.7
@@ -20,12 +20,23 @@
     object.
     @param target_object_id The ID of the target object.
 } {
-    application_data_link::new_from \
-	-object_id $this_object_id \
-	-to_object_id $target_object_id
-    application_data_link::new_to \
-	-object_id $this_object_id \
-        -from_object_id $target_object_id
+    if { [catch {
+	application_data_link::new_from \
+	    -object_id $this_object_id \
+	    -to_object_id $target_object_id
+	
+	application_data_link::new_to \
+	    -object_id $this_object_id \
+	    -from_object_id $target_object_id
+	
+    }]}  {
+	# check if error occured because of existing link
+	if { [application_data_link::exist_link -object_id $this_object_id -target_object_id $target_object_id] eq "1" } {
+	    ns_log Debug "application_data_link::new: link already exists" 
+	} else {  
+	    ns_log Error "application_data_link::new: link creation failure"
+	}
+    }
 }
 
 ad_proc -public application_data_link::new_from {
@@ -40,6 +51,12 @@
 } {
     set forward_rel_id [db_nextval acs_data_links_seq]
 
+    # Flush the cache for both items
+    util_memoize_flush_regexp "application_data_link::get_linked_not_cached -from_object_id $object_id .*"
+    util_memoize_flush_regexp "application_data_link::get_linked_not_cached -from_object_id $to_object_id .*"
+    util_memoize_flush_regexp "application_data_link::get_linked_content_not_cached -from_object_id $object_id .*"
+    util_memoize_flush_regexp "application_data_link::get_linked_content_not_cached -from_object_id $to_object_id .*"
+
     db_dml create_forward_link {}
 }
 
@@ -56,22 +73,12 @@
     set backward_rel_id [db_nextval acs_data_links_seq]
 
     # Flush the cache for both items
-    util_memoize_flush_regexp "application_data_link::get_linked_not_cached -from_object_id $this_object_id .*"
-    util_memoize_flush_regexp "application_data_link::get_linked_not_cached -from_object_id $target_object_id .*"
-    util_memoize_flush_regexp "application_data_link::get_linked_content_not_cached -from_object_id $this_object_id .*"
-    util_memoize_flush_regexp "application_data_link::get_linked_content_not_cached -from_object_id $target_object_id .*"
+    util_memoize_flush_regexp "application_data_link::get_linked_not_cached -from_object_id $object_id .*"
+    util_memoize_flush_regexp "application_data_link::get_linked_not_cached -from_object_id $from_object_id .*"
+    util_memoize_flush_regexp "application_data_link::get_linked_content_not_cached -from_object_id $object_id .*"
+    util_memoize_flush_regexp "application_data_link::get_linked_content_not_cached -from_object_id $from_object_id .*"
 
-    if { [catch {
-      db_dml create_forward_link {}
-      db_dml create_backward_link {}
-    }]}  {
-	# check if error occured because of existing link
-	if { [application_data_link::exist_link -object_id $this_object_id -target_object_id $target_object_id] eq "1" } {
-	    ns_log Debug "application_data_link::new: link already exists" 
-	} else {  
-	    ns_log Error "application_data_link::new: link creation failure"
-	}
-    }
+    db_dml create_backward_link {}
 }
 
 # created 2006/07/25 nfl exist a link, returns 0 or 1
@@ -150,6 +157,15 @@
 ad_proc -public application_data_link::get_linked_not_cached {
     -from_object_id:required
     -to_object_type:required
+} {
+    Gets the ID for the object linked to from_object_id and matches the
+    to_object_type.
+
+    @param from_object_id Object ID of linked-from object.
+    @param to_object_type Object type of linked-to object.
+
+    @return object_id of linked object.
+} {
     return [db_list linked_object {}]
 }