Index: openacs-4/packages/acs-subsite/www/doc/group-admin-pages-design.adp
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-subsite/www/doc/group-admin-pages-design.adp,v
diff -u -r1.2 -r1.3
--- openacs-4/packages/acs-subsite/www/doc/group-admin-pages-design.adp 27 Oct 2014 16:39:57 -0000 1.2
+++ openacs-4/packages/acs-subsite/www/doc/group-admin-pages-design.adp 7 Aug 2017 23:47:59 -0000 1.3
@@ -1,45 +1,54 @@
- Attributes themselves are stored using
To support the clean separation between programmer defined
+type. To support the clean separation between programmer defined
PL/SQL packages and automatically generated packages, we add the
Group Admin Pages - Design
ACS subsite docs : Group Admin Pages - Design
-I. Essentials
+
+Group Admin Pages - Design
+ACS subsite docs
+ : Group Admin Pages - Design
+I. Essentials
+
II. Introduction
-The group administration packages provides a "control panel" to
-allow the administrator of a subsite to control the groups in use
-on that subsite. Administrators manage the types of groups in use
-on a subsite. For each of these group types, the administrator can
-create new groups, specify applicable relationship types, create
-relations between these groups, and modify attributes of the types
-and groups.
+II. Introduction
+
+The group administration packages provides a "control
+panel" to allow the administrator of a subsite to control the
+groups in use on that subsite. Administrators manage the types of
+groups in use on a subsite. For each of these group types, the
+administrator can create new groups, specify applicable
+relationship types, create relations between these groups, and
+modify attributes of the types and groups.
III. Historical Considerations
+
Versions 4.0.x of the ACS lacked a useful group administration
package for subsites. For example:
+
This package addresses most of the short-coming of the previous
subsites group administration package making group administration
subsite aware and better integrated with the ACS Object Model.
IV. Design Tradeoffs
+
Whenever possible, the design of this package tries to minimize
disturbance to the core ACS 4.0 data model. Instead, we focus on
adding a more powerful user interface and PL/SQL API to the
existing group admin pages while extending the data model only when
necessary.
-V. API
Permissible relationship types
+V. API
+Permissible relationship types
+
We defined the following two tables to store the relationship type
used to store the permissible relationship types for group types
and individual groups. Whenever a group is created using the
-acs_group.new
function, the relationship types for the
+acs_group.new
+ function, the relationship types for the
new group are automatically copied from those allowed for its group
type.
@@ -70,40 +79,56 @@
constraint group_rels_group_rel_type_un unique (group_id, rel_type)
);
-
Dynamic subtypes of object types
+
+Dynamic subtypes of object types
+
To allow administrators to create dynamic object types (e.g.
-subtypes of the object types group
,
-membership_rel
, and composition_rel
), we
+subtypes of the object types group
+,
+membership_rel
+, and composition_rel
+), we
provide a Tcl library of procedure that generate PL/SQL packages.
For each dynamically created object type, we:
+
Whenever an attribute is added or deleted, a type added or removed,
we regenerate some of the PL/SQL packages, based on the type
hierarchy affected by the change.
type-specific
storage. For each new attribute, we
create a column in the table dynamically created for the new object
-type.dynamic_p
column to the acs_object_types
-table.
+table.
acs_object_types.dynamic_p char(1) default 'f' constraint acs_obj_types_dynamic_p_ck check (dynamic_p in ('t', 'f')) -
Note that the dynamic_p
is still experimental
-and may be removed in a future version of ACS
Note that the dynamic_p
is still
+experimental and may be removed in a future version of
+ACS
/admin/
directory of the subsite
+located in the /admin/
+ directory of the subsite
package.
We also may add a few additional package parameters -including:
Document Revision # | Action Taken, Notes | When? | By Whom? |
---|---|---|---|
0.1 | Creation | 11/30/2000 | Michael Bryzek |
1.0 | Major Revision | 1/11/2001 | Michael Bryzek |