Skip to content
Snippets Groups Projects
Commit ca10fde9 authored by Elmar Ludwig's avatar Elmar Ludwig Committed by David Siegfried
Browse files

partly fix broken SQL queries, re #1579

Merge request studip/studip!1008
parent 061434e7
No related branches found
No related tags found
No related merge requests found
...@@ -96,9 +96,8 @@ class Course_OverviewController extends AuthenticatedController ...@@ -96,9 +96,8 @@ class Course_OverviewController extends AuthenticatedController
foreach ((array) $rule['attributes'] as $val) { foreach ((array) $rule['attributes'] as $val) {
if ($val == 1) { if ($val == 1) {
// Es gibt also Zusatzangaben. Nun noch überprüfen ob der Nutzer diese Angaben schon gemacht hat... // Es gibt also Zusatzangaben. Nun noch überprüfen ob der Nutzer diese Angaben schon gemacht hat...
$count = DataField::countBySql("LEFT JOIN datafields_entries ON datafields_entries.datafield_id = datafields.datafield_id $count = DataField::countBySql("LEFT JOIN datafields_entries USING (datafield_id) WHERE object_type = ? AND sec_range_id = ? AND range_id = ?",
WHERE datafield_id.object_type = 'usersemdata' AND datafields_entries.sec_range_id = ? AND datafields_entries.range_id = ?", ['usersemdata', $this->course_id, $GLOBALS['user']->id]
[$this->course_id, $GLOBALS['user']->id]
); );
if (!$count) { if (!$count) {
$show = true; $show = true;
......
...@@ -59,8 +59,8 @@ class I18NStringDatafield extends I18NString ...@@ -59,8 +59,8 @@ class I18NStringDatafield extends I18NString
[$object_id[0], $object_id[1], $object_id[2]] [$object_id[0], $object_id[1], $object_id[2]]
); );
foreach ($this->lang as $lang => $value) { foreach ($this->lang as $lang => $value) {
if (mb_strlen($value)) { if (strlen($value)) {
DataField::create( DatafieldEntryModel::create(
[ [
'datafield_id' => $object_id[0], 'datafield_id' => $object_id[0],
'range_id' => $object_id[1], 'range_id' => $object_id[1],
...@@ -87,14 +87,15 @@ class I18NStringDatafield extends I18NString ...@@ -87,14 +87,15 @@ class I18NStringDatafield extends I18NString
public static function load($object_id, $table = '', $field = '', $base = null) public static function load($object_id, $table = '', $field = '', $base = null)
{ {
if (is_null($base)) { if (is_null($base)) {
$base = DataField::findOneBySQL( $df = DatafieldEntryModel::findOneBySQL(
"`datafield_id` = ? AND `range_id` = ? AND `sec_range_id` = ? AND `lang` = ''", "`datafield_id` = ? AND `range_id` = ? AND `sec_range_id` = ? AND `lang` = ''",
$object_id $object_id
); );
$base = $df->content;
} }
$table = null; $table = null;
$field = null; $field = null;
return new self($base->content, self::fetchDataForField($object_id, $table, $field), return new self($base, self::fetchDataForField($object_id, $table, $field),
compact('object_id', 'table', 'field')); compact('object_id', 'table', 'field'));
} }
......
...@@ -296,12 +296,12 @@ class User extends AuthUserMd5 implements Range, PrivacyObject ...@@ -296,12 +296,12 @@ class User extends AuthUserMd5 implements Range, PrivacyObject
public static function findByDatafield($datafield_id, $value) public static function findByDatafield($datafield_id, $value)
{ {
return User::findMany( return User::findMany(
SimpleCollection::createFromArray( array_column(
DatafieldEntryModel::findBySQL( DatafieldEntryModel::findBySQL(
'datafield_id = :datafield_id AND content = :value', 'datafield_id = :datafield_id AND content = :value',
compact('datafield_id', 'value') compact('datafield_id', 'value')
) ),
)->pluck('range_id') 'range_id')
); );
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment