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}]