예제 #1
0
파일: task.php 프로젝트: nemein/openpsa
 /**
  * This function is called from the DM2 schema
  */
 static function get_task_resources()
 {
     $resource_array = array();
     $view_data =& midcom_core_context::get()->get_custom_key('request_data');
     if (!array_key_exists('task', $view_data)) {
         return $resource_array;
     }
     $mc = org_openpsa_projects_task_resource_dba::new_collector('task', $view_data['task']->id);
     $mc->add_constraint('orgOpenpsaObtype', '=', ORG_OPENPSA_OBTYPE_PROJECTRESOURCE);
     $resources = $mc->get_values('person');
     foreach ($resources as $resource) {
         try {
             $person = org_openpsa_contacts_person_dba::get_cached($resource);
             $resource_array[$person->id] = $person->rname;
         } catch (midcom_error $e) {
         }
     }
     return $resource_array;
 }
예제 #2
0
파일: list.php 프로젝트: nemein/openpsa
 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();
 }