diff --git a/Project/PROJECT.md b/Project/PROJECT.md
index 5c66810..44b4ea1 100644
--- a/Project/PROJECT.md
+++ b/Project/PROJECT.md
@@ -66,7 +66,7 @@ The estimated annual costs in the milestones are based on the total annual costs
| Deadline | Done | Task |
| ---------- | ---- | ------------------------------------------------------------ |
-| 2021.08.27 | | **Define scope**
Which modules should be developed first
Which features must be part of the modules at the start
What is the expected timeline for the different modules |
+| 2022.08.27 | | **Define scope**
Which modules should be developed first
Which features must be part of the modules at the start
What is the expected timeline for the different modules |
| | | **Navigation**
Allow to hide navigation elements even if the module is installed.
Also disable routing for front end. This way only the functionality is available (API). |
| | | **Customer Management**
Names
Address
Contact elements
Custom fields
Contract import from CRM system (maintenance contract)? (SD specific)
Add note types (e.g. phone, email, meeting, ...) |
| | | **Job**
Create jobs
Manage jobs
Create a job which runs exchange scripts |
@@ -119,6 +119,7 @@ Todos/tasks which are not important enough to be part of the milestones.
| Priority | Done | Task |
| -------- | ---- | ------------------------------------------------------------ |
| high | | **Email**
Continue implementation of email sending and receiving. Especially receiving needs much more work. |
+| high | | **Media**
Allow to overwrite files on upload. |
| high | | **Search**
Implement a tag search hook which finds content based on tags
Implement module specific search (e.g. :tasks title ...)
Implement global search hook (every module performs a search based on the search)
Create a api search filter which allows to search in a specific module only (e.g. in the shop app only search the shop, in the QA app only search in QA) |
| high | | **UI input**
In the AdvancedInput, implement predefined values (e.g. predefined/default tags)
In the AdvancedInput, implement mandatory predefined values (e.g. tags which cannot be deleted)
Implement AdvancedSelect (with auto filtering, none-element, multi-select, default-selects, must-have selects)
 |
| high | | **UI change**
Find a way to load a different page after a successful form result (e.g. reload account creation page) |
@@ -134,7 +135,6 @@ Todos/tasks which are not important enough to be part of the milestones.
| medium | | **Unit tests**
All Modules/\*\*/Models/\*, Modules/Controller/\* |
| medium | | **Modules**
Find a way to handle optional modules (e.g. comment module in the news module) in the past the Mapper was modified (comments were removed) if the comment module was installed. Somehow this is no longer available but maybe another solution could be a different Mapper which is replaced if the comment module is installed. But instead of replacing a complete file, a diff should be generated between the files and the ADDED lines should be merged. How to handle uninstall because here it doesn't work? I would need to know exactly what to remove. |
| medium | | **DataMapper**
In the DataMapper implement iterable fetch. Currently all models are returned in one go, additionally an iterator should be returned for iterable access in case of MANY results (e.g. Exchange module) |
-| low | | **Unit tests**
[phpOMS] Graph->findAllReachableNodesDFS
[phpOMS] Graph->getAllPathsBetweenNodes
[phpOMS] Graph->countAllPathsBetweenNodes
[phpOMS] Graph->longestPathBetweenNodes
[phpOMS] Graph->shortestPathBetweenNodes
[phpOMS] Graph->isConnected
[phpOMS] Node->getEdgeByNeighbor |
| low | | **ER diagrams**
Checklist
Contact
DatabaseEditor
Draw
Messages
Monitoring
Shop |
| low | | **Code cleanup**
Many modules still have unnecessary getters/setters. This should be replaced with puplic members. Check the Developer-Guide on when to use getters/setters. |
| low | | **UI tabs**
[Template] Fix tab indices's. On many pages the tab indices's are broken (tabs, table/list, links, forms) |
@@ -208,12 +208,15 @@ Todos/tasks which are not important enough to be part of the milestones.
| low | | **DataMappers**
Use `Mapper::TABLE` or string names in the mappers. At the moment both can be found. This is not concise. The `Mapper::TABLE` name is preferred in case of name changes. |
| low | | **Email**
Find a way to localize some hard coded email content. Pass localization array? Manually overwrite email body if a hard coded/default message should be returned (maybe by checking for a flag/status code)? |
| low | | **Temp directory**
Consider to create a temp directory in the main directory (Orange-Management) which can be used by all modules etc. Alternatively create this temp directory in `Modules/Media/Files` |
+| low | | **Code Coverage**
Adding `pathCoverage="true"` to the PHPUnit `.xml` file for path and branch coverage causes a memory overflow. Fix it. |
#### Archived
| Priority | Done | Task |
| -------- | ---------- | ------------------------------------------------------------ |
+| high | | **Media**
Create an additional request parameter called filename which can be set to name the file differently than the media database entry. This will make everything long term much easier.
Consider to create non-random file names e.g. `MyFileName_1` if the file already exists, otherwise still create random file names. |
| low | 2021.10.02 | **Unit tests**
[phpOMS] ModuleManager->installApplications
[phpOMS] StatusAbstract->installRoutes
[phpOMS] StatusAbstract->installHooks
[phpOMS] StatusAbstract->activateHooks
[phpOMS] StatusAbstract->deactivateHooks
[phpOMS] StatusAbstract->uninstallHooks
[phpOMS] ModuleAbstract->createModels
[phpOMS] ModuleAbstract->updateModel
[phpOMS] ModuleAbstract->createModel
[phpOMS] ModuleAbstract->getLocalization
[phpOMS] InstallerAbstract->createTables
[phpOMS] InstallerAbstract->reInit
[Model] CoreSettings->create |
+| low | 2021.10.09 | **Unit tests**
[phpOMS] Graph->findAllReachableNodesDFS
[phpOMS] Graph->getAllPathsBetweenNodes
[phpOMS] Graph->countAllPathsBetweenNodes
[phpOMS] Graph->longestPathBetweenNodes
[phpOMS] Graph->shortestPathBetweenNodes
[phpOMS] Graph->isConnected
[phpOMS] Node->getEdgeByNeighbor |
| low | 2021.10.02 | **SettingMapper & CoreSettings**
Consider to merge? Maybe only use the mapper, maybe let the CoreSettings use the `Setting` and `SettingMapper` |
## Features
@@ -479,12 +482,14 @@ class TestMapper extends DataMapperFactory
* Improved settings handling by using `Setting` and `SettingMapper` in the `CoreSettings` file
-#### Bug fixes
+##### Media
-*
+* It is possible to define the media title separately from the file name.
+
+#### Bug fixes
#### Other
##### Tests
-* Added various tests (approx. 2% additional line coverage).
+* Added various tests. The total code coverage is at approx. 84%