diff --git a/Admin/Install/Navigation.install.json b/Admin/Install/Navigation.install.json index a3cf55f..946f5a5 100755 --- a/Admin/Install/Navigation.install.json +++ b/Admin/Install/Navigation.install.json @@ -5,7 +5,7 @@ "type": 2, "subtype": 1, "name": "ProjectManagement", - "uri": "{/base}/projectmanagement/list?{?}", + "uri": "{/base}/projectmanagement/list", "target": "self", "icon": null, "order": 60, @@ -19,7 +19,7 @@ "type": 3, "subtype": 1, "name": "List", - "uri": "{/base}/projectmanagement/list?{?}", + "uri": "{/base}/projectmanagement/list", "target": "self", "icon": null, "order": 1, @@ -34,7 +34,7 @@ "type": 3, "subtype": 1, "name": "Create", - "uri": "{/base}/projectmanagement/create?{?}", + "uri": "{/base}/projectmanagement/create", "target": "self", "icon": null, "order": 5, diff --git a/Admin/Install/db.json b/Admin/Install/db.json index 8744eb1..26d3bd5 100755 --- a/Admin/Install/db.json +++ b/Admin/Install/db.json @@ -87,6 +87,13 @@ "null": false, "foreignTable": "account", "foreignKey": "account_id" + }, + "projectmanagement_project_unit": { + "name": "projectmanagement_project_unit", + "type": "INT", + "null": false, + "foreignTable": "unit", + "foreignKey": "unit_id" } } }, diff --git a/Controller/ApiController.php b/Controller/ApiController.php index 3a34457..a4788d3 100644 --- a/Controller/ApiController.php +++ b/Controller/ApiController.php @@ -84,21 +84,20 @@ final class ApiController extends Controller $project->progress = $request->getDataInt('progress') ?? 0; $project->budgetCosts->value = $request->getDataInt('budgetcosts') ?? 0; $project->actualCosts->value = $request->getDataInt('actualcosts') ?? 0; + $project->unit = $request->getDataInt('unit') ?? $this->app->unitId; - // @todo implement unit - //$project->unit = $this->app->unitId; - - if (!empty($uploadedFiles = $request->files)) { + // @todo implement media path based on id + if (!empty($request->files)) { $uploaded = $this->app->moduleManager->get('Media', 'Api')->uploadFiles( - [], - [], - $uploadedFiles, - $request->header->account, - __DIR__ . '/../../../Modules/Media/Files/Modules/ProjectManagement', - '/Modules/ProjectManagement', + names: [], + fileNames: [], + files: $request->files, + account: $request->header->account, + basePath: __DIR__ . '/../../../Modules/Media/Files/Modules/ProjectManagement', + virtualPath: '/Modules/ProjectManagement', ); - foreach ($uploaded as $media) { + foreach ($uploaded->sources as $media) { $project->files[] = $media; } } diff --git a/Models/Project.php b/Models/Project.php index be764d2..4b5dd43 100755 --- a/Models/Project.php +++ b/Models/Project.php @@ -164,7 +164,9 @@ class Project * @var Task[] * @since 1.0.0 */ - public $tasks = []; + public array $tasks = []; + + public int $unit = 0; /** * Constructor. diff --git a/Models/ProjectMapper.php b/Models/ProjectMapper.php index 945ac04..dafa367 100755 --- a/Models/ProjectMapper.php +++ b/Models/ProjectMapper.php @@ -56,6 +56,7 @@ final class ProjectMapper extends DataMapperFactory 'projectmanagement_project_progress_type' => ['name' => 'projectmanagement_project_progress_type', 'type' => 'int', 'internal' => 'progressType'], 'projectmanagement_project_created_by' => ['name' => 'projectmanagement_project_created_by', 'type' => 'int', 'internal' => 'createdBy', 'readonly' => true], 'projectmanagement_project_created_at' => ['name' => 'projectmanagement_project_created_at', 'type' => 'DateTimeImmutable', 'internal' => 'createdAt', 'readonly' => true], + 'projectmanagement_project_unit' => ['name' => 'projectmanagement_project_unit', 'type' => 'int', 'internal' => 'unit'], ]; /** diff --git a/Theme/Backend/projectmanagement-view.tpl.php b/Theme/Backend/projectmanagement-view.tpl.php index cf748a6..b6fd586 100644 --- a/Theme/Backend/projectmanagement-view.tpl.php +++ b/Theme/Backend/projectmanagement-view.tpl.php @@ -15,7 +15,7 @@ declare(strict_types=1); use Modules\ProjectManagement\Models\NullProject; use Modules\ProjectManagement\Models\ProgressType; -/** \Modules\ProjectManagement\Models\Project $project */ +/** @var \Modules\ProjectManagement\Models\Project $project */ $project = $this->data['project'] ?? new NullProject(); $isNew = $project->id === 0; @@ -72,7 +72,7 @@ echo $this->data['nav']->render(); ?>
- progressType !== ProgressType::MANUAL ? ' disabled' : ''; ?>> + progressType !== ProgressType::MANUAL ? ' disabled' : ''; ?>>
@@ -81,14 +81,14 @@ echo $this->data['nav']->render(); ?>
- +
- +
@@ -116,7 +116,7 @@ echo $this->data['nav']->render(); ?>
- getData('calendar')->render($project->getCalendar()); ?> + getData('calendar')->render($project->calendar); ?>