public function _handler_list_user($handler_id, array $args, array &$data) { midcom::get('auth')->require_valid_user(); $this->_request_data['view'] = 'grid'; $this->_request_data['view_identifier'] = 'my_tasks'; $siteconfig = org_openpsa_core_siteconfig::get_instance(); $this->_request_data['contacts_url'] = $siteconfig->get_node_full_url('org.openpsa.contacts'); //get possible priorities from schema $this->_get_priorities(); $this->_provider = new org_openpsa_widgets_grid_provider($this, 'local'); $resource_statuses = array(org_openpsa_projects_task_status_dba::PROPOSED, org_openpsa_projects_task_status_dba::ACCEPTED, org_openpsa_projects_task_status_dba::STARTED, org_openpsa_projects_task_status_dba::REOPENED, org_openpsa_projects_task_status_dba::COMPLETED); $task_statuses = array(org_openpsa_projects_task_status_dba::PROPOSED, org_openpsa_projects_task_status_dba::DECLINED, org_openpsa_projects_task_status_dba::COMPLETED, org_openpsa_projects_task_status_dba::ONHOLD); $mc = org_openpsa_projects_task_resource_dba::new_collector('person', midcom_connection::get_user()); $mc->add_constraint('orgOpenpsaObtype', '=', ORG_OPENPSA_OBTYPE_PROJECTRESOURCE); $mc->add_constraint('task.orgOpenpsaObtype', '=', ORG_OPENPSA_OBTYPE_TASK); $mc->add_constraint('task.status', 'IN', $resource_statuses); $resource_tasks = $mc->get_values('task'); $this->_qb = org_openpsa_projects_task_dba::new_query_builder(); $this->_qb->add_constraint('orgOpenpsaObtype', '=', ORG_OPENPSA_OBTYPE_TASK); $this->_qb->begin_group('OR'); if (!empty($resource_tasks)) { //Get active tasks where user is a resource $this->_qb->add_constraint('id', 'IN', $resource_tasks); } //Get relevant tasks where user is manager $this->_qb->begin_group('AND'); $this->_qb->add_constraint('manager', '=', midcom_connection::get_user()); $this->_qb->add_constraint('status', 'IN', $task_statuses); $this->_qb->end_group(); $this->_qb->end_group(); org_openpsa_widgets_grid::add_head_elements(); }