|[Public Only | All]|
Helpers for dealing with relations
- Sun Dec 10 16:46:11 2000
- CVS Identification:
$Id: relation-procs.tcl,v 18.104.22.168 2013/09/06 12:06:49 gustafn Exp $
relation::get_id -object_id_one object_id_one \ -object_id_two object_id_two [ -rel_type rel_type ]
Find the rel_id of the relation matching the given object_id_one, object_id_two, and rel_type.
relation::get_object_one -object_id_two object_id_two \ [ -rel_type rel_type ] [ -multiple ]
Return the object_id of object one if a relation of rel_type exists between the supplied object_id_two and it.
relation::get_object_two -object_id_one object_id_one \ [ -rel_type rel_type ] [ -multiple ]
Return the object_id of object two if a relation of rel_type exists between the supplied object_id_one and it.
relation::get_objects [ -object_id_one object_id_one ] \ [ -object_id_two object_id_two ] [ -rel_type rel_type ]
Return the list of object_ids if a relation of rel_type exists between the supplied object_id and it.
relation_add [ -form_id form_id ] [ -extra_vars extra_vars ] \ [ -variable_prefix variable_prefix ] \ [ -creation_user creation_user ] [ -creation_ip creation_ip ] \ [ -member_state member_state ] rel_type object_id_one \ object_id_two
Creates a new relation of the specified type between the two objects. Throws an error if the new relation violates a relational constraint.
relation_permission_p [ -user_id user_id ] [ -privilege privilege ] \ rel_id
Wrapper for ad_permission_p that lets us default to read permission
relation_remove [ rel_id ]
Removes the specified relation. Throws an error if we violate a relational constraint by removing this relation.
relation_required_segments_multirow \ [ -datasource_name datasource_name ] [ -group_id group_id ] \ [ -rel_type rel_type ] [ -rel_side rel_side ]
Sets up a multirow datasource. Also returns a list containing the most essential information.
relation_segment_has_dependant [ -rel_id rel_id ] \ [ -segment_id segment_id ] [ -party_id party_id ]
Returns 1 if the specified segment/party combination has a dependant (meaning a constraint would be violated if we removed this relation). 0 otherwise. Either
relation_type_is_valid_to_group_p [ -group_id group_id ] rel_type
Returns 1 if group $group_id allows elements through a relation of type $rel_type, or 0 otherwise. If there are no relational constraints that prevent $group_id from being on side one of a relation of type $rel_type, then 1 is returned.
relation_types_valid_to_group_multirow \ [ -datasource_name datasource_name ] [ -start_with start_with ] \ [ -group_id group_id ]
creates multirow datasource containing relationship types starting with the $start_with relationship type. The datasource has columns that are identical to the party::types_allowed_in_group_multirow, which is why the columns are broadly named "object_*" instead of "rel_*". A common template can be used for generating select widgets etc. for both this datasource and the party::types_allowed_in_groups_multirow datasource. All subtypes of $start_with are returned, but the "valid_p" column in the datasource indicates whether the type is a valid one for $group_id. If -group_id is not specified or is specified null, then the current application_group will be used (determined from [application_group::group_id_from_package_id]). Includes fields that are useful for presentation in a hierarchical select widget: