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