From 348d8bed610bd310516f7eed1bd596fd961b60c3 Mon Sep 17 00:00:00 2001
From: Gero Lueckemeyer <gero.lueckemeyer@hft-stuttgart.de>
Date: Mon, 30 Oct 2023 10:42:37 +0100
Subject: [PATCH] added gpl v3 preamble required for moodle approval

---
 dta.zip                              | Bin 14582 -> 17975 bytes
 dta/db/upgrade.php                   |  26 ++++++++++++----------
 dta/lang/en/assignsubmission_dta.php |  14 ++++++++++++
 dta/lib.php                          |  14 ++++++++++++
 dta/locallib.php                     |  14 ++++++++++++
 dta/models/DtaResult.php             |  14 ++++++++++++
 dta/settings.php                     |  14 ++++++++++++
 dta/styles.css                       |  32 +++++++++++++--------------
 dta/utils/backend.php                |  14 ++++++++++++
 dta/utils/database.php               |  14 ++++++++++++
 dta/utils/view.php                   |  14 ++++++++++++
 dta/version.php                      |  15 +++++++++++++
 12 files changed, 157 insertions(+), 28 deletions(-)

diff --git a/dta.zip b/dta.zip
index 0989f34f5c9409feed051c194fad6f36ec252ac7..97275a3081dca3d9f2c3bec385c0939025ecf263 100644
GIT binary patch
delta 15935
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

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

diff --git a/dta/db/upgrade.php b/dta/db/upgrade.php
index e869825..66321f5 100644
--- a/dta/db/upgrade.php
+++ b/dta/db/upgrade.php
@@ -1,4 +1,18 @@
 <?php
+// This file is part of Moodle - http://moodle.org/
+//
+// Moodle is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// Moodle is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
 
 /**
  * Upgrade code for install
@@ -17,17 +31,5 @@ defined('MOODLE_INTERNAL') || die();
 function xmldb_assignsubmission_dta_upgrade($oldversion) {
     global $CFG;
 
-    // Moodle v2.8.0 release upgrade line.
-    // Put any upgrade step following this.
-
-    // Moodle v2.9.0 release upgrade line.
-    // Put any upgrade step following this.
-
-    // Moodle v3.0.0 release upgrade line.
-    // Put any upgrade step following this.
-
-    // Moodle v3.1.0 release upgrade line.
-    // Put any upgrade step following this.
-
     return true;
 }
diff --git a/dta/lang/en/assignsubmission_dta.php b/dta/lang/en/assignsubmission_dta.php
index cf15ad2..dced807 100644
--- a/dta/lang/en/assignsubmission_dta.php
+++ b/dta/lang/en/assignsubmission_dta.php
@@ -1,4 +1,18 @@
 <?php
+// This file is part of Moodle - http://moodle.org/
+//
+// Moodle is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// Moodle is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
 
 /**
  * Strings for component "assignsubmission_dta", language "en"
diff --git a/dta/lib.php b/dta/lib.php
index a28c90b..058e217 100644
--- a/dta/lib.php
+++ b/dta/lib.php
@@ -1,4 +1,18 @@
 <?php
+// This file is part of Moodle - http://moodle.org/
+//
+// Moodle is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// Moodle is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// 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 moodle hooks for the submission DTA plugin
diff --git a/dta/locallib.php b/dta/locallib.php
index f0fff61..25bba02 100644
--- a/dta/locallib.php
+++ b/dta/locallib.php
@@ -1,4 +1,18 @@
 <?php
+// This file is part of Moodle - http://moodle.org/
+//
+// Moodle is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// Moodle is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
 
 defined('MOODLE_INTERNAL') || die();
 
diff --git a/dta/models/DtaResult.php b/dta/models/DtaResult.php
index 97d67bd..e96e84b 100644
--- a/dta/models/DtaResult.php
+++ b/dta/models/DtaResult.php
@@ -1,4 +1,18 @@
 <?php
+// This file is part of Moodle - http://moodle.org/
+//
+// Moodle is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// Moodle is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
 
 class DtaResult {
 
diff --git a/dta/settings.php b/dta/settings.php
index 1ec52a8..1dcd60a 100644
--- a/dta/settings.php
+++ b/dta/settings.php
@@ -1,4 +1,18 @@
 <?php
+// This file is part of Moodle - http://moodle.org/
+//
+// Moodle is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// Moodle is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// 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 defines the admin settings for this plugin
diff --git a/dta/styles.css b/dta/styles.css
index 2f74951..0919503 100644
--- a/dta/styles.css
+++ b/dta/styles.css
@@ -1,15 +1,15 @@
 /* Prevent word breaking in the grading table */
-.dttSubmissionSummary {
+.dtaSubmissionSummary {
     white-space: nowrap;
 }
 
-.dttSubmissionSummary,
-.dttSubmissionDetails {
+.dtaSubmissionSummary,
+.dtaSubmissionDetails {
     margin-top: 15px;
 }
 
 /* empty div between summary and detail table */
-.dttSpacer {
+.dtaSpacer {
     margin-top: 30px;
 }
 
@@ -17,7 +17,7 @@
 * Layout for the Detail view
 ****************************************************************/
 
-.dttTable {
+.dtaTable {
     display: inline-block;
     max-width: 100%;
     overflow: auto;
@@ -27,48 +27,48 @@
     overflow-x: hidden;
 }
 
-.dttTableHeaderRow {
+.dtaTableHeaderRow {
     font-weight: bold;
     color: white !important;
     background-color: gray !important;
 }
 
-.dttTableRow {
+.dtaTableRow {
     background-color: unset !important;
     border-top: .05rem solid lightgray;
 }
 
-.dttTableHeaderRow th,
-.dttTableRow td {
+.dtaTableHeaderRow th,
+.dtaTableRow td {
     padding: .9375em 1.25em;
 }
 
-.dttStacktraceDetails {
+.dtaStacktraceDetails {
     max-height: 300px;
     max-width: 70%;
     overflow: auto;
 }
 
-.dttResultUnknown {
+.dtaResultUnknown {
     border-left: 10px solid gray;
 }
 
-.dttResultSuccess {
+.dtaResultSuccess {
     border-left: 10px solid green;
 }
 
-.dttResultFailure {
+.dtaResultFailure {
     border-left: 10px solid orange;
 }
 
-.dttResultCompilationError {
+.dtaResultCompilationError {
     border-left: 10px solid red;
 }
 
-.dttTableRow:hover {
+.dtaTableRow:hover {
     background-color: lightgray !important;
 }
 
-.dttTableSpacer {
+.dtaTableSpacer {
     border-bottom: 2px solid darkgray;
 }
diff --git a/dta/utils/backend.php b/dta/utils/backend.php
index f6d4420..4e790a8 100644
--- a/dta/utils/backend.php
+++ b/dta/utils/backend.php
@@ -1,4 +1,18 @@
 <?php
+// This file is part of Moodle - http://moodle.org/
+//
+// Moodle is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// Moodle is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
 
 class DtaBackendUtils {
 
diff --git a/dta/utils/database.php b/dta/utils/database.php
index 182ad5f..a704541 100644
--- a/dta/utils/database.php
+++ b/dta/utils/database.php
@@ -1,4 +1,18 @@
 <?php
+// This file is part of Moodle - http://moodle.org/
+//
+// Moodle is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// Moodle is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
 
 class DbUtils {
 
diff --git a/dta/utils/view.php b/dta/utils/view.php
index 4c494c5..8487870 100644
--- a/dta/utils/view.php
+++ b/dta/utils/view.php
@@ -1,4 +1,18 @@
 <?php
+// This file is part of Moodle - http://moodle.org/
+//
+// Moodle is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// Moodle is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
 
 class ViewSubmissionUtils {
 
diff --git a/dta/version.php b/dta/version.php
index c411f6c..ddff0ae 100644
--- a/dta/version.php
+++ b/dta/version.php
@@ -1,4 +1,19 @@
 <?php
+// This file is part of Moodle - http://moodle.org/
+//
+// Moodle is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// Moodle is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// 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 version information for the onlinetext DTA plugin
  *
-- 
GitLab