diff --git a/controllers/ExamMemberRankAnswer.php b/controllers/ExamMemberRankAnswer.php new file mode 100644 index 0000000..50ac91b --- /dev/null +++ b/controllers/ExamMemberRankAnswer.php @@ -0,0 +1,23 @@ +leftJoin('exam_questions', 'exam_questions.id', 'exam_answers.exam_question_id'); + $query->where('exam_questions.member_rank_id', '<>', null); + } +} diff --git a/controllers/ExamTyperatingAnswer.php b/controllers/ExamTyperatingAnswer.php new file mode 100644 index 0000000..7ea9341 --- /dev/null +++ b/controllers/ExamTyperatingAnswer.php @@ -0,0 +1,23 @@ +leftJoin('exam_questions', 'exam_questions.id', 'exam_answers.exam_question_id'); + $query->where('exam_questions.typerating_id', '<>', null); + } +} diff --git a/controllers/exammemberrankanswer/_list_toolbar.htm b/controllers/exammemberrankanswer/_list_toolbar.htm new file mode 100644 index 0000000..80f8872 --- /dev/null +++ b/controllers/exammemberrankanswer/_list_toolbar.htm @@ -0,0 +1,23 @@ +
+ + +
diff --git a/controllers/exammemberrankanswer/config_form.yaml b/controllers/exammemberrankanswer/config_form.yaml new file mode 100644 index 0000000..79640e6 --- /dev/null +++ b/controllers/exammemberrankanswer/config_form.yaml @@ -0,0 +1,10 @@ +name: Exam Member Rank Answers +form: $/germanairlinesva/schooling/models/exammemberrankanswer/fields.yaml +modelClass: GermanAirlinesVa\Schooling\Models\ExamMemberRankAnswer +defaultRedirect: germanairlinesva/schooling/exammemberrankanswer +create: + redirect: 'germanairlinesva/schooling/exammemberrankanswer/update/:id' + redirectClose: germanairlinesva/schooling/exammemberrankanswer +update: + redirect: germanairlinesva/schooling/exammemberrankanswer + redirectClose: germanairlinesva/schooling/exammemberrankanswer diff --git a/controllers/exammemberrankanswer/config_list.yaml b/controllers/exammemberrankanswer/config_list.yaml new file mode 100644 index 0000000..dc989e1 --- /dev/null +++ b/controllers/exammemberrankanswer/config_list.yaml @@ -0,0 +1,12 @@ +list: $/germanairlinesva/schooling/models/exammemberrankanswer/columns.yaml +modelClass: GermanAirlinesVa\Schooling\Models\ExamMemberRankAnswer +title: Exam Member Rank Answers +noRecordsMessage: 'backend::lang.list.no_records' +showSetup: true +showCheckboxes: true +recordsPerPage: 20 +toolbar: + buttons: list_toolbar + search: + prompt: 'backend::lang.list.search_prompt' +recordUrl: 'germanairlinesva/schooling/exammemberrankanswer/update/:id' diff --git a/controllers/exammemberrankanswer/create.htm b/controllers/exammemberrankanswer/create.htm new file mode 100644 index 0000000..34fe5e7 --- /dev/null +++ b/controllers/exammemberrankanswer/create.htm @@ -0,0 +1,54 @@ + + + + +fatalError): ?> + + +'layout']) ?> + +
formRender() ?>
+ +
+
+ + + + + + +
+
+ + + + +

fatalError)) ?>

+

+ +

+ diff --git a/controllers/exammemberrankanswer/index.htm b/controllers/exammemberrankanswer/index.htm new file mode 100644 index 0000000..ea43a36 --- /dev/null +++ b/controllers/exammemberrankanswer/index.htm @@ -0,0 +1 @@ +listRender() ?> diff --git a/controllers/exammemberrankanswer/preview.htm b/controllers/exammemberrankanswer/preview.htm new file mode 100644 index 0000000..504add5 --- /dev/null +++ b/controllers/exammemberrankanswer/preview.htm @@ -0,0 +1,23 @@ + + + + +fatalError): ?> + +
formRenderPreview() ?>
+ + +

fatalError) ?>

+ + +

+ + + +

diff --git a/controllers/exammemberrankanswer/update.htm b/controllers/exammemberrankanswer/update.htm new file mode 100644 index 0000000..46a7721 --- /dev/null +++ b/controllers/exammemberrankanswer/update.htm @@ -0,0 +1,62 @@ + + + + +fatalError): ?> + + +'layout']) ?> + +
formRender() ?>
+ +
+
+ + + + + + + + +
+
+ + + +

fatalError)) ?>

+

+ +

+ diff --git a/controllers/examtyperatinganswer/_list_toolbar.htm b/controllers/examtyperatinganswer/_list_toolbar.htm new file mode 100644 index 0000000..5fa657c --- /dev/null +++ b/controllers/examtyperatinganswer/_list_toolbar.htm @@ -0,0 +1,23 @@ +
+ + +
diff --git a/controllers/examtyperatinganswer/config_form.yaml b/controllers/examtyperatinganswer/config_form.yaml new file mode 100644 index 0000000..393b372 --- /dev/null +++ b/controllers/examtyperatinganswer/config_form.yaml @@ -0,0 +1,10 @@ +name: Exam Typerating Answer +form: $/germanairlinesva/schooling/models/examtyperatinganswer/fields.yaml +modelClass: GermanAirlinesVa\Schooling\Models\ExamMemberRankAnswer +defaultRedirect: germanairlinesva/schooling/examtyperatinganswer +create: + redirect: 'germanairlinesva/schooling/examtyperatinganswer/update/:id' + redirectClose: germanairlinesva/schooling/examtyperatinganswer +update: + redirect: germanairlinesva/schooling/examtyperatinganswer + redirectClose: germanairlinesva/schooling/examtyperatinganswer diff --git a/controllers/examtyperatinganswer/config_list.yaml b/controllers/examtyperatinganswer/config_list.yaml new file mode 100644 index 0000000..a853a76 --- /dev/null +++ b/controllers/examtyperatinganswer/config_list.yaml @@ -0,0 +1,12 @@ +list: $/germanairlinesva/schooling/models/examtyperatinganswer/columns.yaml +modelClass: GermanAirlinesVa\Schooling\Models\ExamMemberRankAnswer +title: Exam Typerating Answers +noRecordsMessage: 'backend::lang.list.no_records' +showSetup: true +showCheckboxes: true +recordsPerPage: 20 +toolbar: + buttons: list_toolbar + search: + prompt: 'backend::lang.list.search_prompt' +recordUrl: 'germanairlinesva/schooling/examtyperatinganswer/update/:id' diff --git a/controllers/examtyperatinganswer/create.htm b/controllers/examtyperatinganswer/create.htm new file mode 100644 index 0000000..5769c35 --- /dev/null +++ b/controllers/examtyperatinganswer/create.htm @@ -0,0 +1,54 @@ + + + + +fatalError): ?> + + +'layout']) ?> + +
formRender() ?>
+ +
+
+ + + + + + +
+
+ + + + +

fatalError)) ?>

+

+ +

+ diff --git a/controllers/examtyperatinganswer/index.htm b/controllers/examtyperatinganswer/index.htm new file mode 100644 index 0000000..ea43a36 --- /dev/null +++ b/controllers/examtyperatinganswer/index.htm @@ -0,0 +1 @@ +listRender() ?> diff --git a/controllers/examtyperatinganswer/preview.htm b/controllers/examtyperatinganswer/preview.htm new file mode 100644 index 0000000..3371f16 --- /dev/null +++ b/controllers/examtyperatinganswer/preview.htm @@ -0,0 +1,23 @@ + + + + +fatalError): ?> + +
formRenderPreview() ?>
+ + +

fatalError) ?>

+ + +

+ + + +

diff --git a/controllers/examtyperatinganswer/update.htm b/controllers/examtyperatinganswer/update.htm new file mode 100644 index 0000000..ea8ae8b --- /dev/null +++ b/controllers/examtyperatinganswer/update.htm @@ -0,0 +1,62 @@ + + + + +fatalError): ?> + + +'layout']) ?> + +
formRender() ?>
+ +
+
+ + + + + + + + +
+
+ + + +

fatalError)) ?>

+

+ +

+ diff --git a/lang/en/lang.php b/lang/en/lang.php index 4c9de24..4943086 100644 --- a/lang/en/lang.php +++ b/lang/en/lang.php @@ -13,6 +13,8 @@ 'rank' => 'Member Ranks', 'exam_question_rank' => 'Exam Member Rank Questions', 'exam_question_typerating' => 'Exam Typerating Questions', + 'exam_answer_rank' => 'Exam Member Rank Answers', + 'exam_answer_typerating' => 'Exam Typerating Answers', ], 'permissions' => [ 'tab' => 'German Airlines VA - Schooling', @@ -34,4 +36,9 @@ 'text' => 'Question text', 'picture' => 'Question Picture', ], + 'exam_answer' => [ + 'question' => 'Exam Question', + 'text' => 'Answer Text', + 'is_correct' => 'True if Answer is Correct', + ], ]; diff --git a/models/ExamMemberRankAnswer.php b/models/ExamMemberRankAnswer.php new file mode 100644 index 0000000..e95d698 --- /dev/null +++ b/models/ExamMemberRankAnswer.php @@ -0,0 +1,36 @@ + 'required', + 'text' => 'required', + 'is_correct' => 'required', + ]; + + public $belongsTo = [ + 'exam_question' => ['GermanAirlinesVa\Schooling\Models\ExamMemberRankQuestion', 'key' => 'exam_question_id'], + ]; +} diff --git a/models/ExamMemberRankQuestion.php b/models/ExamMemberRankQuestion.php index 2ec2cd1..53afb5a 100644 --- a/models/ExamMemberRankQuestion.php +++ b/models/ExamMemberRankQuestion.php @@ -31,6 +31,10 @@ class ExamMemberRankQuestion extends Model 'text' => 'required', ]; + public $hasMany = [ + 'exam_answers' => 'GermanAirlinesVa\Schooling\Models\ExamMemberRankAnswer', + ]; + public $belongsTo = [ 'member_rank' => 'GermanAirlinesVa\Schooling\Models\MemberRank', ]; diff --git a/models/ExamTyperatingAnswer.php b/models/ExamTyperatingAnswer.php new file mode 100644 index 0000000..b08874e --- /dev/null +++ b/models/ExamTyperatingAnswer.php @@ -0,0 +1,36 @@ + 'required', + 'text' => 'required', + 'is_correct' => 'required', + ]; + + public $belongsTo = [ + 'exam_question' => ['GermanAirlinesVa\Schooling\Models\ExamTyperatingQuestion', 'key' => 'exam_question_id'], + ]; +} diff --git a/models/MemberRank.php b/models/MemberRank.php index 8ef6241..61bfaa1 100644 --- a/models/MemberRank.php +++ b/models/MemberRank.php @@ -32,4 +32,8 @@ class MemberRank extends Model 'badge' => 'required', 'region' => 'required', ]; + + public $hasMany = [ + 'exam_questions' => 'GermanAirlinesVa\Schooling\Models\ExamMemberRankQuestion', + ]; } diff --git a/models/Typerating.php b/models/Typerating.php index bbd716f..7a3e3dc 100644 --- a/models/Typerating.php +++ b/models/Typerating.php @@ -28,5 +28,6 @@ class Typerating extends Model public $hasMany = [ 'aircraft_types' => 'GermanAirlinesVa\Fleet\Models\AircraftType', + 'exam_questions' => 'GermanAirlinesVa\Schooling\Models\ExamTyperatingQuestion', ]; } diff --git a/models/examMemberRankAnswer/columns.yaml b/models/examMemberRankAnswer/columns.yaml new file mode 100644 index 0000000..910bfa7 --- /dev/null +++ b/models/examMemberRankAnswer/columns.yaml @@ -0,0 +1,17 @@ +columns: + id: + label: id + type: text + exam_question_id: + label: exam_question_id + type: text + searchable: true + relation: exam_question + valueFrom: text + text: + label: text + type: text + searchable: true + is_correct: + label: is_correct + type: switch diff --git a/models/examMemberRankAnswer/fields.yaml b/models/examMemberRankAnswer/fields.yaml new file mode 100644 index 0000000..a059752 --- /dev/null +++ b/models/examMemberRankAnswer/fields.yaml @@ -0,0 +1,19 @@ +fields: + exam_question: + label: 'germanairlinesva.schooling::lang.exam_answer.question' + nameFrom: text + descriptionFrom: description + span: auto + required: 1 + type: relation + text: + label: 'germanairlinesva.schooling::lang.exam_answer.text' + size: small + span: auto + required: 1 + type: richeditor + is_correct: + label: 'germanairlinesva.schooling::lang.exam_answer.is_correct' + span: auto + required: 1 + type: switch diff --git a/models/examTyperatingAnswer/columns.yaml b/models/examTyperatingAnswer/columns.yaml new file mode 100644 index 0000000..910bfa7 --- /dev/null +++ b/models/examTyperatingAnswer/columns.yaml @@ -0,0 +1,17 @@ +columns: + id: + label: id + type: text + exam_question_id: + label: exam_question_id + type: text + searchable: true + relation: exam_question + valueFrom: text + text: + label: text + type: text + searchable: true + is_correct: + label: is_correct + type: switch diff --git a/models/examTyperatingAnswer/fields.yaml b/models/examTyperatingAnswer/fields.yaml new file mode 100644 index 0000000..a059752 --- /dev/null +++ b/models/examTyperatingAnswer/fields.yaml @@ -0,0 +1,19 @@ +fields: + exam_question: + label: 'germanairlinesva.schooling::lang.exam_answer.question' + nameFrom: text + descriptionFrom: description + span: auto + required: 1 + type: relation + text: + label: 'germanairlinesva.schooling::lang.exam_answer.text' + size: small + span: auto + required: 1 + type: richeditor + is_correct: + label: 'germanairlinesva.schooling::lang.exam_answer.is_correct' + span: auto + required: 1 + type: switch diff --git a/models/exammemberrankquestion/columns.yaml b/models/exammemberrankquestion/columns.yaml index 9b40a58..fc2a2e9 100644 --- a/models/exammemberrankquestion/columns.yaml +++ b/models/exammemberrankquestion/columns.yaml @@ -4,8 +4,9 @@ columns: type: text member_rank: label: member_rank - relation: member_rank type: text + searchable: true + relation: member_rank valueFrom: name in_use: label: in_use @@ -13,9 +14,11 @@ columns: mandatory: label: mandatory type: text + searchable: false text: label: text type: text + searchable: true picture: label: picture type: text diff --git a/models/exammemberrankquestion/fields.yaml b/models/exammemberrankquestion/fields.yaml index be00f61..d3e1cd8 100644 --- a/models/exammemberrankquestion/fields.yaml +++ b/models/exammemberrankquestion/fields.yaml @@ -19,7 +19,7 @@ fields: type: switch text: label: 'germanairlinesva.schooling::lang.exam_question.text' - size: large + size: small span: auto required: 1 type: richeditor diff --git a/models/examtyperatingquestion/columns.yaml b/models/examtyperatingquestion/columns.yaml index 5dc4c44..8418a34 100644 --- a/models/examtyperatingquestion/columns.yaml +++ b/models/examtyperatingquestion/columns.yaml @@ -5,17 +5,20 @@ columns: typerating: label: typerating type: text + searchable: true relation: typerating valueFrom: name in_use: label: in_use type: text + searchable: false mandatory: label: mandatory type: text text: label: text type: text + searchable: true picture: label: picture type: text diff --git a/models/examtyperatingquestion/fields.yaml b/models/examtyperatingquestion/fields.yaml index d520143..fd66f7f 100644 --- a/models/examtyperatingquestion/fields.yaml +++ b/models/examtyperatingquestion/fields.yaml @@ -20,7 +20,7 @@ fields: type: switch text: label: 'germanairlinesva.schooling::lang.exam_question.text' - size: large + size: small span: auto required: 1 type: richeditor diff --git a/plugin.yaml b/plugin.yaml index 6b4b3e6..7b273f4 100644 --- a/plugin.yaml +++ b/plugin.yaml @@ -28,6 +28,14 @@ navigation: label: 'germanairlinesva.schooling::lang.menu.exam_question_typerating' url: germanairlinesva/schooling/examtyperatingquestion icon: icon-question + side-menu-item5: + label: 'germanairlinesva.schooling::lang.menu.exam_answer_rank' + url: germanairlinesva/schooling/exammemberrankanswer + icon: icon-check + side-menu-item6: + label: 'germanairlinesva.schooling::lang.menu.exam_answer_typerating' + url: germanairlinesva/schooling/examtyperatinganswer + icon: icon-check permissions: schooling: tab: 'germanairlinesva.schooling::lang.permissions.tab' diff --git a/updates/builder_table_create_exam_answers.php b/updates/builder_table_create_exam_answers.php new file mode 100644 index 0000000..bb0fd9a --- /dev/null +++ b/updates/builder_table_create_exam_answers.php @@ -0,0 +1,27 @@ +create('exam_answers', function ($table) { + $table->engine = 'InnoDB'; + $table->bigIncrements('id')->unsigned(); + $table->bigInteger('exam_question_id')->unsigned(); + $table + ->foreign('exam_question_id') + ->references('id') + ->on('exam_questions'); + $table->text('text'); + $table->boolean('is_correct'); + }); + } + + public function down() + { + Schema::connection('germanairlinesva_schooling')->dropIfExists('exam_answers'); + } +} diff --git a/updates/version.yaml b/updates/version.yaml index 410798f..cbac02d 100644 --- a/updates/version.yaml +++ b/updates/version.yaml @@ -9,3 +9,5 @@ - builder_table_create_member_ranks.php - 'Created table exam_questions' - builder_table_create_exam_questions.php + - 'Created table exam_answers' + - builder_table_create_exam_answers.php