diff --git a/module/action/lang/de.php b/module/action/lang/de.php index 9399588742..971058d382 100644 --- a/module/action/lang/de.php +++ b/module/action/lang/de.php @@ -102,12 +102,14 @@ $lang->action->desc = new stdclass(); $lang->action->desc->common = '$date, $action von $actor.' . "\n"; $lang->action->desc->extra = '$date, $action als $extra von $actor.' . "\n"; $lang->action->desc->opened = '$date, erstellt von $actor .' . "\n"; +$lang->action->desc->openedbysystem = '$date, opened by system.' . "\n"; $lang->action->desc->created = '$date, erstellt von $actor .' . "\n"; $lang->action->desc->added = '$date, hinzugefügt durch $actor .' . "\n"; $lang->action->desc->changed = '$date, bearbeitet von $actor .' . "\n"; $lang->action->desc->edited = '$date, bearbeitet von $actor .' . "\n"; $lang->action->desc->assigned = '$date, $actor zugewisen an $extra.' . "\n"; $lang->action->desc->closed = '$date, geschlossen von $actor .' . "\n"; +$lang->action->desc->closedbysystem = '$date, closed by system.' . "\n"; $lang->action->desc->deleted = '$date, gelöscht von $actor .' . "\n"; $lang->action->desc->deletedfile = '$date, $actor löschte $extra.' . "\n"; $lang->action->desc->editfile = '$date, $actor bearbeitete $extra.' . "\n"; diff --git a/module/action/lang/en.php b/module/action/lang/en.php index 3a0b08bb82..519790ef9c 100755 --- a/module/action/lang/en.php +++ b/module/action/lang/en.php @@ -102,12 +102,14 @@ $lang->action->desc = new stdclass(); $lang->action->desc->common = '$date, $action by $actor.' . "\n"; $lang->action->desc->extra = '$date, $action as $extra by $actor.' . "\n"; $lang->action->desc->opened = '$date, created by $actor .' . "\n"; +$lang->action->desc->openedbysystem = '$date, opened by system.' . "\n"; $lang->action->desc->created = '$date, created by $actor .' . "\n"; $lang->action->desc->added = '$date, added by $actor .' . "\n"; $lang->action->desc->changed = '$date, changed by $actor .' . "\n"; $lang->action->desc->edited = '$date, edited by $actor .' . "\n"; $lang->action->desc->assigned = '$date, $actor assigned to $extra.' . "\n"; $lang->action->desc->closed = '$date, closed by $actor .' . "\n"; +$lang->action->desc->closedbysystem = '$date, closed by system.' . "\n"; $lang->action->desc->deleted = '$date, deleted by $actor .' . "\n"; $lang->action->desc->deletedfile = '$date, $actor deleted $extra.' . "\n"; $lang->action->desc->editfile = '$date, $actor edited $extra.' . "\n"; diff --git a/module/action/lang/fr.php b/module/action/lang/fr.php index e5232f9038..efcc048ac2 100644 --- a/module/action/lang/fr.php +++ b/module/action/lang/fr.php @@ -102,12 +102,14 @@ $lang->action->desc = new stdclass(); $lang->action->desc->common = '$date, $action par $actor.' . "\n"; $lang->action->desc->extra = '$date, $action en tant que $extra par $actor.' . "\n"; $lang->action->desc->opened = '$date, initié par $actor .' . "\n"; +$lang->action->desc->openedbysystem = '$date, opened by system.' . "\n"; $lang->action->desc->created = '$date, créé par $actor .' . "\n"; $lang->action->desc->added = '$date, ajouter par $actor .' . "\n"; $lang->action->desc->changed = '$date, modifié par $actor .' . "\n"; $lang->action->desc->edited = '$date, édité par $actor .' . "\n"; $lang->action->desc->assigned = '$date, $actor affecté à $extra.' . "\n"; $lang->action->desc->closed = '$date, fermé par $actor .' . "\n"; +$lang->action->desc->closedbysystem = '$date, closed by system.' . "\n"; $lang->action->desc->deleted = '$date, supprimé par $actor .' . "\n"; $lang->action->desc->deletedfile = '$date, $actor a supprimé $extra.' . "\n"; $lang->action->desc->editfile = '$date, $actor a édité $extra.' . "\n"; diff --git a/module/action/lang/vi.php b/module/action/lang/vi.php index 04b0d66cef..7a3e219fb4 100644 --- a/module/action/lang/vi.php +++ b/module/action/lang/vi.php @@ -102,12 +102,14 @@ $lang->action->desc = new stdclass(); $lang->action->desc->common = '$date, $action bởi $actor.' . "\n"; $lang->action->desc->extra = '$date, $action như $extra bởi $actor.' . "\n"; $lang->action->desc->opened = '$date, được tạo bởi $actor .' . "\n"; +$lang->action->desc->openedbysystem = '$date, opened by system.' . "\n"; $lang->action->desc->created = '$date, được tạo bởi $actor .' . "\n"; $lang->action->desc->added = '$date, thêm bởi $actor .' . "\n"; $lang->action->desc->changed = '$date, changed by $actor .' . "\n"; $lang->action->desc->edited = '$date, edited by $actor .' . "\n"; $lang->action->desc->assigned = '$date, $actor assigned to $extra.' . "\n"; $lang->action->desc->closed = '$date, được đóng bởi $actor .' . "\n"; +$lang->action->desc->closedbysystem = '$date, closed by system.' . "\n"; $lang->action->desc->deleted = '$date, được xóa bởi $actor .' . "\n"; $lang->action->desc->deletedfile = '$date, $actor đã xóa $extra.' . "\n"; $lang->action->desc->editfile = '$date, $actor đã sửa $extra.' . "\n"; diff --git a/module/action/lang/zh-cn.php b/module/action/lang/zh-cn.php index c7973c0689..214022fd39 100755 --- a/module/action/lang/zh-cn.php +++ b/module/action/lang/zh-cn.php @@ -102,12 +102,14 @@ $lang->action->desc = new stdclass(); $lang->action->desc->common = '$date, $action by $actor。' . "\n"; $lang->action->desc->extra = '$date, $action as $extra by $actor。' . "\n"; $lang->action->desc->opened = '$date, 由 $actor 创建。' . "\n"; +$lang->action->desc->openedbysystem = '$date, 由系统创建。' . "\n"; $lang->action->desc->created = '$date, 由 $actor 创建。' . "\n"; $lang->action->desc->added = '$date, 由 $actor 添加。' . "\n"; $lang->action->desc->changed = '$date, 由 $actor 变更。' . "\n"; $lang->action->desc->edited = '$date, 由 $actor 编辑。' . "\n"; $lang->action->desc->assigned = '$date, 由 $actor 指派给 $extra。' . "\n"; $lang->action->desc->closed = '$date, 由 $actor 关闭。' . "\n"; +$lang->action->desc->closedbysystem = '$date, 由系统关闭。' . "\n"; $lang->action->desc->deleted = '$date, 由 $actor 删除。' . "\n"; $lang->action->desc->deletedfile = '$date, 由 $actor 删除了附件:$extra。' . "\n"; $lang->action->desc->editfile = '$date, 由 $actor 编辑了附件:$extra。' . "\n"; diff --git a/module/upgrade/model.php b/module/upgrade/model.php index 443afa116b..aa1eb8a8e4 100644 --- a/module/upgrade/model.php +++ b/module/upgrade/model.php @@ -4024,6 +4024,8 @@ class upgradeModel extends model ->set('`order`')->eq($programID * 5) ->where('id')->eq($programID) ->exec(); + + $this->loadModel('action')->create('program', $programID, 'openedbysystem'); } else { @@ -4065,6 +4067,8 @@ class upgradeModel extends model ->set('`order`')->eq($projectID * 5) ->where('id')->eq($projectID) ->exec(); + + $this->loadModel('action')->create('project', $projectID, 'openedbysystem'); } else { @@ -4114,6 +4118,26 @@ class upgradeModel extends model $this->dao->insert(TABLE_PROJECTSTORY)->data($projectStory)->exec(); } + /* Compute project date. */ + $linkedSprintIdList = $this->dao->select('id')->from(TABLE_PROJECT)->where('project')->eq($projectID)->fetchPairs(); + $linkedSprintIdList += $sprintIdList; + $undoneSprints = $this->dao->select("count('*') as count")->from(TABLE_PROJECT)->where('id')->in($linkedSprintIdList)->andWhere('status')->ne('closed')->fetch('count'); + $minRealBegan = $this->dao->select('date')->from(TABLE_ACTION)->where('objectID')->in($linkedSprintIdList)->andWhere('objectType')->eq('project')->andWhere('action')->eq('started')->orderBy('date_asc')->fetch('date'); + $maxRealEnd = $this->dao->select('date')->from(TABLE_ACTION)->where('objectID')->in($linkedSprintIdList)->andWhere('objectType')->eq('project')->andWhere('action')->eq('closed')->orderBy('date_desc')->fetch('date'); + + $data = new stdClass(); + $data->realBegan = $minRealBegan ? substr($minRealBegan, 0, 10) : '0000-00-00'; + if($maxRealEnd and !$undoneSprints) + { + $data->realEnd = substr($maxRealEnd, 0, 10); + $data->closedDate = $maxRealEnd; + $data->status = 'closed'; + } + + $this->dao->update(TABLE_PROJECT)->data($data)->where('id')->eq($projectID)->exec(); + + if($maxRealEnd and !$undoneSprints) $this->loadModel('action')->create('project', $projectID, 'closedbysystem'); + /* Compute product acl. */ $products = $this->dao->select('id,program,acl')->from(TABLE_PRODUCT)->where('id')->in($productIdList)->fetchAll(); foreach($products as $product)