Index: openacs-4/packages/lab-report-central/catalog/lab-report-central.en_US.ISO-8859-1.xml =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/lab-report-central/catalog/lab-report-central.en_US.ISO-8859-1.xml,v diff -u -N -r1.6 -r1.7 --- openacs-4/packages/lab-report-central/catalog/lab-report-central.en_US.ISO-8859-1.xml 21 May 2006 08:57:24 -0000 1.6 +++ openacs-4/packages/lab-report-central/catalog/lab-report-central.en_US.ISO-8859-1.xml 14 Aug 2006 13:46:13 -0000 1.7 @@ -2,6 +2,8 @@ Actions: + Add Feedback Component + Add Feedback Criterion Add Instructor Add instructor to list Add Lab @@ -17,16 +19,24 @@ Create Section Create Template Delete + Delete Feedback Component Delete Resource Delete Section Description Edit Edit Details + Edit Feedback + Edit Feedback Criterion Edit Lab Edit Resource Edit Resources Edit Section Edit Template + Feedback Criteria + Feedback criteria for %section_name% + Feedback criteria for this section: + Enter a description for the feedback criterion. + Enter a name for the feedback criterion. Enter lab description. Enter the last day of the lab. Enter name for lab. @@ -58,6 +68,7 @@ No report templates have been created. No students have been added to this lab. No templates have been created. + There are currently no feedback criteria allocated to this section. Feedback criterion can be added by clicking on the add feedback button below. There are currently no resources allocated to this section. Resources can be added by clicking on the add resource button below. There are currently no sections allocated to this report template. Sections can be added by clicking on the add section button below. Remove @@ -80,6 +91,8 @@ View View Instructors View Report Templates + Visit Resource + Continue with deleting the feedback component? Continue with deleting the instructor? Continue with deleting the lab? Continue with deleting the resource? Index: openacs-4/packages/lab-report-central/sql/postgresql/lab-report-central-create.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/lab-report-central/sql/postgresql/lab-report-central-create.sql,v diff -u -N -r1.5 -r1.6 --- openacs-4/packages/lab-report-central/sql/postgresql/lab-report-central-create.sql 21 May 2006 08:57:24 -0000 1.5 +++ openacs-4/packages/lab-report-central/sql/postgresql/lab-report-central-create.sql 14 Aug 2006 13:46:13 -0000 1.6 @@ -39,7 +39,7 @@ 'f', null, null - ); +); select acs_object_type__create_type ( 'lrc_template', @@ -52,7 +52,7 @@ 'f', null, null - ); +); select acs_object_type__create_type ( 'lrc_section', @@ -65,7 +65,7 @@ 'f', null, null - ); +); select acs_object_type__create_type ( 'lrc_resource', @@ -78,8 +78,21 @@ 'f', null, null - ); +); +select acs_object_type__create_type ( + 'lrc_feedback_criteria', + '#lab-report-central.feedback_criteria#', + '#lab-report-central.feedback_criteria#', + 'acs_object', + 'lrc_feedback_criteria', + 'feedback_criteria_id', + null, + 'f', + null, + null +); + -- -- Create tables -- @@ -161,6 +174,26 @@ on delete cascade ); +create table lrc_feedback_criteria ( + feedback_criteria_id integer + constraint lrc_feedback_criteria_id_fk + references acs_objects (object_id) + constraint lrc_feedback_criteria_pk + primary key, + section_id integer + constraint lrc_feedback_criteria_section_id_fk + references lrc_section (section_id) + on delete cascade, + name varchar (5120) + constraint lrc_feedback_criteria_name_nn + not null, + description text, + package_id integer + constraint lrc_feedback_criteria_package_id_fk + references apm_packages (package_id) + on delete cascade +); + create table lrc_groups ( magic_name varchar(512) constraint lrc_groups_name_nn @@ -674,3 +707,121 @@ return v_resource_name; end; ' language 'plpgsql'; + + +select define_function_args('lrc_feedback_criteria__new','feedback_criteria_id,section_id,name,description,package_id,creation_date;now,creation_user,creation_ip,context_id'); + +create function lrc_feedback_criteria__new ( + integer, + integer, + varchar, + text, + integer, + timestamptz, + integer, + varchar, + integer +) returns integer as ' +declare + p_feedback_criteria_id alias for $1; -- default null + p_section_id alias for $2; + p_name alias for $3; + p_description alias for $4; + p_package_id alias for $5; + p_creation_date alias for $6; -- default now() + p_creation_user alias for $7; -- default null + p_creation_ip alias for $8; -- default null + p_context_id alias for $9; -- default null + + v_feedback_criteria_id lrc_feedback_criteria.feedback_criteria_id%TYPE; + v_inst_group_id integer; +begin + + v_feedback_criteria_id := acs_object__new ( + p_feedback_criteria_id, + ''lrc_feedback_criteria'', + p_creation_date, + p_creation_user, + p_creation_ip, + p_context_id + ); + + INSERT INTO lrc_feedback_criteria ( + feedback_criteria_id, + section_id, + name, + description, + package_id + ) VALUES ( + v_feedback_criteria_id, + p_section_id, + p_name, + p_description, + p_package_id + ); + + SELECT group_id into v_inst_group_id + FROM lrc_groups + WHERE magic_name = ''instructors''; + + -- Grant permissions to instructors on this object. + PERFORM acs_permission__grant_permission( + v_feedback_criteria_id, + v_inst_group_id, + ''lab_report_central_read'' + ); + + PERFORM acs_permission__grant_permission( + v_feedback_criteria_id, + v_inst_group_id, + ''lab_report_central_write'' + ); + + PERFORM acs_permission__grant_permission( + v_feedback_criteria_id, + v_inst_group_id, + ''lab_report_central_admin'' + ); + + return v_feedback_criteria_id; + +end;' language 'plpgsql'; + + +select define_function_args('lrc_feedback_criteria__del','feedback_criteria_id'); + +create function lrc_feedback_criteria__del (integer) +returns integer as ' +declare + p_feedback_criteria_id alias for $1; +begin + raise NOTICE ''Deleting feedback criteria...''; + + DELETE FROM acs_permissions + WHERE object_id = p_feedback_criteria_id; + + DELETE FROM lrc_feedback_criteria + WHERE feedback_criteria_id = p_feedback_criteria_id; + + PERFORM acs_object__delete(p_feedback_criteria_id); + + return 0; + +end;' language 'plpgsql'; + + +select define_function_args('lrc_feedback_criteria__name','feedback_criteria_id'); + +create function lrc_feedback_criteria__name (integer) +returns varchar as ' +declare + p_feedback_criteria_id alias for $1; + v_criteria_name lrc_feedback_criteria.name%TYPE; +begin + SELECT name INTO v_criteria_name + FROM lrc_feedback_criteria + WHERE feedback_criteria_id = p_feedback_criteria_id; + + return v_criteria_name; +end; +' language 'plpgsql'; Index: openacs-4/packages/lab-report-central/sql/postgresql/lab-report-central-drop.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/lab-report-central/sql/postgresql/lab-report-central-drop.sql,v diff -u -N -r1.5 -r1.6 --- openacs-4/packages/lab-report-central/sql/postgresql/lab-report-central-drop.sql 21 May 2006 08:57:24 -0000 1.5 +++ openacs-4/packages/lab-report-central/sql/postgresql/lab-report-central-drop.sql 14 Aug 2006 13:46:13 -0000 1.6 @@ -23,6 +23,20 @@ -- -- Drop functions -- +drop function lrc_feedback_criteria__name (integer); +drop function lrc_feedback_criteria__del (integer); +drop function lrc_feedback_criteria__new ( + integer, + integer, + varchar, + text, + integer, + timestamptz, + integer, + varchar, + integer +); + drop function lrc_resource__name (integer); drop function lrc_resource__del (integer); drop function lrc_resource__new ( @@ -86,6 +100,7 @@ -- drop table lrc_lab; drop table lrc_resource; +drop table lrc_feedback_criteria; drop table lrc_section; drop table lrc_template; drop table lrc_groups; @@ -96,6 +111,7 @@ delete from acs_objects where object_type='lrc_template'; delete from acs_objects where object_type='lrc_section'; delete from acs_objects where object_type='lrc_resource'; +delete from acs_objects where object_type='lrc_feedback_criteria'; -- -- Drop object types. @@ -104,3 +120,4 @@ select acs_object_type__drop_type ('lrc_template', 'f'); select acs_object_type__drop_type ('lrc_section', 'f'); select acs_object_type__drop_type ('lrc_resource', 'f'); +select acs_object_type__drop_type ('lrc_feedback_criteria', 'f'); Index: openacs-4/packages/lab-report-central/www/resources.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/lab-report-central/www/resources.adp,v diff -u -N -r1.1 -r1.2 --- openacs-4/packages/lab-report-central/www/resources.adp 21 May 2006 08:57:25 -0000 1.1 +++ openacs-4/packages/lab-report-central/www/resources.adp 14 Aug 2006 13:46:13 -0000 1.2 @@ -17,7 +17,7 @@ Index: openacs-4/packages/lab-report-central/www/template.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/lab-report-central/www/template.adp,v diff -u -N -r1.4 -r1.5 --- openacs-4/packages/lab-report-central/www/template.adp 21 May 2006 08:57:25 -0000 1.4 +++ openacs-4/packages/lab-report-central/www/template.adp 14 Aug 2006 13:46:13 -0000 1.5 @@ -29,7 +29,7 @@ Index: openacs-4/packages/lab-report-central/www/template.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/lab-report-central/www/template.tcl,v diff -u -N -r1.3 -r1.4 --- openacs-4/packages/lab-report-central/www/template.tcl 21 May 2006 08:57:25 -0000 1.3 +++ openacs-4/packages/lab-report-central/www/template.tcl 14 Aug 2006 13:46:13 -0000 1.4 @@ -36,7 +36,7 @@ -object_id $package_id \ -privilege lab_report_central_admin_modify] -db_multirow -extend {details_url resources_url} section select_sections {} { +db_multirow -extend {details_url resources_url feedback_url} section select_sections {} { if { [info exists section_desc] } { set section_desc \ [template::util::richtext::get_property html_value $section_desc] @@ -46,6 +46,7 @@ set details_url [export_vars -url -base section-ae {template_id section_id}] set resources_url [export_vars -url -base resources {template_id section_id}] + set feedback_url [export_vars -url -base feedback-criteria {template_id section_id}] } set create_section_url [export_vars -url -base section-ae {template_id}]