From c3f1650dab03c4c947426a38fc696727abd60c2a Mon Sep 17 00:00:00 2001
From: Gero Lueckemeyer <gero.lueckemeyer@hft-stuttgart.de>
Date: Fri, 29 Dec 2023 01:00:14 +0100
Subject: [PATCH] restored util directory

---
 dta.zip                          | Bin 24202 -> 24257 bytes
 dta/classes/privacy/provider.php |  14 +++++++-------
 dta/lib.php                      |   4 ++--
 dta/locallib.php                 |   2 +-
 dta/models/DtaResult.php         |   5 +++--
 dta/utils/backend.php            |  20 ++++++++++++++------
 dta/utils/database.php           |  16 ++++------------
 dta/utils/view.php               |   8 ++++----
 dta/version.php                  |   2 +-
 9 files changed, 36 insertions(+), 35 deletions(-)

diff --git a/dta.zip b/dta.zip
index 8e1804094b0480d23171076450aa15013eda0460..3a03fb56fd9988ad9f00e20fa842f77e9cc4e0c9 100644
GIT binary patch
delta 19793
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

delta 19694
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

diff --git a/dta/classes/privacy/provider.php b/dta/classes/privacy/provider.php
index d676827..fcbe949 100644
--- a/dta/classes/privacy/provider.php
+++ b/dta/classes/privacy/provider.php
@@ -16,11 +16,6 @@
 
 namespace assignsubmission_dta\privacy;
 
-use core_privacy\local\metadata\collection;
-use core_privacy\local\request\writer;
-use core_privacy\local\request\contextlist;
-use mod_assign\privacy\assign_plugin_request_data;
-
 /**
  * provider for data privacy
  *
@@ -28,6 +23,11 @@ use mod_assign\privacy\assign_plugin_request_data;
  * @license   http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  * @copyright Gero Lueckemeyer and student project teams
  */
+use core_privacy\local\metadata\collection;
+use core_privacy\local\request\writer;
+use core_privacy\local\request\contextlist;
+use mod_assign\privacy\assign_plugin_request_data;
+
 class provider implements \core_privacy\local\metadata\provider,
         \mod_assign\privacy\assignsubmission_provider,
         \mod_assign\privacy\assignsubmission_user_provider {
@@ -39,9 +39,9 @@ class provider implements \core_privacy\local\metadata\provider,
 
     /**
      * This is the metadata information for the assignsubmission_dta plugin.
-     * @param stdClass $collection the collection of metadata filled by the plugin
+     * @param collection $collection the collection of metadata filled by the plugin
      */
-    public static function get_metadata(stdClass $collection): collection {
+    public static function get_metadata(collection $collection): collection {
         $collection->add_subsystem_link(
             'core_files',
             [],
diff --git a/dta/lib.php b/dta/lib.php
index 7f24d41..c090bfc 100644
--- a/dta/lib.php
+++ b/dta/lib.php
@@ -37,9 +37,9 @@ function assignsubmission_dta_pluginfile(
     $course,
     $cm,
     context $context,
-    string $filearea,
+    $filearea,
     $args,
-    bool $forcedownload
+    $forcedownload
     ) {
     global $DB, $CFG;
 
diff --git a/dta/locallib.php b/dta/locallib.php
index fa9e0f9..e3ad8e0 100644
--- a/dta/locallib.php
+++ b/dta/locallib.php
@@ -226,7 +226,7 @@ class assign_submission_dta extends assign_submission_plugin {
      *
      * @param int $submissionid submission id to check
      * @param string $areaid filearea id to count
-     * @return int
+     * @return int number of files submitted in the filearea
      */
     private function count_files(int $submissionid, string $areaid) {
         $fs = get_file_storage();
diff --git a/dta/models/DtaResult.php b/dta/models/DtaResult.php
index 592d6f0..bd7d4b0 100644
--- a/dta/models/DtaResult.php
+++ b/dta/models/DtaResult.php
@@ -143,9 +143,9 @@ class DtaResultSummary {
     /**
      * Decodes the JSON result summary returned by the backend service call into the plugin PHP data structure.
      * @param string $jsonstring jsonString containing DtaResultSummary
-     * @return DtaResultSummary
+     * @return DtaResultSummary the result summary
      */
-    public static function decodejson($jsonstring): DtaResultSummary {
+    public static function decodejson(string $jsonstring): DtaResultSummary {
         $response = json_decode($jsonstring);
 
         $summary = new DtaResultSummary();
@@ -188,6 +188,7 @@ class DtaResultSummary {
         return $ret;
     }
 
+
     /**
      * Returns the number of detail results attached to the summary.
      * @return int count of occurences
diff --git a/dta/utils/backend.php b/dta/utils/backend.php
index fc5fd83..a881f9f 100644
--- a/dta/utils/backend.php
+++ b/dta/utils/backend.php
@@ -14,6 +14,14 @@
 // You should have received a copy of the GNU General Public License
 // along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
 
+/**
+ * This file contains the backend webservice contact functionality for the DTA plugin
+ *
+ * @package    assignsubmission_dta
+ * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
+ * @copyright Gero Lueckemeyer and student project teams
+ */
+
 /**
  * backend webservice contact utility class
  *
@@ -40,11 +48,11 @@ class DtaBackendUtils {
     /**
      * Sends the configuration textfile uploaded by prof to the backend.
      *
-     * @param stdClass $assignment assignment this test-config belongs to
-     * @param stdClass $file uploaded test-config
+     * @param $assignment assignment this test-config belongs to
+     * @param $file uploaded test-config
      * @return bool true if no error occurred
      */
-    public static function sendtestconfigtobackend(stdClass $assignment, $file): bool {
+    public static function sendtestconfigtobackend($assignment, $file): bool {
         $backendaddress = self::getbackendbaseurl();
         if (empty($backendaddress)) {
             return true;
@@ -70,11 +78,11 @@ class DtaBackendUtils {
     /**
      * Sends sumbission config or archive to backend to be tested.
      *
-     * @param stdClass $assignment assignment this submission is done for
-     * @param stdClass $file submission config file or archive with submission
+     * @param $assignment assignment this submission is done for
+     * @param $file submission config file or archive with submission
      * @return string json string with testresults or null on error
      */
-    public static function sendsubmissiontobackend(stdClass $assignment, $file): ?string {
+    public static function sendsubmissiontobackend($assignment, $file): ?string {
         $backendaddress = self::getbackendbaseurl();
         if (empty($backendaddress)) {
             return true;
diff --git a/dta/utils/database.php b/dta/utils/database.php
index e9aae83..8d54c06 100644
--- a/dta/utils/database.php
+++ b/dta/utils/database.php
@@ -14,14 +14,6 @@
 // You should have received a copy of the GNU General Public License
 // along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
 
-/**
- * persistence layer utility class
- *
- * @package assignsubmission_dta
- * @license   http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
- * @copyright Gero Lueckemeyer and student project teams
- */
-
 /**
  * persistence layer utility class
  *
@@ -45,7 +37,7 @@ class DbUtils {
      *
      * @param int $assignmentid assignment id to search for
      * @param int $submissionid submission id to search for
-     * @return DtaResultSummary representing given submission
+     * @return DttResultSummary representing given submission
      */
     public static function getresultsummaryfromdatabase(
         int $assignmentid,
@@ -96,9 +88,9 @@ class DbUtils {
      * save given result summary and single results to database
      * under given assignment and submission id
      *
-     * @param int $assignmentid assigment this is submission is linked to
-     * @param int $submissionid submission of this result
-     * @param DtaResultSummary $summary instance to persist
+     * @param $assignmentid assigment this is submission is linked to
+     * @param $submissionid submission of this result
+     * @param $summary instance to persist
      */
     public static function storeresultsummarytodatabase(
         int $assignmentid,
diff --git a/dta/utils/view.php b/dta/utils/view.php
index 41409da..ebd223a 100644
--- a/dta/utils/view.php
+++ b/dta/utils/view.php
@@ -31,8 +31,8 @@ class view_submission_utils {
     /**
      * generates a short summary html
      *
-     * @param int $assignmentid id of the assignment
-     * @param int $submissionid id of the submission for which to create a report
+     * @param $assignmentid assignment
+     * @param $submissionid submission to create a report for
      * @return string html
      */
     public static function generatesummaryhtml(
@@ -87,8 +87,8 @@ class view_submission_utils {
     /**
      * generates detailed view html
      *
-     * @param int $assignmentid id of the assignment
-     * @param int $submissionid id of the submission for which to create a report
+     * @param $assignmentid assignment
+     * @param $submissionid submission to create a report for
      */
     public static function generatedetailhtml(
         int $assignmentid,
diff --git a/dta/version.php b/dta/version.php
index c1d02a0..6550874 100644
--- a/dta/version.php
+++ b/dta/version.php
@@ -25,7 +25,7 @@
 defined('MOODLE_INTERNAL') || die();
 
 $plugin->version   = 3000000;
-$plugin->requires  = 2020061525; // Moodle 3.9 LTS. Will likely run with unsupported older versions of the 3.x branch.
+$plugin->requires  = 2020061525; // Moodle 3.9 LTS. Older unsupported versions from the 3.x branch should also work.
 $plugin->component = 'assignsubmission_dta';
 $plugin->maturity  = MATURITY_STABLE;
 $plugin->release   = "3.0.0";
-- 
GitLab