From d0497f72cc27af0c579098e53b9cf3731a9a2515 Mon Sep 17 00:00:00 2001
From: "j.goderbauer" <j.goderbauer@adito.de>
Date: Fri, 18 Jan 2019 17:41:41 +0100
Subject: [PATCH] =?UTF-8?q?[Projekt:=20Entwicklung=20-=20Neon][TicketNr.:?=
 =?UTF-8?q?=201030169][Einf=C3=BChrung=20von=20Aktivit=C3=A4ten=20und=20Ta?=
 =?UTF-8?q?sk]?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 aliasDefinition/Data_alias/Data_alias.aod     | 247 +++++++++++++++++-
 .../_____SYSTEM_APPLICATION_NEON.aod          |   1 +
 entity/Task_entity/Task_entity.aod            | 175 +++++++++++++
 entity/Task_entity/documentation.adoc         |   1 +
 .../priority/possibleItemsProcess.js          |   7 +
 .../status/possibleItemsProcess.js            |   7 +
 .../entityfields/type/possibleItemsProcess.js |   7 +
 .../_____LANGUAGE_EXTRA.aod                   |  33 +++
 .../_____LANGUAGE_de/_____LANGUAGE_de.aod     |  44 ++++
 .../_____LANGUAGE_en/_____LANGUAGE_en.aod     |  33 +++
 neonContext/Task_context/Task_context.aod     |  16 ++
 neonContext/Task_context/documentation.adoc   |   3 +
 neonView/TaskFilter_view/TaskFilter_view.aod  |  50 ++++
 others/db_changes/data/example_task/base.xml  |  32 +++
 others/db_changes/masterChangelog.xml         |   2 +
 others/db_changes/struct/create_task.xml      |  32 +++
 process/Keyword_lib/process.js                |  26 ++
 17 files changed, 714 insertions(+), 2 deletions(-)
 create mode 100644 entity/Task_entity/Task_entity.aod
 create mode 100644 entity/Task_entity/documentation.adoc
 create mode 100644 entity/Task_entity/entityfields/priority/possibleItemsProcess.js
 create mode 100644 entity/Task_entity/entityfields/status/possibleItemsProcess.js
 create mode 100644 entity/Task_entity/entityfields/type/possibleItemsProcess.js
 create mode 100644 neonContext/Task_context/Task_context.aod
 create mode 100644 neonContext/Task_context/documentation.adoc
 create mode 100644 neonView/TaskFilter_view/TaskFilter_view.aod
 create mode 100644 others/db_changes/data/example_task/base.xml
 create mode 100644 others/db_changes/struct/create_task.xml

diff --git a/aliasDefinition/Data_alias/Data_alias.aod b/aliasDefinition/Data_alias/Data_alias.aod
index 9b6b3552fc..2a88ca454c 100644
--- a/aliasDefinition/Data_alias/Data_alias.aod
+++ b/aliasDefinition/Data_alias/Data_alias.aod
@@ -543,7 +543,7 @@
                 <columnType v="93" />
                 <size v="29" />
                 <scale v="9" />
-                <notNull v="false" />
+                <notNull v="true" />
                 <isUnique v="false" />
                 <index v="false" />
                 <title></title>
@@ -556,7 +556,7 @@
                 <columnType v="12" />
                 <size v="50" />
                 <scale v="0" />
-                <notNull v="false" />
+                <notNull v="true" />
                 <isUnique v="false" />
                 <index v="false" />
                 <title></title>
@@ -4859,6 +4859,249 @@
               </entityFieldDb>
             </entityFields>
           </entityDb>
+          <entityDb>
+            <name>TASK</name>
+            <dbName></dbName>
+            <idColumn>TASKID</idColumn>
+            <idGeneratorType v="0" />
+            <idGeneratorInterval v="1" />
+            <title></title>
+            <description></description>
+            <auditSyncConfig>
+              <name>auditSyncConfig</name>
+              <auditMode v="0" />
+              <syncActive v="false" />
+              <syncComplete v="true" />
+              <syncDirection v="1" />
+              <syncIds></syncIds>
+            </auditSyncConfig>
+            <entityFields>
+              <entityFieldDb>
+                <name>DATE_EDIT</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="93" />
+                <size v="29" />
+                <scale v="9" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>PRIORITY</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="5" />
+                <size v="5" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>MATURITY_DATE</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="93" />
+                <size v="29" />
+                <scale v="9" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>USER_EDIT</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="12" />
+                <size v="50" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>EDITOR_RELATION_ID</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="1" />
+                <size v="36" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>TASKID</name>
+                <dbName></dbName>
+                <primaryKey v="true" />
+                <columnType v="1" />
+                <size v="36" />
+                <scale v="0" />
+                <notNull v="true" />
+                <isUnique v="true" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>CODE</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="4" />
+                <size v="10" />
+                <scale v="0" />
+                <notNull v="true" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>STATUS</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="5" />
+                <size v="5" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>DESCRIPTION</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="2005" />
+                <size v="2147483647" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>REQUESTOR_RELATION_ID</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="1" />
+                <size v="36" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>SUBJECT</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="12" />
+                <size v="254" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>PROTECTIONLEVEL</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="5" />
+                <size v="5" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>DATE_NEW</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="93" />
+                <size v="29" />
+                <scale v="9" />
+                <notNull v="true" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>USER_NEW</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="12" />
+                <size v="50" />
+                <scale v="0" />
+                <notNull v="true" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>START_DATE</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="93" />
+                <size v="29" />
+                <scale v="9" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+              <entityFieldDb>
+                <name>TYPE</name>
+                <dbName></dbName>
+                <primaryKey v="false" />
+                <columnType v="5" />
+                <size v="5" />
+                <scale v="0" />
+                <notNull v="false" />
+                <isUnique v="false" />
+                <index v="false" />
+                <documentation></documentation>
+                <title></title>
+                <description></description>
+              </entityFieldDb>
+            </entityFields>
+          </entityDb>
         </entities>
       </entityGroup>
     </aliasDefDb>
diff --git a/application/_____SYSTEM_APPLICATION_NEON/_____SYSTEM_APPLICATION_NEON.aod b/application/_____SYSTEM_APPLICATION_NEON/_____SYSTEM_APPLICATION_NEON.aod
index 37a5f73266..1991fe78ec 100644
--- a/application/_____SYSTEM_APPLICATION_NEON/_____SYSTEM_APPLICATION_NEON.aod
+++ b/application/_____SYSTEM_APPLICATION_NEON/_____SYSTEM_APPLICATION_NEON.aod
@@ -9,6 +9,7 @@
         <node name="Pers_context" kind="10077" />
         <node name="Org_context" kind="10077" />
         <node name="Activity_context" kind="10077" />
+        <node name="Task_context" kind="10077" />
         <node name="INTERNAL_ADMINISTRATOR" kind="159" />
       </node>
     </node>
diff --git a/entity/Task_entity/Task_entity.aod b/entity/Task_entity/Task_entity.aod
new file mode 100644
index 0000000000..a353aff454
--- /dev/null
+++ b/entity/Task_entity/Task_entity.aod
@@ -0,0 +1,175 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.1.1">
+  <name>Task_entity</name>
+  <title>Task</title>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <documentation>%aditoprj%/entity/Task_entity/documentation.adoc</documentation>
+  <icon>VAADIN:TASKS</icon>
+  <iconId>VAADIN:TASKS</iconId>
+  <recordContainer>db</recordContainer>
+  <entityFields>
+    <entityIncomingField>
+      <name>#INCOMING</name>
+    </entityIncomingField>
+    <entityField>
+      <name>CODE</name>
+      <title>task number</title>
+      <contentType>NUMBER</contentType>
+      <outputFormat>0000000</outputFormat>
+      <mandatory v="true" />
+    </entityField>
+    <entityField>
+      <name>SUBJECT</name>
+      <title>subject</title>
+      <mandatory v="true" />
+    </entityField>
+    <entityField>
+      <name>STATUS</name>
+      <title>{$TASK_STATUS}</title>
+      <mandatory v="true" />
+      <possibleItemsProcess>%aditoprj%/entity/Task_entity/entityfields/status/possibleItemsProcess.js</possibleItemsProcess>
+    </entityField>
+    <entityField>
+      <name>PRIORITY</name>
+      <title>priority</title>
+      <possibleItemsProcess>%aditoprj%/entity/Task_entity/entityfields/priority/possibleItemsProcess.js</possibleItemsProcess>
+    </entityField>
+    <entityField>
+      <name>REQUESTOR_RELATION_ID</name>
+      <title>{$TASK_REQUESTOR}</title>
+      <mandatory v="true" />
+    </entityField>
+    <entityField>
+      <name>EDITOR_RELATION_ID</name>
+      <title>{$TASK_EDITOR}</title>
+    </entityField>
+    <entityField>
+      <name>START_DATE</name>
+      <title>start date</title>
+      <contentType>DATE</contentType>
+      <resolution>MINUTE</resolution>
+    </entityField>
+    <entityField>
+      <name>MATURITY_DATE</name>
+      <title>maturity date</title>
+      <contentType>DATE</contentType>
+      <resolution>MINUTE</resolution>
+    </entityField>
+    <entityField>
+      <name>TYPE</name>
+      <title>type</title>
+      <possibleItemsProcess>%aditoprj%/entity/Task_entity/entityfields/type/possibleItemsProcess.js</possibleItemsProcess>
+    </entityField>
+    <entityField>
+      <name>DESCRIPTION</name>
+      <title>description</title>
+    </entityField>
+    <entityField>
+      <name>PROTECTIONLEVEL</name>
+      <title>private</title>
+    </entityField>
+    <entityField>
+      <name>TASKID</name>
+      <mandatory v="true" />
+    </entityField>
+    <entityField>
+      <name>DATE_NEW</name>
+      <contentType>DATE</contentType>
+      <resolution>SECOND</resolution>
+      <mandatory v="true" />
+    </entityField>
+    <entityField>
+      <name>USER_NEW</name>
+      <mandatory v="true" />
+    </entityField>
+    <entityField>
+      <name>DATE_EDIT</name>
+      <contentType>DATE</contentType>
+      <resolution>SECOND</resolution>
+    </entityField>
+    <entityField>
+      <name>USER_EDIT</name>
+    </entityField>
+  </entityFields>
+  <recordContainers>
+    <dbRecordContainer>
+      <name>db</name>
+      <alias>Data_alias</alias>
+      <linkInformation>
+        <linkInformation>
+          <name>47e1b4a5-6901-48b0-85ba-bec39b86a2d7</name>
+          <tableName>TASK</tableName>
+          <primaryKey>TASKID</primaryKey>
+          <isUIDTable v="true" />
+          <readonly v="false" />
+        </linkInformation>
+      </linkInformation>
+      <recordFieldMappings>
+        <dbRecordFieldMapping>
+          <name>CODE.value</name>
+          <recordfield>TASK.CODE</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>DESCRIPTION.value</name>
+          <recordfield>TASK.DESCRIPTION</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>EDITOR_RELATION_ID.value</name>
+          <recordfield>TASK.EDITOR_RELATION_ID</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>MATURITY_DATE.value</name>
+          <recordfield>TASK.MATURITY_DATE</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>PRIORITY.value</name>
+          <recordfield>TASK.PRIORITY</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>PROTECTIONLEVEL.value</name>
+          <recordfield>TASK.PROTECTIONLEVEL</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>REQUESTOR_RELATION_ID.value</name>
+          <recordfield>TASK.REQUESTOR_RELATION_ID</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>START_DATE.value</name>
+          <recordfield>TASK.START_DATE</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>STATUS.value</name>
+          <recordfield>TASK.STATUS</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>SUBJECT.value</name>
+          <recordfield>TASK.SUBJECT</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>TASKID.value</name>
+          <recordfield>TASK.TASKID</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>TYPE.value</name>
+          <recordfield>TASK.TYPE</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>USER_EDIT.value</name>
+          <recordfield>TASK.USER_EDIT</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>USER_NEW.value</name>
+          <recordfield>TASK.USER_NEW</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>DATE_EDIT.value</name>
+          <recordfield>TASK.DATE_EDIT</recordfield>
+        </dbRecordFieldMapping>
+        <dbRecordFieldMapping>
+          <name>DATE_NEW.value</name>
+          <recordfield>TASK.DATE_NEW</recordfield>
+        </dbRecordFieldMapping>
+      </recordFieldMappings>
+    </dbRecordContainer>
+  </recordContainers>
+</entity>
diff --git a/entity/Task_entity/documentation.adoc b/entity/Task_entity/documentation.adoc
new file mode 100644
index 0000000000..39ff16934d
--- /dev/null
+++ b/entity/Task_entity/documentation.adoc
@@ -0,0 +1 @@
+CAUTION: Do not confuse these tasks with calendar-tasks(=todos). The `Task_context` tasks are not syncable to a groupware system.
\ No newline at end of file
diff --git a/entity/Task_entity/entityfields/priority/possibleItemsProcess.js b/entity/Task_entity/entityfields/priority/possibleItemsProcess.js
new file mode 100644
index 0000000000..745b865502
--- /dev/null
+++ b/entity/Task_entity/entityfields/priority/possibleItemsProcess.js
@@ -0,0 +1,7 @@
+import("system.result");
+import("Keyword_lib");
+
+var items;
+
+items = KeywordUtils.getStandardArray("TASK.PRIORITY");
+result.object(items);
\ No newline at end of file
diff --git a/entity/Task_entity/entityfields/status/possibleItemsProcess.js b/entity/Task_entity/entityfields/status/possibleItemsProcess.js
new file mode 100644
index 0000000000..c954aedab3
--- /dev/null
+++ b/entity/Task_entity/entityfields/status/possibleItemsProcess.js
@@ -0,0 +1,7 @@
+import("system.result");
+import("Keyword_lib");
+
+var items;
+
+items = KeywordUtils.getStandardArray("TASK.STATUS");
+result.object(items);
\ No newline at end of file
diff --git a/entity/Task_entity/entityfields/type/possibleItemsProcess.js b/entity/Task_entity/entityfields/type/possibleItemsProcess.js
new file mode 100644
index 0000000000..ff1398053b
--- /dev/null
+++ b/entity/Task_entity/entityfields/type/possibleItemsProcess.js
@@ -0,0 +1,7 @@
+import("system.result");
+import("Keyword_lib");
+
+var items;
+
+items = KeywordUtils.getStandardArray("TASK.TYPE");
+result.object(items);
\ No newline at end of file
diff --git a/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod b/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod
index 81e9b341fc..d658476a25 100644
--- a/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod
+++ b/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod
@@ -1278,6 +1278,39 @@
     <entry>
       <key>Plus Salestax</key>
     </entry>
+    <entry>
+      <key>maturity date</key>
+    </entry>
+    <entry>
+      <key>{$TASK_STATUS}</key>
+    </entry>
+    <entry>
+      <key>Task</key>
+    </entry>
+    <entry>
+      <key>subject</key>
+    </entry>
+    <entry>
+      <key>{$TASK_REQUESTOR}</key>
+    </entry>
+    <entry>
+      <key>start date</key>
+    </entry>
+    <entry>
+      <key>task number</key>
+    </entry>
+    <entry>
+      <key>{$TASK_EDITOR}</key>
+    </entry>
+    <entry>
+      <key>description</key>
+    </entry>
+    <entry>
+      <key>priority</key>
+    </entry>
+    <entry>
+      <key>category</key>
+    </entry>
   </keyValueMap>
   <font name="Dialog" style="0" size="11" />
   <sqlModels>
diff --git a/language/_____LANGUAGE_de/_____LANGUAGE_de.aod b/language/_____LANGUAGE_de/_____LANGUAGE_de.aod
index 384f13de46..2b388f484f 100644
--- a/language/_____LANGUAGE_de/_____LANGUAGE_de.aod
+++ b/language/_____LANGUAGE_de/_____LANGUAGE_de.aod
@@ -1641,6 +1641,50 @@
     <entry>
       <key>Dateigröße</key>
     </entry>
+    <entry>
+      <key>maturity date</key>
+      <value>Fälligkeitsdatum</value>
+    </entry>
+    <entry>
+      <key>{$TASK_STATUS}</key>
+      <value>Status</value>
+    </entry>
+    <entry>
+      <key>Task</key>
+      <value>Aufgabe</value>
+    </entry>
+    <entry>
+      <key>subject</key>
+      <value>Betreff</value>
+    </entry>
+    <entry>
+      <key>{$TASK_REQUESTOR}</key>
+      <value>Anforderer</value>
+    </entry>
+    <entry>
+      <key>start date</key>
+      <value>Beginndatum</value>
+    </entry>
+    <entry>
+      <key>task number</key>
+      <value>Aufgabennummer</value>
+    </entry>
+    <entry>
+      <key>description</key>
+      <value>Beschreibung</value>
+    </entry>
+    <entry>
+      <key>priority</key>
+      <value>Piorität</value>
+    </entry>
+    <entry>
+      <key>{$TASK_EDITOR}</key>
+      <value>Bearbeiter</value>
+    </entry>
+    <entry>
+      <key>category</key>
+      <value>Kategorie</value>
+    </entry>
   </keyValueMap>
   <font name="Dialog" style="0" size="11" />
 </language>
diff --git a/language/_____LANGUAGE_en/_____LANGUAGE_en.aod b/language/_____LANGUAGE_en/_____LANGUAGE_en.aod
index ced24c245f..c06cc3dc2c 100644
--- a/language/_____LANGUAGE_en/_____LANGUAGE_en.aod
+++ b/language/_____LANGUAGE_en/_____LANGUAGE_en.aod
@@ -1295,6 +1295,39 @@
     <entry>
       <key>Plus Salestax</key>
     </entry>
+    <entry>
+      <key>maturity date</key>
+    </entry>
+    <entry>
+      <key>{$TASK_STATUS}</key>
+    </entry>
+    <entry>
+      <key>Task</key>
+    </entry>
+    <entry>
+      <key>subject</key>
+    </entry>
+    <entry>
+      <key>{$TASK_REQUESTOR}</key>
+    </entry>
+    <entry>
+      <key>start date</key>
+    </entry>
+    <entry>
+      <key>task number</key>
+    </entry>
+    <entry>
+      <key>{$TASK_EDITOR}</key>
+    </entry>
+    <entry>
+      <key>description</key>
+    </entry>
+    <entry>
+      <key>priority</key>
+    </entry>
+    <entry>
+      <key>category</key>
+    </entry>
   </keyValueMap>
   <font name="Dialog" style="0" size="11" />
 </language>
diff --git a/neonContext/Task_context/Task_context.aod b/neonContext/Task_context/Task_context.aod
new file mode 100644
index 0000000000..37b7cfa9fd
--- /dev/null
+++ b/neonContext/Task_context/Task_context.aod
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<neonContext xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.0.0" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonContext/1.0.0">
+  <name>Task_context</name>
+  <title>Task</title>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <documentation>%aditoprj%/neonContext/Task_context/documentation.adoc</documentation>
+  <icon>VAADIN:TASKS</icon>
+  <filterview>TaskFilter_view</filterview>
+  <entity>Task_entity</entity>
+  <references>
+    <neonViewReference>
+      <name>5e6fdab4-8781-4e2d-af7a-755d834b631d</name>
+      <view>TaskFilter_view</view>
+    </neonViewReference>
+  </references>
+</neonContext>
diff --git a/neonContext/Task_context/documentation.adoc b/neonContext/Task_context/documentation.adoc
new file mode 100644
index 0000000000..e6a998df68
--- /dev/null
+++ b/neonContext/Task_context/documentation.adoc
@@ -0,0 +1,3 @@
+A task describes a need for action (something to be done) by one or more responsible person(s).
+
+CAUTION: Do not confuse these tasks with calendar-tasks(=todos). The `Task_context` tasks are not syncable to a groupware system.
\ No newline at end of file
diff --git a/neonView/TaskFilter_view/TaskFilter_view.aod b/neonView/TaskFilter_view/TaskFilter_view.aod
new file mode 100644
index 0000000000..265ac6bc9d
--- /dev/null
+++ b/neonView/TaskFilter_view/TaskFilter_view.aod
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.0.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.0.1">
+  <name>TaskFilter_view</name>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <layout>
+    <boxLayout>
+      <name>layout</name>
+    </boxLayout>
+  </layout>
+  <children>
+    <tableViewTemplate>
+      <name>mainTable</name>
+      <entityField>#ENTITY</entityField>
+      <columns>
+        <neonTableColumn>
+          <name>d417cf1f-22aa-42fa-be69-a3aed95c5391</name>
+          <entityField>CODE</entityField>
+        </neonTableColumn>
+        <neonTableColumn>
+          <name>591cd079-a8e9-49aa-8a2d-afb643aef079</name>
+          <entityField>SUBJECT</entityField>
+        </neonTableColumn>
+        <neonTableColumn>
+          <name>5d11add4-d939-4c8e-9633-efd0c2991837</name>
+          <entityField>PRIORITY</entityField>
+        </neonTableColumn>
+        <neonTableColumn>
+          <name>154182d8-bc66-4901-a423-7d3a375d4154</name>
+          <entityField>MATURITY_DATE</entityField>
+        </neonTableColumn>
+        <neonTableColumn>
+          <name>f2d4a6da-94b1-4f96-981f-f1ed5408d2b0</name>
+          <entityField>TYPE</entityField>
+        </neonTableColumn>
+        <neonTableColumn>
+          <name>51190c85-fa03-4022-bc72-063d4b895d5b</name>
+          <entityField>EDITOR_RELATION_ID</entityField>
+        </neonTableColumn>
+        <neonTableColumn>
+          <name>a1b52ccb-91ed-4e7e-a0b1-c5973f471190</name>
+          <entityField>REQUESTOR_RELATION_ID</entityField>
+        </neonTableColumn>
+        <neonTableColumn>
+          <name>b92dba41-58a2-4c95-aeb4-235c5eaffad7</name>
+          <entityField>STATUS</entityField>
+        </neonTableColumn>
+      </columns>
+    </tableViewTemplate>
+  </children>
+</neonView>
diff --git a/others/db_changes/data/example_task/base.xml b/others/db_changes/data/example_task/base.xml
new file mode 100644
index 0000000000..4e12951d2e
--- /dev/null
+++ b/others/db_changes/data/example_task/base.xml
@@ -0,0 +1,32 @@
+<?xml version="1.1" encoding="UTF-8" standalone="no"?>
+<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd">
+    <changeSet author="j.goderbauer" id="aac6bb04-cca6-4c88-a4ad-8d9d972f915c">
+        <insert tableName="TASK">
+            <column name="TASKID" value="e9cb198d-c420-4192-9c29-b23682457d8e">
+                <constraints primaryKey="true" primaryKeyName="PK_TASK_TASKID"/>
+            </column>    
+            <column name="DATE_NEW" valueDate="2018-09-16T09:04:55">
+                <constraints nullable="false"/>
+            </column>
+            <column name="USER_NEW" value="admin">
+                <constraints nullable="false"/>
+            </column>
+            <column name="REQUESTOR_RELATION_ID" value="56e084e2-d68a-4f1e-a1bb-f8d46ad6293d"/>
+            <column name="EDITOR_RELATION_ID" value="56e084e2-d68a-4f1e-a1bb-f8d46ad6293d"/>
+
+            <column name="CODE" valueNumeric="10000"/>
+            <column name="SUBJECT" value="effiziente Wertschöpfungsketten bündeln und anlaysieren"/>
+            <column name="STATUS" valueNumeric="1"/>
+            <column name="PRIORITY" valueNumeric="2"/>
+            <column name="PROTECTIONLEVEL" valueNumeric="0"/>
+            <column name="START_DATE" valueDate="2019-01-20T14:00:00"/>
+            <column name="MATURITY_DATE" valueDate="2019-01-20T16:00:00"/>
+            <column name="DESCRIPTION" value="Es sollen die effizienten Wertschöpfungsketten der Prozessdefinitionseinheiten im primären Schritt gebündelt und sekundär analysiert und verifiziert werden."/>
+        </insert>
+        <rollback>
+            <delete tableName="TASK">
+                <where>TASKID = 'e9cb198d-c420-4192-9c29-b23682457d8e'</where>
+            </delete>
+        </rollback>
+    </changeSet>
+</databaseChangeLog>
\ No newline at end of file
diff --git a/others/db_changes/masterChangelog.xml b/others/db_changes/masterChangelog.xml
index 17b5f69cde..29ed40a359 100644
--- a/others/db_changes/masterChangelog.xml
+++ b/others/db_changes/masterChangelog.xml
@@ -25,6 +25,7 @@
     <include file="struct/create_salesorderitem.xml"/>
     <include file="struct/create_countryinfo.xml"/>
     <include file="struct/create_timetracking.xml"/>
+    <include file="struct/create_task.xml"/>
     <include file="data/example_org/ORG_privat.xml"/>
     <include file="data/example_org/ORG_gfk.xml"/>
     <include file="data/example_org/ORG_mnf.xml"/>
@@ -57,4 +58,5 @@
     <include file="data/example_salesorder/SALESORDER_1003.xml"/>
     <include file="data/example_salesorder/SALESORDER_1004.xml"/>  
     <include file="data/countryinfo_full/countryinfo_main.xml"/>
+    <include file="data/example_task/base.xml"/>
 </databaseChangeLog>
diff --git a/others/db_changes/struct/create_task.xml b/others/db_changes/struct/create_task.xml
new file mode 100644
index 0000000000..11d2df991f
--- /dev/null
+++ b/others/db_changes/struct/create_task.xml
@@ -0,0 +1,32 @@
+<?xml version="1.1" encoding="UTF-8" standalone="no"?>
+<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd">
+    <changeSet author="j.goderbauer" id="7f9d208b-2375-48e0-a852-26eadfa8238f">
+        <createTable tableName="TASK">
+            <column name="TASKID" type="CHAR(36)">
+                <constraints primaryKey="true" primaryKeyName="PK_TASK_TASKID"/>
+            </column>
+            <column name="USER_NEW" type="NVARCHAR(50)">
+                <constraints nullable="false"/>
+            </column>
+            <column name="USER_EDIT" type="NVARCHAR(50)"/>
+            <column name="DATE_NEW" type="TIMESTAMP">
+                <constraints nullable="false"/>
+            </column>
+            <column name="DATE_EDIT" type="TIMESTAMP"/>
+            
+            <column name="CODE" type="INTEGER">
+                <constraints nullable="false"/>
+            </column>
+            <column name="SUBJECT" type="NVARCHAR(254)"/>
+            <column name="STATUS" type="SMALLINT"/>
+            <column name="PRIORITY" type="SMALLINT"/>
+            <column name="REQUESTOR_RELATION_ID" type="CHAR(36)"/>
+            <column name="EDITOR_RELATION_ID" type="CHAR(36)"/>
+            <column name="START_DATE" type="TIMESTAMP"/>
+            <column name="MATURITY_DATE" type="TIMESTAMP"/>
+            <column name="TYPE" type="SMALLINT"/>
+            <column name="DESCRIPTION" type="NCLOB"/>
+            <column name="PROTECTIONLEVEL" type="SMALLINT"/>
+        </createTable>
+    </changeSet>
+</databaseChangeLog>
\ No newline at end of file
diff --git a/process/Keyword_lib/process.js b/process/Keyword_lib/process.js
index 02fb36b1b0..dcd9533e23 100644
--- a/process/Keyword_lib/process.js
+++ b/process/Keyword_lib/process.js
@@ -397,6 +397,32 @@ function KeywordUtils(){
                     ,_createKeywordEntry("4", translate.text("Lost"))
                 ]);
                 break;
+            case "TASK.PRIORITY":
+                valueContainer = _createKeywordEntriesContainer([
+                     _createKeywordEntry("0", translate.text("{$TASK_PRIORITY_NONE}"))
+                    ,_createKeywordEntry("1", translate.text("{$TASK_PRIORITY_LOW}"))
+                    ,_createKeywordEntry("2", translate.text("{$TASK_PRIORITY_NORMAL}"))
+                    ,_createKeywordEntry("3", translate.text("{$TASK_PRIORITY_HIGH}"))
+                    ]);
+                break;
+            case "TASK.TYPE":
+                //even this keyword may look like the same as the "ACTIVITY.CATEGORY" keyword:
+                //these are *not* categories since task-categories are reservated for future implementation
+                //the TASK.TYPE is more like an type of source for example
+                valueContainer = _createKeywordEntriesContainer([
+                     _createKeywordEntry("0", translate.text("Visit"), null, {defaultAvatarRepresentation: "VAADIN:TRAIN"})
+                    ,_createKeywordEntry("1", translate.text("E-Mail"), null, {defaultAvatarRepresentation: "VAADIN:AT"})
+                    ,_createKeywordEntry("2", translate.text("Phone"), null, {defaultAvatarRepresentation: "VAADIN:PHONE"})
+                    ,_createKeywordEntry("3", translate.text("Online-Meeting"), null, {defaultAvatarRepresentation: "VAADIN:GLOBE_WIRE"})
+                ]);
+            case "TASK.STATUS":
+                valueContainer = _createKeywordEntriesContainer([
+                     _createKeywordEntry("0", translate.text("new"))
+                    ,_createKeywordEntry("1", translate.text("in process"))
+                    ,_createKeywordEntry("2", translate.text("waiting"))
+                    ,_createKeywordEntry("3", translate.text("ended"))
+                    ]);
+                break;
             default: 
                 throw new Error(translate.withArguments("[%0]the given keyword \"%1\" has no match with the possible keywordlist", [
                     arguments.callee.name, keywordType
-- 
GitLab