Index: openacs-4/contrib/packages/project-manager/tcl/project-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/project-manager/tcl/Attic/project-procs.tcl,v diff -u -r1.12 -r1.13 --- openacs-4/contrib/packages/project-manager/tcl/project-procs.tcl 4 Jun 2004 16:19:45 -0000 1.12 +++ openacs-4/contrib/packages/project-manager/tcl/project-procs.tcl 11 Jun 2004 20:58:14 -0000 1.13 @@ -1462,3 +1462,145 @@ return $return_val } + + +ad_proc -public pm::project::assign { + {-project_item_id:required} + {-role_id:required} + {-party_id:required} +} { + Assigns a user to a project + + @author Jade Rubick (jader@bread.com) + @creation-date 2004-06-11 + + @param project_item_id + + @param role_id + + @param party_id + + @return + + @error +} { + + db_dml insert_assignment { + insert into pm_project_assignment + (project_id, role_id, party_id) + VALUES + (:project_item_id, :role_id, :party_id) + } + + return +} + + +ad_proc -public pm::project::unassign { + {-project_item_id:required} + {-party_id:required} +} { + Removes a user from a project + + @author Jade Rubick (jader@bread.com) + @creation-date 2004-06-11 + + @param project_item_id + + @param party_id + + @return + + @error +} { + + db_dml remove_assignment { + DELETE FROM + pm_project_assignment + WHERE + project_id = :project_item_id and + party_id = :party_id + } + + return +} + + +ad_proc -public pm::project::assign_remove_everyone { + {-project_item_id:required} +} { + Removes all users from a project + + @author Jade Rubick (jader@bread.com) + @creation-date 2004-06-11 + + @param project_item_id + + @return + + @error +} { + + db_dml remove_assignment { + DELETE FROM + pm_project_assignment + WHERE + project_id = :project_item_id + } + + return +} + + +ad_proc -public pm::project::assignee_filter_select { + {-status_id:required} +} { + Returns a list of lists, people who are assigned to projects with a + status of status_id. Used in the list-builder filters for + the projects list page. Cached 5 minutes. + + @author Jade Rubick (jader@bread.com) + @creation-date 2004-06-11 + + @param status_id + + @return + + @error +} { + return [util_memoize [list pm::project::assignee_filter_select_helper -status_id $status_id] 3] +} + + +ad_proc -private pm::project::assignee_filter_select_helper { + {-status_id:required} +} { + Returns a list of lists, people who are assigned projects with a + status of status_id. Used in the list-builder filters for + the projects list page. Cached 5 minutes. + + @author Jade Rubick (jader@bread.com) + @creation-date 2004-06-11 + + @param status_id + + @return + + @error +} { + return [db_list_of_lists get_people { + SELECT + distinct(first_names || ' ' || last_name) as fullname, + u.person_id + FROM + persons u, + pm_project_assignment a, + pm_projects p + WHERE + u.person_id = a.party_id and + p.project_id = a.project_id and + p.status_id = :status_id + ORDER BY + fullname + }] +}