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 -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 @@ <message_catalog package_key="lab-report-central" package_version="0.1d" locale="en_US" charset="ISO-8859-1"> <msg key="actions">Actions:</msg> + <msg key="add_feedback_component">Add Feedback Component</msg> + <msg key="add_feedback_criterion">Add Feedback Criterion</msg> <msg key="add_instructor">Add Instructor</msg> <msg key="add_instructor_to_list">Add instructor to list</msg> <msg key="add_lab">Add Lab</msg> @@ -17,16 +19,24 @@ <msg key="create_section">Create Section</msg> <msg key="create_template">Create Template</msg> <msg key="delete">Delete</msg> + <msg key="delete_feedback_component">Delete Feedback Component</msg> <msg key="delete_resource">Delete Resource</msg> <msg key="delete_section">Delete Section</msg> <msg key="description">Description</msg> <msg key="edit">Edit</msg> <msg key="edit_details">Edit Details</msg> + <msg key="edit_feedback">Edit Feedback</msg> + <msg key="edit_feedback_criterion">Edit Feedback Criterion</msg> <msg key="edit_lab">Edit Lab</msg> <msg key="edit_resource">Edit Resource</msg> <msg key="edit_resources">Edit Resources</msg> <msg key="edit_section">Edit Section</msg> <msg key="edit_template">Edit Template</msg> + <msg key="feedback_criteria">Feedback Criteria</msg> + <msg key="feedback_criteria_for_section_name">Feedback criteria for %section_name%</msg> + <msg key="feedback_criteria_for_this_section">Feedback criteria for this section:</msg> + <msg key="help_enter_feedback_criterion_description">Enter a description for the feedback criterion.</msg> + <msg key="help_enter_feedback_criterion_name">Enter a name for the feedback criterion.</msg> <msg key="help_enter_lab_description">Enter lab description.</msg> <msg key="help_enter_lab_end_date">Enter the last day of the lab.</msg> <msg key="help_enter_lab_name">Enter name for lab.</msg> @@ -58,6 +68,7 @@ <msg key="no_report_templates_created">No report templates have been created.</msg> <msg key="no_students_added">No students have been added to this lab.</msg> <msg key="no_templates_created">No templates have been created.</msg> + <msg key="notice_currently_no_feedback_criteria">There are currently no feedback criteria allocated to this section. Feedback criterion can be added by clicking on the add feedback button below.</msg> <msg key="notice_currently_no_resources">There are currently no resources allocated to this section. Resources can be added by clicking on the add resource button below.</msg> <msg key="notice_currently_no_sections">There are currently no sections allocated to this report template. Sections can be added by clicking on the add section button below.</msg> <msg key="remove">Remove</msg> @@ -80,6 +91,8 @@ <msg key="view">View</msg> <msg key="view_instructors">View Instructors</msg> <msg key="view_report_templates">View Report Templates</msg> + <msg key="visit_resource">Visit Resource</msg> + <msg key="want_to_delete_feedback_component">Continue with deleting the feedback component?</msg> <msg key="want_to_delete_instructor">Continue with deleting the instructor?</msg> <msg key="want_to_delete_lab">Continue with deleting the lab?</msg> <msg key="want_to_delete_resource">Continue with deleting the resource?</msg> 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 -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 -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 -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 @@ <ul> <li class="name">@resource.resource_name@</li> <li class="description">@resource.resource_desc;noquote@</li> - <li class="edit"><if @create_p@><a class="button" href="@resource.details_url@">#lab-report-central.edit_details#</a></if> <a class="button" href="@resource.resource_url@" target="_blank">Visit Resource</a></li> + <li class="edit"><if @create_p@><a class="button" href="@resource.details_url@">#lab-report-central.edit_details#</a></if> <a class="button" href="@resource.resource_url@" target="_blank">#lab-report-central.visit_resource#</a></li> </ul> </multiple> </div> 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 -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 @@ <ul> <li class="name">@section.section_name@</li> <li class="description">@section.section_desc;noquote@</li> - <if @create_p@><li class="edit"><a class="button" href="@section.details_url@">#lab-report-central.edit_details#</a> <a class="button" href="@section.resources_url@">#lab-report-central.edit_resources#</a></li></if> + <if @create_p@><li class="edit"><a class="button" href="@section.details_url@">#lab-report-central.edit_details#</a> <a class="button" href="@section.resources_url@">#lab-report-central.edit_resources#</a> <a class="button" href="@section.feedback_url@">#lab-report-central.edit_feedback#</a></li></if> </ul> </multiple> </div> 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 -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}]