Index: openacs-4/packages/dotlrn-recruiting/dotlrn-recruiting.info
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/dotlrn-recruiting/dotlrn-recruiting.info,v
diff -u
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/dotlrn-recruiting/dotlrn-recruiting.info	21 Aug 2002 19:08:15 -0000	1.1
@@ -0,0 +1,31 @@
+<?xml version="1.0"?>
+<!-- Generated by the OpenACS Package Manager -->
+
+<package key="dotlrn-recruiting" url="http://openacs.org/repository/apm/packages/dotlrn-recruiting" type="apm_service">
+    <package-name>dotLRN Recruiting</package-name>
+    <pretty-plural>dotLRN Recruiting packages</pretty-plural>
+    <initial-install-p>f</initial-install-p>
+    <singleton-p>t</singleton-p>
+
+    <version name="0.1d" url="http://openacs.org/repository/download/apm/dotlrn-recruiting-0.1d.apm">
+    <database-support>
+        <database>oracle</database>
+        <database>postgresql</database>
+    </database-support>
+        <owner url="mailto:chak@openforce.net">Dan Chak</owner>
+
+        <requires url="dotlrn" version="1.0"/>
+        <requires url="recruiting" version="1.0"/>
+        <requires url="ui" version="0.1"/>
+
+        <files>
+            <file type="package_spec" path="dotlrn-recruiting.info"/>
+            <file type="data_model_create" db_type="postgresql" path="sql/postgresql/dotlrn-recruiting-create.sql"/>
+            <file type="tcl_procs" path="tcl/dotlrn-recruiting-procs.tcl"/>
+        </files>
+        <parameters>
+        <!-- No version parameters -->
+        </parameters>
+
+    </version>
+</package>
Index: openacs-4/packages/dotlrn-recruiting/sql/postgresql/dotlrn-recruiting-create.sql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/dotlrn-recruiting/sql/postgresql/dotlrn-recruiting-create.sql,v
diff -u
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/dotlrn-recruiting/sql/postgresql/dotlrn-recruiting-create.sql	21 Aug 2002 19:08:15 -0000	1.1
@@ -0,0 +1,154 @@
+--
+--  Copyright (C) 2001, 2002 OpenForce
+--
+--  This file is part of this.
+--
+--  this is free software; you can redistribute it and/or modify it under the
+--  terms of the GNU General Public License as published by the Free Software
+--  Foundation; either version 2 of the License, or (at your option) any later
+--  version.
+--
+--  this is distributed in the hope that it will be useful, but WITHOUT ANY
+--  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+--  FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
+--  details.
+--
+
+--
+-- The recruiting applet for this
+--
+-- @author Ben Adida (ben@openforce.net)
+-- @creation-date 2002-05-29
+-- @version $Id: dotlrn-recruiting-create.sql,v 1.1 2002/08/21 19:08:15 chak Exp $
+--
+-- ported to postgres by mohan pakkurti (mohan@pakkurti.com)
+-- 2002-07-12
+--
+
+create function inline_0()
+returns integer as '
+declare
+    foo                             integer;
+begin
+
+    foo := acs_sc_impl__new (
+        ''dotlrn_applet'',
+        ''dotlrn_recruiting'',
+        ''dotlrn_recruiting''
+    );
+
+    foo := acs_sc_impl_alias__new (
+        ''dotlrn_applet'',
+        ''dotlrn_recruiting'',
+        ''GetPrettyName'',
+        ''dotlrn_recruiting::get_pretty_name'',
+        ''TCL''
+    );
+
+    foo := acs_sc_impl_alias__new (
+        ''dotlrn_applet'',
+        ''dotlrn_recruiting'',
+        ''AddApplet'',
+        ''dotlrn_recruiting::add_applet'',
+        ''TCL''
+    );
+
+    foo := acs_sc_impl_alias__new (
+        ''dotlrn_applet'',
+        ''dotlrn_recruiting'',
+        ''RemoveApplet'',
+        ''dotlrn_recruiting::remove_applet'',
+        ''TCL''
+    );
+
+    foo := acs_sc_impl_alias__new (
+        ''dotlrn_applet'',
+        ''dotlrn_recruiting'',
+        ''AddAppletToCommunity'',
+        ''dotlrn_recruiting::add_applet_to_community'',
+        ''TCL''
+    );
+
+    foo := acs_sc_impl_alias__new (
+        ''dotlrn_applet'',
+        ''dotlrn_recruiting'',
+        ''RemoveAppletFromCommunity'',
+        ''dotlrn_recruiting::remove_applet_from_community'',
+        ''TCL''
+    );
+
+    foo := acs_sc_impl_alias__new (
+        ''dotlrn_applet'',
+        ''dotlrn_recruiting'',
+        ''AddUser'',
+        ''dotlrn_recruiting::add_user'',
+        ''TCL''
+    );
+
+    foo := acs_sc_impl_alias__new (
+        ''dotlrn_applet'',
+        ''dotlrn_recruiting'',
+        ''RemoveUser'',
+        ''dotlrn_recruiting::remove_user'',
+        ''TCL''
+    );
+
+    foo := acs_sc_impl_alias__new (
+        ''dotlrn_applet'',
+        ''dotlrn_recruiting'',
+        ''AddUserToCommunity'',
+        ''dotlrn_recruiting::add_user_to_community'',
+        ''TCL''
+    );
+
+    foo := acs_sc_impl_alias__new (
+        ''dotlrn_applet'',
+        ''dotlrn_recruiting'',
+        ''RemoveUserFromCommunity'',
+        ''dotlrn_recruiting::remove_user_from_community'',
+        ''TCL''
+    );
+
+    foo := acs_sc_impl_alias__new (
+        ''dotlrn_applet'',
+        ''dotlrn_recruiting'',
+        ''AddPortlet'',
+        ''dotlrn_recruiting::add_portlet'',
+        ''TCL''
+    );
+
+    foo := acs_sc_impl_alias__new (
+        ''dotlrn_applet'',
+        ''dotlrn_recruiting'',
+        ''RemovePortlet'',
+        ''dotlrn_recruiting::remove_portlet'',
+        ''TCL''
+    );
+
+    foo := acs_sc_impl_alias__new (
+        ''dotlrn_applet'',
+        ''dotlrn_recruiting'',
+        ''Clone'',
+        ''dotlrn_recruiting::clone'',
+        ''TCL''
+    );
+
+    foo := acs_sc_impl_alias__new (
+        ''dotlrn_applet'',
+        ''dotlrn_recruiting'',
+        ''ChangeEventHandler'',
+        ''dotlrn_recruiting::change_event_handler'',
+        ''TCL''
+    );
+
+    perform acs_sc_binding__new (
+        ''dotlrn_applet'',
+        ''dotlrn_recruiting''
+    );
+
+    return 0;
+
+end;' language 'plpgsql';
+
+select inline_0();
+drop function inline_0();
Index: openacs-4/packages/dotlrn-recruiting/tcl/dotlrn-recruiting-procs.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/dotlrn-recruiting/tcl/dotlrn-recruiting-procs.tcl,v
diff -u
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/dotlrn-recruiting/tcl/dotlrn-recruiting-procs.tcl	21 Aug 2002 19:08:15 -0000	1.1
@@ -0,0 +1,289 @@
+#
+#  Copyright (C) 2001, 2002 OpenForce
+#
+#  This file is part of this.
+#
+#  this is free software; you can redistribute it and/or modify it under the
+#  terms of the GNU General Public License as published by the Free Software
+#  Foundation; either version 2 of the License, or (at your option) any later
+#  version.
+#
+#  this is distributed in the hope that it will be useful, but WITHOUT ANY
+#  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+#  FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
+#  details.
+#
+#
+
+ad_library {
+
+    Procs to set up the this Recruiting applet
+
+    @author chak (chak@openforce.net)
+    @author Arjun Sanyal (arjun@openforce.net)
+ 
+    @version $Id: dotlrn-recruiting-procs.tcl,v 1.1 2002/08/21 19:08:15 chak Exp $
+
+}
+
+namespace eval dotlrn_recruiting {
+
+    ad_proc -public applet_key {
+    } {
+        What's my applet key?
+    } {
+        return dotlrn_recruiting
+    }
+
+    ad_proc -public my_package_key {
+    } {
+        What's my package key?
+    } {
+        return "dotlrn-recruiting"
+    }
+
+    ad_proc -public package_key {
+    } {
+        What package does this applet deal with?
+    } {
+        return recruiting
+    }
+
+    ad_proc -public get_pretty_name {
+    } {
+        return the pretty name of this applet.
+    } {
+        return Recruiting
+    }
+
+    ad_proc -public add_applet {
+    } {
+        Add the recruiting applet to dotlrn - for one-time init
+        Must be repeatable!
+    } {
+        if {![dotlrn_applet::applet_exists_p -applet_key [applet_key]]} {
+
+            dotlrn_applet::add_applet_to_dotlrn \
+                    -applet_key [applet_key] \
+                    -package_key [my_package_key]
+            
+        }
+    }
+
+    ad_proc -public remove_applet {
+    } {
+        remove the applet from dotlrn
+    } {
+        ad_return_complaint 1 "[applet_key] remove_applet not implemented!"
+    }
+
+    ad_proc -public add_applet_to_community {
+        community_id
+    } {
+        Add the recruiting applet to a dotlrn community
+    } {
+        # Create and Mount the recruiting package
+        set package_id [dotlrn::instantiate_and_mount \
+            -mount_point recruiting \
+            $community_id \
+            [package_key] \
+        ]
+
+        # mount attachments under recruiting, if available
+        # attachments requires that dotlrn-fs is already mounted
+        if {[apm_package_registered_p attachments] && [dotlrn_community::applet_active_p -community_id $community_id -applet_key [dotlrn_fs::applet_key]]} {
+
+            set attachments_node_id [site_node::new \
+                -name [attachments::get_url] \
+                -parent_id [site_node::get_node_id_from_object_id -object_id $package_id]
+            ]
+
+            site_node::mount \
+                -node_id $attachments_node_id \
+                -object_id [apm_package_id_from_key attachments]
+
+            set fs_package_id [dotlrn_community::get_applet_package_id \
+                 -community_id $community_id \
+                 -applet_key [dotlrn_fs::applet_key] \
+            ]
+
+            # map the fs root folder to the package_id of the new recruiting pkg
+            attachments::map_root_folder \
+                -package_id $package_id \
+                -folder_id [fs::get_root_folder -package_id $fs_package_id]
+
+        }
+
+        # Set up permissions for basic members (Admins inherit no problem)
+        set members [dotlrn_community::get_rel_segment_id \
+            -community_id $community_id \
+            -rel_type dotlrn_member_rel \
+        ]
+
+        # community admin should have admin in recruiting/admin.  how to do this?
+        # beats me. -dc
+
+        # set up the admin portlet
+        set admin_portal_id [dotlrn_community::get_admin_portal_id \
+            -community_id $community_id \
+        ]
+
+        recruiting_admin_portlet::add_self_to_page \
+            -portal_id $admin_portal_id \
+            -package_id $package_id
+
+        # set up the portlet for this community
+        set portal_id [dotlrn_community::get_portal_id \
+            -community_id $community_id \
+        ]
+
+        # add the portlet to the comm's portal using add_portlet_helper
+        set args [ns_set create]
+        ns_set put $args package_id $package_id
+        ns_set put $args param_action overwrite
+
+        dotlrn_recruiting::add_portlet_helper $portal_id $args
+
+        return $package_id
+    }
+
+    ad_proc -public remove_applet_from_community {
+        community_id
+    } {
+        remove the applet from the given community
+    } {
+        ad_return_complaint 1 "[applet_key] remove_applet_from_community not implemented!"
+    }
+
+    ad_proc -public add_user {
+        user_id
+    } {
+        Called when the user is initially added as a dotlrn user.
+        For one-time init stuff.
+    } {
+    }
+
+    ad_proc -public remove_user {
+        user_id
+    } {
+        called when a user is removed from dotlrn.
+    } {
+    }
+
+    ad_proc -public add_user_to_community {
+        community_id
+        user_id
+    } {
+        Add a user to a specific dotlrn community
+    } {
+        set portal_id [dotlrn::get_portal_id -user_id $user_id]
+        set package_id [dotlrn_community::get_applet_package_id \
+            -community_id $community_id \
+            -applet_key [applet_key] \
+        ]
+        set args [ns_set create]
+        ns_set put $args package_id $package_id
+        ns_set put $args param_action append
+
+        # don't use the cached version
+        dotlrn_recruiting::add_portlet_helper \
+            [dotlrn::get_portal_id_not_cached -user_id $user_id] \
+            $args
+
+        dotlrn_recruiting::add_portlet_helper $portal_id $args
+
+    }
+
+    ad_proc -public remove_user_from_community {
+        community_id
+        user_id
+    } {
+        Remove a user from a community
+    } {
+        set portal_id [dotlrn::get_portal_id -user_id $user_id]
+        set package_id [dotlrn_community::get_applet_package_id \
+            -community_id $community_id \
+            -applet_key [applet_key] \
+        ]
+
+        set args [ns_set create]
+        ns_set put $args package_id $package_id
+
+        remove_portlet $portal_id $args
+
+    }
+
+    ad_proc -public add_portlet {
+        portal_id
+    } {
+        A helper proc to set up default params for templates.
+
+        @param portal_id
+    } {
+        set args [ns_set create]
+        ns_set put $args package_id 0
+        ns_set put $args display_group_name_p f
+        ns_set put $args param_action overwrite
+
+        set type [dotlrn::get_type_from_portal_id -portal_id $portal_id]
+
+        if {[string equal $type user]} {
+            # portal_id is a user portal template
+            ns_set put $args display_group_name_p t
+        }
+
+        add_portlet_helper $portal_id $args
+    }
+
+    ad_proc -public add_portlet_helper {
+        portal_id
+        args
+    } {
+        This does the call to add the portlet to the given portal.
+        Params for the portlet are set by the calllers.
+
+        @param portal_id
+        @param args An ns_set of params
+    } {
+        recruiting_portlet::add_self_to_page \
+            -portal_id $portal_id \
+            -package_id [ns_set get $args package_id] \
+            -param_action [ns_set get $args param_action] \
+            -display_group_name_p [ns_set get $args display_group_name_p]
+    }
+
+    ad_proc -public remove_portlet {
+        portal_id
+        args
+    } {
+        A helper proc to remove the underlying portlet from the given portal.
+
+        @param portal_id
+        @param args An ns_set of args
+    } {
+        set package_id [ns_set get $args package_id]
+        recruiting_portlet::remove_self_from_page $portal_id $package_id
+    }
+
+    ad_proc -public clone {
+        old_community_id
+        new_community_id
+    } {
+        Clone this applet's content from the old community to the new one
+    } {
+        dotlrn_recruiting::add_applet_to_community $new_community_id
+    }
+
+    ad_proc -public change_event_handler {
+        community_id
+        event
+        old_value
+        new_value
+    } { 
+        listens for the following events: rename
+    } { 
+        switch $event {
+        }
+    }   
+
+}
Index: openacs-4/packages/recruiting-portlet/recruiting-portlet.info
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/recruiting-portlet/recruiting-portlet.info,v
diff -u
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/recruiting-portlet/recruiting-portlet.info	21 Aug 2002 19:11:31 -0000	1.1
@@ -0,0 +1,40 @@
+<?xml version="1.0"?>
+<!-- Generated by the OpenACS Package Manager -->
+
+<package key="recruiting-portlet" url="http://openacs.org/repository/apm/packages/recruiting-portlet" type="apm_service">
+    <package-name>Recruiting Portlet</package-name>
+    <pretty-plural>Recruiting Portlet</pretty-plural>
+    <initial-install-p>f</initial-install-p>
+    <singleton-p>t</singleton-p>
+
+    <version name="1.0" url="http://openacs.org/repository/download/apm/recruiting-portlet-1.0.apm">
+    <database-support>
+        <database>oracle</database>
+        <database>postgresql</database>
+    </database-support>
+        <owner url="mailto:chak@openforce.net">dan chak</owner>
+
+        <requires url="new-portal" version="0.1a"/>
+        <requires url="recruiting" version="1.0"/>
+
+        <files>
+            <file type="package_spec" path="recruiting-portlet.info"/>
+            <file type="data_model" db_type="postgresql" path="sql/postgresql/recruiting-admin-portlet-create.sql"/>
+            <file type="data_model_create" db_type="postgresql" path="sql/postgresql/recruiting-portlet-create.sql"/>
+            <file type="data_model_drop" db_type="postgresql" path="sql/postgresql/recruiting-portlet-drop.sql"/>
+            <file type="tcl_procs" path="tcl/recruiting-admin-portlet-procs.tcl"/>
+            <file type="tcl_procs" path="tcl/recruiting-portlet-procs.tcl"/>
+            <file type="content_page" path="www/recruiting-admin-portlet.adp"/>
+            <file type="content_page" path="www/recruiting-admin-portlet.tcl"/>
+            <file type="query_file" path="www/recruiting-admin-portlet.xql"/>
+            <file type="query_file" db_type="postgresql" path="www/recruiting-portlet-postgresql.xql"/>
+            <file type="content_page" path="www/recruiting-portlet.adp"/>
+            <file type="content_page" path="www/recruiting-portlet.tcl"/>
+            <file type="query_file" path="www/recruiting-portlet.xql"/>
+        </files>
+        <parameters>
+        <!-- No version parameters -->
+        </parameters>
+
+    </version>
+</package>
Index: openacs-4/packages/recruiting-portlet/sql/postgresql/recruiting-admin-portlet-create.sql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/recruiting-portlet/sql/postgresql/recruiting-admin-portlet-create.sql,v
diff -u
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/recruiting-portlet/sql/postgresql/recruiting-admin-portlet-create.sql	21 Aug 2002 19:11:31 -0000	1.1
@@ -0,0 +1,211 @@
+--
+--  Copyright (C) 2001, 2002 OpenForce
+--
+--  This file is part of this.
+--
+--  this is free software; you can redistribute it and/or modify it under the
+--  terms of the GNU General Public License as published by the Free Software
+--  Foundation; either version 2 of the License, or (at your option) any later
+--  version.
+--
+--  this is distributed in the hope that it will be useful, but WITHOUT ANY
+--  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+--  FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
+--  details.
+--
+
+--
+-- packages/forums-portlet/sql/forums-portlets-create.sql
+--
+
+-- Creates forums datasources for portal portlets
+
+-- Copyright (C) 2001 OpenForce
+-- @author chak (chak@openforce.net) and arjun
+-- @creation-date 2002-08-20
+
+-- $Id: recruiting-admin-portlet-create.sql,v 1.1 2002/08/21 19:11:31 chak Exp $
+
+-- This is free software distributed under the terms of the GNU Public
+-- License version 2 or higher.  Full text of the license is available
+-- from the GNU Project: http://www.fsf.org/copyleft/gpl.html
+
+create function inline_0()
+returns integer as '
+declare
+  ds_id portal_datasources.datasource_id%TYPE;
+begin
+  ds_id := portal_datasource__new(
+    ''recruiting_admin_portlet'',
+    ''Displays the Recruiting Admin Summary''
+  );	
+
+  -- 4 defaults procs
+
+  -- shadeable_p 
+  perform portal_datasource__set_def_param (
+	ds_id,
+	''t'',
+	''t'',
+	''shadeable_p'',
+	''f''
+);	
+
+  -- shaded_p 
+  perform portal_datasource__set_def_param (
+	ds_id,
+	''t'',
+	''t'',
+	''shaded_p'',
+	''f''
+);	
+
+  -- hideable_p 
+  perform portal_datasource__set_def_param (
+	ds_id,
+	''t'',
+	''t'',
+	''hideable_p'',
+	''t''
+);	
+
+  -- user_editable_p 
+  perform portal_datasource__set_def_param (
+	ds_id,
+	''t'',
+	''t'',
+	''user_editable_p'',
+	''f''
+);	
+
+  -- link_hideable_p 
+  perform portal_datasource__set_def_param (
+	ds_id,
+	''t'',
+	''t'',
+	''link_hideable_p'',
+	''t''
+);	
+
+
+  -- recruiting_admin-specific procs
+
+  -- package_id must be configured
+  perform portal_datasource__set_def_param (
+	ds_id,
+	''t'',
+	''f'',
+	''package_id'',
+	''''
+);	
+
+return 0;
+
+end;' language 'plpgsql';
+
+select inline_0();
+drop function inline_0();
+
+create function inline_0()
+returns integer as '
+declare
+	foo integer;
+begin
+	-- create the implementation
+	foo := acs_sc_impl__new (
+		''portal_datasource'',
+		''recruiting_admin_portlet'',
+		''recruiting_admin_portlet''
+	);
+
+return 0;
+end;' language 'plpgsql';
+select inline_0();
+drop function inline_0();
+
+create function inline_0()
+returns integer as '
+declare
+	foo integer;
+begin
+
+	-- add all the hooks
+	foo := acs_sc_impl_alias__new (
+	       ''portal_datasource'',
+	       ''recruiting_admin_portlet'',
+	       ''GetMyName'',
+	       ''recruiting_admin_portlet::get_my_name'',
+	       ''TCL''
+	);
+
+	foo := acs_sc_impl_alias__new (
+	       ''portal_datasource'',
+	       ''recruiting_admin_portlet'',
+	       ''GetPrettyName'',
+	       ''recruiting_admin_portlet::get_pretty_name'',
+	       ''TCL''
+	);
+
+	foo := acs_sc_impl_alias__new (
+	       ''portal_datasource'',
+	       ''recruiting_admin_portlet'',
+	       ''Link'',
+	       ''recruiting_admin_portlet::link'',
+	       ''TCL''
+	);
+
+	foo := acs_sc_impl_alias__new (
+	       ''portal_datasource'',
+	       ''recruiting_admin_portlet'',
+	       ''AddSelfToPage'',
+	       ''recruiting_admin_portlet::add_self_to_page'',
+	       ''TCL''
+	);
+
+	foo := acs_sc_impl_alias__new (
+	       ''portal_datasource'',
+	       ''recruiting_admin_portlet'',
+	       ''Show'',
+	       ''recruiting_admin_portlet::show'',
+	       ''TCL''
+	);
+
+	foo := acs_sc_impl_alias__new (
+	       ''portal_datasource'',
+	       ''recruiting_admin_portlet'',
+	       ''Edit'',
+	       ''recruiting_admin_portlet::edit'',
+	       ''TCL''
+	);
+
+	foo := acs_sc_impl_alias__new (
+	       ''portal_datasource'',
+	       ''recruiting_admin_portlet'',
+	       ''RemoveSelfFromPage'',
+	       ''recruiting_admin_portlet::remove_self_from_page'',
+	       ''TCL''
+	);
+
+  return 0;
+
+end;' language 'plpgsql';
+select inline_0();
+drop function inline_0();
+
+create function inline_0()
+returns integer as '
+declare
+	foo integer;
+begin
+
+	-- Add the binding
+	perform acs_sc_binding__new (
+	    ''portal_datasource'',
+	    ''recruiting_admin_portlet''
+	);
+return 0;
+end;' language 'plpgsql';
+select inline_0();
+drop function inline_0();
+
+
Index: openacs-4/packages/recruiting-portlet/sql/postgresql/recruiting-portlet-create.sql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/recruiting-portlet/sql/postgresql/recruiting-portlet-create.sql,v
diff -u
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/recruiting-portlet/sql/postgresql/recruiting-portlet-create.sql	21 Aug 2002 19:11:31 -0000	1.1
@@ -0,0 +1,206 @@
+--
+--  Copyright (C) 2001, 2002 OpenForce
+--
+--
+--  this is free software; you can redistribute it and/or modify it under the
+--  terms of the GNU General Public License as published by the Free Software
+--  Foundation; either version 2 of the License, or (at your option) any later
+--  version.
+--
+--  this is distributed in the hope that it will be useful, but WITHOUT ANY
+--  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+--  FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
+--  details.
+--
+
+-- Creates forums datasources for portal portlets
+
+-- Copyright (C) 2001 OpenForce
+-- @author dan chak (chak@openforce.net) and arjun
+-- @creation-date 2002-08-20
+
+-- $Id: recruiting-portlet-create.sql,v 1.1 2002/08/21 19:11:31 chak Exp $
+
+
+create function inline_0()
+returns integer as '
+declare
+  ds_id portal_datasources.datasource_id%TYPE;
+begin
+  ds_id := portal_datasource__new (
+    ''recruiting_portlet'',
+    ''Candidate Recruiting Info''
+  );
+
+  -- 4 defaults procs
+
+  -- shadeable_p 
+  perform portal_datasource__set_def_param (
+	ds_id,
+	''t'',	
+	''t'',
+	''shadeable_p'',
+	''t''
+  );	
+
+  -- shaded_p 
+  perform portal_datasource__set_def_param (
+	ds_id,
+	''t'',
+	''t'',
+	''shaded_p'',
+	''f''
+  );	
+
+  -- hideable_p 
+  perform portal_datasource__set_def_param (
+	ds_id,
+	''t'',
+	''t'',
+	''hideable_p'',
+	''t''
+  );	
+
+  -- user_editable_p 
+  perform portal_datasource__set_def_param (
+	ds_id,
+	''t'',
+	''t'',
+	''user_editable_p'',
+	''f''
+  );	
+
+  -- link_hideable_p 
+  perform portal_datasource__set_def_param (
+	ds_id,
+	''t'',
+	''t'',
+	''link_hideable_p'',
+	''t''
+  );	
+
+
+  -- recruiting-specific procs
+
+  -- package_id must be configured
+  perform portal_datasource__set_def_param (
+	ds_id,
+	''t'',
+	''f'',
+	''package_id'',
+	''''
+  );	
+
+return 0;
+
+end;' language 'plpgsql';
+select inline_0();
+drop function inline_0();
+
+create function inline_0()
+returns integer as '
+declare
+	foo integer;
+begin
+	-- create the implementation
+	foo := acs_sc_impl__new (
+		''portal_datasource'',
+		''recruiting_portlet'',
+		''recruiting_portlet''
+	);
+
+  return 0;
+
+end;' language 'plpgsql';
+select inline_0();
+drop function inline_0();
+
+create function inline_0()
+returns integer as '
+declare
+	foo integer;
+begin
+
+	-- add all the hooks
+	foo := acs_sc_impl_alias__new (
+	       ''portal_datasource'',
+	       ''recruiting_portlet'',
+	       ''GetMyName'',
+	       ''recruiting_portlet::get_my_name'',
+	       ''TCL''
+	);
+
+	foo := acs_sc_impl_alias__new (
+	       ''portal_datasource'',
+	       ''recruiting_portlet'',
+	       ''GetPrettyName'',
+	       ''recruiting_portlet::get_pretty_name'',
+	       ''TCL''
+	);
+
+	foo := acs_sc_impl_alias__new (
+	       ''portal_datasource'',
+	       ''recruiting_portlet'',
+	       ''Link'',
+	       ''recruiting_portlet::link'',
+	       ''TCL''
+	);
+
+	foo := acs_sc_impl_alias__new (
+	       ''portal_datasource'',
+	       ''recruiting_portlet'',
+	       ''AddSelfToPage'',
+	       ''recruiting_portlet::add_self_to_page'',
+	       ''TCL''
+	);
+
+	foo := acs_sc_impl_alias__new (
+	       ''portal_datasource'',
+	       ''recruiting_portlet'',
+	       ''Show'',
+	       ''recruiting_portlet::show'',
+	       ''TCL''
+	);
+
+	foo := acs_sc_impl_alias__new (
+	       ''portal_datasource'',
+	       ''recruiting_portlet'',
+	       ''Edit'',
+	       ''recruiting_portlet::edit'',
+	       ''TCL''
+	);
+
+	foo := acs_sc_impl_alias__new (
+	       ''portal_datasource'',
+	       ''recruiting_portlet'',
+	       ''RemoveSelfFromPage'',
+	       ''recruiting_portlet::remove_self_from_page'',
+	       ''TCL''
+	);
+
+	return 0;
+
+end;' language 'plpgsql';
+select inline_0();
+drop function inline_0();
+
+create function inline_0()
+returns integer as '
+declare
+	foo integer;
+begin
+
+	-- Add the binding
+	perform acs_sc_binding__new (
+	    ''portal_datasource'',
+	    ''recruiting_portlet''
+	);
+	
+	return 0;
+
+end;' language 'plpgsql';
+select inline_0();
+drop function inline_0();
+
+\i recruiting-admin-portlet-create.sql
+
Index: openacs-4/packages/recruiting-portlet/sql/postgresql/recruiting-portlet-drop.sql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/recruiting-portlet/sql/postgresql/recruiting-portlet-drop.sql,v
diff -u
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/recruiting-portlet/sql/postgresql/recruiting-portlet-drop.sql	21 Aug 2002 19:11:31 -0000	1.1
@@ -0,0 +1,127 @@
+--
+--  Copyright (C) 2001, 2002 OpenForce
+--
+--  This file is part of this.
+--
+--  this is free software; you can redistribute it and/or modify it under the
+--  terms of the GNU General Public License as published by the Free Software
+--  Foundation; either version 2 of the License, or (at your option) any later
+--  version.
+--
+--  this is distributed in the hope that it will be useful, but WITHOUT ANY
+--  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+--  FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
+--  details.
+--
+
+--
+-- packages/forums-portlets/sql/forums-portlets-drop.sql
+--
+
+-- Drops forums datasources for portal portlets
+
+-- @author chak (chak@openforce.net) and arjun
+-- @creation-date 2001-30-09
+
+-- $Id: recruiting-portlet-drop.sql,v 1.1 2002/08/21 19:11:31 chak Exp $
+
+-- This is free software distributed under the terms of the GNU Public
+-- License version 2 or higher.  Full text of the license is available
+-- from the GNU Project: http://www.fsf.org/copyleft/gpl.html
+
+
+create function inline_0()
+returns integer as '
+declare  
+  ds_id portal_datasources.datasource_id%TYPE;
+begin
+
+--  begin 
+    select datasource_id into ds_id
+      from portal_datasources
+     where name = ''recruiting-portlet'';
+--  exception when no_data_found then
+--  ds_id := null;
+--  end;
+
+  if ds_id is not null then
+    portal_datasource__delete(ds_id);
+  end if;
+
+return 0;
+
+end;' language 'plpgsql';
+
+select inline_0();
+drop function inline_0();
+
+
+create function inline_1()
+returns integer as '
+declare
+	foo integer;
+begin
+
+	-- add all the hooks
+	foo := acs_sc_impl_alias__delete (
+	       ''portal_datasource'',
+	       ''recruiting_portlet'',
+	       ''GetMyName''
+	);
+
+	foo := acs_sc_impl_alias__delete (
+	       ''portal_datasource'',
+	       ''recruiting_portlet'',
+	       ''GetPrettyName''
+	);
+
+
+	foo := acs_sc_impl_alias__delete (
+	       ''portal_datasource'',
+	       ''recruiting_portlet'',
+	       ''Link''
+	);
+
+	foo := acs_sc_impl_alias__delete (
+	       ''portal_datasource'',
+	       ''recruiting_portlet'',
+	       ''AddSelfToPage''
+	);
+
+	foo := acs_sc_impl_alias__delete (
+	       ''portal_datasource'',
+	       ''recruiting_portlet'',
+	       ''Show''
+	);
+
+	foo := acs_sc_impl_alias__delete (
+	       ''portal_datasource'',
+	       ''recruiting_portlet'',
+	       ''Edit''
+	);
+
+	foo := acs_sc_impl_alias__delete (
+	       ''portal_datasource'',
+	       ''recruiting_portlet'',
+	       ''RemoveSelfFromPage''
+	);
+
+	-- Drop the binding
+	perform acs_sc_binding__delete (
+	    ''portal_datasource'',
+	    ''recruiting_portlet''
+	);
+
+	-- drop the impl
+	foo := acs_sc_impl__delete (
+		''portal_datasource'',
+		''recruiting_portlet''
+	);
+	
+	return 0;
+end;' language 'plpgsql';
+
+select inline_1();
+drop function inline_1();
+
+
Index: openacs-4/packages/recruiting-portlet/tcl/recruiting-admin-portlet-procs.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/recruiting-portlet/tcl/recruiting-admin-portlet-procs.tcl,v
diff -u
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/recruiting-portlet/tcl/recruiting-admin-portlet-procs.tcl	21 Aug 2002 19:11:31 -0000	1.1
@@ -0,0 +1,92 @@
+#
+#  Copyright (C) 2001, 2002 OpenForce
+#
+#  This file is part of this.
+#
+#  this is free software; you can redistribute it and/or modify it under the
+#  terms of the GNU General Public License as published by the Free Software
+#  Foundation; either version 2 of the License, or (at your option) any later
+#  version.
+#
+#  this is distributed in the hope that it will be useful, but WITHOUT ANY
+#  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+#  FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
+#  details.
+#
+
+ad_library {
+
+    Procedures to supports recruiting admin portlets
+
+    @creation-date September 30 2001
+    @author arjun@openforce.net
+    @version $Id: recruiting-admin-portlet-procs.tcl,v 1.1 2002/08/21 19:11:31 chak Exp $
+}
+
+namespace eval recruiting_admin_portlet {
+
+    ad_proc -private get_my_name {
+    } {
+	return "recruiting_admin_portlet"
+    }
+
+    ad_proc -public get_pretty_name {
+    } {
+	return "Recruiting Administration"
+    }
+
+    ad_proc -private my_package_key {
+    } {
+        return "recruiting-portlet"
+    }
+
+    ad_proc -public link {
+    } {
+        return ""
+    }
+
+    ad_proc -public add_self_to_page {
+	{-portal_id:required}
+        {-package_id:required}
+    } {
+	Adds a recruiting admin PE to the admin portal
+
+        @return new element_id
+    } {
+        return [portal::add_element_parameters \
+            -portal_id $portal_id \
+            -portlet_name [get_my_name] \
+            -pretty_name [get_pretty_name] \
+            -key package_id \
+            -value $package_id
+        ]
+    }
+
+    ad_proc -public remove_self_from_page {
+        {-portal_id:required}
+    } {
+        Removes the recruiting admin PE from the portal
+    } {
+        portal::remove_element \
+            -portal_id $portal_id \
+            -portlet_name [get_my_name]
+    }
+
+    ad_proc -public show {
+	cf
+    } {
+    } {
+        portal::show_proc_helper \
+            -package_key [my_package_key] \
+            -config_list $cf \
+            -template_src "recruiting-admin-portlet"
+    }
+
+    ad_proc -public edit {
+        cf
+    } {
+    } {
+	return ""
+    }
+
+}
Index: openacs-4/packages/recruiting-portlet/tcl/recruiting-portlet-procs.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/recruiting-portlet/tcl/recruiting-portlet-procs.tcl,v
diff -u
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/recruiting-portlet/tcl/recruiting-portlet-procs.tcl	21 Aug 2002 19:11:31 -0000	1.1
@@ -0,0 +1,95 @@
+#
+#  Copyright (C) 2001, 2002 OpenForce
+#
+#  This file is part of this.
+#
+#  this is free software; you can redistribute it and/or modify it under the
+#  terms of the GNU General Public License as published by the Free Software
+#  Foundation; either version 2 of the License, or (at your option) any later
+#  version.
+#
+#  this is distributed in the hope that it will be useful, but WITHOUT ANY
+#  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+#  FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
+#  details.
+#
+
+ad_library {
+
+    Procedures to supports recruiting portlets
+
+    @creation-date September 30 2001
+    @author arjun@openforce.net
+    @version $Id: recruiting-portlet-procs.tcl,v 1.1 2002/08/21 19:11:31 chak Exp $
+
+}
+
+namespace eval recruiting_portlet {
+
+    ad_proc -private get_my_name {
+    } {
+	return "recruiting_portlet"
+    }
+
+    ad_proc -public get_pretty_name {
+    } {
+	return "Candidate Recruiting"
+    }
+
+    ad_proc -private my_package_key {
+    } {
+        return "recruiting-portlet"
+    }
+
+    ad_proc -public link {
+    } {
+	return ""
+    }
+
+    ad_proc -public add_self_to_page {
+	{-portal_id:required}
+	{-package_id:required}
+	{-display_group_name_p:required}
+	{-param_action:required}
+    } {
+	Adds a recruiting PE to the given portal or appends the given recruiting package_id
+        to the recruiting PE that already on the portal
+    } {
+        return [portal::add_element_parameters \
+            -portal_id $portal_id \
+            -portlet_name [get_my_name] \
+            -pretty_name [get_pretty_name] \
+            -value $package_id \
+            -force_region [parameter::get_from_package_key \
+                               -package_key [my_package_key] \
+                               -parameter "recruiting_portlet_region"] \
+            -extra_params [list "display_group_name_p" $display_group_name_p] \
+            -param_action $param_action
+        ]
+    }
+
+
+    ad_proc -public remove_self_from_page {
+	portal_id
+	package_id
+    } {
+	Removes a recruiting PE from the given page or just the given recruiting's package_id
+    } {
+        portal::remove_element_parameters \
+            -portal_id $portal_id \
+            -portlet_name [get_my_name] \
+            -value $package_id
+    }
+
+    ad_proc -public show {
+	cf
+    } {
+    } {
+        # no return call required with the helper proc
+        portal::show_proc_helper \
+            -package_key [my_package_key] \
+            -config_list $cf \
+            -template_src "recruiting-portlet"
+    }
+
+}
Index: openacs-4/packages/recruiting-portlet/www/recruiting-admin-portlet.adp
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/recruiting-portlet/www/recruiting-admin-portlet.adp,v
diff -u
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/recruiting-portlet/www/recruiting-admin-portlet.adp	21 Aug 2002 19:11:31 -0000	1.1
@@ -0,0 +1,68 @@
+<%
+
+    #
+    #  Copyright (C) 2001, 2002 MIT
+    #
+    #  This file is part of dotLRN.
+    #
+    #  dotLRN is free software; you can redistribute it and/or modify it under the
+    #  terms of the GNU General Public License as published by the Free Software
+    #  Foundation; either version 2 of the License, or (at your option) any later
+    #  version.
+    #
+    #  dotLRN is distributed in the hope that it will be useful, but WITHOUT ANY
+    #  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+    #  FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
+    #  details.
+    #
+
+%>
+
+<center>
+
+<if @status_types_defined_p@ eq 0 or @criteria_defined_p@ eq 0>
+<p>
+<table bgcolor=red border=0 cellpadding=1 width=90%><tr><td>
+<table bgcolor=#fff0f5 border=0 width=100% cellpadding=3 cellspacing=0><tr><td>
+Warning:
+<ul>
+</if>
+
+<if @status_types_defined_p@ eq 0>
+<li>There are no status types defined.  You must <a href=@url@admin/list-status-types.tcl>define status types</a> before you can add and adminster candidates.
+</if>
+
+
+<if @criteria_defined_p@ eq 0>
+<li>No interview criteria has been defined.  You should
+<a href=@url@admin/list-criteria>define some interview criteria</a> before you begin assigning interviews.
+</if>
+
+<if @status_types_defined_p@ eq 0 or @criteria_defined_p@ eq 0>
+</ul>
+</td></tr></table>
+</td></tr></table>
+</if>
+
+<if @status_types_defined_p@ ne 0>
+
+</if>
+
+<if @criteria_defined_p@ ne 0>
+
+</if>
+
+<if @num_archived_candidates@ ne 0>
+
+</if>
+</ul>
+
+<p>
+<table width=90% border=0><tr><td>
+<%= [ui::table::output_table summary] %>
+</td></tr></table>
+
+<p>
+Go directly to <a href=@url@admin>Recruiting Candidate Administration</a>.
+
+</center>
Index: openacs-4/packages/recruiting-portlet/www/recruiting-admin-portlet.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/recruiting-portlet/www/recruiting-admin-portlet.tcl,v
diff -u
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/recruiting-portlet/www/recruiting-admin-portlet.tcl	21 Aug 2002 19:11:31 -0000	1.1
@@ -0,0 +1,72 @@
+#
+#  Copyright (C) 2001, 2002 MIT
+#
+#  This file is part of dotLRN.
+#
+#  dotLRN is free software; you can redistribute it and/or modify it under the
+#  terms of the GNU General Public License as published by the Free Software
+#  Foundation; either version 2 of the License, or (at your option) any later
+#  version.
+#
+#  dotLRN is distributed in the hope that it will be useful, but WITHOUT ANY
+#  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+#  FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
+#  details.
+#
+
+ad_page_contract {
+    The display logic for the forums admin portlet
+    
+    @author Ben Adida (ben@openforce)
+    @cvs_id $Id: recruiting-admin-portlet.tcl,v 1.1 2002/08/21 19:11:31 chak Exp $
+} -properties {
+    
+}
+
+array set config $cf	
+
+set list_of_package_ids $config(package_id)
+
+if {[llength $list_of_package_ids] > 1} {
+    # We have a problem!
+    return -code error "There should be only one instance of forums for admin purposes"
+}
+
+set package_id [lindex $list_of_package_ids 0]
+
+set url [lindex [site_node::get_url_from_object_id -object_id $package_id] 0]
+
+set package_id [ad_conn package_id]
+set default_name [db_string select_package_name {
+    select instance_name from apm_packages where package_id= :package_id
+}]
+
+set encoded_default_name [ns_urlencode $default_name]
+
+db_1row status_types_defined_p {}
+db_1row criteria_defined_p {}
+
+db_1row get_num_candidates {}
+db_1row get_pending_interviews {}
+db_1row get_num_archived_candidates {}
+
+if {$status_types_defined_p != 0} {
+    set candidate_admin_link "(<a href=${url}list-candidates>candidate administration</a>)"
+} else {
+    set candidate_admin_link ""
+}
+
+if {$pending_interviews != 0} {
+    set view_interviews_link "(<a href=\"${url}list-interviews\">view interviews</a>)"
+} else {
+    set view_interviews_link ""
+}
+
+ui::table::add_unsorted_row summary [list "Candidates: $num_candidates" "$candidate_admin_link"]
+ui::table::add_unsorted_row summary [list "Pending Interviews: $pending_interviews" "$view_interviews_link"]
+
+if {$num_archived_candidates != 0} {
+    ui::table::add_unsorted_row summary [list "$num_archived_candidates candidates have been archived" "(<a href=\"${url}list-archived-candidates\">view archived candidates</a>)"] 
+}
+
+ad_return_template
Index: openacs-4/packages/recruiting-portlet/www/recruiting-admin-portlet.xql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/recruiting-portlet/www/recruiting-admin-portlet.xql,v
diff -u
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/recruiting-portlet/www/recruiting-admin-portlet.xql	21 Aug 2002 19:11:31 -0000	1.1
@@ -0,0 +1,44 @@
+<?xml version="1.0"?>
+<queryset>
+
+    <fullquery name="status_types_defined_p">
+        <querytext>
+            select count(*) as status_types_defined_p
+              from recruiting_status_types
+             where enabled_p = 't';
+        </querytext>
+    </fullquery>
+
+    <fullquery name="criteria_defined_p">
+        <querytext>
+            select count(*) as criteria_defined_p
+              from recruiting_criteria
+             where enabled_p = 't';
+        </querytext>
+    </fullquery>
+
+    <fullquery name="get_num_candidates">
+        <querytext>
+             select count(*) as num_candidates
+               from recruiting_candidates
+        </querytext>
+    </fullquery>
+
+    <fullquery name="get_pending_interviews">
+        <querytext>
+             select count(*) as pending_interviews
+               from recruiting_interviews i
+              where (select count(*) 
+                       from recruiting_ratings r
+                      where r.interview_id = i.interview_id) = 0
+        </querytext>
+    </fullquery>
+
+    <fullquery name="get_num_archived_candidates">
+        <querytext>
+             select count(*) as num_archived_candidates
+               from archived_recruiting_candidates
+        </querytext>
+    </fullquery>
+
+</queryset>
Index: openacs-4/packages/recruiting-portlet/www/recruiting-portlet-postgresql.xql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/recruiting-portlet/www/recruiting-portlet-postgresql.xql,v
diff -u
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/recruiting-portlet/www/recruiting-portlet-postgresql.xql	21 Aug 2002 19:11:31 -0000	1.1
@@ -0,0 +1,11 @@
+<?xml version="1.0"?>
+
+<queryset>
+    <rdbms><type>postgresql</type><version>7.1</version></rdbms>
+
+    <fullquery name="something">
+        <querytext>
+        </querytext>
+    </fullquery>
+
+</queryset>
Index: openacs-4/packages/recruiting-portlet/www/recruiting-portlet.adp
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/recruiting-portlet/www/recruiting-portlet.adp,v
diff -u
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/recruiting-portlet/www/recruiting-portlet.adp	21 Aug 2002 19:11:31 -0000	1.1
@@ -0,0 +1,31 @@
+<%
+
+    #
+    #  Copyright (C) 2001, 2002 MIT
+    #
+    #  This file is part of dotLRN.
+    #
+    #  dotLRN is free software; you can redistribute it and/or modify it under the
+    #  terms of the GNU General Public License as published by the Free Software
+    #  Foundation; either version 2 of the License, or (at your option) any later
+    #  version.
+    #
+    #  dotLRN is distributed in the hope that it will be useful, but WITHOUT ANY
+    #  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+    #  FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
+    #  details.
+    #
+
+%>
+
+<if @new_interviews@ ne 0>
+  <li>You have <a href=@url@my-new-interviews>@num_interviews@
+  candidate interviews</a> to complete.
+</if>
+<if @old_interviews@ ne 0>
+  <li>You may <a href=@url@my-completed-interviews>view your old
+  candidate interviews</a>.
+</if>
+<if @new_interviews@ eq 0 and @old_interviews@ eq 0>
+  You have no candidate interviews to complete.
+</if>
Index: openacs-4/packages/recruiting-portlet/www/recruiting-portlet.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/recruiting-portlet/www/recruiting-portlet.tcl,v
diff -u
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/recruiting-portlet/www/recruiting-portlet.tcl	21 Aug 2002 19:11:31 -0000	1.1
@@ -0,0 +1,41 @@
+#
+#  Copyright (C) 2001, 2002 MIT
+#
+#  This file is part of dotLRN.
+#
+#  dotLRN is free software; you can redistribute it and/or modify it under the
+#  terms of the GNU General Public License as published by the Free Software
+#  Foundation; either version 2 of the License, or (at your option) any later
+#  version.
+#
+#  dotLRN is distributed in the hope that it will be useful, but WITHOUT ANY
+#  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+#  FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
+#  details.
+#
+
+array set config $cf	
+
+set list_of_package_ids $config(package_id)
+
+if {[llength $list_of_package_ids] > 1} {
+    # We have a problem!
+    return -code error "There should be only one instance of forums for admin purposes"
+}
+
+set user_id [ad_verify_and_get_user_id]
+set package_id [lindex $list_of_package_ids 0]
+
+set url [lindex [site_node::get_url_from_object_id -object_id $package_id] 0]
+
+set package_id [ad_conn package_id]
+set default_name [db_string select_package_name {
+    select instance_name from apm_packages where package_id= :package_id
+}]
+
+set encoded_default_name [ns_urlencode $default_name]
+
+set new_interviews [db_string num_new_interviews {}]
+set old_interviews [db_string num_old_interviews {}]
+
+ad_return_template
Index: openacs-4/packages/recruiting-portlet/www/recruiting-portlet.xql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/recruiting-portlet/www/recruiting-portlet.xql,v
diff -u
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/recruiting-portlet/www/recruiting-portlet.xql	21 Aug 2002 19:11:31 -0000	1.1
@@ -0,0 +1,26 @@
+<?xml version="1.0"?>
+<queryset>
+
+    <fullquery name="num_new_interviews">
+        <querytext>
+            select count(*)
+              from recruiting_interviews i
+             where i.interviewer_id = :user_id
+               and (select count(*)
+                      from recruiting_ratings r
+                     where r.interview_id = i.interview_id) = 0
+        </querytext>
+    </fullquery>
+
+    <fullquery name="num_old_interviews">
+        <querytext>
+            select count(*)
+              from recruiting_interviews i
+             where i.interviewer_id = :user_id
+               and (select count(*)
+                      from recruiting_ratings r
+                     where r.interview_id = i.interview_id) != 0
+        </querytext>
+    </fullquery>
+
+</queryset>
Index: openacs-4/packages/recruiting-portlet/www/recruiting-recruiting-portlet.xql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/recruiting-portlet/www/Attic/recruiting-recruiting-portlet.xql,v
diff -u
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ openacs-4/packages/recruiting-portlet/www/recruiting-recruiting-portlet.xql	21 Aug 2002 19:11:31 -0000	1.1
@@ -0,0 +1,26 @@
+<?xml version="1.0"?>
+<queryset>
+
+    <fullquery name="num_new_interviews">
+        <querytext>
+            select count(*)
+              from recruiting_interviews i
+             where i.interviewer_id = :user_id
+               and (select count(*)
+                      from recruiting_ratings r
+                     where r.interview_id = i.interview_id) = 0
+        </querytext>
+    </fullquery>
+
+    <fullquery name="num_old_interviews">
+        <querytext>
+            select count(*)
+              from recruiting_interviews i
+             where i.interviewer_id = :user_id
+               and (select count(*)
+                      from recruiting_ratings r
+                     where r.interview_id = i.interview_id) != 0
+        </querytext>
+    </fullquery>
+
+</queryset>