Compare commits

...

32 Commits

Author SHA1 Message Date
Kilian f0a2ac15fb Create adjustments 2021-08-16 10:36:27 +02:00
Kilian 0bdba12a0e Exam create with 10 random questions 2021-08-15 23:05:46 +02:00
Kilian 3302d89057 Basic schooling GQL 2021-08-15 19:06:23 +02:00
Kilian fb1f54d8b9 Grading Function 2021-08-15 17:18:15 +02:00
Kilian 5f232a645c Controller Permission 2021-08-14 21:47:59 +02:00
Kilian ad6e4b2943 Member FK 2021-08-14 18:30:00 +02:00
Kilian 85ff347090 Deffered Class 2021-08-14 15:40:53 +02:00
Kilian ac87652534 Namespace Permission 2021-08-14 14:19:22 +02:00
Kilian 77799b26cc Yarn 2021-08-13 21:08:59 +02:00
Kilian 837d86ae21 Exam Question/Answer 3-way m:n 2021-08-13 21:07:55 +02:00
Kilian aa073a5029 Repository and Name 2021-08-04 19:19:58 +02:00
Kilian d3b30100a9 Unused use removed 2021-08-04 19:14:29 +02:00
Your Name ed2b39fe26 Author 2021-08-04 16:02:13 +02:00
Your Name 42e06d1005 Exam Table/Model/Controller 2021-08-04 14:01:21 +02:00
Your Name 38efe1af1b Directory caseing 2021-08-04 12:54:27 +02:00
Your Name 5bf71f2ea4 Formating .htm removed 2021-08-04 12:35:49 +02:00
Your Name 7024bd0a77 Updated 2021-08-04 02:01:42 +02:00
Your Name c1b141a013 Yarn 2021-08-04 01:55:10 +02:00
Your Name a384c3c3bd Hooks 2021-08-04 01:46:46 +02:00
Your Name 85a720b11b Hooks 2021-08-04 01:45:57 +02:00
Your Name af8a90cd6b Lockfile 2021-08-04 00:52:42 +02:00
Gogs 9496ea48e8 Composer.json 2021-07-25 17:33:01 +02:00
Gogs a199be73ce ReadMe 2021-06-18 17:01:56 +02:00
Gogs d0df0f6a44 Answers 2021-06-18 16:32:17 +02:00
Gogs b5a3a2a547 Default true for in_use 2021-06-16 23:00:52 +02:00
Gogs 0c182914d9 Typeratings 2021-06-16 22:40:17 +02:00
Gogs 80b4516de4 format 2021-06-16 22:11:21 +02:00
Gogs e4373729c5 Rank Question 2021-06-16 22:08:53 +02:00
Gogs dfe1530d27 MemberRanks 2021-06-15 00:36:47 +02:00
Gogs 1f448b1ec4 Deferred Bindings 2021-06-14 16:08:55 +02:00
Gogs 839f50a836 Naming 2021-06-14 00:39:48 +02:00
Gogs 5e04d78275 Typeratings 2021-06-14 00:06:48 +02:00
95 changed files with 2628 additions and 20 deletions
+12
View File
@@ -0,0 +1,12 @@
#!/bin/sh
FILES=$(git diff --cached --name-only --diff-filter=ACMR -- '*.php' '*.html' '*.yaml' | sed 's| |\\ |g')
[ -z "$FILES" ] && exit 0
# Prettify all selected files
echo "$FILES" | xargs ./node_modules/.bin/prettier --ignore-unknown --write
# Add back the modified/prettified files to staging
echo "$FILES" | xargs git add
exit 0
+9
View File
@@ -1,5 +1,6 @@
<?php namespace GermanAirlinesVa\Schooling;
use Config;
use System\Classes\PluginBase;
class Plugin extends PluginBase
@@ -11,4 +12,12 @@ class Plugin extends PluginBase
public function registerSettings()
{
}
public function boot()
{
Config::set(
'database.connections.germanairlinesva_schooling',
Config::get('germanairlinesva.schooling::connection')
);
}
}
+48
View File
@@ -0,0 +1,48 @@
# Relations
## Typerating
- HasMany AircraftTypes (External DB)
- HasMany ExamTyperatingQuestion
- HasMany ExamTyperating
## MemberRank
- HasMany ExamMemberRankQuestion
- HasMany ExamMemberRank
## ExamMemberRankQuestion
- BelongsTo MemberRank
- HasMany ExamMemberRankAnswer
- BelongsToMany ExamMemberRank
## ExamTyperatingQuestion
- BelongsTo Typerating
- HasMany ExamTyperatingAnswer
- BelongsToMany ExamTyperating
## ExamMemberRankAnswer
- BelongsTo ExamMemberRankQuestion
- BelongsToMany ExamMemberRank
## ExamTyperatingAnswer
- BelongsTo ExamTyperatingQuestion
- BelongsToMany ExamTyperating
## ExamMemberRank
- BelongsTo MemberRank
- BelongsTo Member (External DB, creation in Social Plugin)
- BelongsToMany ExamMemberRankQuestion
- BelongsToMany ExamMemberRankAnswers
## ExamTyperating
- BelongsTo Typerating
- BelongsTo Member (External DB, creation in Social Plugin)
- BelongsToMany ExamTyperatingQuestion
- BelongsToMany ExamTyperatingAnswers
+9
View File
@@ -0,0 +1,9 @@
{
"name": "germanairlinesva/schooling",
"type": "october-plugin",
"description": "None",
"require": {
"composer/installers": "~1.0"
}
}
+25
View File
@@ -0,0 +1,25 @@
<?php
return [
'connection' => [
'driver' => 'mysql',
'url' => env('DATABASE_URL'),
'host' => env('DB_HOST', '127.0.0.1'),
'port' => env('DB_PORT', '3306'),
'database' => 'germanairlinesva_schooling',
'username' => env('DB_USERNAME', 'root'),
'password' => env('DB_PASSWORD', ''),
'unix_socket' => env('DB_SOCKET', ''),
'charset' => 'utf8mb4',
'collation' => 'utf8mb4_unicode_ci',
'prefix' => '',
'prefix_indexes' => true,
'strict' => true,
'engine' => 'InnoDB',
'options' => extension_loaded('pdo_mysql')
? array_filter([
PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),
])
: [],
],
];
+17
View File
@@ -0,0 +1,17 @@
<?php namespace GermanAirlinesVa\Schooling\Controllers;
use Backend\Classes\Controller;
class ExamMemberRank extends Controller
{
public $implement = ['Backend\Behaviors\ListController'];
public $listConfig = 'config_list.yaml';
public $requiredPermissions = ['germanairlinesva.schooling.master'];
public function __construct()
{
parent::__construct();
}
}
+18
View File
@@ -0,0 +1,18 @@
<?php namespace GermanAirlinesVa\Schooling\Controllers;
use Backend\Classes\Controller;
class ExamMemberRankAnswer extends Controller
{
public $implement = ['Backend\Behaviors\ListController', 'Backend\Behaviors\FormController'];
public $listConfig = 'config_list.yaml';
public $formConfig = 'config_form.yaml';
public $requiredPermissions = ['germanairlinesva.schooling.master'];
public function __construct()
{
parent::__construct();
}
}
+18
View File
@@ -0,0 +1,18 @@
<?php namespace GermanAirlinesVa\Schooling\Controllers;
use Backend\Classes\Controller;
class ExamMemberRankQuestion extends Controller
{
public $implement = ['Backend\Behaviors\ListController', 'Backend\Behaviors\FormController'];
public $listConfig = 'config_list.yaml';
public $formConfig = 'config_form.yaml';
public $requiredPermissions = ['germanairlinesva.schooling.master'];
public function __construct()
{
parent::__construct();
}
}
+17
View File
@@ -0,0 +1,17 @@
<?php namespace GermanAirlinesVa\Schooling\Controllers;
use Backend\Classes\Controller;
class ExamTyperating extends Controller
{
public $implement = ['Backend\Behaviors\ListController'];
public $listConfig = 'config_list.yaml';
public $requiredPermissions = ['germanairlinesva.schooling.master'];
public function __construct()
{
parent::__construct();
}
}
+18
View File
@@ -0,0 +1,18 @@
<?php namespace GermanAirlinesVa\Schooling\Controllers;
use Backend\Classes\Controller;
class ExamTyperatingAnswer extends Controller
{
public $implement = ['Backend\Behaviors\ListController', 'Backend\Behaviors\FormController'];
public $listConfig = 'config_list.yaml';
public $formConfig = 'config_form.yaml';
public $requiredPermissions = ['germanairlinesva.schooling.master'];
public function __construct()
{
parent::__construct();
}
}
+18
View File
@@ -0,0 +1,18 @@
<?php namespace GermanAirlinesVa\Schooling\Controllers;
use Backend\Classes\Controller;
class ExamTyperatingQuestion extends Controller
{
public $implement = ['Backend\Behaviors\ListController', 'Backend\Behaviors\FormController'];
public $listConfig = 'config_list.yaml';
public $formConfig = 'config_form.yaml';
public $requiredPermissions = ['germanairlinesva.schooling.master'];
public function __construct()
{
parent::__construct();
}
}
+18
View File
@@ -0,0 +1,18 @@
<?php namespace GermanAirlinesVa\Schooling\Controllers;
use Backend\Classes\Controller;
class MemberRank extends Controller
{
public $implement = ['Backend\Behaviors\ListController', 'Backend\Behaviors\FormController'];
public $listConfig = 'config_list.yaml';
public $formConfig = 'config_form.yaml';
public $requiredPermissions = ['germanairlinesva.schooling.master'];
public function __construct()
{
parent::__construct();
}
}
+18
View File
@@ -0,0 +1,18 @@
<?php namespace GermanAirlinesVa\Schooling\Controllers;
use Backend\Classes\Controller;
class Typerating extends Controller
{
public $implement = ['Backend\Behaviors\ListController', 'Backend\Behaviors\FormController'];
public $listConfig = 'config_list.yaml';
public $formConfig = 'config_form.yaml';
public $requiredPermissions = ['germanairlinesva.schooling.master'];
public function __construct()
{
parent::__construct();
}
}
@@ -0,0 +1,17 @@
<div data-control="toolbar">
<button
class="btn btn-default oc-icon-trash-o"
disabled="disabled"
onclick="$(this).data('request-data', {
checked: $('.control-list').listWidget('getChecked')
})"
data-request="onDelete"
data-request-confirm="<?= e(trans('backend::lang.list.delete_selected_confirm')) ?>"
data-trigger-action="enable"
data-trigger=".control-list input[type=checkbox]"
data-trigger-condition="checked"
data-request-success="$(this).prop('disabled', true)"
data-stripe-load-indicator>
<?= e(trans('backend::lang.list.delete_selected')) ?>
</button>
</div>
@@ -0,0 +1,11 @@
list: $/germanairlinesva/schooling/models/exammemberrank/columns.yaml
modelClass: GermanAirlinesVa\Schooling\Models\ExamMemberRank
title: Exams Member Rank
noRecordsMessage: 'backend::lang.list.no_records'
showSetup: true
showCheckboxes: true
recordsPerPage: 20
toolbar:
buttons: list_toolbar
search:
prompt: 'backend::lang.list.search_prompt'
+1
View File
@@ -0,0 +1 @@
<?= $this->listRender() ?>
@@ -0,0 +1,23 @@
<div data-control="toolbar">
<a
href="<?= Backend::url('germanairlinesva/schooling/exammemberrankanswer/create') ?>"
class="btn btn-primary oc-icon-plus"
><?= e(trans('backend::lang.form.create')) ?></a
>
<button
class="btn btn-default oc-icon-trash-o"
disabled="disabled"
onclick="$(this).data('request-data', {
checked: $('.control-list').listWidget('getChecked')
})"
data-request="onDelete"
data-request-confirm="<?= e(trans('backend::lang.list.delete_selected_confirm')) ?>"
data-trigger-action="enable"
data-trigger=".control-list input[type=checkbox]"
data-trigger-condition="checked"
data-request-success="$(this).prop('disabled', true)"
data-stripe-load-indicator
>
<?= e(trans('backend::lang.list.delete_selected')) ?>
</button>
</div>
@@ -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
@@ -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'
@@ -0,0 +1,54 @@
<?php Block::put('breadcrumb') ?>
<ul>
<li><a href="<?= Backend::url('germanairlinesva/schooling/exammemberrankanswer') ?>">Exam Member Rank Answers</a></li>
<li><?= e($this->pageTitle) ?></li>
</ul>
<?php Block::endPut() ?>
<?php if (!$this->fatalError): ?>
<?= Form::open(['class' =>
'layout']) ?>
<div class="layout-row"><?= $this->formRender() ?></div>
<div class="form-buttons">
<div class="loading-indicator-container">
<button
type="submit"
data-request="onSave"
data-hotkey="ctrl+s, cmd+s"
data-load-indicator="<?= e(trans('backend::lang.form.saving')) ?>"
class="btn btn-primary"
>
<?= e(trans('backend::lang.form.create')) ?>
</button>
<button
type="button"
data-request="onSave"
data-request-data="close:1"
data-hotkey="ctrl+enter, cmd+enter"
data-load-indicator="<?= e(trans('backend::lang.form.saving')) ?>"
class="btn btn-default"
>
<?= e(trans('backend::lang.form.create_and_close')) ?>
</button>
<span class="btn-text">
<?= e(trans('backend::lang.form.or')) ?>
<a href="<?= Backend::url('germanairlinesva/schooling/exammemberrankanswer') ?>"
><?= e(trans('backend::lang.form.cancel')) ?></a
>
</span>
</div>
</div>
<?= Form::close() ?>
<?php else: ?>
<p class="flash-message static error"><?= e(trans($this->fatalError)) ?></p>
<p>
<a href="<?= Backend::url('germanairlinesva/schooling/exammemberrankanswer') ?>" class="btn btn-default"
><?= e(trans('backend::lang.form.return_to_list')) ?></a
>
</p>
<?php endif ?>
@@ -0,0 +1 @@
<?= $this->listRender() ?>
@@ -0,0 +1,23 @@
<?php Block::put('breadcrumb') ?>
<ul>
<li><a href="<?= Backend::url('germanairlinesva/schooling/exammemberrankanswer') ?>">Exam Member Rank Answers</a></li>
<li><?= e($this->pageTitle) ?></li>
</ul>
<?php Block::endPut() ?>
<?php if (!$this->fatalError): ?>
<div class="form-preview"><?= $this->formRenderPreview() ?></div>
<?php else: ?>
<p class="flash-message static error"><?= e($this->fatalError) ?></p>
<?php endif ?>
<p>
<a
href="<?= Backend::url('germanairlinesva/schooling/exammemberrankanswer') ?>"
class="btn btn-default oc-icon-chevron-left"
>
<?= e(trans('backend::lang.form.return_to_list')) ?>
</a>
</p>
@@ -0,0 +1,62 @@
<?php Block::put('breadcrumb') ?>
<ul>
<li><a href="<?= Backend::url('germanairlinesva/schooling/exammemberrankanswer') ?>">Exam Member Rank Answers</a></li>
<li><?= e($this->pageTitle) ?></li>
</ul>
<?php Block::endPut() ?>
<?php if (!$this->fatalError): ?>
<?= Form::open(['class' =>
'layout']) ?>
<div class="layout-row"><?= $this->formRender() ?></div>
<div class="form-buttons">
<div class="loading-indicator-container">
<button
type="submit"
data-request="onSave"
data-request-data="redirect:0"
data-hotkey="ctrl+s, cmd+s"
data-load-indicator="<?= e(trans('backend::lang.form.saving')) ?>"
class="btn btn-primary"
>
<?= e(trans('backend::lang.form.save')) ?>
</button>
<button
type="button"
data-request="onSave"
data-request-data="close:1"
data-hotkey="ctrl+enter, cmd+enter"
data-load-indicator="<?= e(trans('backend::lang.form.saving')) ?>"
class="btn btn-default"
>
<?= e(trans('backend::lang.form.save_and_close')) ?>
</button>
<button
type="button"
class="oc-icon-trash-o btn-icon danger pull-right"
data-request="onDelete"
data-load-indicator="<?= e(trans('backend::lang.form.deleting')) ?>"
data-request-confirm="<?= e(trans('backend::lang.form.confirm_delete')) ?>"
></button>
<span class="btn-text">
<?= e(trans('backend::lang.form.or')) ?>
<a href="<?= Backend::url('germanairlinesva/schooling/exammemberrankanswer') ?>"
><?= e(trans('backend::lang.form.cancel')) ?></a
>
</span>
</div>
</div>
<?= Form::close() ?>
<?php else: ?>
<p class="flash-message static error"><?= e(trans($this->fatalError)) ?></p>
<p>
<a href="<?= Backend::url('germanairlinesva/schooling/exammemberrankanswer') ?>" class="btn btn-default"
><?= e(trans('backend::lang.form.return_to_list')) ?></a
>
</p>
<?php endif ?>
@@ -0,0 +1,23 @@
<div data-control="toolbar">
<a
href="<?= Backend::url('germanairlinesva/schooling/exammemberrankquestion/create') ?>"
class="btn btn-primary oc-icon-plus"
><?= e(trans('backend::lang.form.create')) ?></a
>
<button
class="btn btn-default oc-icon-trash-o"
disabled="disabled"
onclick="$(this).data('request-data', {
checked: $('.control-list').listWidget('getChecked')
})"
data-request="onDelete"
data-request-confirm="<?= e(trans('backend::lang.list.delete_selected_confirm')) ?>"
data-trigger-action="enable"
data-trigger=".control-list input[type=checkbox]"
data-trigger-condition="checked"
data-request-success="$(this).prop('disabled', true)"
data-stripe-load-indicator
>
<?= e(trans('backend::lang.list.delete_selected')) ?>
</button>
</div>
@@ -0,0 +1,10 @@
name: Exam Member Rank Question
form: $/germanairlinesva/schooling/models/exammemberrankquestion/fields.yaml
modelClass: GermanAirlinesVa\Schooling\Models\ExamMemberRankQuestion
defaultRedirect: germanairlinesva/schooling/exammemberrankquestion
create:
redirect: 'germanairlinesva/schooling/exammemberrankquestion/update/:id'
redirectClose: germanairlinesva/schooling/exammemberrankquestion
update:
redirect: germanairlinesva/schooling/exammemberrankquestion
redirectClose: germanairlinesva/schooling/exammemberrankquestion
@@ -0,0 +1,12 @@
list: $/germanairlinesva/schooling/models/exammemberrankquestion/columns.yaml
modelClass: GermanAirlinesVa\Schooling\Models\ExamMemberRankQuestion
title: Exam Member Rank Questions
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/exammemberrankquestion/update/:id'
@@ -0,0 +1,56 @@
<?php Block::put('breadcrumb') ?>
<ul>
<li>
<a href="<?= Backend::url('germanairlinesva/schooling/exammemberrankquestion') ?>">Exam Member Rank Questions</a>
</li>
<li><?= e($this->pageTitle) ?></li>
</ul>
<?php Block::endPut() ?>
<?php if (!$this->fatalError): ?>
<?= Form::open(['class' =>
'layout']) ?>
<div class="layout-row"><?= $this->formRender() ?></div>
<div class="form-buttons">
<div class="loading-indicator-container">
<button
type="submit"
data-request="onSave"
data-hotkey="ctrl+s, cmd+s"
data-load-indicator="<?= e(trans('backend::lang.form.saving')) ?>"
class="btn btn-primary"
>
<?= e(trans('backend::lang.form.create')) ?>
</button>
<button
type="button"
data-request="onSave"
data-request-data="close:1"
data-hotkey="ctrl+enter, cmd+enter"
data-load-indicator="<?= e(trans('backend::lang.form.saving')) ?>"
class="btn btn-default"
>
<?= e(trans('backend::lang.form.create_and_close')) ?>
</button>
<span class="btn-text">
<?= e(trans('backend::lang.form.or')) ?>
<a href="<?= Backend::url('germanairlinesva/schooling/exammemberrankquestion') ?>"
><?= e(trans('backend::lang.form.cancel')) ?></a
>
</span>
</div>
</div>
<?= Form::close() ?>
<?php else: ?>
<p class="flash-message static error"><?= e(trans($this->fatalError)) ?></p>
<p>
<a href="<?= Backend::url('germanairlinesva/schooling/exammemberrankquestion') ?>" class="btn btn-default"
><?= e(trans('backend::lang.form.return_to_list')) ?></a
>
</p>
<?php endif ?>
@@ -0,0 +1 @@
<?= $this->listRender() ?>
@@ -0,0 +1,25 @@
<?php Block::put('breadcrumb') ?>
<ul>
<li>
<a href="<?= Backend::url('germanairlinesva/schooling/exammemberrankquestion') ?>">Exam Member Rank Questions</a>
</li>
<li><?= e($this->pageTitle) ?></li>
</ul>
<?php Block::endPut() ?>
<?php if (!$this->fatalError): ?>
<div class="form-preview"><?= $this->formRenderPreview() ?></div>
<?php else: ?>
<p class="flash-message static error"><?= e($this->fatalError) ?></p>
<?php endif ?>
<p>
<a
href="<?= Backend::url('germanairlinesva/schooling/exammemberrankquestion') ?>"
class="btn btn-default oc-icon-chevron-left"
>
<?= e(trans('backend::lang.form.return_to_list')) ?>
</a>
</p>
@@ -0,0 +1,64 @@
<?php Block::put('breadcrumb') ?>
<ul>
<li>
<a href="<?= Backend::url('germanairlinesva/schooling/exammemberrankquestion') ?>">Exam Member Rank Questions</a>
</li>
<li><?= e($this->pageTitle) ?></li>
</ul>
<?php Block::endPut() ?>
<?php if (!$this->fatalError): ?>
<?= Form::open(['class' =>
'layout']) ?>
<div class="layout-row"><?= $this->formRender() ?></div>
<div class="form-buttons">
<div class="loading-indicator-container">
<button
type="submit"
data-request="onSave"
data-request-data="redirect:0"
data-hotkey="ctrl+s, cmd+s"
data-load-indicator="<?= e(trans('backend::lang.form.saving')) ?>"
class="btn btn-primary"
>
<?= e(trans('backend::lang.form.save')) ?>
</button>
<button
type="button"
data-request="onSave"
data-request-data="close:1"
data-hotkey="ctrl+enter, cmd+enter"
data-load-indicator="<?= e(trans('backend::lang.form.saving')) ?>"
class="btn btn-default"
>
<?= e(trans('backend::lang.form.save_and_close')) ?>
</button>
<button
type="button"
class="oc-icon-trash-o btn-icon danger pull-right"
data-request="onDelete"
data-load-indicator="<?= e(trans('backend::lang.form.deleting')) ?>"
data-request-confirm="<?= e(trans('backend::lang.form.confirm_delete')) ?>"
></button>
<span class="btn-text">
<?= e(trans('backend::lang.form.or')) ?>
<a href="<?= Backend::url('germanairlinesva/schooling/exammemberrankquestion') ?>"
><?= e(trans('backend::lang.form.cancel')) ?></a
>
</span>
</div>
</div>
<?= Form::close() ?>
<?php else: ?>
<p class="flash-message static error"><?= e(trans($this->fatalError)) ?></p>
<p>
<a href="<?= Backend::url('germanairlinesva/schooling/exammemberrankquestion') ?>" class="btn btn-default"
><?= e(trans('backend::lang.form.return_to_list')) ?></a
>
</p>
<?php endif ?>
@@ -0,0 +1,17 @@
<div data-control="toolbar">
<button
class="btn btn-default oc-icon-trash-o"
disabled="disabled"
onclick="$(this).data('request-data', {
checked: $('.control-list').listWidget('getChecked')
})"
data-request="onDelete"
data-request-confirm="<?= e(trans('backend::lang.list.delete_selected_confirm')) ?>"
data-trigger-action="enable"
data-trigger=".control-list input[type=checkbox]"
data-trigger-condition="checked"
data-request-success="$(this).prop('disabled', true)"
data-stripe-load-indicator>
<?= e(trans('backend::lang.list.delete_selected')) ?>
</button>
</div>
@@ -0,0 +1,11 @@
list: $/germanairlinesva/schooling/models/examtyperating/columns.yaml
modelClass: GermanAirlinesVa\Schooling\Models\ExamTyperating
title: Exams Typerating
noRecordsMessage: 'backend::lang.list.no_records'
showSetup: true
showCheckboxes: true
recordsPerPage: 20
toolbar:
buttons: list_toolbar
search:
prompt: 'backend::lang.list.search_prompt'
+1
View File
@@ -0,0 +1 @@
<?= $this->listRender() ?>
@@ -0,0 +1,23 @@
<div data-control="toolbar">
<a
href="<?= Backend::url('germanairlinesva/schooling/examtyperatinganswer/create') ?>"
class="btn btn-primary oc-icon-plus"
><?= e(trans('backend::lang.form.create')) ?></a
>
<button
class="btn btn-default oc-icon-trash-o"
disabled="disabled"
onclick="$(this).data('request-data', {
checked: $('.control-list').listWidget('getChecked')
})"
data-request="onDelete"
data-request-confirm="<?= e(trans('backend::lang.list.delete_selected_confirm')) ?>"
data-trigger-action="enable"
data-trigger=".control-list input[type=checkbox]"
data-trigger-condition="checked"
data-request-success="$(this).prop('disabled', true)"
data-stripe-load-indicator
>
<?= e(trans('backend::lang.list.delete_selected')) ?>
</button>
</div>
@@ -0,0 +1,10 @@
name: Exam Typerating Answer
form: $/germanairlinesva/schooling/models/examtyperatinganswer/fields.yaml
modelClass: GermanAirlinesVa\Schooling\Models\ExamTyperatingAnswer
defaultRedirect: germanairlinesva/schooling/examtyperatinganswer
create:
redirect: 'germanairlinesva/schooling/examtyperatinganswer/update/:id'
redirectClose: germanairlinesva/schooling/examtyperatinganswer
update:
redirect: germanairlinesva/schooling/examtyperatinganswer
redirectClose: germanairlinesva/schooling/examtyperatinganswer
@@ -0,0 +1,12 @@
list: $/germanairlinesva/schooling/models/examtyperatinganswer/columns.yaml
modelClass: GermanAirlinesVa\Schooling\Models\ExamTyperatingAnswer
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'
@@ -0,0 +1,54 @@
<?php Block::put('breadcrumb') ?>
<ul>
<li><a href="<?= Backend::url('germanairlinesva/schooling/examtyperatinganswer') ?>">Exam Typerating Answers</a></li>
<li><?= e($this->pageTitle) ?></li>
</ul>
<?php Block::endPut() ?>
<?php if (!$this->fatalError): ?>
<?= Form::open(['class' =>
'layout']) ?>
<div class="layout-row"><?= $this->formRender() ?></div>
<div class="form-buttons">
<div class="loading-indicator-container">
<button
type="submit"
data-request="onSave"
data-hotkey="ctrl+s, cmd+s"
data-load-indicator="<?= e(trans('backend::lang.form.saving')) ?>"
class="btn btn-primary"
>
<?= e(trans('backend::lang.form.create')) ?>
</button>
<button
type="button"
data-request="onSave"
data-request-data="close:1"
data-hotkey="ctrl+enter, cmd+enter"
data-load-indicator="<?= e(trans('backend::lang.form.saving')) ?>"
class="btn btn-default"
>
<?= e(trans('backend::lang.form.create_and_close')) ?>
</button>
<span class="btn-text">
<?= e(trans('backend::lang.form.or')) ?>
<a href="<?= Backend::url('germanairlinesva/schooling/examtyperatinganswer') ?>"
><?= e(trans('backend::lang.form.cancel')) ?></a
>
</span>
</div>
</div>
<?= Form::close() ?>
<?php else: ?>
<p class="flash-message static error"><?= e(trans($this->fatalError)) ?></p>
<p>
<a href="<?= Backend::url('germanairlinesva/schooling/examtyperatinganswer') ?>" class="btn btn-default"
><?= e(trans('backend::lang.form.return_to_list')) ?></a
>
</p>
<?php endif ?>
@@ -0,0 +1 @@
<?= $this->listRender() ?>
@@ -0,0 +1,23 @@
<?php Block::put('breadcrumb') ?>
<ul>
<li><a href="<?= Backend::url('germanairlinesva/schooling/examtyperatinganswer') ?>">Exam Typerating Answers</a></li>
<li><?= e($this->pageTitle) ?></li>
</ul>
<?php Block::endPut() ?>
<?php if (!$this->fatalError): ?>
<div class="form-preview"><?= $this->formRenderPreview() ?></div>
<?php else: ?>
<p class="flash-message static error"><?= e($this->fatalError) ?></p>
<?php endif ?>
<p>
<a
href="<?= Backend::url('germanairlinesva/schooling/examtyperatinganswer') ?>"
class="btn btn-default oc-icon-chevron-left"
>
<?= e(trans('backend::lang.form.return_to_list')) ?>
</a>
</p>
@@ -0,0 +1,62 @@
<?php Block::put('breadcrumb') ?>
<ul>
<li><a href="<?= Backend::url('germanairlinesva/schooling/examtyperatinganswer') ?>">Exam Typerating Answers</a></li>
<li><?= e($this->pageTitle) ?></li>
</ul>
<?php Block::endPut() ?>
<?php if (!$this->fatalError): ?>
<?= Form::open(['class' =>
'layout']) ?>
<div class="layout-row"><?= $this->formRender() ?></div>
<div class="form-buttons">
<div class="loading-indicator-container">
<button
type="submit"
data-request="onSave"
data-request-data="redirect:0"
data-hotkey="ctrl+s, cmd+s"
data-load-indicator="<?= e(trans('backend::lang.form.saving')) ?>"
class="btn btn-primary"
>
<?= e(trans('backend::lang.form.save')) ?>
</button>
<button
type="button"
data-request="onSave"
data-request-data="close:1"
data-hotkey="ctrl+enter, cmd+enter"
data-load-indicator="<?= e(trans('backend::lang.form.saving')) ?>"
class="btn btn-default"
>
<?= e(trans('backend::lang.form.save_and_close')) ?>
</button>
<button
type="button"
class="oc-icon-trash-o btn-icon danger pull-right"
data-request="onDelete"
data-load-indicator="<?= e(trans('backend::lang.form.deleting')) ?>"
data-request-confirm="<?= e(trans('backend::lang.form.confirm_delete')) ?>"
></button>
<span class="btn-text">
<?= e(trans('backend::lang.form.or')) ?>
<a href="<?= Backend::url('germanairlinesva/schooling/examtyperatinganswer') ?>"
><?= e(trans('backend::lang.form.cancel')) ?></a
>
</span>
</div>
</div>
<?= Form::close() ?>
<?php else: ?>
<p class="flash-message static error"><?= e(trans($this->fatalError)) ?></p>
<p>
<a href="<?= Backend::url('germanairlinesva/schooling/examtyperatinganswer') ?>" class="btn btn-default"
><?= e(trans('backend::lang.form.return_to_list')) ?></a
>
</p>
<?php endif ?>
@@ -0,0 +1,23 @@
<div data-control="toolbar">
<a
href="<?= Backend::url('germanairlinesva/schooling/examtyperatingquestion/create') ?>"
class="btn btn-primary oc-icon-plus"
><?= e(trans('backend::lang.form.create')) ?></a
>
<button
class="btn btn-default oc-icon-trash-o"
disabled="disabled"
onclick="$(this).data('request-data', {
checked: $('.control-list').listWidget('getChecked')
})"
data-request="onDelete"
data-request-confirm="<?= e(trans('backend::lang.list.delete_selected_confirm')) ?>"
data-trigger-action="enable"
data-trigger=".control-list input[type=checkbox]"
data-trigger-condition="checked"
data-request-success="$(this).prop('disabled', true)"
data-stripe-load-indicator
>
<?= e(trans('backend::lang.list.delete_selected')) ?>
</button>
</div>
@@ -0,0 +1,10 @@
name: Exam Typerating Question
form: $/germanairlinesva/schooling/models/examtyperatingquestion/fields.yaml
modelClass: GermanAirlinesVa\Schooling\Models\ExamTyperatingQuestion
defaultRedirect: germanairlinesva/schooling/examtyperatingquestion
create:
redirect: 'germanairlinesva/schooling/examtyperatingquestion/update/:id'
redirectClose: germanairlinesva/schooling/examtyperatingquestion
update:
redirect: germanairlinesva/schooling/examtyperatingquestion
redirectClose: germanairlinesva/schooling/examtyperatingquestion
@@ -0,0 +1,12 @@
list: $/germanairlinesva/schooling/models/examtyperatingquestion/columns.yaml
modelClass: GermanAirlinesVa\Schooling\Models\ExamTyperatingQuestion
title: Exam Typerating Questions
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/examtyperatingquestion/update/:id'
@@ -0,0 +1,56 @@
<?php Block::put('breadcrumb') ?>
<ul>
<li>
<a href="<?= Backend::url('germanairlinesva/schooling/examtyperatingquestion') ?>">Exam Typerating Questions</a>
</li>
<li><?= e($this->pageTitle) ?></li>
</ul>
<?php Block::endPut() ?>
<?php if (!$this->fatalError): ?>
<?= Form::open(['class' =>
'layout']) ?>
<div class="layout-row"><?= $this->formRender() ?></div>
<div class="form-buttons">
<div class="loading-indicator-container">
<button
type="submit"
data-request="onSave"
data-hotkey="ctrl+s, cmd+s"
data-load-indicator="<?= e(trans('backend::lang.form.saving')) ?>"
class="btn btn-primary"
>
<?= e(trans('backend::lang.form.create')) ?>
</button>
<button
type="button"
data-request="onSave"
data-request-data="close:1"
data-hotkey="ctrl+enter, cmd+enter"
data-load-indicator="<?= e(trans('backend::lang.form.saving')) ?>"
class="btn btn-default"
>
<?= e(trans('backend::lang.form.create_and_close')) ?>
</button>
<span class="btn-text">
<?= e(trans('backend::lang.form.or')) ?>
<a href="<?= Backend::url('germanairlinesva/schooling/examtyperatingquestion') ?>"
><?= e(trans('backend::lang.form.cancel')) ?></a
>
</span>
</div>
</div>
<?= Form::close() ?>
<?php else: ?>
<p class="flash-message static error"><?= e(trans($this->fatalError)) ?></p>
<p>
<a href="<?= Backend::url('germanairlinesva/schooling/examtyperatingquestion') ?>" class="btn btn-default"
><?= e(trans('backend::lang.form.return_to_list')) ?></a
>
</p>
<?php endif ?>
@@ -0,0 +1 @@
<?= $this->listRender() ?>
@@ -0,0 +1,25 @@
<?php Block::put('breadcrumb') ?>
<ul>
<li>
<a href="<?= Backend::url('germanairlinesva/schooling/examtyperatingquestion') ?>">Exam Typerating Questions</a>
</li>
<li><?= e($this->pageTitle) ?></li>
</ul>
<?php Block::endPut() ?>
<?php if (!$this->fatalError): ?>
<div class="form-preview"><?= $this->formRenderPreview() ?></div>
<?php else: ?>
<p class="flash-message static error"><?= e($this->fatalError) ?></p>
<?php endif ?>
<p>
<a
href="<?= Backend::url('germanairlinesva/schooling/examtyperatingquestion') ?>"
class="btn btn-default oc-icon-chevron-left"
>
<?= e(trans('backend::lang.form.return_to_list')) ?>
</a>
</p>
@@ -0,0 +1,64 @@
<?php Block::put('breadcrumb') ?>
<ul>
<li>
<a href="<?= Backend::url('germanairlinesva/schooling/examtyperatingquestion') ?>">Exam Typerating Questions</a>
</li>
<li><?= e($this->pageTitle) ?></li>
</ul>
<?php Block::endPut() ?>
<?php if (!$this->fatalError): ?>
<?= Form::open(['class' =>
'layout']) ?>
<div class="layout-row"><?= $this->formRender() ?></div>
<div class="form-buttons">
<div class="loading-indicator-container">
<button
type="submit"
data-request="onSave"
data-request-data="redirect:0"
data-hotkey="ctrl+s, cmd+s"
data-load-indicator="<?= e(trans('backend::lang.form.saving')) ?>"
class="btn btn-primary"
>
<?= e(trans('backend::lang.form.save')) ?>
</button>
<button
type="button"
data-request="onSave"
data-request-data="close:1"
data-hotkey="ctrl+enter, cmd+enter"
data-load-indicator="<?= e(trans('backend::lang.form.saving')) ?>"
class="btn btn-default"
>
<?= e(trans('backend::lang.form.save_and_close')) ?>
</button>
<button
type="button"
class="oc-icon-trash-o btn-icon danger pull-right"
data-request="onDelete"
data-load-indicator="<?= e(trans('backend::lang.form.deleting')) ?>"
data-request-confirm="<?= e(trans('backend::lang.form.confirm_delete')) ?>"
></button>
<span class="btn-text">
<?= e(trans('backend::lang.form.or')) ?>
<a href="<?= Backend::url('germanairlinesva/schooling/examtyperatingquestion') ?>"
><?= e(trans('backend::lang.form.cancel')) ?></a
>
</span>
</div>
</div>
<?= Form::close() ?>
<?php else: ?>
<p class="flash-message static error"><?= e(trans($this->fatalError)) ?></p>
<p>
<a href="<?= Backend::url('germanairlinesva/schooling/examtyperatingquestion') ?>" class="btn btn-default"
><?= e(trans('backend::lang.form.return_to_list')) ?></a
>
</p>
<?php endif ?>
+21
View File
@@ -0,0 +1,21 @@
<div data-control="toolbar">
<a href="<?= Backend::url('germanairlinesva/schooling/memberrank/create') ?>" class="btn btn-primary oc-icon-plus"
><?= e(trans('backend::lang.form.create')) ?></a
>
<button
class="btn btn-default oc-icon-trash-o"
disabled="disabled"
onclick="$(this).data('request-data', {
checked: $('.control-list').listWidget('getChecked')
})"
data-request="onDelete"
data-request-confirm="<?= e(trans('backend::lang.list.delete_selected_confirm')) ?>"
data-trigger-action="enable"
data-trigger=".control-list input[type=checkbox]"
data-trigger-condition="checked"
data-request-success="$(this).prop('disabled', true)"
data-stripe-load-indicator
>
<?= e(trans('backend::lang.list.delete_selected')) ?>
</button>
</div>
+10
View File
@@ -0,0 +1,10 @@
name: Member Rank
form: $/germanairlinesva/schooling/models/memberrank/fields.yaml
modelClass: GermanAirlinesVa\Schooling\Models\MemberRank
defaultRedirect: germanairlinesva/schooling/memberrank
create:
redirect: 'germanairlinesva/schooling/memberrank/update/:id'
redirectClose: germanairlinesva/schooling/memberrank
update:
redirect: germanairlinesva/schooling/memberrank
redirectClose: germanairlinesva/schooling/memberrank
+12
View File
@@ -0,0 +1,12 @@
list: $/germanairlinesva/schooling/models/memberrank/columns.yaml
modelClass: GermanAirlinesVa\Schooling\Models\MemberRank
title: Member Rank
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/memberrank/update/:id'
+54
View File
@@ -0,0 +1,54 @@
<?php Block::put('breadcrumb') ?>
<ul>
<li><a href="<?= Backend::url('germanairlinesva/schooling/memberrank') ?>">Member Rank</a></li>
<li><?= e($this->pageTitle) ?></li>
</ul>
<?php Block::endPut() ?>
<?php if (!$this->fatalError): ?>
<?= Form::open(['class' =>
'layout']) ?>
<div class="layout-row"><?= $this->formRender() ?></div>
<div class="form-buttons">
<div class="loading-indicator-container">
<button
type="submit"
data-request="onSave"
data-hotkey="ctrl+s, cmd+s"
data-load-indicator="<?= e(trans('backend::lang.form.saving')) ?>"
class="btn btn-primary"
>
<?= e(trans('backend::lang.form.create')) ?>
</button>
<button
type="button"
data-request="onSave"
data-request-data="close:1"
data-hotkey="ctrl+enter, cmd+enter"
data-load-indicator="<?= e(trans('backend::lang.form.saving')) ?>"
class="btn btn-default"
>
<?= e(trans('backend::lang.form.create_and_close')) ?>
</button>
<span class="btn-text">
<?= e(trans('backend::lang.form.or')) ?>
<a href="<?= Backend::url('germanairlinesva/schooling/memberrank') ?>"
><?= e(trans('backend::lang.form.cancel')) ?></a
>
</span>
</div>
</div>
<?= Form::close() ?>
<?php else: ?>
<p class="flash-message static error"><?= e(trans($this->fatalError)) ?></p>
<p>
<a href="<?= Backend::url('germanairlinesva/schooling/memberrank') ?>" class="btn btn-default"
><?= e(trans('backend::lang.form.return_to_list')) ?></a
>
</p>
<?php endif ?>
+1
View File
@@ -0,0 +1 @@
<?= $this->listRender() ?>
+20
View File
@@ -0,0 +1,20 @@
<?php Block::put('breadcrumb') ?>
<ul>
<li><a href="<?= Backend::url('germanairlinesva/schooling/memberrank') ?>">Member Rank</a></li>
<li><?= e($this->pageTitle) ?></li>
</ul>
<?php Block::endPut() ?>
<?php if (!$this->fatalError): ?>
<div class="form-preview"><?= $this->formRenderPreview() ?></div>
<?php else: ?>
<p class="flash-message static error"><?= e($this->fatalError) ?></p>
<?php endif ?>
<p>
<a href="<?= Backend::url('germanairlinesva/schooling/memberrank') ?>" class="btn btn-default oc-icon-chevron-left">
<?= e(trans('backend::lang.form.return_to_list')) ?>
</a>
</p>
+62
View File
@@ -0,0 +1,62 @@
<?php Block::put('breadcrumb') ?>
<ul>
<li><a href="<?= Backend::url('germanairlinesva/schooling/memberrank') ?>">Member Rank</a></li>
<li><?= e($this->pageTitle) ?></li>
</ul>
<?php Block::endPut() ?>
<?php if (!$this->fatalError): ?>
<?= Form::open(['class' =>
'layout']) ?>
<div class="layout-row"><?= $this->formRender() ?></div>
<div class="form-buttons">
<div class="loading-indicator-container">
<button
type="submit"
data-request="onSave"
data-request-data="redirect:0"
data-hotkey="ctrl+s, cmd+s"
data-load-indicator="<?= e(trans('backend::lang.form.saving')) ?>"
class="btn btn-primary"
>
<?= e(trans('backend::lang.form.save')) ?>
</button>
<button
type="button"
data-request="onSave"
data-request-data="close:1"
data-hotkey="ctrl+enter, cmd+enter"
data-load-indicator="<?= e(trans('backend::lang.form.saving')) ?>"
class="btn btn-default"
>
<?= e(trans('backend::lang.form.save_and_close')) ?>
</button>
<button
type="button"
class="oc-icon-trash-o btn-icon danger pull-right"
data-request="onDelete"
data-load-indicator="<?= e(trans('backend::lang.form.deleting')) ?>"
data-request-confirm="<?= e(trans('backend::lang.form.confirm_delete')) ?>"
></button>
<span class="btn-text">
<?= e(trans('backend::lang.form.or')) ?>
<a href="<?= Backend::url('germanairlinesva/schooling/memberrank') ?>"
><?= e(trans('backend::lang.form.cancel')) ?></a
>
</span>
</div>
</div>
<?= Form::close() ?>
<?php else: ?>
<p class="flash-message static error"><?= e(trans($this->fatalError)) ?></p>
<p>
<a href="<?= Backend::url('germanairlinesva/schooling/memberrank') ?>" class="btn btn-default"
><?= e(trans('backend::lang.form.return_to_list')) ?></a
>
</p>
<?php endif ?>
+21
View File
@@ -0,0 +1,21 @@
<div data-control="toolbar">
<a href="<?= Backend::url('germanairlinesva/schooling/typerating/create') ?>" class="btn btn-primary oc-icon-plus"
><?= e(trans('backend::lang.form.create')) ?></a
>
<button
class="btn btn-default oc-icon-trash-o"
disabled="disabled"
onclick="$(this).data('request-data', {
checked: $('.control-list').listWidget('getChecked')
})"
data-request="onDelete"
data-request-confirm="<?= e(trans('backend::lang.list.delete_selected_confirm')) ?>"
data-trigger-action="enable"
data-trigger=".control-list input[type=checkbox]"
data-trigger-condition="checked"
data-request-success="$(this).prop('disabled', true)"
data-stripe-load-indicator
>
<?= e(trans('backend::lang.list.delete_selected')) ?>
</button>
</div>
+10
View File
@@ -0,0 +1,10 @@
name: Typerating
form: $/germanairlinesva/schooling/models/typerating/fields.yaml
modelClass: GermanAirlinesVa\Schooling\Models\Typerating
defaultRedirect: germanairlinesva/schooling/typerating
create:
redirect: 'germanairlinesva/schooling/typerating/update/:id'
redirectClose: germanairlinesva/schooling/typerating
update:
redirect: germanairlinesva/schooling/typerating
redirectClose: germanairlinesva/schooling/typerating
+12
View File
@@ -0,0 +1,12 @@
list: $/germanairlinesva/schooling/models/typerating/columns.yaml
modelClass: GermanAirlinesVa\Schooling\Models\Typerating
title: Typerating
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/typerating/update/:id'
+54
View File
@@ -0,0 +1,54 @@
<?php Block::put('breadcrumb') ?>
<ul>
<li><a href="<?= Backend::url('germanairlinesva/schooling/typerating') ?>">Typerating</a></li>
<li><?= e($this->pageTitle) ?></li>
</ul>
<?php Block::endPut() ?>
<?php if (!$this->fatalError): ?>
<?= Form::open(['class' =>
'layout']) ?>
<div class="layout-row"><?= $this->formRender() ?></div>
<div class="form-buttons">
<div class="loading-indicator-container">
<button
type="submit"
data-request="onSave"
data-hotkey="ctrl+s, cmd+s"
data-load-indicator="<?= e(trans('backend::lang.form.saving')) ?>"
class="btn btn-primary"
>
<?= e(trans('backend::lang.form.create')) ?>
</button>
<button
type="button"
data-request="onSave"
data-request-data="close:1"
data-hotkey="ctrl+enter, cmd+enter"
data-load-indicator="<?= e(trans('backend::lang.form.saving')) ?>"
class="btn btn-default"
>
<?= e(trans('backend::lang.form.create_and_close')) ?>
</button>
<span class="btn-text">
<?= e(trans('backend::lang.form.or')) ?>
<a href="<?= Backend::url('germanairlinesva/schooling/typerating') ?>"
><?= e(trans('backend::lang.form.cancel')) ?></a
>
</span>
</div>
</div>
<?= Form::close() ?>
<?php else: ?>
<p class="flash-message static error"><?= e(trans($this->fatalError)) ?></p>
<p>
<a href="<?= Backend::url('germanairlinesva/schooling/typerating') ?>" class="btn btn-default"
><?= e(trans('backend::lang.form.return_to_list')) ?></a
>
</p>
<?php endif ?>
+1
View File
@@ -0,0 +1 @@
<?= $this->listRender() ?>
+20
View File
@@ -0,0 +1,20 @@
<?php Block::put('breadcrumb') ?>
<ul>
<li><a href="<?= Backend::url('germanairlinesva/schooling/typerating') ?>">Typerating</a></li>
<li><?= e($this->pageTitle) ?></li>
</ul>
<?php Block::endPut() ?>
<?php if (!$this->fatalError): ?>
<div class="form-preview"><?= $this->formRenderPreview() ?></div>
<?php else: ?>
<p class="flash-message static error"><?= e($this->fatalError) ?></p>
<?php endif ?>
<p>
<a href="<?= Backend::url('germanairlinesva/schooling/typerating') ?>" class="btn btn-default oc-icon-chevron-left">
<?= e(trans('backend::lang.form.return_to_list')) ?>
</a>
</p>
+62
View File
@@ -0,0 +1,62 @@
<?php Block::put('breadcrumb') ?>
<ul>
<li><a href="<?= Backend::url('germanairlinesva/schooling/typerating') ?>">Typerating</a></li>
<li><?= e($this->pageTitle) ?></li>
</ul>
<?php Block::endPut() ?>
<?php if (!$this->fatalError): ?>
<?= Form::open(['class' =>
'layout']) ?>
<div class="layout-row"><?= $this->formRender() ?></div>
<div class="form-buttons">
<div class="loading-indicator-container">
<button
type="submit"
data-request="onSave"
data-request-data="redirect:0"
data-hotkey="ctrl+s, cmd+s"
data-load-indicator="<?= e(trans('backend::lang.form.saving')) ?>"
class="btn btn-primary"
>
<?= e(trans('backend::lang.form.save')) ?>
</button>
<button
type="button"
data-request="onSave"
data-request-data="close:1"
data-hotkey="ctrl+enter, cmd+enter"
data-load-indicator="<?= e(trans('backend::lang.form.saving')) ?>"
class="btn btn-default"
>
<?= e(trans('backend::lang.form.save_and_close')) ?>
</button>
<button
type="button"
class="oc-icon-trash-o btn-icon danger pull-right"
data-request="onDelete"
data-load-indicator="<?= e(trans('backend::lang.form.deleting')) ?>"
data-request-confirm="<?= e(trans('backend::lang.form.confirm_delete')) ?>"
></button>
<span class="btn-text">
<?= e(trans('backend::lang.form.or')) ?>
<a href="<?= Backend::url('germanairlinesva/schooling/typerating') ?>"
><?= e(trans('backend::lang.form.cancel')) ?></a
>
</span>
</div>
</div>
<?= Form::close() ?>
<?php else: ?>
<p class="flash-message static error"><?= e(trans($this->fatalError)) ?></p>
<p>
<a href="<?= Backend::url('germanairlinesva/schooling/typerating') ?>" class="btn btn-default"
><?= e(trans('backend::lang.form.return_to_list')) ?></a
>
</p>
<?php endif ?>
+41 -1
View File
@@ -1,6 +1,46 @@
<?php return [
'plugin' => [
'name' => 'Schooling',
'name' => 'GA Schooling',
'description' => '',
],
'typeratings' => [
'name' => 'Typerating Name',
'price' => 'Price for exam',
],
'menu' => [
'main' => 'GA Schooling',
'typeratings' => 'Typeratings',
'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',
'exam_member_rank' => 'Exams Member Rank',
'exam_typerating' => 'Exams Typerating',
],
'permissions' => [
'tab' => 'German Airlines VA - Schooling',
'label' => 'Manage Schooling',
],
'member_rank' => [
'name' => 'Name',
'description' => 'Description',
'points' => 'Required Points',
'price' => 'Price of Exam',
'badge' => 'Badge',
'region' => 'REGEX to Filter Allowed Regions of Flight',
],
'exam_question' => [
'rank' => 'Member Rank',
'typerating' => 'Typerating',
'in_use' => 'True if Question is Currently in use',
'mandatory' => 'True if Querstion is Mandatory',
'text' => 'Question text',
'picture' => 'Question Picture',
],
'exam_answer' => [
'question' => 'Exam Question',
'text' => 'Answer Text',
'is_correct' => 'True if Answer is Correct',
],
];
+118
View File
@@ -0,0 +1,118 @@
<?php namespace GermanAirlinesVa\Schooling\Models;
use Model;
/**
* Model
*/
class ExamMemberRank extends Model
{
use \October\Rain\Database\Traits\Validation;
/*
* Disable timestamps by default.
* Remove this line if timestamps are defined in the database table.
*/
public $timestamps = false;
/**
* @var string The database table used by the model.
*/
public $table = 'exams';
protected $connection = 'germanairlinesva_schooling';
/**
* @var array Validation rules
*/
public $rules = [
'member_id' => 'required',
'member_rank_id' => 'required',
'start' => 'required',
'status' => 'required',
];
public $belongsTo = [
'member_rank' => 'GermanAirlinesVa\Schooling\Models\MemberRank',
'member' => 'GermanAirlinesVa\Social\Models\Member',
];
public $belongsToMany = [
'exam_questions' => [
'GermanAirlinesVa\Schooling\Models\ExamMemberRankQuestion',
'table' => 'exam_exam_answer_exam_question',
'key' => 'exam_id',
'otherKey' => 'exam_question_id',
],
'exam_answers' => [
'GermanAirlinesVa\Schooling\Models\ExamMemberRankAnswer',
'table' => 'exam_exam_answer_exam_question',
'key' => 'exam_id',
'otherKey' => 'exam_answer_id',
],
];
/**
* The "booting" method of the model.
*
* @return void
*/
protected static function boot()
{
parent::boot();
static::addGlobalScope('exam_member_rank_member_rank_id', function ($builder) {
$builder->where('member_rank_id', '<>', null);
});
}
public static function createNew($member_id, $member_rank_id)
{
$exam = new ExamMemberRank();
$exam->member_id = $member_id;
$exam->member_rank_id = $member_rank_id;
$entry = [];
$questions = ExamMemberRankQuestion::where('member_rank_id', $member_rank_id)
->get()
->random(10);
foreach ($questions as $question) {
array_push($entry, ['exam_question_id' => $question->id]);
}
$exam->exam_questions = $entry;
$exam->save();
return $exam;
}
public function grade()
{
$this->load([
'exam_questions' => function ($query) {
$query->groupBy('id');
},
]);
$returnVal = [];
$returnGrade = 0;
foreach ($this->exam_questions as $question) {
$answers = $question->exam_answers;
$returnAnswers = [];
$returnAnswerGrade = true;
foreach ($answers as $answer) {
$given = $this->exam_answers->contains($answer->id);
array_push($returnAnswers, [
'answer' => $answer,
'status' => $given,
'grade' => $given == $answer->is_correct,
]);
$returnAnswerGrade = $returnAnswerGrade && $given == $answer->is_correct;
}
array_push($returnVal, [
'question' => $question,
'answers' => $returnAnswers,
'grade' => $returnAnswerGrade,
]);
$returnGrade = $returnAnswerGrade ? $returnGrade + 1 : $returnGrade;
}
return ['exam' => $returnVal, 'grade' => $returnGrade];
}
}
+61
View File
@@ -0,0 +1,61 @@
<?php namespace GermanAirlinesVa\Schooling\Models;
use Model;
/**
* Model
*/
class ExamMemberRankAnswer extends Model
{
use \October\Rain\Database\Traits\Validation;
/*
* Disable timestamps by default.
* Remove this line if timestamps are defined in the database table.
*/
public $timestamps = false;
/**
* @var string The database table used by the model.
*/
public $table = 'exam_answers';
protected $connection = 'germanairlinesva_schooling';
/**
* @var array Validation rules
*/
public $rules = [
'exam_question' => 'required',
'text' => 'required',
'is_correct' => 'required',
];
public $belongsTo = [
'exam_question' => ['GermanAirlinesVa\Schooling\Models\ExamMemberRankQuestion', 'key' => 'exam_question_id'],
];
public $belongsToMany = [
'exam_member_ranks' => [
'GermanAirlinesVa\Schooling\Models\ExamMemberRank',
'table' => 'exam_exam_answer_exam_question',
'key' => 'exam_answer_id',
'otherKey' => 'exam_id',
],
];
/**
* The "booting" method of the model.
*
* @return void
*/
protected static function boot()
{
parent::boot();
static::addGlobalScope('exam_member_rank_answer_member_rank_id', function ($builder) {
$builder->whereHas('exam_question', function ($query) {
$query->where('member_rank_id', '<>', null);
});
});
}
}
+64
View File
@@ -0,0 +1,64 @@
<?php namespace GermanAirlinesVa\Schooling\Models;
use Model;
/**
* Model
*/
class ExamMemberRankQuestion extends Model
{
use \October\Rain\Database\Traits\Validation;
/*
* Disable timestamps by default.
* Remove this line if timestamps are defined in the database table.
*/
public $timestamps = false;
/**
* @var string The database table used by the model.
*/
public $table = 'exam_questions';
protected $connection = 'germanairlinesva_schooling';
/**
* @var array Validation rules
*/
public $rules = [
'member_rank' => 'required',
'in_use' => 'required',
'mandatory' => 'required',
'text' => 'required',
];
public $hasMany = [
'exam_answers' => ['GermanAirlinesVa\Schooling\Models\ExamMemberRankAnswer', 'key' => 'exam_question_id'],
];
public $belongsTo = [
'member_rank' => 'GermanAirlinesVa\Schooling\Models\MemberRank',
];
public $belongsToMany = [
'exam_member_ranks' => [
'GermanAirlinesVa\Schooling\Models\ExamMemberRank',
'table' => 'exam_exam_answer_exam_question',
'key' => 'exam_question_id',
'otherKey' => 'exam_id',
],
];
/**
* The "booting" method of the model.
*
* @return void
*/
protected static function boot()
{
parent::boot();
static::addGlobalScope('exam_member_rank_question_member_rank_id', function ($builder) {
$builder->where('member_rank_id', '<>', null);
});
}
}
+116
View File
@@ -0,0 +1,116 @@
<?php namespace GermanAirlinesVa\Schooling\Models;
use Model;
/**
* Model
*/
class ExamTyperating extends Model
{
use \October\Rain\Database\Traits\Validation;
/*
* Disable timestamps by default.
* Remove this line if timestamps are defined in the database table.
*/
public $timestamps = false;
/**
* @var string The database table used by the model.
*/
public $table = 'exams';
protected $connection = 'germanairlinesva_schooling';
/**
* @var array Validation rules
*/
public $rules = [
'member_id' => 'required',
'typerating_id' => 'required',
];
public $belongsTo = [
'typerating' => 'GermanAirlinesVa\Schooling\Models\Typerating',
'member' => 'GermanAirlinesVa\Social\Models\Member',
];
public $belongsToMany = [
'exam_questions' => [
'GermanAirlinesVa\Schooling\Models\ExamTyperatingQuestion',
'table' => 'exam_exam_answer_exam_question',
'key' => 'exam_id',
'otherKey' => 'exam_question_id',
],
'exam_answers' => [
'GermanAirlinesVa\Schooling\Models\ExamTyperatingAnswer',
'table' => 'exam_exam_answer_exam_question',
'key' => 'exam_id',
'otherKey' => 'exam_answer_id',
],
];
/**
* The "booting" method of the model.
*
* @return void
*/
protected static function boot()
{
parent::boot();
static::addGlobalScope('exam_typerating_typerating_id', function ($builder) {
$builder->where('typerating_id', '<>', null);
});
}
public static function createNew($member_id, $typerating_id)
{
$exam = new ExamTyperating();
$exam->member_id = $member_id;
$exam->typerating_id = $typerating_id;
$entry = [];
$questions = ExamTyperatingQuestion::where('typerating_id', $typerating_id)
->get()
->random(10);
foreach ($questions as $question) {
array_push($entry, ['exam_question_id' => $question->id]);
}
$exam->exam_questions = $entry;
$exam->save();
return $exam;
}
public function grade()
{
$this->load([
'exam_questions' => function ($query) {
$query->groupBy('id');
},
]);
$returnVal = [];
$returnGrade = 0;
foreach ($this->exam_questions as $question) {
$answers = $question->exam_answers;
$returnAnswers = [];
$returnAnswerGrade = true;
foreach ($answers as $answer) {
$given = $this->exam_answers->contains($answer->id);
array_push($returnAnswers, [
'answer' => $answer,
'status' => $given,
'grade' => $given == $answer->is_correct,
]);
$returnAnswerGrade = $returnAnswerGrade && $given == $answer->is_correct;
}
array_push($returnVal, [
'question' => $question,
'answers' => $returnAnswers,
'grade' => $returnAnswerGrade,
]);
$returnGrade = $returnAnswerGrade ? $returnGrade + 1 : $returnGrade;
}
return ['exam' => $returnVal, 'grade' => $returnGrade];
}
}
+62
View File
@@ -0,0 +1,62 @@
<?php namespace GermanAirlinesVa\Schooling\Models;
use Model;
use Illuminate\Database\Eloquent\Builder;
/**
* Model
*/
class ExamTyperatingAnswer extends Model
{
use \October\Rain\Database\Traits\Validation;
/*
* Disable timestamps by default.
* Remove this line if timestamps are defined in the database table.
*/
public $timestamps = false;
/**
* @var string The database table used by the model.
*/
public $table = 'exam_answers';
protected $connection = 'germanairlinesva_schooling';
/**
* @var array Validation rules
*/
public $rules = [
'exam_question' => 'required',
'text' => 'required',
'is_correct' => 'required',
];
public $belongsTo = [
'exam_question' => ['GermanAirlinesVa\Schooling\Models\ExamTyperatingQuestion', 'key' => 'exam_question_id'],
];
public $belongsToMany = [
'exam_typeratings' => [
'GermanAirlinesVa\Schooling\Models\ExamTyperating',
'table' => 'exam_exam_answer_exam_question',
'key' => 'exam_answer_id',
'otherKey' => 'exam_id',
],
];
/**
* The "booting" method of the model.
*
* @return void
*/
protected static function boot()
{
parent::boot();
static::addGlobalScope('exam_typerating_answer_typerating_id', function (Builder $builder) {
$builder->whereHas('exam_question', function ($query) {
$query->where('typerating_id', '<>', null);
});
});
}
}
+64
View File
@@ -0,0 +1,64 @@
<?php namespace GermanAirlinesVa\Schooling\Models;
use Model;
/**
* Model
*/
class ExamTyperatingQuestion extends Model
{
use \October\Rain\Database\Traits\Validation;
/*
* Disable timestamps by default.
* Remove this line if timestamps are defined in the database table.
*/
public $timestamps = false;
/**
* @var string The database table used by the model.
*/
public $table = 'exam_questions';
protected $connection = 'germanairlinesva_schooling';
/**
* @var array Validation rules
*/
public $rules = [
'typerating' => 'required',
'in_use' => 'required',
'mandatory' => 'required',
'text' => 'required',
];
public $hasMany = [
'exam_answers' => ['GermanAirlinesVa\Schooling\Models\ExamTyperatingAnswer', 'key' => 'exam_question_id'],
];
public $belongsTo = [
'typerating' => 'GermanAirlinesVa\Schooling\Models\Typerating',
];
public $belongsToMany = [
'exam_typeratings' => [
'GermanAirlinesVa\Schooling\Models\ExamTyperating',
'table' => 'exam_exam_answer_exam_question',
'key' => 'exam_question_id',
'otherKey' => 'exam_id',
],
];
/**
* The "booting" method of the model.
*
* @return void
*/
protected static function boot()
{
parent::boot();
static::addGlobalScope('exam_typerating_question_typerating_id', function ($builder) {
$builder->where('typerating_id', '<>', null);
});
}
}
+40
View File
@@ -0,0 +1,40 @@
<?php namespace GermanAirlinesVa\Schooling\Models;
use Model;
/**
* Model
*/
class MemberRank extends Model
{
use \October\Rain\Database\Traits\Validation;
/*
* Disable timestamps by default.
* Remove this line if timestamps are defined in the database table.
*/
public $timestamps = false;
/**
* @var string The database table used by the model.
*/
public $table = 'member_ranks';
protected $connection = 'germanairlinesva_schooling';
/**
* @var array Validation rules
*/
public $rules = [
'name' => 'required',
'description' => 'required',
'points' => 'required',
'price' => 'required',
'badge' => 'required',
'region' => 'required',
];
public $hasMany = [
'exam_questions' => 'GermanAirlinesVa\Schooling\Models\ExamMemberRankQuestion',
'exams' => 'GermanAirlinesVa\Schooling\Models\ExamMemberRank',
];
}
+34
View File
@@ -0,0 +1,34 @@
<?php namespace GermanAirlinesVa\Schooling\Models;
use Model;
/**
* Model
*/
class Typerating extends Model
{
use \October\Rain\Database\Traits\Validation;
/*
* Disable timestamps by default.
* Remove this line if timestamps are defined in the database table.
*/
public $timestamps = false;
/**
* @var string The database table used by the model.
*/
public $table = 'typeratings';
protected $connection = 'germanairlinesva_schooling';
/**
* @var array Validation rules
*/
public $rules = ['name' => 'required', 'price' => 'required'];
public $hasMany = [
'aircraft_types' => 'GermanAirlinesVa\Fleet\Models\AircraftType',
'exam_questions' => 'GermanAirlinesVa\Schooling\Models\ExamTyperatingQuestion',
'exams' => 'GermanAirlinesVa\Schooling\Models\ExamTyperating',
];
}
+20
View File
@@ -0,0 +1,20 @@
columns:
id:
label: id
type: number
member:
label: member
type: text
relation: member
valueFrom: name
member_rank:
label: member_rank
type: text
relation: member_rank
valueFrom: name
start:
label: start
type: datetime
status:
label: status
type: text
+17
View File
@@ -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
+19
View File
@@ -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
@@ -0,0 +1,24 @@
columns:
id:
label: id
type: text
member_rank:
label: member_rank
type: text
searchable: true
relation: member_rank
valueFrom: name
in_use:
label: in_use
type: text
mandatory:
label: mandatory
type: text
searchable: false
text:
label: text
type: text
searchable: true
picture:
label: picture
type: text
+30
View File
@@ -0,0 +1,30 @@
fields:
member_rank:
label: 'germanairlinesva.schooling::lang.exam_question.rank'
nameFrom: name
descriptionFrom: description
span: auto
required: 1
type: relation
in_use:
label: 'germanairlinesva.schooling::lang.exam_question.in_use'
span: auto
default: 1
required: 1
type: switch
mandatory:
label: 'germanairlinesva.schooling::lang.exam_question.mandatory'
span: auto
required: 1
type: switch
text:
label: 'germanairlinesva.schooling::lang.exam_question.text'
size: small
span: auto
required: 1
type: richeditor
picture:
label: 'germanairlinesva.schooling::lang.exam_question.picture'
mode: file
span: auto
type: mediafinder
+20
View File
@@ -0,0 +1,20 @@
columns:
id:
label: id
type: number
member:
label: member
type: text
relation: member
valueFrom: name
typerating:
label: typerating
type: text
relation: typerating
valueFrom: name
start:
label: start
type: datetime
status:
label: status
type: text
+17
View File
@@ -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
+19
View File
@@ -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
@@ -0,0 +1,24 @@
columns:
id:
label: id
type: text
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
+31
View File
@@ -0,0 +1,31 @@
fields:
typerating:
label: 'germanairlinesva.schooling::lang.exam_question.typerating'
nameFrom: name
descriptionFrom: description
span: auto
required: 1
type: relation
in_use:
label: 'germanairlinesva.schooling::lang.exam_question.in_use'
span: auto
default: 1
required: 1
type: switch
mandatory:
label: 'germanairlinesva.schooling::lang.exam_question.mandatory'
span: auto
default: 0
required: 1
type: switch
text:
label: 'germanairlinesva.schooling::lang.exam_question.text'
size: small
span: auto
required: 1
type: richeditor
picture:
label: 'germanairlinesva.schooling::lang.exam_question.picture'
mode: file
span: auto
type: mediafinder
+22
View File
@@ -0,0 +1,22 @@
columns:
id:
label: id
type: text
name:
label: name
type: text
description:
label: description
type: text
points:
label: points
type: number
price:
label: price
type: number
badge:
label: badge
type: text
region:
label: region
type: text
+32
View File
@@ -0,0 +1,32 @@
fields:
name:
label: 'germanairlinesva.schooling::lang.member_rank.name'
span: auto
required: 1
type: text
description:
label: 'germanairlinesva.schooling::lang.member_rank.description'
size: small
span: auto
required: 1
type: richeditor
points:
label: 'germanairlinesva.schooling::lang.member_rank.points'
span: auto
required: 1
type: number
price:
label: 'germanairlinesva.schooling::lang.member_rank.price'
span: auto
type: number
badge:
label: 'germanairlinesva.schooling::lang.member_rank.badge'
mode: file
span: auto
required: 1
type: mediafinder
region:
label: 'germanairlinesva.schooling::lang.member_rank.region'
span: auto
required: 1
type: text
+10
View File
@@ -0,0 +1,10 @@
columns:
id:
label: id
type: text
name:
label: name
type: text
price:
label: price
type: number
+11
View File
@@ -0,0 +1,11 @@
fields:
name:
label: 'germanairlinesva.schooling::lang.typeratings.name'
span: auto
required: 1
type: text
price:
label: 'germanairlinesva.schooling::lang.typeratings.price'
span: auto
required: 1
type: number
+6 -5
View File
@@ -1,15 +1,16 @@
{
"name": "graphql",
"name": "schooling",
"version": "1.0.0",
"main": "Plugin.php",
"repository": "https://git.hofmannnet.myhome-server.de/GermanAirlines/GermanAirlinesVA-GraphQL.git",
"repository": "https://git.hofmannnet.myhome-server.de/GermanAirlines/GermanAirlinesVA-Schooling.git",
"author": "German Airlines VA",
"license": "MIT",
"devDependencies": {
"@prettier/plugin-php": "^0.16.3",
"prettier": "^2.3.0"
"@prettier/plugin-php": "^0.17.3",
"prettier": "^2.3.2"
},
"scripts": {
"format": "prettier --write './**/*.{php,html,htm,yaml}'"
"preinstall": "git config core.hooksPath .hooks",
"format": "prettier --write './**/*.{php,html,yaml}'"
}
}
+45 -1
View File
@@ -1,6 +1,50 @@
plugin:
name: 'germanairlinesva.schooling::lang.plugin.name'
description: 'germanairlinesva.schooling::lang.plugin.description'
author: 'German Airlines Va'
author: 'German Airlines VA'
icon: oc-icon-university
homepage: ''
navigation:
main-menu-item:
label: 'germanairlinesva.schooling::lang.menu.main'
url: /
icon: icon-university
permissions:
- germanairlinesva.schooling.master
sideMenu:
side-menu-item:
label: 'germanairlinesva.schooling::lang.menu.typeratings'
url: germanairlinesva/schooling/typerating
icon: icon-plane
side-menu-item2:
label: 'germanairlinesva.schooling::lang.menu.rank'
url: germanairlinesva/schooling/memberRank
icon: icon-signal
side-menu-item3:
label: 'germanairlinesva.schooling::lang.menu.exam_question_rank'
url: germanairlinesva/schooling/exammemberrankquestion
icon: icon-question
side-menu-item4:
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
side-menu-item7:
label: 'germanairlinesva.schooling::lang.menu.exam_member_rank'
url: germanairlinesva/schooling/exammemberrank
icon: icon-file-text
side-menu-item8:
label: 'germanairlinesva.schooling::lang.menu.exam_typerating'
url: germanairlinesva/schooling/examtyperating
icon: icon-file-text
permissions:
germanairlinesva.schooling.master:
tab: 'germanairlinesva.schooling::lang.permissions.tab'
label: 'germanairlinesva.schooling::lang.permissions.label'
@@ -0,0 +1,30 @@
<?php namespace GermanAirlinesVa\Schooling\Updates;
use Schema;
use October\Rain\Database\Updates\Migration;
class BuilderTableCreateGermanAirlinesVaSchoolingDeferredBindings extends Migration
{
public function up()
{
Schema::connection('germanairlinesva_schooling')->create('deferred_bindings', function ($table) {
$table->engine = 'InnoDB';
$table->increments('id')->unsigned();
$table->string('master_type');
$table->string('master_field');
$table->string('slave_type');
$table->integer('slave_id');
$table->mediumText('pivot_data')->nullable();
$table->string('session_key');
$table->boolean('is_bind')->default(true);
$table->timestamps();
});
}
public function down()
{
Schema::connection('germanairlinesva_schooling')->disableForeignKeyConstraints();
Schema::connection('germanairlinesva_schooling')->dropIfExists('deferred_bindings');
Schema::connection('germanairlinesva_schooling')->enableForeignKeyConstraints();
}
}
@@ -0,0 +1,29 @@
<?php namespace GermanAirlinesVa\Schooling\Updates;
use Schema;
use October\Rain\Database\Updates\Migration;
class BuilderTableCreateExamAnswers extends Migration
{
public function up()
{
Schema::connection('germanairlinesva_schooling')->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')->disableForeignKeyConstraints();
Schema::connection('germanairlinesva_schooling')->dropIfExists('exam_answers');
Schema::connection('germanairlinesva_schooling')->enableForeignKeyConstraints();
}
}
@@ -0,0 +1,37 @@
<?php namespace GermanAirlinesVa\Schooling\Updates;
use Schema;
use October\Rain\Database\Updates\Migration;
class BuilderTableCreateExamExamAnswerExamQuestion extends Migration
{
public function up()
{
Schema::connection('germanairlinesva_schooling')->create('exam_exam_answer_exam_question', function ($table) {
$table->engine = 'InnoDB';
$table->bigIncrements('id')->unsigned();
$table->bigInteger('exam_id')->unsigned();
$table
->foreign('exam_id')
->references('id')
->on('exams');
$table->bigInteger('exam_answer_id')->unsigned();
$table
->foreign('exam_answer_id')
->references('id')
->on('exam_answers');
$table->bigInteger('exam_question_id')->unsigned();
$table
->foreign('exam_question_id')
->references('id')
->on('exam_questions');
});
}
public function down()
{
Schema::connection('germanairlinesva_schooling')->disableForeignKeyConstraints();
Schema::connection('germanairlinesva_schooling')->dropIfExists('exam_exam_answer_exam_question');
Schema::connection('germanairlinesva_schooling')->enableForeignKeyConstraints();
}
}
@@ -0,0 +1,42 @@
<?php namespace GermanAirlinesVa\Schooling\Updates;
use Schema;
use October\Rain\Database\Updates\Migration;
class BuilderTableCreateExamQuestions extends Migration
{
public function up()
{
Schema::connection('germanairlinesva_schooling')->create('exam_questions', function ($table) {
$table->engine = 'InnoDB';
$table->bigIncrements('id')->unsigned();
$table
->bigInteger('member_rank_id')
->unsigned()
->nullable();
$table
->foreign('member_rank_id')
->references('id')
->on('member_ranks');
$table
->bigInteger('typerating_id')
->unsigned()
->nullable();
$table
->foreign('typerating_id')
->references('id')
->on('typeratings');
$table->boolean('in_use');
$table->boolean('mandatory');
$table->text('text');
$table->string('picture');
});
}
public function down()
{
Schema::connection('germanairlinesva_schooling')->disableForeignKeyConstraints();
Schema::connection('germanairlinesva_schooling')->dropIfExists('exam_questions');
Schema::connection('germanairlinesva_schooling')->enableForeignKeyConstraints();
}
}
+42
View File
@@ -0,0 +1,42 @@
<?php namespace GermanAirlinesVa\Schooling\Updates;
use DB;
use Schema;
use October\Rain\Database\Updates\Migration;
class BuilderTableCreateExams extends Migration
{
public function up()
{
Schema::connection('germanairlinesva_schooling')->create('exams', function ($table) {
$table->engine = 'InnoDB';
$table->bigIncrements('id')->unsigned();
$table->bigInteger('member_id')->unsigned();
$table
->bigInteger('member_rank_id')
->unsigned()
->nullable();
$table
->foreign('member_rank_id')
->references('id')
->on('member_ranks');
$table
->bigInteger('typerating_id')
->unsigned()
->nullable();
$table
->foreign('typerating_id')
->references('id')
->on('typeratings');
$table->datetime('start')->default(DB::raw('NOW()'));
$table->enum('status', ['pending', 'validated', 'closed', 'open']);
});
}
public function down()
{
Schema::connection('germanairlinesva_schooling')->disableForeignKeyConstraints();
Schema::connection('germanairlinesva_schooling')->dropIfExists('exams');
Schema::connection('germanairlinesva_schooling')->enableForeignKeyConstraints();
}
}
@@ -0,0 +1,28 @@
<?php namespace GermanAirlinesVa\Schooling\Updates;
use Schema;
use October\Rain\Database\Updates\Migration;
class BuilderTableCreateMemberRanks extends Migration
{
public function up()
{
Schema::connection('germanairlinesva_schooling')->create('member_ranks', function ($table) {
$table->engine = 'InnoDB';
$table->bigIncrements('id')->unsigned();
$table->string('name');
$table->text('description');
$table->integer('points')->unsigned();
$table->integer('price')->unsigned();
$table->string('badge');
$table->string('region');
});
}
public function down()
{
Schema::connection('germanairlinesva_schooling')->disableForeignKeyConstraints();
Schema::connection('germanairlinesva_schooling')->dropIfExists('member_ranks');
Schema::connection('germanairlinesva_schooling')->enableForeignKeyConstraints();
}
}
@@ -0,0 +1,31 @@
<?php namespace GermanAirlinesVa\Schooling\Updates;
use Schema;
use October\Rain\Database\Updates\Migration;
class BuilderTableCreateTyperatings extends Migration
{
public function up()
{
Schema::connection('germanairlinesva_schooling')->create('typeratings', function ($table) {
$table->engine = 'InnoDB';
$table->bigIncrements('id')->unsigned();
$table->string('name');
$table->integer('price');
});
Schema::connection('germanairlinesva_fleet')->table('aircraft_types', function ($table) {
$table
->foreign('typerating_id')
->references('id')
->on('germanairlinesva_schooling.typeratings');
});
}
public function down()
{
Schema::connection('germanairlinesva_schooling')->disableForeignKeyConstraints();
Schema::connection('germanairlinesva_schooling')->dropIfExists('typeratings');
Schema::connection('germanairlinesva_schooling')->enableForeignKeyConstraints();
}
}
+16 -1
View File
@@ -1,2 +1,17 @@
1.0.1:
- Initialize plugin.
- 'Initialize plugin.'
- 'Create table deferred_bindings'
- builder_table_create_deferred_bindings.php
1.0.2:
- 'Created table typeratings'
- builder_table_create_typeratings.php
- 'Created table member_ranks'
- 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
- 'Created table exams'
- builder_table_create_exams.php
- 'Created table exam_exam_answer_exam_question'
- builder_table_create_exam_exam_answer_exam_question.php
+11 -12
View File
@@ -2,14 +2,14 @@
# yarn lockfile v1
"@prettier/plugin-php@^0.16.3":
version "0.16.3"
resolved "https://registry.yarnpkg.com/@prettier/plugin-php/-/plugin-php-0.16.3.tgz#74867210079ba3c0c3ae843029d76e25ff0aadf3"
integrity sha512-DNidzeGpP+/wmcCAZNSHxgoAnhEosYG+no4jJRqln19e1o3Okpuir/2JMxb07VCwdG50IWjtNgVwNPVl4uj0Hg==
"@prettier/plugin-php@^0.17.3":
version "0.17.3"
resolved "https://registry.yarnpkg.com/@prettier/plugin-php/-/plugin-php-0.17.3.tgz#193a18e308db7416f26f6e1dc0d2605d1ff01416"
integrity sha512-kD5IrGyKWF/p3XActVZ+GfbMl9knoK3XKBTG2bytpOtCO0+Q8eozimSgk/493rgFkXL3W2Ap/4GKgZf7u64+ow==
dependencies:
linguist-languages "^7.5.1"
mem "^8.0.0"
php-parser "3.0.2"
php-parser "https://github.com/glayzzle/php-parser#e61e26102144f267ecf5e09020865a9baa6ca2f1"
linguist-languages@^7.5.1:
version "7.15.0"
@@ -41,12 +41,11 @@ p-defer@^1.0.0:
resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-1.0.0.tgz#9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c"
integrity sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=
php-parser@3.0.2:
"php-parser@https://github.com/glayzzle/php-parser#e61e26102144f267ecf5e09020865a9baa6ca2f1":
version "3.0.2"
resolved "https://registry.yarnpkg.com/php-parser/-/php-parser-3.0.2.tgz#a86dbbc110e57378cba71ab4cd9b0d18f3872ac3"
integrity sha512-a7y1+odEGsceLDLpu7oNyspZ0pK8FMWJOoim4/yd82AtnEZNLdCLZ67arnOQZ9K0lHJiSp4/7lVUpGELVxE14w==
resolved "https://github.com/glayzzle/php-parser#e61e26102144f267ecf5e09020865a9baa6ca2f1"
prettier@^2.3.0:
version "2.3.1"
resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.3.1.tgz#76903c3f8c4449bc9ac597acefa24dc5ad4cbea6"
integrity sha512-p+vNbgpLjif/+D+DwAZAbndtRrR0md0MwfmOVN9N+2RgyACMT+7tfaRnT+WDPkqnuVwleyuBIG2XBxKDme3hPA==
prettier@^2.3.2:
version "2.3.2"
resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.3.2.tgz#ef280a05ec253712e486233db5c6f23441e7342d"
integrity sha512-lnJzDfJ66zkMy58OL5/NY5zp70S7Nz6KqcKkXYzn2tMVrNxvbqaBpg7H3qHaLxCJ5lNMsGuM8+ohS7cZrthdLQ==