From d562c1666d2bf4d5853e8e700665d472537f3d30 Mon Sep 17 00:00:00 2001
From: 32khsa1mst <32khsa1mst@hft-stuttgart.de>
Date: Fri, 20 Dec 2024 13:42:47 +0100
Subject: [PATCH] feat:privacy provider additions for recommendations table

---
 dta/classes/privacy/provider.php     | 20 ++++++++++++++++++++
 dta/lang/en/assignsubmission_dta.php |  6 ++++++
 2 files changed, 26 insertions(+)

diff --git a/dta/classes/privacy/provider.php b/dta/classes/privacy/provider.php
index 7eb66e4..8e55c54 100644
--- a/dta/classes/privacy/provider.php
+++ b/dta/classes/privacy/provider.php
@@ -81,6 +81,20 @@ class provider implements \core_privacy\local\metadata\provider,
             'privacy:metadata:assignsubmission_dta_result'
         );
 
+        $collection->add_database_table(
+            'assignsubmission_dta_recommendations',
+            [
+                'assignmentid' => 'privacy:metadata:assignsubmission_dta_summary:assignmentid',
+                'submissionid' => 'privacy:metadata:assignsubmission_dta_summary:submissionid',
+                'topic'=> 'privacy:metadata:assignsubmission_dta_recommendations:topic',
+                'exercise_name'=> 'privacy:metadata:assignsubmission_dta_recommendations:exercise_name',
+                'url'=> 'privacy:metadata:assignsubmission_dta_recommendations:url',
+                'difficulty'=> 'privacy:metadata:assignsubmission_dta_recommendations:difficulty',
+                'score'=> 'privacy:metadata:assignsubmission_dta_recommendations:score',
+            ],
+            'privacy:metadata:assignsubmission_dta_recommendations'
+        );
+
         $collection->add_external_location_link('dta_backend', [
                 'assignmentid' => 'privacy:metadata:assignsubmission_dta_summary:assignmentid',
                 'submissionid' => 'privacy:metadata:assignsubmission_dta_summary:submissionid',
@@ -174,6 +188,7 @@ class provider implements \core_privacy\local\metadata\provider,
         // Delete records from assignsubmission_dta tables.
         $DB->delete_records('assignsubmission_dta_result', ['assignmentid' => $assignmentid]);
         $DB->delete_records('assignsubmission_dta_summary', ['assignmentid' => $assignmentid]);
+        $DB->delete_records('assignsubmission_dta_recommendations', ['assignmentid' => $assignmentid]);
     }
 
     /**
@@ -202,6 +217,10 @@ class provider implements \core_privacy\local\metadata\provider,
             'assignmentid' => $assignmentid,
             'submissionid' => $submissionid,
             ]);
+        $DB->delete_records('assignsubmission_dta_recommendations', [
+            'assignmentid' => $assignmentid,
+            'submissionid' => $submissionid,
+            ]);
     }
 
     /**
@@ -229,6 +248,7 @@ class provider implements \core_privacy\local\metadata\provider,
         $params['assignid'] = $deletedata->get_assignid();
         $DB->delete_records_select('assignsubmission_dta_result', "assignmentid = :assignid AND submissionid $sql", $params);
         $DB->delete_records_select('assignsubmission_dta_summary', "assignmentid = :assignid AND submissionid $sql", $params);
+        $DB->delete_records_select('assignsubmission_dta_recommendations', "assignmentid = :assignid AND submissionid $sql", $params);
     }
 
     /**
diff --git a/dta/lang/en/assignsubmission_dta.php b/dta/lang/en/assignsubmission_dta.php
index 9e55c4e..d4c5cdb 100644
--- a/dta/lang/en/assignsubmission_dta.php
+++ b/dta/lang/en/assignsubmission_dta.php
@@ -163,6 +163,12 @@ $string["privacy:metadata:assignsubmission_dta_result:column_number"] = "Column
 $string["privacy:metadata:assignsubmission_dta_result:line_number"] = "Line number of failed individual compilation or test";
 $string["privacy:metadata:assignsubmission_dta_result:position"] = "Position of failed individual compilation or test";
 $string["privacy:metadata:assignsubmission_dta_result"] = "Individual Dockerized Test Agent (DTA) results";
+$string["privacy:metadata:assignsubmission_dta_recommendations:topic"] = "Topic of recommendation";
+$string["privacy:metadata:assignsubmission_dta_recommendations:exercise_name"] = "Name of exercise";
+$string["privacy:metadata:assignsubmission_dta_recommendations:url"] = "Url of recommended exercise";
+$string["privacy:metadata:assignsubmission_dta_recommendations:difficulty"] = "Difficulty level of exercise";
+$string["privacy:metadata:assignsubmission_dta_recommendations:score"] = "Score achieved in exercise";
+$string["privacy:metadata:assignsubmission_dta_recommendations"] = "Individual Dockerized Test Agent (DTA) recommendations";
 $string["privacy:metadata:dta_backend"] = "Dockerized Test Agent (DTA) backend ReST web service";
 
 //PLUGIN
-- 
GitLab