Index: openacs-4/packages/dotlrn/sql/oracle/dotlrn-init.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/dotlrn/sql/oracle/dotlrn-init.sql,v diff -u -r1.20 -r1.21 --- openacs-4/packages/dotlrn/sql/oracle/dotlrn-init.sql 28 Apr 2002 04:08:41 -0000 1.20 +++ openacs-4/packages/dotlrn/sql/oracle/dotlrn-init.sql 20 May 2002 21:39:37 -0000 1.21 @@ -14,84 +14,223 @@ -- details. -- - -- -- The DotLRN basic system --- copyright 2001, OpenForce, Inc. --- distributed under the GNU GPL v2 -- --- for Oracle 8/8i. (We're guessing 9i works, too). +-- @author Ben Adida (ben@openforce.net) +-- @creation-date 2001-09-25 +-- @version $Id$ -- --- ben@openforce.net --- September 25th, 2001 --- we remember September 11th, 2001 +-- @note We remember September 11th, 2001 -- declare foo dotlrn_community_types.community_type%TYPE; + bar integer; begin - -- Create the base community type - foo := dotlrn_community_type.new ( + + -- create the base community type + foo := dotlrn_community_type.new( community_type => 'dotlrn_community', parent_type => null, pretty_name => 'Community', pretty_plural => 'Communities', description => 'Communities - the base community type' ); + update acs_object_types + set table_name = 'dotlrn_community', + package_name = 'dotlrn_community' + where object_type = 'dotlrn_community'; + + -- these are the possible attributes of a community + bar := acs_attribute.create_attribute( + object_type => 'dotlrn_community', + attribute_name => 'header_font', + datatype => 'string', + pretty_name => 'Header Font', + pretty_plural => 'Header Fonts', + min_n_values => 0, + max_n_values => 1, + storage => 'generic' + ); + + bar := acs_attribute.create_attribute( + object_type => 'dotlrn_community', + attribute_name => 'header_font_size', + datatype => 'string', + pretty_name => 'Header Font Size', + pretty_plural => 'Header Font Sizes', + min_n_values => 0, + max_n_values => 1, + storage => 'generic' + ); + + bar := acs_attribute.create_attribute( + object_type => 'dotlrn_community', + attribute_name => 'header_font_color', + datatype => 'string', + pretty_name => 'Header Font Color', + pretty_plural => 'Header Font Colors', + min_n_values => 0, + max_n_values => 1, + storage => 'generic' + ); + + bar := acs_attribute.create_attribute( + object_type => 'dotlrn_community', + attribute_name => 'header_logo_item_id', + datatype => 'integer', + pretty_name => 'Header Logo Item ID', + pretty_plural => 'Header Logo Item ID', + min_n_values => 0, + max_n_values => 1, + storage => 'generic' + ); + -- create the dotlrn_class community type - foo := dotlrn_community_type.new ( + foo := dotlrn_community_type.new( community_type => 'dotlrn_class_instance', parent_type => 'dotlrn_community', pretty_name => 'Class', pretty_plural => 'Classes', description => 'e.g. 6.001' ); + update acs_object_types + set table_name = 'dotlrn_class_instance', + package_name = 'dotlrn_class_instance' + where object_type = 'dotlrn_class_instance'; + -- create the dotlrn_club community type - foo := dotlrn_community_type.new ( + foo := dotlrn_community_type.new( community_type => 'dotlrn_club', parent_type => 'dotlrn_community', pretty_name => 'Club', pretty_plural => 'Clubs', description => 'e.g. Alumni' ); + update acs_object_types + set table_name = 'dotlrn_club', + package_name = 'dotlrn_club' + where object_type = 'dotlrn_club'; + -- create the user_workspace community_type -- aks - it's a hack for portal templates - foo := dotlrn_community_type.new ( + foo := dotlrn_community_type.new( community_type => 'user_workspace', parent_type => 'dotlrn_community', pretty_name => 'User Workspace', pretty_plural => 'User Workspaces', description => 'dummy type for User Workspace portal templates' ); + -- create roles + acs_rel_type.create_role( + role => 'student', + pretty_name => 'Student', + pretty_plural => 'Students' + ); - update acs_object_types set table_name = 'dotlrn_community', package_name = 'dotlrn_community' where object_type = 'dotlrn_community'; - update acs_object_types set table_name = 'dotlrn_class_instance', package_name = 'dotlrn_class_instance' where object_type = 'dotlrn_class_instance'; - update acs_object_types set table_name = 'dotlrn_club', package_name = 'dotlrn_club' where object_type = 'dotlrn_club'; + bar := acs_attribute.create_attribute( + object_type => 'dotlrn_community', + attribute_name => 'student_role_pretty_name', + datatype => 'string', + pretty_name => 'Student Role Pretty Name', + pretty_plural => 'Student Role Pretty Names', + min_n_values => 0, + max_n_values => 1, + storage => 'generic' + ); - -- create roles - acs_rel_type.create_role ('student', 'Student', 'Students'); - acs_rel_type.create_role ('course_assistant', 'Course Assistant', 'Course Assistants'); - acs_rel_type.create_role ('teaching_assistant', 'Teaching Assistant', 'Teaching Assistants'); - acs_rel_type.create_role ('instructor', 'Professor', 'Professors'); - acs_rel_type.create_role ('course_admin', 'Course Administrator', 'Course Administrators'); - acs_rel_type.create_role ('admin', 'Administrator', 'Administrators'); -end; -/ -show errors + acs_rel_type.create_role( + role => 'course_assistant', + pretty_name => 'Course Assistant', + pretty_plural => 'Course Assistants' + ); + bar := acs_attribute.create_attribute( + object_type => 'dotlrn_community', + attribute_name => 'coure_assistant_role_pretty_name', + datatype => 'string', + pretty_name => 'Course Assistant Role Pretty Name', + pretty_plural => 'Course Assistant Role Pretty Names', + min_n_values => 0, + max_n_values => 1, + storage => 'generic' + ); --- --- Object Types and Attributes --- + acs_rel_type.create_role( + role => 'teaching_assistant', + pretty_name => 'Teaching Assistant', + pretty_plural => 'Teaching Assistants' + ); -declare - foo integer; -begin - acs_rel_type.create_type ( + bar := acs_attribute.create_attribute( + object_type => 'dotlrn_community', + attribute_name => 'teaching_assistant_role_pretty_name', + datatype => 'string', + pretty_name => 'Teaching Assistant Role Pretty Name', + pretty_plural => 'Teaching Assistant Role Pretty Names', + min_n_values => 0, + max_n_values => 1, + storage => 'generic' + ); + + acs_rel_type.create_role( + role => 'instructor', + pretty_name => 'Professor', + pretty_plural => 'Professors' + ); + + bar := acs_attribute.create_attribute( + object_type => 'dotlrn_community', + attribute_name => 'instructor_role_pretty_name', + datatype => 'string', + pretty_name => 'Professor Role Pretty Name', + pretty_plural => 'Professor Role Pretty Names', + min_n_values => 0, + max_n_values => 1, + storage => 'generic' + ); + + acs_rel_type.create_role( + role => 'course_admin', + pretty_name => 'Course Administrator', + pretty_plural => 'Course Administrators' + ); + + bar := acs_attribute.create_attribute( + object_type => 'dotlrn_community', + attribute_name => 'course_admin_role_pretty_name', + datatype => 'string', + pretty_name => 'Course Adminsitrator Role Pretty Name', + pretty_plural => 'Course Adminsitrator Role Pretty Names', + min_n_values => 0, + max_n_values => 1, + storage => 'generic' + ); + + acs_rel_type.create_role( + role => 'admin', + pretty_name => 'Administrator', + pretty_plural => 'Administrators' + ); + + bar := acs_attribute.create_attribute( + object_type => 'dotlrn_community', + attribute_name => 'admin_role_pretty_name', + datatype => 'string', + pretty_name => 'Administrator Role Pretty Name', + pretty_plural => 'RAdministrator ole Pretty Names', + min_n_values => 0, + max_n_values => 1, + storage => 'generic' + ); + + -- create basic rel_types + acs_rel_type.create_type( rel_type => 'dotlrn_member_rel', supertype => 'membership_rel', pretty_name => 'dotLRN Community Membership', @@ -105,7 +244,7 @@ min_n_rels_two => 0, max_n_rels_two => null ); - acs_rel_type.create_type ( + acs_rel_type.create_type( rel_type => 'dotlrn_admin_rel', supertype => 'dotlrn_member_rel', pretty_name => 'dotLRN Admin Community Membership', @@ -119,10 +258,8 @@ min_n_rels_two => 0, max_n_rels_two => null ); - -- - -- and now for the attributes - -- - foo:= acs_attribute.create_attribute ( + -- all rels to communities must have a portal_id + bar := acs_attribute.create_attribute( object_type => 'dotlrn_member_rel', attribute_name => 'portal_id', datatype => 'integer',