Member
This commit is contained in:
parent
a3696de0c7
commit
3b1b587806
11
README.md
11
README.md
@ -1,2 +1,13 @@
|
||||
# Relations
|
||||
|
||||
## Member
|
||||
|
||||
- BelongsTo MemberRank (External DB)
|
||||
- **TODO** BelongsTo Passenger (External DB)
|
||||
- **TODO** BelongsTo Charter (External DB)
|
||||
- **TODO** BelongsTo Cargo (External DB)
|
||||
- **TODO** BelongsTo Heritage (External DB)
|
||||
- **TODO** BelongsTo Visual (External DB)
|
||||
- **TODO** BelongsTo Tour (External DB)
|
||||
- HasMany ExamMemberRank (External DB)
|
||||
- HasMany ExamTypeRating (External DB
|
||||
|
||||
16
controllers/Member.php
Normal file
16
controllers/Member.php
Normal file
@ -0,0 +1,16 @@
|
||||
<?php namespace GermanAirlinesVa\Social\Controllers;
|
||||
|
||||
use Backend\Classes\Controller;
|
||||
use BackendMenu;
|
||||
|
||||
class Member extends Controller
|
||||
{
|
||||
public $implement = ['Backend\Behaviors\ListController'];
|
||||
|
||||
public $listConfig = 'config_list.yaml';
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
}
|
||||
}
|
||||
17
controllers/member/_list_toolbar.htm
Normal file
17
controllers/member/_list_toolbar.htm
Normal file
@ -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>
|
||||
11
controllers/member/config_list.yaml
Normal file
11
controllers/member/config_list.yaml
Normal file
@ -0,0 +1,11 @@
|
||||
list: $/germanairlinesva/social/models/member/columns.yaml
|
||||
modelClass: GermanAirlinesVa\Social\Models\Member
|
||||
title: Member
|
||||
noRecordsMessage: 'backend::lang.list.no_records'
|
||||
showSetup: true
|
||||
showCheckboxes: true
|
||||
recordsPerPage: 20
|
||||
toolbar:
|
||||
buttons: list_toolbar
|
||||
search:
|
||||
prompt: 'backend::lang.list.search_prompt'
|
||||
1
controllers/member/index.htm
Normal file
1
controllers/member/index.htm
Normal file
@ -0,0 +1 @@
|
||||
<?= $this->listRender() ?>
|
||||
37
models/Member.php
Normal file
37
models/Member.php
Normal file
@ -0,0 +1,37 @@
|
||||
<?php namespace GermanAirlinesVa\Social\Models;
|
||||
|
||||
use Model;
|
||||
|
||||
/**
|
||||
* Model
|
||||
*/
|
||||
class Member 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 = 'members';
|
||||
public $connection = 'germanairlinesva_social';
|
||||
|
||||
/**
|
||||
* @var array Validation rules
|
||||
*/
|
||||
public $rules = [];
|
||||
|
||||
public $belongsTo = [
|
||||
'member_rank' => 'GermanAirlinesVa\Schooling\Models\MemberRank',
|
||||
];
|
||||
|
||||
public $hasMany = [
|
||||
'exam_member_ranks' => 'GermanAirlinesVa\Schooling\Models\ExamMemberRank',
|
||||
'exam_typeratings' => 'GermanAirlinesVa\Schooling\Models\ExamTyperating',
|
||||
];
|
||||
}
|
||||
141
models/member/columns.yaml
Normal file
141
models/member/columns.yaml
Normal file
@ -0,0 +1,141 @@
|
||||
columns:
|
||||
id:
|
||||
label: id
|
||||
type: number
|
||||
member_rank:
|
||||
label: member_rank
|
||||
type: text
|
||||
relation: member_rank
|
||||
valueFrom: name
|
||||
passenger_id:
|
||||
label: passenger_id
|
||||
type: number
|
||||
charter_id:
|
||||
label: charter_id
|
||||
type: number
|
||||
cargo_id:
|
||||
label: cargo_id
|
||||
type: number
|
||||
heritage_id:
|
||||
label: heritage_id
|
||||
type: number
|
||||
visual_id:
|
||||
label: visual_id
|
||||
type: number
|
||||
tour_id:
|
||||
label: tour_id
|
||||
type: number
|
||||
passenger_briefing:
|
||||
label: passenger_briefing
|
||||
type: text
|
||||
charter_briefing:
|
||||
label: charter_briefing
|
||||
type: text
|
||||
cargo_briefing:
|
||||
label: cargo_briefing
|
||||
type: text
|
||||
heritage_briefing:
|
||||
label: heritage_briefing
|
||||
type: text
|
||||
visual_briefing:
|
||||
label: visual_briefing
|
||||
type: text
|
||||
tour_briefing:
|
||||
label: tour_briefing
|
||||
type: text
|
||||
is_team:
|
||||
label: is_team
|
||||
type: switch
|
||||
is_instructor:
|
||||
label: is_instructor
|
||||
type: switch
|
||||
show_contact:
|
||||
label: show_contact
|
||||
type: switch
|
||||
account_status:
|
||||
label: account_status
|
||||
type: text
|
||||
last_active:
|
||||
label: last_active
|
||||
type: datetime
|
||||
name:
|
||||
label: name
|
||||
type: text
|
||||
surname:
|
||||
label: surname
|
||||
type: text
|
||||
password:
|
||||
label: password
|
||||
type: text
|
||||
email:
|
||||
label: email
|
||||
type: text
|
||||
zip:
|
||||
label: zip
|
||||
type: text
|
||||
state:
|
||||
label: state
|
||||
type: text
|
||||
city:
|
||||
label: city
|
||||
type: text
|
||||
vatsim_id:
|
||||
label: vatsim_id
|
||||
type: number
|
||||
ivao_id:
|
||||
label: ivao_id
|
||||
type: number
|
||||
pilot_id:
|
||||
label: pilot_id
|
||||
type: text
|
||||
birthday:
|
||||
label: birthday
|
||||
type: date
|
||||
member_since:
|
||||
label: member_since
|
||||
type: date
|
||||
about_me:
|
||||
label: about_me
|
||||
type: text
|
||||
job:
|
||||
label: job
|
||||
type: text
|
||||
legacy_points:
|
||||
label: legacy_points
|
||||
type: number
|
||||
legacy_flights:
|
||||
label: legacy_flights
|
||||
type: number
|
||||
signature:
|
||||
label: signature
|
||||
type: text
|
||||
team_sort_index:
|
||||
label: team_sort_index
|
||||
type: text
|
||||
team_position_short:
|
||||
label: team_position_short
|
||||
type: text
|
||||
team_position_long:
|
||||
label: team_position_long
|
||||
type: text
|
||||
team_member_story:
|
||||
label: team_member_story
|
||||
type: text
|
||||
team_favourite_real_aircraft:
|
||||
label: team_favourite_real_aircraft
|
||||
type: text
|
||||
team_favourite_fs_aircraft:
|
||||
label: team_favourite_fs_aircraft
|
||||
type: text
|
||||
team_favourite_airport:
|
||||
label: team_favourite_airport
|
||||
type: text
|
||||
gdpr_forum:
|
||||
label: gdpr_forum
|
||||
type: switch
|
||||
gdpr_newsletter:
|
||||
label: gdpr_newsletter
|
||||
type: switch
|
||||
gdpr_general:
|
||||
label: gdpr_general
|
||||
type: switch
|
||||
116
updates/builder_table_create_members.php
Normal file
116
updates/builder_table_create_members.php
Normal file
@ -0,0 +1,116 @@
|
||||
<?php namespace GermanAirlinesVa\Social\Updates;
|
||||
|
||||
use Schema;
|
||||
use DB;
|
||||
use October\Rain\Database\Updates\Migration;
|
||||
|
||||
class BuilderTableCreateGermanAirlinesVaSocialMembers extends Migration
|
||||
{
|
||||
public function up()
|
||||
{
|
||||
Schema::connection('germanairlinesva_social')->create('members', function ($table) {
|
||||
$table->engine = 'InnoDB';
|
||||
$table->bigIncrements('id')->unsigned();
|
||||
$table
|
||||
->bigInteger('member_rank_id')
|
||||
->unsigned()
|
||||
->default(1);
|
||||
$table
|
||||
->foreign('member_rank_id')
|
||||
->references('id')
|
||||
->on('germanairlinesva_schooling.member_ranks');
|
||||
$table
|
||||
->bigInteger('passenger_id')
|
||||
->nullable()
|
||||
->unsigned();
|
||||
$table
|
||||
->bigInteger('charter_id')
|
||||
->nullable()
|
||||
->unsigned();
|
||||
$table
|
||||
->bigInteger('cargo_id')
|
||||
->nullable()
|
||||
->unsigned();
|
||||
$table
|
||||
->bigInteger('heritage_id')
|
||||
->nullable()
|
||||
->unsigned();
|
||||
$table
|
||||
->bigInteger('visual_id')
|
||||
->nullable()
|
||||
->unsigned();
|
||||
$table
|
||||
->bigInteger('tour_id')
|
||||
->nullable()
|
||||
->unsigned();
|
||||
$table->text('passenger_briefing')->nullable();
|
||||
$table->text('charter_briefing')->nullable();
|
||||
$table->text('cargo_briefing')->nullable();
|
||||
$table->text('heritage_briefing')->nullable();
|
||||
$table->text('visual_briefing')->nullable();
|
||||
$table->text('tour_briefing')->nullable();
|
||||
$table->boolean('is_team')->default(0);
|
||||
$table->boolean('is_instructor')->default(0);
|
||||
$table->boolean('show_contact')->default(0);
|
||||
$table->enum('account_status', ['active', 'pending', 'inactive', 'suspended']);
|
||||
$table->dateTime('last_active')->default(DB::raw('NOW()'));
|
||||
$table->text('name');
|
||||
$table->text('surname');
|
||||
$table->text('password');
|
||||
$table->string('email', 320)->unique();
|
||||
$table->text('zip');
|
||||
$table->text('state');
|
||||
$table->text('city');
|
||||
$table
|
||||
->bigInteger('vatsim_id')
|
||||
->nullable()
|
||||
->unsigned();
|
||||
$table
|
||||
->bigInteger('ivao_id')
|
||||
->nullable()
|
||||
->unsigned();
|
||||
$table->string('pilot_id', 4)->unique();
|
||||
$table->date('birthday');
|
||||
$table->date('member_since');
|
||||
$table->text('about_me')->nullable();
|
||||
$table->text('job')->nullable();
|
||||
$table->double('legacy_points', 10, 0)->default(0);
|
||||
$table
|
||||
->bigInteger('legacy_flights')
|
||||
->unsigned()
|
||||
->default(0);
|
||||
$table->text('signature')->nullable();
|
||||
$table->bigInteger('team_sort_index')->nullable();
|
||||
$table->text('team_position_short')->nullable();
|
||||
$table->text('team_position_long')->nullable();
|
||||
$table->text('team_member_story')->nullable();
|
||||
$table->text('team_favourite_real_aircraft')->nullable();
|
||||
$table->text('team_favourite_fs_aircraft')->nullable();
|
||||
$table->text('team_favourite_airport')->nullable();
|
||||
$table->boolean('gdpr_forum')->default(0);
|
||||
$table->boolean('gdpr_newsletter')->default(0);
|
||||
$table->boolean('gdpr_general')->default(0);
|
||||
});
|
||||
|
||||
Schema::connection('germanairlinesva_schooling')->table('exams', function ($table) {
|
||||
$table
|
||||
->foreign('member_id')
|
||||
->references('id')
|
||||
->on('germanairlinesva_social.members');
|
||||
});
|
||||
|
||||
Schema::connection('germanairlinesva_graphql')->table('graphql_keys', function ($table) {
|
||||
$table
|
||||
->foreign('member_id')
|
||||
->references('id')
|
||||
->on('germanairlinesva_social.members');
|
||||
});
|
||||
}
|
||||
|
||||
public function down()
|
||||
{
|
||||
Schema::connection('germanairlinesva_social')->disableForeignKeyConstraints();
|
||||
Schema::connection('germanairlinesva_social')->dropIfExists('members');
|
||||
Schema::connection('germanairlinesva_social')->enableForeignKeyConstraints();
|
||||
}
|
||||
}
|
||||
@ -1,4 +1,7 @@
|
||||
1.0.1:
|
||||
- Initialize plugin.
|
||||
- 'Initialize plugin.'
|
||||
- 'Create table deferred_bindings'
|
||||
- builder_table_create_deferred_bindings.php
|
||||
1.0.2:
|
||||
- 'Created table members'
|
||||
- builder_table_create_members.php
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user