diff --git a/README.md b/README.md
index 406f86f..cf179f9 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,32 @@
-# TODO
+# Relations
-- Type Creat Form localization
-- Remove design phase databaase connection in Schema and Model
+## AircraftManufacturers
+
+- HasMany AircraftType
+
+## AircraftTypes
+
+- BelongsTo AircraftManufacturers
+- **TODO** BelongsTo Typeratings (External DB)
+- HasMany Aircrafts
+
+## Aircrafts
+
+- BelongsTo AircraftTypes
+- **TODO** BelongsTo Airports (External DB, Multiple)
+
+---
+
+# Todo
+
+## General
+
+- Remove design phase database connection in Schema and Model
+
+## AircraftTypes
+
+- Form Localization
+
+## Aircrafts
+
+- Form Localization
diff --git a/controllers/Aircrafts.php b/controllers/Aircrafts.php
new file mode 100644
index 0000000..0e6de8a
--- /dev/null
+++ b/controllers/Aircrafts.php
@@ -0,0 +1,17 @@
+
+ = e(trans('backend::lang.form.create')) ?>
+
+ = e(trans('backend::lang.list.delete_selected')) ?>
+
+
diff --git a/controllers/aircrafts/config_form.yaml b/controllers/aircrafts/config_form.yaml
new file mode 100644
index 0000000..39a8639
--- /dev/null
+++ b/controllers/aircrafts/config_form.yaml
@@ -0,0 +1,10 @@
+name: Aircrafts
+form: $/germanairlinesva/fleet/models/aircraft/fields.yaml
+modelClass: GermanAirlinesVa\Fleet\Models\Aircraft
+defaultRedirect: germanairlinesva/fleet/aircrafts
+create:
+ redirect: 'germanairlinesva/fleet/aircrafts/update/:id'
+ redirectClose: germanairlinesva/fleet/aircrafts
+update:
+ redirect: germanairlinesva/fleet/aircrafts
+ redirectClose: germanairlinesva/fleet/aircrafts
diff --git a/controllers/aircrafts/config_list.yaml b/controllers/aircrafts/config_list.yaml
new file mode 100644
index 0000000..dd2ef2b
--- /dev/null
+++ b/controllers/aircrafts/config_list.yaml
@@ -0,0 +1,12 @@
+list: $/germanairlinesva/fleet/models/aircraft/columns.yaml
+modelClass: GermanAirlinesVa\Fleet\Models\Aircraft
+title: Aircrafts
+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/fleet/aircrafts/update/:id'
diff --git a/controllers/aircrafts/create.htm b/controllers/aircrafts/create.htm
new file mode 100644
index 0000000..41790dd
--- /dev/null
+++ b/controllers/aircrafts/create.htm
@@ -0,0 +1,46 @@
+
+
+
+
+fatalError): ?>
+
+ = Form::open(['class' => 'layout']) ?>
+
+
+ = $this->formRender() ?>
+
+
+
+
+ = Form::close() ?>
+
+
+ = e(trans($this->fatalError)) ?>
+ = e(trans('backend::lang.form.return_to_list')) ?>
+
\ No newline at end of file
diff --git a/controllers/aircrafts/index.htm b/controllers/aircrafts/index.htm
new file mode 100644
index 0000000..ea43a36
--- /dev/null
+++ b/controllers/aircrafts/index.htm
@@ -0,0 +1 @@
+= $this->listRender() ?>
diff --git a/controllers/aircrafts/preview.htm b/controllers/aircrafts/preview.htm
new file mode 100644
index 0000000..e6c1809
--- /dev/null
+++ b/controllers/aircrafts/preview.htm
@@ -0,0 +1,22 @@
+
+
+
+
+fatalError): ?>
+
+
+ = $this->formRenderPreview() ?>
+
+
+
+ = e($this->fatalError) ?>
+
+
+
+
+ = e(trans('backend::lang.form.return_to_list')) ?>
+
+
\ No newline at end of file
diff --git a/controllers/aircrafts/update.htm b/controllers/aircrafts/update.htm
new file mode 100644
index 0000000..949d258
--- /dev/null
+++ b/controllers/aircrafts/update.htm
@@ -0,0 +1,54 @@
+
+
+
+
+fatalError): ?>
+
+ = Form::open(['class' => 'layout']) ?>
+
+
+ = $this->formRender() ?>
+
+
+
+ = Form::close() ?>
+
+
+ = e(trans($this->fatalError)) ?>
+ = e(trans('backend::lang.form.return_to_list')) ?>
+
\ No newline at end of file
diff --git a/lang/en/lang.php b/lang/en/lang.php
index 848e231..9cb9e2e 100644
--- a/lang/en/lang.php
+++ b/lang/en/lang.php
@@ -14,5 +14,6 @@
'main' => 'GA Fleet',
'manufacturers' => 'Aircraft Manufacturers',
'types' => 'Aircraft Types',
+ 'aircrafts' => 'Aircrafts',
],
];
\ No newline at end of file
diff --git a/models/Aircraft.php b/models/Aircraft.php
new file mode 100644
index 0000000..c367dc4
--- /dev/null
+++ b/models/Aircraft.php
@@ -0,0 +1,33 @@
+ 'GermanAirlinesVa\Fleet\Models\AircraftType',
+ ];
+}
diff --git a/models/AircraftManufacturer.php b/models/AircraftManufacturer.php
index baa521c..1476d05 100644
--- a/models/AircraftManufacturer.php
+++ b/models/AircraftManufacturer.php
@@ -26,4 +26,8 @@ class AircraftManufacturer extends Model
* @var array Validation rules
*/
public $rules = [];
+
+ public $hasMany = [
+ 'aircraft_types' => 'GermanAirlinesVa\Fleet\Models\AircraftType',
+ ];
}
diff --git a/models/AircraftType.php b/models/AircraftType.php
index de304aa..57ae90a 100644
--- a/models/AircraftType.php
+++ b/models/AircraftType.php
@@ -30,4 +30,8 @@ class AircraftType extends Model
public $belongsTo = [
'aircraft_manufacturer' => 'GermanAirlinesVa\Fleet\Models\AircraftManufacturer',
];
+
+ public $hasMany = [
+ 'aircrafts' => 'GermanAirlinesVa\Fleet\Models\Aircraft',
+ ];
}
diff --git a/models/aircraft/columns.yaml b/models/aircraft/columns.yaml
new file mode 100644
index 0000000..1188edf
--- /dev/null
+++ b/models/aircraft/columns.yaml
@@ -0,0 +1,49 @@
+columns:
+ id:
+ label: id
+ type: text
+ aircraft_type_id:
+ label: aircraft_type_id
+ type: text
+ home_airport_id:
+ label: home_airport_id
+ type: text
+ airport_id:
+ label: airport_id
+ type: text
+ name:
+ label: name
+ type: text
+ registration:
+ label: registration
+ type: text
+ in_use:
+ label: in_use
+ type: text
+ total_miles:
+ label: total_miles
+ type: text
+ total_fuel:
+ label: total_fuel
+ type: text
+ total_flight_time:
+ label: total_flight_time
+ type: text
+ total_expenses:
+ label: total_expenses
+ type: text
+ current_check:
+ label: current_check
+ type: text
+ last_a_check:
+ label: last_a_check
+ type: text
+ last_b_check:
+ label: last_b_check
+ type: text
+ last_c_check:
+ label: last_c_check
+ type: text
+ last_d_check:
+ label: last_d_check
+ type: text
diff --git a/models/aircraft/fields.yaml b/models/aircraft/fields.yaml
new file mode 100644
index 0000000..6867f6e
--- /dev/null
+++ b/models/aircraft/fields.yaml
@@ -0,0 +1,23 @@
+fields:
+ aircraft_type:
+ label: Type
+ nameFrom: type
+ descriptionFrom: description
+ span: auto
+ required: 1
+ type: relation
+ registration:
+ label: Registration
+ span: auto
+ required: 1
+ type: text
+ name:
+ label: Name
+ span: auto
+ required: 1
+ type: text
+ home_airport_id:
+ label: 'Home Base'
+ span: auto
+ required: 1
+ type: number
diff --git a/models/aircrafttype/fields.yaml b/models/aircrafttype/fields.yaml
index 9aeccc9..b254cd5 100644
--- a/models/aircrafttype/fields.yaml
+++ b/models/aircrafttype/fields.yaml
@@ -1,141 +1,137 @@
tabs:
- fields:
- aircraft_manufacturer:
- label: Manufacturer
- nameFrom: name
- descriptionFrom: description
- span: auto
- required: 1
- type: relation
- tab: Operational
- typerating_id:
- label: Typerating
- span: auto
- required: 1
- type: number
- tab: Operational
- only_charter:
- label: 'Charter Only'
- options:
- 'No': 'no'
- 'Yes': 'yes'
- showSearch: true
- span: auto
- required: 1
- type: dropdown
- tab: Operational
- type:
- label: Type
- span: auto
- required: 1
- type: text
- tab: Operational
- simbrief_type:
- label: 'SimBrief Type'
- span: auto
- required: 1
- type: text
- tab: Operational
- dom:
- label: DOM
- span: auto
- required: 1
- type: number
- tab: Weights
- mpld:
- label: 'Max Payload'
- span: auto
- required: 1
- type: number
- tab: Weights
- mzfm:
- label: 'Max ZFM'
- span: auto
- required: 1
- type: number
- tab: Weights
- fuel_capacity:
- label: 'Fuel Capacity'
- span: auto
- required: 1
- type: number
- tab: Weights
- mtom:
- label: 'Max TOM'
- span: auto
- required: 1
- type: number
- tab: Weights
- mlam:
- label: 'Max LAM'
- span: auto
- required: 1
- type: number
- tab: Weights
- description:
- label: Description
- size: large
- span: auto
- required: 1
- type: richeditor
- tab: Informational
- wingspan:
- label: Wingspan
- span: auto
- required: 1
- type: text
- tab: Informational
- length:
- label: Length
- span: auto
- required: 1
- type: text
- tab: Informational
- cruise_speed:
- label: 'Cruise Speed'
- span: auto
- required: 1
- type: text
- tab: Informational
- range:
- label: Range
- span: auto
- required: 1
- type: text
- tab: Informational
- engines:
- label: Engines
- span: auto
- required: 1
- type: text
- tab: Informational
- max_fl:
- label: 'Max FL'
- span: auto
- required: 1
- type: number
- tab: Informational
- capacity_flight_crew:
- label: 'Flight Crew'
- span: auto
- required: 1
- type: number
- tab: Informational
- capacity_cabin_crew:
- label: 'Cabin Crew'
- span: auto
- required: 1
- type: number
- tab: Informational
- capacity_passengers:
- label: Passengers
- span: auto
- required: 1
- type: number
- tab: Informational
- capacity_cargo:
- label: Cargo
- span: auto
- required: 1
- type: number
- tab: Informational
+ fields:
+ aircraft_manufacturer:
+ label: Manufacturer
+ nameFrom: name
+ descriptionFrom: description
+ span: auto
+ required: 1
+ type: relation
+ tab: Operational
+ typerating_id:
+ label: Typerating
+ span: auto
+ required: 1
+ type: number
+ tab: Operational
+ only_charter:
+ label: 'Charter Only'
+ span: auto
+ required: 1
+ type: switch
+ tab: Operational
+ type:
+ label: Type
+ span: auto
+ required: 1
+ type: text
+ tab: Operational
+ simbrief_type:
+ label: 'SimBrief Type'
+ span: auto
+ required: 1
+ type: text
+ tab: Operational
+ dom:
+ label: DOM
+ span: auto
+ required: 1
+ type: number
+ tab: Weights
+ mpld:
+ label: 'Max Payload'
+ span: auto
+ required: 1
+ type: number
+ tab: Weights
+ mzfm:
+ label: 'Max ZFM'
+ span: auto
+ required: 1
+ type: number
+ tab: Weights
+ fuel_capacity:
+ label: 'Fuel Capacity'
+ span: auto
+ required: 1
+ type: number
+ tab: Weights
+ mtom:
+ label: 'Max TOM'
+ span: auto
+ required: 1
+ type: number
+ tab: Weights
+ mlam:
+ label: 'Max LAM'
+ span: auto
+ required: 1
+ type: number
+ tab: Weights
+ description:
+ label: Description
+ size: large
+ span: auto
+ required: 1
+ type: richeditor
+ tab: Informational
+ wingspan:
+ label: Wingspan
+ span: auto
+ required: 1
+ type: text
+ tab: Informational
+ length:
+ label: Length
+ span: auto
+ required: 1
+ type: text
+ tab: Informational
+ cruise_speed:
+ label: 'Cruise Speed'
+ span: auto
+ required: 1
+ type: text
+ tab: Informational
+ range:
+ label: Range
+ span: auto
+ required: 1
+ type: text
+ tab: Informational
+ engines:
+ label: Engines
+ span: auto
+ required: 1
+ type: text
+ tab: Informational
+ max_fl:
+ label: 'Max FL'
+ span: auto
+ required: 1
+ type: number
+ tab: Informational
+ capacity_flight_crew:
+ label: 'Flight Crew'
+ span: auto
+ required: 1
+ type: number
+ tab: Informational
+ capacity_cabin_crew:
+ label: 'Cabin Crew'
+ span: auto
+ required: 1
+ type: number
+ tab: Informational
+ capacity_passengers:
+ label: Passengers
+ span: auto
+ required: 1
+ type: number
+ tab: Informational
+ capacity_cargo:
+ label: Cargo
+ span: auto
+ required: 1
+ type: number
+ tab: Informational
diff --git a/plugin.yaml b/plugin.yaml
index ea40908..0fcf967 100644
--- a/plugin.yaml
+++ b/plugin.yaml
@@ -18,3 +18,7 @@ navigation:
label: 'germanairlinesva.fleet::lang.menu.types'
url: germanairlinesva/fleet/aircrafttypes
icon: icon-paper-plane
+ side-menu-item3:
+ label: 'germanairlinesva.fleet::lang.menu.aircrafts'
+ url: germanairlinesva/fleet/aircrafts
+ icon: icon-plane
diff --git a/updates/builder_table_create_aircraft_types.php b/updates/builder_table_create_aircraft_types.php
index 66be62e..13b87c8 100644
--- a/updates/builder_table_create_aircraft_types.php
+++ b/updates/builder_table_create_aircraft_types.php
@@ -19,10 +19,10 @@ class BuilderTableCreateGermanAirlinesVaAircraftTypes extends Migration
->on('aircraft_manufacturers');
$table->bigInteger('typerating_id')->unsigned();
//$table
- // ->foreign('typerating_manufacturer_id')
+ // ->foreign('typerating_id')
// ->references('id')
// ->on('typeratings');
- $table->enum('only_charter', ['yes', 'no']);
+ $table->boolean('only_charter');
$table->string('type');
$table->text('description');
$table->string('simbrief_type');
diff --git a/updates/builder_table_create_aircrafts copy.php b/updates/builder_table_create_aircrafts copy.php
new file mode 100644
index 0000000..de5e086
--- /dev/null
+++ b/updates/builder_table_create_aircrafts copy.php
@@ -0,0 +1,64 @@
+create('aircrafts', function ($table) {
+ //Schema::create('germanairlinesva_fleet_aircrafts', function ($table) {
+ $table->engine = 'InnoDB';
+ $table->bigIncrements('id')->unsigned();
+ $table->bigInteger('aircraft_type_id')->unsigned();
+ $table
+ ->foreign('aircraft_type_id')
+ ->references('id')
+ ->on('aircraft_types');
+ $table->bigInteger('home_airport_id')->unsigned();
+ //$table
+ // ->foreign('home_airport_id')
+ // ->references('id')
+ // ->on('airports');
+ $table
+ ->bigInteger('airport_id')
+ ->unsigned()
+ ->nullable();
+ //$table
+ // ->foreign('airport_id')
+ // ->references('id')
+ // ->on('airports');
+ $table->string('name');
+ $table->string('registration');
+ $table->boolean('in_use')->default(true);
+ $table
+ ->double('total_miles')
+ ->unsigned()
+ ->default(0);
+ $table
+ ->double('total_fuel')
+ ->unsigned()
+ ->default(0);
+ $table
+ ->double('total_flight_time')
+ ->unsigned()
+ ->default(0);
+ $table
+ ->double('total_expenses')
+ ->unsigned()
+ ->default(0);
+ $table->enum('current_check', ['a', 'b', 'c', 'd'])->nullable();
+ $table->datetime('last_a_check')->default(DB::raw('NOW()'));
+ $table->datetime('last_b_check')->default(DB::raw('NOW()'));
+ $table->datetime('last_c_check')->default(DB::raw('NOW()'));
+ $table->datetime('last_d_check')->default(DB::raw('NOW()'));
+ });
+ }
+
+ public function down()
+ {
+ Schema::connection('germanairlinesva_fleet')->dropIfExists('aircrafts');
+ //Schema::dropIfExists('germanairlinesva_fleet_aircrafts');
+ }
+}
diff --git a/updates/version.yaml b/updates/version.yaml
index 24273b8..12b6161 100644
--- a/updates/version.yaml
+++ b/updates/version.yaml
@@ -5,3 +5,5 @@
- builder_table_create_aircraft_manufacturers.php
- 'Created table aircraft_types'
- builder_table_create_aircraft_types.php
+ - 'Created table aircrafts'
+ - builder_table_create_aircrafts.php