Index: openacs-4/packages/project-manager/lib/tasks-postgresql.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/project-manager/lib/tasks-postgresql.xql,v diff -u -r1.24 -r1.25 --- openacs-4/packages/project-manager/lib/tasks-postgresql.xql 29 May 2006 17:36:02 -0000 1.24 +++ openacs-4/packages/project-manager/lib/tasks-postgresql.xql 26 Jun 2006 09:31:12 -0000 1.25 @@ -28,110 +28,48 @@ t.actual_hours_worked, s.status_type, s.description as status_description, - r.is_lead_p, - r.is_observer_p, - t.priority, - t.party_id, + t.priority, + t.next_assignee_id, t.parent_id, - d.parent_task_id, - o.title as project_name + op.title as project_name FROM - (select tr.item_id, - ta.party_id, - ta.role_id, - tr.title, - tr.end_date, - tr.earliest_start, - tr.earliest_finish, - tr.latest_start, - tr.latest_finish, - tr.percent_complete, - tr.estimated_hours_work, - tr.estimated_hours_work_min, - tr.estimated_hours_work_max, - tr.actual_hours_worked, - tr.parent_id, - tr.revision_id, - tr.description, - tr.priority - from cr_items ci, - pm_tasks_revisionsx tr - LEFT JOIN - pm_task_assignment ta ON tr.item_id = ta.task_id - -- get only live revisions - where ci.live_revision = tr.revision_id - [template::list::page_where_clause -and -name "tasks" -key "tr.item_id"]) t - LEFT JOIN - pm_roles r - ON t.role_id = r.role_id - LEFT JOIN - pm_task_dependency d - ON t.item_id = d.task_id, - pm_tasks_active ti, + (select tr.* + from cr_items ci, pm_tasks_revisionsx tr + -- get only live revisions + where ci.live_revision = tr.task_revision_id + [template::list::page_where_clause -and -name "tasks" -key "ci.item_id"]) t, + pm_tasks_active ti, pm_task_status s, - cr_items cp, - acs_objects o - WHERE - t.parent_id = cp.item_id and + cr_items cp, + acs_objects op + where t.parent_id = cp.item_id and t.item_id = ti.task_id and ti.status = s.status_id - $observer_clause - and cp.live_revision = o.object_id - and exists (select 1 from acs_object_party_privilege_map ppm - where ppm.object_id = ti.task_id - and ppm.privilege = 'read' - and ppm.party_id = :user_id) - [template::list::filter_where_clauses -and -name tasks] + and cp.live_revision = op.object_id + $party_id_clause + $observer_pagination_clause [template::list::orderby_clause -name tasks -orderby] + - SELECT t.item_id as task_item_id + SELECT t.item_id as task_item_id FROM - (select tr.item_id, - ta.party_id, - ta.role_id, - tr.title, - tr.end_date, - tr.earliest_start, - tr.earliest_finish, - tr.latest_start, - tr.latest_finish, - tr.percent_complete, - tr.estimated_hours_work, - tr.estimated_hours_work_min, - tr.estimated_hours_work_max, - tr.actual_hours_worked, - tr.parent_id, - tr.revision_id, - tr.description, - tr.priority - from cr_items ci, pm_tasks_revisionsx tr - LEFT JOIN - pm_task_assignment ta ON tr.item_id = ta.task_id, pm_roles r - -- get only live revisions - where ci.live_revision = tr.revision_id - and ta.role_id = r.role_id - $observer_pagination_clause - and exists (select 1 from acs_object_party_privilege_map ppm - where ppm.object_id = tr.item_id - and ppm.privilege = 'read' - and ppm.party_id = :user_id) - ) t, - pm_tasks_active ti, - pm_task_status s, - cr_items cp, - acs_objects o - WHERE - t.parent_id = cp.item_id and - t.item_id = ti.task_id and - ti.status = s.status_id - and cp.live_revision = o.object_id + (select ci.parent_id, ci.item_id, tr.end_date, tr.priority, tr.earliest_start, tr.latest_start + from cr_items ci, pm_tasks_revisions tr + -- get only live revisions + where ci.live_revision = tr.task_revision_id +) t, pm_tasks_active ti, $observer_from_clause + cr_items cp, acs_objects op, pm_projects p + where t.parent_id = cp.item_id + and t.item_id = ti.task_id + and cp.live_revision = p.project_id + and p.project_id = op.object_id + $party_id_clause + $observer_pagination_clause [template::list::filter_where_clauses -and -name tasks] - group by t.item_id, t.title, t.description, status, t.end_date, - t.latest_finish, t.latest_start, t.earliest_start, t.priority, t.estimated_hours_work_max [template::list::orderby_clause -name tasks -orderby]