Index: openacs-4/contrib/packages/project-manager/sql/postgresql/project-manager-drop.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/project-manager/sql/postgresql/Attic/project-manager-drop.sql,v diff -u -r1.5 -r1.6 --- openacs-4/contrib/packages/project-manager/sql/postgresql/project-manager-drop.sql 7 Aug 2003 23:08:45 -0000 1.5 +++ openacs-4/contrib/packages/project-manager/sql/postgresql/project-manager-drop.sql 13 Aug 2003 18:56:29 -0000 1.6 @@ -14,7 +14,13 @@ drop table pm_task_constraint_types cascade; drop table pm_task_constraints cascade; drop sequence pm_task_constraint_seq; +drop sequence pm_tasks_number_seq; +drop table pm_task_default_roles; +drop table pm_task_role_map; +drop table pm_task_roles; +drop sequence pm_task_role_seq; + create function inline_0 () returns integer as ' declare @@ -117,8 +123,12 @@ select drop_package('pm_project'); --drop table +drop table pm_project_default_roles; +drop table pm_project_role_map; +drop table pm_project_roles; drop table pm_projects cascade; +drop sequence pm_project_role_seq; select content_type__drop_type('pm_task', 't', 'f'); Index: openacs-4/contrib/packages/project-manager/sql/postgresql/project-manager-functions-create.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/project-manager/sql/postgresql/Attic/project-manager-functions-create.sql,v diff -u -r1.5 -r1.6 --- openacs-4/contrib/packages/project-manager/sql/postgresql/project-manager-functions-create.sql 6 Aug 2003 20:22:18 -0000 1.5 +++ openacs-4/contrib/packages/project-manager/sql/postgresql/project-manager-functions-create.sql 13 Aug 2003 18:56:29 -0000 1.6 @@ -21,7 +21,7 @@ p_pm_project_id alias for $1; v_pm_project_name pm_projects.project_name%TYPE; begin - select project_name into v_pm_project_name + select project_name || ''_'' || p_pm_project_id into v_pm_project_name from pm_projects where project_id = p_pm_project_id; return v_pm_project_name; @@ -90,9 +90,6 @@ v_count integer; begin - -- this function is not complete yet. It makes duplicates - - -- raise notice ''in get root folder p_create_if_not_present_p = %'',p_create_if_not_present_p; select count(*) into v_count @@ -191,7 +188,7 @@ -- raise notice ''v_parent_id (%) p_parent_id (%)'', v_parent_id, p_parent_id; v_item_id := content_item__new ( - p_project_name, -- name + v_id::varchar, -- name v_parent_id, -- parent_id v_id, -- item_id null, -- locale @@ -225,12 +222,12 @@ PERFORM content_item__set_live_revision (v_revision_id); insert into pm_projects ( - project_id, project_name, project_code, + project_id, project_code, goal, deadline_scheduling, planned_start_date, planned_end_date, actual_start_date, actual_end_date, ongoing_p) values ( - v_revision_id, p_project_name, p_project_code, + v_revision_id, p_project_code, p_goal, p_deadline_scheduling, p_planned_start_date, p_planned_end_date, p_actual_start_date, p_actual_end_date, p_ongoing_p); @@ -340,12 +337,12 @@ PERFORM content_item__set_live_revision (v_revision_id); insert into pm_projects ( - project_id, project_name, project_code, + project_id, project_code, goal, deadline_scheduling, planned_start_date, planned_end_date, actual_start_date, actual_end_date, ongoing_p) values ( - v_revision_id, p_project_name, p_project_code, + v_revision_id, p_project_code, p_goal, p_deadline_scheduling, p_planned_start_date, p_planned_end_date, p_actual_start_date, p_actual_end_date, p_ongoing_p); @@ -405,10 +402,9 @@ p_pm_task_id alias for $1; v_pm_task_name pm_tasks.title%TYPE; begin - select t.title into v_pm_project_name - from pm_tasks_revisionsx t, cr_items i - where t.item_id = p_pm_task_id and - i.live_revision = t.item_id; + select i.name || ''_'' || p_pm_task_id into v_pm_project_name + from cr_items i + where i.item_id = p_pm_task_id; return v_pm_task_name; end; ' language 'plpgsql'; @@ -461,7 +457,7 @@ -- create the task_number v_item_id := content_item__new ( - p_title, -- name + v_id::varchar, -- name p_project_id, -- parent_id v_id, -- item_id null, -- locale Index: openacs-4/contrib/packages/project-manager/sql/postgresql/project-manager-table-create.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/project-manager/sql/postgresql/Attic/project-manager-table-create.sql,v diff -u -r1.5 -r1.6 --- openacs-4/contrib/packages/project-manager/sql/postgresql/project-manager-table-create.sql 7 Aug 2003 23:08:45 -0000 1.5 +++ openacs-4/contrib/packages/project-manager/sql/postgresql/project-manager-table-create.sql 13 Aug 2003 18:56:29 -0000 1.6 @@ -19,9 +19,6 @@ references cr_revisions on delete cascade constraint pm_projects_id_pk primary key, - project_name varchar(255) - constraint pm_projects_name_nn - not null, -- a user-specified project_code varchar(255), goal varchar(4000), @@ -53,10 +50,71 @@ ); + +create table pm_project_roles ( + role_id integer + constraint pm_project_role_id_pk + primary key, + one_line varchar(100) + constraint pm_project_role_one_line_uq + unique, + description varchar(2000), + sort_order integer +); + + +comment on table pm_project_roles is ' + Roles represent the way in which a party participates in a project. For example, + they could be a manager, or client, or participant.. The sort order determines + what order it is displayed in. +'; + +insert into pm_project_roles (role_id, one_line, description, sort_order) values ('1','Participant','Team members who are responsible for the completion of the project','10'); +insert into pm_project_roles (role_id, one_line, description, sort_order) values ('2','Manager','Manages the team to complete the project on time and on budget.','20'); + + +create sequence pm_project_role_seq start 3; + + +create table pm_project_role_map ( + project_id integer + constraint pm_project_role_map_project_fk + references pm_projects + on delete cascade, + role_id integer + constraint pm_project_role_map_role_fk + references pm_project_roles, + party_id integer + constraint pm_project_role_map_user_id_fk + references parties(party_id) + on delete cascade +); + +comment on table pm_project_role_map is ' + Maps who is a part of what project, and in what capacity +'; + + +create table pm_project_default_roles ( + role_id integer + constraint pm_proj_default_role_fk + references pm_project_roles + on delete cascade, + party_id integer + constraint pm_proj_default_role_party_fk + references parties(party_id) + on delete cascade +); + +comment on table pm_project_role_map is ' + Specifies what role a person is a part of by default, for projects +'; + -- we create two tables to store task information -- the information that we keep revisions on is in the -- pm_task_revisions table, the rest is in pm_task +create sequence pm_tasks_number_seq; create table pm_tasks ( task_id integer @@ -170,3 +228,74 @@ constraint pm_tasks_const_type references pm_task_constraint_types ); + + +-- assignments + + +create table pm_task_roles ( + role_id integer + constraint pm_task_role_id_pk + primary key, + one_line varchar(100) + constraint pm_task_role_one_line_uq + unique, + description varchar(2000), + is_observer_p char(1) default 'f' + constraint pm_task_role_ck + check (is_observer_p in ('t','f')), + sort_order integer +); + +comment on table pm_task_roles is ' + Roles represent the way in which a role participates in a task. For example, + they could be an assignee, or a watcher. They can be divided up the same way + the organization is broken up, by sales and R and D for example. These terms + can be made up to fit the conditions of the local company. Defaults are set + up by another table, pm_task_default_role + The is_observer_p specifies + whether they are directly responsible for the task. People not directly + responsible will not get email notifications reminding them that tasks are + overdue, for example. +'; + +insert into pm_task_roles (role_id, one_line, description, is_observer_p, sort_order) values ('1','Manager','This person oversees someone responsible for completion of the task','t','10'); +insert into pm_task_roles (role_id, one_line, description, is_observer_p, sort_order) values ('2','Assignee','This person is directly responsible for completion of the task','f','20'); +insert into pm_task_roles (role_id, one_line, description, is_observer_p, sort_order) values ('3','Watcher','This person is interested in developments of a ticket, but not directly responsible for it.','t','30'); + + +create sequence pm_task_role_seq start 4; + + +create table pm_task_role_map ( + task_id integer + constraint pm_task_role_map_task_fk + references pm_tasks + on delete cascade, + role_id integer + constraint pm_task_roles_fk + references pm_task_roles, + party_id integer + constraint pm_task_role_map_user_id_fk + references parties(party_id) + on delete cascade +); + +comment on table pm_task_role_map is ' + Maps who is a part of what task, and in what capacity +'; + +create table pm_task_default_roles ( + role_id integer + constraint pm_task_default_role_fk + references pm_task_roles + on delete cascade, + party_id integer + constraint pm_task_default_role_party_fk + references parties(party_id) + on delete cascade +); + +comment on table pm_task_role_map is ' + Specifies what role a person is a part of by default, for tasks +'; Index: openacs-4/contrib/packages/project-manager/www/add-edit-postgresql.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/project-manager/www/Attic/add-edit-postgresql.xql,v diff -u -r1.3 -r1.4 --- openacs-4/contrib/packages/project-manager/www/add-edit-postgresql.xql 7 Aug 2003 23:08:45 -0000 1.3 +++ openacs-4/contrib/packages/project-manager/www/add-edit-postgresql.xql 13 Aug 2003 18:56:29 -0000 1.4 @@ -52,7 +52,7 @@ item_id, parent_id, project_id, - project_name, + title as project_name, project_code, goal, description, Index: openacs-4/contrib/packages/project-manager/www/index-postgresql.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/project-manager/www/Attic/index-postgresql.xql,v diff -u -r1.2 -r1.3 --- openacs-4/contrib/packages/project-manager/www/index-postgresql.xql 30 Jul 2003 21:25:07 -0000 1.2 +++ openacs-4/contrib/packages/project-manager/www/index-postgresql.xql 13 Aug 2003 18:56:29 -0000 1.3 @@ -10,7 +10,7 @@ repeat(:indent_pattern, (tree_level(p.tree_sortkey) - 5)* :indent_factor) as indent, p.parent_id as folder_id, p.object_type as content_type, - p.project_name, + p.title as project_name, p.project_code, to_char(p.planned_start_date, 'YYYY MM DD') as planned_start_date, to_char(p.planned_end_date, 'YYYY MM DD') as planned_end_date, Index: openacs-4/contrib/packages/project-manager/www/one-postgresql.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/project-manager/www/Attic/one-postgresql.xql,v diff -u -r1.5 -r1.6 --- openacs-4/contrib/packages/project-manager/www/one-postgresql.xql 7 Aug 2003 23:08:45 -0000 1.5 +++ openacs-4/contrib/packages/project-manager/www/one-postgresql.xql 13 Aug 2003 18:56:29 -0000 1.6 @@ -28,7 +28,7 @@ SELECT p.item_id, p.project_id, - p.project_name, + p.title as project_name, p.project_code, p.goal, p.description, @@ -51,7 +51,7 @@ SELECT p.item_id, p.project_id, - p.project_name, + p.title as project_name, p.project_code, p.goal, p.description, Index: openacs-4/contrib/packages/project-manager/www/task-constraint-add-edit.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/project-manager/www/Attic/task-constraint-add-edit.tcl,v diff -u -r1.2 -r1.3 --- openacs-4/contrib/packages/project-manager/www/task-constraint-add-edit.tcl 8 Aug 2003 22:24:14 -0000 1.2 +++ openacs-4/contrib/packages/project-manager/www/task-constraint-add-edit.tcl 13 Aug 2003 18:56:29 -0000 1.3 @@ -40,6 +40,8 @@ set task_revisions [split $task_revisions_list " "] } +# get a parent project +set project_item_id [db_string get_parent_project { }] # terminology set project_term [parameter::get -parameter "ProjectName" -default "Project"] @@ -53,16 +55,10 @@ # permissions set title "Add $task_term_lower constraints" -set context_bar [ad_context_bar] -# set context_bar [ad_context_bar [list "one?item_id=$project_item_id&project_id=$project_id" "One $project_term"] "New $task_term"] +set context_bar [ad_context_bar [list "one?item_id=$project_item_id" "One $project_term"] "New $task_term constraint"] permission::require_permission -party_id $user_id -object_id $package_id -privilege create - -ns_log Notice "TaskRev: $task_revisions" - -set project_item_id [db_string get_parent_project { }] - ad_form -name add_edit -form { constraint_id:key(pm_task_constraint_seq)