Index: openacs-4/packages/recruiting/dotlrn-recruiting.info
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/recruiting/Attic/dotlrn-recruiting.info,v
diff -u -r1.7 -r1.8
--- openacs-4/packages/recruiting/dotlrn-recruiting.info	7 Aug 2002 23:39:19 -0000	1.7
+++ openacs-4/packages/recruiting/dotlrn-recruiting.info	14 Aug 2002 20:28:27 -0000	1.8
@@ -24,7 +24,8 @@
             <file type="data_model" db_type="postgresql" path="sql/postgresql/recruiting-drop.sql"/>
             <file type="query_file" db_type="postgresql" path="tcl/dotlrn-recruiting-procs-postgresql.xql"/>
             <file type="tcl_procs" path="tcl/dotlrn-recruiting-procs.tcl"/>
-            <file type="tcl_procs" path="tcl/table-sorter-procs.tcl"/>
+            <file type="tcl_procs" path="tcl/recruiting-email-procs.tcl"/>
+            <file type="query_file" path="tcl/recruiting-email-procs.xql"/>
             <file type="content_page" path="www/admin/archive-candidate.adp"/>
             <file type="content_page" path="www/admin/archive-candidate.tcl"/>
             <file type="content_page" path="www/admin/assign-candidate-interview-2.adp"/>
@@ -50,6 +51,9 @@
             <file type="content_page" path="www/admin/edit-criteria.tcl"/>
             <file type="content_page" path="www/admin/edit-status-type.adp"/>
             <file type="content_page" path="www/admin/edit-status-type.tcl"/>
+            <file type="content_page" path="www/admin/email-options.adp"/>
+            <file type="content_page" path="www/admin/email-options.tcl"/>
+            <file type="query_file" path="www/admin/email-options.xql"/>
             <file type="content_page" path="www/admin/enable-criteria.tcl"/>
             <file type="query_file" path="www/admin/enable-criteria.xql"/>
             <file type="content_page" path="www/admin/enable-status-type.tcl"/>
Index: openacs-4/packages/recruiting/sql/postgresql/recruiting-create.sql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/recruiting/sql/postgresql/recruiting-create.sql,v
diff -u -r1.6 -r1.7
--- openacs-4/packages/recruiting/sql/postgresql/recruiting-create.sql	7 Aug 2002 23:39:19 -0000	1.6
+++ openacs-4/packages/recruiting/sql/postgresql/recruiting-create.sql	14 Aug 2002 20:28:27 -0000	1.7
@@ -251,4 +251,25 @@
        'recruiting_rating__name'
 );
 
+create table recruiting_assignment_emails (
+       package_id                  integer
+                                   constraint recruiting_emails_pkg_id_fk
+                                   references apm_packages(package_id)
+                                   constraint recruiting_emails_pkg_id_uniq
+                                   unique,
+       email_body                  varchar(8000)
+);
+
+insert into recruiting_assignment_emails
+           (package_id,
+            email_body)
+    values (null,'\
+\
+Dear $interviewer_name,\
+\
+Please interview $candidate_name at your earliest convenience.  When you have completed the interview, please go to $url and rate the candidate.\
+\
+Thank you,\
+$sender_name');
+
 \i recruiting-api-create.sql
Index: openacs-4/packages/recruiting/tcl/dotlrn-recruiting-procs-postgresql.xql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/recruiting/tcl/dotlrn-recruiting-procs-postgresql.xql,v
diff -u -r1.7 -r1.8
--- openacs-4/packages/recruiting/tcl/dotlrn-recruiting-procs-postgresql.xql	7 Aug 2002 23:39:19 -0000	1.7
+++ openacs-4/packages/recruiting/tcl/dotlrn-recruiting-procs-postgresql.xql	14 Aug 2002 20:28:27 -0000	1.8
@@ -2,19 +2,19 @@
 <queryset>
     <rdbms><type>postgresql</type><version>7.1</version></rdbms>
 
-    <fullquery name="recruiting_status_type::disable.disable_status_type">
+    <fullquery name="recruiting::status_type::disable.disable_status_type">
         <querytext>
             select recruiting_status_type__disable(:status_type_id)
         </querytext>
     </fullquery>
 
-    <fullquery name="recruiting_status_type::disable.enable_status_type">
+    <fullquery name="recruiting::status_type::disable.enable_status_type">
         <querytext>
             select recruiting_status_type__enable(:status_type_id)
         </querytext>
     </fullquery>
 
-    <fullquery name="recruiting_status_type::get.get_status_type">
+    <fullquery name="recruiting::status_type::get.get_status_type">
         <querytext>
             select package_id,
                    short_desc,
@@ -25,7 +25,7 @@
         </querytext>
     </fullquery>
 
-    <fullquery name="recruiting_status_type::update_status_type.update_status_type">
+    <fullquery name="recruiting::status_type::update_status_type.update_status_type">
         <querytext>
             update recruiting_status_types
                set short_desc = :short_desc,
@@ -36,19 +36,19 @@
         </querytext>
     </fullquery>
 
-    <fullquery name="recruiting_criteria::disable.disable_criteria">
+    <fullquery name="recruiting::criteria::disable.disable_criteria">
         <querytext>
             select recruiting_criteria__disable(:criteria_id)
         </querytext>
     </fullquery>
 
-    <fullquery name="recruiting_criteria::disable.enable_criteria">
+    <fullquery name="recruiting::criteria::disable.enable_criteria">
         <querytext>
             select recruiting_criteria__enable(:criteria_id)
         </querytext>
     </fullquery>
 
-    <fullquery name="recruiting_criteria::get.get_criteria">
+    <fullquery name="recruiting::criteria::get.get_criteria">
         <querytext>
             select package_id,
                    criteria_name,
@@ -59,7 +59,7 @@
         </querytext>
     </fullquery>
 
-    <fullquery name="recruiting_criteria::update_criteria_type.update_criteria">
+    <fullquery name="recruiting::criteria::update_criteria_type.update_criteria">
         <querytext>
             update recruiting_criteria
                set package_id = :package_id,
@@ -69,45 +69,45 @@
         </querytext>
     </fullquery>
 
-    <fullquery name="recruiting_candidate::delete.delete_ratings_for_candidate">
+    <fullquery name="recruiting::candidate::delete.delete_ratings_for_candidate">
         <querytext>
             delete from recruiting_ratings
                   where interview_id = recruiting_interviews.interview_id
                     and recruiting_interviews.candidate_id = :candidate_id
         </querytext>
     </fullquery>
    
-    <fullquery name="recruiting_candidate::delete.delete_interviews_for_candidate">
+    <fullquery name="recruiting::candidate::delete.delete_interviews_for_candidate">
         <querytext>
             delete from recruiting_interviews
                   where candidate_id = :candidate_id
         </querytext>
     </fullquery>
    
-    <fullquery name="recruiting_candidate::delete.delete_candidate">
+    <fullquery name="recruiting::candidate::delete.delete_candidate">
         <querytext>
             delete from recruiting_candidates_all
                   where candidate_id = :candidate_id
         </querytext>
     </fullquery>
    
-    <fullquery name="recruiting_candidate::archive.archive_candidate">
+    <fullquery name="recruiting::candidate::archive.archive_candidate">
         <querytext>
            update recruiting_candidates_all
               set archived_p = 't'
                   where candidate_id = :candidate_id
         </querytext>
     </fullquery>
    
-    <fullquery name="recruiting_candidate::unarchive.unarchive_candidate">
+    <fullquery name="recruiting::candidate::unarchive.unarchive_candidate">
         <querytext>
            update recruiting_candidates_all
               set archived_p = 'f'
                   where candidate_id = :candidate_id
         </querytext>
     </fullquery>
    
-    <fullquery name="recruiting_candidate::get.get_recruiting_candidate">
+    <fullquery name="recruiting::candidate::get.get_recruiting_candidate">
         <querytext>
             select package_id,
                    first_name,
@@ -130,7 +130,7 @@
         </querytext>
     </fullquery>
    
-    <fullquery name="recruiting_candidate::update_candidate.update_candidate">
+    <fullquery name="recruiting::candidate::update_candidate.update_candidate">
         <querytext>
             update recruiting_candidates_all
                set address1 = :address1,
@@ -148,21 +148,21 @@
         </querytext>
     </fullquery>
 
-    <fullquery name="recruiting_interview::delete.delete_ratings">
+    <fullquery name="recruiting::interview::delete.delete_ratings">
         <querytext>
             delete from recruiting_ratings
                   where interview_id = :interview_id
         </querytext>
     </fullquery>
    
-    <fullquery name="recruiting_interview::delete.delete_interview">
+    <fullquery name="recruiting::interview::delete.delete_interview">
         <querytext>
             delete from recruiting_interviews 
                   where interview_id = :interview_id
         </querytext>
     </fullquery>
    
-   <fullquery name="recruiting_interview::get.get_interview">
+   <fullquery name="recruiting::interview::get.get_interview">
         <querytext>
             select package_id,
                    interviewer_id,
@@ -174,14 +174,14 @@
         </querytext>
     </fullquery>
    
-   <fullquery name="recruiting_rating::delete.delete_rating">
+   <fullquery name="recruiting::rating::delete.delete_rating">
         <querytext>
             delete from recruiting_ratings
                   where rating_id = :rating_id
         </querytext>
     </fullquery>
    
-   <fullquery name="recruiting_rating::get.get_rating">
+   <fullquery name="recruiting::rating::get.get_rating">
         <querytext>
             select package_id,
                    interview_id,
Index: openacs-4/packages/recruiting/tcl/dotlrn-recruiting-procs.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/recruiting/tcl/dotlrn-recruiting-procs.tcl,v
diff -u -r1.9 -r1.10
--- openacs-4/packages/recruiting/tcl/dotlrn-recruiting-procs.tcl	7 Aug 2002 23:39:19 -0000	1.9
+++ openacs-4/packages/recruiting/tcl/dotlrn-recruiting-procs.tcl	14 Aug 2002 20:28:28 -0000	1.10
@@ -25,397 +25,401 @@
 # @creation-date 2002-07-30
 # @version $Id$
 
-namespace eval recruiting_status_type {
+namespace eval recruiting {
 
-    ad_proc -public new {
-        {-package_id ""}
-        {-short_desc:required}
-        {-long_desc:required}
-        {-enabled_p "t"}
-    } {
-        create a new status type
-    } {
-        if {[empty_string_p $package_id]} {
-            set package_id [ad_conn package_id]
-        }
-        
-        set extra_vars [ns_set create]
-        ns_set put $extra_vars package_id $package_id
-        ns_set put $extra_vars short_desc $short_desc
-        ns_set put $extra_vars long_desc $long_desc
-        ns_set put $extra_vars enabled_p $enabled_p
+    namespace eval status_type {
 
-        set object_type recruiting_status_type
+        ad_proc -public new {
+            {-package_id ""}
+            {-short_desc:required}
+            {-long_desc:required}
+            {-enabled_p "t"}
+        } {
+            create a new status type
+        } {
+            if {[empty_string_p $package_id]} {
+                set package_id [ad_conn package_id]
+            }
+            
+            set extra_vars [ns_set create]
+            ns_set put $extra_vars package_id $package_id
+            ns_set put $extra_vars short_desc $short_desc
+            ns_set put $extra_vars long_desc $long_desc
+            ns_set put $extra_vars enabled_p $enabled_p
 
-        return [package_instantiate_object -extra_vars $extra_vars $object_type]
+            set object_type recruiting_status_type
 
-    }
+            return [package_instantiate_object -extra_vars $extra_vars $object_type]
 
-    ad_proc -public disable {
-        {-status_type_id:required}
-    } {
-        delete a recruiting status type
-    } {
-        db_dml disable_status_type {}
-    }
+        }
 
-    ad_proc -public enable {
-        {-status_type_id:required}
-    } {
-        delete a recruiting status type
-    } {
-        db_dml enable_status_type {}
-    }
+        ad_proc -public disable {
+            {-status_type_id:required}
+        } {
+            delete a recruiting status type
+        } {
+            db_dml disable_status_type {}
+        }
 
-    ad_proc -public get {
-        {-status_type_id:required}
-    } {
-        get a status type
-    } {
-        db_1row get_status_type {}
-        
-        set status_type(status_type_id) $status_type_id
-        set status_type(package_id) $package_id
-        set status_type(short_desc) $short_desc
-        set status_type(long_desc) $long_desc
-        set status_type(enabled_p) $enabled_p
+        ad_proc -public enable {
+            {-status_type_id:required}
+        } {
+            delete a recruiting status type
+        } {
+            db_dml enable_status_type {}
+        }
 
-        return [array get status_type]
-    }
-    
-    ad_proc -public update_status_type {
-        {-status_type_id:required}
-        {-package_id ""}
-        {-short_desc:required}
-        {-long_desc:required}
-        {-enabled_p "t"}
-    } {
-        set a status type
-    } {
-        db_dml update_status_type {}
-    }
-}
+        ad_proc -public get {
+            {-status_type_id:required}
+        } {
+            get a status type
+        } {
+            db_1row get_status_type {}
+            
+            set status_type(status_type_id) $status_type_id
+            set status_type(package_id) $package_id
+            set status_type(short_desc) $short_desc
+            set status_type(long_desc) $long_desc
+            set status_type(enabled_p) $enabled_p
 
-namespace eval recruiting_criteria {
-    
-    ad_proc -public new {
-        {-criteria_name:required}
-        {-description:required}
-        {-enabled_p:required}
-        {-package_id ""}
-    } {
-        create a new recruiting criteria
-    } {
-        if {[empty_string_p $package_id]} {
-            set package_id [ad_conn package_id]
+            return [array get status_type]
         }
         
-        set extra_vars [ns_set create]
-        ns_set put $extra_vars package_id $package_id
-        ns_set put $extra_vars criteria_name $criteria_name
-        ns_set put $extra_vars description $description
-        ns_set put $extra_vars enabled_p $enabled_p
+        ad_proc -public update_status_type {
+            {-status_type_id:required}
+            {-package_id ""}
+            {-short_desc:required}
+            {-long_desc:required}
+            {-enabled_p "t"}
+        } {
+            set a status type
+        } {
+            db_dml update_status_type {}
+        }
+    }
 
-        set object_type "recruiting_criteria"
+    namespace eval criteria {
+        
+        ad_proc -public new {
+            {-criteria_name:required}
+            {-description:required}
+            {-enabled_p:required}
+            {-package_id ""}
+        } {
+            create a new recruiting criteria
+        } {
+            if {[empty_string_p $package_id]} {
+                set package_id [ad_conn package_id]
+            }
+            
+            set extra_vars [ns_set create]
+            ns_set put $extra_vars package_id $package_id
+            ns_set put $extra_vars criteria_name $criteria_name
+            ns_set put $extra_vars description $description
+            ns_set put $extra_vars enabled_p $enabled_p
 
-        return [package_instantiate_object -extra_vars $extra_vars $object_type]
-    }        
+            set object_type "recruiting_criteria"
 
-    ad_proc -public disable {
-        {-criteria_id:required}
-    } {
-        disable a recruiting criteria
-    } {
-        db_dml disable_criteria {}
-    }
+            return [package_instantiate_object -extra_vars $extra_vars $object_type]
+        }        
 
-    ad_proc -public enable {
-        {-criteria_id:required}
-    } {
-        enable a recruiting criteria
-    } {
-        db_dml enable_criteria {}
-    }
+        ad_proc -public disable {
+            {-criteria_id:required}
+        } {
+            disable a recruiting criteria
+        } {
+            db_dml disable_criteria {}
+        }
 
-    ad_proc -public get {
-        {-criteria_id:required}
-    } {
-        get a recruiting criteria
-    } {
-        db_1row get_criteria {}
+        ad_proc -public enable {
+            {-criteria_id:required}
+        } {
+            enable a recruiting criteria
+        } {
+            db_dml enable_criteria {}
+        }
 
-        set recruiting_criteria(criteria_id) $criteria_id
-        set recruiting_criteria(package_id) $package_id
-        set recruiting_criteria(criteria_name) $criteria_name
-        set recruiting_criteria(description) $description
-        set recruiting_criteria(enabled_p) $enabled_p
+        ad_proc -public get {
+            {-criteria_id:required}
+        } {
+            get a recruiting criteria
+        } {
+            db_1row get_criteria {}
 
-        return [array get recruiting_criteria]
-    }
+            set recruiting_criteria(criteria_id) $criteria_id
+            set recruiting_criteria(package_id) $package_id
+            set recruiting_criteria(criteria_name) $criteria_name
+            set recruiting_criteria(description) $description
+            set recruiting_criteria(enabled_p) $enabled_p
 
-    ad_proc -public update_criteria_type {
-        {-criteria_id:required}
-        {-criteria_name:required}
-        {-description:required}
-        {-enabled_p:required}
-        {-package_id ""}
-    } {
-        update a criteria type
-    } {
-        db_dml update_criteria {}
+            return [array get recruiting_criteria]
+        }
+
+        ad_proc -public update_criteria_type {
+            {-criteria_id:required}
+            {-criteria_name:required}
+            {-description:required}
+            {-enabled_p:required}
+            {-package_id ""}
+        } {
+            update a criteria type
+        } {
+            db_dml update_criteria {}
+        }
     }
-}
 
-namespace eval recruiting_candidate {
+    namespace eval candidate {
 
-    ad_proc -public format_phone {
-        {-phone_number:required}
-    } {
-        this proc takes a 10 digit phone number (which should
-        have only digits, no ()-. characters, and formats it
-        like this: "(123) 456-7890"
+        ad_proc -public format_phone {
+            {-phone_number:required}
+        } {
+            this proc takes a 10 digit phone number (which should
+            have only digits, no ()-. characters, and formats it
+            like this: "(123) 456-7890"
 
-        if the input is not a string of ten digits, an empty
-        string is returned
-    } {
-        if {[string length $phone_number] != 10} {
-            return ""
-        } else {
-            return "\([string range $phone_number 0 2]\) [string range $phone_number 3 5]-[string range $phone_number 6 end]"
+            if the input is not a string of ten digits, an empty
+            string is returned
+        } {
+            if {[string length $phone_number] != 10} {
+                return ""
+            } else {
+                return "\([string range $phone_number 0 2]\) [string range $phone_number 3 5]-[string range $phone_number 6 end]"
+            }
         }
-    }
 
-    ad_proc -public strip_phone {
-        {-phone_number:required}
-    } {
-        this proc takes a 10 digit phone number of arbitrary format
-        and strips away ()-., or any other characters
-    } {
-        regsub -all {[^0-9]} $phone_number "" stripped_number
-        return $stripped_number
-    }
-
-    ad_proc -public new {
-        {-candidate_id:required}
-        {-first_name:required}
-        {-last_name:required}
-        {-address1:required}
-        {-address2:required}
-        {-city:required}
-        {-state:required}
-        {-zip:required}
-        {-zip_plus_four:required}
-        {-country:required}
-        {-email:required}
-        {-home_phone:required}
-        {-cell_phone:required}
-        {-status:required}
-        {-package_id ""}
-    } {
-        add a new recruiting candidate
-    } {
-        
-        if {[empty_string_p $package_id]} {
-            set package_id [ad_conn package_id]
+        ad_proc -public strip_phone {
+            {-phone_number:required}
+        } {
+            this proc takes a 10 digit phone number of arbitrary format
+            and strips away ()-., or any other characters
+        } {
+            regsub -all {[^0-9]} $phone_number "" stripped_number
+            return $stripped_number
         }
 
-        set extra_vars [ns_set create]
-        ns_set put $extra_vars candidate_id $candidate_id
-        ns_set put $extra_vars package_id $package_id
-        ns_set put $extra_vars first_name $first_name
-        ns_set put $extra_vars last_name $last_name
-        ns_set put $extra_vars address1 $address1
-        ns_set put $extra_vars address2 $address2
-        ns_set put $extra_vars city $city
-        ns_set put $extra_vars state $state
-        ns_set put $extra_vars zip $zip
-        ns_set put $extra_vars zip_plus_four $zip_plus_four
-        ns_set put $extra_vars country $country
-        ns_set put $extra_vars home_phone $home_phone
-        ns_set put $extra_vars cell_phone $cell_phone
-        ns_set put $extra_vars email $email
-        ns_set put $extra_vars status $status
-        
-        set object_type "recruiting_candidate"
+        ad_proc -public new {
+            {-candidate_id:required}
+            {-first_name:required}
+            {-last_name:required}
+            {-address1:required}
+            {-address2:required}
+            {-city:required}
+            {-state:required}
+            {-zip:required}
+            {-zip_plus_four:required}
+            {-country:required}
+            {-email:required}
+            {-home_phone:required}
+            {-cell_phone:required}
+            {-status:required}
+            {-package_id ""}
+        } {
+            add a new recruiting candidate
+        } {
+            
+            if {[empty_string_p $package_id]} {
+                set package_id [ad_conn package_id]
+            }
 
-        return [package_instantiate_object -extra_vars $extra_vars $object_type]
-    }
+            set extra_vars [ns_set create]
+            ns_set put $extra_vars candidate_id $candidate_id
+            ns_set put $extra_vars package_id $package_id
+            ns_set put $extra_vars first_name $first_name
+            ns_set put $extra_vars last_name $last_name
+            ns_set put $extra_vars address1 $address1
+            ns_set put $extra_vars address2 $address2
+            ns_set put $extra_vars city $city
+            ns_set put $extra_vars state $state
+            ns_set put $extra_vars zip $zip
+            ns_set put $extra_vars zip_plus_four $zip_plus_four
+            ns_set put $extra_vars country $country
+            ns_set put $extra_vars home_phone $home_phone
+            ns_set put $extra_vars cell_phone $cell_phone
+            ns_set put $extra_vars email $email
+            ns_set put $extra_vars status $status
+            
+            set object_type "recruiting_candidate"
 
-    ad_proc -public delete {
-        {-candidate_id:required}
-    } {
-        delete a recruiting candidate
-    } {
-        db_dml delete_ratings_for_candidate {}
-        db_dml delete_interviews_for_candidate {}
-        db_dml delete_candidate {}
-    }
+            return [package_instantiate_object -extra_vars $extra_vars $object_type]
+        }
 
-    ad_proc -public archive {
-        {-candidate_id:required}
-    } {
-        archive a candidate
-    } {
-        db_dml archive_candidate {}
-    }
+        ad_proc -public delete {
+            {-candidate_id:required}
+        } {
+            delete a recruiting candidate
+        } {
+            db_dml delete_ratings_for_candidate {}
+            db_dml delete_interviews_for_candidate {}
+            db_dml delete_candidate {}
+        }
 
-    ad_proc -public unarchive {
-        {-candidate_id:required}
-    } {
-        unarchive a candidate
-    } {
-        db_dml unarchive_candidate {}
-    }
+        ad_proc -public archive {
+            {-candidate_id:required}
+        } {
+            archive a candidate
+        } {
+            db_dml archive_candidate {}
+        }
 
-    ad_proc -public get {
-        {-candidate_id:required}
-    } {
-        get a candidate 
-    } {
-        db_1row get_recruiting_candidate {}
+        ad_proc -public unarchive {
+            {-candidate_id:required}
+        } {
+            unarchive a candidate
+        } {
+            db_dml unarchive_candidate {}
+        }
 
-        array set the_status [recruiting_status_type::get -status_type_id $status]
+        ad_proc -public get {
+            {-candidate_id:required}
+        } {
+            get a candidate 
+        } {
+            db_1row get_recruiting_candidate {}
 
-        set recruiting_candidate(candidate_id) $candidate_id
-        set recruiting_candidate(package_id) $package_id
-        set recruiting_candidate(first_name) $first_name
-        set recruiting_candidate(last_name) $last_name
-        set recruiting_candidate(address1) $address1
-        set recruiting_candidate(address2) $address2
-        set recruiting_candidate(city) $city
-        set recruiting_candidate(state) $state
-        set recruiting_candidate(zip) $zip
-        set recruiting_candidate(zip_plus_four) $zip_plus_four
-        set recruiting_candidate(country) $country
-        set recruiting_candidate(home_phone) $home_phone
-        set recruiting_candidate(cell_phone) $cell_phone
-        set recruiting_candidate(email) $email
-        set recruiting_candidate(status) $the_status(short_desc)
+            array set the_status [recruiting_status_type::get -status_type_id $status]
+
+            set recruiting_candidate(candidate_id) $candidate_id
+            set recruiting_candidate(package_id) $package_id
+            set recruiting_candidate(first_name) $first_name
+            set recruiting_candidate(last_name) $last_name
+            set recruiting_candidate(address1) $address1
+            set recruiting_candidate(address2) $address2
+            set recruiting_candidate(city) $city
+            set recruiting_candidate(state) $state
+            set recruiting_candidate(zip) $zip
+            set recruiting_candidate(zip_plus_four) $zip_plus_four
+            set recruiting_candidate(country) $country
+            set recruiting_candidate(home_phone) $home_phone
+            set recruiting_candidate(cell_phone) $cell_phone
+            set recruiting_candidate(email) $email
+            set recruiting_candidate(status) $the_status(short_desc)
+            
+            return [array get recruiting_candidate]
+        }
         
-        return [array get recruiting_candidate]
-    }
-    
-    ad_proc -public update_candidate {
-        {-candidate_id:required}
-        {-first_name:required}
-        {-last_name:required}
-        {-address1:required}
-        {-address2:required}
-        {-city:required}
-        {-state:required}
-        {-zip:required}
-        {-zip_plus_four:required}
-        {-country:required}
-        {-home_phone:required}
-        {-cell_phone:required}
-        {-email:required}
-        {-status:required}
-        {-package_id:required}
-    } {
-        update a candidate
-    } {
-        person::update \
-                -person_id $candidate_id \
-                -first_names $first_name \
-                -last_name $last_name
+        ad_proc -public update_candidate {
+            {-candidate_id:required}
+            {-first_name:required}
+            {-last_name:required}
+            {-address1:required}
+            {-address2:required}
+            {-city:required}
+            {-state:required}
+            {-zip:required}
+            {-zip_plus_four:required}
+            {-country:required}
+            {-home_phone:required}
+            {-cell_phone:required}
+            {-email:required}
+            {-status:required}
+            {-package_id:required}
+        } {
+            update a candidate
+        } {
+            person::update \
+                    -person_id $candidate_id \
+                    -first_names $first_name \
+                    -last_name $last_name
 
-        db_dml update_candidate {}
+            db_dml update_candidate {}
+        }
+
     }
 
-}
+    namespace eval interview {
 
-namespace eval recruiting_interview {
+        ad_proc -public new {
+            {-interviewer_id:required}
+            {-candidate_id:required}
+            {-package_id ""}
+        } {
+            assign an interviewer to interview a candidate
+        } {
+            if {[empty_string_p $package_id]} {
+                set package_id [ad_conn package_id]
+            }
+            
+            set extra_vars [ns_set create]
+            ns_set put $extra_vars package_id $package_id
+            ns_set put $extra_vars interviewer_id $interviewer_id
+            ns_set put $extra_vars candidate_id $candidate_id
 
-    ad_proc -public new {
-        {-interviewer_id:required}
-        {-candidate_id:required}
-        {-package_id ""}
-    } {
-        assign an interviewer to interview a candidate
-    } {
-        if {[empty_string_p $package_id]} {
-            set package_id [ad_conn package_id]
-        }
-        
-        set extra_vars [ns_set create]
-        ns_set put $extra_vars package_id $package_id
-        ns_set put $extra_vars interviewer_id $interviewer_id
-        ns_set put $extra_vars candidate_id $candidate_id
+            set object_type "recruiting_interview"
 
-        set object_type "recruiting_interview"
 
+            return [package_instantiate_object -extra_vars $extra_vars $object_type]
+        }
 
-        return [package_instantiate_object -extra_vars $extra_vars $object_type]
-    }
+        ad_proc -public delete {
+            {-interview_id:required}
+        } {
+            delete an interview
+        } {
+            db_dml delete_ratings {}
+            db_dml delete_interview {}
+        }
 
-    ad_proc -public delete {
-        {-interview_id:required}
-    } {
-        delete an interview
-    } {
-        db_dml delete_ratings {}
-        db_dml delete_interview {}
-    }
+        ad_proc -public get {
+            {-interview_id:required}
+        } {
+            get an interview
+        } {
+            db_1row get_interview {}
 
-    ad_proc -public get {
-        {-interview_id:required}
-    } {
-        get an interview
-    } {
-        db_1row get_interview {}
+            set interview(interview_id) $interview_id
+            set interview(package_id) $package_id
+            set interview(interviewer_id) $interviewer_id
+            set interview(candidate_id) $candidate_id
+            set interview(should_hire_p) $should_hire_p
+            set interview(comment) $comment
 
-        set interview(interview_id) $interview_id
-        set interview(package_id) $package_id
-        set interview(interviewer_id) $interviewer_id
-        set interview(candidate_id) $candidate_id
-        set interview(should_hire_p) $should_hire_p
-        set interview(comment) $comment
-
-        return [array get interview]
+            return [array get interview]
+        }
     }
-}
 
-namespace eval recruiting_rating {
-    
-    ad_proc -public new {
-        {-interview_id:required}
-        {-criteria_id:required}
-        {-rating:required}
-        {-package_id ""}
-    } {
-        rate a candidate on a particular criteria
-    } {
-        if {[empty_string_p $package_id]} {
-            set package_id [ad_conn package_id]
+    namespace eval rating {
+        
+        ad_proc -public new {
+            {-interview_id:required}
+            {-criteria_id:required}
+            {-rating:required}
+            {-package_id ""}
+        } {
+            rate a candidate on a particular criteria
+        } {
+            if {[empty_string_p $package_id]} {
+                set package_id [ad_conn package_id]
+            }
+            
+            set extra_vars [ns_set create]
+            ns_set put $extra_vars package_id $package_id
+            ns_set put $extra_vars interview_id $interview_id
+            ns_set put $extra_vars criteria_id $criteria_id
+            ns_set put $extra_vars rating $rating
+
+            set object_type "recruiting_rating"
+            return [package_instantiate_object -extra_vars $extra_vars $object_type]
         }
         
-        set extra_vars [ns_set create]
-        ns_set put $extra_vars package_id $package_id
-        ns_set put $extra_vars interview_id $interview_id
-        ns_set put $extra_vars criteria_id $criteria_id
-        ns_set put $extra_vars rating $rating
+        ad_proc -public delete {
+            {-rating_id:required}
+        } {
+            delete a rating
+        } {
+            db_dml delete_rating {}
+        }
 
-        set object_type "recruiting_rating"
-        return [package_instantiate_object -extra_vars $extra_vars $object_type]
+        ad_proc -public get {
+            {-rating_id:required}
+        } {
+            get a rating
+        } {
+            db_1row get_rating {}
+            set rating(package_id) $package_id
+            set rating(interview_id) $interview_id
+            set rating(criteria_id) $criteria_id
+            set rating(rating) $criteria
+        }
     }
-    
-    ad_proc -public delete {
-        {-rating_id:required}
-    } {
-        delete a rating
-    } {
-        db_dml delete_rating {}
-    }
 
-    ad_proc -public get {
-        {-rating_id:required}
-    } {
-        get a rating
-    } {
-        db_1row get_rating {}
-        set rating(package_id) $package_id
-        set rating(interview_id) $interview_id
-        set rating(criteria_id) $criteria_id
-        set rating(rating) $criteria
-    }
 }
Index: openacs-4/packages/recruiting/www/edit-ratings.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/recruiting/www/edit-ratings.tcl,v
diff -u -r1.2 -r1.3
--- openacs-4/packages/recruiting/www/edit-ratings.tcl	2 Aug 2002 16:48:26 -0000	1.2
+++ openacs-4/packages/recruiting/www/edit-ratings.tcl	14 Aug 2002 20:28:28 -0000	1.3
@@ -13,7 +13,7 @@
 set package_id [ad_conn package_id]
 set user_id [ad_verify_and_get_user_id]
 
-array set interview_info [recruiting_interview::get -interview_id $interview_id]
+array set interview_info [recruiting::interview::get -interview_id $interview_id]
 array set candidate_info [recruiting_candidate::get -candidate_id $candidate_id]
 
 form create rate_sheet
@@ -68,7 +68,7 @@
         form get_values rate_sheet \
                 criteria_$criteria_id
 
-        recruiting_rating::new \
+        recruiting::rating::new \
                 -package_id $package_id \
                 -interview_id $interview_id \
                 -criteria_id $criteria_id \
@@ -82,3 +82,5 @@
 }
 
 set context_bar [list [list "index" "Recruiting"] [list "my-completed-interviews" "My Completed Interviews"] "Edit Rate Sheet"]
+
+
Index: openacs-4/packages/recruiting/www/rate-candidate.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/recruiting/www/rate-candidate.tcl,v
diff -u -r1.3 -r1.4
--- openacs-4/packages/recruiting/www/rate-candidate.tcl	2 Aug 2002 18:53:56 -0000	1.3
+++ openacs-4/packages/recruiting/www/rate-candidate.tcl	14 Aug 2002 20:28:28 -0000	1.4
@@ -60,7 +60,7 @@
                 criteria_$criteria_id
 
         if {[set criteria_$criteria_id] != 0} {
-            recruiting_rating::new \
+            recruiting::rating::new \
                 -package_id $package_id \
                 -interview_id $interview_id \
                 -criteria_id $criteria_id \
@@ -75,3 +75,4 @@
 }
 
 set context_bar [list [list "index" "Recruiting"] [list "my-new-interviews" "My New Interviews"] "One Rate Sheet"]
+
Index: openacs-4/packages/recruiting/www/rating-sheet.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/recruiting/www/rating-sheet.tcl,v
diff -u -r1.3 -r1.4
--- openacs-4/packages/recruiting/www/rating-sheet.tcl	9 Aug 2002 20:30:51 -0000	1.3
+++ openacs-4/packages/recruiting/www/rating-sheet.tcl	14 Aug 2002 20:28:28 -0000	1.4
@@ -11,7 +11,7 @@
 set package_id [ad_conn package_id]
 set user_id [ad_verify_and_get_user_id]
 
-array set interview_info [recruiting_interview::get -interview_id $interview_id]
+array set interview_info [recruiting::interview::get -interview_id $interview_id]
 
 if {$user_id != $interview_info(interviewer_id)} {
     
@@ -54,3 +54,4 @@
 
 
 
+
Index: openacs-4/packages/recruiting/www/admin/assign-candidate-interview-2.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/recruiting/www/admin/assign-candidate-interview-2.tcl,v
diff -u -r1.2 -r1.3
--- openacs-4/packages/recruiting/www/admin/assign-candidate-interview-2.tcl	7 Aug 2002 23:39:19 -0000	1.2
+++ openacs-4/packages/recruiting/www/admin/assign-candidate-interview-2.tcl	14 Aug 2002 20:28:28 -0000	1.3
@@ -20,6 +20,11 @@
 
 array set candidate_info [recruiting_candidate::get -candidate_id $candidate_id]
 
+set candidate_name [person::name -person_id $candidate_id]
+set url "[ad_parameter -package_id [ad_acs_kernel_id] SystemURL ""]$package_url"
+set interviewer_name [person::name -person_id $search_user_id]
+set sender_name [person::name -person_id $user_id]
+
 form create msg
 element create msg subject \
         -label "Subject:" \
@@ -33,15 +38,8 @@
         -datatype text \
         -widget textarea \
         -html {rows 10 cols 60 wrap soft} \
-        -value "
+        -value [recruiting_email::get_body -package_id $package_id]
 
-Dear [person::name -person_id $search_user_id],
-
-Please interview [person::name -person_id $candidate_id] at your earliest convenience.  When you have completed the interview, please go to [ad_parameter -package_id [ad_acs_kernel_id] SystemURL ""]$package_url and rate the candidate.
-
-Thank you,
-[person::name -person_id $user_id]"
-
 element create msg candidate_id \
         -widget hidden \
         -value $candidate_id
@@ -59,7 +57,7 @@
 
     catch {ns_sendmail $interviewer_email $sender_email "$subject" "$body"} message_send_errors
     
-    recruiting_interview::new \
+    recruiting::interview::new \
         -interviewer_id $search_user_id \
         -candidate_id $candidate_id \
         -package_id $package_id
@@ -73,3 +71,4 @@
 ad_return_template
 
 
+
Index: openacs-4/packages/recruiting/www/admin/assign-candidate-interview.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/recruiting/www/admin/assign-candidate-interview.tcl,v
diff -u -r1.3 -r1.4
--- openacs-4/packages/recruiting/www/admin/assign-candidate-interview.tcl	9 Aug 2002 20:30:51 -0000	1.3
+++ openacs-4/packages/recruiting/www/admin/assign-candidate-interview.tcl	14 Aug 2002 20:28:28 -0000	1.4
@@ -15,12 +15,19 @@
 
 set searching_p 1
 
-form create assign_interview
-element create assign_interview search_text \
+form create assign_interview 
+element create assign_interview search_user_id \
         -label "Assign interview to" \
+        -datatype integer \
+        -widget select \
+        -options [db_list_of_lists get_all_recruiting_users {select last_name||', '||first_names,user_id from registered_users order by last_name}] 
+
+element create assign_interview search_text \
+        -label "or search:" \
         -datatype text \
         -widget text \
-        -html {size 40}
+        -html {size 40} \
+        -optional
 
 element create assign_interview candidate_id \
         -widget hidden \
@@ -29,14 +36,21 @@
 if {[form is_valid assign_interview]} {
     set searching_p 0
     form get_values assign_interview \
-            search_text
+            search_text search_user_id
 
-    ui::table::set_title search_results "Choose an interviewer"
+    if {![empty_string_p $search_text]} {
 
-    db_foreach select_users {} {
-        ui::table::add_sortable_row search_results [list "<a href=assign-candidate-interview-2?[export_vars "candidate_id search_user_id"]>$last_name, $first_names ($email)</a>"]
-    } if_no_rows {
-        ui::table::add_sortable_row search_results [list "There were no users matching your criteria"]
+        ui::table::set_title search_results "Choose an interviewer"
+
+        db_foreach select_users {} {
+            ui::table::add_sortable_row search_results [list "<a href=assign-candidate-interview-2?[export_vars "candidate_id search_user_id"]>$last_name, $first_names ($email)</a>"]
+        } if_no_rows {
+            ui::table::add_sortable_row search_results [list "There were no users matching your criteria"]
+        }
+
+    } else {
+        
+        ns_returnredirect assign-candidate-interview-2?[export_vars {candidate_id search_user_id}]
     }
 }
 
Index: openacs-4/packages/recruiting/www/admin/delete-interview.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/recruiting/www/admin/delete-interview.tcl,v
diff -u -r1.2 -r1.3
--- openacs-4/packages/recruiting/www/admin/delete-interview.tcl	9 Aug 2002 20:30:51 -0000	1.2
+++ openacs-4/packages/recruiting/www/admin/delete-interview.tcl	14 Aug 2002 20:28:28 -0000	1.3
@@ -19,7 +19,7 @@
 if {$delete_p == "notyet"} {
     
     array set candidate_info [recruiting_candidate::get -candidate_id $candidate_id]
-    array set interview_info [recruiting_interview::get -interview_id $interview_id]
+    array set interview_info [recruiting::interview::get -interview_id $interview_id]
     
     ui::table::set_title delete "Deleting interview for $candidate_info(first_name) $candidate_info(last_name)"
     ui::table::set_form delete [ns_conn url]
@@ -32,7 +32,7 @@
 } else {
     
     if {$delete_p == "Yes"} {
-        recruiting_interview::delete -interview_id $interview_id
+        recruiting::interview::delete -interview_id $interview_id
     }
     ns_returnredirect [ns_urldecode $referrer]
 
@@ -41,3 +41,4 @@
 
 
 
+
Index: openacs-4/packages/recruiting/www/admin/edit-criteria.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/recruiting/www/admin/edit-criteria.tcl,v
diff -u -r1.1 -r1.2
--- openacs-4/packages/recruiting/www/admin/edit-criteria.tcl	31 Jul 2002 23:54:00 -0000	1.1
+++ openacs-4/packages/recruiting/www/admin/edit-criteria.tcl	14 Aug 2002 20:28:28 -0000	1.2
@@ -12,7 +12,7 @@
 set package_id [ad_conn package_id]
 set user_id [ad_verify_and_get_user_id]
 
-array set info [recruiting_criteria::get -criteria_id $criteria_id]
+array set info [recruiting::criteria::get -criteria_id $criteria_id]
 
 form create edit_criteria
 element create edit_criteria criteria_name \
@@ -37,7 +37,7 @@
     form get_values edit_criteria \
             criteria_name description
     
-    recruiting_criteria::update_criteria_type \
+    recruiting::criteria::update_criteria_type \
             -criteria_id $criteria_id \
             -criteria_name $criteria_name \
             -description $description \
@@ -51,3 +51,4 @@
 set context_bar [list [list "../" "Recruiting"] [list "index" "Admin"] [list "list-criteria" "Criteria Types"] "Edit Criteria"]
 
 ad_return_template
+
Index: openacs-4/packages/recruiting/www/admin/edit-status-type.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/recruiting/www/admin/edit-status-type.tcl,v
diff -u -r1.1 -r1.2
--- openacs-4/packages/recruiting/www/admin/edit-status-type.tcl	31 Jul 2002 23:54:00 -0000	1.1
+++ openacs-4/packages/recruiting/www/admin/edit-status-type.tcl	14 Aug 2002 20:28:28 -0000	1.2
@@ -13,7 +13,7 @@
 set package_id [ad_conn package_id]
 set user_id [ad_verify_and_get_user_id]
 
-array set info [recruiting_status_type::get -status_type_id $status_type_id]
+array set info [recruiting::status_type::get -status_type_id $status_type_id]
 
 form create edit_status_type
 element create edit_status_type short_desc \
@@ -38,7 +38,7 @@
     form get_values edit_status_type \
             short_desc long_desc
     
-    recruiting_status_type::update_status_type \
+    recruiting::status_type::update_status_type \
             -status_type_id $status_type_id \
             -short_desc $short_desc \
             -long_desc $long_desc \
@@ -52,3 +52,4 @@
 set context_bar [list [list "../" "Recruiting"] [list "index" "Admin"] [list "list-status-types" "Status Types"] "Edit Status Type"]
 
 ad_return_template
+
Index: openacs-4/packages/recruiting/www/admin/index.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/recruiting/www/admin/index.tcl,v
diff -u -r1.4 -r1.5
--- openacs-4/packages/recruiting/www/admin/index.tcl	9 Aug 2002 20:30:51 -0000	1.4
+++ openacs-4/packages/recruiting/www/admin/index.tcl	14 Aug 2002 20:28:28 -0000	1.5
@@ -29,6 +29,7 @@
 ui::table::set_title setup "Setup"
 ui::table::add_unsorted_row setup [list "<a href=list-status-types.tcl>Candidate status types</a>$status_types_msg"]
 ui::table::add_unsorted_row setup [list "<a href=list-criteria>Interview criteria</a>$criteria_msg"]
+ui::table::add_unsorted_row setup [list "<a href=email-options>Email options</a>"]
 
 db_1row get_num_candidates {}
 db_1row get_pending_interviews {}
@@ -41,5 +42,5 @@
 
 set context_bar [list [list "../" "Recruiting"] "Admin"]
 
+ad_return_template
 
-
Index: openacs-4/packages/recruiting/www/admin/new-criteria.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/recruiting/www/admin/new-criteria.tcl,v
diff -u -r1.2 -r1.3
--- openacs-4/packages/recruiting/www/admin/new-criteria.tcl	31 Jul 2002 23:54:00 -0000	1.2
+++ openacs-4/packages/recruiting/www/admin/new-criteria.tcl	14 Aug 2002 20:28:28 -0000	1.3
@@ -27,7 +27,7 @@
     form get_values new_criteria \
             criteria_name description
     
-    recruiting_criteria::new \
+    recruiting::criteria::new \
             -criteria_name $criteria_name \
             -description $description \
             -package_id $package_id \
@@ -40,3 +40,4 @@
 set context_bar [list [list "../" "Recruiting"] [list "index" "Admin"] [list "list-criteria" "Criteria Types"] "New Criteria"]
 
 ad_return_template
+
Index: openacs-4/packages/recruiting/www/admin/new-status-type.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/recruiting/www/admin/new-status-type.tcl,v
diff -u -r1.2 -r1.3
--- openacs-4/packages/recruiting/www/admin/new-status-type.tcl	31 Jul 2002 23:54:00 -0000	1.2
+++ openacs-4/packages/recruiting/www/admin/new-status-type.tcl	14 Aug 2002 20:28:28 -0000	1.3
@@ -27,7 +27,7 @@
     form get_values new_status_type \
             short_desc long_desc
     
-    recruiting_status_type::new \
+    recruiting::status_type::new \
             -short_desc $short_desc \
             -long_desc $long_desc \
             -package_id $package_id \
@@ -40,3 +40,4 @@
 set context_bar [list [list "../" "Recruiting"] [list "index" "Admin"] [list "list-status-types" "Status Types"] "New Status Type"]
 
 ad_return_template
+
Index: openacs-4/packages/recruiting/www/admin/view-ratings-by-criteria.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/recruiting/www/admin/view-ratings-by-criteria.tcl,v
diff -u -r1.2 -r1.3
--- openacs-4/packages/recruiting/www/admin/view-ratings-by-criteria.tcl	9 Aug 2002 20:30:51 -0000	1.2
+++ openacs-4/packages/recruiting/www/admin/view-ratings-by-criteria.tcl	14 Aug 2002 20:28:28 -0000	1.3
@@ -12,7 +12,7 @@
 }
 
 array set candidate_info [recruiting_candidate::get -candidate_id $candidate_id]
-array set criteria_info [recruiting_criteria::get -criteria_id $criteria_id]
+array set criteria_info [recruiting::criteria::get -criteria_id $criteria_id]
 
 ui::table::set_title ratings "$criteria_info(criteria_name) ratings for $candidate_info(first_name) $candidate_info(last_name)"
 ui::table::set_column_headings ratings [list "Interviewer" "$criteria_info(criteria_name) Rating"]
@@ -40,3 +40,4 @@
 
 
 
+
Index: openacs-4/packages/recruiting/www/admin/view-ratings.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/recruiting/www/admin/view-ratings.tcl,v
diff -u -r1.3 -r1.4
--- openacs-4/packages/recruiting/www/admin/view-ratings.tcl	9 Aug 2002 20:30:51 -0000	1.3
+++ openacs-4/packages/recruiting/www/admin/view-ratings.tcl	14 Aug 2002 20:28:28 -0000	1.4
@@ -10,7 +10,7 @@
     interview_id:notnull
 }
 
-array set interview_info [recruiting_interview::get -interview_id $interview_id]
+array set interview_info [recruiting::interview::get -interview_id $interview_id]
 array set candidate_info [recruiting_candidate::get -candidate_id $interview_info(candidate_id)]
 
 set interviewer_id $interview_info(interviewer_id)
@@ -52,3 +52,4 @@
 
 
 
+