Index: openacs-4/packages/acs-subsite/www/doc/group-admin-pages-requirements.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-subsite/www/doc/group-admin-pages-requirements.adp,v diff -u -r1.2.2.3 -r1.2.2.4 --- openacs-4/packages/acs-subsite/www/doc/group-admin-pages-requirements.adp 1 Dec 2015 11:17:59 -0000 1.2.2.3 +++ openacs-4/packages/acs-subsite/www/doc/group-admin-pages-requirements.adp 9 Jun 2016 08:53:54 -0000 1.2.2.4 @@ -40,15 +40,15 @@ privilege of one subsite can administer all other groups in the system.

IV. Use case and User Scenarios

-The Intranet Application +The Intranet Application

The Intranet application may model employees in many ways. Without loss of generality, we assume each employee is a "person" with an "employment relation" to a company. Figure 1 shows an outline of what the ACS Site Map may look like with several companies. Note that each company represents one instance of the intranet application.

-

Figure 1: Structure of Multiple Intranets +

Figure 1: Structure of Multiple Intranets
The employment relation is a subtype of the ACS Membership Relation with additional attributes specific to employees (e.g. @@ -70,72 +70,72 @@ type.

VI.A Requirements: Data Model

-
10.10 Default relationship types for group -types

Each group type should specify a set of permissible -relationship types to use for groups of that type.


10.20 Default relationship types for -groups

The administrator must be able to specify the permissible +

10.10 Default relationship types for group +types

Each group type should specify a set of permissible +relationship types to use for groups of that type.


10.20 Default relationship types for +groups

The administrator must be able to specify the permissible relationship types to use for each group. The defaults are inherited from the list of permissible relationship types for the group's type.

VI.B Requirements: API

-
20.10 Define a new group type

Users should be able to create a new type of -group.

30.10 Specify attributes

Users should be able to dynamically add attributes to +

20.10 Define a new group type

Users should be able to create a new type of +group.

30.10 Specify attributes

Users should be able to dynamically add attributes to group types. These attributes should be stored -efficiently.

35.10 Remove attributes

Users should be able to dynamically remove attributes from +efficiently.

35.10 Remove attributes

Users should be able to dynamically remove attributes from a group type. Removing the attribute removes all values specified -for that attribute.

40.10 Relationship Constraints

The API must support the following types of constraints on -relationships:

40.10.10 Permissible relationships

Each group type should maintain a list of all relationship +for that attribute.

40.10 Relationship Constraints

The API must support the following types of constraints on +relationships:

40.10.10 Permissible relationships

Each group type should maintain a list of all relationship types that can be used to add elements to groups of this group -type.

40.10.20 Constraints on relationships

Relationships listed as allowable for a given group type +type.

40.10.20 Constraints on relationships

Relationships listed as allowable for a given group type should link to more information about the relationship type, including any constraints that must be satisfied before relations -of the specified type are created.

40.10.30 Constrain membership to a given -group

The system provides a well-defined API call that adds a +of the specified type are created.

40.10.30 Constrain membership to a given +group

The system provides a well-defined API call that adds a given relationship type to the list of allowable relationship types to apply to a given group or group type. Any subtype of an allowable relationship type will also be allowed.

VI.C Requirements: User Interface

-100.10 Create a group type with +100.10 Create a group type with attributes

When creating a new group type, the UI should support ACS datatypes with appropriate UI.

-130.10 Group type summary page
+130.10 Group type summary page
-130.10.10 Display allowable relationship +130.10.10 Display allowable relationship types

The group type summary page should display all the relationship types used to add relations to groups of this type and allow the user to add permissible relationship types or to remove existing ones.

-130.10.20 Display groups

Display all groups of this type, based on permissions. UI +130.10.20 Display groups

Display all groups of this type, based on permissions. UI should scale well with a large number of groups.

-110.10 Create an instance of a particular group +110.10 Create an instance of a particular group type

When creating a new group of the specified type, the UI must request values for each of the attributes of that type, including attributes of all supertypes (up the type tree until the object of type 'group').

-130.10.20 Display type attributes

Display all attributes for this group type, including +130.10.20 Display type attributes

Display all attributes for this group type, including supertypes.

-130.10.20 Delete group type

Allow administrators to delete the group type. This action +130.10.20 Delete group type

Allow administrators to delete the group type. This action removes all groups of this type.

-150.10 Group instance summary page
+150.10 Group instance summary page
-150.10.10 Display relations

Each group should display all the parties related to it +150.10.10 Display relations

Each group should display all the parties related to it and through what relationship type. Offer links to remove each relation or to add a new relation of a given type. The UI for relations should scale well.

-150.10.20 Display attributes

Display all attributes of the group with links to edit +150.10.20 Display attributes

Display all attributes of the group with links to edit each.

-150.10.20 Delete group

Allow administrators to delete the group including all +150.10.20 Delete group

Allow administrators to delete the group including all relations to the group.

-150.20 Integration with relational Segments and +150.20 Integration with relational Segments and Constraints

The group summary page should offer links to define relational segments for the group, based on a particular relationship type. The UI must also integrate with the relational