Index: openacs-4/packages/lab-report/catalog/lab-report.en_US.ISO-8859-1.xml
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/lab-report/catalog/lab-report.en_US.ISO-8859-1.xml,v
diff -u -r1.5 -r1.6
--- openacs-4/packages/lab-report/catalog/lab-report.en_US.ISO-8859-1.xml	23 Aug 2006 05:43:56 -0000	1.5
+++ openacs-4/packages/lab-report/catalog/lab-report.en_US.ISO-8859-1.xml	24 Aug 2006 10:56:28 -0000	1.6
@@ -1,37 +1,50 @@
 <?xml version="1.0" encoding="ISO-8859-1"?>
 <message_catalog package_key="lab-report" package_version="0.1d" locale="en_US" charset="ISO-8859-1">
 
+  <msg key="add_comment">Add Comment</msg>
   <msg key="admin">Admin</msg>
   <msg key="author">Author</msg>
   <msg key="author_already_exists">Author already exists.  You cannot add another author.</msg>
   <msg key="author_group">Author Group</msg>
+  <msg key="available_for_editing_from">Available for editing from</msg>
+  <msg key="closed">Closed</msg>
+  <msg key="comment">Comment</msg>
   <msg key="comments">Comments</msg>
   <msg key="content">Content</msg>
   <msg key="criteria">Criteria</msg>
   <msg key="description">Description</msg>
   <msg key="edit">Edit</msg>
+  <msg key="edit_comment">Edit Comment</msg>
   <msg key="edit_feedback">Edit Feedback</msg>
+  <msg key="enter_section_comment">Enter any comments for the section of the report.</msg>
   <msg key="feedback">Feedback</msg>
   <msg key="for">for</msg>
-  <msg key="help_enter_comments">Enter any comments.</msg>
+  <msg key="help">Help</msg>
+  <msg key="help_enter_section_comment">Enter any comments for this section.</msg>
   <msg key="help_enter_section_content">Enter content for this section of your lab report.</msg>
   <msg key="help_select_author">Select an author from the list.</msg>
   <msg key="help_select_rating">Select a rating for this criteria.</msg>
+  <msg key="info">Info</msg>
   <msg key="instructions">Instructions</msg>
   <msg key="lab_report">Lab Report</msg>
   <msg key="lab_reports_for">Lab reports for</msg>
   <msg key="labs">Labs</msg>
+  <msg key="need_help">Need Help</msg>
   <msg key="new">New</msg>
   <msg key="overview">Overview</msg>
   <msg key="please_inform_administrator_need_author">This application requires an author to be set in order to write lab reports.  Please inform your site administrator that an author needs to be set for this application.</msg>
   <msg key="rating">Rating</msg>
+  <msg key="release">Release</msg>
   <msg key="report">Report</msg>
   <msg key="report_view">Report View</msg>
   <msg key="reports_for">Reports for</msg>
   <msg key="resources">Resources</msg>
   <msg key="search">Search</msg>
   <msg key="section_content">Section Content</msg>
   <msg key="section_feedback">Section Feedback</msg>
+  <msg key="submission">Submission</msg>
+  <msg key="submission_due_date">Submission due date</msg>
+  <msg key="to">to</msg>
   <msg key="view">View</msg>
   <msg key="you_do_not_have_permission_to_provide_feedback">You do not have permission to provide feedback.</msg>
 </message_catalog>
Index: openacs-4/packages/lab-report/sql/postgresql/lab-report-create.sql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/lab-report/sql/postgresql/lab-report-create.sql,v
diff -u -r1.6 -r1.7
--- openacs-4/packages/lab-report/sql/postgresql/lab-report-create.sql	23 Aug 2006 05:43:56 -0000	1.6
+++ openacs-4/packages/lab-report/sql/postgresql/lab-report-create.sql	24 Aug 2006 10:56:28 -0000	1.7
@@ -63,6 +63,21 @@
     null
 );
 
+
+select  acs_object_type__create_type (
+    'lr_section_comment',
+    '#lab-report.section_comment#',
+    '#lab-report.section_comments#',
+    'acs_object',
+    'lr_section_comment',
+    'comment_id',
+    null,
+    'f',
+    null,
+    null
+);
+
+
 --
 -- Create tables
 --
@@ -153,6 +168,29 @@
 );
 
 
+create table lr_section_comment (
+	comment_id		integer
+				constraint lr_section_comment_pk
+				primary key,
+	report_id		integer
+				constraint lr_section_comment_report_id_fk
+				references lr_report (report_id)
+				on delete cascade,
+	section_id		integer
+				constraint lr_section_comment_section_id_fk
+				references lrc_section (section_id)
+				on delete cascade,
+	instructor_id		integer
+				constraint lr_section_comment_instructor_id_fk
+				references users(user_id),
+	comment			text,
+	package_id		integer
+				constraint lr_section_comment_package_id_fk
+				references apm_packages (package_id)
+				on delete cascade
+);
+
+
 --
 -- Create functions
 --
@@ -369,5 +407,89 @@
 end;' language 'plpgsql';
 
 
+select define_function_args('lr_section_comment__new','comment_id,report_id,section_id,instructor_id,comment,package_id,creation_date;now,creation_user,creation_ip,context_id');
+
+create function lr_section_comment__new (
+	integer,
+	integer,
+	integer,
+	integer,
+	text,
+	integer,
+	timestamptz,
+	integer,
+	varchar,
+	integer
+) returns integer as '
+declare
+	p_comment_id		alias for $1;        	-- default null
+    	p_report_id		alias for $2;
+    	p_section_id	        alias for $3;
+	p_instructor_id		alias for $4;
+	p_comment		alias for $5;
+	p_package_id		alias for $6;
+    	p_creation_date         alias for $7;        	-- default now()
+    	p_creation_user         alias for $8;        	-- default null
+    	p_creation_ip           alias for $9;		-- default null
+    	p_context_id            alias for $10;		-- default null
+
+    	v_comment_id		lr_section_comment.comment_id%TYPE;
+	v_inst_group_id		integer;
+begin
+
+    	v_comment_id := acs_object__new (
+        	p_comment_id,
+        	''lr_section_comment'',
+        	p_creation_date,
+        	p_creation_user,
+        	p_creation_ip,
+        	p_context_id
+    	);
+
+    	INSERT INTO lr_section_comment (
+       		comment_id,
+		report_id,
+		section_id,
+		instructor_id,
+		comment,
+		package_id
+    	) VALUES (
+       		v_comment_id,
+		p_report_id,
+		p_section_id,
+		p_instructor_id,
+		p_comment,
+		p_package_id
+    	);
+
+
+    	SELECT group_id into v_inst_group_id
+      	FROM lrc_groups
+        WHERE magic_name = ''instructors'';
+
+	-- Grant permission to lab instructors on this object.
+    	PERFORM acs_permission__grant_permission(
+          	v_comment_id,
+          	v_inst_group_id,
+	        ''lab_report_central_read''
+    	);
+
+    	PERFORM acs_permission__grant_permission(
+          	v_comment_id,
+          	v_inst_group_id,
+	        ''lab_report_central_write''
+    	);
+
+    	PERFORM acs_permission__grant_permission(
+          	v_comment_id,
+          	v_inst_group_id,
+	        ''lab_report_central_admin''
+    	);
+
+    	return v_comment_id;
+
+end;' language 'plpgsql';
+
+
 -- Register service contract implementations.
 \i lab-report-sc-create.sql
Index: openacs-4/packages/lab-report/sql/postgresql/lab-report-drop.sql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/lab-report/sql/postgresql/lab-report-drop.sql,v
diff -u -r1.3 -r1.4
--- openacs-4/packages/lab-report/sql/postgresql/lab-report-drop.sql	23 Aug 2006 05:43:56 -0000	1.3
+++ openacs-4/packages/lab-report/sql/postgresql/lab-report-drop.sql	24 Aug 2006 10:56:28 -0000	1.4
@@ -56,7 +56,20 @@
 	integer
 );
 
+drop function lr_section_comment__new (
+	integer,
+	integer,
+	integer,
+	integer,
+	text,
+	integer,
+	timestamptz,
+	integer,
+	varchar,
+	integer
+);
 
+
 --
 -- Drop tables
 --
@@ -65,17 +78,20 @@
 drop table lr_report;
 drop table lr_section_content;
 drop table lr_section_feedback;
+drop table lr_section_comment;
 
 delete from acs_objects where object_type='lr_report';
 delete from acs_objects where object_type='lr_section_content';
 delete from acs_objects where object_type='lr_section_feedback';
+delete from acs_objects where object_type='lr_section_comment';
 
 --
 -- Drop object types.
 --
 select acs_object_type__drop_type ('lr_report', 'f');
 select acs_object_type__drop_type ('lr_section_content', 'f');
 select acs_object_type__drop_type ('lr_section_feedback', 'f');
+select acs_object_type__drop_type ('lr_section_comment', 'f');
 
 
 -- Drop service contract implementations.
Index: openacs-4/packages/lab-report/tcl/lab-report-procs.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/lab-report/tcl/lab-report-procs.tcl,v
diff -u -r1.3 -r1.4
--- openacs-4/packages/lab-report/tcl/lab-report-procs.tcl	21 Aug 2006 23:25:15 -0000	1.3
+++ openacs-4/packages/lab-report/tcl/lab-report-procs.tcl	24 Aug 2006 10:56:28 -0000	1.4
@@ -95,4 +95,26 @@
 } {
     return [group::member_p -user_id $user_id \
 		-group_id [lab_report_central::instructor_group_id]]
-}
\ No newline at end of file
+}
+
+ad_proc -private lab_report::within_date_bounds_p {
+    -now_date:required
+    -start_date:required
+    -end_date:required
+} {
+    Checks if now_date is between start_date and end_date inclusive.
+
+    @param now_date The current date.
+    @param start_date Lower bound.
+    @param end_date Upper bound.
+
+    @return Returns 1 if now_date is between date bounds, otherwise 0 is
+    returned.
+} {
+    set within_date_bounds_p 0
+    if { $now_date >= $start_date && $now_date <= $end_date } {
+	set within_date_bounds_p 1
+    }
+
+    return $within_date_bounds_p
+}
Index: openacs-4/packages/lab-report/www/edit-section.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/lab-report/www/edit-section.tcl,v
diff -u -r1.2 -r1.3
--- openacs-4/packages/lab-report/www/edit-section.tcl	21 May 2006 05:29:44 -0000	1.2
+++ openacs-4/packages/lab-report/www/edit-section.tcl	24 Aug 2006 10:56:29 -0000	1.3
@@ -56,7 +56,7 @@
     {content:richtext(richtext),optional
 	{label "[_ lab-report.content]"}
 	{help_text "[_ lab-report.help_enter_section_content]"}
-	{html {cols 48 rows 20}}
+	{html {cols 80 rows 20}}
         {nospell}
     }
 } -select_query {
Index: openacs-4/packages/lab-report/www/index.adp
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/lab-report/www/index.adp,v
diff -u -r1.1 -r1.2
--- openacs-4/packages/lab-report/www/index.adp	11 May 2006 11:11:37 -0000	1.1
+++ openacs-4/packages/lab-report/www/index.adp	24 Aug 2006 10:56:29 -0000	1.2
@@ -1,7 +1,6 @@
 <master src="resources/main-portal">
 <property name="title">@title@</property>
 <property name="context">@context@</property>
-<property name="admin_options">[<a href="admin/">#lab-report.admin#</a>]</property>
 <property name="header_stuff">
 <link rel="stylesheet" type="text/css" href="/resources/lab-report/lab-report.css" media="all">
 </property>
Index: openacs-4/packages/lab-report/www/section-comment-ae-postgresql.xql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/lab-report/www/section-comment-ae-postgresql.xql,v
diff -u
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/lab-report/www/section-comment-ae-postgresql.xql	24 Aug 2006 10:56:29 -0000	1.1
@@ -0,0 +1,51 @@
+<?xml version="1.0"?>
+
+<queryset>
+   <rdbms><type>postgresql</type><version>7.4</version></rdbms>
+
+   <fullquery name="lab_details">
+     <querytext>
+       SELECT l.lab_id, l.name AS lab_name, l.instructor_id,
+           to_char(l.start_date, 'YYYY') AS year
+       FROM lrc_lab l, lrc_lab_student_map s
+       WHERE s.lab_id = l.lab_id
+       AND l.lab_id = :lab_id
+       AND s.user_id = :author_id
+     </querytext>
+   </fullquery>
+
+   <fullquery name="template_details">
+     <querytext>
+       SELECT name AS template_name, description AS template_desc
+       FROM lrc_template
+       WHERE template_id = :template_id
+     </querytext>
+   </fullquery>
+
+   <fullquery name="section_details">
+     <querytext>
+       SELECT name AS section_name, description AS section_desc
+       FROM lrc_section
+       WHERE section_id = :section_id
+     </querytext>
+   </fullquery>
+
+   <fullquery name="section_update">
+     <querytext>
+       UPDATE lr_section_comment
+           SET comment = :comment
+	   WHERE comment_id = :comment_id
+     </querytext>
+   </fullquery>
+
+   <fullquery name="object_update">
+     <querytext>
+       UPDATE acs_objects
+           SET modifying_user = :modifying_user,
+	   modifying_ip = :modifying_ip,
+	   package_id = :package_id
+	   WHERE object_id = :comment_id
+     </querytext>
+   </fullquery>
+
+</queryset>
Index: openacs-4/packages/lab-report/www/section-comment-ae.adp
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/lab-report/www/section-comment-ae.adp,v
diff -u
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/lab-report/www/section-comment-ae.adp	24 Aug 2006 10:56:29 -0000	1.1
@@ -0,0 +1,9 @@
+<master src="resources/main-portal">
+<property name="title">@title;noquote@</property>
+<property name="context">@context;noquote@</property>
+<property name="header_stuff">
+<link rel="stylesheet" type="text/css" href="/resources/lab-report/lab-report.css" media="all">
+</property>
+
+
+<formtemplate id="comment"></formtemplate>
\ No newline at end of file
Index: openacs-4/packages/lab-report/www/section-comment-ae.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/lab-report/www/section-comment-ae.tcl,v
diff -u
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/lab-report/www/section-comment-ae.tcl	24 Aug 2006 10:56:29 -0000	1.1
@@ -0,0 +1,88 @@
+ad_page_contract {
+    Add/Edit the comment for a specific lab report section.
+
+    @author Nick Carroll (nick.c@rroll.net)
+    @creation-date 2006-05-10
+    @cvs-id $Id: section-comment-ae.tcl,v 1.1 2006/08/24 10:56:29 ncarroll Exp $
+} {
+    report_id:integer
+    lab_id:integer
+    template_id:integer
+    section_id:integer
+    comment_id:integer,optional
+}
+
+set package_id [ad_conn package_id]
+set user_id [ad_conn user_id]
+
+set author_p [permission::permission_p -party_id $user_id \
+		  -object_id $package_id \
+		  -privilege "lab_report_author"]
+
+# Otherwise retrieve list of lab reports for the designated author.
+set author_id [lab_report::get_author_id -package_id $package_id]
+
+# Retrieve lab details.
+db_1row lab_details {}
+
+# Retrieve template details.
+db_1row template_details {}
+
+# Retrieve section details.
+db_1row section_details {}
+set section_desc [template::util::richtext::get_property \
+		      html_value $section_desc]
+
+
+# Create some URLs
+set lab_url [export_vars -url -base view-lab {lab_id}]
+set overview_url [export_vars -url \
+		      -base view-report { report_id lab_id template_id }]
+
+set title "$section_name"
+set context [list [list $lab_url $lab_name] \
+		 [list $overview_url $template_name] $title]
+
+set return_url [export_vars -url -base view-section {report_id lab_id template_id section_id}]
+
+ad_form -name comment -cancel_url $return_url -form {
+    {comment_id:key(acs_object_id_seq)}
+    {report_id:integer(hidden) {value $report_id}}
+    {lab_id:integer(hidden) {value $lab_id}}
+    {template_id:integer(hidden) {value $template_id}}
+    {section_id:integer(hidden) {value $section_id}}
+    {author_id:integer(hidden) {value $author_id}}
+    {comment:richtext(richtext),optional
+	{label "[_ lab-report.comment]"}
+	{help_text "[_ lab-report.help_enter_section_comment]"}
+	{html {cols 80 rows 20}}
+        {nospell}
+    }
+} -select_query {
+    SELECT comment FROM lr_section_comment WHERE comment_id = :comment_id
+    AND package_id = :package_id
+} -new_data {
+
+    db_transaction {
+	set comment_id [package_instantiate_object \
+	    -var_list [list [list package_id $package_id] \
+			   [list object_type lr_section_comment] \
+			   [list report_id $report_id] \
+			   [list section_id $section_id] \
+			   [list instructor_id $user_id] \
+			   [list comment $comment]] \
+	    -form_id comment lr_section_comment]
+    }
+
+} -edit_data {
+    set modifying_user [ad_conn user_id]
+    set modifying_ip [ad_conn peeraddr]
+
+    db_dml section_update {}
+    db_dml object_update {}
+} -after_submit {
+    ad_returnredirect $return_url
+    ad_script_abort
+}
+
+ad_return_template
Index: openacs-4/packages/lab-report/www/view-lab-postgresql.xql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/lab-report/www/view-lab-postgresql.xql,v
diff -u -r1.3 -r1.4
--- openacs-4/packages/lab-report/www/view-lab-postgresql.xql	24 May 2006 12:30:41 -0000	1.3
+++ openacs-4/packages/lab-report/www/view-lab-postgresql.xql	24 Aug 2006 10:56:29 -0000	1.4
@@ -17,7 +17,10 @@
    <fullquery name="select_reports">
      <querytext>
        SELECT r.report_id, t.template_id, t.name,
-           t.description AS template_desc
+           t.description AS template_desc,
+           to_char(m.start_date, 'DD Month, YYYY') AS pretty_start_date,
+           to_char(m.end_date, 'DD Month, YYYY') AS pretty_end_date,
+	   current_timestamp AS now, m.start_date, m.end_date
        FROM lrc_template t
            LEFT OUTER JOIN lr_report r ON (r.template_id = t.template_id
                AND r.author_id = :author_id),
Index: openacs-4/packages/lab-report/www/view-lab.adp
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/lab-report/www/view-lab.adp,v
diff -u -r1.2 -r1.3
--- openacs-4/packages/lab-report/www/view-lab.adp	12 May 2006 01:34:34 -0000	1.2
+++ openacs-4/packages/lab-report/www/view-lab.adp	24 Aug 2006 10:56:29 -0000	1.3
@@ -1,7 +1,6 @@
 <master src="resources/main-portal">
 <property name="title">@title@</property>
 <property name="context">@context@</property>
-<property name="admin_options">[<a href="admin/">#lab-report.admin#</a>]</property>
 <property name="header_stuff">
 <link rel="stylesheet" type="text/css" href="/resources/lab-report/lab-report.css" media="all">
 </property>
@@ -12,14 +11,27 @@
     <ul class="report">
       <li>
         <span class="label">@report.name@</span>
+        <span class="dates">
+          <if @report.now@ ge @report.start_date@ and @report.now@ le @report.end_date@>
+            [#lab-report.submission_due_date#: @report.pretty_end_date@]
+          </if>
+          <elseif @report.now@ gt @report.end_date@>
+            [#lab-report.closed#]
+          </elseif>
+          <else>
+            [#lab-report.available_for_editing_from# @report.pretty_start_date@ #lab-report.to# @report.pretty_end_date@]
+          </else>
+        </span>
         <if @author_p@>
+        <if @report.viewable_p@>
           <if @report.report_created_p@>
           <span class="options"><a class="button" href="@report.view_url@">#lab-report.view#</a></span>
           </if>
           <else>
           <span class="options"><a class="button" href="@report.new_url@">#lab-report.new#</a></span>
 	  </else>
         </if>
+        </if>
         <div class="spacer"></div>
       </li>
     </ul>
Index: openacs-4/packages/lab-report/www/view-lab.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/lab-report/www/view-lab.tcl,v
diff -u -r1.2 -r1.3
--- openacs-4/packages/lab-report/www/view-lab.tcl	12 May 2006 01:34:34 -0000	1.2
+++ openacs-4/packages/lab-report/www/view-lab.tcl	24 Aug 2006 10:56:29 -0000	1.3
@@ -20,7 +20,7 @@
 
 db_1row lab_details {}
 
-db_multirow -extend {view_url new_url report_created_p} report select_reports {} {
+db_multirow -extend {view_url new_url report_created_p viewable_p} report select_reports {} {
     set view_url [export_vars -url -base view-report \
 		      {lab_id template_id report_id}]
     set new_url [export_vars -url -base new-report {lab_id template_id}]
@@ -29,6 +29,13 @@
     if {$report_id == ""} {
 	set report_created_p 0
     }
+
+    # Is the report viewable?  Any date after the start date means the
+    # student can view their report.
+    set viewable_p 0
+    if { $now > $start_date } {
+	set viewable_p 1
+    }
 }
 
 set title "$lab_name"
Index: openacs-4/packages/lab-report/www/view-report.adp
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/lab-report/www/view-report.adp,v
diff -u -r1.5 -r1.6
--- openacs-4/packages/lab-report/www/view-report.adp	23 Aug 2006 05:43:56 -0000	1.5
+++ openacs-4/packages/lab-report/www/view-report.adp	24 Aug 2006 10:56:29 -0000	1.6
@@ -31,13 +31,6 @@
           @sections.content;noquote@
           </multiple>
           </li>
-          <li class="comments">
-            <h3>#lab-report.comments#</h3>
-            <ul>
-            @gc_comments;noquote@
-            </ul>
-            <div class="add-comment">@gc_link;noquote@</div>
-          </li>
         </ul>
       </td>
     </tr>
Index: openacs-4/packages/lab-report/www/view-report.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/lab-report/www/view-report.tcl,v
diff -u -r1.3 -r1.4
--- openacs-4/packages/lab-report/www/view-report.tcl	24 May 2006 12:30:41 -0000	1.3
+++ openacs-4/packages/lab-report/www/view-report.tcl	24 Aug 2006 10:56:29 -0000	1.4
@@ -36,15 +36,6 @@
 
 set lab_url [export_vars -url -base view-lab {lab_id}]
 
-# General comments
-set return_url [export_vars -url \
-		    -base "[ad_conn package_url]view-report" \
-		    { lab_id template_id report_id }]
-
-set gc_link [general_comments_create_link -link_attributes {class="button"} \
-		 $report_id $return_url]
-set gc_comments [general_comments_get_comments $report_id $return_url]
-
 # Title and context
 set title "$template_name"
 set context [list [list $lab_url $lab_name] $title]
Index: openacs-4/packages/lab-report/www/view-section-postgresql.xql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/lab-report/www/view-section-postgresql.xql,v
diff -u -r1.4 -r1.5
--- openacs-4/packages/lab-report/www/view-section-postgresql.xql	21 Aug 2006 23:25:16 -0000	1.4
+++ openacs-4/packages/lab-report/www/view-section-postgresql.xql	24 Aug 2006 10:56:29 -0000	1.5
@@ -46,6 +46,16 @@
      </querytext>
    </fullquery>
 
+   <fullquery name="select_comments">
+     <querytext>
+       SELECT comment_id, comment
+       FROM lr_section_comment
+       WHERE section_id = :section_id
+       AND report_id = :report_id
+       AND package_id = :package_id
+     </querytext>
+   </fullquery>
+
    <fullquery name="select_navs">
      <querytext>
        SELECT section_id AS nav_section_id, name AS nav_section_name
@@ -74,4 +84,13 @@
      </querytext>
    </fullquery>
 
+   <fullquery name="select_report_dates">
+     <querytext>
+	SELECT current_timestamp AS now, m.start_date, m.end_date
+	FROM lrc_lab_template_map m
+	WHERE m.lab_id = :lab_id
+	AND m.template_id = :template_id
+     </querytext>
+   </fullquery>
+
 </queryset>
Index: openacs-4/packages/lab-report/www/view-section.adp
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/lab-report/www/view-section.adp,v
diff -u -r1.6 -r1.7
--- openacs-4/packages/lab-report/www/view-section.adp	23 Aug 2006 05:43:56 -0000	1.6
+++ openacs-4/packages/lab-report/www/view-section.adp	24 Aug 2006 10:56:29 -0000	1.7
@@ -44,6 +44,7 @@
           <li class="content">
           <h3>@section_name@</h3>
 
+          <if @editable_p@>
           <if @author_p@>
             <if @content_created_p@>
 	    @content;noquote@
@@ -53,14 +54,23 @@
             <a class="edit button" href="@new_url@">#lab-report.new#</a><div class="spacer"></div>
             </else>
           </if>
+          </if>
           </li>
+          <if @instructor_p@>
           <li class="comments">
             <h3>#lab-report.comments#</h3>
-            <ul>
-            @gc_comments;noquote@
-            </ul>
-            <div class="add-comment">@gc_link;noquote@</div>
+            @comment;noquote@
+            <div class="add-comment"><a class="edit button" href="@comments_link@">#lab-report.edit#</a><div class="spacer"></div></div>
           </li>
+          </if>
+          <elseif @author_p@>
+            <if @comment@ ne "">
+            <li class="comments">
+            <h3>#lab-report.comments#</h3>
+            @comment;noquote@
+            </if>
+          </li>
+          </elseif>
         </ul>
       </td>
       <if @content_created_p@>
Index: openacs-4/packages/lab-report/www/view-section.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/lab-report/www/view-section.tcl,v
diff -u -r1.5 -r1.6
--- openacs-4/packages/lab-report/www/view-section.tcl	23 Aug 2006 05:43:56 -0000	1.5
+++ openacs-4/packages/lab-report/www/view-section.tcl	24 Aug 2006 10:56:29 -0000	1.6
@@ -23,6 +23,9 @@
 # Otherwise retrieve list of lab reports for the designated author.
 set author_id [lab_report::get_author_id -package_id $package_id]
 
+# Is the user an instructor?
+set instructor_p [lab_report::instructor_p $user_id]
+
 # Retrieve lab details.
 db_1row lab_details {}
 
@@ -63,14 +66,20 @@
     }
 }
 
+set editable_p 0
+if { [db_0or1row select_report_dates {}] } {
+    if { [lab_report::within_date_bounds_p -now_date $now -start_date $start_date -end_date $end_date] } {
+	set editable_p 1
+    }
+}
+
 # General comments
-set return_url [export_vars -url \
-		    -base "[ad_conn package_url]view-report" \
-		    { lab_id template_id report_id }]
+set comment ""
+if { [db_0or1row select_comments {}] } {
+    set comment [template::util::richtext::get_property html_value $comment]
+}
 
-set gc_link [general_comments_create_link -link_attributes {class="button"} \
-		 $report_id $return_url]
-set gc_comments [general_comments_get_comments $report_id $return_url]
+set comments_link [export_vars -url -base section-comment-ae {report_id lab_id template_id section_id comment_id}]
 
 
 # Title and context
Index: openacs-4/packages/lab-report/www/resources/lab-report.css
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/lab-report/www/resources/lab-report.css,v
diff -u -r1.7 -r1.8
--- openacs-4/packages/lab-report/www/resources/lab-report.css	23 Aug 2006 05:43:56 -0000	1.7
+++ openacs-4/packages/lab-report/www/resources/lab-report.css	24 Aug 2006 10:56:29 -0000	1.8
@@ -127,7 +127,7 @@
 	border-left: 1em solid #686868;
 	border-bottom: 1px solid #686868;
 	padding: 4px 8px;
-	width: 50em;
+	width: 60em;
 	margin-bottom: 5px;
 }
 
@@ -140,10 +140,17 @@
 }
 
 #lr-report-list-container ul.report li span.label {
-	margin-left: 3em;
+	margin-left: 2em;
+	font-weight: bold;
 	float:left;
 }
 
+#lr-report-list-container ul.report li span.dates {
+	margin-left: 1em;
+	font-size: x-small;
+	float:left;
+}
+
 #lr-report-list-container ul.report li span.options {
 	float: right;
         border: 1px solid #000;
@@ -365,3 +372,9 @@
 	float: right;
 	font-size: small;
 }
+
+div#close {
+	margin-top: 3em;
+  	width: 100%;
+  	text-align: center;
+}
Index: openacs-4/packages/lab-report/www/resources/popup.js
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/lab-report/www/resources/popup.js,v
diff -u
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/lab-report/www/resources/popup.js	24 Aug 2006 10:56:29 -0000	1.1
@@ -0,0 +1,11 @@
+function popup(url, title)
+{
+	var width = 250;
+	var height = 300;
+	var x_pos = 0;
+	var y_pos = 0;
+	x_pos = 300;
+	y_pos = 200;
+	var popup_param = "dependent=yes,width=" + width + ",height=" + height + ",screenX="+x_pos +",screenY=" + y_pos+",left="+x_pos+",top="+y_pos+",titlebar=yes";
+	window.open(url, title, popup_param);
+}
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.6 -r1.7
--- openacs-4/packages/lab-report-central/sql/postgresql/lab-report-central-create.sql	14 Aug 2006 13:46:13 -0000	1.6
+++ openacs-4/packages/lab-report-central/sql/postgresql/lab-report-central-create.sql	24 Aug 2006 10:56:57 -0000	1.7
@@ -187,6 +187,7 @@
 	name			varchar (5120)
 				constraint lrc_feedback_criteria_name_nn
 				not null,
+	url			varchar (5120),
 	description		text,
 	package_id		integer
 				constraint lrc_feedback_criteria_package_id_fk
@@ -214,7 +215,9 @@
 	template_id		integer
 				constraint lrc_lt_map_template_id_fk
 				references lrc_template (template_id)
-				on delete cascade
+				on delete cascade,
+	start_date		timestamptz,
+	end_date		timestamptz
 );
 
 create table lrc_lab_student_map (
@@ -709,12 +712,13 @@
 ' 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');
+select define_function_args('lrc_feedback_criteria__new','feedback_criteria_id,section_id,name,url,description,package_id,creation_date;now,creation_user,creation_ip,context_id');
 
 create function lrc_feedback_criteria__new (
 	integer,
 	integer,
 	varchar,
+	varchar,
 	text,
 	integer,
 	timestamptz,
@@ -726,12 +730,13 @@
 	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
+        p_url			alias for $4;
+    	p_description           alias for $5;
+	p_package_id		alias for $6;
+    	p_creation_date         alias for $7;        	-- default now()
+    	p_creation_user         alias for $8;        	-- default null
+    	p_creation_ip           alias for $9;		-- default null
+    	p_context_id            alias for $10;		-- default null
 
     	v_feedback_criteria_id  lrc_feedback_criteria.feedback_criteria_id%TYPE;
 	v_inst_group_id		integer;
@@ -750,12 +755,14 @@
 		feedback_criteria_id,
        		section_id,
 		name,
+		url,
 		description,
 	        package_id
     	) VALUES (
 		v_feedback_criteria_id,
         	p_section_id,
 		p_name,
+		p_url,
 		p_description,
         	p_package_id
     	);
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.6 -r1.7
--- openacs-4/packages/lab-report-central/sql/postgresql/lab-report-central-drop.sql	14 Aug 2006 13:46:13 -0000	1.6
+++ openacs-4/packages/lab-report-central/sql/postgresql/lab-report-central-drop.sql	24 Aug 2006 10:56:57 -0000	1.7
@@ -29,6 +29,7 @@
 	integer,
 	integer,
 	varchar,
+        varchar,
 	text,
 	integer,
 	timestamptz,
Index: openacs-4/packages/lab-report-central/www/attach-template-postgresql.xql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/lab-report-central/www/attach-template-postgresql.xql,v
diff -u -r1.1 -r1.2
--- openacs-4/packages/lab-report-central/www/attach-template-postgresql.xql	27 Apr 2006 04:34:34 -0000	1.1
+++ openacs-4/packages/lab-report-central/www/attach-template-postgresql.xql	24 Aug 2006 10:56:57 -0000	1.2
@@ -13,8 +13,10 @@
 
    <fullquery name="attach_template">
      <querytext>
-       INSERT INTO lrc_lab_template_map (lab_id, template_id)
-       VALUES (:lab_id, :template_id)
+       INSERT INTO lrc_lab_template_map (
+           lab_id, template_id, start_date, end_date
+       )
+       VALUES (:lab_id, :template_id, $start_date, $end_date)
      </querytext>
    </fullquery>
 
Index: openacs-4/packages/lab-report-central/www/attach-template.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/lab-report-central/www/attach-template.tcl,v
diff -u -r1.1 -r1.2
--- openacs-4/packages/lab-report-central/www/attach-template.tcl	27 Apr 2006 04:34:34 -0000	1.1
+++ openacs-4/packages/lab-report-central/www/attach-template.tcl	24 Aug 2006 10:56:57 -0000	1.2
@@ -37,6 +37,16 @@
  	{options "[lab_report_central::unmapped_templates_get_options \
 		      -lab_id $lab_id]"}
     }
+    {start_date:date,to_sql(sql_date),to_html(display_date)
+	{label "[_ lab-report-central.lab_start_date]" }
+	{help_text "[_ lab-report-central.help_enter_lab_start_date]"}
+	{format "[lc_get formbuilder_date_format]"}
+    }
+    {end_date:date,to_sql(sql_date),to_html(display_date)
+	{label "[_ lab-report-central.lab_end_date]" }
+	{help_text "[_ lab-report-central.help_enter_lab_end_date]"}
+	{format "[lc_get formbuilder_date_format]"}
+    }
 } -after_submit {
     # Map report template to lab.
     db_dml attach_template {}
Index: openacs-4/packages/lab-report-central/www/feedback-criteria-ae-postgresql.xql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/lab-report-central/www/feedback-criteria-ae-postgresql.xql,v
diff -u -r1.1 -r1.2
--- openacs-4/packages/lab-report-central/www/feedback-criteria-ae-postgresql.xql	21 Aug 2006 23:26:37 -0000	1.1
+++ openacs-4/packages/lab-report-central/www/feedback-criteria-ae-postgresql.xql	24 Aug 2006 10:56:57 -0000	1.2
@@ -13,6 +13,7 @@
      <querytext>
        UPDATE lrc_feedback_criteria
            SET name = :name,
+           url = :url,
 	   description = :description
 	   WHERE feedback_criteria_id = :feedback_criteria_id
      </querytext>
Index: openacs-4/packages/lab-report-central/www/feedback-criteria-ae.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/lab-report-central/www/feedback-criteria-ae.tcl,v
diff -u -r1.1 -r1.2
--- openacs-4/packages/lab-report-central/www/feedback-criteria-ae.tcl	21 Aug 2006 23:26:37 -0000	1.1
+++ openacs-4/packages/lab-report-central/www/feedback-criteria-ae.tcl	24 Aug 2006 10:56:57 -0000	1.2
@@ -45,15 +45,19 @@
 	{label "[_ lab-report-central.name]" }
 	{help_text "[_ lab-report-central.help_enter_feedback_criterion_name]"}
     }
+    {url:text,optional
+	{html {size 50}}
+	{label "[_ lab-report-central.URL]" }
+	{help_text "[_ lab-report-central.help_enter_resource_url]"}
+    }
     {description:richtext(richtext),optional
 	{label "[_ lab-report-central.description]" }
 	{help_text "[_ lab-report-central.help_enter_feedback_criterion_description]"}
-	{html {cols 48 rows 6}}
-	{htmlarea_p 0}
+	{html {cols 80 rows 20}}
 	{nospell}
     }
 } -select_query {
-    SELECT name, description
+    SELECT name, url, description
     FROM lrc_feedback_criteria
     WHERE feedback_criteria_id = :feedback_criteria_id
 } -new_data {
@@ -62,6 +66,7 @@
         -var_list [list [list package_id $package_id] \
 		       [list section_id $section_id] \
 		       [list name $name] \
+		       [list url $url] \
 		       [list description $description]] \
         -form_id criterion lrc_feedback_criteria
 
Index: openacs-4/packages/lab-report-central/www/lab-postgresql.xql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/lab-report-central/www/lab-postgresql.xql,v
diff -u -r1.3 -r1.4
--- openacs-4/packages/lab-report-central/www/lab-postgresql.xql	30 Apr 2006 12:01:31 -0000	1.3
+++ openacs-4/packages/lab-report-central/www/lab-postgresql.xql	24 Aug 2006 10:56:57 -0000	1.4
@@ -16,7 +16,9 @@
    <fullquery name="rt">
      <querytext>
        SELECT t.template_id, t.name AS template_name,
-           t.description AS template_desc
+           t.description AS template_desc,
+           to_char(m.start_date, 'DD Month, YYYY') AS release_date,
+           to_char(m.end_date, 'DD Month, YYYY') AS submission_date
        FROM lrc_template t, lrc_lab_template_map m
        WHERE m.lab_id = :lab_id
        AND m.template_id = t.template_id
Index: openacs-4/packages/lab-report-central/www/lab.adp
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/lab-report-central/www/lab.adp,v
diff -u -r1.3 -r1.4
--- openacs-4/packages/lab-report-central/www/lab.adp	30 Apr 2006 12:01:31 -0000	1.3
+++ openacs-4/packages/lab-report-central/www/lab.adp	24 Aug 2006 10:56:57 -0000	1.4
@@ -39,6 +39,7 @@
   <ul class="report">
     <li>
       <span class="label">@rt.template_name@</span>
+      <span class="dates">[Release: @rt.release_date@] [Submission: @rt.submission_date@]</span>
       <span class="options">
       <a class="button" href="@rt.view_url@">#lab-report-central.view#</a>
       <if @admin_p@><a class="button" href="@rt.delete_url@" onclick="return confirm('#lab-report-central.want_to_remove_template#')">#lab-report-central.remove#</a></if>
Index: openacs-4/packages/lab-report-central/www/resource-ae.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/lab-report-central/www/resource-ae.tcl,v
diff -u -r1.1 -r1.2
--- openacs-4/packages/lab-report-central/www/resource-ae.tcl	21 May 2006 08:57:24 -0000	1.1
+++ openacs-4/packages/lab-report-central/www/resource-ae.tcl	24 Aug 2006 10:56:57 -0000	1.2
@@ -53,8 +53,7 @@
     {description:richtext(richtext),optional
 	{label "[_ lab-report-central.description]" }
 	{help_text "[_ lab-report-central.help_enter_resource_description]"}
-	{html {cols 48 rows 6}}
-	{htmlarea_p 0}
+	{html {cols 80 rows 20}}
 	{nospell}
     }
 } -select_query {
Index: openacs-4/packages/lab-report-central/www/section-ae.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/lab-report-central/www/section-ae.tcl,v
diff -u -r1.1 -r1.2
--- openacs-4/packages/lab-report-central/www/section-ae.tcl	30 Apr 2006 09:27:41 -0000	1.1
+++ openacs-4/packages/lab-report-central/www/section-ae.tcl	24 Aug 2006 10:56:57 -0000	1.2
@@ -45,8 +45,7 @@
     {description:richtext(richtext),optional
 	{label "[_ lab-report-central.description]" }
 	{help_text "[_ lab-report-central.help_enter_section_description]"}
-	{html {cols 48 rows 6}}
-	{htmlarea_p 0}
+	{html {cols 80 rows 20}}
 	{nospell}
     }
 } -select_query {
Index: openacs-4/packages/lab-report-central/www/resources/lab-report-central.css
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/lab-report-central/www/resources/lab-report-central.css,v
diff -u -r1.5 -r1.6
--- openacs-4/packages/lab-report-central/www/resources/lab-report-central.css	21 May 2006 08:57:25 -0000	1.5
+++ openacs-4/packages/lab-report-central/www/resources/lab-report-central.css	24 Aug 2006 10:56:57 -0000	1.6
@@ -147,7 +147,7 @@
 	border-left: 1em solid #686868;
 	border-bottom: 1px solid #686868;
 	padding: 4px 8px;
-	width: 50em;
+	width: 60em;
 	margin-bottom: 5px;
 }
 
@@ -160,10 +160,17 @@
 }
 
 #lrc-report-container ul.report li span.label {
-	margin-left: 3em;
+	margin-left: 2em;
 	float:left;
+        font-weight: bold;
 }
 
+#lrc-report-container ul.report li span.dates {
+        margin-left: 2em;
+	font-size: x-small;
+	float:left;
+}
+
 #lrc-report-container ul.report li span.options {
 	float: right;
 }