From 2a8091c0f8e625a70e72dbe6438a74af14451978 Mon Sep 17 00:00:00 2001
From: Elmar Ludwig <elmar.ludwig@uni-osnabrueck.de>
Date: Mon, 30 Jan 2023 17:26:03 +0000
Subject: [PATCH] fix findByModel() for object_type "sem" and "inst", re #2104

Merge request studip/studip!1366
---
 lib/models/DatafieldEntryModel.class.php | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/lib/models/DatafieldEntryModel.class.php b/lib/models/DatafieldEntryModel.class.php
index 882b37ed22c..e1c24064f1a 100644
--- a/lib/models/DatafieldEntryModel.class.php
+++ b/lib/models/DatafieldEntryModel.class.php
@@ -130,7 +130,16 @@ class DatafieldEntryModel extends SimpleORMap implements PrivacyObject
             $params[':one_datafield_id'] = $datafield_id;
         }
 
-        if ($object_type === 'studycourse') {
+        if ($object_type === 'sem' || $object_type === 'inst') {
+            // find datafields by status (int)
+            $query .= " AND (object_class = :object_class OR object_class IS NULL) ORDER BY priority";
+            $params = array_merge($params, [
+                ':range_id'     => (string) $range_id,
+                ':sec_range_id' => (string) $sec_range_id,
+                ':object_type'  => $object_type,
+                ':object_class' => (int) $object_class
+            ]);
+        } else if ($object_type === 'studycourse') {
             $query .= " AND (LOCATE(:object_class, object_class) OR LOCATE('all', object_class)) ORDER BY priority";
             $params = array_merge($params,[
                 ':range_id'     => (string) $range_id,
-- 
GitLab