diff --git a/entity/DistrictContact_entity/DistrictContact_entity.aod b/entity/DistrictContact_entity/DistrictContact_entity.aod
index 817d6c9f722094d2b929e66feb61c55f299d66c4..9f966deb54e6bf605edcce32ed47709840a09d39 100644
--- a/entity/DistrictContact_entity/DistrictContact_entity.aod
+++ b/entity/DistrictContact_entity/DistrictContact_entity.aod
@@ -3,10 +3,10 @@
   <name>DistrictContact_entity</name>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <icon>VAADIN:GLOBE</icon>
-  <title>District Contact</title>
+  <title>Supervisor</title>
   <iconIdProcess>%aditoprj%/entity/DistrictContact_entity/iconIdProcess.js</iconIdProcess>
   <image>VAADIN:GLOBE</image>
-  <titlePlural>District Contacts</titlePlural>
+  <titlePlural>Supervisors</titlePlural>
   <recordContainer>db</recordContainer>
   <entityFields>
     <entityProvider>
diff --git a/entity/Organisation_entity/Organisation_entity.aod b/entity/Organisation_entity/Organisation_entity.aod
index 1d1ed6f7718812b0c2badbd5f3851a54d035685a..5b5afb8bdca649b2328ce43aa1dc77f78447a2b5 100644
--- a/entity/Organisation_entity/Organisation_entity.aod
+++ b/entity/Organisation_entity/Organisation_entity.aod
@@ -1686,6 +1686,14 @@
           <filterConditionProcess>%aditoprj%/entity/Organisation_entity/recordcontainers/db/filterextensions/favoriten_filter/filterConditionProcess.js</filterConditionProcess>
           <filtertype>BASIC</filtertype>
         </filterExtension>
+        <filterExtension>
+          <name>ResponsibleAssignment</name>
+          <title>Supervisor assignment</title>
+          <contentType>TEXT</contentType>
+          <filterValuesProcess>%aditoprj%/entity/Organisation_entity/recordcontainers/db/filterextensions/responsibleassignment/filterValuesProcess.js</filterValuesProcess>
+          <filterConditionProcess>%aditoprj%/entity/Organisation_entity/recordcontainers/db/filterextensions/responsibleassignment/filterConditionProcess.js</filterConditionProcess>
+          <filtertype>EXTENDED</filtertype>
+        </filterExtension>
       </filterExtensions>
     </dbRecordContainer>
     <indexRecordContainer>
diff --git a/entity/Organisation_entity/recordcontainers/db/filterextensions/responsibleassignment/filterConditionProcess.js b/entity/Organisation_entity/recordcontainers/db/filterextensions/responsibleassignment/filterConditionProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..dec63bfd984d6224a90a64f10a70daaaa670f011
--- /dev/null
+++ b/entity/Organisation_entity/recordcontainers/db/filterextensions/responsibleassignment/filterConditionProcess.js
@@ -0,0 +1,38 @@
+import("Employee_lib");
+import("KeywordRegistry_basic");
+import("Sql_lib");
+import("system.vars");
+import("system.result");
+
+var operator = vars.get("$local.operator");
+var rawvalue = vars.get("$local.rawvalue");
+var operator2 = vars.get("$local.operator2");
+var sqlCond = "";
+
+rawvalue = (rawvalue == "true");
+
+
+if(operator == "1" && rawvalue ||  operator == "2" && !rawvalue )
+    operator2 = SqlBuilder.IN();
+else if(operator == "1" && !rawvalue ||  operator == "2" && rawvalue)
+    operator2 = SqlBuilder.NOT_IN();
+else 
+    sqlCond = "1=1";
+
+
+
+if (sqlCond == "")
+    sqlCond = new SqlBuilder().where("CONTACT.CONTACTID", 
+            newSelect("DISTRICTCONTACT.CONTACT_ID")
+            .from("DISTRICTCONTACT")
+            .where("DISTRICTCONTACT.ADVISER_CONTACT_ID", EmployeeUtils.getCurrentContactId())
+            .and(
+                newWhere(
+                    newWhere("current_date >= cast(DISTRICTCONTACT.VALID_FROM as DATE)")
+                    .and("current_date <= cast(DISTRICTCONTACT.VALID_UNTIL as DATE)"))
+                .or(newWhere("current_date >= cast(DISTRICTCONTACT.VALID_FROM as DATE)")
+                    .and("DISTRICTCONTACT.VALID_UNTIL is null")))
+            .and("DISTRICTCONTACT.STATUS", $KeywordRegistry.contactStatus$active()), operator2).toString();
+            
+
+result.string(sqlCond);
\ No newline at end of file
diff --git a/entity/Organisation_entity/recordcontainers/db/filterextensions/responsibleassignment/filterValuesProcess.js b/entity/Organisation_entity/recordcontainers/db/filterextensions/responsibleassignment/filterValuesProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..4462144da5638267f7c76cce0c779305ae80c089
--- /dev/null
+++ b/entity/Organisation_entity/recordcontainers/db/filterextensions/responsibleassignment/filterValuesProcess.js
@@ -0,0 +1,4 @@
+import("system.translate");
+import("system.result");
+
+result.object([["true", translate.text("Yes")], ["false", translate.text("No")]]);
\ No newline at end of file
diff --git a/entity/Person_entity/Person_entity.aod b/entity/Person_entity/Person_entity.aod
index 93b1185272e49a1303b200c26fb5ba202940c0e5..647c3821e922923e5da21e3dbde9f5296a93b4c9 100644
--- a/entity/Person_entity/Person_entity.aod
+++ b/entity/Person_entity/Person_entity.aod
@@ -16,7 +16,6 @@
   <useFavorites v="true" />
   <iconId>VAADIN:USERS</iconId>
   <imageProcess>%aditoprj%/entity/Person_entity/imageProcess.js</imageProcess>
-  <usePermissions v="false" />
   <titlePlural>Contacts</titlePlural>
   <recordContainer>db</recordContainer>
   <entityFields>
@@ -1698,6 +1697,14 @@
           <filterConditionProcess>%aditoprj%/entity/Person_entity/recordcontainers/db/filterextensions/favorits_filter/filterConditionProcess.js</filterConditionProcess>
           <filtertype>BASIC</filtertype>
         </filterExtension>
+        <filterExtension>
+          <name>SupervisorAssignment</name>
+          <title>Supervisor assignment</title>
+          <contentType>TEXT</contentType>
+          <filterValuesProcess>%aditoprj%/entity/Person_entity/recordcontainers/db/filterextensions/supervisorassignment/filterValuesProcess.js</filterValuesProcess>
+          <filterConditionProcess>%aditoprj%/entity/Person_entity/recordcontainers/db/filterextensions/supervisorassignment/filterConditionProcess.js</filterConditionProcess>
+          <filtertype>BASIC</filtertype>
+        </filterExtension>
       </filterExtensions>
     </dbRecordContainer>
     <indexRecordContainer>
diff --git a/entity/Person_entity/recordcontainers/db/filterextensions/supervisorassignment/filterConditionProcess.js b/entity/Person_entity/recordcontainers/db/filterextensions/supervisorassignment/filterConditionProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..9b9b11b65c2fe1c8206d87c6ccc85a9b8c9e7d04
--- /dev/null
+++ b/entity/Person_entity/recordcontainers/db/filterextensions/supervisorassignment/filterConditionProcess.js
@@ -0,0 +1,40 @@
+import("Employee_lib");
+import("KeywordRegistry_basic");
+import("Sql_lib");
+import("system.vars");
+import("system.result");
+
+var operator = vars.get("$local.operator");
+var rawvalue = vars.get("$local.rawvalue");
+var operator2 = vars.get("$local.operator2");
+var sqlCond = "";
+
+rawvalue = (rawvalue == "true");
+
+
+if(operator == "1" && rawvalue ||  operator == "2" && !rawvalue )
+    operator2 = SqlBuilder.IN();
+else if(operator == "1" && !rawvalue ||  operator == "2" && rawvalue)
+    operator2 = SqlBuilder.NOT_IN();
+else 
+    sqlCond = "1=1";
+
+
+
+if (sqlCond == "")
+    sqlCond = new SqlBuilder().where("CONTACT.CONTACTID", 
+            newSelect("pers.CONTACTID")
+            .from("DISTRICTCONTACT")
+            .join("CONTACT", "DISTRICTCONTACT.CONTACT_ID = org.CONTACTID", "org")
+            .join("CONTACT", "pers.ORGANISATION_ID = org.ORGANISATION_ID and pers.PERSON_ID is not null", "pers")
+            .where("DISTRICTCONTACT.ADVISER_CONTACT_ID", EmployeeUtils.getCurrentContactId())
+            .and(
+                newWhere(
+                    newWhere("current_date >= cast(DISTRICTCONTACT.VALID_FROM as DATE)")
+                    .and("current_date <= cast(DISTRICTCONTACT.VALID_UNTIL as DATE)"))
+                .or(newWhere("current_date >= cast(DISTRICTCONTACT.VALID_FROM as DATE)")
+                    .and("DISTRICTCONTACT.VALID_UNTIL is null")))
+            .and("DISTRICTCONTACT.STATUS", $KeywordRegistry.contactStatus$active()), operator2).toString();
+
+
+result.string(sqlCond);
\ No newline at end of file
diff --git a/entity/Person_entity/recordcontainers/db/filterextensions/supervisorassignment/filterValuesProcess.js b/entity/Person_entity/recordcontainers/db/filterextensions/supervisorassignment/filterValuesProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..4462144da5638267f7c76cce0c779305ae80c089
--- /dev/null
+++ b/entity/Person_entity/recordcontainers/db/filterextensions/supervisorassignment/filterValuesProcess.js
@@ -0,0 +1,4 @@
+import("system.translate");
+import("system.result");
+
+result.object([["true", translate.text("Yes")], ["false", translate.text("No")]]);
\ No newline at end of file
diff --git a/language/_____LANGUAGE_de/_____LANGUAGE_de.aod b/language/_____LANGUAGE_de/_____LANGUAGE_de.aod
index dd10d94944d2c6b07bfeb1153fb6377d4604f733..95ce88532a2bff5272518e3085d32e18f515db77 100644
--- a/language/_____LANGUAGE_de/_____LANGUAGE_de.aod
+++ b/language/_____LANGUAGE_de/_____LANGUAGE_de.aod
@@ -14,6 +14,14 @@
       <key>The start date has to be before the end date.</key>
       <value>Das Startdatum muss vor dem Enddatum sein.</value>
     </entry>
+    <entry>
+      <key>Supervisors</key>
+      <value>Betreuer</value>
+    </entry>
+    <entry>
+      <key>Supervisor assignment</key>
+      <value>Betreuerzuordnung</value>
+    </entry>
     <entry>
       <key>The given starting location is empty. An area search can not be performed.</key>
       <value>Der übergebene Startpunkt ist leer. Die Umkreissuche kann nicht ausgeführt werden.</value>
@@ -7368,6 +7376,10 @@
       <key>Info (Company)</key>
       <value>Info (Firma)</value>
     </entry>
+    <entry>
+      <key>Supervisor</key>
+      <value>Betreuer</value>
+    </entry>
     <entry>
       <key>Möglicherweise ist ein Import-Feld zu groß für das Zielfeld.</key>
       <value>An import field may be too large for the target field.</value>
diff --git a/neonContext/DistrictContact/DistrictContact.aod b/neonContext/DistrictContact/DistrictContact.aod
index c24205f4a08b1465e8547795489659a8e23cc67b..8db3d54af752ddd113a94b0e68df38a00c3f6bf8 100644
--- a/neonContext/DistrictContact/DistrictContact.aod
+++ b/neonContext/DistrictContact/DistrictContact.aod
@@ -1,7 +1,7 @@
 <?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.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonContext/1.1.1">
   <name>DistrictContact</name>
-  <title>District Contact</title>
+  <title>Supervisor</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
   <icon>VAADIN:GLOBE</icon>
   <filterView>DistrictContactFilter_view</filterView>