> For the complete documentation index, see [llms.txt](https://eavio.gitbook.io/eavio-club/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://eavio.gitbook.io/eavio-club/functionalities/trainings.md).

# Trainings

{% hint style="info" %}
Module scope: How to configure training programs (types, phases, lessons), enroll a student, manage instructor availability, book flights, grade lessons, and generate reports in **eAvio**.
{% endhint %}

{% hint style="info" %}
Intended readers: Club/school admins, instructors, and students.
{% endhint %}

***

## At-a-glance

1. **Create the user** (CLUB MANAGEMENT → USERS).
2. **Add User Activity** to mark them as **Student**/**Instructor** and assign section.
3. **Add Credentials** (medical, licenses, certificates) to the user profile.
4. **Define Training Types** (e.g., PPL, LAPL, Night) and create **at least one Phase** per type.
5. **Create Training Lessons** for each phase (objectives, subjects, durations, media, docs, optional theory quiz).
6. **Configure grading scale** (Parameters → `trainings_available_grades` ) before starting operations.
7. **Assign User Training** (link Student + Type + Responsible Instructor).
8. **Planner/Calendar:** set instructor availability; make bookings (calendar, reservations, or flight orders).
9. **Frontend (mobile/web):** track lessons, attach flight logs to training records, grade and sign.
10. **Student View:** review progress, grades, and training history.
11. **Reports & Templates:** generate Word reports from customizable templates.
12. **Frontend reservations:** students and instructors book directly from mobile/web.

***

* The user performing setup needs **sufficient permissions** to manage users, training, and scheduling.
* At least one **Section** configured (e.g., Glider, Power/SEP, ULN, Parachute).
* Aircraft and instructors created in the system.

{% hint style="info" %}
Ensure Sections, aircraft, and instructors exist before defining training types and lessons. It streamlines assignment and booking.
{% endhint %}

***

## 1. Add the user (student and/or instructor)

Create a user account to track activity and give the person access to eAvio. The user receives an email notification when the account is created and can set or change their password. Every later action (credentials, training, bookings, flight logs) anchors to this account.

**Path:** **CLUB MANAGEMENT → USERS** → **Create User**\
Fill in whatever you know about the person; the more you add now, the better eAvio can assist later.

Open the new user in **View** mode (click the eye icon or the ID).

***

## 2. Add User Activity

A new user has no permissions by default. In Activity you set in which Section(s) (e.g., Glider, Power/SEP, ULN, Parachute) the user is active and what role(s) they have there (Student, Instructor, or others). This step also lets you set a Default Instructor for students, which controls visibility and workflow for training and records.

**Path:** **CLUB MANAGEMENT → User Activities** → **Create User Activity**

In the user's **Activity** panel, click **Add Activity** and set:

* **Section:** Glider, Power, ULN, Parachute, …
* **Roles:** tick **Student** and/or **Instructor**
* **Default Instructor:** select for students

{% hint style="info" %}
Alternative: Open the user profile → **Activity** panel → **Add Activity**.
{% endhint %}

***

## 3. Add Credentials (Medical, Licenses, Certificates)

The Credentials module is the central place to store medicals, licenses, ratings, and other certificates (with dates and attachments). For safe operations and clean audits, collect these documents before flying or starting practical training and upload them to the user's profile.

**Path:** **CLUB MANAGEMENT → USERS** → open user → **Credentials** → **Create User Credential**

Add items like **Medical Certificate (Class 1/2/LAPL)**, **License PPL/CPL/ATPL**, and **other certificates**.

<figure><img src="/files/Gqv9yIFuI2KFnQwt49EY" alt="Credential type selector showing available certificates and licenses"><figcaption></figcaption></figure>

{% hint style="info" %}
Best practice: Record credentials before scheduling a flight.
{% endhint %}

***

## 4. Define Training Types (e.g., PPL, LAPL, Night)

Think of this as your training programs catalog (e.g., PPL, LAPL, Night). Define each type you intend to run; it organizes lessons, reporting, and enrollment. Each type must have at least one phase—even if you use a single-phase syllabus, create that phase up front.

**Path:** **Training → Training Types** → **Create Training Type**

Add a type per program you offer (e.g., **PPL**, **LAPL (A)**, **Night (A)**, **LAPL/PPL Theory (A)**).

{% hint style="info" %}
Phase requirement: Each training type must have **at least one Phase**. If you run a single-phase syllabus, create a phase with the same name as the type.
{% endhint %}

<figure><img src="/files/Bn0U2uvXeoMXKwfzHwHz" alt="Create Training Lesson form"><figcaption></figcaption></figure>

\---

## 5. Create Training Lessons

Break long programs into manageable phases and define lessons within them. For each lesson, set objectives/standards, subjects (exercises), required dual/solo time, study media (video), docs (PDFs), and optional theory checks (quizzes). This structure drives the instructor's grading and the student's preparation.

**Path:** **Training → Training Lessons** → **Create Training Lesson**

For each lesson, set:

* **Training Type & Phase/Group** (e.g., *PPL(A) Phase 1*)
* **Name & Subtitle**
* **Goal** and optional **Secondary goal**
* **Standards/Expected outcomes**
* **Subjects** (exercises within the lesson)
* **Required dual** and **required solo** time
* **Media:** paste a YouTube/Vimeo link for pre-lesson study
* **Documents:** upload PDFs (briefings, checklists, worksheets, etc.)
* **Optional Theory Check:** attach an **Exam** built in the **Exams** module

<figure><img src="/files/uLi0wWRHzU2HYKN6zoy7" alt="Training Lessons list showing PPL(A) Phase 1 and 2 lessons"><figcaption></figcaption></figure>

{% hint style="info" %}
You can add **ad-hoc subjects** later inside a **Training Record** if truly needed. Use sparingly.
{% endhint %}

***

## 6. Configure grading scale (before starting training)

Schools grade differently (numbers, letters, or proficiency bands such as D, S-, S, S+). Set the grading scale once in Parameters so the same options appear everywhere—subject chips, training records, and reports. Do this before creating records to keep data consistent.

**Path:** **Orders → Parameters** → search **"training available grades"** (`trainings_available_grades` )

Define the labels/values your school uses (for example: `"---"`, `D`, `S-`, `S`, `S+`). These appear on subject chips and in training records.

<figure><img src="/files/r5mGldatgyVkmbQKB7fc" alt="Grades configuration example"><figcaption></figcaption></figure>

<figure><img src="/files/sPBlDdD5S7uORYDVjcTg" alt="Training grades format parameter showing array of grade values"><figcaption></figcaption></figure>

***

## 7. Enroll the student into a Training (User Training)

Link a Student to a Training Type and a Responsible Instructor (and set status, e.g., Started). This makes the program visible on the frontend for both student and instructor, and it starts progress tracking. A user can be enrolled in multiple programs if needed.

You can assign training **from the user profile** *or* via the training list.

* **From user profile:** open the user → **User Trainings** → **Create**
* **From navigation:** **Training → User Trainings** → **Create User Training**

Link the **Student**, select **Training Type**, set **Status** (e.g., *Started*), and choose the **Responsible Instructor**.

<figure><img src="/files/10vzQ8Hx4g95DlfzELXh" alt="Create User Training form"><figcaption></figcaption></figure>

<figure><img src="/files/tUqXlzQXdoiNM1gzkVJb" alt="User Trainings list with Generate Report"><figcaption></figcaption></figure>

{% hint style="info" %}
Once assigned, both student and instructor see the training in the **front-end**.
{% endhint %}

***

## 8. Planner / Calendar (instructor availability)

Schedule who flies when and with which aircraft. In the Planner, define instructor availability (timeslots, repeatable days, or "by instructor arrangement") and then create bookings from the calendar—or use the Plane Reservation → Flight Order path. Bookings automatically link the aircraft, instructor, and student/pilot, and can be moved or resized as plans change.

**Path:** **Planner → Calendar** (backend)

* Click-drag on an instructor's row to create availability; it shows as a **black line** on the timeline.
* Choose **timeslots** and optionally mark **repeatable** on selected weekdays.
* Enable **By instructor arrangement** for flexible, instructor-student arranged times.

<figure><img src="/files/ibZV8QC4KRE1Kc25t9aw" alt="Setting instructor availability with timeslots"><figcaption></figcaption></figure>

<figure><img src="/files/7fyk9QqAocYJYxRCVsRH" alt="Repeatable availability settings for days of the week"><figcaption></figcaption></figure>

### Booking flights/training (backend)

You can:

* Create bookings **in the calendar** (pick instructor and aircraft). Drag to create; select **Student** and **Aircraft** in the dialog.
* Or create a **Plane Reservation** and later a **Flight Order** (plan with a reservation; submit a flight order pre-flight as a final compliance check).\
  **Path:** **FLIGHT CONTROL → Plane Reservations / Flight Orders**

{% hint style="info" %}
After booking, events are linked between **Aircraft**, **Instructor**, and **Student/Pilot**.
{% endhint %}

***

## 9. Frontend reservations (students & instructors)

If you allow self-scheduling, both students and instructors can create reservations in the mobile/web frontend. Instructors can reserve an aircraft for a student; students can book and pick an instructor. With timeslots enabled, students only see bookable hours that match the instructor's availability; with free choice, they should coordinate time directly with the instructor first.

Many schools let **students** book from the frontend:

* **Free-choice instructor:** students can pick any instructor; they should contact the instructor first to confirm availability.
* **Timeslot-based:** when timeslots are enabled, students only see **available** hours for the selected instructor and can book within those slots.

**Instructors** can also book from the frontend:

* Choose the aircraft and time, then mark the booking **for a student** and select the student.

Front-end bookings appear in the backend planner and follow the same **reservation → flight order** flow.

**Examples**

**Instructor creating a reservation for a student:**

![Instructor creates reservation for a student](/files/N7X5Kex9q7X95NBLRhJW)

**Student booking with timeslots enabled:**

![Student books timeslot with instructor](/files/eMGd83b1Z5Ilci1mXm0X)

## 9. Training workflow - Frontend

The daily working view for both roles. Students see phases, lessons, videos, documents, and progress; instructors see their students and can add training records: attach a Flight Log or choose GND ONLY, pick the lesson/subjects performed, grade each, and sign. Past grades remain visible for quick trend checks.

**Path:** **Menu → Trainings**

* Instructors: see all assigned students and programs.
* Students: see your own programs and progress.
* Open a training to view progress (lessons completed vs total), accumulated duration vs required, and all lessons grouped by phase.
* Tap a lesson to see objectives, video, documents, subjects, and any **theory quiz**.

<figure><img src="/files/ZP91QY8OwpwJkNgS1dVn" alt="Instructor&#x27;s view of student training progress showing PPL with 0/45 lessons completed"><figcaption></figcaption></figure>

### Add a Training Record (tie to a Flight Log)

**Workflow**

1. Student flies and **submits Flight Log** (frontend).
2. Instructor opens the training, presses **➕**, and selects the **Flight Log** to attach — or chooses **GND only** when there was no flight (ground training/briefing only).
3. Choose **Lesson** and **Subjects** trained; grade each subject.
4. Optionally add **ad-hoc subjects** if something outside the curriculum was trained.
5. Review quick status (list icon) to see previous attempts/grades.
6. **Sign** the record (instructor confirmation with password).

<figure><img src="/files/U4hV9sKVeN1Ual2WAJYe" alt="Adding a training record from frontend with student, instructor, and lesson selection"><figcaption></figcaption></figure>

<figure><img src="/files/3ynVvFxZ1wNM60PdpUXd" alt="Lesson editor quick-grade controls"><figcaption></figcaption></figure>

\---

### Student View (frontend)

Students see the same training with their **progress**, **videos**, **documents**, and any **theory quizzes**.

{% hint style="info" %}
Recommendation: Students should complete the quiz **before flying**, so the instructor can review how well they are prepared.
{% endhint %}

Past grades are shown so students can track improvements across repeated lessons.

<figure><img src="/files/uifEh3cgp7rONNkdOdG6" alt="Training grades displayed in frontend showing S+ for Pre-Flight Preparation and Threat &#x26; Error Management"><figcaption></figcaption></figure>

***

## 10. Reports & Templates

**What this is for**\
Many schools need paper/digital documents. Reports merge training data (records, lesson progress) into **Microsoft Word** documents you can edit or archive.

**Setup first**\
Before generating reports, configure templates under **Parameters → Other Parameters**, search **`training_report_templates`**.\
Each template belongs to a **Resource** (e.g., `UserTraining` or `TrainingRecord`). Download the DOCX, edit to match your layout/branding, and upload.

**Generate a report**\
**Training → User Trainings** → select a record → **Generate Report**.\
Choose the template and fill optional fields (Head of Training, Date, Location, DTO…).

<figure><img src="/files/WaXN2mgLPI9It1JAz6t0" alt="Generate Training Report dialog"><figcaption></figcaption></figure>

<figure><img src="/files/WvPE2QE0W12BZwJRTyob" alt="Training report templates parameter"><figcaption></figcaption></figure>

***

## Tips & Good Practices

* Keep lessons concise with embedded **pre-study videos**.
* Record **Credentials** early (medical expiries, license renewals).
* Use **repeatable availability** to reduce calendar maintenance.
* Prefer **Reservation → Flight Order** for operational discipline.
* Mirror national syllabus with **Phases** for clearer progress.

***

## Troubleshooting

* **Student/Instructor can’t see the training:** Confirm *User Training* exists and the **Default Instructor** is set in **Activity**.
* **Grades look different than expected:** The list is never empty; adjust the scale under **Parameters → `trainings_available_grades`** to match your scheme.
* **Report content/fields don’t match:** Download the relevant **DOCX template** from **`training_report_templates`**, edit placeholders/sections, then upload as your active template.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://eavio.gitbook.io/eavio-club/functionalities/trainings.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
