Index: openacs-4/packages/dotlrn-ecommerce/dotlrn-ecommerce.info
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/dotlrn-ecommerce/dotlrn-ecommerce.info,v
diff -u -r1.28 -r1.29
--- openacs-4/packages/dotlrn-ecommerce/dotlrn-ecommerce.info	22 Aug 2005 23:08:17 -0000	1.28
+++ openacs-4/packages/dotlrn-ecommerce/dotlrn-ecommerce.info	30 Aug 2005 17:42:45 -0000	1.29
@@ -7,15 +7,15 @@
     <initial-install-p>f</initial-install-p>
     <singleton-p>t</singleton-p>
     
-    <version name="0.1d10" url="http://openacs.org/repository/download/apm/dotlrn-ecommerce-0.1d10.apm">
+    <version name="0.1d11" url="http://openacs.org/repository/download/apm/dotlrn-ecommerce-0.1d11.apm">
         <owner url="mailto:roelmc@solutiongrove.com">Roel Canicula</owner>
         <summary>Package to tie the dotLRN, Ecommerce, Assessments and dotLRN Catalog packages together</summary>
         <release-date>2005-08-10</release-date>
         <vendor url="http://www.solutiongrove.com">Solution Grove</vendor>
         <description format="text/html">Package to tie the dotLRN, Ecommerce, Assessments and dotLRN Catalog packages together.  Initially intended for the MOS and MGH projects, the goal is to create a reusable module for similar projects.</description>
         <maturity>0</maturity>
 
-        <provides url="dotlrn-ecommerce" version="0.1d10"/>
+        <provides url="dotlrn-ecommerce" version="0.1d11"/>
 
         <callbacks>
             <callback type="after-install"  proc="dotlrn_ecommerce::install"/>
@@ -28,9 +28,10 @@
             <parameter datatype="number"  min_n_values="1"  max_n_values="1"  name="AllowRegistrationForOtherUsers"  default="1" description="Allow registration for other users."/>
             <parameter datatype="number"  min_n_values="1"  max_n_values="1"  name="AllowSettingRelationshipsP"  default="1" description="Support setting of related users."/>
             <parameter datatype="number"  min_n_values="1"  max_n_values="1"  name="ApplicationAssessment"  description="Assessment to be answered by users registering for a course that haven't met one or more prerequisites."/>
-            <parameter datatype="number"  min_n_values="1"  max_n_values="1"  name="ApprovedRegistrationTimePeriod"  default="86400" description="Allow this time period (in seconds) to elapse before revoking approval for user to register from waiting list."/>
+            <parameter datatype="number"  min_n_values="1"  max_n_values="1"  name="ApprovedRegistrationTimePeriod"  default="7776000" description="Allow this time period (in seconds) to elapse before revoking approval for user to register from waiting list."/>
             <parameter datatype="number"  min_n_values="1"  max_n_values="1"  name="AssessmentPackage"  description="Assessment package to be used in waiting lists."/>
             <parameter datatype="number"  min_n_values="1"  max_n_values="1"  name="AssistantCommunityId"  description="Specify the community id whose members we will use in the Assistant field in the add section form."/>
+            <parameter datatype="string"  min_n_values="1"  max_n_values="1"  name="CustomParticipantFields"  description="Custom fields used in participant registration."/>
             <parameter datatype="string"  min_n_values="1"  max_n_values="1"  name="DefaultEmailDomain"  description="Default email domain to be used for group participants and purchasers with no email address."/>
             <parameter datatype="number"  min_n_values="1"  max_n_values="1"  name="DonationECCategoryId"  description="The category_id in ec_categories which should be treated as donation.  If non-blank then the interface to buy a donation product is shown."/>
             <parameter datatype="number"  min_n_values="1"  max_n_values="1"  name="EnableCourseApplicationsP"  default="0" description="Allow assigning an assessment to a course which will require users to apply for the course first and be put on the waiting list automatically."/>
@@ -49,10 +50,10 @@
             <parameter datatype="number"  min_n_values="1"  max_n_values="1"  name="PatronRelationshipCategoryTree"  description="Category tree to use when adding participant-patron relationships."/>
             <parameter datatype="string"  min_n_values="1"  max_n_values="1"  name="PaymentMethods"  default="cc" description="A space separeted list of allowed payment methods. Valid payment methods are 'cc' (Credit Card), 'internal_account' (With extra field asking for internal account code) or 'check'."/>
             <parameter datatype="number"  min_n_values="1"  max_n_values="1"  name="ShowNonSessionCalendarLinks"  default="0" description="Show links to the calendar that are not Session Events."/>
+            <parameter datatype="number"  min_n_values="1"  max_n_values="1"  name="ShowSectionCategoryFields"  default="0" description="Display the category field in the section add/edit form."/>
             <parameter datatype="number"  min_n_values="1"  max_n_values="1"  name="ShowTemplateCommunityAdminP"  default="0" description="Show the buttons to administer template community."/>
             <parameter datatype="number"  min_n_values="1"  max_n_values="1"  name="ShowUsedCategoriesOnlyP"  default="0" description="Show only categories used in any course or section."/>
             <parameter datatype="number"  min_n_values="1"  max_n_values="1"  name="SupportPublicPagesP"  default="0" description="Support publics pages."/>
-
             <parameter datatype="number"  min_n_values="1"  max_n_values="1"  name="UseEmbeddedApplicationViewP"  default="0" description="Do you embed the assessment instead of redirecting to assessment?"/>
         </parameters>
 
Index: openacs-4/packages/dotlrn-ecommerce/lib/user-info.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/dotlrn-ecommerce/lib/user-info.tcl,v
diff -u -r1.8 -r1.9
--- openacs-4/packages/dotlrn-ecommerce/lib/user-info.tcl	4 Aug 2005 03:10:04 -0000	1.8
+++ openacs-4/packages/dotlrn-ecommerce/lib/user-info.tcl	30 Aug 2005 17:42:45 -0000	1.9
@@ -129,26 +129,52 @@
 
 if { $user_type == "participant" } {
     set tree_id [parameter::get -package_id [ad_conn package_id] -parameter GradeCategoryTree -default 0]
-    set grade_options [list {}]
-    foreach tree [category_tree::get_tree $tree_id] {
-	lappend grade_options [list [lindex $tree 1] [lindex $tree 0]]
-    }
+    set custom_fields [parameter::get -package_id [ad_conn package_id] -parameter CustomParticipantFields -default ""]
 
-    ad_form -extend -name user_info -form {
-	{grade:text(select)
-	    {label "[_ dotlrn-ecommerce.Grade]"}
-	    {options {$grade_options} }
-	} 
-	{allergies:text,optional
-	    {label "[_ dotlrn-ecommerce.Medical_Issues]"}
-	    {html {size 60}}
-	}
+    foreach field $custom_fields {
 
-	{special_needs:text,optional
-	    {label "[_ dotlrn-ecommerce.Special_Needs]"}
-	    {html {size 60}}
+	switch [string tolower $field] {
+	    grade {
+		set grade_options [list {"--" ""}]
+		foreach tree [category_tree::get_tree $tree_id] {
+		    lappend grade_options [list [lindex $tree 1] [lindex $tree 0]]
+		}
+		
+		ad_form -extend -name user_info -form {
+		    {grade:text(select),optional
+			{label "[_ dotlrn-ecommerce.Grade]"}
+			{options {$grade_options} }
+		    }
+		}
+	    }
+
+	    allergies {
+		ad_form -extend -name user_info -form {
+		    {allergies:text,optional
+			{label "[_ dotlrn-ecommerce.Medical_Issues]"}
+			{html {size 60}}
+		    }
+		}
+	    }
+
+	    special_needs {
+		ad_form -extend -name user_info -form {
+		    {special_needs:text,optional
+			{label "[_ dotlrn-ecommerce.Special_Needs]"}
+			{html {size 60}}
+		    }
+		}
+	    }
 	}
     }
+    
+    foreach field {grade allergies special_needs} {
+	if { [lsearch $custom_fields $field] == -1 } {
+	    ad_form -extend -name register -form [subst {
+		{$field:text(hidden) {value ""}}
+	    }]
+	}
+    }
 
 } else {
     ad_form -extend -name register -form {
Index: openacs-4/packages/dotlrn-ecommerce/lib/user-new.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/dotlrn-ecommerce/lib/user-new.tcl,v
diff -u -r1.10 -r1.11
--- openacs-4/packages/dotlrn-ecommerce/lib/user-new.tcl	18 Aug 2005 08:52:06 -0000	1.10
+++ openacs-4/packages/dotlrn-ecommerce/lib/user-new.tcl	30 Aug 2005 17:42:45 -0000	1.11
@@ -107,36 +107,51 @@
 if { $user_type == "participant" } {
 
     set tree_id [parameter::get -package_id [ad_conn package_id] -parameter GradeCategoryTree -default 0]
-    set grade_options [list {"--" ""}]
-    foreach tree [category_tree::get_tree $tree_id] {
-	lappend grade_options [list [lindex $tree 1] [lindex $tree 0]]
-    }
+    set custom_fields [parameter::get -package_id [ad_conn package_id] -parameter CustomParticipantFields -default ""]
 
-    if { [llength $grade_options] > 0 } {
-	ad_form -extend -name register -form {
-	    {grade:text(select),optional
-		{label "[_ dotlrn-ecommerce.Grade]"}
-		{options {$grade_options}}
+    foreach field $custom_fields {
+
+	switch [string tolower $field] {
+	    grade {
+		set grade_options [list {"--" ""}]
+		foreach tree [category_tree::get_tree $tree_id] {
+		    lappend grade_options [list [lindex $tree 1] [lindex $tree 0]]
+		}
+		
+		ad_form -extend -name register -form {
+		    {grade:text(select),optional
+			{label "[_ dotlrn-ecommerce.Grade]"}
+			{options {$grade_options} }
+		    }
+		}
 	    }
-	}
-    } else {
-	ad_form -extend -name register -form {
-	    {grade:text(select),optional
-		{label "[_ dotlrn-ecommerce.Grade]"}
-		{options {$grade_options}}
+
+	    allergies {
+		ad_form -extend -name register -form {
+		    {allergies:text,optional
+			{label "[_ dotlrn-ecommerce.Medical_Issues]"}
+			{html {size 60}}
+		    }
+		}
 	    }
+
+	    special_needs {
+		ad_form -extend -name register -form {
+		    {special_needs:text,optional
+			{label "[_ dotlrn-ecommerce.Special_Needs]"}
+			{html {size 60}}
+		    }
+		}
+	    }
 	}
     }
-    ad_form -extend -name register -form {
-	{allergies:text,optional
-	    {label "[_ dotlrn-ecommerce.Medical_Issues]"}
-	    {html {size 60}}
+    
+    foreach field {grade allergies special_needs} {
+	if { [lsearch $custom_fields $field] == -1 } {
+	    ad_form -extend -name register -form [subst {
+		{$field:text(hidden) {value ""}}
+	    }]
 	}
-
-	{special_needs:text,optional
-	    {label "[_ dotlrn-ecommerce.Special_Needs]"}
-	    {html {size 60}}
-	}
     }
 
 } else {
Index: openacs-4/packages/dotlrn-ecommerce/tcl/apm-callback-procs.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/dotlrn-ecommerce/tcl/apm-callback-procs.tcl,v
diff -u -r1.18 -r1.19
--- openacs-4/packages/dotlrn-ecommerce/tcl/apm-callback-procs.tcl	20 Aug 2005 22:33:56 -0000	1.18
+++ openacs-4/packages/dotlrn-ecommerce/tcl/apm-callback-procs.tcl	30 Aug 2005 17:42:44 -0000	1.19
@@ -157,6 +157,14 @@
 		    0 \
 		    number
 	    }
+	    0.1d10 0.1d11 {
+		apm_parameter_register \
+		    CustomParticipantFields \
+		    "Custom fields used in participant registration." \
+		    dotlrn-ecommerce \
+		    "" \
+		    string
+	    }
     	}
 }