From 10a2311897593a842945b7f4c4ff607f439ff1d6 Mon Sep 17 00:00:00 2001 From: Kurzenberger <01kuni1bif@hft-stuttgart.de> Date: Fri, 18 Oct 2024 14:00:29 +0200 Subject: [PATCH] adjusted for the "mark as done" Button --- dta.zip | Bin 32527 -> 33005 bytes dta/classes/database.php | 59 +++++++++++++++++++++++++++++++-------- 2 files changed, 47 insertions(+), 12 deletions(-) diff --git a/dta.zip b/dta.zip index 806f286e97041a2790c23cc5984d4f2ce657f6f2..b63cd5fd0c2660cc8626519f46958bd7ae94f5df 100644 GIT binary patch delta 3320 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 U+BmfO_YUmcU}azpKKx1fADamaDgXcg delta 2917 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 diff --git a/dta/classes/database.php b/dta/classes/database.php index a384b96..f93fd06 100644 --- a/dta/classes/database.php +++ b/dta/classes/database.php @@ -34,23 +34,58 @@ class DbUtils { private const TABLE_RECOMMENDATIONS = "assignsubmission_dta_recommendations"; - /** - * Gets the recommendations for a given submission. - * - * @param int $submissionid ID of the submission - * @return array list of recommendations - */ - public static function get_recommendations_from_database(int $assignmentid,int $submissionid ): array { - global $DB; - - // Query the database to get all recommendations for the given submission id. + public static function get_recommendations_from_database(int $assignmentid, int $submissionid): array { + global $DB,$USER; + $userid = $USER->id; + + // Schritt 1: Alle Empfehlungen abrufen $records = $DB->get_records(self::TABLE_RECOMMENDATIONS, [ 'assignment_id' => $assignmentid, 'submission_id' => $submissionid, - ]); - + ]); + + // Schritt 2: Modul-ID für 'assign' abrufen + $module = $DB->get_record('modules', ['name' => 'assign'], 'id'); + if (!$module) { + // Fehlerbehandlung, falls das Modul nicht gefunden wird + return $records; + } + $moduleid = $module->id; + + // Schritt 3: Überprüfe jeden Datensatz + foreach ($records as $key => $record) { + // Hol den Namen der Übung aus dem Datensatz + $exercisename = $record->exercise_name; + + // Suche das Assignment mit diesem Namen + $assign = $DB->get_record('assign', ['name' => $exercisename], 'id'); + + if ($assign) { + // Hole die Kursmodul-ID (coursemoduleid) für dieses Assignment + $cm = $DB->get_record('course_modules', [ + 'module' => $moduleid, + 'instance' => $assign->id + ], 'id'); + + if ($cm) { + // Überprüfe den Abschlussstatus für dieses Kursmodul und den Benutzer + $completion = $DB->get_record('course_modules_completion', [ + 'coursemoduleid' => $cm->id, + 'userid' => $userid + ], 'completionstate'); + + // Wenn der Abschlussstatus 1 ist, entferne den Datensatz aus $records + if ($completion && $completion->completionstate == 1) { + unset($records[$key]); + } + } + } + } + + // Rückgabe der gefilterten Datensätze return $records; } + /** * gets summary with all corresponding result entries -- GitLab