From 8e9e343e09a87509af9f70b490d093f3e1bfbb1a Mon Sep 17 00:00:00 2001
From: Gero Lueckemeyer <gero.lueckemeyer@hft-stuttgart.de>
Date: Thu, 28 Dec 2023 15:00:48 +0100
Subject: [PATCH] fixed comments & parameters, bumped version

---
 dta.zip                          | Bin 24076 -> 24163 bytes
 dta/classes/privacy/provider.php |   7 +++++++
 dta/lib.php                      |   4 ++--
 dta/locallib.php                 |   4 ++--
 dta/utils/backend.php            |  20 ++++++--------------
 dta/utils/database.php           |   8 ++++----
 dta/utils/view.php               |   8 ++++----
 dta/version.php                  |   6 +++---
 8 files changed, 28 insertions(+), 29 deletions(-)

diff --git a/dta.zip b/dta.zip
index bf683ed10c2524ba6fa4e60403149184f3f4f67d..c4aeafad02cc5f5c807c2b7c264f98588c25e477 100644
GIT binary patch
delta 16968
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
S2OQ)glYhkWu~~+JLI40U)aDQX

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

diff --git a/dta/classes/privacy/provider.php b/dta/classes/privacy/provider.php
index 00558e7..6ad71ed 100644
--- a/dta/classes/privacy/provider.php
+++ b/dta/classes/privacy/provider.php
@@ -28,6 +28,13 @@ use core_privacy\local\request\writer;
 use core_privacy\local\request\contextlist;
 use mod_assign\privacy\assign_plugin_request_data;
 
+/**
+ * provider for data privacy
+ *
+ * @package assignsubmission_dta
+ * @license   http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
+ * @copyright Gero Lueckemeyer and student project teams
+ */
 class provider implements \core_privacy\local\metadata\provider,
         \mod_assign\privacy\assignsubmission_provider,
         \mod_assign\privacy\assignsubmission_user_provider {
diff --git a/dta/lib.php b/dta/lib.php
index c090bfc..7f24d41 100644
--- a/dta/lib.php
+++ b/dta/lib.php
@@ -37,9 +37,9 @@ function assignsubmission_dta_pluginfile(
     $course,
     $cm,
     context $context,
-    $filearea,
+    string $filearea,
     $args,
-    $forcedownload
+    bool $forcedownload
     ) {
     global $DB, $CFG;
 
diff --git a/dta/locallib.php b/dta/locallib.php
index 3aaadac..fa9e0f9 100644
--- a/dta/locallib.php
+++ b/dta/locallib.php
@@ -174,7 +174,7 @@ class assign_submission_dta extends assign_submission_plugin {
      * @param int $userid current user
      * @return bool form elements added
      */
-    public function get_form_elements_for_user($submissionorgrade, MoodleQuickForm $mform, stdClass $data, $userid): bool {
+    public function get_form_elements_for_user($submissionorgrade, MoodleQuickForm $mform, stdClass $data, int $userid): bool {
         // Prepare submission filearea.
         $data = file_prepare_standard_filemanager(
             $data,
@@ -228,7 +228,7 @@ class assign_submission_dta extends assign_submission_plugin {
      * @param string $areaid filearea id to count
      * @return int
      */
-    private function count_files($submissionid, $areaid) {
+    private function count_files(int $submissionid, string $areaid) {
         $fs = get_file_storage();
         $files = $fs->get_area_files($this->assignment->get_context()->id,
             self::COMPONENT_NAME,
diff --git a/dta/utils/backend.php b/dta/utils/backend.php
index a881f9f..fc5fd83 100644
--- a/dta/utils/backend.php
+++ b/dta/utils/backend.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/>.
 
-/**
- * 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
  *
@@ -48,11 +40,11 @@ class DtaBackendUtils {
     /**
      * Sends the configuration textfile uploaded by prof to the backend.
      *
-     * @param $assignment assignment this test-config belongs to
-     * @param $file uploaded test-config
+     * @param stdClass $assignment assignment this test-config belongs to
+     * @param stdClass $file uploaded test-config
      * @return bool true if no error occurred
      */
-    public static function sendtestconfigtobackend($assignment, $file): bool {
+    public static function sendtestconfigtobackend(stdClass $assignment, $file): bool {
         $backendaddress = self::getbackendbaseurl();
         if (empty($backendaddress)) {
             return true;
@@ -78,11 +70,11 @@ class DtaBackendUtils {
     /**
      * Sends sumbission config or archive to backend to be tested.
      *
-     * @param $assignment assignment this submission is done for
-     * @param $file submission config file or archive with submission
+     * @param stdClass $assignment assignment this submission is done for
+     * @param stdClass $file submission config file or archive with submission
      * @return string json string with testresults or null on error
      */
-    public static function sendsubmissiontobackend($assignment, $file): ?string {
+    public static function sendsubmissiontobackend(stdClass $assignment, $file): ?string {
         $backendaddress = self::getbackendbaseurl();
         if (empty($backendaddress)) {
             return true;
diff --git a/dta/utils/database.php b/dta/utils/database.php
index 8d54c06..d171813 100644
--- a/dta/utils/database.php
+++ b/dta/utils/database.php
@@ -37,7 +37,7 @@ class DbUtils {
      *
      * @param int $assignmentid assignment id to search for
      * @param int $submissionid submission id to search for
-     * @return DttResultSummary representing given submission
+     * @return DtaResultSummary representing given submission
      */
     public static function getresultsummaryfromdatabase(
         int $assignmentid,
@@ -88,9 +88,9 @@ class DbUtils {
      * save given result summary and single results to database
      * under given assignment and submission id
      *
-     * @param $assignmentid assigment this is submission is linked to
-     * @param $submissionid submission of this result
-     * @param $summary instance to persist
+     * @param int $assignmentid assigment this is submission is linked to
+     * @param int $submissionid submission of this result
+     * @param DtaResultSummary $summary instance to persist
      */
     public static function storeresultsummarytodatabase(
         int $assignmentid,
diff --git a/dta/utils/view.php b/dta/utils/view.php
index ebd223a..41409da 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 $assignmentid assignment
-     * @param $submissionid submission to create a report for
+     * @param int $assignmentid id of the assignment
+     * @param int $submissionid id of the submission for which to create a report
      * @return string html
      */
     public static function generatesummaryhtml(
@@ -87,8 +87,8 @@ class view_submission_utils {
     /**
      * generates detailed view html
      *
-     * @param $assignmentid assignment
-     * @param $submissionid submission to create a report for
+     * @param int $assignmentid id of the assignment
+     * @param int $submissionid id of the submission for which to create a report
      */
     public static function generatedetailhtml(
         int $assignmentid,
diff --git a/dta/version.php b/dta/version.php
index b7de914..c1d02a0 100644
--- a/dta/version.php
+++ b/dta/version.php
@@ -24,8 +24,8 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$plugin->version   = 2000000;
-$plugin->requires  = 2019111800; // Moodle 3.8.
+$plugin->version   = 3000000;
+$plugin->requires  = 2020061525; // Moodle 3.9 LTS. Will likely run with unsupported older versions of the 3.x branch.
 $plugin->component = 'assignsubmission_dta';
 $plugin->maturity  = MATURITY_STABLE;
-$plugin->release   = "2.0.0";
+$plugin->release   = "3.0.0";
-- 
GitLab