# Gradebook (jegykönyv)

> Jegykönyvek létrehozása, komponensek és súlyozás, kézi jegyek, bizonyítvány (report card) shortcode-dal, frontend jegykönyv, beállítások, szerepkörök és sablonok.

A Gradebook kiegészítővel rugalmas jegykönyv-táblázatokban követheted a tanulók haladását és pontszámait, az egyéni eredményeket pedig megoszthatod a tanulókkal és szüleikkel is.

## Telepítés

A kiegészítő bővítményfájlját a szoftverfiókodból töltheted le, majd a **Bővítmények → Új hozzáadása → Bővítmény feltöltése** oldalon telepítheted és aktiválhatod.

## Jegykönyv létrehozása

A használathoz legalább egy jegykönyvet létre kell hoznod. Mindegyiknek külön beállításai lehetnek.

1. Nyisd meg: **LearnDash LMS → Gradebook**.
2. Kattints a **Manage Gradebooks** gombra, majd az **Add New** gombra.
3. Add meg a jegykönyv címét.
4. Válaszd ki a hozzá tartozó kurzusokat.
5. Kattints az **Add Component** gombra, adj nevet a komponensnek, és válaszd ki, mit szeretnél osztályozni. (Például a feladatok teljesítéséért adott jegyhez létrehozhatsz „Házi feladat” nevű komponenst, és kiválaszthatod a feladatokat.)
6. Végül állítsd be a jegykönyv beállításait.

### Testreszabás

**Grading (osztályozás).** Itt dől el, mi számít bele a végső jegybe. Először válaszd ki a kurzus(oka)t, vagy az „All Courses” lehetőséget. Ezután annyi komponenst adhatsz hozzá, amennyit szeretnél. Minden komponens jegyét az határozza meg, ami benne van, és mindegyik beleszámít a felhasználó végső jegyébe. Komponens lehet például: Leckék, Kvízek, 1. félév, Otthoni projektek. Minden komponensbe kvízeket, feladatokat, leckéket és témákat tehetsz. Az **All** kapcsolóval az összes jelenlegi és jövőbeli elem automatikusan bekerül. Minden komponensnek adj nevet.

**Weighting (súlyozás).** Alapból ki van kapcsolva. Az **Enable Gradebook Weighting** kapcsolóval bekapcsolhatod. Ekkor minden komponenshez megadhatsz egy **Weight %** értéket úgy, hogy a komponensek összege 100% legyen. A komponens jegye ennyivel számít bele a végső jegybe.

**Settings (beállítások).** A **Completion Grading** azt határozza meg, hogyan számítanak a leckék és témák:

- **Only count on completion** (alapérték): csak befejezés után számítanak bele a jegybe, akkor 100%-ot kapnak.
- **Fail until completion**: a be nem fejezett lecke vagy téma 0%-ként számít, amíg a felhasználó be nem fejezi, utána 100%-ot kap.
- **Mark as Incomplete until completion**: a kvízeket és feladatokat befejezésig befejezetlennek jelöli. A befejezetlen nem rontja a jegyet, de a tanuló jegyei között (**View/Edit User Grades**) és a bizonyítványban „Incomplete” jelzéssel látszik.

**Users.** Itt nincs beállítás, de gyorsan kereshetsz felhasználót, és a **View/Edit User Grades** gombbal megnézheted vagy módosíthatod az adott jegykönyvhöz tartozó jegyeit.

## A jegykönyvek elérése és kezelése

1. Nyisd meg: **LearnDash LMS → Gradebook**.
2. A **Gradebook** alatt válaszd ki a megtekinteni vagy szerkeszteni kívánt jegykönyvet.

**Használat.** A táblázat minden sora egy felhasználót mutat az összesített jegyével és a komponensek jegyeivel. Újabb komponensek hozzáadásakor azok is megjelennek.

**Rendezés.** Egy oszlopfejlécre kattintva az oldal újratöltődik, és az eredmények az oszlop szerint növekvő sorrendben jelennek meg (felfelé mutató háromszög). Ugyanarra a fejlécre ismét kattintva csökkenő a sorrend.

**Felhasználók keresése.** A jobb felső kereső a WordPress felhasználókeresőjéhez hasonlóan működik: felhasználói azonosítóra, megjelenített névre, felhasználónévre vagy e-mail-címre is kereshetsz.

### Csoportok

A jegykönyvet csoportok szerint szűrheted. A rendszergazda csoportkorlátozás nélkül minden felhasználót lát, és a bal felső **Showing Gradebook for:** listából választhat egy csoportot. Az a csoportvezető, aki csak egy csoport tagja, nem lát listát, csak a saját csoportja felhasználóit. Aki több csoport vezetője, látja a listát, és válthat köztük.

### A jegyek szerinti rendezés kikapcsolása a háttérfelületen

Ha lassú a webhelyed vagy nagyon sok a felhasználód, és a jegykönyv nem töltődik be, kapcsold be a **Disable Sorting by Grades for the Backend Gradebook** beállítást. Ez kikapcsol néhány rendezési funkciót és jegy-pillanatképet, de jóval gyorsabb és megbízhatóbb lesz nagy webhelyeken. A beállítás bármikor ki- és bekapcsolható.

Ha a jegykönyv oldal annyira nem tölt be, hogy a beállításokhoz sem jutsz el, nyisd meg közvetlenül ezt a címet: `https://pelda.hu/wp-admin/admin.php?page=learndash-gradebook-settings` (a saját webhelyed címével). Vagy add hozzá a `wp-config.php` fájlhoz:

```php
define( 'LD_GB_DISABLE_SORTING_BY_GRADES_BACKEND', true );
```

## Report Card (bizonyítvány)

A Report Card egy megjelenítő eszköz, amelyben a felhasználók látják a jegykönyvhöz tartozó jegyeiket.

**Megjelenés.** Tartalmazza a felhasználó összesített jegyét, a komponensek jegyeit és a részletes pontszámokat. Egy komponensre vagy a bal oldali nyílra kattintva lenyílik a részletes bontás. A pontszám lehet kézi jegy, kvíz, feladat, lecke vagy téma.

**Használat.** A bizonyítványt a `[ld_report_card gradebook="1"]` shortcode-dal jelenítheted meg. Másold be bármelyik shortcode-ot fogadó helyre (leggyakrabban oldal vagy bejegyzés tartalmába), és az 1-es számot cseréld a megjeleníteni kívánt jegykönyv azonosítójára. A shortcode a jegykönyv szerkesztésekor is megtalálható.

- Ha a shortcode-ot jegykönyv-azonosító nélkül használod (`[ld_report_card]`), a felhasználó összes releváns jegykönyvét egymás után megjeleníti.
- A `user` paraméterrel megadhatsz egy konkrét felhasználót azonosítóval. A felhasználó azonosítóját a **Felhasználók** oldalon a névre kattintva, a szerkesztőoldal webcímében látható `user_id=107` részből olvashatod ki.
- Ha csak az összesített jegyet akarod megjeleníteni (például tanúsítványon), használd az `[ld_overall_grade]` shortcode-ot. Ugyanazok a paraméterei, mint az `[ld_report_card]`-nak, de itt a jegykönyv azonosítója kötelező.

## Feladatok

A LearnDash a feladatokhoz egyéni jegyet adhat. Alapból a feladat jegye 100%, amíg módosítod.

## Kézi jegyek

Kézi jegyet bármikor felvehetsz a felhasználóknak. Ezekkel olyan jegyet adhatsz, amit kvíz vagy feladat nem tud kifejezni.

### A szerkesztőképernyő elérése

Kattints a jegykönyvben a **User** oszlopban a **View/Edit User Grades** szövegre, vagy keress rá a felhasználóra, és onnan nyisd meg. Minden sor egy jegyet jelent, a bal oldali ikon a jegy típusát. Az ikon fölé víve megjelenik a típus neve:

- ceruza: kézi jegy
- kérdőjel: kvíz
- papír: feladat
- írás: lecke
- mappa: téma

### Kézi jegyek kezelése

A változtatások azonnal élesek, ezért légy óvatos.

**Kézi jegy hozzáadása:**

1. Kattints az **Add Manual Grade** gombra.
2. Adj meg egyedi nevet (például „Keresztrejtvény”, „Jelenlét”). A név az adott típuson belül egyedi kell legyen.
3. Add meg a pontszámot. Bármilyen 0-nál nagyobb szám lehet.
4. Szükség esetén adj meg állapotot. Alapból nincs különleges állapot, jelenleg csak az „Incomplete” választható, amelyet a végső jegy számításakor figyelmen kívül hagy.
5. Kattints az **Add** gombra.

**Kézi jegy törlése:**

1. Vidd az egeret a kézi jegy (ceruza ikonos sor) fölé.
2. Kattints a megjelenő **Remove** linkre.
3. Erősítsd meg a törlést.

A törölt kézi jegy nem állítható vissza automatikusan, csak újra felveheted.

**Kézi jegy szerkesztése:**

1. Vidd az egeret a jegy fölé.
2. Kattints a megjelenő **Edit** linkre.
3. Ugyanúgy járj el, mint a hozzáadásnál, de a végén a **Change** gombra kattints.

### Más jegyek módosítása

A kvíz- és feladatjegyeknél itt csak különleges állapotot adhatsz meg. A tényleges pontszámot innen nem módosíthatod.

## Frontend jegykönyv

A frontend jegykönyvet a `[ld_gradebook]` shortcode-dal bármelyik oldalra beteheted. Ugyanazt tudja, mint a háttérfelületi jegykönyv, azoknak, akik nem akarnak háttérfelületi hozzáférést adni a csoportvezetőknek és tanároknak.

Két fontos különbség a háttérfelületi változathoz képest:

1. Akkor is rendezhetsz minden oszlop szerint, ha a **Disable Sorting by Grades for the Backend Gradebook** be van kapcsolva, mert a frontend jegykönyv máshogy tölti be az adatokat.
2. A keresés, a lapozás és a tanulók jegyeinek kezelése is ugyanazon az oldalon történik, frissítés nélkül. Ha sok a tanuló a jegykönyvben, az oldalak betöltése pár másodpercig tarthat.

## Beállítások

A beállításokhoz nyisd meg a **Gradebook** oldalt, és kattints felül a **Settings** fülre. A felül lévő kék linkekkel válthatsz a szekciók között.

### General

- **Quizzes:** ha a tanulók újra megpróbálhatják a kvízt, itt döntheted el, hogy a legutóbbi vagy a legjobb (legmagasabb) pontszám számítson.
- **Grade Display Mode:** alapból betűjegyeket használ (A, B, D-, C+ stb.). Ha százalékot (0-100%) szeretnél, állítsd át „Percentage”-re.
- **Grade Rounding Precision:** az egyes jegyek (feladat, kvíz, kézi jegy) kerekítésénél megadja, hány tizedesjegyre kerekítsen. A 0 egész számot jelent. 0 és 10 közötti értéket adhatsz meg. A komponensek jegyének és a végső jegynek a kerekítését nem érinti.
- **Grade Rounding Mode:** hogyan kerekítsen: felfelé, lefelé, vagy a legközelebbire (az 5 felfelé kerekít).
- **Restart Quickstart Guide:** ha bezártad a gyorsútmutatót, itt újraindíthatod. A megadott linket megoszthatod más felhasználókkal is, ha van hozzáférésük.

### Roles (szerepkörök)

- **View the Gradebook:** alapból csak a rendszergazdák és a csoportvezetők láthatják a jegykönyvet. Itt további szerepköröket adhatsz hozzá. (Fejlesztőknek: ez a `view_gradebook` jogosultságot adja a kijelölt szerepköröknek, bármilyen más módszerrel is hozzáadhatod.)
- **Create and Edit their own Gradebooks:** alapból csak a rendszergazdák hozhatnak létre és szerkeszthetnek jegykönyvet. Itt további szerepköröket jelölhetsz ki. Ezek csak a saját jegykönyveiket kezelhetik, a rendszergazdák mindenkiét. A jegykönyv menüpont megjelenéséhez a `view_gradebook` jogosultság is kell.
- **Quickstart Guide Visibility:** a gyorsútmutatót alapból csak a rendszergazdák látják. Itt másokat is hozzáadhatsz, de csak olyan szerepkörök jelennek meg, amelyek elérik a LearnDash és a Gradebook oldalait.

### Styles

- **Letter Grade Scale:** alapból a megszokott betűjegy-skálát használja. Módosíthatod az értékeket, törölhetsz, és az **Add Letter Grade** gombbal új betűket adhatsz hozzá. A sorrendet nem változtathatod, a betűk a jegy szerint növekvő sorrendben jelennek meg, és mentés után automatikusan újrarendeződnek.
- **Grade Color Scale:** a jegyek mellett megjelenő színt állíthatod be, ugyanúgy módosíthatod, törölheted és bővítheted.

Mindkét skálánál: ha egy jegy eléri a megadott minimális százalékot, a betű vagy szín a következő intervallumig érvényes.

### Licensing

Itt kezelheted a kiegészítő licencét. Mihamarabb add meg és aktiváld, mert a licenc a frissítésekhez (új funkciók, hibajavítások, biztonsági javítások) szükséges.

## Fejlesztőknek

### A Report Card sablon

A Report Card sablon kis vagy nagy mértékben módosítható, kétféleképpen.

**Sablonfájlok felülírása a témában.** A kiegészítő először a témában keres sablonfájlokat, és csak ha nincs, tölti be a sajátját. Az aktív gyermektéma elsőbbséget élvez, utána a szülőtéma, végül a kiegészítő. Bármelyik fájlt lecserélheted. Célszerű előbb átmásolni, és abból módosítani. A téma szerkezete:

```text
learndash/report-card/report-card.php
learndash/report-card/title.php
learndash/report-card/overall-grade.php
learndash/report-card/expand-collapse.php
learndash/report-card/component/component.php
learndash/report-card/component/grade.php
learndash/report-card/component/grades-header.php
learndash/report-card/component/title.php
learndash/report-card/component/toggle.php
learndash/report-card/grade/grade.php
learndash/report-card/grade/name.php
learndash/report-card/grade/score.php
learndash/report-card/grade/type.php
```

A kiegészítőben ugyanezek a fájlok a `templates` mappában vannak (a `learndash` mappa helyett).

**A horgok (hook) eltávolítása vagy módosítása.** A fájlok action hookokon át töltődnek be, ezért eltávolíthatod vagy lecserélheted őket a saját függvényeiddel. A horgok az `includes/shortcodes/class-ld-gb-sc-reportcard.php` fájlban láthatók.

### A frontend jegykönyv sablonja

Ugyanígy két módon módosítható. A téma szerkezete:

```text
learndash/frontend-gradebook/edit-panel/components/edit-panel-component-grade.php
learndash/frontend-gradebook/edit-panel/components/edit-panel-component-override.php
learndash/frontend-gradebook/edit-panel/components/edit-panel-component.php
learndash/frontend-gradebook/edit-panel/components/edit-panel-components.php
learndash/frontend-gradebook/edit-panel/components/edit-panel-grade-add.php
learndash/frontend-gradebook/edit-panel/components/edit-panel-grade-edit.php
learndash/frontend-gradebook/edit-panel/components/edit-panel-grade-row.php
learndash/frontend-gradebook/edit-panel/components/edit-panel-no-grades.php
learndash/frontend-gradebook/edit-panel/edit-panel-back-to-gradebook.php
learndash/frontend-gradebook/edit-panel/edit-panel-user-grade.php
learndash/frontend-gradebook/edit-panel/edit-panel.php
learndash/frontend-gradebook/errors/dialog.php
learndash/frontend-gradebook/errors/no-access.php
learndash/frontend-gradebook/errors/no-gradebooks.php
learndash/frontend-gradebook/errors/no-groups.php
learndash/frontend-gradebook/export-buttons.php
learndash/frontend-gradebook/frontend-gradebook.php
learndash/frontend-gradebook/gradebook-dropdown.php
learndash/frontend-gradebook/gradebook-results.php
learndash/frontend-gradebook/group-dropdown.php
learndash/frontend-gradebook/table/table-head.php
learndash/frontend-gradebook/table/table-list.php
learndash/frontend-gradebook/table/table-row.php
```

A kiegészítőben ezek szintén a `templates` mappában vannak. A horgokat az `includes/shortcodes/class-ld-gb-sc-frontendgradebook.php` fájlban találod.

### Értesítések

A Notifications kiegészítővel e-mailt küldhetsz a tanulóknak, ha kézi jegyet adtál nekik. Ehhez a Gradebook és a [Notifications](https://hub.hellowp.io/hu/plugins/sfwd-lms/integraciok-notifications/) kiegészítő is aktív kell legyen, és a Notifications legalább 1.6.2-es változata szükséges.
