=== Leadovation Aero Fleet ===
Contributors: wptechnology
Tags: flight school, aircraft, fleet, aviation, maintenance
Requires at least: 6.3
Tested up to: 7.1
Requires PHP: 7.4
Stable tag: 1.1.0
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

The aircraft register of a flight school: identity, dated status, counter readings, on-board documents and their reminders.

== Description ==

A flying club knows its aircraft by heart, and writes almost nothing down. The registration is on the key, the hours are on a sheet pinned to the hangar wall, the insurance certificate is in a drawer, and the answer to "can I take F-GKLM on Saturday" is whoever picks up the telephone.

That works until the person who picks up the telephone is on holiday. This plugin is the register that answers instead: one line per aircraft, a status said by somebody on a date and for a reason, the last reading of each counter, and the on-board documents with the day each one runs out.

It is written for the fleet manager of a club, who does the job in the evening, standing up, between two flights. Every screen opens on what has to be decided today, and the most frequent gesture of the plugin, declaring an aircraft unavailable, is one button away on every line.

= The register, and genuinely usable =

The free version is the whole register. A club of two aircraft and a school of twenty run on it with no cap on aircraft, documents or readings.

* **The identity of a machine.** Registration on a plate, serial number, manufacturer and model picked from a catalogue of eleven common types that fills the rest in for you, category (aeroplane, helicopter, microlight), seats, home base, year, the operating rules it flies under, and an image. The serial number is what says an aircraft is the same one; the registration is an attribute, and it changes.
* **A library of 24 silhouettes.** Robinson, Guimbal, Airbus, Bell, Cessna, Piper, Robin, Diamond, Tecnam, Mudry, Aquila, and a generic profile per category. The one that matches the type is set when the aircraft is added, the manager changes it with one click on the aircraft file, and a photograph from the media library takes precedence over it everywhere. The drawings are shipped with the plugin, drawn in the colour of the text, and nothing is ever read from an outside address.
* **A status somebody said, on a date.** In service, unavailable, grounded with no return date, archived. Each one is opened by a person, on a date, with a reason, and an expected return when there is one. It is a dated journal: the screen of today reads the line that is open, and the history stays readable underneath.
* **Counter readings that never add up wrongly.** A reading is identified by what it counts and the instrument it is read on: airframe hours on the Hobbs, on the tachometer, on the journey log. Two different pairs are two different series, and the pair of the last reading is the one offered again.
* **The on-board documents, with their dates.** Eleven kinds, from the certificate of registration to the insurance certificate, the radio station licence, the weighing report and the maintenance programme. Each one carries an expiry date, a visibility, and a file if you have it.
* **The files are kept out of reach.** A document is never put in the media library, where the web server hands it to whoever guesses the address. It lives in a closed folder, under a random name with no extension, and is served only to an account that holds the right to read it. A request refused is written to a log you can read on the settings screen.
* **Reminders that arrive in time.** Ninety, thirty and seven days before, and one the day after, with thresholds set per kind of document. One message per recipient and per pass, listing everything that crossed a threshold that day, and never twice for the same date. A weekly summary to the office keeps what has passed in sight until a new document is on file. Everything is off until the school switches it on, and no message ever carries an attachment or a link to a document.
* **The fleet this morning.** The dashboard sorts by urgency: what is grounded first, what expires next after it. One sentence says the state of the day, each line shows the last reading and the next expiry on a band you read at a glance, and the whole thing prints.
* **The fleet on the school's own site.** Two blocks, each with a shortcode of the same name: the grid of the aircraft with the state of each, and the page of one aircraft with its identity, its equipment, its rate and what it asks of a pilot. A third shortcode writes the hourly rate in the middle of a sentence. All of it in light and dark, and none of it publishes owners, contracts, documents, readings or notes.
* **Screens that arrive with the data.** A school that has just installed the plugin sees two tabs. The fleet and the settings appear with the first aircraft, the reminders card the day a document carries a date. Nothing is configured before there is anything to configure.
* **Rights the range shares.** Five permissions (see the fleet, edit an aircraft, say a status, record a reading, keep the documents) declared in the shared registry of the Aero range. The roles themselves are handed out in Aero Users when it is installed beside this one.
* **A façade for developers.** `Aero\Fleet\Api` answers whether an aircraft is available on a date, and nine actions and filters let another plugin read the fleet, add a tab to an aircraft or a line to a card.

= Aero Fleet Pro =

[Aero Fleet Pro](https://www.wptechnology.com/plugins/aero-fleet/) is a separate plugin, installed on top of this one, for the club that keeps its maintenance schedule somewhere else and would rather keep it here. Nothing described below is present in this plugin: what you install here is the whole register and runs without a licence.

* **Maintenance due items.** The deadlines of the maintenance programme, in hours and in dates, with the tolerance window of each.
* **A ninety day planner.** The whole fleet, week by week, on one screen.
* **Hour projection.** When a deadline will be reached, at the pace of the last four weeks.
* **Workshop return.** One form for an aircraft coming back: work order, readings, directives, back in service.
* **Directives and service bulletins.** What applies to a machine, and what was done about it.
* **Defect reports.** What a pilot reports after a flight, who picked it up, and when it was closed.
* **Owners and contracts.** Owners, management contracts, notice periods, and who pays for what.
* **The monthly board review.** Six lines per machine for the board meeting, ready to print.
* **Rate history.** Every hourly rate the club has charged, with the day it changed.

Nothing you already have is ever switched off after the fact. [See what the extension adds](https://www.wptechnology.com/plugins/aero-fleet/).

= Part of the Aero range =

Aero Fleet is one of the WPTechnology plugins written for flight schools and flying clubs. They share the same look and the same idea: one job each, done properly, and they talk to each other when installed side by side.

* [Aero Courses](https://wordpress.org/plugins/leadovation-aero-courses/): theory course scheduling and booking, the semester built once and published on the school's site.
* [Aero Weather (METAR/TAF)](https://wordpress.org/plugins/leadovation-aero-weather-metar-taf/): the field's METAR and TAF on your site, raw or decoded, with the flight category at a glance.
* **Aero Users**: the school's roster (students, pilots, instructors, examiners) shared by the whole range.
* **Aero Weight & Balance**: mass and balance for the club's aircraft, with the envelope drawn. Coming.

= Translations =

The plugin is written in English and translated into French by hand, in the words a flying club actually uses. Translations come through [translate.wordpress.org](https://translate.wordpress.org/projects/wp-plugins/leadovation-aero-fleet/) and install themselves; to translate it into your language, or to improve the French, join the project there. A school can also drop its own file in `wp-content/languages/plugins/`.

= What this plugin does not claim =

This tool issues no release to service and extends no airworthiness review certificate. Those are signed by the organisation entitled to sign them, and no line written here changes that.

It is not the journey log, and it is not the aircraft file. The journey log is the document the crew fills in and that has to be able to travel with the aircraft; the aircraft file is what the maintenance organisation keeps. This plugin records what the club decided about a machine, who decided it and when, so that everybody reads the same thing.

An aircraft shown here as in service means one person said so on one date. It is a statement by the club about how it organises itself. Judging the airworthiness of a machine belongs to the people entitled to judge it, and the plugin carries that sentence on every screen where the question could be read the wrong way.

= Third-party services =

The plugin calls no external service to do its work. Nothing about your club, your aircraft or your documents leaves the site: no tracking, no usage reporting, no remote asset, no call to any address of ours or of anybody else's.

One exception, and it concerns the club's data in no way: the admin screens show the other plugins of the Aero range, and that list is read from [wptechnology.com](https://www.wptechnology.com/), the publisher's own site, at most once a day and only when an administrator opens one of those screens. It is a plain GET on a public address, with nothing about your site in it; if the site does not answer, the last list received is shown, or the one bundled with the plugin. Whether a plugin is installed here is read locally and never sent. [Legal notice](https://www.wptechnology.com/mentions-legales/) · [privacy](https://www.wptechnology.com/confidentialite/).

Its three type families, Archivo, Barlow Condensed and IBM Plex Mono, travel with the plugin as WOFF2 files and are served from the site itself, never from a font network. All three are published under the SIL Open Font License 1.1, which is compatible with the GPL. Their licence and attribution are in `assets/fonts/LICENSE.txt`.

== Screenshots ==

1. The fleet this morning: every aircraft sorted by urgency, the state of the day in one sentence, the last reading and the next document expiry of each, and one button to declare a machine unavailable.
2. The identity of an aircraft: registration, serial number, type taken from the catalogue, base, rules and rate, with the dated history of its statuses underneath.
3. The on-board documents of one aircraft: each kind with its expiry on a band, the file kept out of reach, and the visibility the club gave it.
4. Declaring an aircraft unavailable: the date it starts, the date it is expected back, and the reason, said by the person who says it.
5. The settings: thresholds per kind of document, the recipients chosen by their permission, what the public grid shows, and the log of refused downloads.
6. The fleet on the club's own site: each aircraft with its state of the day, its seats, its rate, and what it asks of a pilot.

== Installation ==

1. In your WordPress admin, go to Plugins → Add New and search for **Aero Fleet**, then click "Install Now" and activate. (Or upload the zip from Plugins → Add New → Upload Plugin.)
2. Open the **Aero Fleet** menu and add your first aircraft. The type catalogue fills in the model, the category and the seats for the eleven most common machines.
3. Record the documents that carry a date, starting with the insurance certificate and the airworthiness review certificate.
4. Turn the reminders on in the settings when you are ready: the screen tells you what the next pass would send, and to whom, before you switch anything on.
5. Put the fleet on a page: the `[aero_fleet]` shortcode or the "Our aircraft" block for the grid, `[aero_fleet_aircraft immat="F-GKLM"]` or the "One aircraft" block for one machine.

== Frequently Asked Questions ==

= Does it replace the journey log or the aircraft file? =

No, and it never will. The journey log is filled in by the crew and travels with the aircraft; the aircraft file belongs to the maintenance organisation. This plugin records what the club decided about a machine, who decided it and when.

= Who can see the documents? =

Only accounts that hold the permission to keep the on-board documents, unless you say otherwise document by document. Each one carries a visibility: kept by the school, visible to signed-in members, or visible to everyone. Files are never put in the media library, and a request refused is written to a log you can read.

= An aircraft is back from the workshop. What do I do? =

Open its line and declare it back in service, on the date it actually came back. The unavailability that was open is closed on that date, and the history keeps both.

= What happens to an aircraft the club sells? =

You archive it. Its line stays, its documents and its readings stay readable, and it leaves the public grid. If it comes back one day, you reactivate it rather than creating a second line: the serial number is what says it is the same aircraft.

= Do I need the other plugins of the range? =

No. Aero Fleet works on its own and carries its own copy of the shared core. When Aero Users is installed beside it, the two share their roles rather than each keeping a list of its own.

= Where do the aircraft drawings come from? =

They are 24 simplified profiles shipped with the plugin, under the same licence as the plugin itself. They are identification silhouettes and reproduce no technical drawing and no trade mark. The one that matches the type is set when the aircraft is added; you change it on the Identity tab, and a photograph of your own machine takes precedence over it on every screen.

= Does it send anything to an external service? =

Your aircraft, your documents and your readings never leave your site. The only outside call is the list of the other plugins of the range, read once a day from the publisher's own site when an administrator opens an admin screen, and it carries nothing about you.

== Changelog ==

= 1.1.0 =
* A library of 24 aircraft silhouettes, chosen automatically from the type and changeable on the aircraft file; a photo from the media library still takes precedence.

= 1.0.0 =
* First release: the aircraft register of a flight school.
* The identity of a machine, with a catalogue of eleven common types that fills in the model, the category and the seats.
* A dated status journal: in service, unavailable, grounded with no return date, archived, each one said by a person on a date and for a reason.
* Counter readings identified by what they count and the instrument they are read on.
* On-board documents with their expiry dates, kept in a closed folder outside the media library, served only to an account that holds the right, with a log of refused requests.
* Reminders by e-mail, thresholds set per kind of document, a weekly summary, off until the school switches them on.
* A dashboard sorted by urgency, and a fleet screen with views by state.
* Two blocks and three shortcodes for the club's own site, in light and dark.
* The `Aero\Fleet\Api` façade, four actions and five filters for the other plugins of the range.
