From ee0c7e205247a54e7a3049dfa7b0881fb1397e10 Mon Sep 17 00:00:00 2001
From: Gero Lueckemeyer <gero.lueckemeyer@hft-stuttgart.de>
Date: Tue, 31 Oct 2023 01:53:32 +0100
Subject: [PATCH] fixed short array declaration and last element comma
 according to moodle approval guidelines

---
 dta.zip                  | Bin 17623 -> 17649 bytes
 dta/lib.php              |   4 ++-
 dta/locallib.php         |  27 +++++++++++------
 dta/models/DtaResult.php |   4 +--
 dta/utils/backend.php    |  10 +++---
 dta/utils/database.php   |  36 +++++++++++-----------
 dta/utils/view.php       |  64 +++++++++++++++++++--------------------
 7 files changed, 77 insertions(+), 68 deletions(-)

diff --git a/dta.zip b/dta.zip
index bcedf44ce40e8e836a93f87059f9a6f3eb78b6d7..5281b7ce18750addae2502aa0df9ed896949b248 100644
GIT binary patch
delta 11338
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
beObK{|EE7YaS}*<aFn<t?7P6fqapqm)?I?l

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

diff --git a/dta/lib.php b/dta/lib.php
index 155b3f2..7b20a63 100644
--- a/dta/lib.php
+++ b/dta/lib.php
@@ -49,7 +49,9 @@ function assignsubmission_dta_pluginfile(
     require_login($course, false, $cm);
     $itemid = (int)array_shift($args);
     $record = $DB->get_record('assign_submission',
-        array('id' => $itemid),
+        [
+		    'id' => $itemid,
+        ],
         'userid, assignment, groupid',
         MUST_EXIST);
     $userid = $record->userid;
diff --git a/dta/locallib.php b/dta/locallib.php
index a218bde..c0f9559 100644
--- a/dta/locallib.php
+++ b/dta/locallib.php
@@ -100,7 +100,9 @@ class assign_submission_dta extends assign_submission_plugin {
             self::COMPONENT_NAME,
             self::ASSIGNSUBMISSION_DTA_FILEAREA_TEST,
             0,
-            array('subdirs' => 0)
+            [
+			    'subdirs' => 0,
+            ]
         );
 
         $defaultvalues[self::ASSIGNSUBMISSION_DTA_DRAFT_FILEAREA_TEST] = $draftitemid;
@@ -331,10 +333,17 @@ class assign_submission_dta extends assign_submission_plugin {
      * @return array
      */
     private function get_file_options(bool $settings): array {
-        $fileoptions = array('subdirs' => 0,
-            "maxfiles" => 1,
-            'accepted_types' => ($settings ? array(".txt") : array(".txt", ".zip")),
-            'return_types' => FILE_INTERNAL);
+        $fileoptions = [
+                'subdirs' => 0,
+                "maxfiles" => 1,
+                'accepted_types' => ($settings
+                    ? [".txt"]
+                    : [
+                        ".txt",
+                        ".zip",
+                    ]),
+                'return_types' => FILE_INTERNAL,
+            ];
         return $fileoptions;
     }
 
@@ -343,10 +352,10 @@ class assign_submission_dta extends assign_submission_plugin {
      * @return array - An array of fileareas (keys) and descriptions (values)
      */
     public function get_file_areas() {
-        return array(
+        return [
             self::ASSIGNSUBMISSION_DTA_FILEAREA_SUBMISSION => get_string("dta_submissions_fa", self::COMPONENT_NAME),
-            self::ASSIGNSUBMISSION_DTA_FILEAREA_TEST => get_string("dta_tests_fa", self::COMPONENT_NAME)
-        );
+            self::ASSIGNSUBMISSION_DTA_FILEAREA_TEST => get_string("dta_tests_fa", self::COMPONENT_NAME),
+        ];
     }
 
     /**
@@ -357,7 +366,7 @@ class assign_submission_dta extends assign_submission_plugin {
      * @return array - return an array of files indexed by filename
      */
     public function get_files(stdClass $submission, stdClass $user) {
-        $result = array();
+        $result = [];
         $fs = get_file_storage();
         $files = $fs->get_area_files($this->assignment->get_context()->id,
             self::COMPONENT_NAME,
diff --git a/dta/models/DtaResult.php b/dta/models/DtaResult.php
index 3a3ff30..f56b228 100644
--- a/dta/models/DtaResult.php
+++ b/dta/models/DtaResult.php
@@ -43,7 +43,7 @@ class DtaResult {
     /**
      * @return name of state like defined
      */
-    public static function getStateName(int $state): string {
+    public static function getstatename(int $state): string {
         if ($state == 1) {
             return "success";
         } else if ($state == 2) {
@@ -88,7 +88,7 @@ class DtaResultSummary {
      * @return array of DtaResult
      */
     private static function decodejsonresultarray($jsonarray): array {
-        $ret = array();
+        $ret = [];
         foreach ($jsonarray as $entry) {
             $value = new DtaResult();
             $value->packagename = $entry->packageName;
diff --git a/dta/utils/backend.php b/dta/utils/backend.php
index 173352b..9d8e17f 100644
--- a/dta/utils/backend.php
+++ b/dta/utils/backend.php
@@ -47,10 +47,10 @@ class DtaBackendUtils {
         $url = $backendaddress . "/v1/unittest";
 
         // Prepare params.
-        $params = array(
+        $params = [
             "unitTestFile" => $file,
-            "assignmentId" => $assignment->get_instance()->id
-        );
+            "assignmentId" => $assignment->get_instance()->id,
+        ];
 
         // If request returned null, return false to indicate failure.
         if (is_null(self::post($url, $params))) {
@@ -97,9 +97,7 @@ class DtaBackendUtils {
             return false;
         }
 
-        $options = array(
-            "CURLOPT_RETURNTRANSFER" => true
-        );
+        $options = ["CURLOPT_RETURNTRANSFER" => true];
 
         $curl = new curl();
         $response = $curl->post($url, $params, $options);
diff --git a/dta/utils/database.php b/dta/utils/database.php
index 0eb2380..0821d41 100644
--- a/dta/utils/database.php
+++ b/dta/utils/database.php
@@ -35,15 +35,15 @@ class DbUtils {
         global $DB;
 
         // Fetch data from database.
-        $summaryrecord = $DB->get_record(self::TABLE_SUMMARY, array(
+        $summaryrecord = $DB->get_record(self::TABLE_SUMMARY, [
             "assignment_id" => $assignmentid,
-            "submission_id" => $submissionid
-        ));
+            "submission_id" => $submissionid,
+        });
 
-        $resultsarray = $DB->get_records(self::TABLE_RESULT, array(
+        $resultsarray = $DB->get_records(self::TABLE_RESULT, [
             "assignment_id" => $assignmentid,
-            "submission_id" => $submissionid
-        ));
+            "submission_id" => $submissionid,
+        ]);
 
         // Create a summary instance.
         $summary = new DtaResultSummary();
@@ -51,7 +51,7 @@ class DbUtils {
         $summary->globalstacktrace = $summaryrecord->global_stacktrace;
         $summary->successfultestcompetencies = $summaryrecord->successful_competencies;
         $summary->overalltestcompetencies = $summaryrecord->tested_competencies;
-        $summary->results = array();
+        $summary->results = [];
 
         // Create result instances and add to array of summary instance.
         foreach ($resultsarray as $rr) {
@@ -96,9 +96,9 @@ class DbUtils {
         $summaryrecord->global_stacktrace = $summary->globalstacktrace;
         $summaryrecord->successful_competencies = $summary->successfultestcompetencies;
         $summaryrecord->tested_competencies = $summary->overalltestcompetencies;
-		
+
         // Prepare results to persist to array.
-        $resultrecords = array();
+        $resultrecords = [];
         foreach ($summary->results as $r) {
             $record = new stdClass();
             $record->assignment_id = $assignmentid;
@@ -117,21 +117,21 @@ class DbUtils {
         }
 
         // If results already exist, delete old values beforehand.
-        $submission = $DB->get_record(self::TABLE_SUMMARY, array(
+        $submission = $DB->get_record(self::TABLE_SUMMARY, [
             'assignment_id' => $assignmentid,
-            'submission_id' => $submissionid
-        ));
+            'submission_id' => $submissionid,
+        ]);
 
         if ($submission) {
-            $DB->delete_records(self::TABLE_RESULT, array(
+            $DB->delete_records(self::TABLE_RESULT, [
                 'assignment_id' => $assignmentid,
-                'submission_id' => $submissionid
-            ));
+                'submission_id' => $submissionid,
+            ]);
 
-            $DB->delete_records(self::TABLE_SUMMARY, array(
+            $DB->delete_records(self::TABLE_SUMMARY, [
                 'assignment_id' => $assignmentid,
-                'submission_id' => $submissionid
-            ));
+                'submission_id' => $submissionid,
+            ]);
         }
 
         // Create summary and single result entries.
diff --git a/dta/utils/view.php b/dta/utils/view.php
index 2193b61..4ac060f 100644
--- a/dta/utils/view.php
+++ b/dta/utils/view.php
@@ -74,8 +74,8 @@ class ViewSubmissionUtils {
         $html = "";
 
         // Define a few css classes and prepare html attribute arrays to beautify the output.
-        $tableheaderrowattributes = array("class" => "dtaTableHeaderRow");
-        $tablerowattributes = array("class" => "dtaTableRow");
+        $tableheaderrowattributes = ["class" => "dtaTableHeaderRow"];
+        $tablerowattributes = ["class" => "dtaTableRow"];
         $resultrowattributes = $tablerowattributes;
         $unknownattributes = 'dtaResultUnknown';
         $successattributes = 'dtaResultSuccess';
@@ -84,14 +84,14 @@ class ViewSubmissionUtils {
 
         // Summary table.
         $tmp = "";
-        $tmp .= html_writer::tag("th", "Summary", array("class" => "dtaTableHeader"));
-        $tmp .= html_writer::empty_tag("th", array("class" => "dtaTableHeader"));
+        $tmp .= html_writer::tag("th", "Summary", ["class" => "dtaTableHeader"]);
+        $tmp .= html_writer::empty_tag("th", ["class" => "dtaTableHeader"]);
         $header = html_writer::tag("tr", $tmp, $tableheaderrowattributes);
         $header = html_writer::tag("thead", $header);
 
         $body = "";
         $tmp = "";
-        $attributes = array("class" => "dtaTableData");
+        $attributes = ["class" => "dtaTableData"];
         $tmp .= html_writer::tag(
             "td",
             "result items in sum",
@@ -189,17 +189,17 @@ class ViewSubmissionUtils {
         $body .= html_writer::tag("tr", $tmp, $resultrowattributes);
 
         $body = html_writer::tag("tbody", $body);
-        $table = html_writer::tag("table", $header . $body, array("class" => "dtaTable"));
+        $table = html_writer::tag("table", $header . $body, ["class" => "dtaTable"]);
 
         $html .= $table;
 
         // Add empty div for spacing between summary and details table.
-        $html .= html_writer::empty_tag("div", array("class" => "dtaSpacer"));
+        $html .= html_writer::empty_tag("div", ["class" => "dtaSpacer"]);
 
         // Details table.
         $tmp = "";
-        $tmp .= html_writer::tag("th", "Details", array("class" => "dtaTableHeader"));
-        $tmp .= html_writer::empty_tag("th", array("class" => "dtaTableHeader"));
+        $tmp .= html_writer::tag("th", "Details", ["class" => "dtaTableHeader"]);
+        $tmp .= html_writer::empty_tag("th", ["class" => "dtaTableHeader"]);
         $header = html_writer::tag("tr", $tmp, $tableheaderrowattributes);
         $header = html_writer::tag("thead", $header);
 
@@ -291,31 +291,31 @@ class ViewSubmissionUtils {
                 }
 
                 if (!is_null($r->columnNumber) && $r->columnNumber > 0) {
-                $tmp = "";
-                $tmp .= html_writer::tag(
-                    "td",
-                    "column number",
-                    $attributes);
+                    $tmp = "";
+                    $tmp .= html_writer::tag(
+                        "td",
+                        "column number",
+                        $attributes);
 
-                $tmp .= html_writer::tag(
-                    "td",
-                    $r->columnNumber,
-                    $attributes);
-                $body .= html_writer::tag("tr", $tmp, $resultrowattributes);
+                    $tmp .= html_writer::tag(
+                        "td",
+                        $r->columnNumber,
+                        $attributes);
+                    $body .= html_writer::tag("tr", $tmp, $resultrowattributes);
                 }
 
                 if (!is_null($r->position) && $r->position > 0) {
-                $tmp = "";
-                $tmp .= html_writer::tag(
-                    "td",
-                    "position",
-                    $attributes);
+                    $tmp = "";
+                    $tmp .= html_writer::tag(
+                        "td",
+                        "position",
+                        $attributes);
 
-                $tmp .= html_writer::tag(
-                    "td",
-                    $r->position,
-                    $attributes);
-                $body .= html_writer::tag("tr", $tmp, $resultrowattributes);
+                    $tmp .= html_writer::tag(
+                        "td",
+                        $r->position,
+                        $attributes);
+                    $body .= html_writer::tag("tr", $tmp, $resultrowattributes);
                 }
 
                 $tmp = "";
@@ -326,17 +326,17 @@ class ViewSubmissionUtils {
 
                 $tmp .= html_writer::tag(
                     "td",
-                    html_writer::tag("details", $r->stacktrace, array("class" => "dtaStacktraceDetails")),
+                    html_writer::tag("details", $r->stacktrace, ["class" => "dtaStacktraceDetails"]),
                     $attributes);
                 $body .= html_writer::tag("tr", $tmp, $resultrowattributes);
             }
 
             // Set spacerrow value if null for next rount separation.
             if (is_null($spacerrow)) {
-                $spacerrow = html_writer::empty_tag("tr", array("class" => "dtaTableSpacer"));
+                $spacerrow = html_writer::empty_tag("tr", ["class" => "dtaTableSpacer"]);
             }
         }
-        $html .= html_writer::tag("table", $header . $body, array("class" => "dtaTable"));
+        $html .= html_writer::tag("table", $header . $body, ["class" => "dtaTable"]);
 
         // Wrap generated html into final div.
         $html = html_writer::div($html, "dtaSubmissionDetails");
-- 
GitLab