diff --git a/module/project/config.php b/module/project/config.php index 79552b2742..f5db59ce6f 100644 --- a/module/project/config.php +++ b/module/project/config.php @@ -11,6 +11,11 @@ $config->project->edit = new stdclass(); $config->project->create->requiredFields = 'name,code,begin,end'; $config->project->edit->requiredFields = 'name,code,begin,end'; +$config->project->customBatchEditFields = 'days,type,teamname,status,PO,QD,PM,RD'; + +$config->project->custom = new stdclass(); +$config->project->custom->batchedit = 'days,status,PM'; + $config->project->editor = new stdclass(); $config->project->editor->create = array('id' => 'desc', 'tools' => 'simpleTools'); $config->project->editor->edit = array('id' => 'desc', 'tools' => 'simpleTools'); diff --git a/module/project/control.php b/module/project/control.php index 69db284b42..191c73bc3d 100644 --- a/module/project/control.php +++ b/module/project/control.php @@ -968,11 +968,19 @@ class project extends control $projectIDList = $this->post->projectIDList ? $this->post->projectIDList : die(js::locate($this->session->projectList, 'parent')); + /* Set custom. */ + foreach(explode(',', $this->config->project->customBatchEditFields) as $field) $customFields[$field] = $this->lang->project->$field; + $this->view->customFields = $customFields; + $this->view->showFields = $this->config->project->custom->batchedit; + $this->view->title = $this->lang->project->batchEdit; $this->view->position[] = $this->lang->project->batchEdit; $this->view->projectIDList = $projectIDList; $this->view->projects = $this->dao->select('*')->from(TABLE_PROJECT)->where('id')->in($projectIDList)->fetchAll('id'); $this->view->pmUsers = $this->loadModel('user')->getPairs('noclosed,nodeleted,pmfirst'); + $this->view->poUsers = $this->user->getPairs('noclosed,nodeleted,pofirst'); + $this->view->qdUsers = $this->user->getPairs('noclosed,nodeleted,qdfirst'); + $this->view->rdUsers = $this->user->getPairs('noclosed,nodeleted,devfirst'); $this->display(); } diff --git a/module/project/model.php b/module/project/model.php index 6062eb0a5e..134637f7ac 100644 --- a/module/project/model.php +++ b/module/project/model.php @@ -343,9 +343,14 @@ class projectModel extends model $projects[$projectID]->name = $this->post->names[$projectID]; $projects[$projectID]->code = $this->post->codes[$projectID]; $projects[$projectID]->PM = $this->post->PMs[$projectID]; + $projects[$projectID]->PO = $this->post->POs[$projectID]; + $projects[$projectID]->QD = $this->post->QDs[$projectID]; + $projects[$projectID]->RD = $this->post->RDs[$projectID]; + $projects[$projectID]->type = $this->post->types[$projectID]; $projects[$projectID]->status = $this->post->statuses[$projectID]; $projects[$projectID]->begin = $this->post->begins[$projectID]; $projects[$projectID]->end = $this->post->ends[$projectID]; + $projects[$projectID]->team = $this->post->teams[$projectID]; $projects[$projectID]->days = $this->post->dayses[$projectID]; $projects[$projectID]->order = $this->post->orders[$projectID]; } @@ -367,16 +372,22 @@ class projectModel extends model ->limit(1) ->exec(); - if($project->PM and !isset($team[$project->PM])) + foreach($project as $fieldName => $value) { - $member = new stdClass(); - $member->project = (int)$projectID; - $member->account = $project->PM; - $member->join = helper::today(); - $member->role = $this->lang->project->PM; - $member->days = 0; - $member->hours = $this->config->project->defaultWorkhours; - $this->dao->insert(TABLE_TEAM)->data($member)->exec(); + if($fieldName == 'PO' or $fieldName == 'PM' or $fieldName == 'QD' or $fieldName == 'RD' ) + { + if(!empty($value) and !isset($team[$value])) + { + $member = new stdClass(); + $member->project = (int)$projectID; + $member->account = $value; + $member->join = helper::today(); + $member->role = $this->lang->project->$fieldName; + $member->days = 0; + $member->hours = $this->config->project->defaultWorkhours; + $this->dao->insert(TABLE_TEAM)->data($member)->exec(); + } + } } if(dao::isError()) die(js::error('project#' . $projectID . dao::getError(true))); diff --git a/module/project/view/batchedit.html.php b/module/project/view/batchedit.html.php index 2ba82f2c27..ffc747cb30 100755 --- a/module/project/view/batchedit.html.php +++ b/module/project/view/batchedit.html.php @@ -15,20 +15,36 @@