diff --git a/classes/form/edit_spellcheck.php b/classes/form/edit_spellcheck.php index 83b40e2..fa0ae1b 100644 --- a/classes/form/edit_spellcheck.php +++ b/classes/form/edit_spellcheck.php @@ -155,6 +155,16 @@ protected function get_page_url_for_dynamic_submission(): moodle_url { return new moodle_url('/mod/quiz/review.php', $params); } + /** + * Retrieves the context related to the given attemptstepid. + * + * First checks if a context has already been retrieved, if not, it retrieves + * the question usage context from the attempt step and the question attempt + * and finally creates a new context based on the usage context ID. + * + * @param int $attemptstepid The ID of the attempt step. + * @return context The context object. + */ private function get_context_from_attemptstepid(int $attemptstepid) { global $DB; if (!is_null($this->context)) { diff --git a/classes/output/mobile.php b/classes/output/mobile.php index a2af9da..7acac94 100644 --- a/classes/output/mobile.php +++ b/classes/output/mobile.php @@ -46,10 +46,10 @@ public static function mobile_get_aitext($args) { 'templates' => [ [ 'id' => 'main', - 'html' => file_get_contents($templatepath) - ] + 'html' => file_get_contents($templatepath), + ], ], - 'javascript' => file_get_contents($CFG->dirroot . '/question/type/aitext/mobile/mobile.js') + 'javascript' => file_get_contents($CFG->dirroot . '/question/type/aitext/mobile/mobile.js'), ]; } } diff --git a/lang/de/qtype_aitext.php b/lang/de/qtype_aitext.php index af12fb5..6342787 100644 --- a/lang/de/qtype_aitext.php +++ b/lang/de/qtype_aitext.php @@ -31,6 +31,7 @@ $string['answerfiles'] = 'Antwortdateien'; $string['answertext'] = 'Antworttext'; $string['attachmentsoptional'] = 'Anhänge sind optional'; +$string['automatic_spellcheck'] = 'Automatische Rechtschreibprüfung'; $string['cachedef_stringdata'] = 'Cachedef stringdata'; $string['defaultmarksscheme'] = 'Markierungsschema'; $string['defaultmarksscheme_setting'] = 'Dies wird das Standard-Bewertungsschema für neue Fragen sein. Fragenautoren sollten dieses Schema an die jeweilige Frage anpassen.'; @@ -44,9 +45,9 @@ $string['err_maxwordlimitnegative'] = 'Maximales Wortlimit kann keine negative Zahl sein'; $string['err_minwordlimit'] = 'Minimum word limit is enabled but is not set'; $string['err_minwordlimitnegative'] = 'Minimales Wortlimit kann keine negative Zahl sein'; +$string['err_parammissing'] = 'Ungültige Parameter. Stellen Sie sicher, dass Sie eine Beispiel-Antwort und einen Prompt eingegeben haben.'; $string['err_retrievingfeedback'] = 'Fehler beim Abrufen des Feedbacks vom KI-Tool: {$a}'; $string['err_retrievingtranslation'] = 'Fehler beim Abrufen der Übersetzung: {$a}'; -$string['err_parammissing'] = 'Ungültige Parameter. Stellen Sie sicher, dass Sie eine Beispiel-Antwort und einen Prompt eingegeben haben.'; $string['formateditor'] = 'HTML-Editor'; $string['formateditorfilepicker'] = 'HTML-Editor mit Dateipicker'; $string['formatmonospaced'] = 'Einfacher Text, Schriftart monospaced'; @@ -81,8 +82,6 @@ $string['responsefieldlines'] = 'Größe des Eingabefeldes'; $string['responseformat'] = 'Antwortformat'; $string['responseformat_setting'] = 'Der Editor, den der Schüler bei der Beantwortung verwendet'; -$string['responseoptions'] = 'Antwortmöglichkeiten'; -$string['responsenotrequired'] = 'Texteingabe ist optional'; $string['responseisrequired'] = 'Den Schüler zur Texteingabe auffordern'; $string['responsenotrequired'] = 'Die Texteingabe ist optional'; $string['responseoptions'] = 'Antwortmöglichkeiten'; @@ -94,17 +93,16 @@ $string['sampleanswerempty'] = 'Vergewissern Sie sich, dass Sie eine KI-Eingabeaufforderung und eine Beispielantwort haben, bevor Sie den Test durchführen.'; $string['sampleanswerevaluate'] = 'Beispielantwort auswerten'; $string['showprompt'] = 'Eingabeaufforderung anzeigen'; +$string['spellcheck_editor_desc'] = 'Dies ist der Text, in dem die Rechtschreibfehler von der KI korrigiert wurden. Sie können diesen Korrekturvorschlag bearbeiten.'; + + +$string['spellcheck_prompt'] = 'Gib den Text ohne strukturelle Änderung 1:1 wieder. Verzichte auf ein Feedback. Aber korrigiere alle Rechtschreibfehler im nachfolgenden Text: '; +$string['spellcheck_student_anser_desc'] = 'Dies ist die ursprüngliche Antwort des Schülers'; +$string['spellcheckedit'] = 'Rechtschreibprüfung bearbeiten'; +$string['spellcheckeditor'] = 'Rechtschreibprüfung der KI bearbeiten'; $string['thedefaultmarksscheme'] = 'Ziehe für jeden Grammatik- oder Rechtschreibfehler einen Punkt von der Gesamtpunktzahl ab.'; $string['thedefaultprompt'] = 'Erklären Sie, ob etwas mit der Grammatik und der Rechtschreibung im Text nicht stimmt.'; $string['untestedquestionbehaviour'] = 'Ungetestetes Frageverhalten'; $string['wordcount'] = 'Wortanzahl: {$a}'; $string['wordcounttoofew'] = 'Wortanzahl: {$a->count}, weniger als die erforderlichen {$a->limit} Wörter.'; $string['wordcounttoomuch'] = 'Wortanzahl: {$a->count}, mehr als das Limit von {$a->limit} Wörtern.'; -$string['automatic_spellcheck'] = 'Automatische Rechtschreibprüfung'; -$string['spellcheckedit'] = 'Rechtschreibprüfung bearbeiten'; -$string['spellcheckeditor'] = 'Rechtschreibprüfung der KI bearbeiten'; -$string['spellcheck_editor_desc'] = 'Dies ist der Text, in dem die Rechtschreibfehler von der KI korrigiert wurden. Sie können diesen Korrekturvorschlag bearbeiten.'; -$string['spellcheck_student_anser_desc'] = 'Dies ist die ursprüngliche Antwort des Schülers'; - - -$string['spellcheck_prompt'] = 'Gib den Text ohne strukturelle Änderung 1:1 wieder. Verzichte auf ein Feedback. Aber korrigiere alle Rechtschreibfehler im nachfolgenden Text: '; diff --git a/lang/en/qtype_aitext.php b/lang/en/qtype_aitext.php index 5823de8..d8a1d10 100755 --- a/lang/en/qtype_aitext.php +++ b/lang/en/qtype_aitext.php @@ -91,8 +91,6 @@ $string['privacy:preference:responseformat'] = 'What is the response format (HTML editor, plain text, etc.)?'; $string['prompt'] = 'Prompt'; $string['prompt_setting'] = 'Wrapper text for the prompt set to the AI System, [responsetext] is whatever the student typed as an answer. The ai prompt value from the question will be appended to this'; -$string['translatepostfix'] = 'Translate postfix'; -$string['translatepostfix_text'] = 'The end of the prompt has "translate the feedback to the language .current_language()" appended'; $string['prompttester'] = 'Prompt Tester'; $string['responsefieldlines'] = 'Input box size'; $string['responseformat'] = 'Response format'; @@ -116,6 +114,8 @@ $string['thedefaultmarksscheme'] = 'Deduct a point from the total score for each grammar or spelling mistake.'; $string['thedefaultprompt'] = 'Explain if there is anything wrong with the grammar and spelling in the text.'; $string['toolaimanager'] = 'Tool AI Manager'; +$string['translatepostfix'] = 'Translate postfix'; +$string['translatepostfix_text'] = 'The end of the prompt has "translate the feedback to the language .current_language()" appended'; $string['use_local_ai_manager'] = 'Use AI backend provided by local_ai_manager plugin'; $string['use_local_ai_manager_setting'] = 'Use the local_ai_manager plugin to process AI related queries (must be installed)'; $string['wordcount'] = 'Word count: {$a}'; diff --git a/tests/question_test.php b/tests/question_test.php index 3423acb..40a0049 100755 --- a/tests/question_test.php +++ b/tests/question_test.php @@ -36,7 +36,7 @@ * Unit tests for the matching question definition class. * * @package qtype_aitext - * @author Marcus Green 2024 + * @copyright 2025 Marcus Green * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ final class question_test extends \advanced_testcase { diff --git a/tests/question_type_test.php b/tests/question_type_test.php index d356dfe..c9ff526 100755 --- a/tests/question_type_test.php +++ b/tests/question_type_test.php @@ -43,11 +43,13 @@ final class question_type_test extends \advanced_testcase { protected $qtype; protected function setUp(): void { + parent::setUp(); $this->qtype = new qtype_aitext(); } protected function tearDown(): void { $this->qtype = null; + parent::tearDown(); } /**