# Spis treści — dokumentacja użytkownika Omniscol Canonical Omniscol user documentation, generated from the maintained `help/pl/` corpus. This is the authoritative reference and supersedes any older PDF manual. Authoring directives (UI labels, i18n strings, feature gating) are resolved to their real pl wording. Internal cross-references link to `#page-` anchors within this file. Interactive step-by-step walkthroughs are omitted. ## Contents **1. Pierwsze kroki** - [1.1 Czym jest Omniscol?](#page-overview.what-is-omniscol) - [1.2 Ogólna filozofia Omniscol](#page-overview.philosophy) - [1.3 Oprowadzenie w pięć minut](#page-overview.quick-tour) - [1.4 Architektura, moduły i role](#page-overview.architecture-and-roles) - [1.5 Plany i opcje Omniscol](#page-overview.plans-and-options) - [1.6 Wybór właściwego typu planu lekcji: tygodniowy, cykliczny, kalendarzowy](#page-overview.timetable-modes) - [1.7 Pierwsze logowanie](#page-getting-started.first-login) - [1.8 Konfigurowanie konta szkoły](#page-getting-started.setup-school) - [1.9 Zapraszanie i aktywowanie użytkowników](#page-getting-started.inviting-users) - [1.10 Przygotowanie danych do importu masowego (wsadowego)](#page-getting-started.preparing-data) - [1.11 Przewodnik wprowadzający (sześć kroków modułu Strona główna)](#page-getting-started.onboarding-tour) **2. Podstawowe pojęcia** - [2.1 Organizacja danych: przedmioty, nauczyciele, klasy, plany lekcji](#page-core-concepts.data-model) - [2.2 Klasa, grupa, podgrupa](#page-core-concepts.classes-and-groups) - [2.3 Podziały klasy](#page-core-concepts.class-divisions) - [2.4 Wyrównania grup](#page-core-concepts.alignments) - [2.5 Grupy grup](#page-core-concepts.groups-of-groups) - [2.6 Hierarchia grup: grupy nadrzędne, podrzędne, odziedziczone ograniczenia](#page-core-concepts.group-hierarchy) - [2.7 Grupy wolne](#page-core-concepts.free-groups) - [2.8 Kursy, lekcje, typy lekcji](#page-core-concepts.lessons-and-types) - [2.9 Złożone lekcje: naprzemienne, połączone, skojarzone, współnauczane](#page-core-concepts.complex-lessons) - [2.10 Kampusy, lokalizacje, sale, zasoby, wiele sal](#page-core-concepts.sites-rooms-resources) - [2.11 Siatka godzin, przedziały czasowe i czasy trwania](#page-core-concepts.timetable-grid) - [2.12 Specjalizacje sal](#page-core-concepts.classroom-specializations) - [2.13 Dostępność i ograniczenia czasowe nauczycieli](#page-core-concepts.wishes-and-availability) - [2.14 Ograniczenia czasowe: klasy, kursy, grupy, sale i siatka godzin](#page-core-concepts.time-constraints) - [2.15 Rok szkolny, tygodnie naprzemienne, dni wolne](#page-core-concepts.school-year) - [2.16 Oś czasu i nawigacja w czasie](#page-core-concepts.timeline-navigation) - [2.17 Wyszukiwanie i filtrowanie na listach](#page-core-concepts.search-and-filter) - [2.18 Współpraca między administratorami](#page-core-concepts.collaboration) **3. Tworzenie planu lekcji (moduł Zarządzanie planami lekcji)** - [3.1 Przegląd modułu Zarządzanie planami lekcji](#page-timetables.overview) - [3.2 Wymagania wstępne przed utworzeniem planu lekcji](#page-timetables.prerequisites) - [3.3 Tryb kalendarzowy — opcje zaawansowane](#page-timetables.calendar-mode) - [3.4 Dostępność i ograniczenia w trybie kalendarzowym](#page-timetables.calendar-wishes) - [3.5 Okna dat](#page-timetables.date-windows) - [3.6 Krok 1 — Ustawienia ogólne](#page-timetables.general-settings) - [3.7 Etap 2 — Lokalizacje, siatki godzin, sale, zasoby](#page-timetables.sites-rooms) - [3.8 Krok 3 — Przypisywanie nauczycieli](#page-timetables.assigning-teachers) - [3.9 Krok 4 — Tworzenie klas i ich grup](#page-timetables.creating-classes) - [3.10 Krok 5 — Wyrównania grup i grupy grup](#page-timetables.alignments-and-groups-of-groups) - [3.11 Krok 6 — Podział godzin i tworzenie lekcji](#page-timetables.hour-distribution) - [3.12 Polityka podziału godzin](#page-timetables.distribution-policy) - [3.13 Automatyczne przydzielanie sal](#page-timetables.auto-room-assignment) - [3.14 Krok 6b — Masowy import kursów z arkusza kalkulacyjnego](#page-timetables.mass-import) - [3.15 Krok 7 — Automatyczne generowanie](#page-timetables.generation) - [3.16 Krok 8 — Publikacja planu lekcji](#page-timetables.publication) - [3.17 Kilka planów lekcji opublikowanych równolegle](#page-timetables.multiple-active-timetables) - [3.18 Ręczne umieszczanie lekcji](#page-timetables.manual-placement) - [3.19 Edycja lekcji](#page-timetables.lesson-edit) - [3.20 Lekcje i klasy poza siatką godzin](#page-timetables.off-grid-lessons) - [3.21 Blokowanie pozycji lekcji](#page-timetables.lesson-lock) - [3.22 Wykrywanie i rozwiązywanie konfliktów (przy generowaniu)](#page-timetables.conflicts) - [3.23 Diagnozowanie nieudanego generowania](#page-timetables.diagnosing-generation) - [3.24 Podgląd, duplikowanie i reorganizacja planu lekcji](#page-timetables.visualize-duplicate) - [3.25 Przygotowanie następnego roku szkolnego](#page-timetables.next-school-year) **4. Panel zarządczy** - [4.1 Przegląd modułu Panel zarządczy](#page-dashboard.overview) - [4.2 Korzystanie z tabel i wykresów](#page-dashboard.tools-and-filters) - [4.3 Statystyki nauczycieli](#page-dashboard.teachers) - [4.4 Statystyki sal](#page-dashboard.classrooms) - [4.5 Statystyki przedmiotów](#page-dashboard.subjects) - [4.6 Statystyki klas](#page-dashboard.classes) - [4.7 Statystyki uczniów i zasobów](#page-dashboard.students-resources) **5. Codzienne użytkowanie (moduł Plany lekcji)** - [5.1 Przeglądanie i filtrowanie planów lekcji](#page-schedules.consult-and-filter) - [5.2 Wyświetlanie planów lekcji: siatka, lista, tabela, harmonogram, miesiąc, widok obok siebie](#page-schedules.schedule-display) - [5.3 Doraźne modyfikacje opublikowanego planu lekcji](#page-schedules.ad-hoc-changes) - [5.4 Wydarzenia jednorazowe (poza planem lekcji)](#page-schedules.events) - [5.5 Drukowanie i udostępnianie](#page-schedules.print-and-export) - [5.6 Udostępnianie planu lekcji linkiem publicznym](#page-schedules.share-link) **6. Nieobecności i zastępstwa** - [6.1 Przegląd modułu Zarządzanie nieobecnościami](#page-absences.overview) - [6.2 Zgłaszanie nieobecności (administrator / nauczyciel / uczeń)](#page-absences.declaring) - [6.3 Zasady zastępstw](#page-absences.substitution-policies) - [6.4 Jednorazowe zastępstwo na pojedynczej lekcji](#page-absences.single-lesson-replacement) - [6.5 Nieobecności wielodniowe](#page-absences.multi-day) - [6.6 Nieobecności klas i uczniów](#page-absences.class-and-student-absences) - [6.7 Monitorowanie i eksport nieobecności](#page-absences.statistics) **7. Obsada personelu** - [7.1 Przegląd modułu Obsada personelu](#page-staffing.overview) - [7.2 Budowanie siatki dyżurów](#page-staffing.building-grids) - [7.3 Definiowanie zadań do obsadzenia](#page-staffing.assignments) - [7.4 Przydzielanie personelu](#page-staffing.planner) - [7.5 Tworzenie i udostępnianie grafików dyżurów](#page-staffing.roster) **8. Administracja** - [8.1 Użytkownicy i role](#page-admin.users-and-roles) - [8.2 Zarządzanie administratorami](#page-admin.admins) - [8.3 Role niestandardowe w administracji](#page-admin.customroles) - [8.4 Obszary planowania](#page-admin.planning-domains) - [8.5 Zarządzanie nauczycielami](#page-admin.teachers) - [8.6 Zarządzanie uczniami](#page-admin.students) - [8.7 Zarządzanie członkami personelu](#page-admin.staff) - [8.8 Zarządzanie przedmiotami (oficjalnymi i niestandardowymi)](#page-admin.subjects) - [8.9 Typy lekcji](#page-admin.lesson-types) - [8.10 Rok szkolny i dni wolne](#page-admin.school-year) - [8.11 Ustawienia ogólne szkoły](#page-admin.parameters) - [8.12 Ustawienia zaawansowane i dostosowanie](#page-admin.advanced-parameters) - [8.13 Ograniczenia widoczności i logowania](#page-admin.visibility-restrictions) - [8.14 Import i eksport](#page-admin.import-export) - [8.15 Punkty kopii zapasowych](#page-admin.snapshots) - [8.16 Dziennik aktywności (logi)](#page-admin.logs) **9. Integracje** - [9.1 Przegląd integracji](#page-integrations.overview) - [9.2 Jak działa Omniscol — jedno API, jedno źródło prawdy](#page-integrations.architecture) - [9.3 iCal — subskrypcja i dynamiczny link](#page-integrations.ical) - [9.4 API Omniscol — tokeny uwierzytelniające](#page-integrations.api-tokens) - [9.5 OAuth2 / OIDC — podłączenie usługi do Omniscol](#page-integrations.oauth-server) - [9.6 Personalizacja API: nadpisania punktów dostępu i hooki](#page-integrations.api-customization) - [9.7 Pełny model danych: jednostki JSON, relacje i ontologia](#page-integrations.data-model-full) - [9.8 Zaawansowane zapytania — filtrowanie, projekcja i paginacja w API](#page-integrations.advanced-queries) - [9.9 API lekcji — pobieranie lekcji dla dowolnej daty](#page-integrations.lessons-api) - [9.10 MCP — podłączenie zewnętrznego agenta AI do Omniscol](#page-integrations.mcp) - [9.11 Wbudowany asystent AI](#page-integrations.ai-assistant) - [9.12 OIDC / SSO — logowanie przez dostawcę tożsamości](#page-integrations.oauth2) - [9.13 Synchronizacja z systemami zewnętrznymi (ERP)](#page-integrations.extsync) - [9.14 OneRoster (1.2 i grupy zaawansowane)](#page-integrations.oneroster) - [9.15 Konta powiązane i współdzielone zasoby](#page-integrations.linked-accounts) - [9.16 Konektor Edusign](#page-integrations.edusign) **10. Portale** - [10.1 Portal ucznia](#page-portal.student-portal) - [10.2 Portal nauczyciela](#page-portal.teacher-portal) - [10.3 Portal gościa (linki publiczne)](#page-portal.guest-portal) - [10.4 Publiczne linki udostępniania](#page-portal.share-links) **11. Panele informacyjne** - [11.1 Konfigurowanie panelu informacyjnego dla holu lub korytarza](#page-panels.lobby-panel) - [11.2 Konfigurowanie panelu informacyjnego przed salą](#page-panels.room-panel) - [11.3 Personalizacja wizualna paneli informacyjnych](#page-panels.customization) **12. Migracja z innego programu** - [12.1 Migracja z innego oprogramowania — przegląd](#page-migration.overview) - [12.2 Migracja z Hyperplanning (Index Education)](#page-migration.from-hyperplanning) - [12.3 Migracja z EDT / PRONOTE (Index Education)](#page-migration.from-edt) - [12.4 Migracja z aSc Timetables](#page-migration.from-asc) - [12.5 Migracja z ADE / ADE Campus](#page-migration.from-ade) - [12.6 Migracja z własnego arkusza Excela](#page-migration.from-spreadsheet) **13. Specyfika szkolnictwa wyższego** - [13.1 Specyfika szkolnictwa wyższego — przegląd](#page-higher-ed.overview) - [13.2 Roczniki, programy, ścieżki i okresy kształcenia](#page-higher-ed.sessions-and-tracks) - [13.3 Nauczyciele zewnętrzni (na umowę zlecenie, visiting professor)](#page-higher-ed.external-faculty) - [13.4 Podzielone sale i egzaminy w wielu salach](#page-higher-ed.multi-room-exams) - [13.5 Współnauczanie i rotacja nauczycieli](#page-higher-ed.co-teaching) - [13.6 Tryb kalendarzowy dla programów bez powtarzalności](#page-higher-ed.calendar-mode) - [13.7 Linki do wideokonferencji dla kursów](#page-higher-ed.videoconference-links) - [13.8 Praca w wielu lokalizacjach w szkolnictwie wyższym](#page-higher-ed.multi-site) **14. Specyfika szkoły podstawowej / średniej (oświata)** - [14.1 Specyfika szkoły podstawowej / średniej — przegląd](#page-k12.overview) - [14.2 Półklasy i przedmioty do wyboru w podziale klasy](#page-k12.half-classes-and-options) - [14.3 Świetlica i nauka pod nadzorem (oświata)](#page-k12.study-halls) - [14.4 Klasy łączone](#page-k12.multi-grade-classes) **15. Scenariusze zastosowań** - [15.1 Scenariusze zastosowań — przegląd](#page-use-cases.overview) - [15.2 Scenariusze — Tworzenie i generowanie planu lekcji](#page-use-cases.creation-and-generation) - [15.3 Scenariusze — Codzienne umieszczanie i modyfikowanie lekcji](#page-use-cases.placement-and-modification) - [15.4 Scenariusze — Wiele grup, wiele sal, wielu nauczycieli](#page-use-cases.multi-entities) - [15.5 Scenariusze — Operacje masowe](#page-use-cases.mass-operations) - [15.6 Scenariusze — Egzaminy i wydarzenia](#page-use-cases.exams-and-events) - [15.7 Scenariusze — Nieobecności i zastępstwa](#page-use-cases.absences-and-substitutions) - [15.8 Scenariusze — Raporty i statystyki](#page-use-cases.reporting-and-stats) - [15.9 Scenariusze — Udostępnianie i rozpowszechnianie](#page-use-cases.diffusion-and-sharing) **16. FAQ — często zadawane pytania** - [16.1 FAQ — pytania ogólne](#page-faq.general) - [16.2 FAQ — Tworzenie planu lekcji](#page-faq.timetables) - [16.3 FAQ — Import danych](#page-faq.data-import) - [16.4 FAQ — Działanie algorytmu generowania](#page-faq.solver-behavior) - [16.5 FAQ — Wyświetlanie i interfejs](#page-faq.display-and-ux) - [16.6 FAQ — przypadki użycia w szkolnictwie wyższym](#page-faq.higher-ed-cases) - [16.7 FAQ — Przypadki szczególne i konfiguracje zaawansowane](#page-faq.edge-cases) - [16.8 FAQ — Bezpieczeństwo i hosting](#page-faq.security-and-hosting) - [16.9 FAQ — cennik i licencje](#page-faq.pricing-and-licenses) - **[Słowniczek](#chapter-glossary)** (55 terms) - **[Index](#chapter-index)** --- ## 1. Pierwsze kroki ### 1.1 Czym jest Omniscol? *Source: `help/pl/overview/what-is-omniscol.md` · id: overview.what-is-omniscol · Updated: 2026-06-13* Omniscol to **internetowe oprogramowanie do planowania z ograniczeniami**, przeznaczone dla placówek od szkoły podstawowej po szkolnictwo wyższe i kształcenie ustawiczne. Pozwala tworzyć plany lekcji tygodniowe, cykliczne albo kalendarzowe (z datami, bez powtarzalności), a następnie publikować je dla właściwych użytkowników. Produkt łączy ręczne wprowadzanie danych, diagnostykę konfliktów i generowanie automatyczne przez [algorytm generowania](#page-glossary.solver). Szczegóły merytoryczne opisano na stronach poświęconych poszczególnym zagadnieniom. #### Jak to działa w ogólnym zarysie Standardowy przebieg pracy z Omniscol: ``` 1. Wprowadzenie danych (użytkownicy, przedmioty, lokalizacje / sale, klasy) ↓ 2. Konfiguracja planu lekcji (liczba godzin, wyrównania grup, ograniczenia) ↓ 3. Generowanie lub umieszczanie (algorytm generowania albo ręczne umieszczanie) ↓ 4. Sprawdzenie i rozstrzyganie (konflikty, korekty, blokady) ↓ 5. Publikacja (jego lekcje zasilają wszystkie pozostałe moduły) ↓ 6. Codzienna praca z planem (zmiany bieżące, nieobecności, zastępstwa) ``` Każdy etap ma własny moduł. Etapy od 1 do 5 są jednorazowe (przed początkiem roku szkolnego, przed semestrem albo przy przebudowie). Etap 6 odpowiada codziennej pracy. #### Typy planów lekcji Omniscol obsługuje **trzy typy** planu lekcji. Dostępność każdego typu zależy od wykupionego planu abonamentowego. - **Tygodniowy** — lekcje powtarzające się w typowym tygodniu, z naprzemiennością A/B albo bez niej. To standardowy przypadek szkolnictwa podstawowego i średniego. Dostępny we wszystkich planach. - **Cykliczny** — lekcje powtarzające się w cyklu N numerowanych dni (zwykle 6 albo 8), innym niż tydzień 5- lub 7-dniowy. Powszechny w systemach północnoamerykańskich. Dostępny na kontach Premium. - **Kalendarzowy** — lekcje datowane pojedynczo, bez powtarzalności. Tryb preferowany w szkolnictwie wyższym i w kształceniu ustawicznym. Dostępny na kontach Premium. Na koncie Premium można korzystać ze wszystkich trzech typów. Dzięki [Kilka planów lekcji opublikowanych równolegle](#page-timetables.multiple-active-timetables), funkcji zawartej w planie Premium, można je nawet łączyć w tych samych okresach. Pomoc w wyborze zawiera [Wybór właściwego typu planu lekcji](#page-overview.timetable-modes). #### Filozofia: najpierw dane Omniscol wychodzi od jednego spostrzeżenia: plan lekcji to nie tabela do wypełnienia, lecz **problem optymalizacyjny z ograniczeniami**. Program jest zaprojektowany wokół pięciu zasad: 1. **Dane przed obliczeniami**: lokalizacje, sale, nauczyciele, klasy, grupy, przedmioty i liczba godzin muszą być wiarygodne przed uruchomieniem generowania. 2. **Rozdzielenie struktury i codziennej pracy**: budowanie planu lekcji i obsługa zmian danego dnia to dwie różne czynności, z różnymi ekranami. 3. **Jawne ograniczenia**: sytuacje niemożliwe są sygnalizowane jako [konflikty](#page-glossary.conflict) albo lekcje nieumieszczone; rozstrzygnięcie merytoryczne pozostaje przy użytkowniku. 4. **Wersje robocze i wersjonowanie**: nieopublikowany plan lekcji można testować, duplikować albo odbudować bez zmiany tego, co widzą użytkownicy. 5. **Kontrola nad danymi**: eksport JSON albo przez wewnętrzną tabelę w stylu arkusza kalkulacyjnego i odwracalność. Strona odniesienia: [Ogólna filozofia Omniscol](#page-overview.philosophy). #### Dane wejściowe i wyjściowe Po stronie **wejścia** Omniscol przyjmuje: - wprowadzanie pojedynczych danych w interfejsie; - import masowy przez kopiowanie i wklejanie z arkusza kalkulacyjnego, ze sprawdzeniem przed zastosowaniem; - migracje prowadzone z asystą, zależnie od eksportów dostępnych po stronie źródłowej; - konektory do ERP i systemów informatycznych przez [synchronizacja z systemami zewnętrznymi](#page-integrations.extsync) (Aurion, Auriga, Edusign; dodanie nowego systemu w ramach projektu); - [API Omniscol](#page-integrations.api-tokens) zależnie od uprawnień i opcji konta; - [OIDC / SSO](#page-integrations.oauth2) zależnie od umowy i ustawień. Po stronie **wyjścia**: - responsywny podgląd internetowy; - subskrypcje [iCal](#page-integrations.ical); - publiczne linki podpisane i wygasające; - panele informacyjne; - eksporty Excel / CSV / PDF / JSON, zależnie od ekranu; - udokumentowane API REST, o zakresie ograniczonym przez dozwolone punkty dostępu i opcje; - [MCP](#page-integrations.mcp) dla zgodnych agentów AI na kontach Premium. #### Układ modułowy Program dzieli się na dwie rodziny modułów. ##### Moduły codziennej pracy - **Strona główna** — skrótowy widok dnia i lista kontrolna na start. - **Plany lekcji** — podgląd i pojedyncze zmiany. - **Panel zarządczy** — statystyki obłożenia i godzin pracy. - **Zarządzanie nieobecnościami i zastępstwami** — zgłoszenia niedostępności i przypisywanie zastępców. ##### Moduły konfiguracyjne - **Zarządzanie planami lekcji** — tworzenie, konfiguracja, generowanie i publikacja planów lekcji. - **Administracja** — użytkownicy, przedmioty, lata szkolne, ustawienia, import / eksport i integracje. - **Obsada personelu** — planowanie pracy personelu według zadań, gdy moduł jest włączony; może być też sprzedawany jako oferta samodzielna. #### Role i dostęp Dostęp po stronie szkoły porządkują cztery profile. **Administratorzy** (osoby odpowiedzialne za planowanie, dyrekcja, dyrektor IT) konfigurują konto i budują plany lekcji. **Nauczyciele** przeglądają swój plan lekcji, wpisują swoją dostępność i zgłaszają nieobecności. **Uczniowie** przeglądają swój osobisty plan lekcji. **Personel** (zespół opieki nad uczniami, opiekunowie) pojawia się tam, gdzie używany jest moduł Obsada personelu. Dodatkowo podpisane linki udostępniania dają dostęp bez konta do precyzyjnie określonego zakresu. Role można łączyć: nauczyciel, który uczestniczy w planowaniu, może być jednocześnie Nauczycielem i Administratorem. Szczegóły ról przedstawia [Architektura i role](#page-overview.architecture-and-roles). Opcja [Role niestandardowe](#page-admin.customroles) pozwala ograniczyć uprawnienia konta administratora moduł po module i operacja po operacji. #### Plany abonamentowe i opcje Omniscol oferuje kilka planów abonamentowych: **Lite** (osoby pracujące na własny rachunek, samodzielni szkoleniowcy, bardzo małe placówki), **Staffing** (wyłącznie moduł Obsada personelu), **Core** (typowa placówka szkolna), **Core Plus** (Core + Obsada personelu) oraz **Premium** (szkolnictwo wyższe, kształcenie ustawiczne, złożone organizacje pracujące w wielu lokalizacjach). Część funkcji jest w planie Premium zawarta domyślnie — cykliczny i kalendarzowy typ planu lekcji, dostępność kalendarzowa, kilka planów lekcji opublikowanych równolegle — a inne włącza się zależnie od umowy (punkty kopii zapasowych, dziennik aktywności, współpraca w czasie rzeczywistym, konta powiązane, role niestandardowe…). Szczegóły planów, opcji i sposobu ich włączania zebrano w [Plany i opcje Omniscol](#page-overview.plans-and-options). #### Co wyróżnia Omniscol - **Generowanie automatyczne**: algorytm generowania umieszcza lekcje z poszanowaniem twardych ograniczeń i optymalizuje ograniczenia miękkie. - **Kontrola ręczna**: użytkownik zawsze może sprawdzić, przenieść, zablokować albo rozstrzygnąć. - **Rozpowszechnianie wieloma kanałami**: internet, iCal, eksporty, publiczne linki i panele informacyjne. - **Sprawozdawczość**: panele zarządcze i eksporty pozwalające śledzić godziny, obłożenie sal i wskaźniki przydatne przy audytach. #### Architektura i hosting Kwestie architektury, bezpieczeństwa i hostingu opisują [Architektura i role](#page-overview.architecture-and-roles) oraz [FAQ — Bezpieczeństwo i hosting](#page-faq.security-and-hosting). #### Co dalej - Interaktywny przewodnik: [Oprowadzenie w pięć minut](#page-overview.quick-tour). - Konfiguracja konta: [Pierwsze logowanie](#page-getting-started.first-login), a następnie [Konfigurowanie konta szkoły](#page-getting-started.setup-school). - Zrozumienie pojęć merytorycznych: [Klasa, grupa, podgrupa](#page-core-concepts.classes-and-groups). - Utworzenie pierwszego planu lekcji: [Moduł Zarządzanie planami lekcji](#page-timetables.overview). - Najczęściej zadawane pytania: [FAQ — pytania ogólne](#page-faq.general). #### Zobacz także - [Ogólna filozofia Omniscol](#page-overview.philosophy) - [Architektura i role](#page-overview.architecture-and-roles) - [Wybór właściwego typu planu lekcji: tygodniowy, cykliczny, kalendarzowy](#page-overview.timetable-modes) - [Plany i opcje Omniscol](#page-overview.plans-and-options) - [Oprowadzenie w pięć minut](#page-overview.quick-tour) ### 1.2 Ogólna filozofia Omniscol *Source: `help/pl/overview/philosophy.md` · id: overview.philosophy · Updated: 2026-09-29* Jeszcze przed funkcjami kilka zasad porządkuje pracę z Omniscol i wyjaśnia, dlaczego program podejmuje pewne decyzje, a nie inne. #### Kontekst praktyczny Plan lekcji to nie zwykła tabela do wypełnienia. To **problem optymalizacyjny z ograniczeniami**: - ograniczenia liczne i często niejawne; - ograniczenia czasami sprzeczne; - wysoka stawka operacyjna: początek roku szkolnego, semestr albo okres musi działać. Omniscol jest zaprojektowany jako **asystent planowania z ograniczeniami**: przyspiesza pracę, wskazuje sytuacje niemożliwe i pozostawia rozstrzygnięcia merytoryczne użytkownikowi. #### Omniscol a inne oprogramowanie placówki | Obszar | Co obejmuje | Z Omniscol | | --- | --- | --- | | Dziennik elektroniczny, SIS / SMS, ERP placówki | Rekrutacja, dokumentacja uczniów, oceny i świadectwa, sprawy wychowawcze, dziennik lekcyjny, dzienniczek ucznia, komunikacja z rodzinami, fakturowanie i finanse, sprawozdania dla podmiotów finansujących (OPCO we Francji) | Oprogramowanie specjalistyczne, do którego Omniscol się podłącza. U partnerów Omniscol zaplanowane lekcje automatycznie trafiają do ich oprogramowania. | | Platforma edukacyjna / LMS | Dydaktyka, treści kursów, komunikacja | Podłączane przez API, [OneRoster](#page-integrations.oneroster), iCal albo logowanie jednokrotne. | | Rejestracja obecności | Obecność, podpisy | Przez konektor [Edusign](#page-integrations.edusign) Omniscol wysyła swoje lekcje i odbiera stwierdzoną obecność. | | Omniscol | Organizacja czasu: kto, co, gdzie, kiedy | Jego podstawowa specjalność, dla wszystkich typów placówek, na całym świecie. | Omniscol zajmuje się planem lekcji, a w pozostałych obszarach współpracuje z wyspecjalizowanymi producentami oprogramowania, często partnerami lokalnymi. Z ich oprogramowaniem łączą go importy i eksporty, iCal, udokumentowane API REST, OIDC / SSO zależnie od umowy albo [synchronizacja z systemami zewnętrznymi](#page-integrations.extsync). Placówka zachowuje dane dostępne i chronione dzięki pełnemu eksportowi, odwoływalnym tokenom dostępu i uprawnieniom przypisanym według roli. Zob. też [integrations.partners](#page-integrations.partners). #### Pięć zasad fundamentalnych ##### 1. Dane przed obliczeniami Nie da się wygenerować wiarygodnego planu lekcji bez poprawnych danych: lokalizacji, sal, nauczycieli, klas, grup, przedmiotów, liczby godzin, dostępności i ograniczeń. ##### 2. Rozdzielenie struktury i codziennej pracy Budowanie planu lekcji i codzienna praca z planem opublikowanym to dwie różne czynności. Pierwsza odbywa się przede wszystkim w module [Zarządzanie planami lekcji](#page-timetables.overview), druga w modułach [Plany lekcji](#page-schedules.consult-and-filter), [Zarządzanie nieobecnościami](#page-absences.overview) i [Panel zarządczy](#page-dashboard.overview). ##### 3. Twarde ograniczenia i ograniczenia optymalizacyjne Niektóre ograniczenia unieważniają plan lekcji i są traktowane jako bezwzględne: nauczyciel tylko w jednym miejscu w tym samym czasie, klasa bez kolizji z wyjątkiem grup objętych podziałem klasy, sala ogólna przypisana do jednej lekcji, niedostępności, pojemności, zasoby materialne i czasy przejazdu między lokalizacjami. Inne ograniczenia służą do ulepszania rozwiązania: dostępność niepożądana, luki, równowaga dni, kolejność pedagogiczna przedmiotów, maksima lub minima godzin, liczba dni obecności. Są oceniane jako punkty karne, których liczbę algorytm generowania stara się zmniejszyć. ##### 4. Wersje robocze i wersjonowanie Nieopublikowany plan lekcji nie wpływa na to, co widzą użytkownicy. Można go duplikować, testować, porównywać, zablokować w nim wybrane lekcje, uruchomić generowanie ponownie i opublikować tylko wtedy, gdy wynik jest zadowalający. Punkty kopii zapasowych, jeśli są włączone, dodają zabezpieczenie pozwalające się wycofać albo odtworzyć część danych. ##### 5. Użytkownik pozostaje gospodarzem danych Omniscol umożliwia pełny eksport JSON, eksporty funkcjonalne dla poszczególnych ekranów i odwracalność. Automatyzacje nie zastępują decyzji człowieka. #### Konflikty są informacją, nie błędem Przy ręcznym wprowadzaniu Omniscol sygnalizuje konflikty, ale rozstrzygnięcie pozostawia użytkownikowi. Jest to przydatne w rzeczywistych przypadkach szczególnych: sala z wydłużonym czasem pracy, świadome przekroczenie teoretycznej pojemności sali, przypisanie sali z inną specjalizacją z powodu lokalnych okoliczności. Przy generowaniu automatycznym algorytm generowania nie tworzy celowo poważnej kolizji. Jeśli nie zostanie znalezione żadne kompletne rozwiązanie, zachowuje najlepszy obliczony plan lekcji, a lekcje niemożliwe do umieszczenia pozostawia na liście nieumieszczonych karteczek. [Zablokowanie lekcji](#page-timetables.lesson-lock) pozwala zakotwiczyć zamierzone umieszczenie: kolejne generowanie dostosowuje wokół tej blokady pozostałe lekcje. #### Wiele planów lekcji jako zasada modelowania Omniscol od podstaw obsługuje **wiele planów lekcji**. W jednej placówce może współistnieć kilka planów: - odrębne lata szkolne; - semestry albo okresy; - logiczny podział według kampusu, wydziału albo etapu kształcenia; - połączenie różnych typów, na przykład tygodniowego powtarzalnego i kalendarzowego z datami. Na koncie Premium kilka planów lekcji może być [opublikowanych równolegle](#page-timetables.multiple-active-timetables) — osobne włączenie jest możliwe także na niektórych kontach Core. Szkoła może mieć program przygotowawczy w dwóch tygodniowych planach lekcji, po jednym na semestr, studia magisterskie w kalendarzu niepowtarzalnym i jednocześnie 18-miesięczny program ExecMBA, który zaczyna się i kończy z przesunięciem względem pozostałych planów i roku szkolnego. W Omniscol każdy plan lekcji można utworzyć osobno, a przy planowaniu korzystać z obsługi konfliktów krzyżowych, a potem opublikować wszystko równolegle, jednocześnie, tak aby wynikiem końcowym był widok scalony, a samo scalenie było niezauważalne dla użytkowników końcowych. #### Optymalizacyjna sztuczna inteligencja i agenci zewnętrzni [Algorytm generowania](#page-glossary.solver) to optymalizacyjna sztuczna inteligencja typu **neurosymboliczna metaheurystyka Monte Carlo**. Silnik przeszukuje możliwe umieszczenia w granicach ograniczeń, szuka rozwiązania poprawnego, a potem optymalizuje punkty karne, z imponującą szybkością (na przykład mniej niż minuta dla szkoły podstawowej z 16 klasami). Jeśli rozwiązanie poprawne nie zostanie znalezione, mechanizm relaksacji inteligentnie poświęca część lekcji i tak czy inaczej przechodzi do optymalizacji wyniku. Omniscol jest firmą AI-first, wyrosłą z długiej fazy badawczo-rozwojowej w nurcie „deeptech”. Omniscol ma również inne algorytmy typu symbolicznej sztucznej inteligencji — do sprawdzania konfliktów, wykrywania niespójności ustawień, formułowania propozycji ulepszeń albo ostrzeżeń konfiguracyjnych, wstępnego filtrowania najlepszego rozwiązania z listy propozycji czy automatycznego przydzielania podzbioru sal do podzbioru lekcji, a wszystko to w przeglądarce, natychmiast. Omniscol udostępnia też narzędzia API zgodnym agentom przez [MCP](#page-integrations.mcp), gdy opcja i uprawnienia są włączone. Pozwala to pracować z Omniscol w języku naturalnym i rozszerzyć możliwości interfejsu graficznego, sięgając wprost po właściwe dane na serwerze Omniscol. Agenci działają w zakresie przekazanego tokenu; najbezpieczniejsze są zastosowania polegające na odczycie danych, a każde działanie zapisujące musi podlegać sprawdzeniu przez użytkownika. Obecnie najlepszym agentem AI do pracy z Omniscol jest Claude w wersji Desktop. #### Zobacz także - [Czym jest Omniscol?](#page-overview.what-is-omniscol) - [Architektura i role](#page-overview.architecture-and-roles) - [Wybór właściwego typu planu lekcji](#page-overview.timetable-modes) - [Konflikt](#page-glossary.conflict) - [Algorytm generowania](#page-glossary.solver) - [Kilka planów lekcji opublikowanych równolegle](#page-timetables.multiple-active-timetables) ### 1.3 Oprowadzenie w pięć minut *Source: `help/pl/overview/quick-tour.md` · id: overview.quick-tour · Updated: 2026-06-25* To oprowadzenie w kilka minut przedstawia najważniejsze moduły Omniscol. Dla osób, które poznają program po raz pierwszy, jest to właściwe miejsce na start. #### Menu modułów po lewej stronie Po lewej stronie każdego ekranu pionowe menu wymienia moduły dostępne dla danej roli. Od góry do dołu, w kolejności codziennego użycia: 1. **Strona główna** (ikona [house]) — przewodnik startowy, dopóki żaden plan lekcji nie został opublikowany, a później spersonalizowany ekran startowy. 2. **Plany lekcji** — główny widok w codziennej pracy. 3. **Panel zarządczy** — statystyki. 4. **Zarządzanie nieobecnościami** — obsługa nieobecności i zastępstw. 5. **Zarządzanie planami lekcji** — tworzenie planów i ich struktura. 6. **Administracja** — użytkownicy, przedmioty, ustawienia. Zależnie od umowy mogą pojawić się inne moduły, na przykład **Obsada personelu** (siatki zadań i dyżurów, dla zespołów wychowawczych). #### Oś czasu U góry większości ekranów **oś czasu** (w tygodniach albo w miesiącach) przedstawia rok szkolny. Pozwala nawigować w czasie i na pierwszy rzut oka zobaczyć okresy, w których plany lekcji są opublikowane (kolorowe tygodnie), oraz dni wolne (wyszarzone tygodnie). Ta oś czasu ma wiele opcji i zastosowań. Może zmienić się w widok miesięczny albo roczny (a nawet w widok od daty do daty, podany wprost). W module Zarządzanie planami lekcji koloruje się zgodnie z opublikowanymi planami lekcji — luki to białe tygodnie. Przy wyświetlaniu planu lekcji typu kalendarz jasnoniebieskie oznaczenia u góry wskazują, gdzie w harmonogramach widocznych na ekranie znajdują się lekcje. Strzałki `◀` i `▶︎` na końcach przełączają między latami szkolnymi. #### Proszę podążać za przewodnikiem! Witamy w Omniscol. Ten przegląd przedstawia moduły programu i pokazuje, jak się ze sobą łączą. 1. **Przycisk pomocy** w prawym górnym rogu otwiera tę pomoc w dowolnej chwili, na każdym ekranie. Rozpoznaje aktualnie otwarty ekran i proponuje najtrafniejszą stronę. Obok znajduje się przycisk opisywania ekranu, który wyświetla opis elementów widocznych na ekranie. 2. **Strona główna** (ikona [house]): dopóki pierwszy plan lekcji nie został opublikowany, ten moduł prowadzi krok po kroku. Proszę przejść [kolejne kroki](#page-getting-started.setup-school), odhaczać pozycje i wracać w dowolnym momencie. 3. **Plany lekcji**: codzienny podgląd. Wszystkie filtry (klasa, nauczyciel, sala, grupa, przedmiot, uczeń). Kilka trybów wyświetlania: standardowa siatka, lista, tabela w stylu arkusza kalkulacyjnego, harmonogram, harmonogram godzinowy, dzień, miesiąc i widok obok siebie. Harmonogram pojawia się dopiero po opublikowaniu pierwszego planu lekcji z umieszczonymi lekcjami. 4. **Panel zarządczy**: statystyki faktycznego (operacyjnego) planu lekcji. Godziny w podziale na nauczyciela, klasę, salę, przedmiot. Filtrowanie według okresu. Eksport do CSV i Excela. API z jeszcze większą szczegółowością. 5. **Zarządzanie nieobecnościami**: wszystko w jednym miejscu. Zgłoszenia od nauczycieli albo uczniów (z zatwierdzeniem przez administrację) lub bezpośrednio przez administrację. Przypisywanie zastępców nieobecnym nauczycielom. Nieobecność klasy (praktyki, wycieczka szkolna...). 6. **Zarządzanie planami lekcji**: tworzenie samych planów. Lokalizacje, klasy, grupy, nauczyciele, przedmioty, kursy. Generowanie przez algorytm albo ręczne umieszczanie. Publikacja, aby teoretyczny plan lekcji stał się operacyjny. 7. **Obsada personelu** (jeśli moduł jest włączony): planowanie pracy opiekunów. Definiowanie zadań i ich specyfiki, przydział personelu. Grafik dyżurów do rozdania. 8. **Administracja**: użytkownicy, przedmioty, lata szkolne, ustawienia, import/eksport. Przede wszystkim na początku pracy z kontem. #### Co dalej - Konfigurowanie konta od zera: [Pierwsze logowanie](#page-getting-started.first-login). - Zrozumienie podstawowych pojęć (klasa, grupa, podział klasy, wyrównanie grup itd.): [Podstawowe pojęcia](#page-core-concepts.classes-and-groups). - Utworzenie pierwszego planu lekcji: [Przegląd modułu Zarządzanie planami lekcji](#page-timetables.overview). - Sprawdzenie, jak Omniscol wpisuje się w systemy informatyczne szkoły: [Przegląd integracji](#page-integrations.overview). #### Zobacz także - [Czym jest Omniscol?](#page-overview.what-is-omniscol) - [Architektura i role](#page-overview.architecture-and-roles) ### 1.4 Architektura, moduły i role *Source: `help/pl/overview/architecture-and-roles.md` · id: overview.architecture-and-roles · Updated: 2026-08-07* Ta strona podsumowuje architekturę aplikacyjną Omniscol oraz role widoczne po stronie szkoły. Dokładne zobowiązania umowne (dostępność, kopie zapasowe, okres przechowywania, nadzór) wynikają z zatwierdzonych dokumentów prawnych lub handlowych. #### Hosting i niezawodność Omniscol jest hostowany w Unii Europejskiej, a dokładniej na AWS i Scaleway w Paryżu. Produkt korzysta z mechanizmów tworzenia kopii zapasowych, nadzoru i izolacji logicznej między kontami placówek; szczegóły obowiązujące dla danego konta zależą od umowy i od środowiska. Szczegóły po stronie użytkownika opisuje [FAQ — Bezpieczeństwo i hosting](#page-faq.security-and-hosting). #### Architektura oprogramowania - **Aplikacja internetowa**: aplikacja ładuje się raz, a następnie ekrany są renderowane dynamicznie, z wymianą danych w REST/JSON (Single Page Application). - **CouchDB** jako główna baza danych. - **Redis** jako baza danych do synchronizacji po stronie aplikacji i do dzienników. - **TypeScript** w interfejsie (webapp). - **Backend Node.js / Express** sterujący wewnętrznymi silnikami (api, webapp, portal, panel, ical, mcp, oauth2 itd.). - **C++** w algorytmie generowania, uruchamianym na dedykowanych maszynach wirtualnych włączanych na żądanie. #### Bezpieczeństwo - **HTTPS** w komunikacji wystawionej na zewnątrz. - **Cloudflare** jako jedyna brama wejściowa (ochrona przed atakami DDoS). - **Hasła wstępnie haszowane po stronie klienta algorytmem scrypt**, a następnie ponownie haszowane i solone po stronie serwera. Nie są przechowywane ani przesyłane w postaci jawnej. - **Uwierzytelnianie JWT** z kluczami podpisu i krótkim czasem życia; rotacja lub odwołanie klucza może unieważnić podpisane tokeny. - **[Linki udostępniania](#page-glossary.share-link)** podpisane, z datą wygaśnięcia, powiązane z kontem, które je wygenerowało, i unieważniane przez zmianę hasła lub dezaktywację tego konta. - **[Tokeny API](#page-glossary.api-token)** z kluczem głównym i tokenami pochodnymi, zakresami punktów dostępu i terminami wygaśnięcia. - **OIDC / SSO** dostępne zależnie od umowy i ustawień konta. - **Eksport i wewnętrzne kopie zapasowe w formacie JSON** zapewniające odwracalność danych. #### Role użytkowników Omniscol wyróżnia kilka ról po stronie szkoły: | Rola | Typowe zastosowanie | | --- | --- | | Administrator | Osoby odpowiedzialne za planowanie, dyrekcja, dyrektor IT | | Nauczyciel | Nauczyciele, nauczyciele zewnętrzni, instruktorzy | | Uczeń | Uczniowie, studenci, słuchacze | | Personel | Zespół wychowawczy, kierownicy ds. wychowania, pedagodzy szkolni, opiekunowie, jeśli moduł Obsada personelu jest włączony | | Link udostępniania | Dostęp przez podpisany adres URL do precyzyjnie określonego zakresu | Powiązanie tych etykiet z technicznymi identyfikatorami ról opisuje szczegółowo [Użytkownicy i role](#page-admin.users-and-roles). Jeden użytkownik może **łączyć kilka ról**. Na przykład nauczyciel, który uczestniczy w planowaniu, może być jednocześnie Nauczycielem i Administratorem. Rola Link udostępniania nie odpowiada zwykłemu kontu użytkownika. To podpisane linki: linki internetowe do planu lekcji działają tylko do odczytu, natomiast niektóre linki ukierunkowane mogą zezwalać na ograniczone działanie, takie jak wpisanie dostępności nauczyciela do daty wygaśnięcia. Istnieją ponadto role wewnętrzne, zarezerwowane dla zespołów Omniscol: administrowanie platformą, tłumaczenia, działania handlowe i partnerzy dystrybucyjni. Część tych kont ma prawo logować się do kont szkół w celach serwisowych. Występują wtedy jako superadministratorzy szkoły, z szerszymi możliwościami niż administrator: import surowych danych do bazy danych, włączanie lub wyłączanie opcji płatnych, logowanie w imieniu użytkownika. Takie dostępy wywołują widoczne alerty o logowaniu, a ich tokeny wygasają bardzo szybko. Z wielką mocą wiąże się wielka odpowiedzialność. > _Option: Role niestandardowe_ #### Role niestandardowe Opcja [Role niestandardowe](#page-admin.customroles) pozwala ograniczyć uprawnienia konta administratora moduł po module i operacja po operacji. Służy do przekazania części administrowania bez nadawania wszystkich uprawnień globalnych. Ta sama opcja udostępnia [obszary](#page-admin.planning-domains): tam, gdzie rola wyznacza granice operacji, obszar wyznacza granice danych — które klasy, które lokalizacje, które plany lekcji może zmieniać planista. #### Moduły Moduły widoczne na typowym koncie: - **Strona główna** (`home`) — strona wejściowa i podsumowanie dnia. - **Plany lekcji** (`schedules`) — podgląd i pojedyncze zmiany. - **Panel zarządczy** (`dashboard`) — statystyki obłożenia i godzin pracy. - **Zarządzanie nieobecnościami** (`absences`) — zgłoszenia i zastępstwa. - **Zarządzanie planami lekcji** (`timetables`) — budowanie, generowanie i publikacja planów lekcji. - **Administracja** (`admin`) — użytkownicy, ustawienia, import / eksport i integracje. Zależnie od umowy mogą pojawić się inne moduły, w szczególności **Obsada personelu** do planowania zadań wychowawczych i dyżurów. #### Wiele szkół Każda szkoła jest logicznie odizolowana po stronie serwera i korzysta z własnej domeny. Dane jednej szkoły nie są widoczne dla innych szkół z poziomu aplikacji. Na życzenie można natomiast włączyć kanał komunikacji między odrębnymi kontami, aby współdzielić konflikty obłożenia sal i nauczycieli. Jest to bardzo przydatne przy wspólnych budynkach albo w grupie szkół, która współdzieli zasoby. #### Zobacz także - [Omówienie ogólne](#page-overview.what-is-omniscol) - [Przewodnik](#page-overview.quick-tour) - [Użytkownicy i role](#page-admin.users-and-roles) - [Role niestandardowe](#page-admin.customroles) - [Obszary](#page-admin.planning-domains) - [Plany i opcje Omniscol](#page-overview.plans-and-options) - [Bezpieczeństwo i hosting](#page-faq.security-and-hosting) ### 1.5 Plany i opcje Omniscol *Source: `help/pl/overview/plans-and-options.md` · id: overview.plans-and-options · Updated: 2026-08-07* Omniscol sprzedawany jest według prostego modelu: **kilka planów abonamentowych**, **funkcje Premium zawarte domyślnie**, część **włączeń na podstawie umowy** oraz samodzielna oferta **Obsada personelu**. Cena i dokładny zakres zależą od umowy zawartej z placówką. #### Plany abonamentowe | Plan | Dla kogo? | Co zawiera | | --- | --- | --- | | **Lite** | Bardzo małe placówki, osoby pracujące na własny rachunek, samodzielni szkoleniowcy, testy | Generowanie planu lekcji i drukowanie. **Bez publikacji, bez lat szkolnych, bez wielu lokalizacji, bez zarządzania uczniami**, ograniczone zasoby. Widoczne moduły: Zarządzanie planami lekcji + Administracja w wersji minimalnej. | | **Staffing** | Placówki, które potrzebują wyłącznie obsady personelu | Wyłącznie moduł Obsada personelu — do nadzoru, dyżurów i opieki nad uczniami | | **Core** | Typowa placówka (szkoła podstawowa, liceum, technikum), jeden zespół planujący, tygodniowy plan lekcji | Lite + publikacja, lata szkolne, wiele lokalizacji, zarządzanie uczniami, codzienne planowanie, nieobecności, panel zarządczy, panele informacyjne, iCal, ograniczone API tylko do odczytu | | **Core Plus** | Placówki, które potrzebują planu Core oraz modułu Obsada personelu | Core + Obsada personelu | | **Premium** | Szkolnictwo wyższe, kształcenie ustawiczne, bardziej złożone organizacje działające w wielu lokalizacjach lub prowadzące wiele ścieżek kształcenia | Plany lekcji tygodniowe, cykliczne lub kalendarzowe, dostępność z datami, kilka planów lekcji opublikowanych równolegle, więcej opcji konfiguracji (status lekcji, umieszczanie poza siatką, wydarzenia jednorazowe, tryb lekcji, linki do wideokonferencji...), pełne API z tokenami, MCP, OIDC / SSO, synchronizacja z systemami zewnętrznymi, opcje zaawansowane zależnie od umowy (współpraca, punkty kopii zapasowych, role niestandardowe). | Nie wszystkie funkcje włączają się w ten sam sposób: - część funkcji jest **zawarta domyślnie w planie Premium** (tryb kalendarzowy, dostępność kalendarzowa, kilka planów lekcji opublikowanych równolegle); - inne są **włączane zależnie od umowy**, najczęściej na kontach Premium; - nieliczne przypadki pozostają **wyjątkowo możliwe do włączenia** na koncie Core, gdy istnieje konkretna potrzeba; - moduł **Obsada personelu** podlega ponadto własnej logice, ponieważ może być sprzedawany samodzielnie. #### Samodzielna oferta Obsada personelu Moduł Obsada personelu sprzedawany jest również **bez pozostałej części Omniscol** dla placówek, które potrzebują wyłącznie zarządzania nadzorem i opieką nad uczniami. Konto udostępnia wtedy tylko moduł Obsada personelu, nieobecności personelu, który można przydzielać, oraz niezbędne ekrany użytkowników. Bez planów lekcji, bez panelu zarządczego dla części dydaktycznej, bez paneli informacyjnych. Zob. [Przegląd modułu Obsada personelu](#page-staffing.overview). #### Włączenia na podstawie umowy | Funkcja | Opis | Włączenie | | --- | --- | --- | | Role niestandardowe | Role niestandardowe z macierzą szczegółowych uprawnień. | Zależnie od umowy konta | | Obszary planowania | Zakres danych i powiązane z nim uprawnienia przypisane administratorowi, aby przekazać mu kampus, kierunek kształcenia albo placówkę. | Konta Premium, zależnie od umowy konta | | Punkty kopii zapasowych | Punkty kopii zapasowych, digest, przywracanie i rotacja według limitu umownego włączonego przez Omniscol. | Zależnie od umowy konta | | Współpraca | Współpraca między administratorami, obecność w czasie rzeczywistym zależnie od konfiguracji. | Zależnie od umowy konta | | Dziennik aktywności | Ekran wglądu w zapisy dziennika, z okresem przechowywania włączanym przez Omniscol zależnie od umowy. | Zależnie od umowy konta | | Konta powiązane | Różne powiązane konta Omniscol, aby współdzielić obłożenie sal, nauczycieli lub klas między placówkami, z których każda ma własną, odrębną subdomenę Omniscol. | Na życzenie, po ustaleniu zakresu | | Kilka planów lekcji opublikowanych równolegle na koncie Core | Przypadek wyjątkowy dla niektórych rzeczywiście odrębnych kont szkolnych (na przykład samodzielnego liceum albo zespołu szkół obejmującego szkołę podstawową i liceum). | Odrębne włączenie, z ustaleniem zakresu i dostosowanym fakturowaniem | | Bezpośrednie przypisywanie uczniów do klas i grup w planach lekcji | Zwykle szkoły planują, nie mając dokładnej listy uczniów ani ich przydziałów. Pracują więc na klasach i grupach z teoretyczną liczbą oczekiwanych uczniów, określając logikę organizacyjną; po ukończeniu planu lekcji uczniowie są (ewentualnie) przypisywani do klas i grup, już po fakcie. Istnieje jednak inny tryb pracy, częsty w ośrodkach szkoleniowych, w którym dokładna lista uczniów w każdej klasie i każdej grupie jest potrzebna z góry, już przy projektowaniu planu lekcji; logikę braku konfliktów między grupami (wzajemne wykluczanie) Omniscol wyprowadza wtedy automatycznie. Zmienia to model danych i sposób działania, dlatego włączenie tej opcji należy wyłącznie do zespołu Omniscol. | Na życzenie, po ocenie szczególnego sposobu planowania | | Obsada personelu | Moduł zarządzania nadzorem i opieką nad uczniami (egzaminy, dyżury). Sprzedawany również jako oferta samodzielna. | W ofercie samodzielnej, w planie Core Plus albo zależnie od umowy | | Moduły dodatkowe | Ewentualne moduły dodatkowe. | Zależnie od modułu i umowy | #### Omówienie najważniejszych funkcji ##### Tryb kalendarzowy Pozwala umieszczać lekcje **data po dacie**, a nie w typowym tygodniu. To funkcja **zawarta domyślnie w planie Premium**, niezbędna w szkolnictwie wyższym, kształceniu ustawicznym i ośrodkach szkoleniowych. Zob. [Tryb kalendarzowy](#page-glossary.calendar-mode). ##### Grupy grup Łączenie kilku grup — z tej samej klasy lub z różnych klas — w jedną jednostkę planowaną w całości. **Dostępne na wszystkich kontach, niezależnie od planu**, i we wszystkich typach planów lekcji (tygodniowym, cyklicznym, kalendarzowym); nie wymaga żadnego szczególnego włączenia. Zob. [Grupy grup](#page-core-concepts.groups-of-groups). ##### Kilka planów lekcji opublikowanych równolegle Publikowanie kilku planów lekcji jednocześnie na tych samych tygodniach, scalanych dynamicznie. Jest to zawarte domyślnie w planie Premium. Omniscol może też wyjątkowo włączyć tę funkcję na niektórych kontach Core albo na mieszanych kontach szkolnych, gdy uzasadniają to potrzeba i fakturowanie. Zob. [Kilka planów lekcji opublikowanych równolegle](#page-timetables.multiple-active-timetables). ##### Konta powiązane Powiązanie kilku kont Omniscol, aby współdzielić obłożenie wspólnych zasobów: nauczycieli, sal, budynków lub klas zależnie od przypadku. Włączenie następuje na życzenie, po stronie Omniscol, ponieważ trzeba ustalić powiązane konta i współdzielone zasoby. Zob. [Konta powiązane i współdzielone zasoby](#page-integrations.linked-accounts). ##### Role niestandardowe Precyzyjne ograniczanie uprawnień konta administratora — moduł po module, z wyborem operacji (przeglądanie / modyfikowanie / usuwanie) i odcięciem całego modułu jednym kliknięciem. Zob. [Role niestandardowe](#page-admin.customroles). ##### Obszary planowania Przypisanie administratorowi zakresu danych — kampusu, przedmiotów, planu lekcji, lokalizacji, sal, klas, grup — oraz uprawnień, z jakich w nim korzysta. Każdy planista pracuje na swojej części, nie dotykając części pozostałych, a odczyt pozostaje otwarty. Zob. [Obszary](#page-admin.planning-domains). ##### Punkty kopii zapasowych Zapisanie stanu konta w danym momencie i przywrócenie go później. Cenne przed ryzykowną operacją (gruntowna przebudowa, duży import, początek roku). Zob. [Punkty kopii zapasowych](#page-admin.snapshots). ##### Współpraca w czasie rzeczywistym Kilku administratorów może pracować na tym samym koncie ze wskaźnikami obecności, gdy opcja jest włączona. Zob. [Współpraca w czasie rzeczywistym](#page-core-concepts.collaboration). ##### MCP **MCP** pozwala podłączyć zgodnego agenta AI, takiego jak Claude (zalecany), z identyfikacją konta przez OAuth2. Zob. [MCP](#page-integrations.mcp). ##### Dziennik aktywności Gdy opcja jest włączona przez Omniscol, ekran Dziennik aktywności pozwala przeglądać i eksportować zapisy prowadzone przez Omniscol. Nie należy przedstawiać go jako pełnego audytu z różnicami przed/po ani z odtwarzaniem żądań. Zob. [Dziennik aktywności (logi)](#page-admin.logs). ##### Synchronizacja ERP Synchronizacja z systemami zewnętrznymi wymaga włączenia na podstawie umowy, zwykle na kontach Premium, gdy skonfigurowany jest konektor. Istnieją konektory Aurion, Auriga i Edusign; dodanie nowego systemu ERP realizowane jest w ramach projektu, z udokumentowanym API, środowiskiem testowym i ustaleniem mapowania. Zob. [Synchronizacja z systemami zewnętrznymi](#page-integrations.extsync). ##### Obsada personelu jako oferta samodzielna Moduł Obsada personelu jest dostępny osobno, również jako oferta samodzielna (bez pozostałej części Omniscol). Zob. [Przegląd modułu Obsada personelu](#page-staffing.overview). #### Jak sprawdzić, jaki plan i jakie opcje są włączone Widoczne w sekcji Ustawienia — w części na dole panelu, która pokazuje obowiązujący plan i wykupione opcje. Plan oraz opcje decydują o tym, które moduły są dostępne w menu po lewej stronie. #### Zobacz także - [Kilka planów lekcji opublikowanych równolegle](#page-timetables.multiple-active-timetables) - [Konta powiązane i współdzielone zasoby](#page-integrations.linked-accounts) - [Tryb kalendarzowy](#page-timetables.calendar-mode) - [Role niestandardowe](#page-admin.customroles) - [Obszary](#page-admin.planning-domains) - [Punkty kopii zapasowych](#page-admin.snapshots) - [Współpraca w czasie rzeczywistym](#page-core-concepts.collaboration) - [MCP — podłączenie zewnętrznego agenta AI](#page-integrations.mcp) ### 1.6 Wybór właściwego typu planu lekcji: tygodniowy, cykliczny, kalendarzowy *Source: `help/pl/overview/timetable-modes.md` · id: overview.timetable-modes · Plan: premium · Updated: 2026-06-13* > **Premium** > _Premium_ Na koncie Premium przy tworzeniu planu lekcji można wybrać jeden z trzech typów. Zasadnicze rozróżnienie przebiega między **powtarzalnością** (tygodniowy i cykliczny: wzorzec się powtarza) a **brakiem powtarzalności** (kalendarzowy: każda lekcja jest datowana pojedynczo). Ten wybór kształtuje wszystko, co następuje później; dlatego ważne jest, aby go zrozumieć przed utworzeniem planu lekcji. **Generowanie automatyczne** przez algorytm generowania jest dostępne we wszystkich trzech typach; zalety i ograniczenia właściwe każdemu z nich opisano poniżej. #### W jednym zdaniu | Typ | Powtarzalność | Kiedy go stosować | | --- | --- | --- | | **[Tygodniowy](#page-glossary.weekly-timetable)** | Powtarzalny (tydzień wzorcowy) | Lekcje powtarzające się w **tygodniu wzorcowym**. Szkolnictwo podstawowe i ponadpodstawowe. | | **[Cykliczny](#page-glossary.cyclic-timetable)** | Powtarzalny (cykl N dni) | Lekcje powtarzające się w **cyklu N dni** (innym niż tydzień 5- lub 7-dniowy). Systemy północnoamerykańskie, szkoły międzynarodowe. | | **[Kalendarzowy](#page-glossary.calendar-mode)** | Niepowtarzalny | Lekcje **datowane pojedynczo**, bez powtarzalności. Szkolnictwo wyższe, kształcenie ustawiczne. | #### Tygodniowy — przypadek standardowy To tryb domyślny. Odpowiada każdej szkole, w której lekcje układają się w **powtarzalny tydzień wzorcowy**, z naprzemiennością A/B albo bez niej. Zalety: - Prosta logika: wprowadza się tydzień wzorcowy, a następnie wybiera tygodnie, w których obowiązuje. - Dni wolne usuwane automatycznie. Ograniczenia: - Nie nadaje się do placówek, w których każdy tydzień jest inny (pojedyncze lekcje, naprzemiennie pracujący nauczyciele zewnętrzni). - Lekcje odbywające się tylko raz (konferencja, egzamin w ściśle określonym dniu) trzeba dodać jako pojedyncze zmiany albo w odrębnym planie lekcji. #### Cykliczny — dla cykli innych niż tygodniowe Tryb cykliczny odpowiada placówkom, które organizują lekcje w **cyklu N dni** (zwykle 6 lub 8), innym niż tydzień 5- lub 7-dniowy — co jest częste w systemach północnoamerykańskich i w niektórych szkołach międzynarodowych. Działa podobnie do tygodniowego, z cyklem N numerowanych dni (Dzień 1, Dzień 2…). Odwzorowanie cykl ↔ dni tygodnia powstaje dynamicznie na podstawie **publikacji planu lekcji**, czyli przy wyborze tygodni, w których obowiązuje cykl. #### Kalendarzowy — dla szkolnictwa wyższego i kształcenia ustawicznego Tryb kalendarzowy wyraźnie różni się od dwóch pozostałych: każda lekcja jest umieszczana na **konkretnej dacie**, bez powtarzalności. To tryb najczęściej stosowany w: - szkolnictwie wyższym (szkoły biznesu, uczelnie techniczne, uniwersytety), - kształceniu ustawicznym, - ośrodkach szkoleniowych, w których lekcje nie powtarzają się co tydzień. W porównaniu ze zwykłym terminarzem albo z systemem ERP / systemem informacyjnym placówki dostępne są wtedy rozwiązania typowe dla szkolnictwa wyższego (szczegóły opisuje [tryb kalendarzowy](#page-timetables.calendar-mode)): - **Bardzo rozbudowana pomoc przy wprowadzaniu danych** — konflikty w czasie rzeczywistym, filtry sal, skonsolidowana dostępność… - **Dostępność skonsolidowana w czasie rzeczywistym** — zmiany dostępności nauczycieli zewnętrznych są natychmiast odwzorowywane jako konflikty potencjalne lub rzeczywiste. - **Publikacja binarna** — plan lekcji jest opublikowany albo nie, bez wyboru zakresów. Obecne ograniczenie — **półpowtarzalność**: niektóre szkoły mają tygodnie zasadniczo do siebie podobne, ale przerywane nieregularnościami (lekcje, które kończą się przed pozostałymi, dni świąteczne, okazjonalni nauczyciele zewnętrzni…). Przyciski pozwalają **ręcznie zduplikować** lekcję według powtarzalnego wzorca, ale algorytm generowania jeszcze nie obsługuje tego przypadku; generowanie automatyczne pozostaje w pełni dostępne dla kalendarzy bez powtarzalnego wzorca u podstawy albo — odwrotnie — dla planów lekcji w całości powtarzalnych (tygodniowych). **Generowanie częściowe** — generowanie automatyczne można ograniczyć do części zakresu w panelu opcji. Dostępne są trzy filtry: - **Klasy**: wybór klas do wygenerowania. - **Przedmioty**: wybór przedmiotów do wygenerowania. - **Zakres dat**: właściwy dla trybu kalendarzowego. Pozwala obsługiwać jeden okres naraz (na przykład następny semestr). Jest to szczególnie przydatne w trybie kalendarzowym: plan lekcji można budować **kolejnymi iteracjami** — jeden semestr, potem następny; jeden kierunek, potem pozostałe; i tak dalej. #### Wybór trybu: szybki przewodnik ```mermaid flowchart TD Q1{{"Czy lekcje układają się
w powtarzalny wzorzec?"}} Q2{{"Czy tym wzorcem jest tydzień
(5 do 7 dni)?"}} H([Tygodniowy]) Cy([Cykliczny]) Ca([Kalendarzowy]) Q1 -->|Tak| Q2 Q1 -->|Nie| Ca Q2 -->|Tak| H Q2 -->|Nie| Cy ``` #### Przekształcanie planu lekcji na inny typ Aby przestawić istniejący plan lekcji z jednego typu na inny, można go **zduplikować z przekształceniem** za pomocą działania Duplikuj na liście planów lekcji, w module Zarządzanie planami lekcji. Obsługiwanych jest wszystkich sześć konwersji: tygodniowy ↔ cykliczny, tygodniowy ↔ kalendarzowy, cykliczny ↔ kalendarzowy. Zależnie od typu docelowego potrzebny jest dodatkowy parametr: - **Kalendarzowy**: zakres dat (początek / koniec), na którym mają zostać rozłożone lekcje. Okno proponuje domyślnie pierwszy i ostatni tydzień roku szkolnego. - **Cykliczny**: długość cyklu w dniach (domyślnie 12). - **Tygodniowy**: bez dodatkowych parametrów. Co jest odwzorowywane podczas przekształcenia: - **Pozycje lekcji** — każda pozycja jest przeliczana z układu źródłowego na układ docelowy (dzień tygodnia ↔ numer cyklu ↔ data). - **Tygodniowy → Kalendarzowy**: każda lekcja jest zwielokrotniona na wszystkich odpowiadających jej datach zakresu docelowego, a **liczby godzin przedmiotów** są mnożone przez liczbę tygodni, aby zachować sumę. **Naprzemienność A/B** jest stosowana automatycznie na każdej utworzonej dacie. - **Dostępność godzinowa**: zachowywana i przenoszona wyłącznie ze źródła **tygodniowego**. Źródło cykliczne albo kalendarzowe ją usuwa — dostępność datowana albo wyrażona w numerach cyklu nie odwzorowuje się poprawnie na tydzień wzorcowy ani na inny cykl. Wynikiem jest **samodzielny plan lekcji**, niezależny od oryginału — można go dopracowywać osobno, opublikować samodzielnie albo równolegle z wersją wyjściową. #### Łączenie trybów Można **publikować jednocześnie kilka planów lekcji różnych typów** na tych samych tygodniach. Typowe przypadki: - **Powtarzalny wspólny trzon + wydarzenia jednorazowe**: tygodniowy plan lekcji obejmujący regularne lekcje + [kalendarzowy](#page-timetables.calendar-mode) plan lekcji na kursy mistrzowskie, konferencje albo datowane egzaminy. - **Różne rytmy w tych samych klasach**: tygodniowy plan lekcji na poranki (bardzo regularne przedmioty podstawowe) + kalendarzowy plan lekcji na popołudnia (sport, koła zainteresowań, warsztaty zmieniające się z tygodnia na tydzień). - **Różny tryb pracy w zależności od klasy**: tygodniowy plan lekcji dla studiów pierwszego stopnia, a obok niepowtarzalny cykl studiów magisterskich z wieloma nauczycielami zewnętrznymi, którzy prowadzą ten sam kurs przez kilka dni z rzędu dla tych samych uczniów. Jeśli kilka opublikowanych planów lekcji ma wspólnego nauczyciela albo wspólną salę, Omniscol **dynamicznie scala widoki** po stronie podglądu. Podczas edycji planu lekcji, gdy inny plan lekcji jest już opublikowany, Omniscol domyślnie uwzględnia obłożenie nauczycieli, sal i klas przez ten opublikowany plan lekcji (tę funkcję można wyłączyć). #### Zobacz także - [Tygodniowy](#page-glossary.weekly-timetable) - [Cykliczny](#page-glossary.cyclic-timetable) - [Kalendarzowy](#page-glossary.calendar-mode) - [Przegląd modułu Zarządzanie planami lekcji](#page-timetables.overview) - [Kilka planów lekcji opublikowanych równolegle](#page-timetables.multiple-active-timetables) ### 1.7 Pierwsze logowanie *Source: `help/pl/getting-started/first-login.md` · id: getting-started.first-login · Updated: 2026-05-10* Aby zalogować się do Omniscol, należy wejść na adres URL szkoły — zwykle w postaci `https://.omniscol.com`. Strona logowania prosi o identyfikator i hasło. #### Dane logowania Dane logowania zostały przekazane przez placówkę. Domyślna składnia to `imie.nazwisko` lub `nazwisko.imie` (zależnie od konfiguracji szkoły na ekranie [Ustawienia ogólne](#page-admin.parameters)), ale może to być również numer ewidencyjny. #### Zapomniane hasło Proszę kliknąć Zapomniane hasło? Następnie proszę wpisać identyfikator logowania. Jeśli na koncie zapisano adres e-mail, przyjdzie wiadomość z linkiem do zresetowania hasła. Proszę wykonać podane instrukcje. Jeśli e-mail nie przyszedł: - proszę sprawdzić, czy wpisany identyfikator odpowiada temu, który jest zdefiniowany w Omniscol (w razie wątpliwości proszę skontaktować się z administratorem szkoły), - proszę zajrzeć do folderu wiadomości-śmieci / spamu, - proszę sprawdzić, czy placówka wpisała adres e-mail w karcie użytkownika danego konta. #### Pierwsze logowanie Przy pierwszym logowaniu system może od razu poprosić o **zmianę hasła**. Proszę wybrać hasło silne i niepowtarzalne (Omniscol nie ma żadnej możliwości go odzyskać — jest przekształcane w postać nieczytelną, jeszcze zanim zostanie przesłane). #### Logowanie przez dostawcę tożsamości Jeśli placówka korzysta z [OIDC / SSO](#page-integrations.oauth2) (Google Workspace, Azure AD/Microsoft Entra, Keycloak, wewnętrzny dostawca SSO), na stronie logowania pojawia się osobny przycisk. Proszę go kliknąć i uwierzytelnić się za pośrednictwem swojej zwykłej usługi tożsamości. #### Ograniczenia według profilu Administrator może **zablokować logowanie** wybranym profilom (na przykład wyłączyć logowanie uczniów w trakcie roku szkolnego albo dezaktywować konkretne konto nauczyciela). Jeśli profil jest objęty ograniczeniem, wyświetla się komunikat, który o tym informuje. Zob. Ograniczenie logowania do aplikacji. #### Zobacz także - [Konfigurowanie konta szkoły](#page-getting-started.setup-school) - [Zapraszanie i aktywowanie użytkowników](#page-getting-started.inviting-users) - [OIDC / SSO](#page-integrations.oauth2) ### 1.8 Konfigurowanie konta szkoły *Source: `help/pl/getting-started/setup-school.md` · id: getting-started.setup-school · Audience: admin · Updated: 2026-05-10* Po utworzeniu konta Omniscol strona główna prowadzi użytkownika krok po kroku. Proszę zachować proponowaną kolejność: to najpłynniejsza droga. Ta strona streszcza sekwencję **od prawej do lewej** w menu Administracja (im rzadziej dana pozycja jest używana, tym bardziej po prawej się znajduje). #### Krok 1 — Ustawienia Ekran Ustawienia zawiera całą konfigurację konta. Wiele wartości jest wstępnie wypełnionych w zależności od **kraju** szkoły, na podstawie lokalnych zwyczajów zaobserwowanych przez Omniscol — zwykle pozostaje niewiele do dostosowania. W pierwszej kolejności proszę sprawdzić: - Nazwa szkoły — wyświetlana na stronie logowania. - **Poziomy klas** (klasa 7, klasa 8, I rok licencjatu, II rok studiów magisterskich…) — służą jako odniesienie w całej aplikacji. Proszę dostosować je do własnej nomenklatury. - **Tryb wprowadzania dostępności nauczycieli** — tygodniowy, kalendarzowy (na kontach Premium), kalendarzowy + tygodniowy (na kontach Premium) albo wyłączony. - **Ograniczenie przeglądania planów lekcji przez uczniów** — na ile tygodni naprzód uczniowie mogą widzieć swój plan lekcji (przydatne, aby opóźnić udostępnienie planu, który nie jest jeszcze gotowy). - **Identyfikator logowania** — format automatycznego generowania loginów (`imie.nazwisko`, `nazwisko.imie`, numer identyfikacyjny…). - Pierwszy dzień tygodnia — ważne w krajach, w których tydzień zaczyna się w niedzielę (kraje arabskie, Izrael). - Tygodnie naprzemienne (w tygodniowych planach lekcji) — A/B, 1/2 (czyli tryb wyświetlania literami albo cyframi) albo wyłączone. - **Logo szkoły** — wyświetlane w miejsce logo Omniscol na stronie logowania i w górnym pasku. Szczegóły opisano na stronie [Ustawienia ogólne](#page-admin.parameters). #### Krok 2 — Rok szkolny Aby opublikować plan lekcji, trzeba mieć zadeklarowany co najmniej **jeden rok szkolny** na ekranie Lata szkolne. Do wypełnienia: - **Nazwa** — zwyczajowo daty: „2025-2026”. - **Data rozpoczęcia i data zakończenia**. - **Dni wolne** — przez skopiowanie i wklejenie z tabeli, przez zaimportowanie dat wstępnie przygotowanych dla danego kraju (proponowane przy tworzeniu) albo ręcznie. - **Bieżący rok szkolny** — wskazanie roku aktualnie używanego. To ten rok widać domyślnie i tylko on jest udostępniany. Więcej informacji na stronie [Rok szkolny i dni wolne](#page-admin.school-year). #### Krok 3 — Przedmioty Jeśli Omniscol wstępnie wypełnia już **wspólną bazę przedmiotów** dla danego kraju, być może nie ma nic do zrobienia. W przeciwnym razie, albo dla dyscyplin właściwych danej szkole: - Proszę utworzyć **przedmioty niestandardowe** w Utwórz. - Proszę zdefiniować **typy lekcji** (na przykład lekcja, warsztaty, egzamin, wykład) w Utwórz, jeśli nomenklatura dydaktyczna szkoły z nich korzysta. - Opcjonalnie: proszę skonfigurować **rodziny przedmiotów**, aby pogrupować przedmioty pokrewne. ⚠ **Uwaga na pisownię** przedmiotów niestandardowych: Omniscol tworzy wewnętrzną kopię w momencie przypisania do planu lekcji, a późniejsza poprawka nie przenosi się na plany lekcji skonfigurowane w przeszłości (tylko na plany bieżące, przyszłe i nieopublikowane). #### Krok 4 — Użytkownicy Tutaj tworzy się nauczycieli, uczniów i administratorów. Szczegóły opisano na stronie [Zapraszanie i aktywowanie użytkowników](#page-getting-started.inviting-users). Po tym kroku można utworzyć pierwszy plan lekcji. Następnie proszę przejść do [Przegląd modułu Zarządzanie planami lekcji](#page-timetables.overview). #### Zobacz także - [Ustawienia ogólne](#page-admin.parameters) - [Rok szkolny](#page-admin.school-year) - [Zarządzanie przedmiotami](#page-admin.subjects) - [Zapraszanie i aktywowanie użytkowników](#page-getting-started.inviting-users) - [Przygotowanie danych do importu masowego](#page-getting-started.preparing-data) ### 1.9 Zapraszanie i aktywowanie użytkowników *Source: `help/pl/getting-started/inviting-users.md` · id: getting-started.inviting-users · Audience: admin · Updated: 2026-08-07* Cztery role użytkowników po stronie szkoły porządkują wdrożenie: **Administrator**, **Nauczyciel**, **Uczeń** i **Personel**. Każda rola daje dostęp do innego zakresu. #### Który ekran dla której roli | Rola | Ekran | Obowiązkowe? | | --- | --- | --- | | Administrator | Administratorzy | Co najmniej główny administrator. | | Nauczyciel | Nauczyciele | Niezbędne, aby móc tworzyć i publikować lekcje prowadzone przez nauczycieli. | | Uczeń | Uczniowie | Opcjonalne: Omniscol działa również bez znajomości uczniów i bez dawania im dostępu do portalu podglądu. | | Personel | Personel | Przydatne tylko wtedy, gdy używany jest moduł Obsada personelu. | Szczegółowe uprawnienia każdej roli oraz ich techniczne odpowiedniki są opisane w [Użytkownicy i role](#page-admin.users-and-roles). #### Tworzenie pojedyncze albo masowe (wsadowe) **Pojedyncze**: przycisk Dodaj na ekranie danej roli. Otwiera się formularz jednego użytkownika i wpisuje się jego podstawowe dane. **Masowe (wsadowe)**: przycisk Importuj dane na ekranie danej roli. Tworzy się lub modyfikuje wiele wierszy w tabeli, na podstawie pliku przygotowanego w programie Excel, Google Sheets, Numbers albo Calc. Zob. [Przygotowanie danych do importu masowego](#page-getting-started.preparing-data). #### Aktywacja użytkownika Aktywny użytkownik może się logować, pojawiać się na ekranach, które go dotyczą, i otrzymywać przydziały. Aby dezaktywować użytkownika bez usuwania go, proszę skorzystać z jego karty albo z działania masowego. Nieaktywne konto nie może już się logować ani zostać przypisane do nowych planów lekcji, ale jego historia pozostaje dostępna do wglądu. #### Zapraszanie e-mailem Przycisk Zaproś użytkownika, użyty na zaznaczonych użytkownikach, wysyła do każdego adresata e-mail z linkiem do pierwszego logowania. Najpierw należy sprawdzić, czy adresy e-mail są wpisane; w przeciwnym razie zaproszenie nie może zostać wysłane. #### Ustawianie haseł początkowych Jeśli zaproszenie e-mailem nie jest odpowiednie, hasła można ustawić ręcznie przyciskiem Zmiana hasła. Lepiej zarezerwować to dla kont pilotażowych, kont serwisowych albo sytuacji, w których placówka sama zajmuje się rozdawaniem danych do logowania. Hasło ustawione w ten sposób ręcznie (ewentualnie z pomocą przycisku generowania losowego hasła) jest w rzeczywistości tymczasowe: przy pierwszym logowaniu użytkownik będzie musiał wpisać nowe, własne. #### Przypisywanie uczniów do klas i grup Przypisaniami zarządza się z ekranu Uczniowie: 1. Na ekranie Uczniowie proszę zaznaczyć odpowiednich uczniów. 2. Proszę kliknąć Przypisz do klasy. 3. Proszę wybrać rok szkolny, klasę oraz w razie potrzeby daty. 4. Przyciskiem Grupy proszę przypisać uczniów do grup (języki, przedmioty do wyboru, laboratoria, połowy klas). Przypisania można wykonywać w kilku turach, na przykład poziom po poziomie albo w miarę zapisów. Istnieje opcja, która pozwala przypisywać uczniów do klas i grup bezpośrednio na poziomie planów lekcji, z góry, a nie w module Administracja, po fakcie. W razie zainteresowania tym trybem pracy proszę skontaktować się z zespołem Omniscol. > _Option: Role niestandardowe_ #### Role niestandardowe Opcja **Role niestandardowe** pozwala ograniczyć uprawnienia konta administratora moduł po module i operacja po operacji. Zob. [Role niestandardowe](#page-admin.customroles). Udostępnia ona także [obszary](#page-admin.planning-domains), które wyznaczają granice danych powierzonych planiście — jego kampus, kierunek kształcenia, plan lekcji. #### Instrukcja — Wdrożenie użytkowników na początek roku 1. Proszę przygotować pliki lub tabele użytkowników: administratorów, nauczycieli, uczniów oraz, w razie potrzeby, personel. 2. Proszę zaimportować lub utworzyć konta z ekranów modułu Administracja. 3. Proszę sprawdzić adresy e-mail, identyfikatory logowania i role. 4. Proszę wysłać zaproszenia przyciskiem Zaproś użytkownika. 5. Proszę przypisać uczniów do ich klas i grup, gdy pierwszy plan lekcji na dany rok szkolny zostanie opublikowany. 6. Pod koniec roku szkolnego proszę dezaktywować konta, które nie powinny już się logować, zamiast od razu usuwać historię. #### Zobacz także - [Konfigurowanie konta szkoły](#page-getting-started.setup-school) - [Przygotowanie danych do importu masowego](#page-getting-started.preparing-data) - [Użytkownicy i role](#page-admin.users-and-roles) - [Zarządzanie nauczycielami](#page-admin.teachers) - [Zarządzanie uczniami](#page-admin.students) ### 1.10 Przygotowanie danych do importu masowego (wsadowego) *Source: `help/pl/getting-started/preparing-data.md` · id: getting-started.preparing-data · Audience: admin · Updated: 2026-06-03* Ręczne wprowadzanie kilkuset lub kilku tysięcy wierszy (nauczyciele, uczniowie, sale, lekcje…) rzadko jest rozsądne. Omniscol udostępnia **import masowy** przez kopiowanie i wklejanie z dowolnego arkusza kalkulacyjnego (Excel, Arkusze Google, Numbers, Calc…), w formacie CSV lub TSV. Import uruchamia się przez kliknięcie przycisków [table], umieszczonych zwykle na początku list jednostek. Niektóre z nich służą tylko do eksportu danych, ale większość przyjmuje też import. #### Co można zaimportować? | Jednostka | Ekran | Typowa liczba | | --- | --- | --- | | **Nauczyciele** | Eksportuj dane w formacie CSV | 10 - 1000 | | **Uczniowie** | Eksportuj dane w formacie CSV | 50 - 10 000 | | **Sale** | Eksportuj dane w formacie CSV | 10 - 500 | | **Przedmioty niestandardowe** | Eksportuj dane w formacie CSV | 10 - 1000 | | **Lekcje w planie lekcji** | Eksportuj dane w formacie CSV | 100 - 10 000 | #### Przygotowanie plików **Złote zasady**: 1. **Jeden wiersz = jedna jednostka.** Bez scalonych wierszy, bez nagłówków rozłożonych na kilka wierszy. 2. **Należy zachować kolejność kolumn oczekiwaną przez Omniscol.** Ekran importu wyświetla szablon z kolumnami w kolejności docelowej, a **kolumny te można przestawiać** po stronie Omniscol, tak aby odpowiadały kolejności w arkuszu źródłowym — dzięki temu kopiowanie i wklejanie z Excela lub Arkuszy Google pozostaje czyste, bez przepisywania pliku. 3. **Niektóre kolumny są tylko do odczytu.** Są wtedy wyszarzone i służą wyłącznie do eksportu danych. Pierwsza kolumna zawiera zwykle identyfikator danych już zapisanych w bazie danych. 4. **Kolumny oznaczone „*” są obowiązkowe.** Gdy brakuje pola obowiązkowego, wiersz jest pomijany (nie zostaje zaimportowany przy tworzeniu albo zostaje usunięty, jeśli już istniał w bazie danych). 5. **Separatory wewnątrz komórki są dowolne** na listach (wielu nauczycieli, wiele grup, wiele sal jednej lekcji): przecinek, średnik, ukośnik. 6. **Wbudowana sztuczna inteligencja uporządkuje dane**, ale tylko do pewnego stopnia: proszę zadbać o dane czyste i jednoznaczne, w przeciwnym razie mogą się zdarzyć nieprzyjemne niespodzianki. #### Typowe pola poszczególnych jednostek ##### Nauczyciele - Imię, nazwisko (obowiązkowe). - E-mail (zalecany przy zaproszeniach). - Numer ewidencyjny / identyfikator zewnętrzny (opcjonalny, ale przydatny do identyfikowalności). - Nauczane przedmioty (lista, dowolne separatory). - Godziny pracy (przewidziana liczba godzin tygodniowo). - Lokalizacja główna (przy wielu lokalizacjach). ##### Uczniowie - Imię, nazwisko (obowiązkowe). - E-mail (zalecany). - Numer ewidencyjny z SIS (przydatny, aby uniknąć pomyłek przy zbieżnych nazwiskach). - Poziom / klasa. - Grupy (przedmiot fakultatywny, podgrupa). - Status (aktywny, wstępnie zapisany, nieaktywny). ##### Sale - Nazwa (obowiązkowa). - Lokalizacja (obowiązkowa przy wielu lokalizacjach — w przeciwnym razie Omniscol przypisuje salę do lokalizacji domyślnej). - Pojemność. - Specjalizacje (lista). - Budynek (pole dowolne). - Etykiety / komentarze. ##### Lekcje - Klasa + przedmiot (co najmniej). - Czas trwania (w przeciwnym razie wyliczany z godziny początku i końca). - Dzień, godzina początku, godzina końca (aby wstępnie umieścić lekcję; w przeciwnym razie proszę pozostawić puste i umieścić ją później). - Grupa (opcjonalnie). - Typ lekcji (ćwiczenia, laboratorium, wykład, egzamin…). - Nauczyciel lub nauczyciele (dowolne separatory). - Sala lub sale (dowolne separatory — tak, [wiele sal](#page-glossary.multi-room) w jednej lekcji jest obsługiwane). - Zasób lub zasoby. - Tygodnie naprzemienne (format `A/B`, `1/2` itd.). - Komentarz w dowolnej formie. #### Po przygotowaniu Przebieg importu zależy od ekranu docelowego. Zwykle ekran odświeża się w całości wraz z nowymi danymi. W przypadku **lekcji w planie lekcji** zob. [Masowy import kursów z arkusza kalkulacyjnego](#page-timetables.mass-import), gdzie opisano dedykowanego kreatora w czterech etapach. #### Eksport Ten sam mechanizm wbudowanego arkusza pozwala wydobyć dane. Dostępnych jest kilka możliwości: - Kopiowanie i wklejanie do zewnętrznego arkusza kalkulacyjnego (format TSV, automatycznie). - Użycie przycisków u dołu, aby wyeksportować bezpośrednio do pliku PDF, CSV lub Excel (XLSX). #### Ponowny import Import nie ogranicza się do pierwszego wczytania danych. Można importować masowo w kilku etapach. Pierwsza kolumna, oznaczona „id”, zawiera dostępny tylko do odczytu identyfikator każdej jednostki w bazie danych, który można też odnaleźć w adresach URL. Jeśli zmieni się wiersz odpowiadający danemu identyfikatorowi, dane tej jednostki zostaną zmienione. Aby dodać nowe dane, wystarczy przejść na sam dół arkusza, gdzie zawsze znajduje się kilka pustych wierszy bez przypisanego identyfikatora. Wklejenie nowych danych, tak jak przy pierwszym imporcie, powiększa tabelę o tyle samo wierszy. Jednostki importowane ponownie mogą zawierać dane złożone, które nie podlegają importowi ani eksportowi (czasem istnieje kolumna tylko do odczytu, która służy wyłącznie do eksportu takich danych). Dotyczy to na przykład dostępności i ograniczeń czasowych nauczycieli, sal, klas itd. W takim przypadku ponowne wstawienie danych w niezmienionej postaci odbywa się automatycznie. Ten mechanizm pozwala więc importować masowo w kilku turach bez utraty danych uzupełnionych na istniejących jednostkach, a jednocześnie tworzyć nowe lub usuwać inne. #### Usuwanie masowe Jak przy ponownym imporcie, pierwsza kolumna „id” służy do rozpoznania poszczególnych jednostek. Jeśli wyczyści się wiersz, co najmniej kolumny obowiązkowe oznaczone „*”, import usunie opróżnione jednostki. Ponieważ można zaznaczyć kilka wierszy i kolumn, tak jak w zwykłym arkuszu kalkulacyjnym, wystarczy nacisnąć klawisz Delete, aby wyczyścić dowolną liczbę wierszy, a tym samym masowo usunąć odpowiadające im jednostki z bazy danych. #### Zobacz także - [Import i eksport](#page-admin.import-export) - [Masowy import lekcji do planu lekcji](#page-timetables.mass-import) - [Migracja z innego oprogramowania](#page-migration.overview) ### 1.11 Przewodnik wprowadzający (sześć kroków modułu Strona główna) *Source: `help/pl/getting-started/onboarding-tour.md` · id: getting-started.onboarding-tour · Audience: admin · Updated: 2026-05-10* Przy pierwszym logowaniu na puste konto moduł **Strona główna** wyświetla **listę kontrolną sześciu kroków** — każdy z nich zostaje odhaczony automatycznie, gdy jego warunek wstępny jest spełniony (zielony znak ✓), albo oznaczony jako blokujący (czerwony znak ✗), dopóki nie wprowadzono żadnych danych. Kroki ułożone są w logicznej kolejności, zdecydowanie zalecanej, ale zawsze można pominąć któryś z nich i wrócić do niego później. W pewnym momencie zabraknie jakichś danych, co wymusi powrót do wcześniejszych kroków. Ta strona pomocy opisuje tę samą sekwencję krok po kroku; **interaktywny przewodnik** podsumowuje ją na końcu strony. #### Przegląd — komunikat powitalny > Witamy w Omniscol, internetowym oprogramowaniu do generowania planów lekcji i zarządzania nimi! Wyświetlenie tej wiadomości oznacza, że jest to pierwsze logowanie lub że nie skonfigurowano jeszcze pierwszego planu lekcji. Proszę wykonać poniższe kroki, aby rozpocząć pracę z oprogramowaniem. Prezentowana kolejność jest zalecana, ale w każdej chwili można wrócić do poprzednich kroków. > **Wskazówka organizacyjna**: moduł Strona główna ukrywa się > automatycznie, gdy tylko **pierwszy plan lekcji zostanie opublikowany**. > Dopóki jest widoczny, to on jest drogowskazem. Link > wyświetl ponownie przywraca go w razie > potrzeby po publikacji: > > > Konto jest skonfigurowane i działa. Można jednak ponownie wyświetlić kroki konfiguracji. #### Krok 1 — Wprowadzenie użytkowników > Najpierw proszę wprowadzić wszystkich użytkowników: nauczycieli i uczniów. Wprowadzanie uczniów jest opcjonalne — można tworzyć plany lekcji, podając jedynie liczbę uczniów w klasach i grupach. Można też wprowadzić użytkowników później i przypisać ich do klas i grup. > Wskazówka: można wprowadzić dane masowo, kopiując i wklejając z arkusza kalkulacyjnego, np. Excel, klikając ikonę. **Działanie**: - Wprowadź nauczycieli *(obowiązkowe — czerwony krzyżyk, dopóki nie utworzono żadnego nauczyciela)* - Wprowadź uczniów *(opcjonalne — bez czerwonego krzyżyka, tylko kółko, jeśli nic nie wprowadzono)* Zob. [Zapraszanie i aktywowanie użytkowników](#page-getting-started.inviting-users) po szczegóły (tworzenie pojedyncze a import masowy, zaproszenia pocztą elektroniczną, hasła początkowe, operacje masowe). #### Krok 2 — Uzupełnienie ustawień > Proszę uzupełnić ustawienia konta, w tym poziomy klas. **Działanie**: Uzupełnij ustawienia Zob. [Ustawienia ogólne](#page-admin.parameters). W pierwszej kolejności warto dostosować: poziomy klas, tryb wprowadzania dostępności, pierwszy dzień tygodnia (dla krajów, w których tydzień zaczyna się w niedzielę) oraz składnię identyfikatora. Większość pozostałych wartości jest wstępnie uzupełniona dla danego kraju. #### Krok 3 — Utworzenie pierwszego roku szkolnego > Rok szkolny to okres między datą rozpoczęcia a zakończenia, obejmujący dni wolne, w którym plany lekcji będą publikowane. Bez niego nie można opublikować żadnego planu lekcji: żadna lekcja nie zasila wtedy modułów codziennego użytku. **Działanie**: Utwórz pierwszy rok szkolny Zob. [Rok szkolny i dni wolne](#page-admin.school-year). Proszę nadać mu nazwę („2025-2026”), podać datę rozpoczęcia i zakończenia oraz zaimportować dni wolne wstępnie uzupełnione dla danego kraju, jeśli są proponowane. Ten krok odblokowuje publikację w module Zarządzanie planami lekcji. #### Krok 4 — Utworzenie przedmiotów niestandardowych (opcjonalnie) > Proszę zdefiniować przedmioty nauczane, których nie ma jeszcze w domyślnej bazie przedmiotów. Ten krok jest opcjonalny. **Działanie**: Utwórz przedmioty niestandardowe Zob. [Zarządzanie przedmiotami](#page-admin.subjects). Baza przedmiotów wspólnych dla danego kraju jest już wstępnie uzupełniona; tworzy się tu wyłącznie przedmioty **właściwe dla danej placówki**, których w tej bazie nie ma. #### Krok 5 — Utworzenie (a następnie skonfigurowanie) planu lekcji Krok 5 ma dwa warianty, zależnie od stanu konta: ##### 5a — Dopóki nie utworzono żadnego planu lekcji > Proszę utworzyć nowy plan lekcji. Zalecamy postępować krok po kroku, wypełniając każdą zakładkę od lewej do prawej. Na końcu proszę kliknąć przycisk generowania. **Działanie**: Utwórz plan lekcji Proszę kliknąć Utwórz plan lekcji w module [Zarządzanie planami lekcji](#page-timetables.overview). Jeśli konto udostępnia kilka trybów, proszę wybrać [tryb planu lekcji](#page-overview.timetable-modes) (tygodniowy, cykliczny, kalendarzowy). ##### 5b — Po utworzeniu planu lekcji, w trakcie konfiguracji > Plan lekcji jest w trakcie konfiguracji, ale nie został jeszcze wygenerowany. Zalecamy zakończyć konfigurację krok po kroku, wypełniając każdą zakładkę od lewej do prawej. Na końcu proszę kliknąć przycisk generowania. **Działanie**: Wznów konfigurację planu lekcji Proszę przechodzić przez zakładki planu lekcji **od lewej do prawej**: [Ogólne](#page-timetables.general-settings) → [Lokalizacje](#page-timetables.sites-rooms) → [Nauczyciele](#page-timetables.assigning-teachers) → [Klasy](#page-timetables.creating-classes) → [Wyrównanie grup](#page-timetables.alignments-and-groups-of-groups) → [Podział godzin](#page-timetables.hour-distribution) → [Generowanie](#page-timetables.generation). #### Krok 6 — Opublikowanie planu lekcji > Po skonfigurowaniu i wygenerowaniu planu lekcji należy go opublikować we wszystkich lub w wybranych tygodniach roku szkolnego. Proszę kliknąć przycisk publikacji na ekranie zarządzania. Ten ekran pozwala również znaleźć plany lekcji w trakcie konfiguracji lub już wygenerowane. **Działanie**: Zarządzaj planami lekcji Zob. [Publikowanie planu lekcji](#page-timetables.publication). To krok, o którym najczęściej się zapomina: dopóki plan lekcji nie zostanie opublikowany na tygodniach roku szkolnego, pozostaje wersją roboczą, środowiskiem testowym niewidocznym dla użytkowników końcowych. Publikacja wdraża go do codziennej pracy: jego lekcje zasilają wtedy wszystkie pozostałe moduły, a także ewentualne eksporty w czasie rzeczywistym poza aplikację: iCal, podłączone systemy zewnętrzne itd. #### Co dalej Gdy cała lista kontrolna jest zielona, a plan lekcji w pełni skonfigurowany i opublikowany: - **Przypisanie uczniów** do ich klas / grup (zob. [Zapraszanie i aktywowanie użytkowników](#page-getting-started.inviting-users)). - **Zaproszenie użytkowników** pocztą elektroniczną (Zaproś użytkownika). - **Skonfigurowanie paneli informacyjnych** na terenie szkoły (zob. [Panele informacyjne](#page-panels.lobby-panel)). - **Uruchomienie subskrypcji iCal** dla nauczycieli i uczniów (zob. [iCal](#page-integrations.ical)). - **Sprawdzenie dostępu ucznia** z konta testowego. - **Skonfigurowanie integracji** (system informacyjny placówki, ERP…), jeśli dotyczy (zob. [Przegląd integracji](#page-integrations.overview)). #### Zobacz także - [Oprowadzenie w pięć minut](#page-overview.quick-tour) - [Pierwsze logowanie](#page-getting-started.first-login) - [Konfigurowanie konta szkoły](#page-getting-started.setup-school) - [Zapraszanie i aktywowanie użytkowników](#page-getting-started.inviting-users) - [Przegląd modułu Zarządzanie planami lekcji](#page-timetables.overview) - [Publikacja planu lekcji](#page-timetables.publication) --- ## 2. Podstawowe pojęcia ### 2.1 Organizacja danych: przedmioty, nauczyciele, klasy, plany lekcji *Source: `help/pl/core-concepts/data-model.md` · id: core-concepts.data-model · Audience: admin · Updated: 2026-06-13* Omniscol rozróżnia dwa poziomy organizacji: **bazę referencyjną szkoły**, prowadzoną w module Administracja (przedmioty, użytkownicy, lata szkolne…), która trwale opisuje placówkę, oraz **plany lekcji**, które pobierają z niej elementy, aby zbudować spójne planowanie na dany okres. Zrozumienie tej dwoistości jest kluczem do spokojnego wprowadzania zmian (zmiana nazwy przedmiotu, aktualizacja danych nauczyciela, zarchiwizowanie planu lekcji) bez naruszania historii. #### Przegląd: dwa poziomy, dwie logiki ```mermaid flowchart LR subgraph A["Poziom szkoły — moduł Administracja"] AS["Przedmioty"] AU["Użytkownicy z rolą nauczyciela"] end subgraph E["Poziom planu lekcji — planowanie"] C["Klasy"] G["Grupy
(opcjonalne)"] M["Kursy
= przedmioty klas
(lokalna kopia, z typem)"] T["Nauczyciele planu lekcji
kopia częściowa"] S["Lekcje
czas trwania, klasa, opcjonalna grupa,
nauczyciele, sala, pozycja"] end AS -.->|służy jako wzorzec| M AU -.->|służy jako wzorzec| T C -->|zawiera| G C -->|przypisane przedmioty| M T -->|przypisani nauczyciele| M M -->|nauczany przedmiot| S C -->|objęta klasa| S G -.->|opcjonalna grupa| S T -->|nauczyciele lekcji| S ``` **Poziom szkoły**: globalna baza referencyjna o długim czasie życia, prowadzona w module Administracja. Zawiera to, co jest prawdą dla placówki niezależnie od konkretnego planu lekcji — kalendarz lat szkolnych, katalog przedmiotów (predefiniowanych dla danego kraju oraz niestandardowych, należących do szkoły) i spis użytkowników (wraz z ich rolami). **Poziom planu lekcji**: spójne planowanie na określony okres. Każdy plan lekcji ma własną listę nauczycieli, klas, grup, przedmiotów przypisanych do klas oraz lekcji. Te obiekty nie są prostymi odniesieniami do bazy referencyjnej szkoły: są to **lokalne kopie**, które można uzupełniać bez zmiany tej bazy. I odwrotnie — baza referencyjna na poziomie szkoły może się zmieniać (usuwanie przedmiotów, nauczycieli) bez naruszania planów lekcji z przeszłości. Dalsza część opisuje szczegółowo każdy rodzaj powiązania. #### Rok szkolny: rama czasowa **Rok szkolny** wyznacza przedział `data rozpoczęcia → data zakończenia` oraz listę dni wolnych (zob. [Rok szkolny](#page-core-concepts.school-year)). Nie „zawiera” on planów lekcji bezpośrednio: to plany lekcji **rozkładają się** na tygodnie (tryb tygodniowy / cykliczny) albo na daty (tryb kalendarzowy) należące do roku szkolnego. Pozwala to na kilka konfiguracji: - **Jeden plan lekcji na rok szkolny** (typowy przypadek): plan obejmuje wszystkie tygodnie robocze roku. - **Kilka następujących po sobie planów lekcji** w tym samym roku: na przykład jeden plan na semestr, przy czym kolejny przejmuje prowadzenie w dacie przełączenia. - **Kilka równoległych planów lekcji** na ten sam okres (funkcja zawarta w Premium; na niektórych kontach bez Premium można ją włączyć w ramach odpowiednich ustaleń umownych), na przykład: - plan lekcji dla powtarzalnego wspólnego trzonu - plan kalendarzowy dla kursów mistrzowskich, scalane przy przeglądaniu. Zob. [Kilka planów lekcji opublikowanych równolegle](#page-timetables.multiple-active-timetables). Rok szkolny pozostaje więc ramą — nie pojemnikiem. Zmiana jego granic lub dni wolnych aktualizuje kalendarz używany przez przypisane do niego plany lekcji, bez zmiany ich treści. #### Przedmioty: od katalogu szkoły do lekcji w klasie ```mermaid flowchart TD CatM["Katalog przedmiotów
np. Matematyka"] CatT["Typy lekcji
np. Wykład, Ćwiczenia, Laboratorium"] Classe["Klasa w planie lekcji
np. 3A"] Prof["Nauczyciele planu lekcji
np. Anna Nowak"] MC["Przedmiot klasy (= kurs)
Matematyka [Ćwiczenia]
liczba godzin, nauczyciele,
ograniczenia, sala ze specjalizacją"] S["Lekcje
czas trwania, data/przedział czasowy,
ewentualna grupa, sala,
nauczyciel(e)"] CatM -->|wybrany przedmiot| MC CatT -->|ewentualny typ| MC Classe -->|objęta klasa| MC Prof -->|przypisani nauczyciele| MC MC -->|służy do utworzenia| S Prof -->|możliwa korekta| S ``` ##### Poziom 1 — Katalog w module Administracja Na poziomie szkoły współistnieją dwa źródła: - **Przedmioty predefiniowane**: baza przedmiotów Omniscol dla skonfigurowanego kraju (oficjalne kody, znormalizowane etykiety). Ten katalog jest dla szkoły tylko do odczytu. - **Przedmioty niestandardowe**: to, co szkoła tworzy sama, zarządzane z [ekranu Przedmioty](#page-admin.subjects). Każdy przedmiot niestandardowy ma nazwę, (krótki) kod, a opcjonalnie: nazwę skróconą, własny kolor, przedmiot nadrzędny, rodzinę. Ten katalog nie mówi nic o klasach, w których te przedmioty są nauczane — mówi tylko, że istnieją. Rodziny przedmiotów mogą również pochodzić z bazy wspólnej dla danego kraju, tylko do odczytu, albo z bazy niestandardowej, własnej dla szkoły. ##### Poziom 2 — Przypisanie do klasy (z typem lub bez) Gdy w planie lekcji **przedmiot zostaje przypisany do klasy**, w tej klasie powstaje **lokalna kopia** przedmiotu, uzupełniona polami właściwymi dla planowania (docelowa liczba godzin, waga pedagogiczna, niekompatybilności, domyślni nauczyciele, specjalizacja sali…). Jeśli przedmiot zostaje przypisany **z typem lekcji** (`Wykład`, `Ćwiczenia`, `Laboratorium`, `Egzamin` — zob. [Typy lekcji](#page-admin.lesson-types)), każdy typ tworzy w klasie **odrębny wpis**: | Przedmiot w klasie | Źródło | Typ | | --- | --- | --- | | Matematyka | Matematyka | brak | | Matematyka [Wykład] | Matematyka | Wykład | | Matematyka [Ćwiczenia] | Matematyka | Ćwiczenia | Jest to zamierzone: każdy wariant (matematyka jako wykład, matematyka jako ćwiczenia) staje się odrębną lokalną kopią, z własną liczbą godzin, własnymi nauczycielami i własnymi niekompatybilnościami. Powiązanie z katalogiem nie jest silną zależnością: lokalna kopia zachowuje źródłowy przedmiot, dopóki istnieje on jeszcze w katalogu. Jeśli przedmiot zostanie usunięty z katalogu, lokalne kopie w planach lekcji pozostają poprawne. ##### Poziom 3 — Od ustawień kursu do lekcji W Omniscol to, co potocznie nazywa się [kursem](#page-glossary.course), odpowiada zwykle przedmiotowi przypisanemu do klasy, ewentualnie powiązanemu z typem lekcji (wykład, ćwiczenia, laboratorium…), a następnie uzupełnionemu informacjami planistycznymi: liczbą godzin, nauczycielami, grupami, ograniczeniami umieszczania, salami lub zasobami. Taka definicja wskazuje, co ma zostać zaplanowane. **Lekcje** to wystąpienia faktycznie umieszczone w planie lekcji, w danym tygodniu lub w danej dacie. Przykład: przedmiot klasy, taki jak **Matematyka [Ćwiczenia]**, może określać liczbę godzin, nauczycieli, grupy, ograniczenia umieszczania i preferencje dotyczące sali. Lekcje są następnie tworzone na podstawie tej definicji. Zob. [Kursy, lekcje, typy lekcji](#page-core-concepts.lessons-and-types). #### Nauczyciele: baza referencyjna szkoły → uzupełniona kopia w planie lekcji ```mermaid flowchart LR U["Użytkownik (moduł Administracja)
rola teacher
nazwisko · identyfikator logowania · e-mail · globalna dostępność"] Aff{Przypisanie do planu lekcji} T["Nauczyciel w planie lekcji
nazwisko (skopiowane) · idnumber
godziny pracy (skopiowane, do nadpisania)
dostępność właściwa dla planu lekcji · sala uprzywilejowana"] Se["Przypisane lekcje"] U --> Aff Aff -->|uzupełniona kopia częściowa| T T --> Se ``` ##### Nauczyciel na poziomie szkoły Na poziomie szkoły nauczyciel to **użytkownik** z rolą `teacher` (ten sam użytkownik może łączyć kilka ról — zob. [Użytkownicy i role](#page-admin.users-and-roles)). Zarządzany z [ekranu Nauczyciele](#page-admin.teachers), przechowuje trwałe dane identyfikacyjne: nazwisko, imię, identyfikator logowania, adres e-mail, numer identyfikacyjny, a także swoją **globalną dostępność** (powtarzalną) i referencyjne godziny pracy. ##### Nauczyciel przypisany do planu lekcji Gdy ten nauczyciel zostaje przypisany do planu lekcji, Omniscol tworzy w tym planie **uzupełnioną kopię częściową**. Kopia przejmuje tylko wybrane pola z bazy referencyjnej szkoły i dodaje do nich pola właściwe dla planowania: | Pole | Poziom szkoły (baza referencyjna) | Poziom planu lekcji (kopia) | | --- | --- | --- | | Identyfikator | identyfikator użytkownika | identyczny (powiązanie niejawne) | | Nazwisko, imię, drugie imię | źródło | kopiowane przy przypisaniu | | Numer identyfikacyjny | źródło | kopiowany przy przypisaniu | | E-mail, telefon, identyfikator logowania | źródło | **niekopiowane** (pozostają tylko w module Administracja) | | Referencyjne godziny pracy | źródło | kopiowane, **do nadpisania w każdym planie lekcji** | | Sala uprzywilejowana | nieprowadzona w bazie referencyjnej | właściwa dla planu lekcji | | Dostępność | „globalna dostępność” użytkownika | tryb powtarzalny: lokalna kopia zatwierdzona lub złagodzona; tryb kalendarzowy: źródło współdzielone, do przeglądania i modyfikowania z modułu Administracja albo z objętych planów lekcji | Ta dwoistość jest ważna: **ten sam nauczyciel** może mieć **inne godziny pracy** w zależności od planowanego zakresu albo w danym momencie **inną salę uprzywilejowaną** (na przykład z powodu czasowej niepełnosprawności). W przypadku dostępności zasada zależy od trybu planowania: - w trybie powtarzalnym dostępność wpisana przez nauczyciela przechodzi etap akceptacji przez administrację. Można ją dostosować lokalnie w planie lekcji, na przykład zamieniając bezwzględną niedostępność na przedział czasowy oznaczony jako niepożądany; - w trybie kalendarzowym dostępność nauczyciela jest traktowana jako jedyne źródło prawdy, zwłaszcza w przypadku nauczycieli zewnętrznych. Można ją przeglądać i modyfikować z karty użytkownika albo z dowolnego kalendarzowego planu lekcji, do którego nauczyciel jest przypisany. W obu przypadkach niektóre ustawienia pozostają właściwe dla planu lekcji i mogą lokalnie uzupełniać tę dostępność. ##### Wirtualni nauczyciele Wariant: w planie lekcji można utworzyć **wirtualnego nauczyciela** — stanowisko do obsadzenia, bez rzeczywistego użytkownika („przyszły nauczyciel matematyki”). Nie ma on odpowiednika na poziomie szkoły. Po zatrudnieniu można zastąpić wirtualnego nauczyciela prawdziwym użytkownikiem będącym nauczycielem (zob. [Przypisywanie nauczycieli do planu lekcji](#page-timetables.assigning-teachers)). #### Zasada lokalnej kopii w skrócie Ta sama zasada rządzi przedmiotami w klasie i nauczycielami w planie lekcji: **lokalna kopia powstaje w momencie przypisania** i to ona przechowuje pola właściwe dla danego planu lekcji. Dlaczego taki wybór projektowy: - **Niezależność w czasie.** Plan lekcji zamknięty w ubiegłym roku nie powinien się zmieniać przy zmianie nazwy przedmiotu lub nazwiska nauczyciela w tym roku. Lokalne kopie zapewniają **integralność historyczną**: to, co zostało zaplanowane, pozostaje dokładnie takie jak wtedy. - **Uzupełnianie zależne od kontekstu.** Nauczyciel nie ma tej samej dostępności ani tych samych godzin pracy w zależności od planowanego zakresu; przedmiot nie ma tej samej wagi ani tych samych niekompatybilności w zależności od klasy, w której jest nauczany. Lokalna kopia to naturalne miejsce na te różnice. - **Porządkowanie bez szkód.** Usunięcie lub przebudowa przedmiotu na poziomie szkoły nie wymazuje planów lekcji, które z niego korzystały — ich lokalne kopie pozostają poprawne. W zamian za to zmiany nazw po stronie szkoły nie rozchodzą się po cichu wszędzie. Tego dotyczy następna sekcja. #### Konsekwencje praktyczne: zmiany nazw, usuwanie, historia Przy zmianie jednostki na poziomie szkoły Omniscol stosuje jasną zasadę propagacji: | Działanie na poziomie szkoły | Dawne plany lekcji (zamknięte) | Bieżące / przyszłe plany lekcji | | --- | --- | --- | | Zmiana nazwy przedmiotu niestandardowego (nazwa, nazwa skrócona, kod) | **Bez zmian** — historia zachowana | Nazwa przeniesiona do odpowiednich lokalnych kopii | | Zmiana koloru przedmiotu niestandardowego | **Bez zmian** | Kolor zaktualizowany, jeśli poprzedni kolor nie został nadpisany lokalnie | | Zmiana nazwiska nauczyciela (nazwisko, imię) | **Bez zmian** | Nazwisko przeniesione do lokalnych kopii | | Zmiana adresu e-mail lub telefonu nauczyciela | Bez skutku (niekopiowane) | Bez skutku (niekopiowane) | | Zmiana globalnej dostępności nauczyciela | Bez skutku | Tryb powtarzalny: wskaźnik aktualizacji, jeśli dostępność została już zaakceptowana; tryb kalendarzowy: aktualizacja współdzielonego źródła dostępności | | Usunięcie przedmiotu niestandardowego | Lokalne kopie zachowane | Lokalne kopie zachowane; przedmiot znika tylko z katalogu | | Wyłączenie roli `teacher` u użytkownika | Bez zmian | Kopie w planach lekcji pozostają na miejscu | Rozróżnienie na „dawne” i „bieżące lub przyszłe” następuje względem **dzisiejszej daty**: opublikowany plan lekcji, którego ostatni opublikowany tydzień wypada przed dniem dzisiejszym, uznaje się za dawny i zmiany nazw go już nie modyfikują. ##### Kiedy przenosić zmiany ręcznie Automatyczna propagacja pozostaje **celowo wąska**: nazwa, kod i kolor przedmiotów; nazwisko i identyfikator nauczycieli. Nazwy ani kodu przedmiotu skopiowanego lokalnie nie można zmienić w planie lekcji; tylko jego kolor można zdefiniować lokalnie na nowo. Pozostałe pola (niekompatybilności, waga pedagogiczna, godziny pracy, dostępność w poszczególnych planach lekcji…) nie są synchronizowane, ponieważ **z natury należą do planu lekcji**. Jeśli głębsza zmiana ma objąć kilka istniejących planów lekcji (na przykład: skorygowanie godzin pracy nauczyciela we wszystkich opublikowanych planach albo dodanie wszędzie nowej niekompatybilności przedmiotów), trzeba działać w każdym planie lekcji osobno. Przy działaniach masowych najszybszym narzędziem pozostaje **import przez kopiuj-wklej z arkusza kalkulacyjnego** na odpowiednim ekranie każdego planu lekcji. #### Zobacz także - [Rok szkolny](#page-core-concepts.school-year) - [Klasa, grupa, podgrupa](#page-core-concepts.classes-and-groups) - [Kurs (definicja w słowniku)](#page-glossary.course) - [Kursy, lekcje, typy lekcji](#page-core-concepts.lessons-and-types) - [Zarządzanie przedmiotami](#page-admin.subjects) - [Zarządzanie nauczycielami](#page-admin.teachers) - [Typy lekcji](#page-admin.lesson-types) - [Przegląd modułu Zarządzanie planami lekcji](#page-timetables.overview) ### 2.2 Klasa, grupa, podgrupa *Source: `help/pl/core-concepts/classes-and-groups.md` · id: core-concepts.classes-and-groups · Updated: 2026-05-20* Klasy to różne zbiory uczniów, którzy mają ten sam tok nauki i zwykle uczęszczają na lekcje razem (te same przedmioty, nauczyciele i sale), z jednym wyjątkiem: podziałem na grupy, czyli na indywidualnie dobrane podzbiory o nieznacznie zmienionym toku nauki (podział według przedmiotów do wyboru, poziomów, płci, kolejności alfabetycznej…). Różne klasy nigdy nie mają wspólnych uczniów. W Omniscol zawsze wychodzi się od **klasy**, a następnie w każdej z nich tworzy się **grupy**, gdy nie cała klasa uczęszcza na ten sam kurs. **Podgrupy** służą do dokładniejszego podziału, gdy sama grupa musi zostać podzielona: grupa przypisana do innej grupy, w relacji nadrzędna–podrzędna, staje się podgrupą. Pojęcia **podziału klasy**, **wyrównania grup** i **grupy grup** nie są dodatkowymi poziomami w hierarchii. To sposoby organizowania grup albo wiązania ich ze sobą, zależnie od przypadku użycia. #### Przegląd ```mermaid %%{init: {"flowchart": {"defaultRenderer": "elk"}}}%% flowchart TB subgraph C1["Klasa 8A"] direction TB A1["Grupa Język hiszpański"] A2["Grupa Język niemiecki"] P["Grupa Lab-A"] Q["Grupa Lab-B"] P1["Podgrupa Lab-A1"] P2["Podgrupa Lab-A2"] P --> P1 P --> P2 end subgraph C2["Klasa 8B"] direction TB B1["Grupa Język niemiecki"] B2["Grupa Język włoski"] B4["Grupa Informatyka 1 (20 uczniów)"] B5["Grupa Informatyka 2 (10 uczniów)"] B3["Grupa Etyka"] end subgraph C3["Klasa 8C"] direction TB C4G["Grupa Język hiszpański"] C5G["Grupa Język włoski"] C2G["Grupa Informatyka 1 (20 uczniów)"] C3G["Grupa Informatyka 2 (10 uczniów)"] C1G["Grupa Etyka"] end A1 -. "podział" .- A2 P -. "podział" .- Q B1 -. "podział" .- B2 B4 -. "podział" .- B5 C2G -. "podział" .- C3G C4G -. "podział" .- C5G A2 <== "wyrównanie" ==> B1 B5 <== "wyrównanie" ==> C3G B3 <== "wyrównanie" ==> C1G linkStyle 0,1 stroke:#475569,stroke-width:1.5px linkStyle 2,3,4,5,6,7 stroke:#15803d,stroke-width:1.8px linkStyle 8,9,10 stroke:#1d4ed8,stroke-width:2.8px ``` Schemat czyta się tak: - **klasa** zawiera grupy; - **grupa** może zawierać **podgrupy**; - **podział klasy** organizuje grupy z tej samej klasy, które rozdzielają między siebie uczniów; - **wyrównanie grup** wiąże grupy z różnych klas na potrzeby wspólnej lekcji; - **grupa grup** służy do zbudowania wyraźnego i wielokrotnie używanego połączenia, zwłaszcza gdy jego skład ma się zmieniać. Na tym schemacie widać kilka klas z kilkoma grupami: niektóre w podziale, inne wyrównane, czasem jedno i drugie. Drugi język obcy jest wyborem wykluczającym: uczeń uczęszcza albo na lekcje niemieckiego, albo hiszpańskiego, albo włoskiego. Dlatego poszczególne grupy językowe są zadeklarowane w podziale klasy: można je planować jednocześnie (pod warunkiem, że każdego z języków uczy inny nauczyciel). W klasach 8A i 8B jest niewielu uczniów niemieckiego — łączy się ich więc, aby uczęszczali na te same lekcje; właśnie do tego służy wyrównanie grup. Lekcje tworzy się lustrzanie w każdej z klas, aby zostały zaplanowane jednocześnie. Tak samo jest z etyką w klasach 8B i 8C. Ten schemat pokazuje też typowy zabieg oszczędzający zasoby, **„3 grupy na 2 klasy”**: klasy 8B i 8C są podzielone na Informatykę 1 (20 uczniów) i Informatykę 2 (10 uczniów). **Wyrównując** obie grupy Informatyka 2, szkoła łączy dwie małe grupy i prowadzi tylko **trzy lekcje informatyki** zamiast czterech — wszystkie o zbliżonej liczebności (20 uczniów), angażując o jednego nauczyciela i jedną salę mniej. #### Klasa: poziom podstawowy [Klasa](#page-glossary.class) jest domyślną jednostką odniesienia. Zależnie od kontekstu może oznaczać: - klasę szkolną, - rocznik, - kohortę, - sesję, - ścieżkę kształcenia. Gdy kurs dotyczy **całej klasy**, dodatkowa grupa nie jest potrzebna: kurs jest po prostu przypisany do klasy. #### Grupa: wydzielona część klasy [Grupa](#page-glossary.group) jest zawsze **wydzieloną częścią jednej klasy**. Wszyscy jej uczniowie pozostają uczniami klasy nadrzędnej. Klasyczne przykłady: - `Grupa A` / `Grupa B` przy podziale alfabetycznym; - `Lab-A` / `Lab-B` dla półgrup laboratoryjnych; - `Język hiszpański` / `Język niemiecki` / `Język włoski` dla wykluczających się wyborów drugiego języka obcego; - `Angielski zaawansowany` / `Angielski średni` / `Angielski podstawowy`, jeśli szkoła pracuje z grupami poziomowymi; - `Chłopcy` / `Dziewczęta` w kontekstach, w których taki podział istnieje; - `Elektyw Marketing`, `Elektyw Finanse`, `Elektyw Analityka danych` w pakiecie przedmiotów do wyboru w szkolnictwie wyższym. **Zdecydowane zalecenie**: proszę tworzyć jedną grupę dla każdego jasnego celu dydaktycznego, nawet jeśli uczniowie bywają ci sami. Lepiej na przykład mieć grupy `Etyka` i `Religia` niż jedną ogólną grupę `Przedmioty do wyboru`. W przeciwnym razie czytanie planów lekcji, diagnostyka i łączenie grup z różnych klas szybko stają się niejednoznaczne. > _Premium_ #### Podgrupa: wydzielona część grupy **Podgrupa** to grupa podrzędna przypisana do grupy nadrzędnej. Przykład: - klasa jest podzielona na `Lab-A` i `Lab-B`; - następnie `Lab-A` zostaje podzielony na `Lab-A1` i `Lab-A2` dla dokładniejszych rotacji. ```mermaid flowchart TD C["Klasa 1 technikum"] A["Lab-A"] B["Lab-B"] A1["Lab-A1"] A2["Lab-A2"] B1["Lab-B1"] B2["Lab-B2"] B3["Lab-B3"] C --> A C --> B A --> A1 A --> A2 B --> B1 B --> B2 B --> B3 ``` Ważne konsekwencje: - podgrupy pozostają w obrębie klasy; - dziedziczą logikę swojej grupy nadrzędnej; - są przydatne przy kilku poziomach podziału; - mają sens tylko wtedy, gdy struktura pozostaje czytelna. Podgrupy są bardzo wygodne, gdy używa się ich także z podziałami klasy: - grupy A i B w podziale; - grupy A1 i A2 w podziale; - grupy B1, B2 i B3 w podziale. Automatycznie A1 i B3 są w podziale, podobnie A2 i B1 itd. Ta relacja wynika z połączonej logiki podziałów i relacji nadrzędna–podrzędna. Podgrupy to grupy przeciągnięte i upuszczone na grupę nadrzędną. Strona [Hierarchia grup](#page-core-concepts.group-hierarchy) opisuje szerzej zastosowania zaawansowane: odziedziczone podziały, odziedziczone ograniczenia czasowe i maski godzinowe. #### Podział klasy: rozdzielenie jednej klasy na wykluczające się grupy [Podziału klasy](#page-glossary.class-division) używa się między grupami **jednej klasy**, gdy uczniowie rozdzielają się na kilka wykluczających się grup. Ponieważ Omniscol jest oprogramowaniem do planowania z ograniczeniami, domyślnie przyjmuje się, że grupy mogą mieć co najmniej jednego wspólnego ucznia: zadeklarowanie podziału klasy między grupami znosi to ograniczenie. Wyraźnie: grupy należące do tego samego podziału nie są w konflikcie. Rzecz do zapamiętania: - każdy uczeń może należeć tylko do **jednej (albo do żadnej)** grupy podziału; - grupy te mogą wtedy mieć równolegle różne kursy; - Omniscol wie, że nie chodzi o konflikt ucznia. Przykłady: - `Lab-A` i `Lab-B` mają w tym samym czasie dwie różne lekcje laboratoryjne; - `Język hiszpański`, `Język niemiecki` i `Język włoski` dzielą ten sam przedział czasowy przeznaczony na przedmioty do wyboru; - `Grupa A` i `Grupa B` wymieniają się równoczesnymi aktywnościami w dwóch salach; - `Angielski zaawansowany`, `Angielski średni` i `Angielski podstawowy` mają równolegle trzy różne lekcje. ```mermaid flowchart LR subgraph CL["Klasa 7B"] E["Język hiszpański"] A["Język niemiecki"] I["Język włoski"] end E -. "podział" .- A A -. "podział" .- I E -. "podział" .- I ``` W obrębie jednej klasy podział klasy jest więc właściwym narzędziem, gdy trzeba wyrazić: „te grupy rozdzielają między siebie uczniów, można je umieścić równolegle”. Uwaga: Omniscol ma opcjonalny tryb pracy, w którym uczniowie są przypisywani wprost do klas i grup na poziomie planów lekcji. W takim przypadku podziały klasy mogą być wyprowadzane automatycznie (brak wspólnych uczniów między grupami = podział). ##### Podgrupy a podział klasy Przy podgrupach logika podziału propaguje się wzdłuż hierarchii. Jeśli `Lab-A` i `Lab-B` są w podziale, podgrupy `Lab-A` i podgrupy `Lab-B` dziedziczą ten rozdział między gałęziami. Przykład: - `Lab-A` i `Lab-B` są w podziale; - `Lab-A1` i `Lab-A2` są podgrupami `Lab-A`. Omniscol wie wtedy, że lekcja grupy `Lab-A1` nie wchodzi w konflikt z lekcją grupy `Lab-B`, bez konieczności ręcznego deklarowania każdej kombinacji. Jeśli natomiast `Lab-A` ma zostać podzielony na kilka gałęzi, które także rozdzielają między siebie uczniów, należy wyraźnie zdefiniować ten podział w hierarchii i w razie potrzeby jego własny podział klasy. #### Wyrównanie grup: wspólna lekcja dla kilku klas [Wyrównanie grup](#page-glossary.alignment) przydaje się, gdy kilka grup z **różnych klas** uczęszcza w rzeczywistości na **tę samą lekcję**, w **tym samym przedziale czasowym**, z **tym samym nauczycielem** i w **tej samej sali**. Klasyczny przykład: grupy `Etyka` z klas `6A`, `6B` i `6C` mają jedną wspólną lekcję etyki. ```mermaid flowchart LR subgraph A["Klasa 6A"] GA["Etyka"] end subgraph B["Klasa 6B"] GB["Etyka"] end subgraph C["Klasa 6C"] GC["Etyka"] end LESSON["Jedna wspólna lekcja etyki"] GA --> LESSON GB --> LESSON GC --> LESSON ``` Wyrównanie grup jest bardzo przydatne przy przedmiotach do wyboru i elektywach obejmujących kilka klas, ale jest sztywniejsze niż zwykła grupa: wszystko, co jest wyrównane, żyje razem. Ważny warunek: musi chodzić o **ten sam przedmiot** w klasach, których to dotyczy. Inaczej mówiąc: aby mieć wspólną lekcję dla kilku klas, klasy te muszą rzeczywiście mieć wspólny przedmiot wykorzystany przez tę lekcję. Przykład: - `Marketing` wspólny dla kilku klas: tak; - `Marketing B3` w jednej klasie i `Marketing M1 do wyboru` w innej: nie, o ile są to dwa odrębne przedmioty w strukturze planu lekcji. W szkolnictwie wyższym prowadzi to często do unikania przedmiotów nazbyt specyficznych dla jednego toku nauki, gdy wiadomo, że część lekcji będzie współdzielona. Lepiej przewidzieć przedmiot wspólny dla klas, które mają dzielić lekcje. Wyrównania grup lepiej pasują do szkół średnich: chodzi o tworzenie lustrzanych lekcji i wskazanie logiki dynamicznego łączenia. Wadą jest konieczność zachowania tego odbicia: trzeba utworzyć tyle lekcji, ile jest grup w wyrównaniu, z właściwymi grupami przypisanymi w każdej klasie, a wszystko musi być symetryczne: nauczyciel lub nauczyciele, sala, zasoby itd. Jeśli lekcja z grupą należącą do wyrównania zostanie umieszczona, w każdej klasie musi znaleźć się lustrzana lekcja z odpowiadającą jej wyrównaną grupą. Zaletą jest możliwość tworzenia złożonych lekcji przy użyciu wyrównań grup. Można mieć wspólną lekcję etyki w tygodniu A, a w każdej klasie inną, niepołączoną lekcję. Jeśli zalety nie rekompensują tych ograniczeń, lepiej rozważyć grupy grup. #### Grupa grup: wyraźne i modyfikowalne połączenie [Grupa grup](#page-glossary.groups-of-groups) służy do zebrania kilku grup w nazwanym, modyfikowalnym i wielokrotnie używanym połączeniu. Grupy grup używa się potem jak każdej innej grupy. Jest szczególnie przydatna: - w szkolnictwie wyższym i w kształceniu ustawicznym; - gdy skład połączenia może się zmieniać; - gdy struktura ma pozostać czytelna i możliwa do prześledzenia. Przykład: wspólne seminarium zbiera uczniów z `M1 Marketing`, `M1 Finanse` i `Elektyw Analityka danych`. Lekcje planuje się przy użyciu grupy grup, a później do przedsięwzięcia dołącza czwarta grupa: wystarczy dodać ją do grupy grup, aby wszystkie lekcje zostały z nią powiązane. Tak jak przy wyrównaniach grup, wspólne lekcje muszą opierać się na **wspólnym przedmiocie** w klasach, których to dotyczy. Grupa grup pozwala połączyć odbiorców; nie zastępuje spójności przedmiotu wykorzystanego do lekcji. Aby połączyć **całe klasy**, należy najpierw utworzyć w każdej klasie grupę, która reprezentuje tę całą klasę, a następnie użyć tych grup w wyrównaniu grup albo w grupie grup. Klas nie wyrównuje się wprost, bez pośrednictwa grup. #### Przypisanie kilku grup wprost do lekcji Można przypisać **kilka grup wprost do lekcji**, bez uprzedniego tworzenia nazwanej grupy grup. Jest to przydatne: - przy potrzebie doraźnej; - do szybkiego sprawdzenia połączenia; - przy wyjątkowej lekcji, która nie uzasadnia osobnej struktury. Nie jest to jednak najlepszy wybór jako podstawowy model: - w dłuższym czasie jest mniej czytelne; - jest trudniejsze do prześledzenia niż nazwane połączenie; - trudniej zrozumieć zamysł dydaktyczny, jeśli schemat ten często się powtarza. W praktyce: - do trwałego użytku lepiej wybrać wyraźną **grupę grup**; - przy potrzebie doraźnej bezpośrednie przypisanie kilku grup jest bardzo wygodne. ```mermaid flowchart LR subgraph X["Istniejące grupy"] G1["M1 Marketing - Elektyw Analityka danych"] G2["M1 Finanse - Elektyw Analityka danych"] G3["M2 Controlling - Elektyw Analityka danych"] end S["Doraźna lekcja z analityki danych"] G1 --> S G2 --> S G3 --> S ``` Nie należy natomiast mieszać na jednej lekcji **grupy nadrzędnej** i jednej z jej **podgrup**: zwykle nie jest to poprawny model odbiorców takiej lekcji. #### Tabela zbiorcza | Pojęcie | Zakres | Do czego służy | Przykład | | --- | --- | --- | --- | | [**Klasa**](#page-glossary.class) | Zbiór odniesienia | Przypisanie kursów, na które uczęszczają wszyscy | `5A`, `1 technikum`, `M1 Marketing` | | [**Grupa**](#page-glossary.group) | Część jednej klasy | Wydzielenie podzbioru uczniów | `Lab-A`, `Etyka`, `Język hiszpański` | | [**Podgrupa**](#page-core-concepts.group-hierarchy) | Część grupy | Doprecyzowanie już podzielonej organizacji | `Lab-A1`, `Lab-A2` | | [**Podział klasy**](#page-glossary.class-division) | Grupy z tej samej klasy | Rozdzielenie wykluczających się uczniów na równoległe lekcje | `Lab-A` / `Lab-B`, `Język niemiecki` / `Język hiszpański` | | [**Wyrównanie grup**](#page-glossary.alignment) | Grupy z różnych klas | Udział w jednej wspólnej lekcji | `Etyka` w kilku klasach | | [**Grupa grup**](#page-glossary.groups-of-groups) | Kilka grup, z tej samej lub z różnych klas | Zbudowanie wyraźnego i modyfikowalnego połączenia | Wspólne seminarium dla kilku ścieżek kształcenia | | **Wiele grup** | Kilka grup, z tej samej lub z różnych klas | Dynamiczne przypisanie kilku grup w locie | Doraźna lekcja dla różnych grup odbiorców | | [**Grupa wolna**](#page-glossary.free-group) | Otwarty skład | Zarządzanie niestałymi zapisami | Warsztaty, koło zainteresowań, zajęcia dodatkowe | #### Zobacz także - [Podziały klasy](#page-core-concepts.class-divisions) - [Wyrównania grup](#page-core-concepts.alignments) - [Grupy grup](#page-core-concepts.groups-of-groups) - [Hierarchia grup](#page-core-concepts.group-hierarchy) - [Grupy wolne](#page-core-concepts.free-groups) - [Przypadki użycia w szkolnictwie wyższym](#page-faq.higher-ed-cases) ### 2.3 Podziały klasy *Source: `help/pl/core-concepts/class-divisions.md` · id: core-concepts.class-divisions · Updated: 2026-05-20* **Podział klasy** deklaruje algorytmowi generowania, że kilka [grup](#page-glossary.group) z tej samej [klasy](#page-glossary.class) może mieć lekcje w **tym samym przedziale czasowym** bez konfliktu — ponieważ żaden uczeń nie należy do więcej niż jednej z tych grup. #### Dlaczego jest to konieczne — zasada „wszystko jest domyślnie konfliktem” Omniscol to oprogramowanie do planowania **z ograniczeniami**. Bezpośredni skutek: **wszystko, co może być źródłem konfliktu, jest domyślnie uznawane za konflikt**, o ile użytkownik nie wskaże wyraźnie inaczej. - Między **dwiema różnymi klasami**: z założenia nie ma wspólnych uczniów, więc nie ma konfliktu do zgłoszenia. (Kursy międzyklasowe / współdzielone modeluje się osobno, przez [wyrównania grup](#page-core-concepts.alignments) lub [grupy grup](#page-core-concepts.groups-of-groups).) - W obrębie **jednej i tej samej klasy** algorytm generowania nie ma **żadnej logicznej możliwości** odgadnięcia, które grupy mogą współistnieć w tym samym przedziale czasowym bez nakładania się na siebie. Traktuje więc dwie grupy tej samej klasy jako **mogące mieć wspólnych uczniów**. Bez zadeklarowanego podziału zaplanowanie dwóch lekcji w tym samym przedziale czasowym dla dwóch grup tej samej klasy powoduje konflikt. To autor planu lekcji ma **powiedzieć algorytmowi generowania**: „te grupy wzajemnie się wykluczają, można je planować jednocześnie”. Podział klasy jest właśnie taką deklaracją. Algorytm generowania postara się w miarę możliwości umieścić jednocześnie lekcje grup objętych podziałem, ale może mu się to nie udać z powodu innych ograniczeń (brak sali, niezgodne ograniczenia czasowe między nauczycielami lub kursami, wspólna jednostka — na przykład sala z określoną specjalizacją albo nauczyciel wspólny dla tych lekcji). W takim przypadku algorytm generowania wykryje, że część klasy nie ma lekcji, i zastosuje proporcjonalną karę (opcja domyślna: zmniejszanie luk dla uczniów), co skłoni go do zaplanowania tych lekcji na samym początku lub samym końcu dnia albo, jeśli to możliwe, w czasie przerwy obiadowej. #### Typowe zastosowania - **Grupy połówkowe alfabetyczne**: grupy A i B (według kolejności alfabetycznej lub losowania) — uczeń jest w jednej ALBO w drugiej, nigdy w obu. - **Grupy połówkowe według poziomu**: grupy Język angielski rozszerzony i Język angielski podstawowy; uczeń jest w jednej ALBO w drugiej. - **Grupy połówkowe według płci** (przypadek szczególny w niektórych placówkach, na przykład na wychowaniu fizycznym). - **Wykluczające się przedmioty do wyboru**: drugi język obcy — niemiecki, hiszpański albo francuski — uczeń wybiera **tylko jeden** z trzech języków. (Proszę dostosować przykład do własnego kontekstu; w szkolnictwie anglosaskim mówi się o *electives*.) - **Pakiety jednoczesnych przedmiotów do wyboru**: wachlarz przedmiotów do wyboru, w którym placówka postanawia zaplanować wszystkie w tym samym zablokowanym przedziale czasowym (`Piątek 14:00–16:00 = przedział na przedmioty do wyboru`), a uczniowie wybierają z pakietu swój przedmiot — wszystkie wykluczają się w tym sensie, że „uczeń uczęszcza tylko na jeden przedmiot”. - **Laboratoria w grupach połówkowych**: Laboratorium A i Laboratorium B w tym samym przedziale czasowym, w dwóch różnych salach i z dwoma nauczycielami. #### Tworzenie Kolejne kroki: 1. Proszę otworzyć stronę grup klasy (zakładka Grupy). 2. Proszę wybrać odpowiednie grupy. 3. Proszę kliknąć Dodaj podział. 4. Proszę zatwierdzić. W jednej klasie może współistnieć kilka podziałów: jeden dla laboratoriów przedmiotów przyrodniczych (Laboratorium A, Laboratorium B), jeden dla języków (Język niemiecki, Język hiszpański), jeden dla przedmiotów rozszerzonych (Filozofia rozszerzona, Historia rozszerzona, Matematyka rozszerzona). Każdy podział jest niezależny od pozostałych. Gdy grupa należy do podziału, na wszystkich odpowiednich ekranach pojawia się przy niej ikona [link-slash]. #### Zabezpieczenie domyślne: jedna grupa w jednym podziale Domyślnie interfejs stosuje proste zabezpieczenie: grupa należy tylko do jednego podziału. Jest to przypadek najczęstszy i pozwala uniknąć wielu błędów. Filtr ten można jednak znieść, gdy uzasadnia to faktyczny skład grup uczniów. Przykład: - tylko uczniowie z grupy `Język niemiecki` są również w grupie `Łacina`; - uczniowie z grupy `Język hiszpański` nie są w grupie `Łacina`. Można wówczas utworzyć: - podział `Język niemiecki` / `Język hiszpański`; - podział `Łacina` / `Język hiszpański`. Zyskiem jest większa swoboda algorytmu generowania w umieszczaniu pewnych lekcji w tym samym przedziale czasowym i zmniejszanie luk dla części klasy. Należy stosować to rygorystycznie: faktyczny przydział uczniów do grup musi być doskonale znany. #### Kryterium poprawności **Żaden uczeń nie może należeć do dwóch grup tego samego podziału.** Jest to matematyczna definicja podziału — zbiory są rozłączne. Jeśli uczeń występuje w dwóch grupach tego samego podziału, Omniscol zgłasza ostrzeżenie o niespójności (algorytm generowania nie może wysłać go w dwa miejsca jednocześnie). #### Skutek dla algorytmu Przy zadeklarowanym podziale algorytm generowania: - **zezwala** na jednoczesne planowanie grup objętych podziałem (podczas gdy w przeciwnym razie byłby to konflikt), - **nadal sprawdza pozostałe zasoby**: potrzeba tyle różnych sal, ile jest jednoczesnych grup, i tyle samo różnych nauczycieli. Podział znosi wyłącznie konflikt uczniów — nie konflikty sali i nauczyciela, które pozostają bezwzględne. #### Częsty błąd — trzy kursy w tym samym przedziale czasowym w jednej klasie Jeśli w jednej klasie mają się odbywać **trzy różne kursy jednocześnie** (filozofia rozszerzona, historia rozszerzona, matematyka rozszerzona), ponieważ uczniowie mają wykluczające się przedmioty do wyboru, proszę utworzyć **trzy grupy** (Filozofia, Historia, Matematyka) i objąć je podziałem. Nie trzy kursy bez grupy — w przeciwnym razie algorytm generowania nie będzie miał żadnej informacji o ograniczeniach jednoczesności i każdy z nich zostanie umieszczony osobno, w innych godzinach. #### Różnica wobec innej konstrukcji | Zamierzony cel… | Należy użyć | | --- | --- | | Kilka grup **tej samej klasy** w tym samym przedziale czasowym (różne kursy, rozłączni uczniowie) | **Podział klasy** (ta strona) | | Kilka grup z **różnych klas** w tym samym przedziale czasowym (ten sam kurs, ten sam nauczyciel, ta sama sala) za pomocą logiki wiążącej zwykłe grupy | [Wyrównanie grup](#page-core-concepts.alignments) | | To samo co wyrównanie, ale łatwo modyfikowalne później, dzięki utworzeniu samodzielnej jednostki grupującej | [Grupa grup](#page-core-concepts.groups-of-groups) | | Grupa o niezamkniętym składzie (warsztaty, zapisy otwarte) | [Grupa wolna](#page-core-concepts.free-groups) | #### Zobacz także - [Klasa, grupa, podgrupa](#page-core-concepts.classes-and-groups) - [Wyrównania grup](#page-core-concepts.alignments) - [Grupy grup](#page-core-concepts.groups-of-groups) - [Grupy wolne](#page-core-concepts.free-groups) - [Podział klasy](#page-glossary.class-division) ### 2.4 Wyrównania grup *Source: `help/pl/core-concepts/alignments.md` · id: core-concepts.alignments · Updated: 2026-05-20* **Wyrównanie** wiąże kilka [grup](#page-glossary.group) należących do **różnych klas**: muszą one mieć **tę samą lekcję**, w **tym samym przedziale czasowym**, w **tej samej sali**, z **tym samym nauczycielem**. Ważny warunek: wyrównanie musi opierać się w poszczególnych klasach na **tym samym przedmiocie**. Jeśli w dwóch klasach chodzi o różne przedmioty, choćby bardzo bliskie dydaktycznie, wyrównanie nie jest dobrym sposobem odwzorowania tej sytuacji. Mówiąc konkretnie: tam gdzie [podział klasy](#page-glossary.class-division) pozostaje wewnątrz jednej klasy, wyrównanie przebiega przez kilka klas. #### Zastosowania Wyrównania służą do tworzenia kursów wspólnych tam, gdzie kilka klas ma niewielką liczbę uczniów, których trzeba zgrupować (wyrównać) na jeden konkretny kurs, realizowany przez nich razem. Tak jest na przykład w przypadku: - **Uczniów łaciny** z klas 2A, 2B i 2C, którzy realizują kurs łaciny wspólnie. - **Przedmiotów do wyboru dla kilku klas** w liceum: wiedzy o społeczeństwie, historii sztuki, trzeciego języka obcego itp. - **Przedmiotów rozszerzonych**. - **Wspólnego trzonu kilku kierunków** w szkolnictwie wyższym: kursu wprowadzającego wspólnego dla kilku kierunków studiów magisterskich. Aby wyrównać **całe klasy**, należy najpierw utworzyć w każdej z nich grupę reprezentującą tę całą klasę, a następnie wyrównać te grupy. #### Tworzenie 1. Proszę najpierw utworzyć w każdej z wyrównywanych klas **jedną grupę**, najlepiej o identycznej nazwie (przykład: „Łacina” w klasie 2A, w 2B i w 2C). 2. Proszę przejść na zakładkę Wyrównanie grup. 3. Proszę kliknąć Dodaj wyrównanie i wybrać grupy z poszczególnych klas. Gdy grupa jest objęta wyrównaniem, pojawia się na wszystkich odpowiednich ekranach z ikoną powiązania [link]. #### Konsekwencje Po wyrównaniu grupa każdej klasy jest **powiązana** ze wspólnym kursem. W praktyce: - Lekcje muszą być tworzone w poszczególnych klasach w sposób lustrzany, w szczególności z **tym samym czasem trwania**, **tym samym nauczycielem** i ewentualnie **tą samą salą**. - Jeśli lekcja klasy z grupą w wyrównaniu zostanie umieszczona w danym dniu i o danej godzinie, to wszystkie pozostałe klasy objęte wyrównaniem muszą mieć tę samą lekcję w odbiciu lustrzanym, każda ze swoją odpowiadającą grupą w wyrównaniu, na tej samej pozycji. - Liczba godzin oraz sposób ich rozłożenia na lekcje z poszczególnymi grupami w wyrównaniu muszą być **całkowicie identyczne** w ramach danego przedmiotu — w przeciwnym razie Omniscol zgłasza niespójność w diagnostyce. - Każdą zmianę wprowadzoną w lekcji (przeniesienie, zmiana sali, zmiana nauczyciela, dodanie notatki) **trzeba powtórzyć** we wszystkich klasach objętych wyrównaniem (system próbuje odgadnąć, które lekcje są swoimi odbiciami lustrzanymi, aby odbywało się to możliwie automatycznie). #### Diagnostyka — częste niespójności Wyrównanie jest wrażliwe na rozbieżności. Typowe wyniki diagnostyki: - **Rozbieżna liczba godzin**: grupa „Łacina” klasy 3A ma 3 godzinne lekcje łaciny, a ta z klasy 3B ma 2. Albo ujednolica się liczbę godzin (3 wszędzie), albo rezygnuje się z wyrównania części z nich (2 godziny w wyrównaniu, jedna godzina na innej grupie łaciny, nieobjętej wyrównaniem). - **Inna sala w lekcji objętej wyrównaniem**: wyrównanie zakłada jedną wspólną salę. Jeśli ręcznie wymusi się dla lekcji jednej klasy inną salę, diagnostyka to zgłosi. - **Inny nauczyciel**: podobnie. #### Wskazówka — jedna grupa na kurs/przedmiot Ponieważ wyrównania są bardzo wrażliwe na wymóg tworzenia w doskonałym odbiciu lustrzanym, zdecydowanie zaleca się utworzenie jednej grupy na każdy objęty nimi przedmiot lub kurs w każdej z wyrównywanych klas. Inaczej mówiąc: nie należy wykorzystywać ponownie grupy ogólnej (typowo: grupy A/B) do różnych przedmiotów, na których opiera się rozbudowana logika wyrównań. W przeciwnym razie powstają niejednoznaczne wyrównania, których algorytm generowania nie potrafi rozstrzygnąć. Lepiej utworzyć grupy dedykowane, które można ze sobą powiązać bez obawy o niepożądane skutki uboczne. #### Zobacz także - [Klasa, grupa, podgrupa](#page-core-concepts.classes-and-groups) - [Podziały klas](#page-core-concepts.class-divisions) - [Grupy grup](#page-core-concepts.groups-of-groups) - [Kurs przekrojowy](#page-glossary.transverse-course) - [Wyrównanie grup](#page-glossary.alignment) ### 2.5 Grupy grup *Source: `help/pl/core-concepts/groups-of-groups.md` · id: core-concepts.groups-of-groups · Updated: 2026-05-20* **Grupa grup** to supergrupa, która zbiera kilka [grup](#page-glossary.group) — pochodzących z **tej samej klasy** albo z **różnych klas**. W ten sposób **łączy się kilka grup, aby miały jedną wspólną lekcję** — różne grupy uczniów tworzą w tym przedziale czasowym jeden skład. Inne programy do planowania używają dla tego samego pojęcia terminu „zgrupowanie”. Podobnie jak przy wyrównaniu grup, wspólne lekcje muszą opierać się na **wspólnym przedmiocie** w objętych klasach. W odróżnieniu od wyrównań grup, które wyrażają zależność między grupami, grupa grup jest samodzielną jednostką, której można używać jak grupy. Można ją traktować jako nazwany, dynamiczny pojemnik na grupy. #### Dlaczego jest to bardziej elastyczne niż wyrównanie grup | Aspekt | [Wyrównanie grup](#page-core-concepts.alignments) | **Grupa grup** | | --- | --- | --- | | Skład | Można go zmienić później, ale wymaga to tworzenia lekcji w odbiciu lustrzanym | Można go zmienić później bardzo łatwo | | Tryb planu lekcji | Dobrze dopasowany do trybu tygodniowego i cyklicznego w szkolnictwie średnim | Można go użyć we wszystkich typach planu lekcji; szczególnie wygodny, gdy zgrupowania się zmieniają | | Wyłączenie lekcji | Wymaga niewyrównanego klonu grupy | Bezpośrednia zmiana lekcji, której przynależność zostanie przypisana do jednej klasy; lekcje pozostałych objętych klas trzeba utworzyć ponownie | | Zastosowanie | Powtarzalny kurs wspólny, dla programu klas równoległych | Kursy przekrojowe, zgrupowania doraźne | Grupa grup jest przeznaczona dla szkolnictwa wyższego i kształcenia ustawicznego, gdzie: - skład zgrupowań często się zmienia (jedna ścieżka kształcenia dołącza do drugiej, podgrupa wydziela się na czas przedsięwzięcia), - kursy wspólne mają indywidualne daty, a nie powtarzalny rytm, - goście zewnętrzni i profesorowie wizytujący prowadzą lekcje dla mieszanego odbiorcy w konkretnych terminach. Grupa grup jest bardziej elastyczna i łatwiejsza do prześledzenia niż wyrównanie grup. Jej ograniczenie dotyczy złożonych lekcji, z niesymetryczną naprzemiennością tygodni. Wymaga jedynie dobrego uporządkowania nazw (na przykład: „Marketing przekrojowy — studia magisterskie”). #### Tworzenie i używanie Tworzenie odbywa się na zakładce Grupa grup planu lekcji. Grupę grup można przypisać do kursu **tak, jakby była zwykłą grupą** — różnica polega na tym, że skupia ona kilka grup składowych. Aby połączyć **całe klasy**, należy najpierw utworzyć w każdej klasie grupę reprezentującą tę całą klasę, a następnie użyć tych grup w swojej grupie grup. Kurs przypisany do grupy grup pojawia się we **wszystkich** klasach nadrzędnych grup składowych. Można go edytować z każdej z nich. Grupy grup pojawiają się na wszystkich odpowiednich ekranach z własną ikoną [sitemap]. #### Zmiana składu po fakcie Grupy składowe można dodawać i usuwać w dowolnym momencie. Już przypisane kursy dostosowują się automatycznie (zakres rozszerza się lub zawęża w zależności od dodanych / usuniętych grup). To właśnie stanowi wartość tego pojęcia: semestr można zacząć z jednym składem i korygować go w trakcie, nie naruszając struktury. #### Uwagi techniczne Technicznie lekcja z grupą grup jest zapisywana tylko raz, przekrojowo wobec klas, a więc nie jest przypisana do konkretnej klasy. Natomiast lekcja bez grupy grup (również taka z grupami wyrównanymi) jest zapisywana w swojej klasie. Przy wyrównaniu obejmującym 3 grupy zapisane są 3 lekcje, po jednej w każdej klasie; przy grupie grup zapisana jest jedna lekcja, poza klasami, ale wyświetlana w każdej z nich. Gdy grupa grup zostaje usunięta z lekcji, system odgaduje albo pyta, do której klasy lekcja ma należeć. Pozostałe pola lekcji łatwiej zmienić przy grupie grup niż przy wyrównaniu: jeden zapis pozwala natychmiast zmienić salę albo nauczyciela, bez przenoszenia zmiany „w odbiciu lustrzanym”. #### Scalanie niedostępności Grupa grup **scala niedostępności** wszystkich swoich grup składowych. Niedostępność ustawiona na **którejkolwiek** grupie składowej — albo na klasie tej grupy — obowiązuje dla wspólnej lekcji. Zasada ta działa zarówno przy generowaniu planu lekcji, jak i na ekranie w czasie edycji. Miękkie poziomy (Niepożądany, czerwony) scalają się w ten sam sposób; a gdy w jednym przedziale czasowym spotyka się kilka poziomów, **silniejszy ma pierwszeństwo** — poziom Niedostępny (czarny) wygrywa z poziomem Niepożądany (czerwony). Edytor i poziomy — zob. [Ograniczenia czasowe (zasady ogólne)](#page-core-concepts.time-constraints). Ponieważ grupa grup często przechodzi przez kilka klas, scalenie zbiera niedostępności **każdej objętej klasy**: klasa zamknięta w piątek po południu zamyka ten przedział czasowy dla każdej lekcji grupy grup, która ją obejmuje, nawet gdy pozostałe klasy pozostają wolne. ```mermaid flowchart TD CX["Klasa X — niedostępna w poniedziałek po południu"] --> GA["Grupa A (klasa X)"] CY["Klasa Y — niedostępna w piątek rano"] --> GB["Grupa B (klasa Y)"] GA --> GG["Grupa grup"] GB --> GG GG --> SE["Lekcja: niedostępna w poniedziałek po południu ORAZ w piątek rano"] ``` Na samej grupie grup aplikacja pokazuje **scalony podgląd tych niedostępności, bez możliwości zmiany**: wszystkie ograniczenia składowych widać od razu. **Zmienia się je na grupach składowych** (albo na ich klasach), tam gdzie mają własny sens — grupa grup nie ma osobnego edytora ograniczeń. > _Premium_ Każda grupa składowa wnosi **własne** ograniczenia grupy oraz te, które **dziedziczy** po swojej klasie i grupach nadrzędnych (zob. [Hierarchia grup](#page-core-concepts.group-hierarchy)). Scalenie przejmuje je wszystkie: im więcej składowych skupia grupa grup, tym węższe okno umieszczania. Aby ponownie otworzyć przedział czasowy wbrew odziedziczonemu ograniczeniu, poziom **Dozwolone lekcje** ponownie go dopuszcza lokalnie, bez zmiany źródła. Na ekranie te scalone ograniczenia widać **przy umieszczaniu**: proponowane przedziały czasowe i panel diagnostyki zgłaszają konflikt oraz wskazują **grupę składową** i **klasę**, które go wywołały, co pozwala dojść wprost do źródła (zob. [Konflikty i diagnostyka](#page-timetables.conflicts)). #### Instrukcja — Utworzenie grupy przekrojowej na wykład gościnny 1. **Wykład gościnny dla mieszanego odbiorcy** (uczniowie z trzech roczników, dwa elektywy): odpowiadające mu pojęcie Omniscol to **grupa grup**. 2. **Warunek wstępny**: grupy składowe istnieją już w swoich klasach. Proszę wskazać grupy do połączenia (`M1 Marketing`, `M1 Finanse`, `Elektyw Przedsiębiorczość`). 3. **Proszę otworzyć zakładkę** Grupa grup planu lekcji. Przycisk Dodaj grupę grup. Proszę nadać jej czytelną nazwę: `Wykład gościnny dr Kowalskiej — odbiorcy M1 + elektywy`. 4. **Proszę dodać grupy składowe**: należy wybrać z listy grupy z trzech klas / elektywów. Skład nie ma ograniczenia liczbowego. Grupy składowe nie muszą się wzajemnie wykluczać (w najgorszym razie uczeń, który należy do dwóch grup, zobaczy kurs tylko raz). 5. **Proszę utworzyć kurs** (wykład) z jednej z objętych klas i **przypisać mu grupę grup** tak, jakby była zwykłą grupą. Jeden wpis i kurs pojawia się we **wszystkich klasach nadrzędnych** grup składowych. 6. **Zmiany po fakcie**: jeśli skład się zmienia (jedna grupa się wycofuje, inna dołącza), proszę zmienić skład grupy grup — przypisane kursy dostosują się automatycznie (zakres rozszerzy się lub zawęzi). To właśnie odróżnia to pojęcie od klasycznego wyrównania grup (skład zamrożony). Zob. także [Wyrównania grup](#page-core-concepts.alignments) w przypadku trybu tygodniowego. #### Bardziej elastyczna alternatywa: bezpośrednie przypisanie kilku grup Czasami, przy lekcjach doraźnych, tworzenie osobnej grupy grup okazuje się uciążliwe. W takim przypadku, jeśli słabsze uporządkowanie danych nie jest przeszkodą, można przypisać do lekcji wprost kilka grup z jednej klasy lub z kilku klas. Wewnętrznie obsługa jest podobna do anonimowej grupy grup, z jednym zapisem przekrojowym wobec klas, ale nie trzeba się tym zajmować. #### Zobacz także - [Wyrównania grup](#page-core-concepts.alignments) - [Ograniczenia czasowe (zasady ogólne)](#page-core-concepts.time-constraints) - [Kurs przekrojowy](#page-glossary.transverse-course) - [Tryb kalendarzowy](#page-glossary.calendar-mode) - [Grupa grup](#page-glossary.groups-of-groups) ### 2.6 Hierarchia grup: grupy nadrzędne, podrzędne, odziedziczone ograniczenia *Source: `help/pl/core-concepts/group-hierarchy.md` · id: core-concepts.group-hierarchy · Audience: admin · Plan: premium · Updated: 2026-05-20* > **Premium** > **Funkcja Premium.** Hierarchia grup oraz ograniczenia czasowe grup > są zawarte w funkcjach Premium. > _Premium_ Poza płaskim modelem „klasa → grupy” Omniscol pozwala zorganizować grupy klasy w **hierarchię nadrzędno-podrzędną** i dołączyć do grup **ograniczenia czasowe**, które propagują się przez dziedziczenie. Jest to przydatne, gdy klasa dzieli się na kilka następujących po sobie poziomów podziału. #### Tworzenie hierarchii przez przeciąganie i upuszczanie Na stronie grup klasy przeciąganie i upuszczanie wyznacza hierarchię: - **Przeciągnięcie grupy na inną grupę** → grupa podrzędna zostaje przypisana do nadrzędnej. - **Przeciągnięcie grupy podrzędnej na początek listy grup** → grupa zostaje wyjęta z hierarchii i znów staje się bezpośrednią grupą klasy. Bez ograniczenia głębokości. Można budować łańcuchy nadrzędna → podrzędna → podrzędna drugiego poziomu, jeśli podział tego wymaga. #### Przykład wzorcowy Typowa hierarchia: ```mermaid flowchart TD C[Klasa 8A] A[A — grupa nadrzędna] A1[A1 — podrzędna wobec A] A2[A2 — podrzędna wobec A] B[B — grupa nadrzędna] B1[B1 — podrzędna wobec B] B2[B2 — podrzędna wobec B] C --> A C --> B A --> A1 A --> A2 B --> B1 B --> B2 ``` Zadeklarowane podziały: - `(A, B)` — A i B wykluczają się na poziomie nadrzędnym. - `(A1, A2)` — wewnątrz A grupy A1 i A2 wykluczają się. - `(B1, B2)` — wewnątrz B grupy B1 i B2 wykluczają się. **Automatyczny skutek**: Omniscol zezwala na jednoczesne planowanie grup należących do różnych gałęzi — na przykład `A1` i `B2` mogą być w tym samym przedziale czasowym, ponieważ żaden uczeń nie należy do obu (A1 ⊂ A, B2 ⊂ B, a A ∩ B = ∅). Nie trzeba ponownie deklarować podziału `(A1, B2)`: dziedziczenie wylicza go samo. #### Dziedziczenie ograniczeń czasowych Poza podziałami do grupy można dołączyć **ograniczenia czasowe** (dostępność, niekompatybilności). W hierarchii ograniczenia te **dziedziczą się** z grup nadrzędnych do podrzędnych — przez system **maski**, którą grupy podrzędne mogą nadpisać. ##### Przykład: przedział czasowy zarezerwowany na wychowanie fizyczne Typowy przypadek: - Klasa `8A` jest **niedostępna w poniedziałek po południu** (przedział czasowy zablokowany globalnie na aktywności zbiorowe). - Przez dziedziczenie **wszystkie grupy** klasy są niedostępne w poniedziałek po południu. - **Z wyjątkiem** grupy `Sport`: jej maskę **odwraca się**, aby dopuścić poniedziałek po południu i zamknąć całą resztę. Wszystkie aktywności sportowe tej grupy trafią wówczas automatycznie w ten chroniony przedział czasowy. Mechanizm jest skuteczny: **maska na grupie nadrzędnej plus wyjątek na podrzędnej** wystarczą, aby czysto opisać dedykowane przedziały czasowe bez powielania ograniczenia na każdym kursie. ##### Inny przykład: grupa nadrzędna `Elektywy` z dozwolonymi przedziałami czasowymi Inny bardzo przydatny przypadek: placówka chce, aby wszystkie elektywy trafiały wyłącznie w kilka zarezerwowanych przedziałów czasowych, na przykład: - poniedziałek rano, - środa przed godziną 10.00, - piątek rano. Można wtedy: - utworzyć grupę nadrzędną `Elektywy`, której samej nie przypisuje się do kursów; - wyrazić na tej grupie nadrzędnej dozwolone przedziały czasowe, klikając i przeciągając po siatce ograniczeń czasowych; - utworzyć pod nią tyle podgrup, ile potrzeba: `Elektyw Marketing`, `Elektyw Finanse`, `Elektyw Analityka danych` itd. Wszystkie te podgrupy dziedziczą wówczas te same dozwolone przedziały czasowe. Jeśli zasada się zmieni, wystarczy zmienić jedno miejsce: grupę nadrzędną `Elektywy`. ```mermaid flowchart TD E["Elektywy — grupa nadrzędna"] E1["Elektyw Marketing"] E2["Elektyw Finanse"] E3["Elektyw Analityka danych"] S["Dozwolone przedziały czasowe: poniedziałek rano, środa przed 10.00, piątek rano"] S --> E E --> E1 E --> E2 E --> E3 ``` ##### Zasady dziedziczenia - Grupa podrzędna **domyślnie dziedziczy** ograniczenia czasowe swojej grupy nadrzędnej. - Grupa podrzędna może **nadpisać** te ograniczenia: dodać własne lub odwrócić maskę. - **Podziały grupy nadrzędnej** stosują się automatycznie do grup podrzędnych: jeśli A i B są objęte podziałem, grupy podrzędne A wykluczają się z grupami podrzędnymi B bez jawnej deklaracji. ##### Odziedziczone ograniczenia a grupy grup Grupa może też być członkiem **grupy grup**. Jej ograniczenia — własne oraz odziedziczone po klasie i po grupach nadrzędnych — zostają wtedy **skonsolidowane** z ograniczeniami pozostałych grup członkowskich: lekcja grupy grup respektuje wszystkie te niedostępności razem. Dziedziczenie zstępuje więc po hierarchii, a konsolidacja łączy członków grupy grup. ```mermaid flowchart TD C["Klasa — niedostępna w poniedziałek po południu"] --> P["Grupa nadrzędna"] P --> E["Grupa podrzędna — dziedziczy po nadrzędnej"] E --> GG["Grupa grup"] M["Inna grupa członkowska (inna klasa)"] --> GG GG --> SE["Lekcja: skonsolidowane niedostępności"] ``` Szczegóły konsolidacji opisuje [Grupy grup](#page-core-concepts.groups-of-groups). #### Kiedy używać hierarchii - **Pakiety przedmiotów do wyboru**: klasa z językami zorganizowanymi w poziomy (Angielski zaawansowany > A1-Konwersacje, A1-Kultura, A2-…). - **Laboratoria z rotacją podgrup**: dwie grupy połówkowe na laboratorium, każda podzielona na podgrupy do poszczególnych ćwiczeń. - **Zróżnicowane ścieżki kształcenia**: ścieżka główna z odrębnymi modułami do wyboru, które planuje się w jej obrębie. - **Sport**: ogólna grupa obejmująca wszystkich uczniów, z dedykowaną maską na przedziały czasowe przeznaczone na sport. - **Elektywy w zarezerwowanych przedziałach czasowych**: grupa nadrzędna `Elektywy` określa dozwolone przedziały czasowe, a jej podgrupy odpowiadają rzeczywistym elektywom. #### Kiedy nie używać - W prostych klasach bez podziału hierarchicznego — hierarchia dodaje złożoności. - Do mieszania uczniów z różnych klas — służą do tego [wyrównania grup](#page-core-concepts.alignments) albo [grupy grup](#page-core-concepts.groups-of-groups), a nie hierarchia wewnątrz klasy. - Do zapisów otwartych — służą do tego [grupy wolne](#page-core-concepts.free-groups). #### Instrukcja — Zbudowanie hierarchii nadrzędno-podrzędnej 1. **Hierarchia grup** organizuje grupy klasy w relację nadrzędno-podrzędną, z **dziedziczeniem** ograniczeń czasowych. 2. **Proszę najpierw utworzyć grupy na jednym poziomie** na stronie grup klasy: `A`, `A1`, `A2`, `B`, `B1`, `B2` oraz przekrojową grupę `Sport`. Na tym etapie wszystkie są na tym samym poziomie, przypisane bezpośrednio do klasy. 3. **Hierarchizacja przez przeciąganie i upuszczanie**: proszę przeciągnąć `A1` na `A` → `A1` staje się grupą podrzędną wobec `A`. Tak samo dla `A2`, `B1`, `B2`. Powstają dwie gałęzie `A → A1, A2` i `B → B1, B2`. Bez ograniczenia głębokości. Aby wyjąć grupę podrzędną: proszę przeciągnąć ją na **początek listy** grup klasy. 4. **Proszę zadeklarować podziały**: `(A, B)` na poziomie nadrzędnym (wykluczają się), `(A1, A2)` wewnątrz A, `(B1, B2)` wewnątrz B. Nie trzeba ponownie deklarować `(A1, B2)`: Omniscol wylicza przez dziedziczenie, że `A1 ⊂ A` i `B2 ⊂ B` są zgodne (można je zaplanować w tym samym przedziale czasowym). 5. **Proszę nałożyć maskę nadrzędną**: na klasie należy zaznaczyć **poniedziałek po południu jako niedostępny**. Wszystkie grupy dziedziczą to automatycznie. Proszę sprawdzić, zaglądając do siatki ograniczeń czasowych każdej grupy: przedział czasowy jest wszędzie zablokowany. 6. **Proszę odwrócić maskę na grupie `Sport`**: na karcie grupy Sport należy odwrócić ograniczenie czasowe — dopuścić poniedziałek po południu, zamknąć całą resztę. Wszystkie aktywności sportowe trafiają automatycznie w ten dedykowany przedział czasowy, bez konieczności deklarowania go ponownie na każdym kursie. 7. **Hierarchia jest teraz aktywna**, z dziedziczeniem podziałów i dedykowaną maską godzinową. Algorytm generowania korzysta z niej przy generowaniu, a odziedziczone konflikty są zgłaszane w czasie rzeczywistym. #### Zobacz także - [Klasa, grupa, podgrupa](#page-core-concepts.classes-and-groups) - [Podziały klasy](#page-core-concepts.class-divisions) - [Grupy wolne](#page-core-concepts.free-groups) - [Dostępność, ograniczenia czasowe i niekompatybilności](#page-core-concepts.wishes-and-availability) ### 2.7 Grupy wolne *Source: `help/pl/core-concepts/free-groups.md` · id: core-concepts.free-groups · Plan: premium · Updated: 2026-05-12* > **Premium** > _Premium_ **Grupa wolna** to **półautonomiczna grupa robocza**: część klasy pracuje nad własnym zadaniem równolegle do lekcji głównej, często w tej samej sali i z tym samym nauczycielem — **grupa satelitarna** kursu. Umieszcza się ją na siatce godzin bez powodowania konfliktu, a jej skład nie musi być z góry ustalony. To **joker** w Omniscol: do użycia wtedy, gdy sztywny model klasa + podgrupy w podziale klasy nie pasuje. Występuje bardzo często w: - **szkołach artystycznych** (warsztaty z otwartymi zapisami, projekty międzyprzedmiotowe), - **projektach półautonomicznych** — niewielka grupa uczniów pracuje razem pod **lekkim** nadzorem nauczyciela, który zajmuje się głównie swoją klasą obok i regularnie zagląda, aby sprawdzić, jak im idzie, - **wykładach międzyklasowych**, kursach mistrzowskich, seminariach gościnnych, - **kursach wyrównawczych** i dobrowolnych **kołach zainteresowań**, - **projektach badawczych i krótkich praktykach** z otwartymi zapisami. #### Zachowanie Grupa wolna jest **przypisana do klasy** jak każda grupa, ma liczbę uczniów i — zależnie od konfiguracji konta — listę uczniów. Zmienia się natomiast sposób, w jaki Omniscol sprawdza konflikty. Na lekcji grupy wolnej Omniscol **wyłącza trzy rodzaje sprawdzeń**: - konflikt z resztą klasy w tym samym przedziale czasowym, - konflikt z inną lekcją tego samego nauczyciela, - konflikt z już zajętą salą. Właśnie to pozwala grupie wolnej działać jak **grupa satelitarna** na siatce godzin klasy głównej: lekcja główna się odbywa, a lekcja grupy wolnej umieszcza się równolegle, nie wywołując żadnego ostrzeżenia. Lekcje grupy wolnej **pojawiają się wyraźnie** w planie lekcji uczniów, których dotyczą, tak jak wszystkie inne lekcje. #### Kiedy wybrać grupę wolną, a kiedy grupę zwykłą | Sytuacja | Grupa zwykła | Grupa wolna | | --- | --- | --- | | Skład ustalony z góry | ✓ | ✓ (jak w zwykłej grupie: liczba uczniów, lista uczniów opcjonalna) | | Wykrywanie konfliktów klasy / nauczyciela / sali | ✓ rygorystyczne | — wyłączone | | Modelowanie przedmiotów do wyboru w podziale klasy | ✓ | — nie | | Lekcja satelitarna, równolegle do lekcji głównej | — | ✓ | #### Zalecana ostrożność — rzeczywiste ograniczenie > **Przede wszystkim: proszę wybierać prawdziwe podgrupy w > [podziale klasy](#page-core-concepts.class-divisions)**, kiedy to tylko > możliwe. Grupa wolna jest **jokerem używanym oszczędnie**, > zastrzeżonym dla przypadków, w których żadne inne czyste rozwiązanie > nie działa. Powód: równoległe umieszczanie musi w praktyce być **prowadzone przez autora planu lekcji**. Algorytm generowania nie ma żadnej możliwości, aby wiedzieć, że dana grupa półautonomiczna ma zostać zaplanowana **równolegle do konkretnej lekcji głównego kursu klasy**. Jeśli pozostawić mu swobodę, lekcje grupy wolnej mogą wypaść w dowolnym momencie — bez spójności z tym, co robi reszta klasy. **Dobra praktyka**: umieścić lekcję grupy wolnej ręcznie **w tym samym przedziale czasowym** co docelowa lekcja główna, a następnie **zablokować jej pozycję**, aby algorytm generowania już jej nie przesuwał. Patrz [Blokowanie lekcji](#page-timetables.lesson-lock). #### Tworzenie Przy tworzeniu grupy (na Dodaj grupę) proszę zaznaczyć opcję Grupa wolna. Grupy te są następnie oznaczone na listach ikoną [right-left], aby nie mylić ich ze zwykłymi grupami. #### Skutki wyłączenia konfliktów Konkretnie, na lekcji grupy wolnej: - jeśli Alice (uczennica tej klasy) uczęszcza na tę lekcję, podczas gdy w tym samym przedziale czasowym odbywa się inna lekcja główna dla reszty klasy, Omniscol **nie zgłasza ostrzeżenia** (choć w teorii jest ona oczekiwana w dwóch miejscach jednocześnie); - nauczyciel może zostać przypisany do innej lekcji w tym samym przedziale czasowym, również bez ostrzeżenia; - sala może być już zajęta przez lekcję główną, także bez ostrzeżenia. Ta tolerancja jest **świadomym wyborem**. Zapewnienie, że takie współistnienie ma sens dydaktyczny, należy do autora planu lekcji (typowo: nauczyciel zagląda tylko od czasu do czasu, aby sprawdzić, jak idzie grupie półautonomicznej; uczniowie z tej grupy wychodzą z lekcji głównej bez problemu; sala pomieści obie aktywności). #### Zobacz także - [Klasa, grupa, podgrupa](#page-core-concepts.classes-and-groups) - [Podziały klasy](#page-core-concepts.class-divisions) - [Blokowanie lekcji](#page-timetables.lesson-lock) - [Grupa wolna](#page-glossary.free-group) ### 2.8 Kursy, lekcje, typy lekcji *Source: `help/pl/core-concepts/lessons-and-types.md` · id: core-concepts.lessons-and-types · Updated: 2026-06-13* Trzy powiązane, ale odrębne obiekty, które w Omniscolu należy wyraźnie rozróżniać: **kurs** (abstrakcyjna jednostka dydaktyczna), **lekcja** (konkretne wystąpienie kursu, w określonym terminie) oraz **typ lekcji** (klasyfikacja: wykład, ćwiczenia, laboratorium…). #### Kurs **Kurs** to atomowa jednostka nauczania: przedmiot, klasa lub grupa, nauczyciel, sala, czas trwania, liczba wystąpień w tygodniu (albo kalendarz dat w trybie kalendarzowym). Przykład: *„Matematyka w klasie 6a, prowadzona przez pana Kowalskiego, 4 godziny tygodniowo w sali B204”.* Kurs zawiera **logikę dydaktyczną**: kto się czego uczy i z kim. To właśnie buduje się w module Zarządzanie planami lekcji. Patrz także definicja słownikowa: [Kurs](#page-glossary.course). #### Lekcja **Lekcja** to konkretne **wystąpienie** kursu, z datą i godziną. Na podstawie kursu *Matematyka w klasie 6a, 4 godz./tydzień* Omniscol generuje 4 lekcje tygodniowo w tygodniach objętych publikacją (na przykład poniedziałek 8:00–9:00, wtorek 10:00–11:00, środa 14:00–15:00, piątek 9:00–10:00). To lekcja jest widoczna w module Plany lekcji, na portalach i w eksportach iCal. To również na lekcji dokonuje się zmian punktowych: przeniesienia, odwołania, zastąpienia. To termin przyjęty w interfejsie dla jednostki umieszczanej na siatce godzin: tym, co się umieszcza, przenosi, blokuje, edytuje, odwołuje lub zastępuje, jest **lekcja** (albo „lekcja kursu”, gdy potrzebna jest większa precyzja). #### Typ lekcji **Typ lekcji** klasyfikuje każdy kurs poza samym przedmiotem: wykład, ćwiczenia, laboratorium, egzamin, tryb zdalny, wycieczka. Typ służy: - **logice działania** (egzaminu nie traktuje się tak samo jak ćwiczeń), - **statystykom** (godziny ćwiczeń a godziny wykładów w rozbiciu na nauczycieli), - **czytelności** (wyświetlanie w planach lekcji). Patrz [Typy lekcji (ćwiczenia, laboratorium, egzamin, wykład itd.)](#page-admin.lesson-types), aby poznać szczegóły zarządzania typami. #### Gdzie w strukturze znajdują się kursy W zależności od złożoności struktury klas kursy są przypisane albo **do swojej klasy** (przypadek standardowy), albo **przekrojowo wobec klas** (gdy używa się grup grup albo gdy jedna lekcja obejmuje jednocześnie kilka grup). Dla użytkownika dzieje się to niezauważalnie — Omniscol przełącza się automatycznie w zależności od struktury. Patrz [Grupy grup](#page-core-concepts.groups-of-groups). #### Kursy proste a złożone Kurs może być **prosty** (jeden nauczyciel, jedna klasa, jeden przedmiot, jedna sala, regularna powtarzalność) albo **złożony**: tygodnie naprzemienne A/B, łączenia (lekcje podwójne), skojarzenia (rotacja między grupami), współnauczanie (kilku nauczycieli). Patrz [Złożone lekcje](#page-core-concepts.complex-lessons). #### Zobacz także - [Lekcja / Godzina lekcyjna](#page-glossary.lesson) - [Typ lekcji](#page-glossary.lesson-type) - [Typy lekcji (ćwiczenia, laboratorium, egzamin, wykład itd.)](#page-admin.lesson-types) - [Złożone lekcje](#page-core-concepts.complex-lessons) ### 2.9 Złożone lekcje: naprzemienne, połączone, skojarzone, współnauczane *Source: `help/pl/core-concepts/complex-lessons.md` · id: core-concepts.complex-lessons · Updated: 2026-06-13* Wiele lekcji jest prostych: jedni uczniowie, jeden nauczyciel, jedna sala, powtarzający się przedział czasowy. Omniscol obsługuje jednak również bardziej wyrafinowane konfiguracje, które można ze sobą mieszać. Złożone lekcje to lekcje tej samej klasy powiązane ze sobą szczególną konfiguracją. Istnieje ich kilka rodzajów. #### 1. Lekcje naprzemienne (tygodnie A/B/...) Lekcje, które **nie powtarzają się co tydzień**, lecz występują naprzemiennie. Klasyczny przypadek: jedna lekcja w tygodniu A, druga w tygodniu B, w tym samym przedziale czasowym. Ta konfiguracja jest bardzo rozpowszechniona we Francji i w systemach szkolnych, które się na niej wzorowały, ale poza nimi bardzo rzadka. **Warunek wstępny**: proszę włączyć tygodnie naprzemienne w Ustawienia (moduł Administracja). Można wybrać sposób oznaczania (litery A/B/C albo cyfry 1/2/3). **Przesunięcie przez dni wolne**: naprzemienność można ustawić ponownie po okresie dni wolnych. Ustawia się to na osi tygodni na ekranie [rok szkolny](#page-admin.school-year). **Tworzenie**: 1. Proszę najechać kursorem na lekcję, która ma występować naprzemiennie. W prawym górnym rogu lekcji pojawi się ikona [plus] — proszę ją kliknąć. 2. Zostanie dodane wolne miejsce na kolejny tydzień naprzemienności. 3. Proszę utworzyć lekcję odpowiadającą temu nowemu miejscu. 4. Proszę umieścić ją w planie lekcji przyciskiem pinezki [thumbtack], a następnie kliknąć żądany przedział czasowy (dzień i godzinę) wśród kolorowych znaczników. Czynność tę można powtarzać, aby dodać kolejne tygodnie (naprzemienność na 3, 4 lub więcej tygodni). #### 2. Lekcje połączone (następujące po sobie) Dwie lekcje, które muszą **następować po sobie w ciągu dnia**, bez niczego pomiędzy. Typowe przypadki: - dwa następujące po sobie laboratoria dwóch różnych grup (nauczyciel na pewno przyjedzie na całe pół dnia), - wykład i następujące po nim ćwiczenia (wykład wprowadzający, potem ćwiczenia utrwalające), - podwójny blok egzaminacyjny. **Tworzenie**: proszę przeciągnąć jedną lekcję pod drugą w widoku podziału godzin. Obie lekcje zostaną wówczas zespolone i będą traktowane jako jeden blok. Połączyć można dowolnie wiele lekcji, ale oczywiście blok może się już nie zmieścić w siatce godzin, jeśli łączny czas trwania będzie zbyt długi. **Rozdzielanie**: po najechaniu kursorem między dwie połączone lekcje pojawia się przycisk „nożyczek”. Rozdziela on połączenie. **Dlaczego nie jedna, dłuższa lekcja?** Ponieważ obie lekcje mogą mieć: - różne **typy** (najpierw wykład, potem ćwiczenia), - różnych **nauczycieli** (nauczyciel etatowy na wykładzie, asystent na ćwiczeniach), - różne **sale**. Jeśli wszystkie atrybuty są identyczne, prościej jest wydłużyć jedną lekcję — łączenie daje swobodę w pozostałych przypadkach. #### 3. Lekcje skojarzone (naprzemienne grupy połówkowe) Dwie jednoczesne lekcje w **grupach połówkowych, które wymieniają się** między sobą, co daje w sumie cztery. Przypadek wzorcowy: ``` Przedział czasowy 1: grupa A — biologia, grupa B — fizyka Przedział czasowy 2: grupa A — fizyka, grupa B — biologia ``` Po dwóch przedziałach czasowych obie grupy połówkowe miały oba przedmioty, tylko w innej kolejności. Wymiana wymaga więc dwóch nauczycieli (jednego od biologii, jednego od fizyki), którzy się „rotują”. Ta konfiguracja jest dość rozpowszechniona w niższych klasach szkoły średniej we Francji i bardzo rozpowszechniona w krajach francuskojęzycznej Afryki. Gdzie indziej wydaje się znacznie rzadsza, choć można ją spotkać na przykład w Brazylii. **Tworzenie**: 1. Proszę utworzyć dwie [połączone](#2-lekcje-polaczone-nastepujace-po-sobie) lekcje (jedną pod drugą). 2. Proszę najechać kursorem na granicę między nimi: pojawi się przycisk Skojarzenie lekcji (tandem). 3. Proszę go kliknąć i wskazać **dwie grupy**, które mają się wymieniać. Najlepiej, aby obie grupy były zadeklarowane w klasie jako [podział klasy](#page-core-concepts.class-divisions). Można wyjść poza dwie lekcje i dwie grupy, ale ten przypadek pozostaje raczej teoretyczny niż spotykany w praktyce. #### 4. Współnauczanie Dwóch lub więcej nauczycieli prowadzących **tę samą lekcję**, w **tej samej sali**, **jednocześnie**. Typowe przypadki: - wzmocniona opieka dydaktyczna (nauczyciel etatowy + asystent), - *profesor wizytujący* w duecie z nauczycielem etatowym na kilku lekcjach, - moduł interdyscyplinarny (lekarz i informatyk na zajęciach „informatyka w ochronie zdrowia”), - dwóch nauczycieli etatowych przez cały semestr. **Tworzenie**: na ekranie przypisywania nauczycieli do kursu proszę wybrać **kilku nauczycieli**. Lekcja jest wliczana każdemu z nich do statystyk i godzin pracy. #### 5. Kombinacje Te złożoności można ze sobą **mieszać**. Przykłady: - **Naprzemienność + łączenie** — lekcja w tygodniu A to podwójny blok połączonych lekcji, a w tygodniu B — inny podwójny blok. - **Naprzemienność + współnauczanie** — tydzień A z nauczycielem etatowym, tydzień B z profesorem wizytującym (naprzemienność nauczycieli). - **Łączenie + skojarzenie** — naprzemienne grupy połówkowe na podwójnym przedziale czasowym (najczęstszy przypadek: laboratoria przedmiotów przyrodniczych w połówkach klasy). We Francji jest to typowy sposób zadeklarowania dodatkowych półgodzin języka francuskiego i matematyki, a jednocześnie rozwiązania problemu trzech godzin wychowania fizycznego (uzyskać średnio 1 godzinę dzięki 2 godzinom co drugi tydzień, obok 2 godzin w każdym tygodniu). | Tydzień A | Tydzień B | | --- | --- | | Język francuski | Wychowanie fizyczne | | Matematyka | Wychowanie fizyczne | #### Przypadki niestandardowe Jeśli dana potrzeba nie mieści się w żadnej z tych kategorii, proszę skontaktować się ze wsparciem Omniscol — najprawdopodobniej da się ją odwzorować, ale ustalenie najlepszego podejścia może wymagać niewielkiej pomocy. #### Instrukcja — Tworzenie laboratorium w skojarzonych grupach połówkowych 1. **Przypadek wzorcowy**: laboratorium przedmiotów przyrodniczych na dwóch przedziałach czasowych, w którym grupa połówkowa A ma biologię, a potem fizykę, podczas gdy grupa połówkowa B ma fizykę, a potem biologię. Łączenie + skojarzenie. 2. **Warunek wstępny**: w danej klasie proszę zadeklarować obie grupy połówkowe jako **podział klasy**, na przykład `(A, B)`. Patrz [Podziały klasy](#page-core-concepts.class-divisions). To właśnie pozwala Omniscolowi uznać je za wykluczające się, a więc wymienne. 3. **Proszę utworzyć pierwszą lekcję** (na przykład biologię dla grupy połówkowej A) na pierwszym przedziale czasowym, w widoku podziału godzin. Nauczyciele i sala od biologii. 4. **Proszę przeciągnąć drugą lekcję** (fizykę dla grupy połówkowej B) **bezpośrednio pod pierwszą** (w chwili upuszczenia lekcji pojawia się miejsce, a lekcja zostaje zespolona z pierwszą). 5. **Proszę najechać kursorem na granicę** między dwiema połączonymi lekcjami: pojawi się przycisk Skojarzenie lekcji (tandem). Proszę go kliknąć. Proszę wskazać dwie grupy (`A` i `B`), które mają się wymieniać. Omniscol automatycznie tworzy **rotację**: przedział czasowy 1 → A na biologii + B na fizyce; przedział czasowy 2 → A na fizyce + B na biologii. Dwóch nauczycieli jednocześnie, dwie sale, dwie rotujące grupy połówkowe, w sumie cztery lekcje. 6. **Korekta**: przycisk nożyczek między dwiema połączonymi lekcjami rozdziela skojarzenie. Można to także zestawić z **naprzemiennością A/B** (inne laboratorium w tygodniu A niż w tygodniu B) albo ze **współnauczaniem** (dwóch nauczycieli na tej samej lekcji). Pełny kontekst opisuje [Podział godzin i tworzenie lekcji](#page-timetables.hour-distribution). #### Zobacz także - [Lekcje naprzemienne](#page-glossary.alternate-lessons) - [Lekcje połączone](#page-glossary.concatenated-lessons) - [Lekcje skojarzone](#page-glossary.associated-lessons) - [Współnauczanie](#page-glossary.co-teaching) - [Podział godzin i tworzenie lekcji](#page-timetables.hour-distribution) ### 2.10 Kampusy, lokalizacje, sale, zasoby, wiele sal *Source: `help/pl/core-concepts/sites-rooms-resources.md` · id: core-concepts.sites-rooms-resources · Updated: 2026-06-13* Ta strona zbiera w jednym miejscu **organizacyjny i fizyczny** model placówki w Omniscol: które kampusy porządkują klasy, gdzie odbywają się lekcje, w jakich salach i z jakimi przenośnymi zasobami. > _Premium_ #### Kampusy — poziom organizacyjny [Kampus](#page-glossary.campus) pozwala rozróżnić kilka filii, wydziałów lub jednostek w obrębie jednego konta. To pojęcie organizacji wewnętrznej: służy do grupowania klas zgodnie ze strukturą placówki i ułatwia niektóre filtry. To pojęcie jest **opcjonalne**. Staje się szczególnie przydatne, gdy pojęcie lokalizacji nie pokrywa się dobrze z logiczną organizacją placówki albo gdy warto zachować oba równolegle. Kampus jest przekrojowy wobec lokalizacji. Lokalizacja opisuje raczej rzeczywistość geograficzną lub fizyczną: miejsce, siatkę godzin, sale, czasy przejazdu. Oba pojęcia nie muszą się na siebie nakładać. Właśnie wtedy stają się najbardziej przydatne. Na przykład: - wydział może korzystać z kilku lokalizacji; - jedna lokalizacja fizyczna może mieścić kilka kampusów lub jednostek; - kilka wydziałów może dzielić te same budynki; - kilka szkół jednej grupy może dzielić kilka lokalizacji krzyżowo; - kampus może służyć głównie jako filtr analityczny, bez wpływu na czasy przejazdu. Nawet jeśli kampus i lokalizacja pokrywają się niemal całkowicie, zachowanie obu może pozostać przydatne przy filtrach, grupowaniach i części analiz. Kampusy tworzy się w [ustawienia ogólne](#page-admin.parameters), poniżej poziomów klas. Można je następnie wskazać na klasach. Diagnostyka konfliktów może z nich korzystać, aby filtrować alerty według zakresu organizacyjnego. #### Lokalizacje — poziom geograficzny Każda [lokalizacja](#page-glossary.site) odpowiada odrębnemu miejscu fizycznemu lub geograficznemu. Co najmniej jedna lokalizacja jest obowiązkowa. Jeśli wszystkie lekcje odbywają się w tym samym miejscu, proszę utworzyć jedną lokalizację. Jeśli placówka działa w wielu lokalizacjach, a nauczyciele lub uczniowie przemieszczają się między nimi, proszę utworzyć tyle lokalizacji, ile potrzeba, **i wprowadzić czasy przejazdu** między nimi. Każda lokalizacja ma własną **siatkę godzin** (godziny początku i końca przedziałów czasowych, przerwy, obiad, zamknięcia) — lokalizacje mogą mieć różne siatki godzin (na przykład budynek główny i filia z innymi godzinami). Praca w wielu lokalizacjach to powszechna praktyka w **szkolnictwie wyższym** (wiele kampusów, filie regionalne), ale także w **szkolnictwie podstawowym i średnim** (szkoła podstawowa i liceum w jednym zespole szkół, w osobnych budynkach, szkoła z oddziałem przedszkolnym itd.). > Praca w wielu lokalizacjach nie jest objęta planem **Lite**. Jest > dostępna w planach wyższych. #### Wiele lokalizacji: zasady i czasy przejazdu Typowy przypadek: nauczyciel kończy lekcję w lokalizacji A o 10.00, musi być w lokalizacji B o 10.30, a przejazd zajmuje 15 minut. Przy siatce godzin z 30-minutową przerwą między lekcjami wszystko się zgadza. Przy przerwie trwającej tylko 10 minut — już nie. ##### Wprowadzanie czasów przejazdu Na ekranie **Lokalizacje** w module Zarządzanie planami lekcji przycisk Odległość między lokalizacjami otwiera okno, które przedstawia czasy przejazdu w postaci **trójkątnej półmacierzy**: N lokalizacji = N×(N−1)/2 pól do wypełnienia (bez przekątnej, bez duplikatów — macierz jest symetryczna). Proszę wpisać czasy w minutach dla każdej pary i zatwierdzić przyciskiem Zapisz. Bez tych danych algorytm generowania przyjmuje, że przejazd między lokalizacjami nie jest potrzebny — może więc teleportować nauczycieli, co w praktyce oczywiście nie działa. ##### Zasady dla nauczycieli: automatyczna zmiana lokalizacji **Nauczyciel** może zmieniać lokalizację automatycznie z jednej lekcji na następną — zajmuje się tym algorytm. Po stronie nauczyciela nie trzeba nic deklarować: wystarczy, że czasy przejazdu między lokalizacjami są wprowadzone. ##### Zasady dla klas: lokalizacja domyślna i wymuszenie ręczne **Klasa** jest domyślnie przypisana do jednej lokalizacji (lokalizacji zapisu). Wszystkie jej lekcje odbywają się domyślnie w tej lokalizacji. Można jednak **ręcznie przypisać salę z innej lokalizacji** do wybranej lekcji klasy — na przykład „lekcja wychowania fizycznego w sali gimnastycznej filii”. W takim przypadku: - **wskazana wcześniej sala** jest zachowywana przez algorytm (nie próbuje on zastąpić jej salą z domyślnej lokalizacji); - algorytm generowania liczy **czasy przejazdu** względem lekcji poprzedzających i następujących (zgodnie z ich lokalizacją: domyślnie lokalizacją klasy, a w przeciwnym razie lokalizacją sali wymuszonej na tych lekcjach). Jeśli na lekcji **nie wskazano żadnej sali**, algorytm wybiera salę z **lokalizacji klasy**. To wartość domyślna. ##### Ograniczenie blokujące, co do minuty Ograniczenie między lokalizacjami jest **blokujące** w algorytmie automatycznego generowania. Jeśli między końcem lekcji w jednej lokalizacji a początkiem lekcji w innej brakuje choćby jednej minuty, umieszczenie jest **odrzucane** — bez automatycznego złagodzenia. Sprawdzenie jest dokładne i opiera się na **rzeczywistej siatce godzin**: jeśli dwa przedziały czasowe następują po sobie z 15-minutową przerwą, a przejazd zajmuje 10 minut, wszystko się zgadza; jeśli przejazd zajmuje 16 minut — już nie. ##### Przerwa obiadowa przy zmianie lokalizacji Gdy zmiana lokalizacji wypada na przerwę obiadową, czas przejazdu jest **odejmowany od rzeczywistego dostępnego czasu obiadu**. Algorytm uwzględnia minimalny czas obiadu dla nauczycieli i dla uczniów (ustawiany po stronie lokalizacji); jeśli przejazd skraca ten czas poniżej minimum, umieszczenie jest odrzucane. Praktyczny wniosek: poprawne zadeklarowanie czasów przejazdu i czasu obiadu dla każdej lokalizacji pozwala uniknąć planów lekcji teoretycznie poprawnych, ale fizycznie niewykonalnych. ##### Skutki dla diagnostyki Jeśli przy umieszczeniach między lokalizacjami pojawia się komunikat „niemożliwe”, należy sprawdzić w pierwszej kolejności: - zadeklarowane **czasy przejazdu** (bez teleportacji i bez absurdalnego przeszacowania), - **przerwy między lekcjami** w siatce godzin, - ewentualną **przerwę obiadową** w danym przedziale czasowym, - **sale wskazane wcześniej**: jeśli klasa ma salę wymuszoną w innej lokalizacji, to ona wyznacza ograniczenie. Przy ręcznym umieszczaniu ograniczenie pojawia się na pomarańczowo i nadal można je wymusić. Jednak jeśli lekcje nie są zablokowane, późniejsze uruchomienie algorytmu automatycznego generowania przeniesie taką lekcję lub lekcje, aby rozwiązać ten konflikt. ##### Przykład zastosowania: aktywności poza placówką Poza stałymi kampusami mechanizm wielu lokalizacji w naturalny sposób obejmuje **powtarzalne aktywności poza placówką**: - **wizyta w hotelu lub restauracji** w szkole hotelarsko-gastronomicznej; - **wizyta w muzeum** lub pracowni w szkole artystycznej albo projektowej; - powtarzalne **wyjście do przedsiębiorstwa** (wizyty w ramach nauki dualnej); - **praktyka w terenie** w lokalizacji zewnętrznej (budowa, gospodarstwo rolne, laboratorium partnerskie). Dla każdego powtarzalnego miejsca zewnętrznego proszę utworzyć osobną lokalizację, z czasem przejazdu z lokalizacji głównej. Ograniczenie blokujące działa normalnie: jeśli przejazd nie mieści się w czasie dostępnym między dwiema lekcjami, umieszczenie jest odrzucane. ##### Dalsze informacje: szkolnictwo wyższe Praca w wielu lokalizacjach jest szczególnie częsta w szkolnictwie wyższym (wiele kampusów, filie regionalne, nauczyciele przemieszczający się między nimi). Przypadki szczególne (jeden plan lekcji na lokalizację dzięki planom lekcji publikowanym równolegle — w ramach Premium —, lokalizacje wirtualne dla wideokonferencji itd.) opisuje [Praca w wielu lokalizacjach w szkolnictwie wyższym](#page-higher-ed.multi-site). #### Sale — pomieszczenia [Sale](#page-glossary.classroom) są przypisane do lokalizacji, która nadaje im rzeczywistość fizyczną: miejsce, siatkę godzin, czasy przejazdu. Sala ma: - **nazwę**, - **pojemność** (liczbę uczniów; pole krytyczne dla algorytmu generowania), - opcjonalnie **[specjalizację](#page-glossary.classroom-specialization)** (dowolna etykieta: chemia, informatyka, sport…), - opcjonalnie **maksymalną liczbę klas jednocześnie**, dla **[dużych sal](#page-glossary.large-room)**, które mogą pomieścić kilka lekcji równolegle (sala egzaminacyjna, sala gimnastyczna, pływalnia, przestrzeń na zewnątrz); to pole pojawia się dopiero po ustawieniu specjalizacji, - opcjonalnie **tagi** lub dowolne komentarze, - opcjonalnie **budynek**, - opcjonalnie odrębne **godziny otwarcia**. ##### Wiele sal: jedna lekcja w kilku salach Omniscol **obsługuje** przypisanie kilku sal do tej samej lekcji. Przykłady zastosowania: - **Egzaminy w podzielonych salach wykładowych** — egzamin dla 200 kandydatów rozdzielony na trzy sale wykładowe (pojemność 70 + 60 + 80) z jednym odpowiedzialnym nauczycielem. Pojemność całkowita jest liczona jako **suma** przypisanych sal. - **Transmitowany wykład** — wykład w głównej sali wykładowej, przekazywany przez wideokonferencję do sali satelickiej (w innej lokalizacji, a nawet dla klasy uczącej się w pełni zdalnie). - **Podzielone laboratorium** — laboratorium dla 30 uczniów rozdzielone na dwie sąsiednie sale (15 + 15), z tym samym nauczycielem, który krąży między nimi. Zastrzeżenie: jeśli suma pojemności pozostaje **mniejsza** od liczebności grupy, Omniscol pokazuje konflikt. To administrator decyduje, jak go rozwiązać (dodając salę, zmniejszając grupę albo akceptując konflikt, jeśli jest zamierzony — na przykład gdy wiadomo, że nie przyjdą wszyscy zapisani). ##### Specjalizacje sal **[Specjalizacje](#page-glossary.classroom-specialization)** (chemia, informatyka, sport, sala gimnastyczna, multimedia, sala do nauki pod nadzorem) to opcjonalne, **dowolne** etykiety określane przez placówkę. Tworzy się specjalizacje odpowiadające własnej nomenklaturze, aby wyróżnić sale przeznaczone do konkretnych lekcji (sala gimnastyczna na sport, pływalnia na naukę pływania, laboratorium na lekcję chemii itd.). Algorytm generowania przestrzega specjalizacji bezwzględnie: jeśli przedmiot wymaga „chemii”, zostaną użyte wyłącznie sale z dokładnie tą specjalizacją. Każda sala ma **najwyżej jedną specjalizację**. Dla sali wielofunkcyjnej, służącej dwóm specjalistycznym zastosowaniom, należy użyć etykiety zbiorczej (na przykład „informatyka-multimedia”) i przypisać tę samą etykietę przedmiotom, których to dotyczy. Zobacz [Specjalizacje sal](#page-core-concepts.classroom-specializations). ##### Sala dedykowana klasie Wiele konfiguracji w szkolnictwie podstawowym i średnim przypisuje jedną salę do każdej klasy (lekcje odbywają się tam domyślnie, przemieszczają się tylko nauczyciele). Ustawia się to na klasie — algorytm nadaje wtedy tej sali priorytet dla lekcji klasy (wyższy niż preferowanej sali nauczyciela, jeśli została określona). ##### Sale w dwóch lokalizacjach wirtualnych Jeśli jednemu miejscu fizycznemu odpowiadają dwie lokalizacje wirtualne (typowo szkoła podstawowa i liceum dzielące te same pomieszczenia), sala może należeć tylko do jednej lokalizacji naraz. Aby można było jej używać w obu kontekstach, należy ją zduplikować w obu lokalizacjach i wprowadzić wzajemnie wyłączne godziny otwarcia („wolna przed południem dla szkoły podstawowej, po południu dla liceum”), co zapobiega podwójnym przypisaniom. #### Zasoby — elementy przenośne [Zasób](#page-glossary.resource) to **przenośny** element, który nie jest przypisany do konkretnej sali: trzy przenośne projektory, walizka tabletów, zestaw mikrofonów itd. Każdy zasób ma: - **nazwę**, - **dostępną ilość** (walizka liczy się jako 1, a nie 30 — proszę wpisać liczbę walizek, nie pojedynczych tabletów). Algorytm generowania gwarantuje, że w tym samym przedziale czasowym liczba lekcji wymagających danego zasobu nie przekroczy dostępnej ilości. Nie ma sensu modelować zasobów, których „zawsze wystarcza” — należy to robić tylko dla rzeczywistych wspólnych limitów. #### Przypadek szczególny — wideokonferencje i linki przy kursie Format lekcji — stacjonarny, zdalny, hybrydowy lub samokształcenie — wynika z jej **[trybu](#page-glossary.lesson-modality)** (Premium): to on decyduje, czy lekcja zajmuje salę fizyczną. Dla kursu zdalnego lub hybrydowego można dołączyć do kursu **link do wideokonferencji** (Zoom, Teams, Meet…). Zobacz [Linki do wideokonferencji dla kursów](#page-higher-ed.videoconference-links). To rozwiązanie bardziej precyzyjne niż link do wideokonferencji na klasie, który jest ogólnym linkiem domyślnym dla wszystkich lekcji. #### Zobacz także - [Specjalizacja sali](#page-core-concepts.classroom-specializations) - [Lokalizacje, siatki godzin, sale, zasoby](#page-timetables.sites-rooms) - [Egzaminy w wielu salach w szkolnictwie wyższym](#page-higher-ed.multi-room-exams) - [Linki do wideokonferencji dla kursów](#page-higher-ed.videoconference-links) - [Tryb](#page-glossary.lesson-modality) ### 2.11 Siatka godzin, przedziały czasowe i czasy trwania *Source: `help/pl/core-concepts/timetable-grid.md` · id: core-concepts.timetable-grid · Audience: admin/teacher/staff · Plan: standard · Updated: 2026-07-17* **Siatka godzin** opisuje przedziały czasowe lokalizacji: godziny rozpoczęcia, godziny zakończenia, przerwy, przerwę obiadową i zamknięcia. Służy jednocześnie wyświetlaniu, kontroli dostępności i generowaniu planu lekcji. #### Standardowy zapis: przedział czasowy, a nie wpisana godzina Domyślnie umieszczona lekcja jest powiązana z **przedziałem czasowym siatki**. Omniscol zachowuje położenie w siatce, a następnie przelicza wyświetlane godziny na podstawie siatki godzin lokalizacji. Praktyczna konsekwencja: jeśli dzwonek na początek lekcji przesunie się kiedyś z `08:15` na `08:10`, lekcje umieszczone w tym przedziale czasowym dostosują się do nowej siatki — bez potrzeby zmieniania każdej lekcji po kolei. #### Tryb wyświetlania siatki godzin **Tryb wyświetlania** decyduje o postaci kolumny godzin, nie zmieniając niczego w umieszczeniu lekcji: - **Godziny lekcji** — każdy wiersz pokazuje rzeczywiste godziny przedziału czasowego (8.15 – 9.10, 9.15 – 10.15…), zgodnie z siatką godzin lokalizacji. - **Numery godzin** — każdy wiersz ma numer kolejnej godziny (P0, P1, P2…), konwencja rozpowszechniona w szkołach anglosaskich. - **Kalendarz** — wyświetlanie kalendarzowe w pełnych godzinach (8.00, 9.00, 10.00…), niezależne od siatki: każda lekcja trafia na swoją rzeczywistą godzinę na ciągłym tle czasowym. #### Czas trwania przedziału czasowego Podstawowym czasem odniesienia w siatce godzin jest **czas trwania przedziału czasowego**. Może obejmować przerwę międzylekcyjną, jeśli szkoła tak to liczy. Przykłady: - lekcje 55-minutowe z 5-minutową przerwą międzylekcyjną: czas trwania przedziału czasowego `60` minut; - regularne lekcje 1,5-godzinne: czas trwania przedziału czasowego `90` minut; - lekcje w większości godzinne, z kilkoma lekcjami 1,5-godzinnymi: czas trwania przedziału czasowego `60` minut i dopasowany podział. Ten czas służy do skonfigurowanych wymiarów godzin i do generowania. Rzeczywiste godziny rozpoczęcia i zakończenia mogą się w siatce różnić: przerwa może sprawić, że wyświetlany przedział czasowy trwa 55 minut, pozostając powiązany z czasem odniesienia 60 minut. To ustawienie definiuje się na zakładce **Ogólne** w edycji planu lekcji (zob. [Ustawienia ogólne](#page-timetables.general-settings)). Typowe czasy trwania, w kolejności popularności, to: 60, 45, 50, 120, 90, 30, 180. Czasem w szkolnictwie wyższym lekcje trwają zawsze po kilka godzin, ale mogą się rozpoczynać dowolnie o 8.00 albo o 9.00, albo trwać 6, a czasem 5 godzin. W takim przypadku przeważa największy wspólny dzielnik — zwykle będzie to czas trwania przedziału czasowego 60 minut. #### Podział przedziału czasowego O tym, na ile części można podzielić czas trwania przedziału czasowego, decyduje **podział przedziału czasowego**. To minimalny krok czasowy. Oto kilka przykładów: - `1`: wyłącznie lekcje o pełnym czasie trwania przedziału czasowego; - `1/2`: krok 30 minut, jeśli czas trwania przedziału czasowego wynosi 60 minut; - `1/4`: krok 15 minut, jeśli czas trwania przedziału czasowego wynosi 60 minut. Proszę wybrać najprostszą dokładność, która pokrywa rzeczywiste potrzeby. Drobniejszy podział daje więcej swobody, ale zwiększa liczbę możliwości do sprawdzenia przy generowaniu. W interfejsie to ustawienie reguluje się na zakładce **Ogólne** przez Podział przedziału czasowego. W większości systemów szkolnych na świecie siatka godzin nie jest w ogóle dzielona. W Polsce lekcja trwa zwykle 45 minut i podział nie jest potrzebny; `1/2` przydaje się tam, gdzie obok lekcji godzinnych występują bloki 1,5-godzinne. W niektórych ośrodkach szkoleniowych dokładność schodzi do 10 minut: czas trwania przedziału czasowego wynosi wtedy 60 minut, a podział `1/6`. #### Pozycja i czas trwania: zapis w krokach czasowych Lekcja nie jest zapisywana z godzinami „na sztywno”, lecz jako **liczba kroków czasowych** na siatce. **Krok** to czas trwania przedziału czasowego podzielony przez podział: czas trwania przedziału czasowego 60 minut z podziałem `1/2` daje krok 30 minut. Lekcja godzinna zajmuje wtedy 2 kroki, a lekcja 1,5-godzinna — 3. Współistnieją trzy pojęcia, których nie należy mieszać: - **czas odniesienia** (czas trwania przedziału czasowego) służy do liczenia wymiarów godzin i do **wyświetlania czasu trwania** lekcji; - **rzeczywiste godziny** wyświetlane (rozpoczęcia i zakończenia) pochodzą z **siatki godzin lokalizacji**, dla każdego przedziału czasowego osobno; - **zapis** odbywa się w **krokach czasowych**, z dokładnością podziału. Dlatego ten sam przedział czasowy może pokazywać 8.15 – 9.10 (godziny rzeczywiste), licząc się jednocześnie za 1 godzinę (czas odniesienia). #### Globalne zakazy przedziałów czasowych Niektóre przedziały czasowe muszą pozostać **zakazane dla całej szkoły**: popołudnie wolne dla wszystkich, przedział czasowy na zebrania, zarezerwowana pora. Takie zakazy nakłada się **wprost na siatkę godzin lokalizacji**, oznaczając przedział czasowy jako **niedostępny**: żadna lekcja nie zostanie tam umieszczona, ani przy wyświetlaniu, ani przy generowaniu. To **ograniczenie czasowe zapisane w siatce godzin**. Ten sam mechanizm pozwala też, na kontach Premium, na miękkie ograniczenia (przedziały czasowe do unikania, bez ich zamykania). Zob. [Ograniczenia czasowe (zasady ogólne)](#page-core-concepts.time-constraints). #### Przerwa obiadowa i przesunięcia Przerwę obiadową opisuje **zakres** (na przykład 12.00 – 14.00) oraz **czas trwania** obiadu, który trzeba zachować. Gdy czas do zachowania jest **krótszy** niż zakres, Omniscol pozwala umieścić lekcję **na części** przerwy, dopóki czas na obiad pozostaje możliwy — przed wstawioną lekcją albo po niej. Bardzo często przerwa obiadowa trwa dwie godziny, ale wolno umieścić w niej lekcję godzinną: zwykle przedmioty do wyboru, na których nie ma całej klasy, albo kursy przekrojowe, w których trudno zgrać kilka klas. Części klasy, które nie mają wtedy lekcji, nie są uznawane za pozostawione pod opieką (dla algorytmu to nie jest luka). Przerwa obiadowa jest też jedynym przypadkiem, w którym nieregularny przedział czasowy jest traktowany jako inny zestaw kroków czasowych. Przy kroku czasowym 30 minut, czasie trwania przedziału czasowego 1 godziny i zakresie przerwy od 12.00 do 13.30 program uznaje, że chodzi o 3 × 30 minut. Można zadeklarować albo jeden przedział czasowy 1,5-godzinny, albo 1 godzinę + 30 minut, albo 30 minut + 1 godzinę — to bez znaczenia. W takim układzie lekcje popołudniowe są przesunięte o pół godziny. Jeśli zadeklaruje się wtedy minimalny czas obiadu wynoszący pół godziny, zostaje możliwość umieszczenia godzinnej lekcji na przerwie, a objęci nią uczniowie jedzą obiad albo przed lekcją, albo po niej. Można też wskazać, że **stołówka otwiera się tuż przed** oficjalną przerwą: „luka” w tym przedziale czasowym nie liczy się wtedy jako czas stracony dla uczniów. Najważniejsze jest odwzorowanie zamierzonej zasady: przedziały czasowe otwarte, przedziały czasowe zamknięte, elastyczna przerwa obiadowa, dostępność lub niedostępność. Siatka godzin musi odzwierciedlać to, na co szkoła rzeczywiście się zgadza. ##### Przesunięcie posiłków według poziomu, aby rozładować stołówkę Gdy stołówka nie jest w stanie przyjąć całej szkoły naraz, poziomy rozkłada się na **dwie kolejne tury**. Siatka godzin zawiera **tylko jedną** wspólną przerwę obiadową; przesunięcie ustawia się następnie **klasa po klasie** przy pomocy ograniczeń czasowych. 1. Na siatce godzin lokalizacji proszę zadeklarować przerwę obiadową na **całym** zakresie — na przykład **12.00 – 14.00** — z **godzinnym czasem obiadu do zachowania**. Rozpatrywana osobno, każda klasa mogłaby wtedy jeść obiad albo w 12.00 – 13.00, albo w 13.00 – 14.00. 2. Aby **ustalić** turę każdego poziomu, proszę otworzyć ograniczenia czasowe klasy (Ograniczenia czasowe klasy) i pomalować na czarno — poziom **Niedostępny** — połowę przedziału czasowego zarezerwowaną na jej posiłek. Generowanie nie umieści tam żadnej lekcji: ten moment jest zagwarantowany na obiad, a lekcje klasy przechodzą na drugą połowę przedziału czasowego. Przy dwóch turach: - **klasy 4, 5 i 6** — niedostępne w **12.00 – 13.00**: jedzą obiad w pierwszej turze, a ich lekcje trafiają na 13.00 – 14.00. - **klasy 7 i 8** — niedostępne w **13.00 – 14.00**: jedzą obiad w drugiej turze, a ich lekcje trafiają na 12.00 – 13.00. Stołówka przyjmuje w ten sposób dwa osobne strumienie zamiast jednego. Ta sama zasada rozciąga się na trzy tury i więcej: proszę poszerzyć zakres obiadowy, a następnie pomalować dla każdego poziomu przypadającą mu część przedziału czasowego na posiłek. Edytor ograniczeń jest opisany szczegółowo w [Ograniczenia czasowe (zasady ogólne)](#page-core-concepts.time-constraints). > _Premium_ #### Niestandardowe godziny lekcji Lekcja może otrzymać **niestandardową godzinę**: dokładne rozpoczęcie i zakończenie, które nie muszą odpowiadać dokładnym granicom przedziału czasowego. Taki przypadek występuje we wszystkich typach planu lekcji. Lekcja wyświetla się poza siatką, z rzeczywistymi godzinami: może zaczynać się lub kończyć poza granicami wyświetlanego przedziału czasowego. Omniscol używa tych niestandardowych godzin do obliczenia jej rzeczywistego nakładania się. Każda jednostka przypisana do kursu — nauczyciel, sala, klasa, grupa lub zasób — jest uznawana za zajętą, gdy tylko niestandardowa godzina zahacza o przedział czasowy. Przy generowaniu lekcja z niestandardową godziną jest traktowana jako nieprzesuwalna: jej pozycja jest blokowana automatycznie. > _Premium_ #### Klasa poza siatką **Klasa poza siatką** to inny przypadek: lekcje klasy są zapisywane z dokładnymi godzinami, niezależnie od siatki godzin lokalizacji. Ta funkcja dotyczy tylko planów lekcji typu kalendarz. Służy przede wszystkim kształceniu ustawicznemu i bardzo elastycznym programom, które dzielą pomieszczenia i nauczycieli z kształceniem w trybie dziennym, nie trzymając się tej samej siatki godzin. Szkoła wybiera wtedy domyślny krok czasowy, na przykład kwadrans, a lekcje są zapisywane z godzinami rozpoczęcia i zakończenia. > _Premium_ #### Niestandardowe czasy trwania Kurs może też mieć **niestandardowe czasy trwania**: - **Obliczony czas trwania**: czas wynikający z niestandardowych godzin kursu; - **Rzeczywisty czas trwania**: czas używany w pierwszej kolejności w panelach zarządczych; - **Czas rozliczeniowy**: czas używany do fakturowania lub do wynagrodzenia nauczyciela. Przykład: egzamin zajmuje salę od `08:30` do `11:30`, bo trzeba ją wcześniej przygotować, a później zwolnić. Panel zarządczy może liczyć tylko 2 godziny egzaminu jako rzeczywisty czas trwania, podczas gdy czas rozliczeniowy nauczyciela nadzorującego może być wyższy, jeśli szkoła ujmuje w nim rekompensatę za sprawdzanie prac. #### Zobacz także - [Ustawienia ogólne](#page-timetables.general-settings) - [Lokalizacje, siatki godzin, sale, zasoby](#page-timetables.sites-rooms) - [Lekcje poza siatką](#page-timetables.off-grid-lessons) ### 2.12 Specjalizacje sal *Source: `help/pl/core-concepts/classroom-specializations.md` · id: core-concepts.classroom-specializations · Updated: 2026-06-13* Nie wszystkie sale są sobie równe: laboratorium chemiczne nie przyjmie lekcji wychowania fizycznego, sala informatyczna ma sens tylko dla przedmiotów korzystających z jej stanowisk, a sala gimnastyczna jest zastrzeżona dla sportu. **Specjalizacja sali** w Omniscol pozwala zadeklarować te powiązania, aby generowanie planu lekcji i diagnostyka uwzględniały ograniczenia fizyczne. #### Jak to działa: etykieta wspólna dla sal i przedmiotów Specjalizacja opiera się na **dowolnej etykiecie**, określanej przez placówkę zgodnie z jej własną nomenklaturą, która wiąże dwie deklaracje: - **Po stronie sali** — każda sala ma **najwyżej jedną specjalizację** („chemia”, „informatyka”, „sala gimnastyczna”…). Większość sal nie ma żadnej. - **Po stronie przedmiotu** — przedmiot przypisany do klasy może wymagać sali specjalistycznej poprzez swoje pole Sala specjalistyczna. Wartość musi **dokładnie** odpowiadać etykiecie przypisanej do co najmniej jednej sali. Powiązanie jest ścisłe w obie strony: przedmiot wymagający etykiety „chemia” zostanie umieszczony wyłącznie w sali z tą etykietą, a sala specjalistyczna jest **zastrzeżona** dla przedmiotów, które jej etykiety wymagają — nie wykorzystuje się jej na zwykłe kursy. **Pojemność** sali pozostaje osobnym sprawdzeniem: niezależnie od specjalizacji przewidywana liczba uczniów musi się w niej pomieścić. #### Wpływ na generowanie Podczas generowania algorytm rozważa dla każdego kursu wyłącznie sale **zgodne**: z etykietą specjalizacji wymaganą przez przedmiot (jeśli taka jest) i z pojemnością wystarczającą dla liczby uczniów. Jeśli żadna zgodna sala nie jest dostępna, generowanie to zgłasza, a diagnostyka wskazuje przedmiot, klasę i specjalizację, o które chodzi. Rozstrzygnięcie pozostaje po stronie administratora: dodać etykietę do innej sali, znieść wymóg zapisany na przedmiocie albo zweryfikować liczebność grup. #### Sale wielofunkcyjne Sala ma tylko **jedną** etykietę specjalizacji. Dla sali, która musi służyć dwóm specjalistycznym zastosowaniom — na przykład informatyce i multimediom — należy utworzyć etykietę zbiorczą („informatyka-multimedia”) i wskazać tę samą etykietę na wszystkich przedmiotach, których to dotyczy. #### Sale ogólne Sale **ogólne** (bez specjalizacji) przyjmują wszystkie przedmioty, które nie wymagają sali specjalistycznej. To najczęstszy przypadek; specjalizację dodaje się tylko wtedy, gdy chce się ograniczyć wybór. #### Duża sala: kilka lekcji jednocześnie Sala specjalistyczna przyjmuje zwykle **jedną lekcję jednocześnie**. Można z niej zrobić **[dużą salę](#page-glossary.large-room)**, podając **maksymalną liczbę klas** przebywających w niej równocześnie: przyjmuje wtedy równolegle kilka różnych lekcji (z osobnymi nauczycielami i grupami), dopóki suma liczebności mieści się w jej pojemności. Tak jest w przypadku sali egzaminacyjnej, sali gimnastycznej, pływalni lub przestrzeni zewnętrznej. To ustawienie pojawia się **dopiero po** nadaniu sali specjalizacji. #### Dobre praktyki - **Szeroki start** — przy pierwszej konfiguracji nie należy nakładać zbyt wielu ograniczeń, grozi to zablokowaniem generowania. - **Dopracowanie po pierwszej diagnostyce** — gdy widoczny jest wynik generowania, łatwo rozpoznać przypadki, w których brakująca specjalizacja zapobiegłaby błędnemu umieszczeniu. - **Dokumentacja po stronie zespołu** — nauczyciele i osoby odpowiedzialne za sale muszą rozumieć, dlaczego dana sala jest ograniczona; w przeciwnym razie będą to obchodzić ręcznie. #### Instrukcja — Konfigurowanie pracowni biologicznej 1. **Skonfigurować salę specjalistyczną** (pracownię biologiczną, salę informatyczną, salę gimnastyczną), aby generowanie planu lekcji się nie pomyliło. 2. **Proszę otworzyć salę** na ekranie Lokalizacje / Sale / Zasoby w planie lekcji. Proszę wypełnić jej **specjalizację**: wybrać istniejącą etykietę albo ją utworzyć (na przykład `BIOLOGIA`). Sala ma tylko jedną etykietę. 3. **Pojemność**: liczba miejsc. Generowanie sprawdza, czy liczebność przypisanej grupy pozostaje ≤ pojemności. ⚠ Proszę zachować realizm — zbyt ostre ustawienie blokuje generowanie, zbyt luźne prowadzi do nadmiernych rezerwacji. 4. **Po stronie przedmiotu**: na przedmiocie lub przedmiotach każdej klasy, których to dotyczy (Biologia, Przyroda…), proszę wypełnić pole Sala specjalistyczna tą samą etykietą `BIOLOGIA`. Zgodność musi być dokładna — to ona zastrzega salę dla tych przedmiotów. 5. **Szeroki start** przy pierwszej konfiguracji — mniej ograniczeń = mniejsze ryzyko zablokowania generowania. **Dopracowanie przyjdzie po pierwszej diagnostyce**, gdy widoczne będą przypadki, w których brakująca specjalizacja zapobiegłaby błędnemu umieszczeniu. 6. **W przypadku sali bez ograniczeń** (sali ogólnej) nie należy wypełniać specjalizacji: sala przyjmuje wtedy wszystkie przedmioty bez szczególnego wymogu. To najprostsze ustawienie domyślne — specjalizację dodaje się tylko wtedy, gdy chce się ograniczyć wybór. #### Zobacz także - [Specjalizacja sali](#page-glossary.classroom-specialization) - [Duża sala](#page-glossary.large-room) - [Lokalizacje, sale, zasoby, wiele sal](#page-core-concepts.sites-rooms-resources) - [Zarządzanie przedmiotami](#page-admin.subjects) ### 2.13 Dostępność i ograniczenia czasowe nauczycieli *Source: `help/pl/core-concepts/wishes-and-availability.md` · id: core-concepts.wishes-and-availability · Updated: 2026-06-21* **Dostępność** nauczyciela wskazuje oprogramowaniu przedziały czasowe, które są dla niego **niedostępne**, **niepożądane** albo **preferowane**. Algorytm generowania bezwzględnie przestrzega niedostępności, a pozostałe stopnie stara się uwzględnić jak najlepiej. W szkolnictwie średnim mówi się też o **deklaracjach nauczycieli** — chodzi o to samo pojęcie. #### Cztery stopnie | Kolor | Znaczenie | Skutek | | --- | --- | --- | | **Czarny** | Niedostępny | Twarde ograniczenie: algorytm generowania nigdy nie umieści tam lekcji | | **Czerwony** | Niepożądany | Miękkie ograniczenie: algorytm generowania unika go, o ile to możliwe | | **Zielony** | Preferowany | Algorytm generowania chętniej wybiera ten przedział czasowy, gdy dopuszczalnych jest kilka | Nieoznaczony przedział czasowy jest **neutralny** — dostępny i w niczym nie wyróżniony. #### Włączenie wprowadzania dostępności Tryb wprowadzania wybiera się na ekranie [ustawienia ogólne](#page-admin.parameters), w ustawieniu Dostępność nauczycieli: - **Wyłączone** — nauczyciele nie wprowadzają dostępności. - **Tygodniowy** — dostępność wprowadzana na tygodniu wzorcowym. Dla planów lekcji tygodniowych i cyklicznych. - **Kalendarz** — dostępność wprowadzana data po dacie. Dla planów lekcji kalendarzowych, na kontach Premium. - **Kalendarz + Tygodniowy** — oba sposoby wprowadzania działają równolegle, na kontach Premium, gdy obok siebie istnieją plany lekcji powtarzalne i kalendarzowe, albo po prostu po to, by dać nauczycielom prostszy sposób zgłoszenia, że w danym dniu tygodnia nigdy nie są dostępni, bez względu na datę (wyjątki można jednak wskazać). #### Wprowadzanie przez samego nauczyciela Nauczyciele mogą wprowadzać własną dostępność ze swojego konta [heart]. To duża oszczędność czasu dla administracji. Jeśli szkoła nie chce, aby nauczyciel się logował, można też **wysłać mu bezpośredni link udostępniania** do jego własnego ekranu dostępności, w trybie edycji, wygenerowany z Pobierz wraz z datą wygaśnięcia. Nauczyciel wprowadza swoją dostępność, nawet jeśli jego konto nie ma uprawnień do logowania się. W praktyce link ten trafia zwykle do spersonalizowanej wiadomości, razem z przewidzianymi przedmiotami, wymiarem godzin, przejazdami lub szczególnymi ograniczeniami oraz wyraźnym terminem. Omniscol nie prowadzi dla tego przypadku osobnej korespondencji seryjnej: każdy link wstawia się w wiadomość już przygotowaną dla danego nauczyciela. #### Zatwierdzanie przez administrację w planie lekcji W tygodniowym planie lekcji: - Dostępność wprowadzona przez nauczyciela domyślnie **oczekuje na zatwierdzenie**. - Administrator sprawdza ją i **zatwierdza** (ewentualnie po zmianie — na przykład usuwając zbyt restrykcyjny wpis dostępności albo zamieniając czarny na czerwony). - Każda późniejsza zmiana nauczyciela znów trafia do oczekujących. W szkołach średnich wprowadzanie dostępności można otworzyć wiele tygodni przed planowaniem. Wpisy powstają wtedy na ogólnej siatce godzin, a etap zatwierdzania dopasowuje je do rzeczywistej siatki godzin kursów danego planu lekcji: etap zatwierdzania służy także temu, by poprawnie przeprowadzić to przeniesienie. Dostępność nauczycieli wirtualnych zapisuje się bezpośrednio. Pozwala to na przykład domyślnie zostawić wolne środy. W trybie kalendarzowym ([Premium](#page-overview.plans-and-options)): - Dostępność jest **konsolidowana w czasie rzeczywistym**. - Konflikty są wykrywane od razu. Przyjmuje się bowiem, że w trybie kalendarzowym siatka godzin jest mniej obciążona ograniczeniami (dat jest przecież wiele), a nauczyciele są samodzielni, czasem wręcz zewnętrzni wobec szkoły, łączący stanowiska i obowiązki: nie chodzi o deklarację, lecz o rzeczywistą dostępność. Wyjątkowo dane dostępności nauczycieli w trybie kalendarzowym można więc zmieniać zarówno z ekranu modułu Administracja, jak i z planu lekcji. #### Konflikt dostępności przy generowaniu Jeśli dostępność nauczyciela jest **zbyt restrykcyjna**, by dało się umieścić jego lekcje, generowanie kończy się niepowodzeniem z wyraźną diagnostyką. Zob. [Diagnozowanie nieudanego generowania](#page-timetables.diagnosing-generation). Rozwiązania: - Złagodzić dostępność (oznaczyć przedział czasowy na czerwono, a nie na czarno). - Inaczej rozłożyć kursy (nauczyciel z 18 godzinami i tylko 12 wolnymi przedziałami czasowymi nie da sobie rady). - Zatrudnić kogoś (przypadek skrajny — ale czasem to właśnie jest trafna diagnoza). #### Instrukcja — Zebranie i zatwierdzenie dostępności nauczycieli 1. **Dostępność** wskazuje algorytmowi generowania, które przedziały czasowe są **niedostępne** (czarny — twarde ograniczenie), **niepożądane** (czerwony — miękkie) albo **preferowane** (zielony). Algorytm generowania bezwzględnie przestrzega czarnego, a pozostałe stopnie optymalizuje. 2. **Proszę włączyć tryb wprowadzania** w ustawieniach ogólnych (ustawienie Dostępność nauczycieli): **wyłączone**, **tygodniowe** (dostępność na tygodniu wzorcowym, tryb klasyczny) albo **kalendarzowe** (na kontach Premium, dostępność data po dacie — łączy się z tygodniowym). Wybór zależy od typu planu lekcji. 3. **Proszę otworzyć wprowadzanie** dla nauczycieli. Dwie możliwości: - logują się i wprowadzają dane ze swoich kont [heart]; - generuje się **bezpośredni link udostępniania** przez Pobierz z datą wygaśnięcia — nauczyciel nie musi logować się do swojego konta — i wysyła się go każdej zainteresowanej osobie. 4. **Po stronie nauczyciela**: loguje się albo klika link, widzi swoją siatkę godzin i oznacza przedziały czasowe na czarno (niedostępny), czerwono (niepożądany), zielono (preferowany). Zapis jest natychmiastowy. Całość zajmuje chwilę. 5. **Zatwierdzanie po stronie administratora (tryb tygodniowy)**: wprowadzona dostępność trafia do **oczekujących na zatwierdzenie**. Proszę ją sprawdzić, a potem zatwierdzić — po drodze można ją zmienić. Każda późniejsza zmiana nauczyciela znów trafia do oczekujących. W trybie kalendarzowym wszystko konsoliduje się w czasie rzeczywistym. ⚠ Jeśli nauczyciel oznaczy zbyt wiele przedziałów czasowych na czarno, algorytm generowania nie zdoła umieścić jego lekcji — diagnostyka to zgłosi (zob. [Diagnozowanie nieudanego generowania](#page-timetables.diagnosing-generation)). #### Zobacz także - [Ograniczenia czasowe (zasady ogólne)](#page-core-concepts.time-constraints) - [Dostępność nauczycieli (deklaracje)](#page-glossary.wishes) - [Niekompatybilność (między przedmiotami)](#page-glossary.incompatibility) - [Algorytm generowania](#page-glossary.solver) - [Dostępność w trybie kalendarzowym](#page-timetables.calendar-wishes) ### 2.14 Ograniczenia czasowe: klasy, kursy, grupy, sale i siatka godzin *Source: `help/pl/core-concepts/time-constraints.md` · id: core-concepts.time-constraints · Audience: admin · Updated: 2026-06-27* **Ograniczenia czasowe** wskazują algorytmowi generowania przedziały czasowe, których należy **unikać** albo które należy **wyróżnić**. Ten sam edytor obsługuje **dostępność** **nauczyciela** lub **sali** oraz ograniczenia dołączone do **klasy**, **kursu**, **grupy** albo do samej **siatki godzin**. Każdy ekran udostępnia tylko te poziomy, które mają dla niego sens. Szczegóły przypadku nauczyciela (wprowadzanie danych przez nauczyciela, link do udostępnienia, zatwierdzenie) opisuje [Dostępność nauczycieli](#page-core-concepts.wishes-and-availability). #### Cztery poziomy Przedział czasowy maluje się jednym z tych poziomów, rozpoznawanych po kolorze: | Kolor | Poziom | Skutek dla generowania | | --- | --- | --- | | ⚫ **Czarny** | Niedostępny | Twarde ograniczenie: algorytm generowania nigdy nie umieszcza tam lekcji | | 🔴 **Czerwony** | Niepożądany | Silne ograniczenie miękkie: algorytm generowania unika go, na ile to możliwe | | 🟠 **Pomarańczowy** | Raczej niepożądane | Łagodne ograniczenie miękkie: do unikania, jeśli reszta na to pozwala | | 🟢 **Zielony** | Preferowane | Poziom korzystny: algorytm generowania faworyzuje ten przedział czasowy | Niepomalowany przedział czasowy jest **neutralny**. [eraser] Gumka usuwa nałożony poziom i przywraca stan neutralny. #### Poziomy dostępne dla poszczególnych jednostek Nie wszędzie dostępne są wszystkie cztery poziomy: - **Nauczyciel** — Niedostępny, Niepożądany, Preferowane (czarny, czerwony, zielony). To jego **dostępność**. - **Klasa** (Ograniczenia czasowe klasy), **kurs** ([clock]), **sala** (Dostępność) — Niedostępny i Niepożądany (czarny, czerwony). Opisuje się tu przedziały czasowe, w których nie chce się — albo raczej nie chciałoby się — aby klasa pracowała, aby lekcje kursu były umieszczane, aby sala była używana. - **Grupa** (Dostępność) — te same poziomy czarny i czerwony, funkcja Premium (zob. niżej). - **Siatka godzin** (lokalizacja) — to **jedyny** ekran, który udostępnia poziom **pomarańczowy** (Raczej niepożądane). Zob. niżej. Wszędzie wchodzi się przez **mały zegar** [clock] umieszczony na danej jednostce (na każdej klasie, każdym kursie klasy, każdej sali…). Zegar **zmienia kolor**, gdy ograniczenia są już wprowadzone. #### Ograniczenia nałożone na siatkę godzin Na siatce godzin lokalizacji maluje się bezpośrednio **ograniczenia globalne**, obowiązujące w **całej placówce**: - pomalowanie przedziału czasowego na **czarno** **zamyka** go dla wszystkich — tak globalnie blokuje się przedział czasowy (piątek po południu, przerwa obiadowa, przedział czasowy na zebrania…). > _Premium_ W Premium siatka godzin przyjmuje dodatkowo ograniczenia **miękkie**: **czerwone** (Niepożądany) i **pomarańczowe** (Raczej niepożądane), aby zniechęcać do przedziału czasowego bez jego zamykania. Strukturę siatki godzin (przedziały czasowe, czasy trwania, przerwy) opisuje [Siatka godzin, przedziały czasowe i czasy trwania](#page-core-concepts.timetable-grid). #### Edytor ograniczeń Edytor jest wspólny dla wszystkich jednostek, a wszystko odbywa się kliknięciem. **Proszę najpierw wybrać poziom** na pasku u góry (dostępne poziomy zależą od jednostki). Staje się on aktywnym „pędzlem” i stosuje się do każdego dotkniętego przedziału czasowego: - **Kliknięcie komórki** maluje tylko ten jeden przedział czasowy; **kliknięcie i przeciągnięcie** po kilku komórkach maluje je jednym gestem. - **Kliknięcie nagłówka dnia** maluje **całą kolumnę** (cały dzień); **kliknięcie nagłówka godziny** maluje **cały wiersz** (ten przedział czasowy we wszystkich dniach). To najszybszy sposób na objęcie szerokich zakresów. - [eraser] Gumka jest pędzlem jak każdy inny: proszę ją wybrać, a następnie kliknąć lub przeciągnąć, aby wrócić do stanu neutralnego. ##### Tydzień wzorcowy i widok kalendarza W planie lekcji tygodniowym lub cyklicznym ograniczenia wprowadza się na **tygodniu wzorcowym**. > _Premium_ W planie lekcji typu kalendarz (Premium) pasek nawigacji pozwala przełączać się między **tygodniami**, **miesiącami**, **całym rokiem** i **tygodniem wzorcowym**: wprowadza się ograniczenia datowane, a można też zadeklarować ograniczenie powtarzalne na tygodniu wzorcowym. Dodatkowo [okna dat](#page-timetables.date-windows) zawężają okresy, w których mogą być planowane niektóre kursy. Na **tygodniu wzorcowym** każdy przedział czasowy **konsoliduje** ograniczenia wszystkich odpowiadających mu dat z danego okresu (na przykład wszystkich poniedziałków o 8.00). Gdy daty te się różnią, przedział czasowy pokazuje **proporcjonalny pasek kolorów** — szerokość każdego koloru odzwierciedla liczbę objętych dni — a jego **podpowiedź** podaje liczby dla poszczególnych poziomów (ile dni niedostępnych, niepożądanych itd.). **Kliknięcie tego przedziału czasowego wymusza wybrany poziom na wszystkich tych datach** za jednym razem: to ogólny sposób rozstrzygania dla całego dnia wzorcowego. #### Opcje dodatkowe > _Premium_ Pod edytorem ograniczenie klasy lub grupy może zawierać **limity** (Premium): - Maksymalna liczba godzin lekcyjnych w ciągu dnia — w formacie `HH:MM`; - Maksymalna liczba godzin lekcyjnych w ciągu tygodnia — w trybie kalendarza. Algorytm generowania respektuje te limity jako ograniczenia optymalizacyjne. Po stronie nauczyciela **komentarz** w dowolnej formie pozwala przekazać uwagę o jego dostępności (przejazdy, szczególne ograniczenie). #### Dziedziczenie między poziomami > _Premium_ **Grupa** dziedziczy ograniczenia swojej **klasy** i swoich **grup nadrzędnych** (zob. [Hierarchia grup](#page-core-concepts.group-hierarchy)). Gdy trzeba lokalnie **dopuścić** przedział czasowy mimo odziedziczonego ograniczenia, poziom **Dozwolone lekcje** neutralizuje odziedziczone ograniczenie **bez zmiany źródła**. #### Skutek przy generowaniu Ograniczenia **czarne** są **blokujące**: lekcja nigdy nie zostanie umieszczona w niedostępnym przedziale czasowym. Poziomy czerwony i pomarańczowy to **kary**, które algorytm generowania stara się minimalizować; zielony to **nagroda**. Jeśli ograniczenia uniemożliwiają umieszczenie lekcji, generowanie to zgłasza — zob. [Diagnozowanie nieudanego generowania](#page-timetables.diagnosing-generation). #### Zobacz także - [Dostępność nauczycieli](#page-core-concepts.wishes-and-availability) - [Hierarchia grup](#page-core-concepts.group-hierarchy) - [Siatka godzin, przedziały czasowe i czasy trwania](#page-core-concepts.timetable-grid) - [Okna dat](#page-timetables.date-windows) - [Dostępność nauczycieli (deklaracje)](#page-glossary.wishes) ### 2.15 Rok szkolny, tygodnie naprzemienne, dni wolne *Source: `help/pl/core-concepts/school-year.md` · id: core-concepts.school-year · Plan: standard · Updated: 2026-05-12* **Rok szkolny** to rama czasowa, w której realizowane są plany lekcji. Stawia trzy zasadnicze pytania: kiedy rok się zaczyna i kończy, kiedy wypadają dni wolne oraz — jeśli szkoła korzysta z tygodni naprzemiennych — jak ich naprzemienność układa się na tym kalendarzu. Używa się też nazwy kalendarz akademicki. #### Rok szkolny i jego granice Rok szkolny ma **datę rozpoczęcia** i **datę zakończenia**. W tym zakresie tygodnie są numerowane. Publikacja planu lekcji obejmuje część tych tygodni albo wszystkie. Plan lekcji typu kalendarz można nawet opublikować na okres dłuższy niż rok szkolny (typowo 18-miesięczny program EMBA), ale uwzględniane są wyłącznie daty zadeklarowane w latach szkolnych. Bez aktywnego roku szkolnego nie da się opublikować żadnego planu lekcji: żadna lekcja nie zasila wtedy modułów używanych w codziennej pracy (Strona główna, Plany lekcji, Panel zarządczy, Zarządzanie nieobecnościami). Rok szkolny jest więc warunkiem wstępnym; zob. [Rok szkolny i dni wolne](#page-admin.school-year). Lata szkolne nie mogą mieć wspólnych dat. Zwykle rozdziela je okres dni wolnych, ale mogą też następować bezpośrednio po sobie. Niektóre ośrodki szkoleniowe nie podlegają cyklowi akademickiemu — rok szkolny jest wtedy po prostu rokiem kalendarzowym, od 1 stycznia do 31 grudnia. #### Dni wolne **Dni wolne** to zakresy dat **nieaktywnych**: żadnych lekcji, żadnych wydarzeń, żadnych naliczeń. Dwa źródła: - **Wspólne dni wolne** — pochodzące z oficjalnego kalendarza kraju (Wszystkich Świętych, zimowa przerwa świąteczna, ferie zimowe, wiosenna przerwa świąteczna). Omniscol może je zaproponować zgodnie z ustawionym krajem; wybór tego, co zaimportować, pozostaje po stronie szkoły. - **Własne dni wolne** — specyficzne dla szkoły (dzień dyrektorski, egzaminy, lokalny dzień wolny). Dodaje się je ręcznie. Oba rodzaje kumulują się bez różnicy. Dni wolne obowiązują natomiast w całej szkole. Jeśli sprawa dotyczy tylko niektórych klas, proszę użyć nieobecności klasy albo okresu niedostępności klasy (jedno i drugie można w razie potrzeby wykorzystać ponownie dla kilku klas, na przykład takich, które przebywają za granicą). #### Tygodnie naprzemienne (A/B i dalej) Niektóre szkoły mają kursy, które wracają tylko raz na dwa tygodnie (albo jeszcze rzadziej): wychowanie fizyczne w lekcjach podwójnych, godzina wychowawcza co drugi tydzień, przedmioty do wyboru. Omniscol rozwiązuje to przez **liczenie tygodni**: tygodnie roku nie są etykietowane, lecz zliczane w sposób ciągły. Każdy kurs ma natomiast własny cykl — raz na dwa tygodnie (A/B), raz na trzy (A/B/C) i tak dalej. Ten sam przedział czasowy mieści wtedy różne lekcje w zależności od tego, który tydzień cyklu właśnie trwa, na przykład jedną lekcję w tygodniach nieparzystych, a drugą w tygodniach parzystych, tego samego dnia i o tej samej godzinie. Ponieważ obliczenie jest dynamiczne, kursy w rytmie A/B i kursy w rytmie A/B/C mogą współistnieć w tej samej klasie. O **włączeniu** tygodni naprzemiennych i o **formacie wyświetlania** naprzemienności (`A/B`, `1/2`…) decydują [ustawienia ogólne](#page-admin.parameters). Ekran [roku szkolnego](#page-admin.school-year) służy następnie do **wymuszenia na osi tygodni punktów, w których liczenie wraca do tygodnia A** — na przykład po to, by po dniach wolnych rytm wznawiał się prawidłowo; dla czytelności oś pokazuje naprzemienność wyłącznie w formie A/B. Aby **zadeklarować naprzemienne lekcje** w przedziale czasowym, zob. [Złożone lekcje](#page-core-concepts.complex-lessons). #### Kilka lat równolegle Omniscol obsługuje **kilka lat szkolnych równolegle** na tym samym koncie: na przykład rok bieżący 2026-2027 i przygotowywany rok następny 2027-2028. Pojęcie **bieżącego roku szkolnego** decyduje o tym, co użytkownicy widzą w codziennej pracy; pozostałe lata są nadal dostępne w zarządzaniu i w administracyjnym podglądzie. #### Zobacz także - [Rok szkolny](#page-glossary.school-year) - [Lekcje naprzemienne](#page-glossary.alternate-lessons) - [Rok szkolny i dni wolne](#page-admin.school-year) - [Publikacja planu lekcji](#page-timetables.publication) - [Złożone lekcje](#page-core-concepts.complex-lessons) ### 2.16 Oś czasu i nawigacja w czasie *Source: `help/pl/core-concepts/timeline-navigation.md` · id: core-concepts.timeline-navigation · Updated: 2026-05-12* Wszystkie ekrany Omniscol, które wyświetlają plan albo statystyki, mają u góry strony **oś czasu** (tzw. „pasek czasu”). To przy jej pomocy **nawiguje się w czasie**: wybiera się rok szkolny, wyświetlany okres, a na niektórych ekranach przechodzi z widoku tygodnia do widoku miesiąca lub roku. Ta strona wyjaśnia zasady wspólne dla wszystkich ekranów; każdy moduł ma swoją specyfikę, opisaną na jego własnej stronie. #### Przyciski osi czasu Oś czasu udostępnia **strzałkę w lewo** i **strzałkę w prawo**, po dwóch przeciwległych stronach: - **strzałka w lewo** ← wraca do **poprzedniego roku szkolnego**, - **strzałka w prawo** → przechodzi do **następnego roku szkolnego** (na przykład do przygotowywanego roku następnego). Rok (albo okres) **aktualnie wyświetlany** jest zwykle wypisany wprost nad osią czasu. #### Klasyczne przeoczenie: strzałka w prawo > Moduł **Zarządzanie planami lekcji** wyświetla **domyślnie bieżący rok > szkolny**. Gdy planista przygotowuje początek następnego roku, musi > **wyraźnie kliknąć strzałkę w prawo** na osi czasu, aby przejść na > następny rok szkolny, zanim będzie mógł rozdzielić na nim godziny > i opublikować swój plan lekcji. Na tym konkretnym ekranie można też > przechodzić z roku na rok, klikając rok szkolny. Bieżący jest > zielony, następny — pomarańczowy. #### Widoki czasowe w poszczególnych modułach Nie wszystkie moduły udostępniają te same poziomy szczegółowości: | Moduł | Widok domyślny | Inne widoki | | --- | --- | --- | | **Plany lekcji** | Tydzień | Dzień, miesiąc | | **Panel zarządczy** | Tydzień | Miesiąc, rok, dowolny zakres od daty do daty | | **Zarządzanie nieobecnościami** | Tydzień | Miesiąc, rok, dowolny zakres od daty do daty | | **Obsada personelu** | Tydzień | Dzień | | **Zarządzanie planami lekcji** | Cały rok szkolny | | | **Edycja planu lekcji typu kalendarz** | Tydzień | Miesiąc | | **Dostępność godzinowa w trybie kalendarza** | Tydzień | Miesiąc, rok szkolny, tydzień wzorcowy | **Przyciski przełączania widoku** znajdują się obok osi czasu, zwykle nad nią po lewej stronie. Widoki `rok` i `dowolny zakres od daty do daty` występują przede wszystkim w module **Panel zarządczy**, gdzie służą do statystyk obejmujących kilka okresów. #### Rok szkolny wyświetlany domyślnie **Bieżący rok szkolny** (ustawiany w module [Administracja](#page-admin.school-year)) jest **wyświetlany domyślnie** we wszystkich modułach i dla wszystkich użytkowników. - nauczyciel i uczeń przeglądający plan lekcji widzą **tylko rok bieżący**. Po stronie portalu nie ma dostępu do lat minionych ani przygotowywanych. Jest to zamierzone: dla nich plan lekcji dotyczy dnia dzisiejszego. - **Nieobecności** można zgłaszać **tylko w bieżącym roku szkolnym**. Nie da się zgłosić nieobecności wstecz, w roku minionym, ani z wyprzedzeniem, w roku następnym. - **Administratorzy** mogą natomiast **nawigować** między latami przy użyciu osi czasu — dlatego warto rozumieć działanie strzałek. Bieżący rok szkolny jest też tym, który bierze się pod uwagę przy eksporcie i synchronizacji z zewnętrznymi systemami. #### Kiedy przełącza się bieżący rok szkolny Typowa kolejność: 1. **Rok N trwa**. Równolegle pracuje się nad rokiem N+1 w module [Zarządzanie planami lekcji](#page-timetables.overview), przy użyciu strzałki w prawo. Wszyscy użytkownicy widzą jeszcze rok N na swoich portalach i w swoich nieobecnościach. 2. **Ostatnie przygotowania** do rozpoczęcia roku N+1: plan lekcji N+1 jest opublikowany na odpowiednich tygodniach (ale rokiem bieżącym pozostaje N). 3. **Bezpośrednio przed rozpoczęciem roku**, gdy wszystko jest gotowe na to, by wszyscy przeszli na N+1: zmiana bieżącego roku szkolnego w module [Administracja → Rok szkolny](#page-admin.school-year). 4. **Skutek natychmiastowy**: wszyscy użytkownicy widzą od tej chwili domyślnie N+1. nauczyciel i uczeń uzyskują dostęp do swojego nowego planu lekcji. Nieobecności zgłasza się teraz w roku N+1. Dokładny moment przełączenia zależy od placówki — często **w przeddzień rozpoczęcia roku**, gdy wszystko jest już zatwierdzone, czasem **rano w dniu rozpoczęcia**, żeby zostawić margines na kontrolę. Nie ma pośpiechu: miniony rok pozostaje dostępny tylko do odczytu, jako historia. #### Rok szkolny ≠ rok kalendarzowy **Rok szkolny** w Omniscol nie musi pokrywać się z okresem wrzesień → sierpień. Częste przypadki szczególne: - **Ośrodki kształcenia ustawicznego** — często dopasowane do **roku kalendarzowego** (1 stycznia → 31 grudnia). Proszę zdefiniować rok szkolny z tymi datami w module [Administracja → Rok szkolny](#page-admin.school-year); wszystko działa tak samo. - **Uniwersytety** z przesuniętymi semestrami albo z długimi cyklami (intensywne programy rozłożone na 18 miesięcy) — można zdefiniować lata szkolne o niestandardowej długości. #### Zobacz także - [Rok szkolny](#page-core-concepts.school-year) - [Rok szkolny i dni wolne](#page-admin.school-year) - [Publikacja planu lekcji](#page-timetables.publication) - [Przygotowanie następnego roku szkolnego](#page-timetables.next-school-year) ### 2.17 Wyszukiwanie i filtrowanie na listach *Source: `help/pl/core-concepts/search-and-filter.md` · id: core-concepts.search-and-filter · Audience: admin/teacher/staff · Plan: standard · Updated: 2026-06-27* Ten sam pasek wyszukiwania towarzyszy większości list w Omniscolu (sale, nauczyciele, klasy, przedmioty, zasoby, uczniowie…): łączy wyszukiwanie **tekstowe** oraz — tam, gdzie istnieje wartość liczbowa — warunek **liczbowy**. W przypadku **sal** warunek ten dotyczy **pojemności** — to najpełniejsze zastosowanie i właśnie ono jest tu opisane. Ten pasek pojawia się w zakładce Sale modułu Panel zarządczy, a także w **wyborze sali** dla lekcji, przy przypisywaniu lub zmianie sali w planie lekcji (Przypisz salę). #### Wyszukiwanie tekstowe Wyszukiwanie tekstowe działa na **wszystkich tych listach**. W przypadku sal obejmuje nazwę sali, lokalizację, budynek, specjalizację oraz etykiety wpisane w Omniscolu; na pozostałych listach — wyświetlane pola (nazwa, kod itd.). Przykłady: - `północ` wyświetla sale, których informacje zawierają `północ`. - `laboratorium chemiczne` wyświetla sale odpowiadające obu słowom. - `aula, hala sportowa` wyświetla sale odpowiadające `aula` albo `hala sportowa`. #### Filtr pojemności (sale) Na listach sal operatory porównania liczbowego filtrują według pojemności sali: - `>50`: pojemność ściśle większa niż 50; - `>=50`: pojemność co najmniej 50; - `<25`: pojemność ściśle mniejsza niż 25; - `<=100`: pojemność najwyżej 100; - `=30`: pojemność dokładnie równa 30; - `50-100`: pojemność od 50 do 100; - `50-`: pojemność równa 50 lub większa; - `-25`: pojemność równa 25 lub mniejsza. #### Przydatne kombinacje Spacje dodają kryteria, które muszą być spełnione jednocześnie. Przecinki rozdzielają warianty. - `>50 lokalizacja północ`: sale na ponad 50 miejsc powiązane z lokalizacją północ. - `<=30 laboratorium`: małe sale typu laboratorium. - `aula, >100`: sale zawierające `aula` albo sale na ponad 100 miejsc. - `budynek A informatyka`: sale powiązane z budynkiem A i z informatyką. #### Dlaczego warto starannie opisać sale Filtry stają się dokładniejsze, gdy lokalizacje, budynki, specjalizacje i etykiety są utrzymywane na bieżąco. Te informacje poprawiają wyszukiwanie w planie lekcji, statystyki sal oraz analizy obłożenia budynków. #### Zobacz także - [Statystyki sal](#page-dashboard.classrooms) - [Korzystanie z tabel i wykresów](#page-dashboard.tools-and-filters) - [Lokalizacje, sale i zasoby](#page-timetables.sites-rooms) ### 2.18 Współpraca między administratorami *Source: `help/pl/core-concepts/collaboration.md` · id: core-concepts.collaboration · Audience: admin · Feature: collab · Updated: 2026-06-13* > **Premium** Opcja **Współpraca w czasie rzeczywistym** pozwala kilku administratorom pracować jednocześnie na tym samym koncie Omniscol: każdy widzi na bieżąco obecność pozostałych, a serwer scala równoczesne działania. #### Obecność w czasie rzeczywistym U góry ekranu, dla każdego innego administratora zalogowanego na to samo konto w tym samym czasie, pojawia się wskaźnik w postaci **kółka z inicjałami** (własne jest jasnoniebieskie, a przy większej liczbie osób kółka nachodzą na siebie). Po najechaniu na nie kursorem podpowiedź pokazuje imię i nazwisko każdej osoby oraz **ekran, który ma w danym momencie otwarty**. Wskaźnik zmienia kolor **na czerwony**, gdy dwóch administratorów otworzy **ten sam ekran edycji** — budowanie planu lekcji (lokalizacje, klasy, grupy, podział godzin), reorganizację, obsadę personelu, użytkowników, przedmioty czy ustawienia. To sygnał **ryzyka równoczesnej modyfikacji**. Nic jednak nie blokuje pracy: serwer **scala równoczesne działania** na tyle, na ile to możliwe, tak aby każdy zachował swoje zmiany bez cichego nadpisania. Zmiana dokładnie tego samego pola użytkownika lub lekcji, a także masowy import danych, prowadzi jednak nieuchronnie do konfliktu: wygrywa ten, kto zmienia jako ostatni. Czerwony wskaźnik to zachęta do uzgodnienia pracy, tak aby nie pracować współbieżnie w tym samym miejscu, na tych samych danych, w tym samym czasie. #### Kiedy z tego korzystać - **Duża szkoła z kilkoma osobami zarządzającymi** — każda zajmuje się jednym wydziałem, jednym rocznikiem lub jedną lokalizacją, ale wszyscy pracują w Omniscol równocześnie. - **Okresy wzmożonej pracy** — budowanie planów na początek roku szkolnego, przejście na sesję egzaminacyjną, obsługa fali nieobecności. - **Uzgodnienia na spotkaniu** — zespół zbiera się wokół jednej decyzji i kilku uczestników wprowadza zmiany na swoich komputerach: kółka obecności pozwalają podzielić między siebie obszary pracy. #### Granica synchronizacji Kółka obecności są przekazywane w czasie rzeczywistym. Natomiast sam widok otwarty przez innego użytkownika niekoniecznie odświeża się automatycznie po zapisaniu zmian. Jeśli współpracownik właśnie zmienił dane, które są w danej chwili wyświetlane, proszę przed podjęciem decyzji odświeżyć widok lub ponownie otworzyć dany obiekt. #### Dobre praktyki - **Wyznaczenie zakresów**: kto się czym zajmuje. Zakres może być nieformalny (ustalony e-mailem) albo sformalizowany — do tego służą [role niestandardowe](#page-admin.customroles). - **Komunikacja poza aplikacją** — na decyzje merytoryczne warto zachować osobny kanał uzgodnień; wskaźniki obecności nie zastępują wytycznych dotyczących pracy. - **Unikanie edycji tej samej struktury w tym samym czasie**: jeśli dwie osoby ruszają jednocześnie listę uczniów tej samej klasy, ryzyko konfliktu rośnie. Proszę podzielić zadania cząstkowe według zakresów. #### Instrukcja — Uzgodnienie początku roku szkolnego przez trzech administratorów 1. **W dużych szkołach** budowanie planów na początek roku szkolnego angażuje równolegle kilku administratorów. Opcja **Współpraca w czasie rzeczywistym** dodaje obecność w czasie rzeczywistym i scalanie równoczesnych działań. 2. **Proszę wcześniej wyznaczyć zakresy** (na spotkaniu lub e-mailem): kto zarządza którym wydziałem / rocznikiem / lokalizacją. Tę organizację mogą dopełnić [role niestandardowe](#page-admin.customroles), które ograniczają moduły i operacje dostępne dla poszczególnych kont; sam podział według wydziałów lub lokalizacji pozostaje natomiast ustaleniem zespołu. 3. **Wszyscy logują się** na konto Omniscol. U góry ekranu w czasie rzeczywistym pojawiają się **wskaźniki z inicjałami** pozostałych zalogowanych administratorów. Po najechaniu kursorem — imię i nazwisko oraz bieżący ekran każdej osoby. 4. **Sygnał konfliktu**: wskaźnik zmienia kolor na **czerwony**, gdy dwóch administratorów otwiera ten sam ekran edycji (te same klasy, tę samą reorganizację…). To znak ryzyka równoczesnej modyfikacji, widoczny dla wszystkich zainteresowanych administratorów. 5. **Serwer scala** równoczesne działania: nic nie blokuje pracy w trakcie edycji i każdy zachowuje swoje zmiany na tyle, na ile to możliwe. Czerwony wskaźnik to zachęta do uzgodnienia pracy, zanim ktoś ruszy to samo miejsce. 6. **Dobre praktyki**: proszę zachować osobny kanał uzgodnień i podzielić zadania cząstkowe według zakresów (jeden administrator na wydział). Proszę unikać edycji tej samej struktury (na przykład listy uczniów danej klasy) przez dwie osoby w tym samym czasie. Po zmianie wprowadzonej przez współpracownika proszę odświeżyć dany widok, zanim wyświetlone dane zostaną uznane za aktualne. #### Zobacz także - [Plany i opcje Omniscol](#page-overview.plans-and-options) - [Użytkownicy i role](#page-admin.users-and-roles) - [Role niestandardowe](#page-admin.customroles) --- ## 3. Tworzenie planu lekcji (moduł Zarządzanie planami lekcji) ### 3.1 Przegląd modułu Zarządzanie planami lekcji *Source: `help/pl/timetables/overview.md` · id: timetables.overview · Audience: admin · Updated: 2026-06-13* Moduł **Zarządzanie planami lekcji** jest sercem Omniscol: tutaj tworzy się plany lekcji, konfiguruje je, generuje i publikuje. Plan lekcji o charakterze cyklicznym (tygodniowy lub rotacyjny) wykorzystuje się **okazjonalnie** (zwykle przed początkiem roku szkolnego, przy tworzeniu innego trymestru lub semestru oraz przy zmianach strukturalnych), a nie codziennie (do codziennej pracy służy moduł [Plany lekcji](#page-schedules.consult-and-filter)). Plan lekcji w trybie kalendarza, stosowany w szkolnictwie wyższym, jest natomiast głównym ekranem codziennej pracy całego zespołu planistów. #### Przebieg planowania Budowanie planu lekcji nie jest linią prostą: po utworzeniu i skonfigurowaniu planu jego sercem jest **cykl** — umieszczenie kilku lekcji, generowanie, analiza, korekty, powrót do generowania — a dopiero potem liniowy ciąg etapów, który zaczyna się od **publikacji** (początek roku szkolnego). ```mermaid flowchart LR A["Tworzenie"] --> B["Konfiguracja
lokalizacje, sale, nauczyciele,
klasy, grupy, kursy"] B --> M["Ręczne umieszczanie
kotwice, blokady"] M --> G["Generowanie
automatyczne/ręczne,
częściowe lub pełne"] G --> J["Analiza,
celowe korekty"] J -->|powrót| G J --> P["Publikacja
= początek roku szkolnego"] P --> E["Użytkowanie"] E --> Mod["Zmiany
w trakcie roku"] Mod -.->|wyjątek| J ``` Można w każdej chwili wrócić do wcześniejszego etapu, zapisywać plan w trakcie pracy i duplikować go, aby utworzyć wariant. Sedno cyklu opisują strony [Automatyczne generowanie](#page-timetables.generation) oraz [Ręczne umieszczanie](#page-timetables.manual-placement); po rozpoczęciu roku szkolnego poprawki wprowadza się przez [Doraźne modyfikacje](#page-schedules.ad-hoc-changes). #### Kilka planów lekcji równolegle Na jednym koncie można mieć kilka planów lekcji: - **szkice**, które nie są opublikowane (do przygotowania nowego roku szkolnego, podczas gdy bieżący rok nadal funkcjonuje), - plany lekcji na różne **okresy** (S1, S2…), - w wersji Premium plany lekcji **opublikowane równolegle** na te same tygodnie (na przykład tygodniowy plan lekcji na przedpołudnie i plan lekcji w trybie kalendarza na popołudnie) — zob. [Kilka planów lekcji opublikowanych równolegle](#page-timetables.multiple-active-timetables). Taką możliwość można też włączyć umownie na niektórych kontach Standard. #### Etapy szczegółowo Każdy z nich ma osobną stronę: **Wymaganie wstępne**: [Wymagania wstępne przed utworzeniem planu lekcji](#page-timetables.prerequisites). Następnie osiem etapów: 1. [Ustawienia ogólne](#page-timetables.general-settings) 2. [Lokalizacje, siatki godzin, sale, zasoby](#page-timetables.sites-rooms) 3. [Przypisywanie nauczycieli](#page-timetables.assigning-teachers) 4. [Tworzenie klas i ich grup](#page-timetables.creating-classes) 5. [Wyrównania grup i grupy grup](#page-timetables.alignments-and-groups-of-groups) 6. [Podział godzin i tworzenie lekcji](#page-timetables.hour-distribution) 7. [Automatyczne generowanie](#page-timetables.generation) 8. [Publikacja planu lekcji](#page-timetables.publication) W każdej chwili można: - **Przeglądać** plan lekcji (tryb tylko do odczytu), aby go sprawdzić. - **Reorganizować** plan lekcji (tryb szybkiej edycji), aby korygować pozycje lekcji. - **Duplikować** plan lekcji (utworzyć szkic na podstawie istniejącego planu). - **Importować** lub **eksportować** konfigurację kursów w arkuszu kalkulacyjnym (zob. [Import zbiorczy](#page-timetables.mass-import)). #### Szybki start Jeśli to Państwa pierwszy plan lekcji: 1. Proszę najpierw sprawdzić, czy [konto jest skonfigurowane](#page-getting-started.setup-school) (ustawienia, rok szkolny, przedmioty, użytkownicy). 2. Proszę kliknąć Utwórz plan lekcji w prawym górnym rogu. 3. Proszę wybrać [tryb planu lekcji](#page-overview.timetable-modes) (tygodniowy, rotacyjny, kalendarzowy). 4. Proszę wykonywać kolejne etapy po kolei. Jeśli dane są już w arkuszu kalkulacyjnym (Excel, Arkusze Google, eksport z innego programu), warto od razu skorzystać z [importu zbiorczego](#page-timetables.mass-import): Omniscol utworzy strukturę, a Państwo ją potem dopracują. #### Zobacz także - [Wybór właściwego typu planu lekcji](#page-overview.timetable-modes) - [Przygotowanie danych do importu masowego](#page-getting-started.preparing-data) - [Przypadki użycia w szkolnictwie wyższym](#page-faq.higher-ed-cases) - [Przypadki szczególne i konfiguracje zaawansowane](#page-faq.edge-cases) ### 3.2 Wymagania wstępne przed utworzeniem planu lekcji *Source: `help/pl/timetables/prerequisites.md` · id: timetables.prerequisites · Audience: admin · Updated: 2026-05-10* Zanim utworzy się plan lekcji, w szkole muszą istnieć trzy elementy: #### 1. Co najmniej jeden rok szkolny Bez roku szkolnego nie ma osi czasu, a więc nie można niczego opublikować. Rok szkolny tworzy się w Lata szkolne. Zob. [Rok szkolny i dni wolne](#page-admin.school-year). #### 2. Wykorzystywane przedmioty Omniscol wstępnie wypełnia bazę najczęstszych przedmiotów w Państwa kraju. Dla przedmiotów specyficznych proszę utworzyć **przedmioty własne** za pomocą Utwórz. ⚠ Proszę zadbać o poprawną pisownię: Omniscol tworzy wewnętrzną kopię przedmiotu w chwili przypisania go do planu lekcji, a późniejsza poprawka nie przenosi się do planów lekcji już opublikowanych, bieżących ani dawnych. Zob. [Zarządzanie przedmiotami](#page-admin.subjects). #### 3. Nauczyciele Proszę utworzyć wszystkich nauczycieli w Administracja > Nauczyciele (pojedynczo lub zbiorczo przez [import](#page-getting-started.preparing-data)). Proszę podać co najmniej imię, nazwisko i adres e-mail. Nauczane przedmioty i pensum godzinowe są opcjonalne, ale przydatne. Zob. [Zarządzanie nauczycielami](#page-admin.teachers). #### Opcjonalnie, ale przydatnie - **Uczniowie** — nie są potrzebni do utworzenia planu lekcji, ale przydają się do planów indywidualnych po publikacji. - **Typy zajęć** (wykład, ćwiczenia, laboratorium…) — jeśli Państwa nomenklatura dydaktyczna ich używa, proszę je utworzyć w Utwórz. - **Poziomy** — proszę sprawdzić, czy Administracja > Ustawienia zawiera poziomy klas, z których będą Państwo korzystać. #### Można zacząć nawet bez kompletu Omniscol jest **elastyczny**. Jeśli w chwili tworzenia planu lekcji nie mają Państwo jeszcze wszystkich nauczycieli ani wszystkich przedmiotów, można zacząć i uzupełniać dane w trakcie pracy. Jest to mniej liniowe, ale działa. **Rok szkolny** jest natomiast naprawdę niezbędny przed publikacją. #### Rozpoczęcie pracy Gdy te wymagania są (przynajmniej częściowo) spełnione: 1. Proszę przejść do modułu Zarządzanie planami lekcji. 2. Proszę kliknąć Utwórz plan lekcji. 3. Proszę wybrać [tryb planu lekcji](#page-overview.timetable-modes). 4. Otworzy się strona [ustawienia ogólne](#page-timetables.general-settings). 5. Proszę nadać planowi nazwę (np. „Plan lekcji 2025-2026”, „Sem. 1 2025”) i opis. #### Instrukcja — Sprawdzenie wymagań przed utworzeniem planu lekcji 1. **W szkole muszą istnieć trzy elementy**, zanim będzie można utworzyć plan lekcji: rok szkolny, przedmioty i nauczyciele. 2. **Rok szkolny**: proszę otworzyć Lata szkolne. Proszę sprawdzić, czy zdefiniowano co najmniej jeden rok, wraz z datami rozpoczęcia i zakończenia oraz dniami wolnymi. Bez roku szkolnego nie ma osi czasu i nie można opublikować planu. Zob. [Rok szkolny i dni wolne](#page-admin.school-year). 3. **Przedmioty**: Omniscol wstępnie wypełnia bazę dla Państwa kraju. Jeśli szkoła ma przedmioty specyficzne (`Przedsiębiorczość`, `Robotyka`, `Chiński zaawansowany`), proszę je utworzyć za pomocą Utwórz. ⚠ Proszę zadbać o poprawną pisownię: Omniscol kopiuje nazwę do każdego planu lekcji, więc poprawka wprowadzona po utworzeniu nie przeniesie się do publikacji bieżących ani dawnych. 4. **Nauczyciele**: proszę otworzyć Nauczyciele. Dla każdego nauczyciela należy podać co najmniej imię, nazwisko i adres e-mail. Nauczane przedmioty i pensum godzinowe są opcjonalne, ale przydatne. Przy dużej liczbie nauczycieli warto użyć importu zbiorczego (zob. [Przygotowanie danych](#page-getting-started.preparing-data)). 5. **Opcjonalnie, ale przydatnie**: typy zajęć (wykład, ćwiczenia, laboratorium…) przez Utwórz, jeśli Państwa nomenklatura ich używa. Poziomy klas należy sprawdzić w ustawieniach ogólnych (Utwórz). 6. **Wszystko gotowe**: moduł **Zarządzanie planami lekcji**, przycisk Utwórz plan lekcji. Proszę wybrać tryb ([tryby planu lekcji](#page-overview.timetable-modes)), nadać nazwę (`Plan lekcji 2026-2027`, `Sem. 1 2026`) i opis. Następny krok: [ustawienia ogólne](#page-timetables.general-settings). #### Zobacz także - [Konfigurowanie konta szkoły](#page-getting-started.setup-school) - [Następny krok — Ustawienia ogólne](#page-timetables.general-settings) ### 3.3 Tryb kalendarzowy — opcje zaawansowane *Source: `help/pl/timetables/calendar-mode.md` · id: timetables.calendar-mode · Audience: admin · Plan: premium · Updated: 2026-10-01* > **Premium** > _Premium_ **Tryb kalendarzowy** jest jednym z trzech typów planu lekcji obsługiwanych przez Omniscol, obok trybu tygodniowego i trybu cyklicznego. Stosuje się go, gdy plan lekcji nie podlega regularnej powtarzalności: każda lekcja ma dokładną datę, bez powtarzalnego schematu tygodniowego. Tworzenie kalendarzowego planu lekcji jest objęte ofertą Premium — podobnie jak [dostępność w trybie kalendarzowym](#page-timetables.calendar-wishes) oraz [kilka planów lekcji opublikowanych równolegle](#page-timetables.multiple-active-timetables): na koncie Premium funkcje te są dostępne bez odrębnej aktywacji. #### Co w szczególności umożliwia tryb kalendarzowy - utworzenie planu lekcji, w którym każda lekcja jest datowana osobno; - zdefiniowanie zakresu dat — daty początkowej i końcowej; - korzystanie z ograniczeń dat, jeśli zostały skonfigurowane; - generowanie tylko docelowego okna, krótszego niż cały zakres planu lekcji; - polecenie algorytmowi generowania, aby zagęścił lekcje na początku okresu, na jego końcu albo bez preferencji co do pozycji; - wyświetlanie, publikowanie i przeglądanie lekcji jak w pozostałych planach lekcji, ale na zakresie dat; - zadeklarowanie, że lekcje niektórych klas powtarzają się według tygodniowego wzorca, i wyłączenie z tego kursów, które mu nie podlegają; - korzystanie z trybu poza siatką na klasach kalendarzowych, z jawnymi godzinami rozpoczęcia i zakończenia każdej lekcji. #### Funkcje uzupełniające Inne funkcje, opisane na własnych stronach, w naturalny sposób dopełniają kalendarzowy plan lekcji: - [Kilka planów lekcji opublikowanych równolegle](#page-timetables.multiple-active-timetables) — do publikowania kilku planów lekcji w tym samym okresie; - [Dostępność w trybie kalendarzowym](#page-timetables.calendar-wishes) — do zbierania datowanej dostępności; - [Grupy grup](#page-core-concepts.groups-of-groups) — do pracy z grupami międzyklasowymi. #### Kiedy wybrać kalendarz zamiast trybu tygodniowego - **Programy bez powtarzalności**: moduły intensywne, seminaria, wykłady gościnne o zmiennych datach. - **Kształcenie ustawiczne**: sesje, które nie układają się w regularny rok akademicki. - **Nauczyciele zewnętrzni**: każdy z nich ma własny kalendarz, a nie stałe tygodniowe godziny pracy. - **Kursy kończące cykl studiów**: projekty, obrony prac dyplomowych, komisje egzaminacyjne. Typowe przypadki ze szkolnictwa wyższego opisuje [Tryb kalendarzowy](#page-higher-ed.calendar-mode). #### Powtarzalne lekcje Plan lekcji typu kalendarz nie wyklucza regularności: klasa zyskuje w nim dodatkową opcję, Powtarzalne lekcje. Jej lekcje powtarzają się wtedy według tygodniowego wzorca, zamiast być umieszczane pojedynczo. Opcję tę zaznacza się zarówno przy tworzeniu klasy, jak i przy jej modyfikacji; istnieje ona wyłącznie w planie lekcji typu kalendarz. Kurs tej klasy może stanowić wyjątek dzięki opcji Poza powtarzalnością: egzamin, obrona pracy dyplomowej czy jednorazowa wizyta nauczyciela zewnętrznego nie podążają za żadnym wzorcem; ich lekcje pozostają umieszczane data po dacie. Opcja ta wpływa na generowanie: [automatyczne generowanie](#page-timetables.generation--recurrence) szuka wtedy tygodnia wzorcowego, a następnie rozwija go na zakres dat klasy. Za jej sprawą pojawia się też ustawienie Powtarzalność; jego miejsce to [polityka podziału](#page-timetables.distribution-policy). Można tam zadeklarować pożądany rytm umieszczania powtarzalnego kursu albo pozostawić jego odgadnięcie algorytmowi. Kurs można równie dobrze zadeklarować jako pozostający poza powtarzalnością. Kiedy algorytmowi nie udaje się w pełni spełnić powtarzalności, dla pozostałych lekcji szuka rozwiązania najbliższego: ten sam dzień powtarzalności, ale inna godzina, albo dzień coraz bardziej odległy w tym samym tygodniu, albo zupełnie gdzie indziej. #### Instrukcja — Utworzenie kalendarzowego planu lekcji 1. **Proszę utworzyć nowy plan lekcji** w Zarządzanie planami lekcji. Na ekranie wyboru typu proszę wskazać **tryb kalendarzowy**. Proszę podać datę początkową i końcową, a następnie zatwierdzić. 2. **Proszę skonfigurować kalendarz**: etykietę, opis, dni robocze i strukturę godzin. Można też zadeklarować **[okna dat](#page-timetables.date-windows)** wielokrotnego użytku, stosowane do ograniczeń czasowych klas, grup i kursów, a także do dostępności sal. 3. **Proszę wprowadzić lekcje** na konkretne daty: datę, godziny, grupę lub klasę, nauczyciela lub nauczycieli oraz salę lub sale. Jeśli klasa jest poza siatką, proszę podać jawne godziny rozpoczęcia i zakończenia. 4. **Proszę uruchomić generowanie**, jeśli na tym planie lekcji korzysta się z algorytmu generowania. Dostępne ograniczenia zależą od wprowadzonych danych: nauczycieli, sal, dat, dostępności i ograniczeń kalendarzowych. Na potrzeby testu albo stopniowej budowy proszę skorzystać z opcji zaawansowanych, aby zawęzić generowane okno dat; proszę włączyć zagęszczanie, jeśli algorytm nie ma rozciągać lekcji na cały dostępny okres. 5. **Proszę opublikować i połączyć**: ten kalendarz można opublikować równolegle z regularnym tygodniowym planem lekcji. Osoby zainteresowane widzą scalone lekcje przy przeglądaniu. Zob. [Kilka planów lekcji opublikowanych równolegle](#page-timetables.multiple-active-timetables). #### Zobacz także - [Tryb kalendarzowy](#page-glossary.calendar-mode) - [Wybór właściwego typu planu lekcji](#page-overview.timetable-modes) - [Dostępność w trybie kalendarzowym](#page-timetables.calendar-wishes) - [Okna dat](#page-timetables.date-windows) - [Kilka planów lekcji opublikowanych równolegle](#page-timetables.multiple-active-timetables) - [Tryb kalendarzowy dla programów bez powtarzalności](#page-higher-ed.calendar-mode){append=(szkolnictwo wyższe)} ### 3.4 Dostępność i ograniczenia w trybie kalendarzowym *Source: `help/pl/timetables/calendar-wishes.md` · id: timetables.calendar-wishes · Audience: admin/teacher · Plan: premium · Updated: 2026-06-20* > **Premium** > _Premium_ W **trybie kalendarzowym** planowanie odbywa się na **konkretnych datach**, a nie w powtarzalnym tygodniu wzorcowym. Zmienia to sposób wyrażania ograniczeń czasowych i dostępności na dwóch odrębnych poziomach: - **ograniczenia czasowe** klas, kursów i grup oraz **dostępność sal**; - **dostępność nauczycieli**. W kalendarzu mówi się o **dostępności**: dawna nazwa tego pojęcia pozostaje zarezerwowana dla deklaracji nauczyciela w tygodniu wzorcowym, składanej przed planowaniem i podlegającej zatwierdzeniu przez planistę. #### Klasy, kursy, grupy i sale Gdy plan lekcji jest typu kalendarzowego, ograniczenia czasowe klas, kursów i grup oraz dostępność sal są wyrażane automatycznie **według daty**, a nie w tygodniu wzorcowym. Można dodatkowo wskazać **powtarzalność w tygodniu wzorcowym**, gdy wpis powtarza się identycznie z tygodnia na tydzień. Dla okresów używanych wielokrotnie — sesji egzaminacyjnych, dni wolnych dotyczących tylko niektórych klas, dozwolonych przedziałów czasowych — proszę nałożyć [okno dat](#page-timetables.date-windows) na te ograniczenia i na dostępność. #### Dostępność nauczycieli W tygodniu wzorcowym nauczyciel deklaruje regułę stałą — *„nie jestem dostępny w środy po południu”*. W kalendarzu dostępność deklaruje się **data po dacie**, co pozwala uchwycić sytuacje bardziej szczegółowe: - *„jestem niedostępny tylko w środę 12 marca przed południem”*, - *„mogę prowadzić lekcję wyłącznie między 20 a 30 stycznia”*, - *„jestem dostępny trzy razy po pół dnia w tygodniu, w terminach wybieranych zależnie od tygodnia”*. To tryb zalecany wtedy, gdy dostępność zmienia się z tygodnia na tydzień — typowo w szkolnictwie wyższym, u nauczycieli rozliczanych godzinowo i w kształceniu ustawicznym. ##### Ustawienie trybu wprowadzania Po stronie nauczycieli proszę przestawić ustawienie Dostępność nauczycieli (ustawienia ogólne szkoły) na **kalendarz** albo **kalendarz + tygodniowy**, aby dopasować je do planowania na konkretnych datach. Tryb łączony pozwala dodatkowo nauczycielowi wskazać po prostu, że **nigdy nie jest dostępny w określonym dniu tygodnia**, niezależnie od daty (doraźne wyjątki pozostają możliwe) — to odpowiednik, po stronie nauczycieli, powtarzalności w tygodniu wzorcowym dla klas, kursów, grup i sal. ##### Poziomy dostępności Ekran wprowadzania korzysta z **widoku kalendarza**. Planista albo nauczyciel klika odpowiednie daty i określa charakter przedziału czasowego: - **Niedostępny**: blokująca niedostępność — generowanie nie umieści tam żadnej lekcji; - **Niepożądany**: twarde ograniczenie, którego należy w miarę możliwości unikać; - **Preferowane**: wskazanie pozytywne; - **Gumka**: usuwa dostępność już wprowadzoną na objętym obszarze. Wprowadzanie może odbywać się w ujęciu całego dnia, połowy dnia albo przedziału czasowego — zależnie od szczegółowości skonfigurowanej dla szkoły. ##### Dla kogo - **Nauczyciele rozliczani godzinowo i nauczyciele zewnętrzni** — nie mają stałego tygodniowego wymiaru godzin pracy. Zob. [Nauczyciele zewnętrzni (na umowę zlecenie, visiting professor)](#page-higher-ed.external-faculty). - **Nauczyciele pracujący w zmniejszonym wymiarze ze względów zdrowotnych lub objęci szczególnym dostosowaniem** — tygodnie zmienne. - **Kursy w kształceniu ustawicznym** — każda sesja jest jednorazowa. - **Nauczyciele w roku częściowej mobilności** — dostępni tylko w niektórych tygodniach. #### Instrukcja — Zebranie dostępności nauczyciela rozliczanego godzinowo w kalendarzu 1. **W przypadku nauczyciela rozliczanego godzinowo, który nie ma stałego tygodniowego wymiaru godzin pracy** (na przykład nauczyciela zewnętrznego), wprowadzanie w tygodniu wzorcowym nie wystarcza. Tryb **kalendarzowy** ujmuje dostępność data po dacie. 2. **Proszę włączyć odpowiedni tryb**: ustawienie Dostępność nauczycieli (ustawienia ogólne szkoły) proszę przestawić na **kalendarz** albo **kalendarz + tygodniowy**, zależnie od potrzeb konta. 3. **Proszę otworzyć wprowadzanie** nauczycielowi rozliczanemu godzinowo. Albo loguje się on swoim kontem nauczyciela, albo generuje się dla niego **bezpośredni link udostępniania** do jego ekranu dostępności (zob. [Dostępność nauczycieli](#page-core-concepts.wishes-and-availability)). Bezpośredni link pozwala uniknąć zakładania osobnego konta, gdy korzysta się z tego sposobu pracy. Dostępność może też wprowadzić samodzielnie każdy administrator. 4. **Po stronie nauczyciela rozliczanego godzinowo**: widzi on **kalendarz roczny**, a nie tygodniową siatkę godzin. Klika daty (albo połowy dnia, albo przedziały czasowe — zależnie od szczegółowości przyjętej w szkole) i określa obszar jednym z proponowanych poziomów dostępności. 5. **Proszę sprawdzić konsolidację** po stronie administracji. Zapisana dostępność jest odczytywana przez ekrany planu lekcji i przez diagnostykę, która sięga do ograniczeń. 6. **Proszę uruchomić generowanie** dla lekcji nauczyciela rozliczanego godzinowo: algorytm generowania łączy priorytety dostępności z pozostałymi ograniczeniami lekcji. Objęte przypadki użycia: nauczyciele rozliczani godzinowo, zmniejszony wymiar pracy ze względów zdrowotnych, kształcenie ustawiczne, nauczyciele w częściowej mobilności. #### Zobacz także - [Dostępność nauczycieli](#page-core-concepts.wishes-and-availability) - [Tryb kalendarzowy](#page-timetables.calendar-mode) - [Okna dat](#page-timetables.date-windows) - [Wybór właściwego typu planu lekcji](#page-overview.timetable-modes) ### 3.5 Okna dat *Source: `help/pl/timetables/date-windows.md` · id: timetables.date-windows · Audience: admin · Plan: premium · Updated: 2026-06-20* > **Premium** > _Premium_ Przez **okno dat** rozumie się okres **włączenia** lub **wykluczenia** dat, **wielokrotnego użytku**, który ogranicza okresy, w których mogą być planowane określone lekcje. Okno definiuje się raz, a następnie nakłada jako **warstwę** na ograniczenia czasowe klas, grup i kursów oraz na dostępność sal. Funkcja ta dotyczy wyłącznie **planów lekcji typu kalendarz**. #### Dwa rodzaje: zezwolenie albo wykluczenie - **Dozwolone lekcje** — lekcje mogą być planowane **wyłącznie** w tych terminach. - **Wykluczone lekcje** — lekcje **nie** mogą być planowane w tych terminach. #### Jak się łączą Do tej samej jednostki można zastosować kilka okien: - dozwolone okna kumulują się ze sobą; - wykluczone okna kumulują się ze sobą; - w przypadku nakładania się **wykluczenie ma pierwszeństwo przed zezwoleniem**. #### Typowe zastosowania - **Klasy o tym samym rytmie kształcenia dualnego** — kilka klas realizuje niektóre kursy tylko w określonych tygodniach (albo tylko na początku lub na końcu tygodni). Jedno *dozwolone* okno opisujące te tygodnie, zastosowane do wszystkich tych klas, pozwala uniknąć wprowadzania tego rytmu klasa po klasie. - **Okresy egzaminów** — *wykluczone* okno obejmujące sesję egzaminacyjną czasowo blokuje wskazane sale albo klasy, tak aby nie została w nich zaplanowana żadna zwykła lekcja. - **Dni wolne dotyczące tylko niektórych klas** — na kampusie zagranicznym zestaw klas korzysta z kalendarza dni wolnych innego niż reszta placówki. *Wykluczone* okno na tych datach, zastosowane wyłącznie do tych klas, neutralizuje ten okres bez wpływu na pozostałe. #### Definiowanie okna dat Na ekranie edycji kalendarzowego planu lekcji, w sekcji Okna dat: 1. Dodaj otwiera selektor dat. 2. Proszę podać **etykietę** i wybrać rodzaj — zezwolenie albo wykluczenie. 3. Proszę wskazać daty na siatce kalendarza: kliknięcie i przeciągnięcie, cały tydzień, kolumna jednego dnia, skróty tygodni parzystych / nieparzystych albo odwrócenie zaznaczenia. 4. Proszę zapisać: okno trafia na listę wielokrotnego użytku danego planu lekcji. #### Stosowanie okna Po zdefiniowaniu okno jest proponowane w ograniczeniach czasowych **klas, grup i kursów** oraz w dostępności **sal**: proszę wskazać tam jedno okno lub kilka. To samo okno może służyć dowolnej liczbie jednostek — na tym właśnie polega korzyść z warstwy wielokrotnego użytku. #### Przy generowaniu Algorytm generowania traktuje okna jako ograniczenia: umieszcza lekcję wyłącznie w dozwolonych datach i nigdy w datach wykluczonych. #### Zobacz także - [Tryb kalendarzowy](#page-timetables.calendar-mode) - [Dostępność w trybie kalendarzowym](#page-timetables.calendar-wishes) - [Dostępność nauczycieli](#page-core-concepts.wishes-and-availability) - [Automatyczne generowanie](#page-timetables.generation) - [Ręczne umieszczanie](#page-timetables.manual-placement) ### 3.6 Krok 1 — Ustawienia ogólne *Source: `help/pl/timetables/general-settings.md` · id: timetables.general-settings · Audience: admin · Updated: 2026-07-17* Na zakładce **Ogólne** ustala się globalne ustawienia, które nadają strukturę planowi lekcji. Wartości wypełnione wstępnie pochodzą z [ustawień szkoły](#page-admin.parameters), które można też dostosować wcześniej. #### Pola do wypełnienia 1. **Etykieta** — nazwa planu lekcji („Plan lekcji 2025-2026”, „Sem. 1 2025”…). Widoczna wszędzie. Można ją zmienić. 2. **Opis** — dowolny tekst, przydatny, gdy planów lekcji jest kilka. 3. **Tryb wyświetlania** — domyślnie jeden wiersz na przedział czasowy, z godzinami po lewej stronie. Można wybrać styl anglosaski z numerami godzin albo widok kalendarzowy z pełnymi godzinami. 4. **Czas trwania przedziału czasowego** — wzorcowy czas trwania przedziału czasowego, ewentualnie wraz z przerwą międzylekcyjną. Jeśli lekcje trwają 55 min, a przerwa międzylekcyjna 5 min, proszę wpisać **60 min**. Jeśli zwykłe lekcje trwają 1,5 godz., proszę wpisać **90 min**. Czas trwania i podział są szczegółowo omówione w [Siatka godzin, przedziały czasowe i czasy trwania](#page-core-concepts.timetable-grid--slot-duration). 5. **Podział przedziału czasowego** — na ile części można podzielić czas trwania przedziału czasowego? Aby przy przedziale 60 min móc tworzyć lekcje trwające 1 godz., 1,5 godz. lub 2 godz., proszę wybrać **1/2**. Aby zejść do kwadransa, proszę wybrać **1/4**. - **Wskazówka**: nie warto schodzić niżej niż to konieczne. Im drobniejszy podział, tym dłuższe obliczenia podczas generowania. 6. **Dni robocze** — proszę zaznaczyć dni, w których odbywają się lekcje. Domyślnie od poniedziałku do piątku (chyba że ustawienia kraju są inne — kraje arabskie, Izrael…). 7. **Dla planów lekcji cyklicznych** — liczba dni cyklu. 8. **Dla planów lekcji kalendarzowych** — data początkowa i końcowa (można je później zmienić) oraz, w razie potrzeby, okna dat. #### Zapisywanie Przycisk Zapisz u dołu zapisuje konfigurację. #### Co dalej Po zatwierdzeniu tych ustawień proszę przejść do następnego kroku: [Lokalizacje, sale, zasoby](#page-timetables.sites-rooms). > **Wskazówka.** Przy migracji z innego systemu albo gdy chodzi tylko o > szybkie przetestowanie Omniscol, w przypadku masowego tworzenia dużej liczby > lekcji (po kilkaset naraz) [Import masowy przez arkusz kalkulacyjny](#page-timetables.mass-import) > jest szybszy niż wprowadzanie ekran po ekranie. Jednak im więcej danych > strukturalnych wprowadzi się wcześniej, tym lepszy będzie import. #### Instrukcja — Konfigurowanie ustawień ogólnych planu lekcji 1. **Krok 1 tworzenia planu lekcji**: ustalenie etykiety, czasu trwania przedziału czasowego, podziału oraz dni roboczych. Te wybory na długo nadają strukturę planowi lekcji — warto więc ustalić je starannie od samego początku. 2. **Etykieta i opis**: czytelna nazwa (`Plan lekcji 2026-2027`, `Sem. 1 2026 — II rok zarządzania`) oraz dowolny opis. Widoczne wszędzie w interfejsie. Można je zmienić, ale lepiej unikać zmiany nazwy po opublikowaniu. 3. **Tryb wyświetlania**: wiersz na przedział czasowy (domyślnie) albo numery godzin (styl anglosaski), albo kalendarz z pełnymi godzinami. Proszę kierować się praktyką przyjętą w swojej szkole. 4. **Czas trwania przedziału czasowego**: wzorcowy czas trwania przedziału czasowego. Lekcje 55 min z 5 min przerwy międzylekcyjnej → **60 min**. Zwykłe lekcje 1,5 godz. → **90 min**. Przy zachowaniu przedziału 60 min podział i tak pozwala na lekcje trwające 1,5 godz. 5. **Podział przedziału czasowego**: na ile części można podzielić czas trwania przedziału czasowego? **1/2** dla kroku 30 min przy przedziale 60 min, **1/4** dla kroku 15 min. Im drobniejszy podział, tym więcej możliwości musi sprawdzić algorytm generowania. 6. **Dni robocze**: proszę zaznaczyć od poniedziałku do piątku (domyślnie). Kraje arabskie, Izrael: od niedzieli do czwartku. W planach lekcji **cyklicznych**: liczba dni cyklu. W planach lekcji **kalendarzowych**: data początkowa i końcowa (można je później zmienić). 7. **Proszę zapisać** przyciskiem Zapisz. Następny krok: [Lokalizacje, sale, zasoby](#page-timetables.sites-rooms). Przy masowym tworzeniu dużej liczby lekcji zob. [Import masowy przez arkusz kalkulacyjny](#page-timetables.mass-import). #### Zobacz także - [Siatka godzin, przedziały czasowe i czasy trwania](#page-core-concepts.timetable-grid) - [Poprzedni krok — Wymagania wstępne](#page-timetables.prerequisites) - [Następny krok — Lokalizacje](#page-timetables.sites-rooms) - [Ustawienia ogólne szkoły](#page-admin.parameters) ### 3.7 Etap 2 — Lokalizacje, siatki godzin, sale, zasoby *Source: `help/pl/timetables/sites-rooms.md` · id: timetables.sites-rooms · Audience: admin · Updated: 2026-08-08* Na zakładce **Lokalizacje** odwzorowują Państwo fizyczny wymiar swojej placówki. #### Tworzenie lokalizacji Jeśli wszystkie lekcje odbywają się w jednym miejscu, wystarczy jedna lokalizacja. Proszę kliknąć Utwórz lokalizację i nadać jej nazwę. Jeśli placówka działa w wielu lokalizacjach, proszę utworzyć po jednej lokalizacji dla każdego odrębnego miejsca fizycznego. Proszę uzupełnić **czasy przejazdu** między lokalizacjami (macierz czasów). To rzecz kluczowa: bez nich Generowanie może umieścić nauczyciela o 9:00 w lokalizacji A, a o 10:05 w lokalizacji B oddalonej o 5 km, co fizycznie jest niemożliwe. Proszę nie mylić lokalizacji z kampusem: [kampus](#page-glossary.campus) to grupowanie organizacyjne, konfigurowane w ustawieniach ogólnych, natomiast lokalizacja niesie siatkę godzin, sale i czasy przejazdu. Zastosowania i ograniczenia opisuje [Lokalizacja](#page-glossary.site) (dwie wirtualne lokalizacje dla jednego miejsca, wybór między wieloma lokalizacjami a wieloma kontami itd.). #### Konfiguracja siatki godzin Każda lokalizacja ma własną **siatkę godzin**: - godziny rozpoczęcia i zakończenia przedziałów czasowych, - przerwy, - przerwa obiadowa, - zamknięcia (środa po południu, sobota…). Standardowe lekcje są przypisane do przedziałów czasowych tej siatki. Jeśli później zmienią Państwo godzinę przedziału, lekcje w nim umieszczone przejdą na nową siatkę. Godziny niestandardowe i klasy spoza siatki to przypadki szczególne, opisane w [Siatka godzin, przedziały czasowe i czasy trwania](#page-core-concepts.timetable-grid). Omniscol automatycznie podpowiada siatkę na podstawie wprowadzonych informacji, ale proszę ją przejrzeć i dostosować — ma to znaczenie zarówno dla wyglądu planu, jak i dla Generowania. Przedziały czasowe powinny odpowiadać [czasowi trwania przedziału](#page-core-concepts.timetable-grid--slot-duration) podanemu na [poprzednim ekranie](#page-timetables.general-settings). Jeśli na przykład dla standardowej lekcji wskazano 60 minut, każdy przedział jest liczony jako 1 godzina, niezależnie od faktycznie wpisanych godzin — bywa, że trwa on 50 lub 55 minut, bo wynik zależy od przerw. Jeśli rozbieżność między teorią a praktyką w danym przedziale jest zbyt duża, godziny mogą zaświecić się na czerwono, ostrzegając o błędnej konfiguracji. Proszę nie deklarować przerw jako przedziałów czasowych! Każdy przedział może przyjąć lekcje (chyba że oznaczono dany okres jako niedostępny). Częsty błąd polega na przekonaniu, że godziny mają bezpośredni wpływ: tak nie jest — Omniscol umieszcza lekcje w przedziałach czasowych, a dopiero potem wyświetla je z godzinami wpisanymi dla danego przedziału. #### Wprowadzanie sal Dla każdej lokalizacji proszę utworzyć [sale](#page-glossary.classroom). Pola: - **Nazwa** (obowiązkowa), - **Pojemność** (obowiązkowa — bez tego pola Generowanie nie może sprawdzić, czy sala jest odpowiednio dobrana), - **[Specjalizacje](#page-glossary.classroom-specialization)** (chemia, informatyka, sport… dowolne), - Maksymalna liczba klas dla **[dużej sali](#page-glossary.large-room)** (sala egzaminacyjna, teatr, sala gimnastyczna, basen, przestrzeń zewnętrzna). To pole pojawia się dopiero po wpisaniu specjalizacji, - **Budynek** (opcjonalnie), - **Ograniczenia czasowe** (przydatne dla sal współdzielonych z inną placówką lub zewnętrznych obiektów sportowych), - **Tagi / komentarz** (flipchart, gniazdka, komputery… dowolne). Sale można tworzyć **hurtowo**, wklejając je z arkusza kalkulacyjnego. ##### Kampus > _Plan: standard_ Pole kampus sali mówi, **której jednostce placówki ona służy**: wydziałowi, instytutowi, szkole w grupie, ścieżce kształcenia ustawicznego. Sala z wypełnionym polem kampus trafia na początek listy dla klas, które wybrały ten kampus wśród swoich sale priorytetowe, i można ją filtrować pod tą nazwą na ekranach sal. Pojęcie to pochodzi ze szkolnictwa wyższego, gdzie jest najczęstsze. Przydaje się też wszędzie tam, gdzie jedna placówka mieści kilka poziomów pod jednym dachem — zespół szkół, w którym każdy poziom ma swoje sale, albo lokalizacja przyjmująca szkołę podstawową i średnią. Sala może mieć **kilka wartości kampus**, pozostając przypisaną do **jednej wartości lokalizacja**. Tak wygląda przestrzeń współdzielona przez kilka wydziałów albo kilka szkół tej samej grupy. Oba pojęcia odpowiadają na różne pytania i uzupełniają się: kampus opisuje organizację, a lokalizacja opisuje miejsce i niesie ograniczenia fizyczne — siatkę godzin, lokalną zgodność, czasy przejazdu. Listą dostępnych wartości kampus zarządza się w [ustawieniach konta](#page-admin.parameters). > _Premium_ ##### Wiele sal Omniscol pozwala przypisać kilka sal do jednej lekcji, przy czym łączna pojemność jest sumą pojemności sal. Typowe zastosowania (egzaminy w rozdzielonych audytoriach, wykłady transmitowane, ćwiczenia dzielone itd.) opisuje [Wiele sal](#page-glossary.multi-room). ##### Specjalizacje **Specjalizacje** (pole dowolne) służą do wskazania, że dany przedmiot wymaga określonego typu sali. Generowanie przestrzega tego bezwzględnie. ##### Duża sala Sala specjalistyczna może stać się **[dużą salą](#page-glossary.large-room)**: wystarczy uzupełnić jej Maksymalna liczba klas, aby przyjmowała w tym samym czasie kilka różnych lekcji (z różnymi nauczycielami i grupami), w granicach tej liczby i jej pojemności. Dotyczy to sal egzaminacyjnych, teatrów, sal gimnastycznych, basenów i przestrzeni zewnętrznych. Pole pojawia się dopiero po nadaniu sali specjalizacji. #### Wprowadzanie zasobów [Zasoby](#page-glossary.resource) to sprzęt przenośny, niepowiązany z żadną konkretną salą (przenośne projektory, walizki z tabletami, zestawy…). Dla każdego zasobu proszę podać: - **Nazwę**, - **Dostępną ilość**. Walizka z 30 tabletami liczy się jako 1 (nie 30) — wpisuje się liczbę walizek. Nie ma potrzeby odwzorowywać zasobów, których „zawsze jest dość" — proszę robić to tylko dla rzeczywistych, współdzielonych limitów. > _Premium_ **Lokalizacje**, **sale** i **zasoby** mogą być synchronizowane z systemu zewnętrznego — każda lista ma wtedy przycisk synchronizacji (Synchronizuj, Synchronizuj, Synchronizuj). Więcej w [Synchronizacja z systemami zewnętrznymi](#page-integrations.extsync). #### Co dalej Następny etap: [Przypisywanie nauczycieli](#page-timetables.assigning-teachers). #### Instrukcja — Utworzenie lokalizacji i jej siatki godzin 1. **Lokalizacja** odwzorowuje odrębne miejsce fizyczne z własną siatką godzin (przedziały czasowe, przerwy, obiad). Wymagana jest co najmniej jedna lokalizacja. Ta procedura opisuje utworzenie lokalizacji i jej minimalnych zależności (sale, zasoby). 2. **Proszę kliknąć Utwórz lokalizację** i nadać lokalizacji nazwę (`Budynek główny`, `Filia w Krakowie`…). Jeśli zaczynają Państwo od jednej lokalizacji, jedna wystarczy. Przy wielu lokalizacjach proszę dodać tyle, ile miejsc fizycznych trzeba rozróżnić. 3. **Proszę skonfigurować siatkę godzin**: godziny rozpoczęcia i zakończenia przedziałów czasowych, przerwy między lekcjami, przerwę obiadową, zamknięcia (środa po południu, sobota…). 4. **Proszę wprowadzić sale**: nazwa, pojemność (pole kluczowe dla Generowania), specjalizacje (chemia, informatyka, sport…), godziny otwarcia, kampus, jeśli organizacja z niego korzysta. Kampus przy sali służy do uprzywilejowania jej dla niektórych klas, bez blokowania pozostałych pasujących sal. Ta sama sala może należeć do kilku kampusów. Sala należy do jednej lokalizacji — w sprawie sali używanej przez kilka wirtualnych lokalizacji proszę zajrzeć do [Lokalizacje, sale, zasoby — pojęcia](#page-core-concepts.sites-rooms-resources). 5. **Proszę wprowadzić zasoby** (sprzęt przenośny): nazwa - dostępna ilość. Proszę odwzorowywać tylko zasoby z rzeczywistym współdzielonym limitem (przenośne projektory, walizka z tabletami, zestaw mikrofonów), a nie te, których „zawsze jest dość". 6. **Przy wielu lokalizacjach proszę uzupełnić czasy przejazdu** w oknie odległości (trójkątna półmacierz). Bez tych czasów Generowanie „teleportuje" nauczycieli — niuanse opisuje [Wiele lokalizacji: zasady i czasy przejazdu](#page-core-concepts.sites-rooms-resources). #### Zobacz także - [Lokalizacje, sale, zasoby — pojęcia](#page-core-concepts.sites-rooms-resources) - [Kampus](#page-glossary.campus) - [Siatka godzin, przedziały czasowe i czasy trwania](#page-core-concepts.timetable-grid) - [Wiele sal](#page-glossary.multi-room) - [Specjalizacja sali](#page-glossary.classroom-specialization) ### 3.8 Krok 3 — Przypisywanie nauczycieli *Source: `help/pl/timetables/assigning-teachers.md` · id: timetables.assigning-teachers · Audience: admin · Updated: 2026-06-13* Na zakładce **Nauczyciele** wskazuje się, którzy nauczyciele są **zaangażowani** w ten plan lekcji — w odróżnieniu od tych, którzy są jedynie zadeklarowani na poziomie szkoły. #### Przypisywanie Proszę kliknąć Przypisz nauczycieli. Wyświetli się lista nauczycieli do wyboru. Proszę wybrać tych, których to dotyczy. Można **przypisywać etapami**: zacząć od nauczycieli już zatrudnionych, a nowych dodawać w miarę postępu rekrutacji. > _Premium_ Nauczycieli można synchronizować z systemu zewnętrznego: Synchronizuj otwiera ekran uzgadniania. Zob. [Synchronizacja z systemami zewnętrznymi](#page-integrations.extsync). #### Wirtualni nauczyciele Przycisk Wirtualny tworzy **wirtualnego nauczyciela**, który tymczasowo reprezentuje stanowisko do obsadzenia. Przydatne przy przygotowaniu początku roku szkolnego, bez czekania na zakończenie rekrutacji. Obok imienia i nazwiska pojawia się ikona [ghost]. Po zakończeniu rekrutacji przycisk Przekształć na końcu wiersza „urealnia” wirtualnego nauczyciela: proszę wybrać z listy prawdziwego nauczyciela, a wszystkie odwołania przejdą na niego — zarówno przypisania do przedmiotów w klasach, jak i wszystkie lekcje. Wirtualny nauczyciel znika wtedy definitywnie. **Operacja jest nieodwracalna.** #### Definitywne zastąpienie nauczyciela Ten sam przycisk Przekształć stosuje się również do nauczyciela **rzeczywistego**: przenosi wszystkie jego kursy na innego nauczyciela z listy — już przypisanego do tego planu lekcji albo jedynie zadeklarowanego na poziomie szkoły — a następnie usuwa pierwotnego nauczyciela z planu lekcji. Tak przeprowadza się **definitywne zastąpienie**, przydatne wtedy, gdy przewidziany nauczyciel wypada, zostaje przeniesiony albo musi zrezygnować ze swoich kursów: wszystkie lekcje i przypisania przechodzą na następcę w jednej operacji. **Operacja jest nieodwracalna.** #### Dostępność Jeśli wprowadzanie dostępności zostało włączone ustawieniem Dostępność nauczycieli (por. [Dostępność nauczycieli](#page-core-concepts.wishes-and-availability)), to właśnie tutaj **sprawdza się i zatwierdza** dostępność wpisaną przez nauczycieli. Można tu również: - zmienić **godziny pracy** (przewidywaną liczbę godzin tygodniowo, przejmowaną w nowych planach lekcji), - przypisać **preferowaną salę** (algorytm generowania traktuje ją priorytetowo przy lekcjach tego nauczyciela, chyba że klasa ma własną salę dedykowaną). #### Poziom szkoły a poziom planu lekcji Ważne: karta nauczyciela **na poziomie szkoły** zawiera dane identyfikujące (imię i nazwisko, e-mail, identyfikator logowania) i pozostaje stabilna. Karta nauczyciela **na poziomie planu lekcji** zawiera dane *związane z tym planem lekcji* (dostępność, preferowana sala, godziny pracy). Konsekwencja: poprawienie imienia lub nazwiska nauczyciela na ekranie Nauczyciele po utworzeniu planu lekcji nie zmienia planu — zachowuje on historyczne imię i nazwisko. To celowy wybór, który pozwala prześledzić historię, ale zakłada, że imię i nazwisko są poprawnie zapisane w momencie tworzenia planu lekcji. #### Nauczyciele na umowę (nauczyciele zewnętrzni) W przypadku nauczycieli na umowę zob. [słownik](#page-glossary.external-teacher). Tworzy się ich tak jak zwykłych nauczycieli. > _Premium_ Znacznik **Nauczyciel zewnętrzny** na karcie użytkownika dodaje małą ikonę [user-tie], która na niektórych ekranach odróżnia nauczycieli na umowę od etatowych. W przypadku profesorów wizytujących, którzy prowadzą pojedyncze lekcje (jedną lub dwie), zależnie od sytuacji można: - dodać ich jako drugiego nauczyciela lekcji (por. [Współnauczanie](#page-glossary.co-teaching)), - utworzyć osobny kurs na ich lekcje (przede wszystkim w trybie kalendarzowym). #### Co dalej Następny krok: [Tworzenie klas i ich grup](#page-timetables.creating-classes). #### Instrukcja — Przypisywanie nauczycieli do planu lekcji 1. **Krok 3 tworzenia planu lekcji**: proszę wskazać, którzy nauczyciele są **zaangażowani** w ten plan lekcji (w odróżnieniu od wszystkich zadeklarowanych na poziomie szkoły). 2. **Proszę przypisać nauczycieli już zatrudnionych** przez Przypisz nauczycieli. Wyświetli się lista nauczycieli zadeklarowanych na poziomie szkoły. Proszę wybrać tych, których dotyczy ten plan lekcji. Można **przypisywać etapami**: zacząć od etatowych, a nowych dodawać w miarę postępu rekrutacji. 3. **Dla każdego stanowiska do obsadzenia** proszę utworzyć **wirtualnego nauczyciela** przez Wirtualny. Ikona [ghost] go wyróżnia. Przydatne przy przygotowaniu początku roku szkolnego, bez blokowania się na rekrutacji. Po zakończeniu rekrutacji przycisk Przekształć na końcu wiersza przenosi wszystkie jego odwołania na prawdziwego nauczyciela wybranego z listy. Już umieszczone lekcje zostają zachowane. Ten sam przycisk służy do **definitywnego zastąpienia** jednego rzeczywistego nauczyciela innym (przeniesienie, rezygnacja…). **Proszę podać przedmioty nauczane** przez wirtualnego nauczyciela w tym planie lekcji: będzie wtedy proponowany w pierwszej kolejności dla tych przedmiotów przy przypisywaniu. 4. **Dostępność**: w tygodniowym planie lekcji **sprawdza się i zatwierdza** wpisy. W każdym typie planu lekcji można **przeglądać i uzupełniać** całą dostępność. Zob. [Dostępność nauczycieli](#page-core-concepts.wishes-and-availability). 5. **Preferowana sala** (opcjonalnie): jeśli nauczyciel ma salę dedykowaną, proszę przypisać ją tutaj przez [location-pin]. Algorytm generowania traktuje ją priorytetowo przy jego lekcjach, chyba że klasa ma już własną salę dedykowaną (priorytet klasy > priorytet nauczyciela). 6. **Następny krok**: [tworzenie klas i ich grup](#page-timetables.creating-classes). #### Zobacz także - [Dostępność nauczycieli](#page-core-concepts.wishes-and-availability) - [Zarządzanie nauczycielami na poziomie szkoły](#page-admin.teachers) - [Nauczyciel](#page-glossary.teacher) - [Nauczyciel zewnętrzny](#page-glossary.external-teacher) ### 3.9 Krok 4 — Tworzenie klas i ich grup *Source: `help/pl/timetables/creating-classes.md` · id: timetables.creating-classes · Audience: admin · Updated: 2026-10-01* To najbardziej strukturotwórczy krok. Na zakładce **Klasy** tworzy się klasy i ich grupy oraz podaje liczbę godzin dla każdego przedmiotu. #### 1. Tworzenie klas Proszę kliknąć Utwórz klasę. Dla każdej klasy: - **Nazwa** (obowiązkowa), - **Poziom** (spośród istniejących poziomów; aby dodać nowy, proszę kliknąć Utwórz), - **Kampus**, jeśli szkoła korzysta z tej organizacji, - domyślna **Lokalizacja** (algorytm generowania będzie szukał tylko wśród sal tej lokalizacji, o ile lekcja nie zostanie wyraźnie przypisana do innej lokalizacji), - **Sala dedykowana** (opcjonalnie — tam domyślnie będą się odbywać lekcje), - **Sale priorytetowe** (opcjonalnie — proszę wskazać Kampus i/lub etykiety sal, które mają być sprawdzane w pierwszej kolejności dla tej klasy), - **Teoretyczna liczba uczniów** (opcjonalna, ale zalecana przy doborze wielkości sal). Kampus i Lokalizacja odpowiadają na dwa różne pytania: Kampus wskazuje, do której jednostki szkoły należy klasa; Lokalizacja wskazuje, gdzie fizycznie się ona znajduje i jakie sale są używane domyślnie. Na planie lekcji typu kalendarz klasa ma jedną dodatkową opcję: Powtarzalne lekcje, która powtarza jej lekcje według wzorca tygodniowego, zamiast umieszczać je jedną po drugiej. Zob. [Tryb kalendarzowy](#page-timetables.calendar-mode--recurrence). ##### Sale priorytetowe Pole **Sale priorytetowe** opisuje sale, w których ta klasa ma swoje przyzwyczajenia, bez wyliczania ich jedna po drugiej: wskazuje się [kampus](#page-timetables.sites-rooms--campus), etykiety sal albo jedno i drugie, a każda sala nosząca jeden z tych znaczników wchodzi do zbioru. Wydział pracujący we własnych salach, kształcenie ustawiczne zachowujące swoje dwie sale wykładowe, ścieżka kształcenia rozłożona na różne lokalizacje: preferencja sprowadza się do jednego lub dwóch wyborów i obejmuje sale dodane później. Ten zbiór jest sprawdzany w pierwszej kolejności, zarówno przy automatycznym przydziale, jak i przy wyborze ręcznym. Gdy żadna z tych sal nie jest wolna, Omniscol wybiera inną odpowiednią salę. **Kampus** klasy służy natomiast do grupowania i do filtrów. Oba pola uzupełniają się — jedno mówi, do której jednostki szkoły klasa należy, drugie gdzie zwykle pracuje. ⚠ Jeśli lokalizacja nie zostanie przypisana, lekcje nie będą mogły zostać umieszczone (brak sal i brak siatki godzin). Przypomina o tym ostrzeżenie. #### 2. Tworzenie grup dla każdej klasy Proszę kliknąć przycisk Dodaj grupę przy wybranej klasie. Proszę utworzyć tyle grup, ile jest kursów, na których uczniowie nie uczą się całą klasą. Dla każdej grupy: - **Nazwa** i **kod** (warto wykorzystać oba, aby łatwo rozpoznawać grupy), - **Teoretyczna liczba uczniów**, - Jeśli kilka grup musi albo może być w **tym samym przedziale czasowym** (`Lab-A` i `Lab-B` albo `Język niemiecki` i `Język hiszpański`), proszę utworzyć [podział klasy](#page-core-concepts.class-divisions) przyciskiem Dodaj podział. Wskazówka: jeśli grupy jednej klasy są (prawie) identyczne z grupami innej, proszę użyć przycisku Importuj z innej klasy, aby zaimportować konfigurację i ją dostosować. > _Premium_ **Klasy** i **grupy** mogą być synchronizowane z systemu zewnętrznego: Synchronizuj i Synchronizuj otwierają ekran uzgadniania. Zob. [Synchronizacja z systemami zewnętrznymi](#page-integrations.extsync). #### 3. Konfigurowanie przedmiotów w klasie (kursy) Proszę przejść na zakładkę **Kursy** (albo użyć przycisku Kursy przy klasie). Każdy przedmiot przypisany w ten sposób do klasy — z jego liczbą godzin i ewentualnie typem (ćwiczenia, laboratorium, wykład…) — tworzy **[kurs](#page-glossary.course)**: podstawową jednostkę oferty dydaktycznej („matematyka w klasie 8a, 4 godziny tygodniowo, jako ćwiczenia”). Wszystkie kursy jednej klasy tworzą jej **program nauczania** (jej ramowy plan, jej informator). [Lekcje](#page-glossary.lesson), które zostaną potem umieszczone na siatce godzin, są jego wystąpieniami. Dla każdego kursu proszę podać: - **liczbę godzin** tygodniowo, - ewentualny **typ lekcji** (ćwiczenia, laboratorium, wykład…), - przypisanych **nauczycieli**, - **wagę pedagogiczną** (algorytm generowania stara się rozłożyć przedmiot na poszczególne dni), - **wymaganą salę specjalistyczną** (spośród [specjalizacji](#page-glossary.classroom-specialization) lokalizacji), - **preferencje umieszczania** (unikać matematyki na koniec dnia, wychowania fizycznego w najgorętszych godzinach…). Wskazówka: przyciskiem Importuj z innej klasy można ponownie wykorzystać konfigurację przedmiotów innej klasy. Okno dialogowe pozwala nawet zaimportować klasę z innego planu lekcji, a zakres importu można rozszerzyć: z zastąpieniem istniejącej listy albo bez, z przypisanymi nauczycielami, grupami, niekompatybilnościami i ograniczeniami czasowymi klasy albo bez nich. Można posunąć się do zduplikowania podziału na lekcje, również wybierając zakres importu. Jeśli chodzi o pozycje lekcji, na planie lekcji typu kalendarzowego można przesunąć dni (kolejność zostaje wtedy przeliczona według dni roboczych źródła i celu). Jest to bardzo wygodne dla instytucji, które prowadzą powtarzalne, pełne sesje, na przykład sześcio- lub ośmiotygodniowe, kilka razy w roku. #### 4. Niekompatybilności między przedmiotami [Niekompatybilność](#page-glossary.incompatibility) zakazuje, aby jeden przedmiot **następował** po drugim. Reguła jest **ukierunkowana**: „po przedmiocie A nie może następować przedmiot B” to nie to samo co reguła odwrotna. Typowy przypadek: „żadnej matematyki bezpośrednio po wychowaniu fizycznym”. Deklaruje się je na zakładce **Niekompatybilności** klasy. Przy tworzeniu reguły proszę wybrać **okno** jej obowiązywania: - **Bezpośrednio** — nie w bezpośrednio następnej lekcji, tego samego dnia. Np.: nie umieszczać wymagającego przedmiotu zaraz po wyczerpującym, „żadnej matematyki bezpośrednio po wychowaniu fizycznym”. - **Połowa dnia** — nie później w tej samej połowie dnia. Np.: przeplatać języki, „żadnego hiszpańskiego po angielskim” — a dla wzajemnego wykluczenia proszę dodać regułę odwrotną „żadnego angielskiego po hiszpańskim”. - **Dzień** — nie później tego samego dnia. Np.: rozłożyć przedmioty artystyczne, „żadnej plastyki po muzyce tego samego dnia”. Przy tego rodzaju równoważeniu **waga pedagogiczna** przedmiotu jest często prostszym rozwiązaniem. - **Tydzień** — nie później w tym samym tygodniu. Np.: zachować kolejność wykład, a potem laboratorium, „żadnego laboratorium z chemii przed wykładem z chemii”. - **Zawsze** *(plan lekcji kalendarzowy)* — nigdy potem, w całym okresie: narzędzie **sekwencjonowania** wymagań wstępnych. Np.: „żadnego C++ przed C”, „żadnych finansów przed rachunkowością”. Kilka wskazówek, aby nie pomylić ustawień: - **Przedmiot, którego nie należy umieszczać w określonym momencie** („matematyka nie w pierwszym przedziale czasowym”, „wychowanie fizyczne nie w środku dnia”) **nie jest** niekompatybilnością: służą do tego **ograniczenia czasowe kursu** ([clock]), które dotyczą bezwzględnej pozycji lekcji jednego kursu. - **Zapobieganie temu, aby przedmiot wracał dwa razy tego samego dnia**, rozwiązuje się prościej globalną opcją **niekompatybilności przedmiotu z samym sobą** niż regułami tworzonymi parami. - Niekompatybilność jest ograniczeniem **miękkim** (karą, którą algorytm generowania stara się wyeliminować), a nie blokadą: może utrzymać się w wygenerowanym planie lekcji, gdzie sygnalizuje ją [diagnostyka](#page-glossary.diagnostic). Proszę unikać ich nawarstwiania — każda z nich ogranicza swobodę algorytmu generowania. #### Co dalej Następny krok: [Wyrównania grup i grupy grup](#page-timetables.alignments-and-groups-of-groups), jeśli w szkole są międzyklasowe kursy wspólne ([kursy przekrojowe](#page-glossary.transverse-course)). W przeciwnym razie proszę przejść od razu do kroku [Podział godzin](#page-timetables.hour-distribution). #### Instrukcja — Tworzenie klasy wraz z grupami i podziałami klasy 1. **Klasa** zbiera uczniów realizujących ten sam tok nauki. Dzieli się na **grupy** (półklasy, przedmioty do wyboru, grupy poziomowe), a **podziały klasy** służą do zadeklarowania grup wzajemnie wykluczających się w obrębie klasy. 2. **Proszę kliknąć Utwórz klasę.** Proszę podać nazwę (`8a`, `INF1-S1`…), poziom (spośród skonfigurowanych), kampus, jeśli jest używany, domyślną lokalizację, ewentualnie salę dedykowaną i teoretyczną liczbę uczniów. Bez lokalizacji lekcje nie będą mogły zostać umieszczone — ostrzeżenie mówi o tym wyraźnie. 3. **Proszę utworzyć grupy** klasy. Jedna grupa na każdy odrębny cel dydaktyczny: `Lab-A`, `Lab-B` (półgrupy laboratoryjne), `Język niemiecki`, `Język hiszpański` (przedmioty do wyboru), `Angielski zaawansowany`, `Angielski podstawowy` (grupy poziomowe). Zdecydowane zalecenie: **jedna grupa na każdy odrębny kurs**, nawet jeśli uczniowie są ci sami. 4. **Proszę zadeklarować podziały klasy** — grupy wzajemnie wykluczające się. Proszę wybrać grupy (np. `Język niemiecki` + `Język hiszpański`) i kliknąć Dodaj podział. Bez podziału klasy algorytm generowania traktuje dwie grupy tej samej klasy jako potencjalnie konfliktowe. 5. **Proszę skonfigurować przedmioty w każdej klasie**: tygodniową liczbę godzin, przypisanych nauczycieli, domyślny typ lekcji. Przedmioty wybiera się z katalogu przedmiotów szkoły (oficjalnych albo niestandardowych). 6. **Następny krok**: [Wyrównania grup i grupy grup](#page-timetables.alignments-and-groups-of-groups) jeśli są kursy wspólne dla kilku klas, w przeciwnym razie od razu [Podział godzin](#page-timetables.hour-distribution). #### Zobacz także - [Klasa, grupa, podgrupa](#page-core-concepts.classes-and-groups) - [Podziały klasy](#page-core-concepts.class-divisions) - [Kampus](#page-glossary.campus) - [Klasa](#page-glossary.class) - [Grupa](#page-glossary.group) ### 3.10 Krok 5 — Wyrównania grup i grupy grup *Source: `help/pl/timetables/alignments-and-groups-of-groups.md` · id: timetables.alignments-and-groups-of-groups · Audience: admin · Updated: 2026-05-10* Ten krok jest **opcjonalny** — proszę go pominąć, jeśli w szkole nie ma międzyklasowych kursów wspólnych. Staje się potrzebny wtedy, gdy uczniowie z różnych klas mają realizować **ten sam kurs razem** (uczniowie łaciny z kilku klas, międzyklasowe przedmioty do wyboru, przedmioty rozszerzone itp.). #### Wyrównania grup Można ich używać we **wszystkich** typach planu lekcji, ale największy sens mają w planach **powtarzalnych** (tygodniowym / cyklicznym) z klasami równoległymi o identycznej strukturze. Zob. stronę referencyjną: [Wyrównania grup](#page-core-concepts.alignments). W skrócie: - Proszę najpierw utworzyć w każdej z wyrównywanych klas **grupę** o identycznej nazwie („Łacina” w klasie 2A, w 2B i w 2C). - Następnie na zakładce **Wyrównanie grup** proszę kliknąć Dodaj wyrównanie i powiązać grupy z trzech klas. - Proszę sprawdzić, czy **liczba godzin jest identyczna** w wyrównanych grupach (w przeciwnym razie Omniscol zgłosi niespójność w diagnostyce). #### Grupy grup Zob. stronę referencyjną: [Grupy grup](#page-core-concepts.groups-of-groups). W skrócie: - Zakładka **Grupa grup**. - Proszę utworzyć grupę grup, wybierając grupy składowe (z tej samej klasy albo z różnych klas). - Następnie proszę przypisać kursy do grupy grup — pojawią się one we wszystkich klasach nadrzędnych. - Można ją zmieniać w dowolnym momencie (dodanie / usunięcie grup składowych). #### Bezpośrednie przypisanie kilku grup do lekcji Istnieje także skrót pozwalający **przypisać kilka grup wprost do lekcji**, bez tworzenia nazwanej grupy grup. Ten tryb jest wygodny przy potrzebie **doraźnej** albo wtedy, gdy dopiero sprawdza się różne możliwości: - w selektorze grupy danej lekcji zaznacza się kilka grup; - lekcja jest wtedy dzielona między te grupy, bez powstania osobnej nazwanej jednostki; - można potem wrócić do zwykłej grupy albo sformalizować ten przypadek jako grupę grup, jeśli potrzeba okaże się trwała. Jest to natomiast **mniej czytelne** i **trudniejsze do ponownego użycia** niż nazwana grupa grup: traci się jawnie wyrażoną intencję organizacyjną i trudniej odnaleźć, ponownie zmienić czy zastosować to samo zgrupowanie na kilku lekcjach. #### Kiedy używać jednego, a kiedy drugiego | Sytuacja | Narzędzie | | --- | --- | | Powtarzalny kurs wspólny w trybie tygodniowym / cyklicznym | **Wyrównanie grup** | | Doraźny lub zmieniający się kurs wspólny | **Grupa grup** | | Skład, który może się zmieniać | **Grupa grup** | | Potrzeba doraźna bez nazwanej struktury | **Bezpośrednie przypisanie kilku grup** | | Konfiguracja ustalona na stałe | **Wyrównanie grup** albo **grupa grup** | #### Typowe pułapki - **Różna liczba godzin w wyrównanych grupach.** Jeśli jedna grupa ma 3 godziny łaciny, a inna 2, wyrównanie zgłasza to w diagnostyce. Albo ujednolica się liczbę godzin, albo rezygnuje się z wyrównania. - **Kurs wspólny tylko dla 2 klas** z 3 wyrównanych. Aby jedna z klas miała w tym przedziale czasowym własny, samodzielny kurs, trzeba zduplikować jej grupę i wyłączyć kopię z wyrównania. - **Uczniowie zapisani w dwóch klasach** (na przykład uczeń, który realizuje łacinę w klasie 2A, ale jest zapisany w 2B). Rozwiązanie: utworzyć grupę „Łacina” w klasie 2A *i* w 2B z tym samym uczniem w obu, a następnie wyrównać obie grupy. #### Co dalej Następny krok: [Podział godzin i tworzenie lekcji](#page-timetables.hour-distribution). #### Instrukcja — Utworzenie międzyklasowego wyrównania grup 1. **Wyrównanie grup** deklaruje, że kilka grup z **różnych klas** ma realizować ten sam kurs, o tej samej godzinie, w tej samej sali, z tym samym nauczycielem. Typowy przypadek: uczniowie łaciny z klas 2A, 2B i 2C. 2. **Warunek wstępny**: proszę najpierw utworzyć **w każdej z wyrównywanych klas** grupę o **tej samej nazwie logicznej** (`Łacina` w klasie 2A, w 2B i w 2C). Zob. [Utworzenie klasy z jej grupami](#page-timetables.creating-classes). 3. **Zakładka Wyrównanie grup** → proszę kliknąć Dodaj wyrównanie. Proszę wybrać grupy z poszczególnych klas (`Łacina 2A`, `Łacina 2B`, `Łacina 2C`). Proszę zatwierdzić. 4. **Proszę sprawdzić liczbę godzin**: musi być identyczna w wyrównanych grupach (na przykład 3 godziny łaciny wszędzie). W przeciwnym razie Omniscol zgłasza niespójność w diagnostyce. 5. **Tryb kalendarzowy**: lepiej wybrać [grupy grup](#page-core-concepts.groups-of-groups), które są bardziej elastyczne (można je zmieniać po fakcie, dodawać / usuwać grupy bez duplikowania). Przycisk Dodaj grupę grup na dedykowanej zakładce. Jeśli potrzeba jest **doraźna**, można też przypisać kilka grup wprost do lekcji z selektora grupy, bez tworzenia nazwanej grupy grup. 6. **Następny krok**: [Podział godzin i tworzenie lekcji](#page-timetables.hour-distribution). #### Zobacz także - [Wyrównania grup](#page-core-concepts.alignments) - [Grupy grup](#page-core-concepts.groups-of-groups) - [Kurs przekrojowy](#page-glossary.transverse-course) - [Wyrównanie grup](#page-glossary.alignment) - [Grupa grup](#page-glossary.groups-of-groups) ### 3.11 Krok 6 — Podział godzin i tworzenie lekcji *Source: `help/pl/timetables/hour-distribution.md` · id: timetables.hour-distribution · Audience: admin · Updated: 2026-09-23* Liczby godzin dla każdego przedmiotu w każdej klasie zostały już zadeklarowane (krok 4). Tutaj rozbija się te liczby na **poszczególne lekcje**. Ekran dzieli się na dwie części: - **Po lewej**: lista klas i ich **kursów** (przedmioty klasy, ewentualnie rozbite na typy), wraz z dynamicznym licznikiem godzin już utworzonych przy każdym kursie. - **Po prawej**: lekcje utworzone dla zaznaczonej klasy. #### Trzy tryby wyświetlania Na prawym panelu pracuje się w **trzech trybach**, przełączanych selektorem w jego lewym górnym rogu. Każdy ma swoje zastosowanie, a przejście z jednego do drugiego odbywa się **bez utraty rozpoczętej pracy**. ##### Karteczki (domyślnie) Lekcje pojawiają się jako **karty** uporządkowane według przedmiotu albo według daty (w planach lekcji typu kalendarzowego). To właśnie ten tryb jest omówiony szczegółowo w dalszej części strony: dwuklik, aby utworzyć, przeciągnięcie krawędzi, aby ustalić czas trwania, ikony karty, aby ustawić atrybuty. - **Zalety**: bardzo poglądowy; idealny do **tworzenia** lekcji, rozbijania liczby godzin, regulowania czasu trwania przeciąganiem i obsługi złożonych lekcji (naprzemiennych, połączonych…) wprost na karcie. - **Wady**: niewygodny, gdy trzeba działać na **wielu** lekcjach naraz, uzyskać drobno filtrowany widok całości, zobaczyć pozycje i szybko umieszczać lekcje. ##### Plany lekcji (reorganizacja) Lekcje wyświetlają się w układzie bliskim planowi lekcji, gotowe do **zbiorczej reorganizacji**. - **Zaznaczanie**: kliknięcie zaznacza lekcję i otwiera interaktywną kartę. - **Wielokrotne zaznaczanie**: **Shift+kliknięcie** rozszerza zaznaczenie na **zakres**. Zaznaczone lekcje edytuje się wtedy **razem**, na wspólnej karcie (masowy czas trwania, wspólne atrybuty…). - **Filtry dynamiczne** oraz **wybór dni do wyświetlenia** zawężają widok do tego, nad czym się właśnie pracuje. - **Filtry „oczekujące”**: pozwalają wyodrębnić lekcje **oczekujące na salę** albo **oczekujące na nauczyciela**, aby dokończyć brakujące przypisania; wskaźniki ostrzegawcze pokazują, co pozostaje do uzupełnienia. - **Przełącznik dni / jednostek** zmienia orientację osi planu zależnie od tego, co się porównuje. - **Zalety**: bardzo skuteczne ręczne umieszczanie, widoki krzyżowe (na przykład klasa + nauczyciel), reorganizacja wielu lekcji, ukierunkowane filtrowanie pozwalające zająć się brakami, szybka edycja **zbiorcza** wprost na kalendarzu. - **Wady**: mniej bezpośredni niż karteczki przy pierwszym tworzeniu, brak tworzenia złożonych lekcji, mniej drobnego filtrowania do przeglądu i edycji zbiorczej. ##### Lista **Widok tabelaryczny** lekcji: jeden **wiersz na lekcję**, jedna **kolumna na każdą informację** (status, klasa, przedmiot, czas trwania, pozycja, tygodnie naprzemienne, nauczyciel, grupa, sala, liczba uczniów, zasób, notatka). - **Sortowanie**: **każdą kolumnę** można sortować — proszę kliknąć jej nagłówek, aby po niej posortować, i kliknąć ponownie, aby odwrócić kierunek (rosnąco / malejąco). - **Filtrowanie według kolumny**: pod każdym nagłówkiem **rozwijane menu wielokrotnego wyboru** filtruje kolumnę (czasem **dwa** menu dla kolumny złożonej, takiej jak dzień + godzina; pole przedziałów `>=10, <5, 10-20` dla liczby uczniów). Kilka wartości w **tym samym menu** łączy się operatorem **LUB**, chyba że są to wartości różnego rodzaju (na przykład przy salach: między etykietami, wideokonferencją, wielkością i nazwą) — wtedy jest to **I**; filtry założone na **kilku kolumnach** kumulują się operatorem **I**. Przycisk zeruje wszystkie filtry. - **Stronicowanie**: przy dużej liczbie danych lista dzieli się na strony; rozmiar strony **dostosowuje się automatycznie** (od kilkuset do kilku tysięcy wierszy), aby zachować płynność. - **Uproszczona edycja masowa**: proszę zaznaczyć wybrane lekcje (kolumna zaznaczania), a następnie użyć **przycisku działania w nagłówku** kolumny (czas trwania, nauczyciel, grupa, sala…), aby zastosować zmianę **za jednym razem** do całego zaznaczenia. - **Automatyczne przydzielanie sal**: proszę wybrać **zestaw lekcji** i **zestaw sal**; algorytm proponuje **optymalny przydział** (liczba uczniów, ograniczenia sal, dostępność), który **koryguje się wiersz po wierszu** przed zatwierdzeniem. Zob. [Automatyczne przydzielanie sal](#page-timetables.auto-room-assignment). - **Zalety**: sortowalny widok całości, **drobne filtrowanie według kolumny**, **masowa** edycja i przydzielanie sal. - **Wady**: mniej wizualnego kontekstu czasowego niż w dwóch pozostałych trybach, brak tworzenia złożonych lekcji. #### Tworzenie lekcji *Lekcja* to pojedyncze wystąpienie **kursu** (jego przedmiot, czas trwania, czasem grupa, zwykle nauczyciel i sala), umieszczane następnie w planie lekcji. Proszę zaznaczyć klasę, a następnie **dwukrotnie kliknąć kurs**: zostanie utworzona lekcja tego przedmiotu z wartościami domyślnymi (czas trwania = jednostka czasu klasy, nauczyciel lub nauczyciele kursu, ewentualnie sala domyślna). Powstaje **bez pozycji** i trafia do **lekcji jeszcze nieumieszczonych**, gotowa do umieszczenia przez algorytm generowania albo ręcznie. Dwuklik działa we wszystkich trzech trybach; lista kursów znajduje się po prostu w innym miejscu: na środku w karteczkach, **pod każdą klasą w panelu po lewej** w planach lekcji i na liście. Sposób **ustawiania** lekcji (czas trwania, grupa, nauczyciel, sala, zasób) zależy potem od tego, jak jest wyświetlana: - **Dopóki jest kartą** — w karteczkach albo jeszcze nieumieszczona w widoku planów lekcji — proszę przeciągnąć **dolną krawędź**, aby ustalić czas trwania, i kliknąć **ikony** karty, aby ustawić atrybuty. - **Po umieszczeniu w kalendarzu albo na liście** ustawienia przechodzą przez **rozwijane menu**: kartę *Modyfikacja lekcji* (kliknięcie lekcji w kalendarzu) albo menu wiersza i kolumny na liście — te ostatnie pozwalają dodatkowo na edycję **masową**. #### Rozbicie liczby godzin Przykład: 4 godz. kursu matematyki tygodniowo mogą dać: - 4 lekcje po 1 godz., albo - 2 lekcje po 2 godz., albo - 1 lekcję po 2 godz. + 2 lekcje po 1 godz. Wyboru dokonuje się zależnie od przyjętego rytmu dydaktycznego. Licznik kursu nieprzerwanie śledzi postęp (zob. poniżej). ##### Automatyczny przydział Menu Akcje udostępnia **Automatyczny przydział**, który za jednym razem uzupełnia **brakującą liczbę godzin** każdego kursu: dodaje lekcje o wybranym czasie trwania (1 lub 2 przedziały czasowe siatki, 3 i 4 w kalendarzu — wartość w godzinach zależy więc od czasu trwania przedziału w planie lekcji) i kończy krótszą lekcją, jeśli reszta nie jest całkowita. Respektuje lekcje już utworzone, wstawia domyślnych nauczycieli i domyślną salę, a wszystko pozostawia **nieumieszczone**. Działa tylko na **kursach widocznych**: warto łączyć go z **filtrem** (Filtruj) według przedmiotu albo typu, aby przydzielić godziny na przykład tylko kursom typu „Wykład”. Na **liście** obejmuje **wszystkie klasy** naraz; w pozostałych trybach — **zaznaczoną klasę**. #### Licznik godzin przy każdym kursie Każdy kurs po lewej nosi licznik, który przeciwstawia **godziny utworzone** **docelowej liczbie godzin** zadeklarowanej w kroku 4 (na przykład `3 godz. / 4 godz.`). Postęp sygnalizuje **wygląd karty**: - **Poniżej liczby godzin**: wygląd zwykły — pozostają godziny do utworzenia. - **Dokładnie na liczbie godzin**: karta **przygasa** (staje się bardziej przejrzysta) — znak, że jest domknięta. - **Powyżej liczby godzin**: **czerwona obwódka** — utworzono za dużo godzin. Sam wskaźnik licznika przejmuje po prostu **kolor przedmiotu** (może więc być zielony, niebieski… bez związku z postępem); po najechaniu kursorem karta zostaje podkreślona kolorem akcentu interfejsu. Najechanie kursorem pokazuje też podpowiedź ze szczegółowym **rozbiciem** utworzonych lekcji (czasy trwania, typy, tygodnie naprzemienne, wersje robocze / anulowane). ##### Podgrupy i wskaźnik równowagi Gdy kurs jest prowadzony w **podziale klasy** (kilka podgrup mających lekcje **w tym samym czasie**, typowo półklasy), licznik **nie mnoży** godzin przez liczbę grup: podział klasy liczy się **tylko raz** — w przeciwnym razie suma pokazywałaby `n × liczba godzin`, co nie miałoby sensu. Pozostaje sprawdzić, czy wszystkie podgrupy otrzymują tę samą liczbę godzin: służy do tego ikona [scale-balanced], która pojawia się wtedy po prawej stronie kursu. - **Zielona waga** — *Grupy w podziale zrównoważone*: wszystkie podgrupy mają tę samą liczbę godzin. - **Pomarańczowa waga** — *Grupy w podziale niezrównoważone*: któraś podgrupa ma więcej albo mniej godzin niż pozostałe. Najechanie kursorem na ikonę wypisuje **szczegóły w rozbiciu na grupy** (godziny każdej podgrupy), aby od razu wskazać tę, którą trzeba nadrobić. #### Duplikowanie lekcji Współistnieją dwa poziomy duplikowania. **Szybki klon.** Ikona Duplikuj — obecna zarówno na karteczce, jak i w każdym wierszu listy — tworzy **jedną kopię** lekcji w **strefie tymczasowej** (nieumieszczoną), wraz z atrybutami. Idealna do tworzenia serii identycznych lekcji. **Zaawansowane duplikowanie.** Na karcie lekcji (okno *Modyfikacja lekcji*) przycisk kopiowania z rozwijaną strzałką otwiera menu znacznie bogatsze, wykorzystywane przede wszystkim w widoku **planów lekcji / kalendarza**. Najpierw wybiera się, **ile** kopii (od 1 do 999) — albo, w planie lekcji typu kalendarzowego, **do jakiej daty** — a następnie **jak** je umieścić: - **Nowa lekcja w strefie tymczasowej** — kopie pozostawione nieumieszczone. - **Ten sam przedział czasowy** — powtarza lekcję w tym samym przedziale. - **Następne wolne przedziały czasowe** — automatycznie szuka przedziałów zgodnych z czasem trwania. - **Następne dni** / **poprzednie dni** — przesuwa na dni sąsiednie. - **Następne tygodnie** / **poprzednie tygodnie** — *(tylko kalendarz)* przenosi z tygodnia na tygodzień. - **Wybierz przedziały czasowe** — wolne przedziały wskazuje się samodzielnie na planie. Przy opcjach dziennych i tygodniowych przycisk **„Wolne”** ogranicza poszukiwania wyłącznie do przedziałów niezajętych. W kalendarzu poszukiwania mogą nawet wyjść poza bieżący plan lekcji, gdy działa porównanie między planami lekcji. #### Notatki Do lekcji można dołączyć **notatkę** (swobodny komentarz) ikoną Komentarz. Notatek może być kilka, o różnych **poziomach widoczności**: - tylko administratorzy, - administratorzy + nauczyciele, - wszyscy (widoczne dla uczniów i na panelu informacyjnym). Notatki pojawiają się w podpowiedziach po najechaniu kursorem na lekcje w planach lekcji. #### Złożone lekcje Konfiguracjom zaawansowanym jest poświęcona osobna strona: [Złożone lekcje](#page-core-concepts.complex-lessons). W skrócie: - **Naprzemienne** (tygodnie A/B) — przycisk Dodaj tydzień w prawym górnym rogu lekcji dodaje kolejny tydzień naprzemienności. - **Połączone** (następujące po sobie) — przeciągnięcie i upuszczenie jednej lekcji pod drugą. - **Skojarzone** (naprzemienne grupy połówkowe) — przycisk, który pojawia się między dwiema lekcjami połączonymi. - **Współnauczane** (kilku nauczycieli na tej samej lekcji) — wybór wielu nauczycieli przyciskiem Przypisz nauczycieli. #### Działania masowe Menu Akcje w prawym górnym rogu daje dostęp do operacji masowych: - **Anulowanie umieszczenia** wszystkich lekcji (z wyjątkiem zablokowanych), - **Odblokowanie pozycji** lekcji, - **Usunięcie przypisanych sal**, - **Przypisanie sal wstępnie skonfigurowanych** (domyślnej sali klasy albo nauczyciela, z pominięciem sal specjalnych), - **Automatyczny przydział** lekcji na 1 lub 2 przedziały czasowe, - **Import / eksport przez arkusz kalkulacyjny** (zob. [Import masowy](#page-timetables.mass-import)), - **Usunięcie wszystkich lekcji** klasy ⚠. #### Dynamiczne wykrywanie błędów Przy każdej zmianie Omniscol sprawdza spójność i wyświetla alerty u góry ekranu oraz na klasach i lekcjach, których dotyczą. Zob. [Diagnostyka](#page-glossary.diagnostic). W planie lekcji kalendarzowym weryfikacja ta uwzględnia też inne plany lekcji opublikowane w tych samych datach oraz konta powiązane: zob. [konflikty z innym planem lekcji](#page-timetables.conflicts--other-timetable). #### Zapisywanie ⚠ Usunięcie lekcji jest **natychmiastowe i nieodwracalne** (chyba że praca nie została jeszcze zapisana). Proszę regularnie zapisywać przyciskiem Zapisz. Na tym ekranie nie ma globalnej funkcji cofnij / ponów. Przed zapisaniem proszę jeszcze raz przejrzeć usunięcia i działania masowe. #### Co dalej Następny krok: [Automatyczne generowanie](#page-timetables.generation). #### Instrukcja — Podział godzin kursu 1. **Liczby godzin każdego kursu** zostały zadeklarowane na jego klasach w kroku 4. Ten krok **rozbija** te liczby na poszczególne lekcje (jedna lekcja = jeden przedział czasowy, umieszczany następnie przez algorytm generowania albo ręcznie). 2. **Proszę zaznaczyć klasę po lewej.** Prawy panel pokazuje lekcje już utworzone dla tej klasy, zgrupowane według kursów. Licznik każdego kursu przeciwstawia godziny utworzone docelowej liczbie godzin (`3 godz. / 4 godz.`): karta przygasa, gdy liczba godzin zostanie osiągnięta, i dostaje czerwoną obwódkę, gdy zostanie przekroczona. 3. **Proszę dwukrotnie kliknąć kurs**, aby dodać lekcję z ustawieniami domyślnymi (czas trwania, typ). Proszę przeciągnąć **dolną krawędź** lekcji, aby wyregulować czas trwania. Proszę kliknąć **ikony** na karcie, aby zmienić grupę, nauczyciela, salę, zasoby. 4. **Liczbę godzin można rozbić dowolnie**: kurs 4 godz. = 4 lekcje po 1 godz., albo 2 lekcje po 2 godz., albo mieszanka. Karta kursu przygasa, gdy tylko zostanie osiągnięta dokładnie docelowa liczba godzin. W podziale klasy (jednoczesne podgrupy) zielona / pomarańczowa ikona [scale-balanced] sygnalizuje, czy wszystkie podgrupy otrzymują tę samą liczbę godzin. 5. **Przy serii identycznych lekcji** proszę utworzyć pierwszą, a potem **duplikować**: szybki klon do strefy tymczasowej przez Duplikuj, albo zaawansowane duplikowanie z karty (ten sam przedział, sąsiednie dni / tygodnie, wolne przedziały…), zwłaszcza w widoku kalendarza. 6. **Złożone lekcje** (naprzemienne A/B, połączone w podwójny przedział czasowy, skojarzone z rotacją, współnauczane przez kilku nauczycieli): zob. odpowiednie ikony na karcie lekcji oraz stronę [Złożone lekcje](#page-core-concepts.complex-lessons). 7. **Następny krok**: [Automatyczne generowanie](#page-timetables.generation). #### Zobacz także - [Złożone lekcje](#page-core-concepts.complex-lessons) - [Masowy import kursów z arkusza kalkulacyjnego](#page-timetables.mass-import) - [Kurs](#page-glossary.course) - [Lekcja / Godzina lekcyjna](#page-glossary.lesson) ### 3.12 Polityka podziału godzin *Source: `help/pl/timetables/distribution-policy.md` · id: timetables.distribution-policy · Audience: admin · Plan: premium · Updated: 2026-09-14* > **Premium** > _Premium_ Kurs ma liczbę godzin widzianą z punktu widzenia ucznia: 24 godz. analizy finansowej na pierwszym roku. Zbudowanie planu lekcji wymaga przełożenia tej liczby na lekcje — a jeśli klasa pracuje w podziałach, te 24 godz. powtarzają się tyle razy, ile jest grup do obsłużenia. Tym **opcjonalnym** ogniwem między liczbą godzin a lekcjami, które ją wypełnią, jest polityka podziału godzin. Opisuje ona, jeszcze zanim powstanie choćby jedna lekcja, co ma zawierać plan lekcji: > Grupa A · pani Kowalska · 4 lekcje po 2 godz. To **planowanie wstępne**. W wielu placówkach nie decyduje o nim nawet osoba, która buduje plan lekcji: dział dydaktyczny zatwierdza program nauczania, a planista stosuje go bez większej swobody. Polityka jest miejscem, w którym ta decyzja zostaje zapisana wprost, obok kursu, którego dotyczy. Raz ustalona, służy trzykrotnie: - **kieruje tworzeniem lekcji**: na ekranie [Podział godzin i tworzenie lekcji](#page-timetables.hour-distribution) lekcje, które opisuje, a których jeszcze brakuje, powstają w jednej operacji — wraz ze swoimi odbiorcami, nauczycielami, salą i czasem trwania; - **kontroluje rozbieżność w czasie rzeczywistym**: w trakcie pracy wskaźnik porównuje to, czego polityka oczekuje, z tym, co plan lekcji zawiera, i sygnalizuje najmniejszą niezgodność; - **nadrabia tę rozbieżność**: kliknięcie przycisku Uzgodnić sprowadza odbiegającą lekcję do kryteriów narzuconych przez regułę, bez usuwania jej i odtwarzania. #### Opisuje podział, nie planuje Polityka **oznajmia**: tyle lekcji, o takim czasie trwania, dla takich odbiorców. Sama nie buduje żadnej lekcji i żadnej nie umieszcza w siatce godzin. Praca planistyczna toczy się **na ekranie [Podział godzin i tworzenie lekcji](#page-timetables.hour-distribution) i tylko tam**: to tam lekcje powstają, są korygowane i umieszczane. Polityka jedynie wskazuje mu, co powinien zawierać — i sygnalizuje, kiedy tak nie jest. #### Gdzie umiejscawia się polityka ```mermaid flowchart LR M["Przedmiot
dyscyplina
np. analiza finansowa"] C["Kurs
przedmiot w jednej klasie
liczba godzin, nauczyciele"] subgraph P["Polityka podziału godzin (opcjonalna)"] L1["Reguła 1
grupa A · 4 × 2 godz."] L2["Reguła 2
cała klasa · 1 × 3 godz."] end S["Lekcje
to, co rzeczywiście istnieje
w planie lekcji"] M -->|nauczany w klasie| C C -->|nosi swoją politykę| P L1 -->|oczekiwane lekcje| S L2 -->|oczekiwane lekcje| S S -.->|rozbieżność mierzona zwrotnie| P ``` Polityka należy do **kursu** — przedmiotu w takiej postaci, w jakiej jest nauczany w jednej klasie. Dwie klasy, które uczą się tego samego przedmiotu, mają każda swoją. Kurs rozbity na typy (wykład, ćwiczenia) liczy się jako odrębny kurs, a więc i odrębna polityka. #### Otwieranie polityki kursu W planie lekcji proszę otworzyć klasę, a następnie jej zakładkę Kursy. Każdy kurs rozwija się, pokazując swoje opcje; pozycja Polityka podziału godzin otwiera edytor przyciskiem Polityka podziału godzin. Edytor wymienia jedną **regułę na każdą serię oczekiwanych lekcji**. U dołu tabeli czeka wiersz do wypełnienia; proszę go wypełnić i zatwierdzić przyciskiem Dodaj. Każdą zapisaną regułę można zduplikować lub usunąć przyciskami na końcu jej wiersza, a Zatwierdź zapisuje całość. #### Kolumny reguły Kod — kod tych lekcji w nomenklaturze placówki. Opcjonalny i dowolny: dwie reguły mogą nosić ten sam kod, gdy opisują ten sam moduł kształcenia podzielony na dwa rytmy albo nauczanie współdzielone przez kilka grup. Grupa — jedna lub kilka grup klasy. Pozostawiona pusta oznacza Brak grup: lekcja jest skierowana do całej klasy. Kilka grup wskazanych razem tworzy jeden zbiór odbiorców, tak jak na lekcji. Nauczyciele i Sale mają trzy stany, te same co na lekcji: - **pozostawione puste niczego nie narzucają**: reguła się nie wypowiada, a lekcje, które tworzy, są z tej strony wolne. Uzupełnia się je potem jak każdą inną lekcję; - Brak nauczycieli i Brak sal wymagają lekcji, które ich nie mają; - wypisana lista wymaga **dokładnie** takiego składu. Podział godzin — liczba lekcji i czas trwania każdej z nich: `4 × 2 godz.`. Jedna reguła opisuje wyłącznie lekcje o identycznej długości; liczbę godzin podzieloną na różne czasy trwania deklaruje się w kilku regułach. Powtarzalność — pożądany rytm: na przykład dwa razy w tygodniu albo raz na trzy tygodnie. **To wskazówka dla algorytmu generowania**: mówi mu, jak rozłożyć lekcje w czasie. Rytm nie wchodzi do kontroli rozbieżności, która ocenia wyłącznie istnienie lekcji. Tą kolumną rządzą dwa ustawienia, na dwóch poziomach. Klasa nosi Powtarzalne lekcje: jej lekcje powtarzają się według wzorca tygodniowego, zamiast być umieszczane jedna po drugiej — ustawienie istnieje wyłącznie na kalendarzowym planie lekcji. Kurs tej klasy może się z tego wycofać opcją Poza powtarzalnością: jego automatyczne umieszczanie nie będzie wtedy podążać za żadnym wzorcem. Kolumna pojawia się więc wyłącznie na powtarzalnym kursie powtarzalnej klasy; w pozostałych przypadkach polityka nadal mówi, ile lekcji i o jakim czasie trwania, ale nic o ich rytmie. Ustawienie Automatyczny pozwala wyprowadzić rytm z **liczby lekcji odniesionej do tygodni nauczania**: osiem lekcji na dwanaście tygodni daje dwie lekcje na trzy tygodnie. **Proszę zadbać o spójność między tym rytmem a żądaną liczbą lekcji.** Rytm, który domaga się większej liczby lekcji, niż reguła zawiera, jest nie do utrzymania: liczba zmienia się na czerwoną, aby to zasygnalizować. Komentarz — dowolny tekst dla osoby, która będzie umieszczać te lekcje: „sala w układzie U”, „raczej rano”. Przycisk Komentarz wypełnia się, gdy tylko komentarz istnieje. Komentarz czyta się po najechaniu kursorem. ##### Uśpienie reguły Reguła, która żąda **0** lekcji, jest **uśpiona**, oznaczona na pomarańczowo: niczego nie oczekuje i nie zgłasza żadnej rozbieżności, zachowując przy tym na później swoją grupę, swoich nauczycieli, swój czas trwania i swój kod. Tak zawiesza się serię, nie tracąc jej opisu. ##### Wprowadzanie w tabeli Ikona Tabela przełącza listę w widok Tabela: jeden wiersz na regułę, jedna kolumna na każdą informację. Przełącznik służy do wklejenia całej polityki z arkusza kalkulacyjnego za jednym razem, zamiast reguła po regule. Powrót do listy przywraca listy rozwijane i pola wyboru: oba widoki pracują na tej samej polityce. #### Odczytywanie rozbieżności Na ekranie Podział godzin każdy kurs nosi pod swoim licznikiem godzin wskaźnik zgodności. Jego kolor streszcza sytuację: | Kolor | Co oznacza | | --- | --- | | Zielony | Wszystkie oczekiwane lekcje istnieją; każda odpowiada jakiejś regule. | | Pomarańczowy | Rozbieżność nie przekracza 10% oczekiwanych godzin albo część lekcji nie odpowiada żadnej regule. | | Czerwony | Rozbieżność przekracza 10% oczekiwanych godzin. | Lekcja **odpowiada** regule, gdy spełnia **wszystko**, co ta narzuca: te same grupy, tych samych nauczycieli, te same sale i ten sam czas trwania. Wystarczy, że jeden z tych punktów się różni, aby została policzona jako rozbieżność. Najechanie kursorem rozpisuje sytuację reguła po regule: czego każda żąda, co otrzymuje i jaki ma komentarz, jeśli istnieje. Następne wiersze, o ile są, zbierają według grup lekcje **bez odpowiednika** — te, których polityka nie opisuje. Ta sama rozbieżność trafia do **panelu diagnostyki** planu lekcji, pod nazwą Rozbieżność z polityką podziału godzin. Można ją tam znaleźć bez przeglądania klas jedna po drugiej (zob. [Konflikty i diagnostyka](#page-timetables.conflicts)). W tym panelu każdy wiersz wskazuje klasę i kurs. Jego lupa [magnifying-glass] pokazuje rozbieżność lekcja po lekcji, w tej samej formie co okno opisane poniżej. Lekcja odbiegająca od reguły pojawia się obok najbliższej oczekiwanej lekcji, a kolor wskazuje, co je różni. Nadmiarowa lekcja ma oznaczenie **+1**. Oczekiwane lekcje, których nic nie zastępuje, znajdują się na końcu i są liczone według reguły: **−2** dla dwóch brakujących lekcji. Kliknięcie lekcji pokazuje ją w planie lekcji. #### Tworzenie, uzgadnianie, usuwanie Proszę kliknąć wskaźnik, aby przejść do działania. **Dopóki dla tego kursu nie utworzono żadnej lekcji**, nie ma czego rozstrzygać: wszystkie, które polityka opisuje, powstają natychmiast. **Gdy tylko któreś istnieją**, otwiera się okno i proponuje, dla każdej reguły, następujące akcje: - Utwórz brakujące lekcje, z grupą, nauczycielami, salą i czasem trwania, które narzuca reguła; - Uzgodnić istniejącą lekcję, która odbiega od oczekiwanych kryteriów: zostaje ona dostosowana do reguły, a nie odtworzona. Kandydatki są proponowane zwinięte, najbliższe jako pierwsze, wraz z tym, co by się zmieniło; - Usuń lekcje bez odpowiednika w polityce. Po stronie usuwania nic nie jest zaznaczone z góry; ta sama lekcja nie może być jednocześnie uzgodniona i usunięta. #### Automatyczny przydział podąża za polityką Menu Akcje ekranu podziału godzin proponuje Automatyczny przydział na lekcje o jednym, dwóch lub trzech przedziałach czasowych. Na kursie, który nosi politykę, polityka wygrywa: to ona opisuje tworzone lekcje, niezależnie od czasu trwania wskazanego na przycisku. Kursy bez polityki podążają za żądanym czasem trwania. #### Odnajdywanie kodu na lekcji Na ekranie podziału godzin, gdy włączony jest Widok karteczek, karta lekcji pokazuje kod reguły, której ta lekcja odpowiada — pod warunkiem że odpowiada **tylko jednej** regule. Kod nie jest zapisany w lekcji: za każdym razem odczytuje się go z tego, co lekcja zawiera. Po zmianie jej grupy, nauczycieli, sali lub czasu trwania wyświetlany kod zmienia się wraz z nią albo znika, jeśli żadna reguła już jej nie opisuje. A gdyby dwie reguły o różnych kodach mogły się o nią upomnieć? Karta nie pokazuje wtedy nic, zamiast dokonywać wyboru samodzielnie. #### Instrukcja — Zadeklarowanie polityki kursu 1. **Proszę otworzyć klasę** w planie lekcji, a następnie jej zakładkę Kursy. Proszę rozwinąć wybrany kurs i otworzyć jego pozycję Polityka podziału godzin. 2. **Proszę opisać pierwszą serię** w wierszu do wypełnienia: docelową grupę (albo nic, dla całej klasy), nauczycieli i salę, jeśli reguła ich narzuca, a następnie liczbę lekcji i ich czas trwania. 3. **Proszę dodać regułę**, a potem powtórzyć to dla każdej serii, która wyróżnia się odbiorcami, czasem trwania albo nauczycielami. Kurs liczący 24 godz. może się zmieścić w jednej regule, jak i w pięciu. 4. **Proszę uzupełnić to, co pomaga planiście**: kod modułu kształcenia i komentarz, który mówi to, czego nie powie żadna kolumna. 5. **Proszę zatwierdzić.** Kurs ma teraz swoją politykę. 6. **Proszę przejść na ekran [Podział godzin i tworzenie lekcji](#page-timetables.hour-distribution)** i odczytać wskaźnik kursu. Kliknięcie go pozwala utworzyć brakujące lekcje, uzgodnić te, które odbiegają, albo usunąć te, które pozostają bez odpowiednika. 7. **Proszę wracać tu w trakcie roku.** Dopóki wskaźnik jest zielony, to, co zbudowano, odpowiada temu, czego się oczekuje. #### Zobacz także - [Podział godzin i tworzenie lekcji](#page-timetables.hour-distribution) - [Konflikty i diagnostyka](#page-timetables.conflicts) - [Masowy import kursów z arkusza kalkulacyjnego](#page-timetables.mass-import) - [Polityka podziału godzin](#page-glossary.distribution-policy) - [Kurs](#page-glossary.course) - [Lekcja / Godzina lekcyjna](#page-glossary.lesson) ### 3.13 Automatyczne przydzielanie sal *Source: `help/pl/timetables/auto-room-assignment.md` · id: timetables.auto-room-assignment · Audience: admin · Updated: 2026-08-08* **Automatyczne przydzielanie sal** przypisuje **za jednym razem** salę całemu zestawowi zaznaczonych lekcji. Wskazuje się **zestaw sal kandydujących**, algorytm proponuje optymalny przydział, a wynik **zatwierdza się po sprawdzeniu** — w razie potrzeby wiersz po wierszu. To narzędzie służy **wyłącznie do rozdziału sal**. Nie przesuwa lekcji w czasie, nie zmienia ich czasu trwania, nie przypisuje zasobów ani nie uruchamia ponownie pełnego generowania planu lekcji. Aby sale były przydzielane **w trakcie** generowania, zob. [Automatyczne generowanie](#page-timetables.generation). #### Gdzie je znaleźć Narzędzie działa w **widoku listy** ekranu [Podział godzin i tworzenie lekcji](#page-timetables.hour-distribution) (widok tabelaryczny, jeden wiersz na lekcję). 1. Proszę wyświetlić lekcje w **widoku listy**. 2. Proszę **zaznaczyć** co najmniej dwie lekcje (kolumna zaznaczania). W razie potrzeby proszę skorzystać z **sortowania** i **filtrów kolumn**, aby wyodrębnić lekcje do obsługi — na przykład te **oczekujące na salę**. 3. Proszę otworzyć w nagłówku kolumny zbiorcze działanie dla sal, Przypisz salę. 4. W oknie wyboru sal proszę włączyć tryb Automatyczne przydzielanie sal. Lekcje **zdalne** oraz te w trybie **samokształcenia** (zależnie od ich [trybu](#page-glossary.lesson-modality)) są pomijane: nie potrzebują fizycznej sali. Lekcje **hybrydowe** są nadal uwzględniane. Lekcje z **zablokowaną** salą proszę pozostawić **poza zaznaczeniem**: narzędzie nie łamie blokady. #### Wybór zestawu sal kandydujących W trybie automatycznym okno wyboru pokazuje sale pogrupowane według **lokalizacji**, a następnie według **budynku**, z polami wyboru na trzech poziomach: - zaznaczenie **lokalizacji** obejmuje wszystkie jej kwalifikujące się sale; - zaznaczenie **budynku** obejmuje wszystkie sale tego budynku; - zaznaczenie **sali** dodaje ją pojedynczo. Sale już przypisane do zaznaczonych lekcji są **wstępnie zaznaczone**. Sala, której **specjalizacja** nie odpowiada żadnej zaznaczonej lekcji albo która jest **zbyt mała** dla wszystkich zgodnych lekcji, jest **nieaktywna**. Pojemność jest wyświetlana na **czerwono**, gdy sala nie może przyjąć żadnej ze zgodnych lekcji, i na **pomarańczowo**, gdy przyjmuje tylko ich część. Proszę zatwierdzić zestaw, aby uruchomić obliczenia. #### Co robi algorytm Na podstawie wybranego zestawu algorytm przydziela **jedną salę na lekcję**, przestrzegając **twardych reguł** i optymalizując pozostałe kryteria: - **specjalizacja** wymagana przez przedmiot lekcji; - **pojemność** sali wobec liczby uczniów na lekcji; - **istniejące obłożenie** sali w danym przedziale czasowym — lekcje z innych planów lekcji lub z kont powiązanych, wydarzenia, ograniczenia czasowe sali, współdzielone [duże sale](#page-glossary.large-room); - **sale priorytetowe** klasy — sale, których [kampus](#page-timetables.sites-rooms--campus) lub etykiety wskazano w jej karcie — sprawdzane przed pozostałymi, przy czym algorytm przechodzi na inną zgodną salę, gdy wszystkie są zajęte; - **preferowanie lokalizacji** odniesienia lekcji; - **tygodnie naprzemienne**: dwie lekcje, które nigdy nie wypadają w tym samym tygodniu, mogą użyć tej samej sali. Algorytm może **przeorganizować sale między zaznaczonymi lekcjami**, aby lepiej je rozmieścić, i daje pierwszeństwo **najmniejszej odpowiedniej sali**. Gdy obecna sala już jest odpowiednia, a inna dałaby tylko marginalny zysk, **zachowuje** ją, zamiast wprowadzać zbędną zmianę. Jeśli **żadna** sala z zestawu nie jest odpowiednia, lekcja zostaje **bez rozwiązania**. #### Sprawdzenie, korekta, zastosowanie Obliczenia otwierają **okno podglądu**: dopóki jest otwarte, rzeczywisty plan lekcji **nie jest zmieniany**. Każdy wiersz ma w nim **status** — przydzielona, bez zmian, bez rozwiązania albo poprawiona ręcznie — oraz salę **dotychczasową** i salę **proponowaną**. - **Poprawienie wiersza**: proszę kliknąć jego proponowaną salę, aby otworzyć zwykłe okno wyboru. Ręczny wybór **nie jest ograniczony** do wyjściowego zestawu sal kandydujących; wiersz przechodzi w status „poprawiona”, a ewentualne konflikty są natychmiast przeliczane na wszystkich wierszach. - **Resetuj**: przycisk przywraca propozycję algorytmu na poprawionych wierszach. - **Odznaczenie** wiersza **wyłącza** go z zastosowania. - **Zatwierdź** stosuje zaznaczone wiersze do planu lekcji; **Anuluj** zamyka okno bez żadnych zmian. Po zastosowaniu zmienione lekcje **migają**, a podsumowanie podaje **liczbę lekcji zmienionych, niezmienionych i pozostawionych bez rozwiązania**. #### Na co zwrócić uwagę - Lekcja, która miała **wiele sal**, może zostać sprowadzona do **jednej** przez automatyczne przydzielanie. - Lekcja **nieumieszczona** w żadnym przedziale czasowym może i tak otrzymać salę (na podstawie zestawu, specjalizacji, pojemności i lokalizacji), ale nie da się wtedy sprawdzić dla niej żadnego konfliktu czasowego. - Aby jedynie **wstawić sale domyślne** (klasy lub nauczyciela, z pominięciem sal ze specjalizacją) albo **wyczyścić** przydziały, menu Akcje udostępnia dedykowane działania masowe — zob. [Podział godzin i tworzenie lekcji](#page-timetables.hour-distribution). #### Zobacz także - [Podział godzin i tworzenie lekcji](#page-timetables.hour-distribution) - [Lokalizacje, siatki godzin, sale, zasoby](#page-timetables.sites-rooms) - [Specjalizacje sal](#page-core-concepts.classroom-specializations) - [Duża sala](#page-glossary.large-room) ### 3.14 Krok 6b — Masowy import kursów z arkusza kalkulacyjnego *Source: `help/pl/timetables/mass-import.md` · id: timetables.mass-import · Audience: admin · Updated: 2026-06-02* Jeśli lista kursów jest już gotowa w arkuszu kalkulacyjnym — eksport z systemu SIS, plan przygotowany wcześniej w Excelu, a nawet eksport z innego programu, takiego jak Hyperplanning czy Aurion — można ją **skopiować i wkleić** wprost do Omniscol. #### Dostęp do importu W menu Akcje (na ekranie Podział godzin) proszę wybrać **„Tabela - import/eksport”**. Jeśli nie utworzono jeszcze żadnej klasy, dostępne jest także bezpośrednie łącze. Import przebiega w **czterech krokach**. #### Krok 1 — Wklejenie tabeli Otwiera się edytowalne pole ze **wstępnie zdefiniowanym szablonem kolumn** Omniscol. Typ kolumny wynika z jej pozycji (trzecia kolumna = przedmiot itd.); **kolejność kolumn szablonu można zmieniać**, tak aby odpowiadała układowi źródłowego arkusza — dzięki temu wklejanie z Excela lub Arkuszy Google przebiega czysto, bez przepisywania własnego pliku. Rozpoznawane pola: - **Klasa** + **przedmiot** (minimum, aby kurs był poprawny), - **Czas trwania** albo **godzina rozpoczęcia + godzina zakończenia** (oraz **dzień** dla lekcji wstępnie umieszczonych), - **Grupa** (dowolne separatory przy wielu grupach), - **Typ lekcji** (wykład, ćwiczenia, laboratorium…), - **Nauczyciel / nauczyciele** (dowolne separatory), - **Lokalizacja** + **Sala / sale** (jedna lekcja może odbywać się w kilku salach, zob. [wiele sal](#page-glossary.multi-room)), - **Zasób / zasoby**, - **Tygodnie naprzemienne** (format `A/B`, `1/2`…), - **Komentarz**. Można też zaimportować **listę już utworzonych kursów** (to właśnie daje eksport), aby dopracować ją w Excelu i wczytać ponownie. #### Krok 2 — Weryfikacja godzin i lokalizacji Omniscol pokazuje rozpoznane godziny (nadal edytowalne). Jeśli odgadniętych lokalizacji jest kilka, klasy, sale i zasoby przypisane niewłaściwie można **przeciągnąć i upuścić** do właściwej lokalizacji. Jeśli powstała zbędna lokalizacja, proszę ją opróżnić — zniknie sama. #### Krok 3 — Ujednoznacznienie Po analizie zaimportowanych wartości tabela pojawia się ponownie, z **listami rozwijanymi** przy niejednoznacznych polach. Proszę sprawdzić i poprawić zaproponowane odpowiedniki. Tutaj rozstrzyga się na przykład: - „Mat.” = który dokładnie przedmiot (z typem lekcji czy bez)? - „J. Kowalski” = który z trzech nauczycieli o tym nazwisku? - „A102” = sala A102 w lokalizacji Kraków, w lokalizacji Gdańsk, czy w jeszcze innej? #### Krok 4 — Tworzenie nieznanych jednostek Jeśli import wykrył jednostki, których nie ma jeszcze w danych (klasy, grupy, grupy grup, nauczyciel, przedmiot niestandardowy, typ lekcji, lokalizacja, sala, zasób…), ostatni krok prosi: - o **zatwierdzenie utworzenia** ich w planie lekcji, - a w przypadku **przedmiotów niestandardowych** i niektórych **nauczycieli** — o ewentualne zlecenie utworzenia po stronie modułu **Administracja**, aby stały się dostępne w całej szkole. #### Granice automatyzacji Import automatyzuje przygotowanie danych, ale nie zastępuje weryfikacji przez człowieka: - **Złożone lekcje** (wielokrotne naprzemienności, połączenia, skojarzenia) bywają odtworzone niedokładnie — proszę liczyć się z ręcznym wykończeniem. - Przy bardzo specyficznym nazewnictwie wewnętrznym część kolumn pozostanie niejednoznaczna — rozstrzyga się to w kroku 3. - Do **dedykowanych migracji** z konkretnego programu (Aurion, ASC…) istnieją [wyspecjalizowane adaptery](#page-migration.overview). #### Instrukcja — Przygotowanie i import kursów 1. **Przed kliknięciem przycisku Importuj** proszę poświęcić 10 minut na przygotowanie pliku źródłowego. Czysty plik = import bez powracania do poprawek. W Excelu lub Arkuszach Google proszę usunąć scalone wiersze, wielowierszowe nagłówki i sumy częściowe. **Jeden wiersz = jedna lekcja.** Proszę zachować spójne nazwy klas, przedmiotów, nauczycieli, grup, lokalizacji, sal i zasobów. 2. **Proszę otworzyć ekran importu** z ekranu Podział godzin, menu *Akcje → Tabela - import/eksport*. Proszę ustawić kolumny szablonu w kolejności zgodnej z własnym arkuszem, a następnie **wkleić tabelę** do edytowalnego pola. To krok 1. 3. **Krok 2 — weryfikacja godzin i lokalizacji.** Omniscol pokazuje rozpoznane godziny i odgadnięte lokalizacje. W razie potrzeby proszę przeciągnąć klasy, sale i zasoby do właściwej lokalizacji albo opróżnić zbędną lokalizację, aby zniknęła. 4. **Krok 3 — ujednoznacznienie.** Tabela pojawia się ponownie z listami rozwijanymi przy niejednoznacznych polach: dokładny przedmiot, nauczyciel o tym samym nazwisku, sala o tej samej nazwie itd. Tutaj rozstrzyga się wątpliwości. 5. **Krok 4 — tworzenie nieznanych jednostek.** Proszę zatwierdzić tworzenie tego, co wynika z pliku: klas, grup, grup grup, nauczycieli, przedmiotów i typów lekcji, lokalizacji, sal, zasobów. W przypadku przedmiotów niestandardowych i niektórych nauczycieli można też zlecić utworzenie po stronie modułu Administracja. Kursy są następnie wprowadzane do planu lekcji. 6. **W rezultacie** otrzymuje się częściowo skonfigurowany plan lekcji. Proszę liczyć się z ręcznym wykończeniem złożonych przypadków (wielokrotne naprzemienności, połączenia, skojarzenia), których import nie zawsze odtwarza w pełni. Przy migracji z innego programu zob. [Migracja z innego oprogramowania](#page-migration.overview). #### Zobacz także - [Przygotowanie danych do importu masowego](#page-getting-started.preparing-data) - [Migracja z innego oprogramowania](#page-migration.overview) - [Poprzedni krok — Podział godzin](#page-timetables.hour-distribution) - Następny krok — [Automatyczne generowanie](#page-timetables.generation) ### 3.15 Krok 7 — Automatyczne generowanie *Source: `help/pl/timetables/generation.md` · id: timetables.generation · Audience: admin · Updated: 2026-10-01* Po utworzeniu lekcji umieszcza się je na siatce godzin. Budowanie planu lekcji jest w praktyce **cyklem**, a nie jednorazowym działaniem: 1. **umieszcza się kilka lekcji ręcznie** — aby zakotwiczyć to, co niezmienne, albo zablokować twarde ograniczenia (zajęcia prowadzone przez nauczycieli zewnętrznych o ustalonej dacie, egzaminy, ręczne dostrojenia); 2. **uruchamia się generowanie** (całości albo części), aby algorytm umieścił pozostałe lekcje z zachowaniem ograniczeń; 3. **koryguje się na marginesie** — poprawia szczególny przypadek, przesuwa lekcję, zmienia zdanie; 4. i wszystko **może się zapętlić**: generuje się na bieżąco (dodane lekcje albo — w trybie kalendarzowym — po zakresach dat, partiami klas lub kampusów). Wszystko można też zrobić **w 100% ręcznie**, bez algorytmu generowania. Ręczne umieszczanie (umieszczanie, przesuwanie, blokowanie, pojedynczo albo masowo) ma własną stronę: [Ręczne umieszczanie](#page-timetables.manual-placement). Całość przebiegu opisuje [Przegląd modułu](#page-timetables.overview). Ta strona dotyczy **automatycznego generowania**. #### Generowanie umieszcza lekcje, nie tworzy ich Algorytm generowania pracuje na lekcjach, które już istnieją. Szuka dla nich przedziału czasowego i sali. Nauczycielami pozostają natomiast ci, których przypisano do kursu: algorytm generowania ich nie zastępuje ani nie wyznacza innych — po prostu odrzuca przedział czasowy, w którym nie są wolni. Stąd kolejność, której należy przestrzegać: 1. **proszę zadeklarować przedmiot i jego wymiar** dla każdej klasy: to właśnie *kurs*, wiersz z liczbą godzin; 2. **proszę utworzyć lekcje** z tej liczby godzin, w kroku [Podział godzin i tworzenie lekcji](#page-timetables.hour-distribution) — to one są umieszczane przez algorytm generowania; 3. **a potem uruchomić generowanie**. Otwarcie zakładki generowania przed utworzeniem lekcji prowadzi do martwego przycisku: nie ma czego umieszczać, a ekran weryfikacji wyświetla **Nie zdefiniowano żadnej lekcji**. #### Dlaczego przycisk generowania jest wyszarzony Przycisk odzwierciedla diagnostykę wyświetloną bezpośrednio powyżej, w zakładce Weryfikacja. Trzy sytuacje: - **Brak alertów albo tylko ostrzeżenia** — przycisk pozostaje aktywny, choć wygląda przygaszony. Ostrzeżenie (żółte) wskazuje ryzyko, a nie niemożliwość; niebieskie ma charakter informacyjny. - **Alert krytyczny (czerwony)** — główny przycisk jest wyłączony. Obliczenia można nadal uruchomić przez Więcej opcji, na własne ryzyko: algorytm generowania nie zobaczy problemu, który alert zgłasza, i tak wyprodukuje plan lekcji, a odpowiedzialność za jego wynik spada na osobę, która go uruchomiła. Lepiej poprawić alert. - **Alert bezwzględnie blokujący** — wyłączone są **i** przycisk, **i** menu opcji. Brakuje danej, bez której obliczenia nie mają żadnego sensu: żadnej lekcji, żadnej użytecznej klasy (klasa jest użyteczna, gdy ma lokalizację *i* lekcje) albo używanej lokalizacji bez zdefiniowanej siatki godzin. Szkoła, w której nie utworzono jeszcze żadnej lokalizacji, należy do tego przypadku: bez lokalizacji żadna klasa nie jest użyteczna. Statystyka **Liczba skonfigurowanych klas** staje się w tym ostatnim przypadku czerwona. Każdy alert jest nazwany wprost na liście, wraz z klasą, lokalizacją lub nauczycielem, którego dotyczy. Skalę ważności i jej odczytywanie opisuje [Konflikty i diagnostyka](#page-timetables.conflicts); usuwanie usterek generowania, które nie dochodzi do końca — [Diagnozowanie nieudanego generowania](#page-timetables.diagnosing-generation). #### Dostępność funkcji Automatyczne generowanie jest dostępne na planach lekcji [tygodniowych](#page-glossary.weekly-timetable), [cyklicznych](#page-glossary.cyclic-timetable) i [kalendarzowych](#page-glossary.calendar-mode). W trybie kalendarzowym lekcje umieszczane są na rzeczywistych datach, a opcje mogą ograniczyć generowany zakres dat. #### Przygotowanie Przed kliknięciem Generuj plan lekcji: - proszę rozwinąć zakładkę **Generowanie** (na kalendarzowym planie lekcji nazwaną Weryfikacja), aby sprawdzić ogólne statystyki, - proszę poprawić **alerty krytyczne** (czerwone) — zob. poprzednią sekcję o wyszarzonym przycisku, - proszę przejrzeć **ostrzeżenia** (żółte) — nie blokują, ale wskazują ryzyko (zbyt restrykcyjna dostępność, pojemność na granicy itd.). Ekran podaje też: - liczbę lekcji utworzonych wobec lekcji umieszczonych, - wprowadzone liczby godzin wobec godzin pracy nauczycieli, - grupy przypisane do co najmniej jednego kursu (aby wychwycić grupy zapomniane lub nieużywane). #### Uruchomienie Proszę kliknąć Generuj plan lekcji. Omniscol uruchamia dedykowane, zrównoleglone środowisko obliczeniowe. Czas trwania zależy od wielkości planu lekcji, liczby ograniczeń i wybranych opcji. Szkoła nie musi zarządzać żadną kolejką; inicjalizacja zajmuje często około dziesięciu sekund, zanim obliczenia naprawdę się zaczną. Obliczenia mają **limit dwudziestu minut**, w praktyce jednak znacznie wykraczający poza potrzebę: plan lekcji liczący około 200 kursów odpowiada często w dwadzieścia sekund — sam algorytm jest niemal natychmiastowy, najwięcej waży rozruch maszyny — a ~600 kursów w około minutę. Bardzo dużej szkole, która zbliżałaby się do tego limitu, zespół Omniscol może na wniosek zwiększyć moc maszyny obliczeniowej. #### Opcje generowania Domyślnie generowanie umieszcza wszystkie lekcje utworzone i nieumieszczone. Może też przesunąć lekcje już umieszczone, jeśli poprawia to plan lekcji. Lekcje zablokowane zachowują swoją pozycję. Menu opcji pozwala w szczególności: - obsłużyć sale na trzy sposoby: domyślnie zoptymalizowany przydział, wyłącznie weryfikacja albo całkowite pominięcie sal; - wybrać tylko niektóre klasy albo niektóre przedmioty; - ograniczyć kalendarzowy plan lekcji do docelowego okna dat; - zignorować już przypisane sale albo istniejące pozycje lekcji; - przypisać wyłącznie sale, bez przeliczania całego rozmieszczenia; - uruchomić szybkie generowanie, bez optymalizacji; - dopuścić elastyczne umieszczanie w podprzedziałach czasowych siatki godzin, gdy plan lekcji z nich korzysta. Zaawansowane parametry optymalizacji pozwalają też zmniejszyć luki, unikać dwóch lekcji tego samego przedmiotu w jednym dniu, rozłożyć lekcje, ustalić minimalną lub maksymalną liczbę godzin albo wybrać liczbę dni obecności nauczycieli. Zwyczaje różnią się w zależności od kraju: we Francji część szkół dąży do zmniejszenia liczby dni obecności nauczycieli; w innych kontekstach woli się przeciwnie — rozłożyć te dni, na przykład po to, by zorganizować w lokalizacji inne zadania. #### Opcje właściwe dla trybu kalendarzowego W trybie kalendarzowym opcje zaawansowane mogą ograniczyć generowanie do **docelowego okna dat**, krótszego niż cały zakres planu lekcji. Przydaje się to do wygenerowania tylko części roku: testu na jednym miesiącu, stopniowego budowania semestru albo powrotu do okresu już przygotowanego. Druga ważna opcja to **zagęszczanie dni** dla klas. Domyślnie algorytm generowania szuka raczej równowagi na dostępnych dniach; przy generowaniu tylko części lekcji z roku takie zachowanie może sztucznie rozciągnąć kursy. Zagęszczanie pozwala zażądać ich skupienia: - na początku okna; - na końcu okna; - bez preferencji początku ani końca, ale z zachowaniem dni tak zagęszczonych, jak to możliwe. #### Powtarzalność w planie lekcji typu kalendarz: najpierw tydzień wzorcowy Plan lekcji typu kalendarz datuje każdą lekcję osobno. Niektóre formy kształcenia nie działają jednak w ten sposób: kurs w poniedziałek o 10.00 wraca co tydzień, na ile to możliwe. Klasa deklaruje to opcją Powtarzalne lekcje; kurs tej klasy wyłącza się z niej opcją Poza powtarzalnością. **Nic nie jest odgadywane**: bez tej deklaracji generowanie umieszcza każdą lekcję na jej dacie, niezależnie od podobieństw między nimi. Sama [polityka podziału](#page-timetables.distribution-policy) jest opcjonalna: powtarzalność obowiązuje sama z siebie; jawna polityka wskazuje rytm, który algorytm ma zachować w jak największym stopniu. Gdy choć jedna klasa planu lekcji jest powtarzalna, generowanie pracuje w trzech etapach. 1. **Najpierw tydzień wzorcowy.** Lekcje grupują się w serie. Dwa przypadki: - na kursie obowiązuje polityka podziału godzin: algorytm skupia lekcje tak, aby zachować ten podział w seriach, które mogą nieść dokładne oczekiwanie co do powtarzalności; - w przeciwnym razie serie są odgadywane: ten sam przedmiot, ta sama grupa, ten sam kształt — porównywalny czas trwania i nauczyciele. Serie nie łączą grup, które obejmuje ten sam podział klasy: dwie grupy pracujące w tym samym czasie zajmują dwa przedziały czasowe. Lekcja jedyna w swoim rodzaju nie tworzy serii. Każda seria szuka wtedy swojego miejsca na fikcyjnym tygodniu, jak na planie lekcji typu tygodniowy. **Generowanie czyta tam rytm wymagany przez politykę**: kolumna Powtarzalność w regule mówi dwa razy w tygodniu albo raz na trzy tygodnie; Automatyczny pozwala go wywnioskować z liczby lekcji w stosunku do tygodni nauki. Kurs prowadzony cztery razy w tygodniu zajmuje cztery przedziały czasowe tygodnia wzorcowego. Ten teoretyczny tydzień uwzględnia już ograniczenia kalendarzowe: lekcje ustalone, niedostępności w konkretnych datach lub przedziałach czasowych. Serie mogą też zajmować ten sam przedział czasowy, następując po sobie. 2. **Rozwinięcie na kalendarzu.** Znaleziony tydzień powtarza się następnie na zakresie dat klasy: na tym, który wyznacza jej okno dat, gdy klasa je ma, w przeciwnym razie na całym okresie planu lekcji. Każda lekcja serii otrzymuje tam swój tydzień, swój dzień, swój przedział czasowy. Konflikty bada się data po dacie; gdy dokładne miejsce jest już zajęte, algorytm wybiera rozwiązanie najbliższe. 3. **Pracę kończy zwykłe generowanie kalendarzowe**, bez powtarzalności. To, czego tydzień wzorcowy nie zdołał zadatować, nie jest wymuszane: te lekcje dołączają do zestawu lekcji bez powtarzalności, a zwykłe generowanie umieszcza je z kolei. #### Jak pracuje generowanie Zrozumienie logiki algorytmu generowania pomaga przewidzieć, co umieści, co poświęci i jak nim pokierować. Realizuje **dwa cele, w tej kolejności**: 1. **Zmieścić wszystko** — bezwzględny priorytet: umieścić *wszystkie* lekcje z zachowaniem twardych ograniczeń. 2. **Zoptymalizować jakość** — gdy wszystko już się mieści, zmniejszyć luki, wygładzić dni, spełnić zgłoszone oczekiwania. Wychodzi od czystego stanu (lekcje **zablokowane** zachowują swoje miejsce, pozostałe są rozgrywane od nowa) i umieszcza **od lekcji najtrudniejszej do najłatwiejszej**. Trudność wynika przede wszystkim z **wąskich ram ograniczeń**: kurs, którego nauczyciel jest dostępny tylko jedno popołudnie w tygodniu, albo **blok czterech godzin** do umieszczenia w jednym kawałku, idzie na początek. Przy równej trudności algorytm przeplata przedmioty i obsługuje **najrzadsze przed najczęstszymi**, aby sprawiedliwie rozłożyć szanse każdego z nich. ##### Kiedy nie wszystko się mieści: poświęcenie Jeśli plan lekcji jest zbyt ograniczony, by zmieścić wszystko, algorytm generowania **nie rezygnuje**: wybiera najmniejszy zbiór lekcji, które **zostawi na boku**, aby pozostałe się zmieściły, a potem optymalizuje ten częściowy plan lekcji. Poświęcone lekcje pozostają na pasku karteczek do umieszczenia. Ponieważ sortowanie dało pierwszeństwo najtrudniejszemu i najrzadszemu, ustępują raczej lekcje **łatwe i liczne**: piąta godzina przedmiotu o dużej liczbie godzin przed jedyną godziną przedmiotu rzadkiego. Te rozstrzygnięcia pozostają w rękach administratora: proszę **zablokować** lekcje, które nigdy nie mają się ruszać — umieszczane w pierwszej kolejności, nie są poświęcane — i **rozluźnić nadmiar ograniczeń** (otwarte przedziały czasowe, dostępność) tam, gdzie to możliwe, aby całość się zmieściła. ##### Twarde i miękkie ograniczenia Nie wszystkie ograniczenia są równe: - **Twarde** — nigdy nienaruszane: **obłożenie** (nauczyciel, klasa, grupa, sala ani zasób nie są wykorzystywane dwa razy w tym samym momencie), zakresy oznaczone jako **Niedostępny** (czarne) na nauczycielu, klasie, sali, kursie lub grupie, **brak wolnej sali lub wolnego zasobu** w danym przedziale czasowym, **dni zamknięte**, **zablokowane pozycje** oraz **wyrównania grup**. - **Miękkie** — wszystko pozostałe, co algorytm generowania może **naruszyć** za cenę punktów karnych, aby zmieścić całość: zakresy oznaczone jako **Niepożądany** (czerwone — do unikania, nie zakazane) oraz ustawienia optymalizacji (zagęszczenie, rozłożenie, grupowanie dni…). Ograniczenie o *wysokim* priorytecie waży więcej niż o *niskim*, ale żadne nie blokuje. Algorytm generowania próbuje też punktowych złagodzeń (umieszczenie w podprzedziałach czasowych siatki godzin…), gdy jest to cena, którą trzeba zapłacić, by nie poświęcić żadnej lekcji. ##### Weryfikacja bez optymalizacji Opcja **szybkiego generowania** (bez optymalizacji) uruchamia odciążony przebieg, który odpowiada przede wszystkim na jedno pytanie: *czy wszystko się mieści?* Przydaje się do sprawdzenia wykonalności konfiguracji, zanim poświęci się czas na pełną optymalizację. #### Wynik - **Zielony baner**: generowanie udane. Lekcje z żądanego zakresu udało się umieścić, a wynik można sprawdzić. - **Czerwony baner**: nie znaleziono żadnego kompletnego rozwiązania. Najlepszy obliczony plan lekcji pozostaje widoczny, a lekcje nieumieszczone pojawiają się na pasku karteczek do diagnostyki. Zob. [Diagnozowanie nieudanego generowania](#page-timetables.diagnosing-generation). #### Konsolidacja albo kopia Po udanym generowaniu Omniscol proponuje dwie możliwości: - **Skonsolidować** w bieżącym planie lekcji (rozmieszczenie zastępuje istniejące). - **Utworzyć kopię** (obecny plan lekcji pozostaje nietknięty, zoptymalizowany wynik staje się nowym planem lekcji). Jeśli planowane jest ponowne generowanie później (na przykład przy budowaniu przyrostowym), **proszę nie konsolidować**: w przeciwnym razie lekcje już umieszczone stałyby się punktami wyjścia dla nowego generowania. #### Zablokowanie lekcji przed ponownym uruchomieniem generowania Na lekcji już umieszczonej proszę użyć **kłódki** pozycji, aby ją zablokować. Następne generowanie jej nie przesunie, lecz dostosuje wokół niej pozostałe lekcje. Przydaje się to do zakotwiczenia lekcji „niezmiennych” (ustalonych zajęć prowadzonych przez nauczycieli zewnętrznych, egzaminów o wyznaczonej dacie, ręcznych dostrojeń…). Pełne szczegóły zawiera [Blokowanie lekcji](#page-timetables.lesson-lock): blokowanie masowe, skutki dla diagnostyki (czerwony → pomarańczowy), zachowanie algorytmu. #### Eksport planu lekcji do formatu JSON Przycisk [download] eksportuje **wyłącznie bieżący plan lekcji** w formacie JSON. To nie jest pełny eksport konta, opisany w [Import i eksport](#page-admin.import-export). Typowe przypadki: - zachowanie śladu wersji roboczej lub scenariusza przed usunięciem; - zarchiwizowanie stanu przejściowego przed poważną reorganizacją; - przekazanie tego konkretnego planu lekcji zespołowi Omniscol w ramach wsparcia. Podobnie jak przy pełnym eksporcie konta szkoły do formatu JSON, ponowne wczytanie nie jest standardowym zastosowaniem swobodnie dostępnym po stronie szkoły. #### Co dalej Krok końcowy: [Publikacja planu lekcji](#page-timetables.publication). #### Instrukcja — Uruchomienie automatycznego generowania 1. **Automatyczne generowanie** umieszcza lekcje na siatce godzin z zachowaniem dziesiątek ograniczeń (dostępność, pojemności, wyrównania grup, specjalizacje, naprzemienność). Dostępne na planach lekcji tygodniowym, cyklicznym i kalendarzowym. 2. **Proszę sprawdzić zakładkę Generowanie.** Pojawiają się tam ogólne statystyki: lekcje utworzone wobec umieszczonych, wprowadzone liczby godzin wobec godzin pracy nauczycieli, alerty krytyczne (czerwone), ostrzeżenia (żółte — uprzedzają, nie blokując). 3. **Proszę poprawić czerwone alerty** przed uruchomieniem. Dopóki jakieś pozostają, generowanie nie może się zacząć — chyba że zostanie wymuszone przez menu „więcej opcji”, co nie jest zalecane. Żółte wymagają rozstrzygnięcia, ale nie uniemożliwiają generowania. 4. **Proszę ustawić opcje generowania**, jeśli to potrzebne: sale do przypisania, tylko do weryfikacji albo do pominięcia; docelowe klasy lub przedmioty; szybkie generowanie bez optymalizacji; zignorowanie już przypisanych sal albo istniejących pozycji. W trybie kalendarzowym opcje zaawansowane pozwalają też zawęzić generowane okno dat i zagęścić lekcje na początku okresu, na jego końcu albo bez preferencji co do pozycji. 5. **Proszę kliknąć Generuj plan lekcji.** Przetwarzanie działa w tle; ekran pokazuje stan generowania i pozwala sprawdzić wynik, gdy jest już dostępny. 6. **Proszę zapisać**, gdy ocena jest zadowalająca. Plan lekcji jest rozmieszczony. Następny krok: proszę przejrzeć ewentualne konflikty, ręcznie skorygować szczególne przypadki (zob. [Ręczne umieszczanie](#page-timetables.manual-placement)), a potem opublikować. 7. **Co dalej**: [Publikacja planu lekcji](#page-timetables.publication). #### Zobacz także - [Ręczne umieszczanie](#page-timetables.manual-placement) - [Diagnozowanie nieudanego generowania](#page-timetables.diagnosing-generation) - [Algorytm generowania](#page-glossary.solver) - [Wykrywanie i rozwiązywanie konfliktów](#page-timetables.conflicts) ### 3.16 Krok 8 — Publikacja planu lekcji *Source: `help/pl/timetables/publication.md` · id: timetables.publication · Audience: admin · Plan: standard · Updated: 2026-06-13* ⚠ Krok **często pomijany**: wygenerowany plan lekcji **nie jest publikowany automatycznie**. Dopóki nie zostanie opublikowany, pozostaje wersją roboczą, piaskownicą — widoczną tylko dla administratorów w module Zarządzanie planami lekcji. Po opublikowaniu planu lekcji jego lekcje zasilają wszystkie pozostałe moduły, w tym moduł [Plany lekcji](#page-schedules.consult-and-filter), z którego korzystają wszyscy uprawnieni użytkownicy. #### Jak opublikować Na stronie głównej modułu Zarządzanie planami lekcji: 1. Proszę wybrać właściwy **rok szkolny** na **osi czasu u góry**. Domyślnie wyświetlany jest **bieżący rok szkolny**. Przy przygotowywaniu kolejnego roku proszę kliknąć **prawą strzałkę osi czasu**, aby przejść na rok N+1 — w przeciwnym razie publikacja dotyczyłaby tygodni bieżącego roku, w którym tygodnie są już przypisane do obecnego planu lekcji. Ogólne omówienie pojęcia: [Oś czasu i nawigacja w czasie](#page-core-concepts.timeline-navigation). 2. Proszę kliknąć Publikacja planów lekcji (Publikacja planów lekcji). 3. Pojawi się siatka: plany lekcji w wierszach, tygodnie w kolumnach. 4. Dla każdego planu lekcji proszę **wybrać tygodnie**, w których obowiązuje (kliknięciem lub przeciągnięciem po pasku tygodni). Przycisk Dodaj okres dodaje kolejny zakres dla danego planu lekcji. 5. Proszę zapisać zmiany przyciskiem Zapisz. #### Konto standardowe: jeden plan lekcji na tydzień W koncie standardowym na każdy tydzień dozwolona jest **tylko jedna publikacja**. Aby opublikować dwa różne plany lekcji, muszą one obejmować rozłączne zakresy (na przykład semestr 1 i semestr 2). > _Option: Kilka planów lekcji opublikowanych równolegle_ #### Publikacje równoległe Jeśli konto dysponuje tą funkcją (wchodzi w skład Premium), można opublikować **kilka planów lekcji równolegle** w tych samych tygodniach. System łączy widoki dynamicznie: jeśli dwa opublikowane plany lekcji mają wspólnego nauczyciela lub salę, jego skonsolidowany plan lekcji pokazuje lekcje z obu planów. Typowy przykład: tygodniowy plan lekcji dla cyklicznych zajęć wspólnych dla wszystkich oraz kalendarzowy plan lekcji dla jednorazowych zajęć mistrzowskich. #### Kalendarzowy plan lekcji: publikacja dwustanowa Plan lekcji w [trybie kalendarza](#page-glossary.calendar-mode) nie jest publikowany w zakresach tygodni (lekcje mają już indywidualne daty). Publikacja jest dwustanowa — plan lekcji jest opublikowany albo nie. #### Tygodniowy / cykliczny plan lekcji: publikacja w zakresach W przypadku tygodniowych i cyklicznych planów lekcji dodaje się **jeden lub kilka zakresów** publikacji, a następnie zapisuje zmiany. Zmiany w toku są oznaczone kreskowaniem przy dodawaniu i przezroczystością przy usuwaniu. #### Tygodnie naprzemienne: które lekcje w których datach Gdy plan lekcji z tygodniami naprzemiennymi zaczyna obowiązywać, każdy rzeczywisty tydzień zachowuje tylko tę lekcję, której pozycja w cyklu odpowiada **numerowi tygodnia w liczeniu**. Wakacje mogą przesunąć to liczenie: **oś czasu** na ekranie [roku szkolnego](#page-admin.school-year) pozwala wskazać punkty, w których liczenie zaczyna się znów od tygodnia A, tak aby w każdej dacie zachowane zostały właściwe lekcje naprzemienne. #### Przypisanie uczniów po publikacji Gdy plan lekcji jest opublikowany dla bieżącego roku szkolnego, można **przypisać uczniów do ich klas i grup**: 1. Moduł Uczniowie. 2. Proszę zaznaczyć właściwych uczniów. 3. Przypisz do klasy. Uczniowie zobaczą swój spersonalizowany plan lekcji dopiero po dokonaniu tego przypisania — a także po zmianie roku bieżącego, jeśli przygotowywany jest kolejny rok. #### Instrukcja — Publikacja planu lekcji w 5 krokach 1. **Publikacja wprowadza plan lekcji do użytku**: jego lekcje zasilają wszystkie pozostałe moduły, w tym Plany lekcji dla wszystkich uprawnionych użytkowników. Dopóki plan lekcji nie zostanie opublikowany, pozostaje wersją roboczą, piaskownicą widoczną tylko dla administratorów. 2. **Proszę sprawdzić wyświetlany rok szkolny** na osi czasu u góry. Domyślnie jest to rok bieżący. Aby opublikować plan na rok następny, przed dalszymi krokami proszę kliknąć **prawą strzałkę osi czasu** i przejść na N+1. 3. **Proszę kliknąć Publikacja planów lekcji.** Pojawi się siatka z planami lekcji w wierszach i tygodniami roku szkolnego w kolumnach. 4. **Proszę wybrać tygodnie**, w których plan lekcji ma obowiązywać. Proszę kliknąć lub przeciągnąć po pasku tygodni. Wybrane tygodnie zostaną podświetlone kolorem; pozostałe zostaną białe. 5. **Proszę zapisać publikację.** Plan lekcji natychmiast zaczyna obowiązywać: jego lekcje pojawiają się w module Plany lekcji wszystkich uprawnionych użytkowników. 6. **Następny krok: przypisanie uczniów** do ich klas i grup. Przypisanie jest możliwe dopiero po pierwszej publikacji. Uczniowie zobaczą wtedy swój spersonalizowany plan lekcji. #### Zobacz także - [Publikacja planu lekcji](#page-glossary.publication) - [Kilka planów lekcji opublikowanych równolegle](#page-timetables.multiple-active-timetables) - [Przygotowanie następnego roku szkolnego](#page-timetables.next-school-year) ### 3.17 Kilka planów lekcji opublikowanych równolegle *Source: `help/pl/timetables/multiple-active-timetables.md` · id: timetables.multiple-active-timetables · Audience: admin · Options: multiple-active-timetables · Updated: 2026-09-23* > **Option: Kilka planów lekcji opublikowanych równolegle** W wersji standardowej na danym okresie można opublikować **tylko jeden plan lekcji** naraz. To wystarcza do klasycznego funkcjonowania szkoły podstawowej czy średniej. W niektórych środowiskach — zwykle w szkolnictwie wyższym, w programach modułowych, w szkołach o wielu ścieżkach kształcenia — pojawia się potrzeba **równoległej publikacji kilku planów lekcji**, które się uzupełniają. Ta możliwość jest wliczona w konta Premium. W niektórych kontach szkolnych o mieszanym charakterze, na przykład szkoła podstawowa i średnia z kilkoma naprawdę odrębnymi planami lekcji, Omniscol może włączyć tę możliwość osobno. Zakres i rozliczenie są wtedy dostosowane do rzeczywistej potrzeby. #### Dlaczego kilka planów lekcji równolegle Kilka typowych scenariuszy: - **Wspólny trzon + specjalizacje** — jeden tygodniowy plan lekcji obejmuje wspólny trzon (przedmioty wspólne dla wszystkich roczników), a plany poszczególnych specjalności lub ścieżek nakładają się na niego z własnymi ograniczeniami. - **Plan regularny + kalendarz jednorazowych wydarzeń** — regularny tygodniowy plan lekcji zawiera większość zajęć, a plan kalendarzowy — lekcje z konkretną datą (wykłady gościnne, egzaminy, komisje). - **Wiele lokalizacji** — jeden plan lekcji na lokalizację z lokalnym zarządzaniem i scaleniem w widoku dla uczniów, którzy przemieszczają się między lokalizacjami. - **Programy o różnej długości** — na przykład ścieżka EMBA trwająca 18 miesięcy, cykl studiów w semestrach kalendarzowych i tygodniowy program przygotowawczy, ze wspólnymi nauczycielami i salami. Bez tej opcji takie przypadki wymuszają zebranie całej złożoności w jednym planie lekcji, co szybko staje się nie do opanowania. #### Jak to działa Tworzy się kilka planów lekcji w module Zarządzanie planami lekcji, jak zwykle. Podczas **publikacji** na tygodnie ekran publikacji pozwala wybrać kilka planów lekcji na te same tygodnie zamiast jednego. Po stronie odbiorców (portale, panele informacyjne, iCal, API) plany lekcji opublikowane na dany tydzień są **scalane dynamicznie**: uczeń widzi wszystkie lekcje, które go dotyczą, niezależnie od tego, z którego planu lekcji pochodzą. W obrębie jednego konta plany lekcji publikowane równolegle współdzielą zajętość odpowiednich zasobów: sal, nauczycieli oraz, tam gdzie ma to sens, klas. Dzięki temu ten sam nauczyciel ani ta sama sala nie zostaną zarezerwowani dwa razy przez dwa opublikowane plany lekcji. Zdarza się też, że klasa jest wspólna dla kilku planów lekcji, ale to przypadek rzadszy i silnie zależy od organizacji pracy dydaktycznej. #### Wykrywanie konfliktów między planami lekcji Dwa mechanizmy uzupełniają się, zależnie od miejsca pracy. ##### Podczas tworzenia planu lekcji Gdy tworzy się lub reorganizuje plan lekcji w module Zarządzanie planami lekcji, przycisk Synchronizacja (na pasku narzędzi reorganizacji, a także edycji kalendarzowego planu lekcji, na **wspólnych datach**) porównuje Państwa pracę z **pozostałymi opublikowanymi planami lekcji**. Automatycznie uwzględnia te, których **daty pokrywają się** z datami bieżącego planu lekcji i które mają co najmniej jednego **nauczyciela**, jedną **salę** lub jedną **klasę** wspólną — zarówno lokalnie (to samo konto), jak i przez **[konta powiązane](#page-integrations.linked-accounts)**. Włącza się więc samoczynnie, gdy tylko pojawiają się wspólne zasoby (pomarańczowy = aktywny). To automatyczne sprzężenie łączy plany lekcji **datowane (kalendarzowe)**. Przydatny wyjątek: przycisk **pomija zwykłą kopię** bieżącego planu lekcji (te same lekcje). Można więc pracować na **zduplikowanym szkicu**, nie wchodząc w konflikt z samym sobą. Zajętość tych planów lekcji trafia wtedy do mechanizmu konfliktów: - **kandydujące przedziały czasowe** do umieszczenia lekcji (kolorowe znaczniki) stają się pomarańczowe lub czerwone, jeśli nauczyciel lub sala są już zajęci gdzie indziej; - **diagnostyka** zgłasza podwójne rezerwacje między planami lekcji. W szczegółach konfliktu lekcja z innego planu lekcji ma po nazwie swojej klasy ikonę [calendar-days] oraz nazwę tego planu lekcji. Lekcja z konta powiązanego ma ikonę [building-columns] oraz nazwę tego konta. Menu rozwijane przycisku wyświetla uwzględniane plany lekcji i konta: proszę odznaczyć te, których nie chcą Państwo monitorować, na przykład aby świadomie zaakceptować nakładanie się. ##### Podczas przeglądania (operacyjny plan lekcji) Po opublikowaniu plany lekcji **scalają się** w jeden **operacyjny** plan lekcji — widok przeglądania w Omniscol (moduł Plany lekcji) oraz wszystko, co korzysta z planu lekcji (portale, panele informacyjne, iCal, API). Konflikty między planami lekcji widać tam wprost: nauczyciel (lub sala) zajęty na dwóch równoczesnych lekcjach pochodzących z dwóch opublikowanych planów lekcji widzi je nałożone na siebie na scalonej siatce. Tak działa scalanie: tworzy plan lekcji faktycznie realizowany, **bez względu na typ** (w tym tygodniowy i kalendarzowy plan lekcji). W widoku reorganizacji powstaje wtedy konflikt. W obu przypadkach rozwiązanie pozostaje decyzją planistyczną: przesunąć, dostosować albo zaakceptować konflikt, zależnie od sytuacji. #### Rozpoznawanie tej samej klasy, sali lub zasobu w różnych planach lekcji W różnych planach lekcji tego samego konta ta sama klasa, ta sama sala lub ten sam zasób mogą mieć inny identyfikator wewnętrzny, na przykład po imporcie lub duplikacji. Omniscol dopasowuje je według tożsamości: 1. **identyfikator zewnętrzny** — gdy oba mają identyfikator z tego samego oprogramowania zewnętrznego (ERP, program szkolny), tylko on rozstrzyga. Jeśli są identyczne, oznaczają ten sam obiekt, nawet po zmianie nazwy; jeśli różne, oznaczają dwa odrębne obiekty, nawet o tej samej nazwie; 2. w przeciwnym razie **nazwa**, porównywana dokładnie (łącznie z wielkością liter, znakami diakrytycznymi i spacjami). Sala lub zasób są wyszukiwane w odpowiedniej lokalizacji, rozpoznawanej w ten sam sposób. Grupa jest wyszukiwana w odpowiedniej klasie: identyfikator zewnętrzny, następnie nazwa, następnie kod. Nauczyciele są nauczycielami konta: ten sam nauczyciel jest rozpoznawany we wszystkich planach lekcji. To dopasowanie służy wykrywaniu konfliktów między planami lekcji. W filtrze modułu Plany lekcji klasa występująca w kilku planach lekcji danego roku również tworzy jedną pozycję; jej plan lekcji zbiera lekcje z każdego z nich. Dwie odrębne klasy zgłoszone jako będące w konflikcie między planami lekcji, bez wspólnego nauczyciela ani sali, zostały więc rozpoznane jako jedna: mają ten sam identyfikator zewnętrzny albo tę samą nazwę. Proszę poprawić identyfikator w oprogramowaniu źródłowym lub rozróżnić ich nazwy. Między kontami powiązanymi dopasowanie opiera się na innych regułach: zob. [Konta powiązane i współdzielone zasoby](#page-integrations.linked-accounts). #### Instrukcja — Równoległa publikacja regularnego i kalendarzowego planu lekcji 1. **Klasyczny przypadek mieszany**: regularny **tygodniowy** plan lekcji dla większości zajęć oraz **kalendarzowy** plan lekcji dla lekcji z konkretną datą (wykłady gościnne, egzaminy, komisje). 2. **Warunek wstępny**: dwa plany lekcji utworzone w module Zarządzanie planami lekcji — tygodniowy z regularnymi zajęciami i kalendarzowy z lekcjami datowanymi. Proszę skonfigurować je niezależnie. Zob. także [Tryb kalendarzowy](#page-timetables.calendar-mode). 3. **Proszę uruchomić generowanie** osobno dla każdego planu lekcji, jeśli korzystają Państwo z automatycznego generowania. Najpierw proszę sprawdzić konflikty właściwe dla każdego planu lekcji. 4. **Proszę opublikować tygodniowy plan lekcji** na wybrane tygodnie (zwykle: cały rok). Zob. [Publikacja](#page-timetables.publication). Następnie **proszę opublikować drugi plan lekcji** (kalendarzowy) na **te same tygodnie**. Ekran publikacji pozwala wybrać kilka planów lekcji równolegle (w wersji standardowej tylko jeden). 5. **Proszę sprawdzić scalenie**: proszę otworzyć portal ucznia lub nauczyciela — lekcje z obu planów lekcji pojawiają się na tej samej siatce, scalone dynamicznie. iCal, API i panele informacyjne pokazują to samo. 6. **Konflikty między planami lekcji**: między tygodniowym a kalendarzowym planem lekcji nakładanie się widać głównie na **scalonym operacyjnym planie lekcji** (przeglądanie, portale) — jeśli wykład (kalendarz) wypada w przedziale czasowym regularnej lekcji (tygodniowej) dla tego samego nauczyciela lub tej samej sali, obie lekcje nakładają się tam na siebie. Rozwiązanie jak przy zwykłym konflikcie: przesunąć, dostosować albo zaakceptować. #### Zobacz także - [Publikacja planu lekcji](#page-timetables.publication) - [Tryb kalendarzowy](#page-timetables.calendar-mode) - [Konta powiązane i współdzielone zasoby](#page-integrations.linked-accounts) - [Plany i opcje Omniscol](#page-overview.plans-and-options) ### 3.18 Ręczne umieszczanie lekcji *Source: `help/pl/timetables/manual-placement.md` · id: timetables.manual-placement · Audience: admin · Updated: 2026-06-23* Umieszczenie lekcji **ręcznie** oznacza, że jej przedział czasowy wybiera się samodzielnie, zamiast pozostawiać decyzję algorytmowi. Niemal zawsze łączy się to z generowaniem ([Automatyczne generowanie](#page-timetables.generation)): budowanie planu lekcji jest **cyklem** — umieścić kilka lekcji → wygenerować → dostosować — a cały ten przebieg opisuje strona [Przegląd modułu](#page-timetables.overview). #### Kiedy umieszczać ręcznie - **Zakotwiczenie tego, co niezmienne, przed generowaniem** — zajęcia o ustalonej dacie, egzamin, narzucona godzina: umieszcza się je (i często **blokuje**, zob. [Blokowanie lekcji](#page-timetables.lesson-lock)), aby generowanie budowało *wokół* nich. - **Korygowanie szczegółów po generowaniu** — przesunąć lekcję, rozstrzygnąć szczególny przypadek, zmienić zdanie co do przedziału czasowego. - **Budowanie w całości ręcznie** — na małym planie lekcji albo gdy woli się zachować kontrolę od początku do końca (zob. niżej). #### Gest: pinezka, a potem kolorowy przedział czasowy Umieszczanie lekcji **nigdy nie jest przeciąganiem i upuszczaniem**. Proszę kliknąć przycisk umieszczania (pinezka, Umieść w planie lekcji) danej lekcji — na jej karteczce, w jej wierszu na liście albo w jej panelu (Umieść w planie lekcji), jeśli jest już umieszczona. Omniscol wyświetla wtedy **wszystkie możliwe przedziały czasowe**, pokolorowane zależnie od poziomu konfliktu: - **zielony** — brak konfliktu; - **żółty**, a potem **pomarańczowy** — konflikty od drobnych do umiarkowanych (wyświetla się powód); - **czerwony** — konflikt blokujący. Szczegóły każdego poziomu i pełną listę wykrywanych przypadków zawiera strona [Konflikty i diagnostyka](#page-timetables.conflicts). Przedziały czasowe pojawiają się na klasie **i** na nauczycielu lub nauczycielach, których lekcja dotyczy, razem z innymi już umieszczonymi lekcjami, co pomaga w wyborze. **Proszę kliknąć wybrany przedział czasowy**, aby umieścić w nim lekcję. Aby ją odpiąć, proszę dwukrotnie kliknąć lekcję już umieszczoną (wraca ona do strefy lekcji nieumieszczonych, bez usunięcia). #### Umieszczanie masowe — widok siatki Proszę kliknąć Siatka: wyświetlają się plany klas / nauczycieli, wygodne przy umieszczaniu jednej lekcji po drugiej. Gest się nie zmienia — pinezka [thumbtack] lekcji, a potem kliknięcie kolorowego przedziału czasowego. Przydaje się to w trybie kalendarzowym do ustalenia narzuconych dat albo do miejscowej poprawy wyniku generowania. #### Blokowanie, aby utrwalić ręczne umieszczenie Lekcja umieszczona ręcznie może domyślnie zostać przesunięta przez następne generowanie. Aby **już się nie ruszała**, proszę zablokować jej pozycję (kłódka): generowanie buduje wtedy wokół niej. Szczegóły (blokowanie masowe, skutki dla diagnostyki): [Blokowanie lekcji](#page-timetables.lesson-lock). #### Wszystko ręcznie (bez generowania) Nic nie zmusza do uruchomienia generowania. Na małym tygodniowym planie lekcji albo gdy umieszczanie jest silnie ograniczone decyzjami ludzi, można umieścić **każdą lekcję** po kolei (albo masowo w widoku siatki) i nigdy nie generować. Diagnostyka w czasie rzeczywistym pozostaje aktywna: konflikty (nauczyciel, sala, klasa, zasób) są zgłaszane na bieżąco, tak jak przy generowaniu. Następnie publikuje się normalnie. W przypadku lekcji wychodzących poza siatkę godzin (godziny podane wprost, wydłużone egzaminy) zob. [Lekcje poza siatką](#page-timetables.off-grid-lessons). #### Co dalej Gdy plan lekcji jest już ułożony — ręcznie, przez generowanie albo oba sposoby — [Publikacja planu lekcji](#page-timetables.publication). #### Zobacz także - [Automatyczne generowanie](#page-timetables.generation) - [Blokowanie lekcji](#page-timetables.lesson-lock) - [Lekcje poza siatką](#page-timetables.off-grid-lessons) - [Podział godzin i tworzenie lekcji](#page-timetables.hour-distribution) ### 3.19 Edycja lekcji *Source: `help/pl/timetables/lesson-edit.md` · id: timetables.lesson-edit · Audience: admin · Updated: 2026-06-12* Po utworzeniu lekcji (zob. [Podział godzin i tworzenie lekcji](#page-timetables.hour-distribution)) jej **pola** ustawia się jedno po drugim: przedmiot, grupa, nauczyciel, sala, zasoby, czas trwania, notatka oraz — zależnie od planu abonamentowego — status i tryb. Ta strona zbiera **wszystkie pola** lekcji i pokazuje, jak je zmieniać. #### Gdzie edytuje się lekcję Te same pola ustawia się na **trzy sposoby**, zależnie od trybu wyświetlania podziału godzin (zob. [Trzy tryby wyświetlania](#page-timetables.hour-distribution)): - **Karteczki** — każda karteczka lekcji nosi rząd **ikon** (po jednej na pole); kliknięcie otwiera odpowiedni selektor. - **Reorganizacja** — kliknięcie lekcji otwiera **kartę lekcji** zbierającą te same pola; zaznaczenie wielu lekcji edytuje je zbiorczo. - **Widok listy** — **jedna kolumna na pole**, z edycją masową z nagłówka kolumny na zaznaczonych lekcjach. Niezależnie od drogi zmienia się **tę samą lekcję**: wartości są spójne między trybami, a nic nie zostaje opublikowane, dopóki zmiany nie zostaną zapisane. #### Pola standardowe Dostępne we wszystkich planach abonamentowych: - **Przedmiot** Edytuj — przedmiot powiązany z lekcją, wybierany spośród zadeklarowanych na klasie. - **Grupa** Przypisz grupę — grupa lub podgrupa, której lekcja dotyczy, gdy klasa jest podzielona. - **Nauczyciel** Przypisz nauczycieli — jeden nauczyciel albo kilku. Wybranie **kilku** nauczycieli na tej samej lekcji odpowiada **współnauczaniu** (zob. [Złożone lekcje](#page-core-concepts.complex-lessons)). - **Sala** Przypisz salę — proszę wybrać główną salę lekcji; warianty zaawansowane opisano niżej, zależnie od funkcji włączonych na koncie. - **Zasoby** Przypisz zasoby — zasoby zajęte przez lekcję (projektor, tablety itd.), z kontrolą dostępności. - **Czas trwania** — proszę przeciągnąć **dolną krawędź** karteczki (tryb karteczek), aby wydłużyć lub skrócić lekcję. - **Pozycja i blokada** Umieść w planie lekcji — proszę przypiąć lekcję, aby generowanie jej nie przesuwało (zob. [Blokowanie lekcji](#page-timetables.lesson-lock)). - **Notatka** Komentarz — swobodny komentarz, z poziomami widoczności (zob. [Notatki](#page-timetables.hour-distribution)). #### Sala i przypisanie Przypisanie sali Przypisz salę jest otwarte dla wszystkich planów abonamentowych: proszę wybrać salę z listy albo pozwolić **trybowi automatycznemu** zaproponować zgodną salę (pojemność, etykiety, dostępność). Lista zachowuje **stałą kolejność** — ulubione sale na początku, dalej porządek alfabetyczny — i wskazuje dobre sale kandydujące, nie przesuwając ich: - **gwiazdka** oznacza najlepszą w danym momencie salę, a **półgwiazdka** kolejne. Po najechaniu na nie kursorem można przeczytać, co je wyróżnia: lokalizacja, stopień zapełnienia, specjalizacja oraz, w stosownym przypadku, pierwszeństwo wskazane przez klasę; - **zielona kropka** wyróżnia [kampus](#page-timetables.sites-rooms--campus) albo etykiety sali, gdy odpowiadają one temu, co klasa wskazała jako sale priorytetowe. To ten sam kod co przy specjalizacji, zielonej wtedy, gdy odpowiada lekcji; - **pojemność** przechodzi w pomarańczowy, a potem w czerwony, w miarę jak sala staje się zbyt mała dla liczby uczniów. Gwiazdka pozostaje w obrębie sal priorytetowych klasy. Półgwiazdka może z nich wyjść, gdy inna sala wyraźnie lepiej odpowiada liczbie uczniów: przy sali na 60 miejsc wybranej dla 25 uczniów półgwiazdka wskaże wolną jeszcze salę na 30 miejsc. > _Premium_ #### Funkcje zaawansowane lekcji ##### Status lekcji **Status** Status wskazuje, na jakim etapie cyklu planowania jest lekcja. Cztery wartości: - **Zaplanowany** — normalny status umieszczonej lekcji. - **Wersja robocza** — lekcja **ukryta** i **pomijana przez generowanie**: przydatne, aby przygotować lekcję, jeszcze jej nie narzucając planowi lekcji. - **Anulowany** — lekcja **wyświetlana jako anulowana**, ale zachowana w celach dokumentacyjnych; jest **pomijana przez generowanie**. - **Zrealizowany** — lekcja **zrealizowana**, uwzględniana w panelach zarządczych i w fakturowaniu. Ten status jest proponowany na planach lekcji typu kalendarzowego, gdzie monitorowanie faktycznie odbytych lekcji ma sens. Status dotyczy **całej lekcji** (a nie pojedynczego wariantu w tygodniach naprzemiennych). Zmienia się go lekcja po lekcji albo **zbiorczo** z widoku listy. ##### Tryb lekcji **Tryb** precyzuje, jak lekcja przebiega: - **Stacjonarnie**; - **Zdalnie**; - **Hybrydowy**; - **Samokształcenie**. Tryb wybiera się w selektorze sali, obok przypisania. Ma on konkretny skutek: lekcja prowadzona **zdalnie** albo jako **samokształcenie** nie wymaga **żadnej sali**, a generowanie się o nią nie upomina. Ikona lekcji odzwierciedla wybrany tryb. ##### Wiele sal Ta sama lekcja może otrzymać **kilka sal**: aby rozszerzyć zaznaczenie, proszę przytrzymać **Shift ⇧** przy kliknięciu. Przydatne, gdy rocznik rozdziela się na dwie sąsiednie sale albo gdy lekcja zajmuje podwojoną przestrzeń. Wszystkie wybrane sale są zarezerwowane i uczestniczą w konfliktach. ##### Niestandardowe czasy trwania i godziny Poza czasem trwania odczytanym z siatki godzin lekcja może nosić **niestandardowe czasy trwania** (rzeczywisty czas trwania dla paneli zarządczych, czas rozliczeniowy do fakturowania) oraz **godziny poza siatką** (jawne godziny rozpoczęcia i zakończenia). Te ustawienia, a także klasy poza siatką, opisuje dedykowana strona: [Lekcje poza siatką](#page-timetables.off-grid-lessons). #### Edycja wielu lekcji jednocześnie Aby zastosować tę samą wartość do zestawu lekcji: - w **reorganizacji** kombinacja **Shift+kliknięcie** rozszerza zaznaczenie na zakres; wspólna karta edytuje wtedy wszystkie lekcje razem; - w **widoku listy** proszę zaznaczyć wybrane lekcje, a następnie użyć **przycisku akcji w nagłówku** kolumny (czas trwania, nauczyciel, grupa, sala, status…). To szybka droga, aby na przykład nadać zestawowi lekcji status **Wersja robocza** albo przypisać im wspólną salę. #### Usuwanie lekcji Ikona Usuń usuwa lekcję. Usunięcie staje się **nieodwracalne** przy zapisie: przed zapisaniem proszę przejrzeć usunięcia, bo na tym ekranie nie ma globalnego cofnięcia. #### Instrukcja — Zmiana statusu lekcji 1. Proszę otworzyć podział godzin klasy ([Krok 6](#page-timetables.hour-distribution)). 2. Proszę kliknąć ikonę **statusu** Status lekcji (albo otworzyć jej kartę w trybie reorganizacji). 3. Proszę wybrać żądany status — na przykład **Wersja robocza**, aby ukryć lekcję przed generowaniem. 4. Aby obsłużyć zestaw lekcji, proszę przejść do **widoku listy**, zaznaczyć lekcje i zastosować status z nagłówka kolumny. 5. Proszę **zapisać**, aby opublikować zmiany. #### Zobacz także - [Podział godzin i tworzenie lekcji](#page-timetables.hour-distribution) - [Lekcje poza siatką](#page-timetables.off-grid-lessons) - [Blokowanie lekcji](#page-timetables.lesson-lock) - [Złożone lekcje](#page-core-concepts.complex-lessons) - [Lokalizacje, siatki godzin, sale, zasoby](#page-timetables.sites-rooms) - [Wykrywanie i rozwiązywanie konfliktów](#page-timetables.conflicts) ### 3.20 Lekcje i klasy poza siatką godzin *Source: `help/pl/timetables/off-grid-lessons.md` · id: timetables.off-grid-lessons · Audience: admin · Plan: premium · Updated: 2026-06-13* > **Premium** > _Premium_ **Lekcja poza siatką godzin** to lekcja umieszczona z jawnie podaną godziną rozpoczęcia i zakończenia, zamiast ściśle trzymać się granic przedziału czasowego siatki. Ta możliwość istnieje w planach lekcji tygodniowych, cyklicznych i kalendarzowych. **Klasa poza siatką** to osobne ustawienie: jest to właściwość klasy, dostępna w planach lekcji typu kalendarzowego. #### Lekcja z niestandardową godziną Niestandardowej godziny należy użyć, gdy jednorazowa lekcja nie wypada dokładnie w siatce: egzamin zaczynający się o `08:30`, zajęcia wieczorne, lekcja zachodząca na przerwę, rezerwacja zaczynająca się przed właściwymi zajęciami. Lekcja pozostaje widoczna w planie lekcji i nadal uczestniczy w konfliktach. Każdy element użyty w lekcji — nauczyciel, sala, klasa, grupa lub zasób — jest uznawany za zajęty, gdy tylko niestandardowa godzina zachodzi na przedział czasowy. Na potrzeby automatycznego generowania lekcja jest traktowana jako nieprzesuwalna: jej pozycja zostaje zablokowana automatycznie. #### Kiedy użyć wydarzenia zamiast lekcji Zamiast lekcji lepiej użyć [wydarzenia jednorazowego](#page-schedules.events), jeśli potrzeba nie dotyczy zajęć z planu lekcji: spotkanie, zwykła rezerwacja, konserwacja sali, dzień specjalny bez wymiaru godzinowego do rozliczenia. Lekcję należy zachować, gdy wymiar godzinowy ma pozostać powiązany z kursem, przedmiotem, klasą, nauczycielem, grupą lub z panelem zarządczym. #### Klasa poza siatką Klasa poza siatką służy programom, w których wszystkie lekcje mają być zapisane z dokładnymi godzinami, niezależnie od siatki godzin lokalizacji. Ustawia się ją przy tworzeniu lub modyfikacji klasy, wyłącznie w planach lekcji typu kalendarzowego. Typowy przypadek: kształcenie ustawiczne korzysta z tych samych sal i tych samych nauczycieli co kształcenie stacjonarne, ale działa według bardzo odmiennych godzin. Klasę można wtedy skonfigurować jako klasę poza siatką, z domyślnym krokiem czasowym, na przykład kwadransem. W tym trybie lekcje klasy mają bezpośrednio własne godziny rozpoczęcia i zakończenia. **Rezerwują** one nauczycieli, sale, klasy, grupy i zasoby, których dotyczą: nakładanie się na inną lekcję jest zgłaszane jako **konflikt** — nieblokujący przy ręcznym umieszczaniu, ale automatyczne generowanie nie umieści niczego w przedziale czasowym objętym konfliktem. #### Niestandardowe czasy trwania Lekcja może mieć również niestandardowe czasy trwania: - **Czas obliczony**: czas wynikający z godziny rozpoczęcia i zakończenia; - **Czas rzeczywisty**: czas używany w pierwszej kolejności w panelach zarządczych; - **Czas rozliczany**: czas używany do fakturowania lub do wynagrodzenia nauczyciela. Przykład: przy egzaminie można zarezerwować salę przed i po egzaminie, a w module Panel zarządczy liczyć wyłącznie rzeczywisty czas jego trwania. W przypadku opiekuna czas rozliczany może być dłuższy, jeśli szkoła rekompensuje także sprawdzanie prac. #### Na co zwrócić uwagę - Lekcja z niestandardową godziną może nachodzić na przerwę lub na przedział czasowy, który zwykle jest wolny; proszę sprawdzić, czy to zamierzone. - Ponieważ lekcja jest zablokowana dla generowania, może silnie ograniczać automatyczne umieszczanie lekcji wokół niej. - Klasa poza siatką ma charakter strukturalny: należy ją wybrać przed masowym tworzeniem lekcji tej klasy. - **Kursy złożone** (naprzemienności, łączenie lekcji, lekcje powiązane) są **wyłączone**, gdy występują jawne godziny albo klasa poza siatką: w takim przypadku funkcja nie jest dostępna. #### Instrukcja — Utworzenie lekcji z niestandardową godziną 1. Proszę umieścić lekcję w planie lekcji lub ją otworzyć. 2. Proszę otworzyć edycję niestandardowej godziny lekcji. 3. Proszę wpisać godzinę rozpoczęcia i godzinę zakończenia. 4. Proszę sprawdzić konflikty dotyczące nauczycieli, sal, klas, grup i zasobów, których to dotyczy. 5. W razie potrzeby proszę ponownie uruchomić generowanie: lekcja pozostanie zablokowana, a algorytm generowania rozmieści resztę wokół niej. #### Zobacz także - [Siatka godzin, przedziały czasowe i czasy trwania](#page-core-concepts.timetable-grid) - [Ustawienia ogólne](#page-timetables.general-settings) - [Lokalizacje, siatki godzin, sale, zasoby](#page-timetables.sites-rooms) - [Automatyczne generowanie](#page-timetables.generation) - [Wydarzenia jednorazowe](#page-schedules.events) ### 3.21 Blokowanie pozycji lekcji *Source: `help/pl/timetables/lesson-lock.md` · id: timetables.lesson-lock · Audience: admin · Updated: 2026-06-13* **Zablokowanie lekcji** oznacza zablokowanie jej **pozycji** w planie lekcji. Lekcja pozostaje uwzględniana przez algorytm generowania, ale generowanie nie może już jej przesunąć. Oczekiwanym znacznikiem wizualnym jest **zamknięta kłódka** [lock]. Odwrotnie, **otwarta kłódka** [unlock] wskazuje, że pozycję może jeszcze przesunąć generowanie albo operacja reorganizacji. Czego nie należy mylić: ikona **umieszczania** [thumbtack] służy do umieszczenia lekcji w planie lekcji. Otwiera ona albo włącza umieszczanie; nie jest znacznikiem blokady. #### Kiedy blokować lekcję Typowe przypadki: - **Nauczyciel zewnętrzny**, którego godziny są narzucone. - **Egzamin o wyznaczonej dacie**, dla którego ustalono już przedział czasowy lub salę. - **Wycieczka szkolna lub wyjście edukacyjne** zaplanowane na bardzo konkretny przedział czasowy. - **Sala zewnętrzna o narzuconych godzinach** (hala sportowa, pływalnia…): da się to zrobić blokadą, ale często lepiej skorzystać z **ograniczeń czasowych sali**, które prowadzą algorytm generowania bez usztywniania każdej lekcji z osobna. - **Lekcja [grupy wolnej](#page-core-concepts.free-groups)** umieszczona ręcznie obok lekcji głównej. - **Pozycja uzyskana w poprzednim generowaniu**, która ma zostać zachowana przed uruchomieniem szerszego generowania. #### Jak zablokować 1. Proszę umieścić lekcję w planie lekcji, jeśli jeszcze jej tam nie ma. 2. Proszę otworzyć szczegóły pozycji lekcji. 3. Proszę włączyć **zamkniętą kłódkę**, aby zablokować pozycję. 4. Proszę sprawdzić, czy na pozycji lekcji widać kłódkę. Aby zwolnić pozycję, proszę użyć **otwartej kłódki**. Lekcję może wtedy przesunąć generowanie albo niektóre operacje reorganizacji. #### Działania masowe W podziale godzin menu Akcje udostępnia także operacje globalne: - Zablokuj wszystkie pozycje lekcji blokuje lekcje już umieszczone; - Odblokuj wszystkie pozycje lekcji usuwa blokadę bez usuwania pozycji; - Anuluj wszystkie umieszczenia lekcji usuwa blokadę i pozycję. Ta ostatnia opcja jest przydatna przed nowym, czystym generowaniem, gdy punktem wyjścia mają być lekcje nieumieszczone. #### Skutki dla generowania i diagnostyki Zablokowana lekcja pozostaje twardym ograniczeniem dla algorytmu generowania. Pozostałe lekcje muszą się wokół niej ułożyć. Ważna konsekwencja: jeśli lekcja zostanie zablokowana w przedziale czasowym silnie obciążonym ograniczeniami, Omniscol respektuje tę decyzję. Konflikty lub ostrzeżenia pozostają widoczne, ale blokada wskazuje, że pozycja jest zamierzona. W diagnostyce problem dotyczący zablokowanej lekcji jest dzięki temu obniżany z alertu blokującego (czerwony) do ostrzeżenia (pomarańczowy): Omniscol sygnalizuje tę kwestię, nie narzucając jej już jako blokady do naprawienia. #### Czego nie należy mylić - **Blokada pozycji lekcji**: lekcja zachowuje swój przedział czasowy podczas generowania. - **Blokada współpracy**: mechanizm związany z jednoczesną edycją przez kilku administratorów. Zob. [Współpraca w czasie rzeczywistym](#page-core-concepts.collaboration). - **Pozycja z zablokowanym brakiem sali**: szczególny przypadek, gdy lekcja ma pozostać bez automatycznie przydzielonej sali, za pomocą Zablokuj. #### Dobre praktyki - Przed ponownym uruchomieniem generowania proszę sprawdzić zablokowane lekcje: zbyt wiele ustalonych pozycji zmniejsza pole manewru przy optymalizacji. - Po fazie testów proszę odblokować to, co nie ma zostać zachowane. - W przypadku grup wolnych proszę umieścić lekcję ręcznie, a potem zablokować jej pozycję. Zob. [Grupy wolne](#page-core-concepts.free-groups). #### Zobacz także - [Automatyczne generowanie](#page-timetables.generation) - [Diagnozowanie nieudanego generowania](#page-timetables.diagnosing-generation) - [Grupy wolne](#page-core-concepts.free-groups) - [Wykrywanie i rozwiązywanie konfliktów](#page-timetables.conflicts) - [Algorytm generowania](#page-glossary.solver) ### 3.22 Wykrywanie i rozwiązywanie konfliktów (przy generowaniu) *Source: `help/pl/timetables/conflicts.md` · id: timetables.conflicts · Audience: admin · Plan: standard · Updated: 2026-09-23* Omniscol wykrywa konflikty **na bieżąco** podczas **przygotowywania** planu lekcji i przy każdym **ręcznym umieszczeniu** lekcji. Diagnostyka odróżnia **konflikty blokujące** od **niespełnionych ograniczeń** i od **ostrzeżeń**, które wymagają decyzji, a wagę problemu oznacza **kolorem** — na przedziałach czasowych branych pod uwagę oraz na listach wyboru, gdy umieszczana jest lekcja, a także w każdym wierszu panelu diagnostyki. **Automatyczne generowanie** to osobne obliczenie (Generowanie umieszcza lekcje z uwzględnieniem ograniczeń albo zostawia lekcję nieumieszczoną): jego diagnostykę omawia [Diagnozowanie nieudanego generowania](#page-timetables.diagnosing-generation). #### Co sprawdza diagnostyka - **Zajętość (podwójna rezerwacja)** — nauczyciel, klasa, grupa, uczeń, sala lub zasób nie mogą obsługiwać dwóch lekcji, które na siebie zachodzą, chyba że zostało to jawnie zamodelowane (zgodne grupy, podziały, duże sale). - **Dostępność i ograniczenia czasowe** — okres zadeklarowany jako niedostępny albo niespełnione ograniczenie czasowe (nauczyciel, klasa, grupa, sala, kurs, lokalizacja), oceniane według priorytetu ograniczenia. Narzucone okno dat jest natomiast zawsze blokujące. - **Pojemność i wymiar godzin** — przekroczona pojemność sali, zasób żądany w zbyt wielu egzemplarzach, sala nieodpowiednia (pojemność, specjalizacja, lokalizacja) albo przekroczony wymiar godzin nauczyciela. - **Przepełnienie siatki** — godziny kursów do umieszczenia przekraczają liczbę otwartych przedziałów czasowych siatki albo się do niej zbliżają, dla nauczyciela lub dla całej klasy. - **Lokalizacje i przejazdy** — niewystarczający czas przejazdu między dwiema lokalizacjami dla nauczyciela lub klasy albo dwa przedmioty zadeklarowane jako niekompatybilne umieszczone w tym samym czasie. - **Kalendarz** — lekcja wypadająca w nieobecność (nauczyciela lub klasy), w dzień zamknięty lub wolny albo w kolizji z niekompatybilnym wydarzeniem. - **Modelowanie** — zerwane wyrównanie (wyrównane grupy bez wspólnej lekcji), różna liczba lekcji w grupach tego samego podziału lub tego samego wyrównania, brak nauczyciela lub sali albo niepełna konfiguracja (lokalizacja, siatka, parametr potrzebny przed generowaniem). #### Konflikty z innym planem lekcji W module Zarządzanie planami lekcji, zarówno w reorganizacji, jak i w edycji planu lekcji kalendarzowego, diagnostyka porównuje plan również z innymi planami lekcji opublikowanymi w tych samych dniach oraz z kontami powiązanymi: tymi, które zaznacza się w menu Synchronizacja. Nauczyciel, klasa lub sala zajęte już w jednym z nich powodują konflikt, nawet jeśli edytowany plan lekcji nie ma w tym czasie żadnej innej lekcji. W szczegółach konfliktu lekcja z innego planu lekcji ma po nazwie swojej klasy ikonę [calendar-days], a po niej nazwę tego planu. Lekcja z konta powiązanego ma ikonę [building-columns], a po niej nazwę tego konta. Omniscol rozpoznaje tę samą klasę, salę lub zasób w różnych planach lekcji po identyfikatorze zewnętrznym, a w jego braku po nazwie: zob. [rozpoznawanie tej samej klasy w różnych planach lekcji](#page-timetables.multiple-active-timetables--same-entity). #### Poziomy wagi Ta sama skala wagi — zielony, żółty, pomarańczowy, czerwony — koloruje kilka miejsc w edycji. **Na przedziałach czasowych branych pod uwagę**, gdy umieszcza się lekcję (zob. [Ręczne umieszczanie](#page-timetables.manual-placement)). **Oraz przy każdej opcji list wyboru**: gdy wybiera się nauczyciela, salę, zasób, grupę lub uczestników lekcji, każda pozycja ma ikonę kalendarza w kolorze odpowiadającym jej poziomowi w wybranym przedziale czasowym — zieloną, jeśli encja jest wolna, czerwoną, jeśli jest zajęta — a szczegóły widać po najechaniu kursorem. Wybór uniemożliwia tylko **czerwona** niedostępność (zajęte, okres zamknięty); sala zbyt mała lub o nieodpowiedniej specjalizacji pozostaje do wyboru, z ostrzeżeniem. | Kolor | Znaczenie | | --- | --- | | **zielony** | brak konfliktu — encja jest wolna (albo zasób mieści się w limicie) | | **żółty** | lekka niedogodność, niebiorąca blokady (ograniczenie czasowe o średnim priorytecie, nieobecność w pełni zastąpiona, sala poprawna, ale nie idealna) | | **pomarańczowy** | twarde ograniczenie (ograniczenie czasowe o wysokim priorytecie, sala zapełniona do 110% pojemności, wymiar godzin do 110%, zbyt krótki czas przejazdu między lokalizacjami, przedmioty niekompatybilne, dzień zamknięty) | | **czerwony** | konflikt blokujący (podwójna rezerwacja, obowiązkowe ograniczenie czasowe lub narzucone okno dat, sala powyżej 110% pojemności, nieobecność bez zastępstwa, zerwane wyrównanie) | **W panelu diagnostyki.** Każdy wymieniony problem ma poziom, który uwzględnia filtr. Panel łączy pomarańczowy i żółty w jeden poziom „ważne” i dodaje poziom „wskazówka” dla informacji niebiorących blokady: | Poziom | Znaczenie | Odpowiadające kolory przedziałów czasowych | | --- | --- | --- | | **czerwony** | Konflikt blokujący | czerwony | | **żółty** | Niespełnione ograniczenie / Ostrzeżenie | pomarańczowy + żółty | | **niebieski** | Wskazówka / Bliski limit | obciążenie siatki, podziały | Gdy opcja Blokowanie wyborów będących w konflikcie (twarde ograniczenia) jest aktywna, Omniscol uniemożliwia wybory, które spowodowałyby twarde ograniczenie; w przeciwnym razie alert pozostaje widoczny, aby administrator mógł rozstrzygnąć. ##### Przepełnienie i obciążenie siatki Omniscol stale porównuje **godziny kursów do umieszczenia** z **liczbą otwartych przedziałów czasowych** siatki — dla każdego nauczyciela (według klasy i lokalizacji) oraz dla każdej całej klasy. Komunikat podaje obie wartości, na przykład „18 h / 16 h”. Trzy progi, zależnie od zapełnienia: | Próg | Zapełnienie | Odczyt | | --- | --- | --- | | **niebieski** — obciążenie | siatka zapełniona w 90–100% | limity wkrótce zostaną osiągnięte; umieszczanie jest już napięte | | **pomarańczowy** — niewielkie przepełnienie | 100–110% (godziny > przedziały czasowe do 110%) | poprawny plan lekcji będzie *prawdopodobnie* niemożliwy | | **czerwony** — duże przepełnienie | powyżej 110% | poprawny plan lekcji będzie *niemal na pewno* niemożliwy | To obliczenie działa tylko wtedy, gdy skonfigurowano co najmniej jedną lokalizację, i niczego nie zgłasza, dopóki siatka jest zapełniona poniżej 90%. Mierzy ono wymagane godziny w stosunku do dostępnych przedziałów czasowych — nie należy go mylić z **przekroczeniem wymiaru godzin** nauczyciela (godziny prowadzone w stosunku do godzin z umowy), które ma te same kolory, ale pozostaje odrębnym wykrywaniem. ##### Wszystkie wykrywane problemy | Wykrywanie | Rodzina filtra | Poziom | | --- | --- | --- | | Nauczyciel, klasa lub grupa już zajęci | Konflikty | czerwony | | Sala już zajęta | Konflikty | czerwony | | Zerwane wyrównanie (wyrównane grupy bez wspólnej lekcji) | Konflikty | czerwony (pomarańczowy, jeśli różni się tylko sala lub zasób) | | Niespełnione ograniczenie czasowe (nauczyciel, klasa, grupa, sala, kurs, lokalizacja) | Ograniczenia czasowe | obowiązkowe → czerwony, wysokie → pomarańczowy, średnie → żółty (okno dat → zawsze czerwony) | | Przekroczona pojemność sali | Pojemność | pomarańczowy do 110% pojemności, czerwony powyżej | | Zbyt wiele egzemplarzy zasobu | Pojemność | pomarańczowy | | Sala nieodpowiednia (pojemność, specjalizacja, lokalizacja) | Pojemność | żółty — można wymusić | | Przekroczony wymiar godzin nauczyciela | Pojemność | pomarańczowy do 110%, czerwony powyżej | | Przepełnienie / obciążenie siatki | Przepełnienie siatki | niebieski → pomarańczowy → czerwony (zob. wyżej) | | Niewystarczający czas przejazdu między lokalizacjami (nauczyciel, klasa) | Odległość | pomarańczowy | | Niekompatybilne przedmioty w tym samym czasie | Kompatybilność | pomarańczowy | | Brak wolnej sali wśród dozwolonych sal | Brak sali | żółty (czerwony, jeśli żadna) | | Brak nauczyciela (kurs bez przypisanego nauczyciela) | Brak nauczyciela | żółty | | Brak sali (lekcja umieszczona bez wymaganej sali) | Brak sali | żółty | | Różna liczba lekcji w grupach podziału | Podziały | niebieski (orientacyjnie) | | Różna liczba lekcji w grupach wyrównanych | Wyrównania | czerwony (konfiguracja blokująca) | | Nauczyciel nieobecny na swoim kursie | Nieobecności | bez zastępstwa → czerwony, zastąpiony → żółty, częściowo (współprowadzenie) → pomarańczowy | | Klasa nieobecna | Nieobecności | czerwony | | Lekcja w dzień zamknięty / wolny | Kalendarz | pomarańczowy (czasem wymuszony na czerwony) | | Niepełna konfiguracja (lokalizacja, siatka, parametr) | — | blokująca przed generowaniem | ##### Przejście z alertu do problemu Każdy wiersz panelu jest **klikalny**: lupa [magnifying-glass] prowadzi bezpośrednio do właściwego kursu, grupy lub klasy — to najszybszy sposób, by wyodrębnić kontekst konfliktu. W przypadku konfliktu **grup** (podział, wyrównanie) ikona [link] zostawia tylko powiązane grupy, dzięki czemu ograniczenie wyraźnie się uwidacznia, gdy surowa diagnostyka nie wystarcza. > _Premium_ #### Filtrowanie diagnostyki Przycisk Filtry diagnostyczne (trójkąt ostrzegawczy na górze panelu) otwiera menu, w którym można zostawić tylko alerty przydatne w bieżącej analizie. Jego ikona robi się pomarańczowa, dopóki jakiś filtr jest aktywny. Ustawia się tam: - **Poziomy** — pokazanie lub ukrycie czerwonego (blokujące), żółtego (ważne / do sprawdzenia) i niebieskiego (wskazówka / bliski limit). - **Encje** — klasy, nauczyciele, sale, zasoby, grupy oraz typy wydarzeń kalendarza (wydarzenia, dni wolne, nieobecności). - **Poziomy klas**, **kampusy**, **lokalizacje** — zawężenie do określonego zakresu. Kampus wyodrębnia jednostkę organizacyjną (oddział, wydział, pion); lokalizacja dotyczy miejsca fizycznego. - **Przyczyny** — włączanie lub wyłączanie każdej rodziny wykrywania: ograniczenia czasowe, konflikty, pojemność, odległość, brak nauczyciela, brak sali, kompatybilność, podziały, wyrównania. - **Zakres dat** (plan lekcji kalendarzowy) — ograniczenie do najbliższych tygodni lub miesięcy i ukrycie przeszłości. - **Zachowanie** — Blokowanie wyborów będących w konflikcie (twarde ograniczenia) aktywnie uniemożliwia umieszczenia, które spowodowałyby twarde ograniczenie. - **Resetuj** — pokazanie wszystkiego od nowa. Filtr nie rozwiązuje konfliktu: ukrywa tylko to, co nie pomaga w bieżącej analizie. #### Rozwiązywanie konfliktu Najczęstsze poprawki to: - przeniesienie lekcji; - zmiana nauczyciela, sali lub zasobu; - złagodzenie zbyt ostrego ograniczenia; - poprawienie niedostępności lub nieobecności wpisanej omyłkowo; - utworzenie lub poprawienie grup, podziałów lub wyrównań; - dodanie zgodnej sali, pojemności lub specjalizacji; - zablokowanie lekcji, która ma pozostać stała, przed ponownym uruchomieniem generowania. Jeśli Generowanie nie znajdzie pełnego rozwiązania, może zwrócić częściowy plan lekcji: lekcje nieumieszczone pozostają na pasku karteczek z lekcjami do umieszczenia. Proszę poprawić w pierwszej kolejności problemy wskazane przez diagnostykę, a następnie ponownie uruchomić generowanie lub umieścić pozostałe lekcje ręcznie. #### Przypadki wymagające rozstrzygnięcia Niektóre sygnały odpowiadają decyzji organizacyjnej, a nie błędowi we wprowadzonych danych. Przykłady: - egzamin z salą główną i salą dla uczniów z wydłużonym czasem pisania; - zadeklarowana pojemność większa niż wpisana liczba miejsc, gdy szkoła wie, że część zapisanych osób nie będzie obecna; - sala dodatkowa niezamodelowana w Omniscol. W takich przypadkach lepiej jawnie zamodelować sytuację, gdy to możliwe: wiele sal, dostosowane grupy, poprawiona pojemność lub osobne wydarzenie. Pozostawienie alertu z rozmysłem powinno być decyzją znaną zespołowi, a nie stałym szumem. #### Instrukcja 1. Proszę otworzyć diagnostykę planu lekcji. 2. W razie potrzeby proszę przefiltrować według poziomu, kampusu, lokalizacji, encji lub typu problemu. 3. Proszę zacząć od konfliktów blokujących. 4. Proszę otworzyć szczegóły problemu, aby zidentyfikować powiązane lekcje i zasoby. 5. Proszę poprawić lekcję, ograniczenie lub modelowanie. 6. Proszę ponownie uruchomić diagnostykę lub generowanie, aby sprawdzić, czy problem zniknął. #### Zobacz także - [Konflikt](#page-glossary.conflict) - [Diagnostyka](#page-glossary.diagnostic) - [Kampus](#page-glossary.campus) - [Automatyczne generowanie](#page-timetables.generation) - [Ręczne umieszczanie](#page-timetables.manual-placement) - [Diagnozowanie nieudanego generowania](#page-timetables.diagnosing-generation) ### 3.23 Diagnozowanie nieudanego generowania *Source: `help/pl/timetables/diagnosing-generation.md` · id: timetables.diagnosing-generation · Audience: admin · Updated: 2026-06-24* Generowanie „nie udaje się” wtedy, gdy algorytm generowania nie zdoła **umieścić wszystkiego**: zwraca najlepszy znaleziony częściowy plan lekcji, a lekcje, które musiał **poświęcić**, pozostają na pasku karteczek do umieszczenia (czerwony baner streszcza blokadę). Problem niemal zawsze polega na **nadmiarze ograniczeń**: zbyt wiele kursów w stosunku do otwartych przedziałów czasowych albo ograniczenia zbyt ciasne, by dały się złożyć. Lekarstwem jest **rozluźnienie** tego, co rozluźnić można — i o tym jest ta strona. Aby zrozumieć, jak algorytm generowania ustala priorytety i co poświęca, zob. [Automatyczne generowanie](#page-timetables.generation); katalog konfliktów na już ułożonym planie lekcji opisuje [Konflikty i diagnostyka](#page-timetables.conflicts). #### Diagnostyka wskazuje trop, nie wydaje wyroku Gdy lekcji nie da się umieścić, Omniscol wskazuje **jednostkę, która sprawiła najwięcej problemów** w kolejnych próbach — „ten nauczyciel nie ma dość przedziałów czasowych”, „ta klasa nie mieści się w swojej siatce godzin”. **To heurystyka**: wskazana jednostka jest tą, która najczęściej wraca w blokadach, a nie koniecznie *jedyną* przyczyną. Ograniczenia **krzyżują się** — rozluźnienie w innym miejscu może odblokować całość. Proszę więc traktować komunikat jako **kierunek poszukiwań**: prawdziwym lekarstwem jest zwykle raczej **złagodzenie ogólnego nadmiaru ograniczeń** (trochę więcej przedziałów czasowych, mniej rygorystyczna dostępność) niż upieranie się przy wskazanej jednostce. #### Najczęstsze przyczyny ##### 1. Zbyt restrykcyjna dostępność Nauczyciel oznaczył jako **niemożliwe** tyle przedziałów czasowych, że nie zostaje ich dość na umieszczenie jego lekcji. **Diagnostyka**: proszę przejrzeć ekran dostępności danego nauczyciela. Proszę policzyć wolne przedziały czasowe i porównać je z jego liczbą godzin. **Rozwiązania**: - Złagodzenie dostępności w części przedziałów czasowych (zamiana czarnego na czerwony — niepożądany, ale nie niemożliwy), - Rozdzielenie kursów na nowo (przekazanie części innemu nauczycielowi), - Rozmowa z nauczycielem, jeśli dostępność jest negocjowalna. ##### 2. Brak zgodnej sali Przedmiot wymaga **specjalizacji**, dla której nie utworzono żadnej sali, albo wszystkie odpowiadające jej sale są zajęte w jedynych możliwych przedziałach czasowych. **Rozwiązania**: - Utworzenie brakującej specjalizacji na odpowiedniej sali, - Złagodzenie ograniczenia specjalizacji, - Dodanie sali. ##### 3. Niewystarczająca pojemność sali Liczba uczniów w grupie lub klasie przekracza pojemność wszystkich sal kandydujących. **Rozwiązania**: - Przypisanie większej sali, - Przypisanie [wielu sal](#page-glossary.multi-room) do jednego kursu (łączna pojemność jest ich sumą), - Podzielenie klasy lub grupy. ##### 4. Wyrównanie strukturalnie niemożliwe Liczba godzin wyrównanych grup jest różna, klasy nadrzędne mają niezgodne siatki godzin albo nauczyciel objęty wyrównaniem może być tylko w jednym miejscu. **Rozwiązania**: - Ujednolicenie liczby godzin między wyrównanymi grupami, - Zniesienie wyrównania i utworzenie jednego kursu na klasę, - Sprawdzenie, czy lokalizacje wyrównanych klas mają wspólną siatkę godzin w docelowym przedziale czasowym. ##### 5. Zbyt wiele lekcji w stosunku do siatki godzin Gdy klasa albo nauczyciel ma wyraźnie więcej godzin niż otwartych przedziałów czasowych, **uprzedza o tym ostrzeżenie** (zakładka **Generowanie**, liczniki godzin wobec przedziałów czasowych). Przypadek przewrotny jest bardziej podstępny: z osobna żadne przekroczenie nie jest widoczne, ale **nawarstwienie** ograniczeń nauczycieli i klas — oraz ich **krzyżowanie się** — w końcu przestaje się mieścić. **Rozwiązania**: - Zmniejszenie wprowadzonej liczby godzin, - Rozszerzenie siatki godzin (na przykład otwarcie popołudnia dotąd zamkniętego), - Złagodzenie kilku niedostępności — zwłaszcza w **przedziałach czasowych, których wiele jednostek unika jednocześnie**: ich nakładanie się nasyca siatkę godzin. ##### 6. Zbyt liczne niekompatybilności Nawarstwianie ograniczeń „nie X po Y” może utworzyć układ bez rozwiązania. **Rozwiązanie**: zamiana części niekompatybilności na bardziej elastyczne **wagi pedagogiczne**. ##### 7. Za mało sal (wąskie gardło) Bardzo częste: nawet jeśli każda sala się nadaje, ich **liczba** nie wystarcza, by wchłonąć zapotrzebowanie w tym samym momencie. Lekcje nawarstwiają się na tych samych przedziałach czasowych, a brak sal staje się **wąskim gardłem**, które nie pozwala zmieścić całości. **Rozwiązania**: - Dodanie sal (albo ich współdzielenie między klasami), - Rozłożenie zapotrzebowania przez rozszerzenie siatki godzin, - Złagodzenie ograniczeń, które skupiają kursy na niewielu przedziałach czasowych. ##### 8. Wiele lokalizacji: przejazdy uszczuplają godziny Gdy lokalizacji jest kilka, **czasy przejazdu** między nimi zmniejszają liczbę przedziałów czasowych naprawdę użytecznych dla nauczyciela (albo klasy): zmiana lokalizacji kosztuje czas, którego nie da się już przeznaczyć na umieszczenie lekcji. Rzeczywista dostępność zawęża się, a łamigłówka staje się trudniejsza. **Rozwiązania**: - Skupienie kursów nauczyciela w jednej lokalizacji w ciągu dnia, - Sprawdzenie zadeklarowanych czasów przejazdu między lokalizacjami, - Ograniczenie wielokrotnych przejazdów między lokalizacjami w ciągu jednego dnia. #### Lista kontrolna przed ponownym generowaniem - Czy wszystkie klasy mają przypisaną lokalizację? - Czy wszystkie klasy mają swoje przedmioty i swoich nauczycieli? - Czy wszystkie grupy używane w kursach mają teoretyczną liczbę uczniów albo możliwą do obsłużenia pojemność? - Czy dostępność wszystkich nauczycieli jest zatwierdzona? - Czy w zakładce **Generowanie** nie ma krytycznego (czerwonego) alertu? #### Wbudowane narzędzia diagnostyczne - **Zakładka Generowanie** — *zawczasu*: statystyki (kursy i godziny na nauczyciela, na klasę, na lokalizację) oraz ostrzeżenia (godziny wobec przedziałów czasowych, alerty krytyczne do poprawienia przed uruchomieniem). - **Lekcje nieumieszczone** (karteczki po prawej) — *po nieudanej próbie*: wynik niekompletnego generowania. Przycisk umieszczania (pinezka) na każdej z nich pokazuje kolorowanymi przedziałami czasowymi, dlaczego żadne miejsce się nie nadaje. - **Wykrywanie zapomnianych grup**: grupy zdefiniowane, ale bez żadnego przypisanego kursu. #### Instrukcja — Diagnozowanie nieudanego generowania 1. **Gdy generowanie się nie uda**, Omniscol wyświetla czerwony baner, zachowuje widoczny częściowy plan lekcji, a lekcje, których nie zdołał umieścić, przenosi na **pasek karteczek** po prawej. 2. **Proszę przeczytać baner**: wskazuje **kierunek** (heurystyka, zob. wyżej), a nie wyrok. 3. **Proszę wyjść od lekcji nieumieszczonych, a nie od „konfliktów”.** Generowanie nigdy nie tworzy konfliktu: po prostu pomija to, co się nie mieści. Proszę wziąć lekcję z karteczek i kliknąć jej przycisk umieszczania (pinezka, Umieść w planie lekcji). 4. **Proszę odczytać kolorowane przedziały czasowe.** Omniscol pokazuje wszystkie kandydujące przedziały czasowe; dla lekcji niemożliwej do umieszczenia wszystkie są zablokowane. Proszę szukać **dlaczego**, w kolejności trzech zwykłych blokad: zajęty albo niedostępny **nauczyciel**, zajęta **klasa** (lub grupa), albo **brak sali** wolnej i zgodnej. Powód wyświetla się po najechaniu na przedział czasowy. 5. **Proszę rozluźnić ograniczenie, które blokuje** — zależnie od przypadku: złagodzić dostępność, dodać albo zwolnić salę, ujednolicić wyrównanie, rozszerzyć siatkę godzin (zob. przyczyny powyżej) — a potem uruchomić generowanie ponownie. 6. **Przed ponownym uruchomieniem** proszę przejść przez listę kontrolną wyżej (przypisane lokalizacje, obecne przedmioty i nauczyciele, wypełniona liczba uczniów, zatwierdzona dostępność, brak alertu krytycznego w zakładce **Generowanie**). #### Zobacz także - [Automatyczne generowanie](#page-timetables.generation) - [Konflikty i diagnostyka](#page-timetables.conflicts) - [Diagnostyka](#page-glossary.diagnostic) - [Konflikt](#page-glossary.conflict) - [Przypadki szczególne i konfiguracje zaawansowane](#page-faq.edge-cases) ### 3.24 Podgląd, duplikowanie i reorganizacja planu lekcji *Source: `help/pl/timetables/visualize-duplicate.md` · id: timetables.visualize-duplicate · Audience: admin · Updated: 2026-06-25* Szkoła ma często **kilka planów lekcji** na różnych etapach: plan opublikowany na bieżący rok, wersję roboczą na kolejny rok szkolny, scenariusz testowy do sprawdzenia reorganizacji. Ta strona pokazuje, jak zarządzać tymi wersjami bez pomyłek oraz do czego służą ekrany **Podgląd** i **Reorganizacja**, gdy plan lekcji został już wygenerowany. #### Lista planów lekcji Moduł **Zarządzanie planami lekcji** otwiera się na liście planów lekcji konta: opublikowanych i roboczych. Dla każdego planu lekcji widać: - jego **nazwę** (`Rok 2026-2027`, `Wersja robocza 2027`, `Scenariusz połączenia klas 6 i 7`), - jego **status** (opublikowany lub nieopublikowany), - **zakres tygodni**, w którym jest opublikowany (jeśli dotyczy), - **szybkie statystyki** (liczba klas, liczba kursów, liczba nauczycieli). Dostępne akcje pozwalają między innymi otworzyć, zduplikować lub usunąć plan lekcji. Usuwanie jest wyłączone dla opublikowanego planu lekcji. #### Podgląd wygenerowanego planu lekcji Przycisk Wizualizuj otwiera plan lekcji **tylko do odczytu**: oglądają Państwo gotowy plan lekcji bez możliwości jego zmiany. Ten ekran najlepiej nadaje się do **przejrzenia** planu przed publikacją, **sprawdzenia** wybranego tygodnia lub ciągu lekcji, **pokazania** planu lekcji bez dawania dostępu do funkcji edycji, **eksportu** oraz **udostępniania**. ##### Bezpieczna kontrola Ekran korzysta ze zwykłego mechanizmu wyświetlania planów lekcji, ale w trybie **zabezpieczonym**: bez przesuwania lekcji, bez zapisu, bez przypadkowych poprawek. Są tu filtry wyświetlania, wybór dni, różne tryby wyświetlania (siatka, lista, tabela, planowanie, dzień, miesiąc, porównanie — opisane w [Wyświetlanie planów lekcji](#page-schedules.schedule-display)) oraz szybkie zamykanie kilku kalendarzy otwartych obok siebie. ##### Tygodnie naprzemienne i warianty Jest to szczególnie przydatne, gdy plan lekcji obejmuje **tygodnie naprzemienne**: wyświetlają Państwo widok **Wszystkie tygodnie**, a następnie po kolei **warianty** na odpowiednich zakładkach (A/B, 1/2 itd.). To często najprostszy sposób, by upewnić się, że cykliczny plan lekcji jest spójny we wszystkich wariantach, bez szumu narzędzi edycji. ##### Udostępnianie tylko do odczytu Z tego ekranu otwierają Państwo funkcję **udostępniania**: cały teoretyczny plan lekcji przekazują Państwo w trybie tylko do odczytu osobie trzeciej (partnerowi zewnętrznemu, dyrekcji, kierownikowi lokalizacji) przez link internetowy, bez otwierania dostępu do konta Omniscol. Dla planu lekcji typu kalendarz dostępny jest także link **iCal**. Szczegóły w [Udostępnianie planu lekcji linkiem publicznym](#page-schedules.share-link). ##### Eksport (PDF, Excel, drukowanie) Ekran Podgląd to naturalne miejsce, by wygenerować plik z wyświetlanego planu lekcji: - Eksportuj dane w formacie PDF, aby wygenerować **PDF**, - Eksportuj dane w formacie Excel, aby wyeksportować do **Excel / XLSX**, - Drukuj, aby **wydrukować**. W przypadku planów lekcji klas i nauczycieli jest to zwykle najprostszy sposób na przygotowanie czytelnego dokumentu do przekazania. #### Szybka reorganizacja gotowego planu lekcji Przycisk Reorganizuj otwiera ten sam plan lekcji w trybie **szybkiej edycji**. Nie chodzi o budowanie planu lekcji od nowa, lecz o szybkie poprawienie przypadków brzegowych w gotowym już planie. Typowe przypadki: - przesunięcie już wygenerowanej lekcji, - zmiana sali, przedziału czasowego lub jednorazowego przydziału, - dodanie pojedynczej lekcji, - poprawienie kilku pozostałych konfliktów bez powtarzania całego łańcucha **podział godzin → generowanie**. Na tym ekranie znajdują Państwo siatkę godzin, filtry, panel dostępnych przedziałów czasowych, przycisk Dodaj oraz przycisk Zapisz, którym zapisują Państwo zmiany. Jeśli zmiana staje się **strukturalna** (klasy, grupy, przedmioty, wymiar godzin, ograniczenia globalne), proszę raczej wrócić do etapów budowy planu lekcji lub zduplikować plan lekcji i pracować na wersji roboczej. #### Duplikowanie planu lekcji Trzy typowe przypadki: - **Przygotowanie kolejnego roku** na podstawie opublikowanego planu lekcji — zob. [Przygotowanie następnego roku szkolnego](#page-timetables.next-school-year). - **Utworzenie scenariusza testowego** z opublikowanego planu lekcji, aby bez ryzyka sprawdzić zmianę strukturalną (połączenie klas, reorganizacja lokalizacji, dodanie nowego profilu). - **Powrót do starego planu lekcji zachowanego na koncie** — przejęcie struktury z minionego roku jako podstawy nowego planu. Akcja Duplikuj otwiera okno dialogowe. Utworzona kopia jest zawsze **nieopublikowaną wersją roboczą**: jej lekcje zasilają inne moduły dopiero po wyraźnym opublikowaniu. Okno przedstawia drzewo pól wyboru, **domyślnie wszystkie zaznaczone**: pozostawienie wszystkiego zaznaczonego daje kopię identyczną, a odznaczenie pola usuwa odpowiedni element z kopii. ##### Wybór przenoszonych elementów Drzewo odzwierciedla strukturę planu lekcji; odznaczenie gałęzi oznacza zbudowanie jej od nowa: - **Lokalizacje** — wraz z salami i zasobami. Odznaczenie lokalizacji usuwa także sale i zasoby przypisane do lekcji kursów **oraz pozycje lekcji**: kopia zaczyna wtedy od siatki godzin do ponownego zapełnienia. - **Nauczyciele** — pula nauczycieli planu lekcji. Odznaczenie puli usuwa jednocześnie przydziały nauczyciel-klasa-przedmiot oraz nauczycieli przypisanych do lekcji kursów. - **Klasy** — wraz z grupami, ograniczeniami czasowymi, niekompatybilnościami i podziałem godzin. Każdą podgałąź można odznaczyć osobno: grupy, ograniczenia czasowe klasy, niekompatybilności lub szczegóły lekcji kursów (grupy, sale, zasoby, forma, komentarz, pozycje…). - **Pozycje lekcji** — odznaczone samodzielnie sprawiają, że kopia zachowuje całą strukturę, ale **siatka godzin jest pusta**: to właściwy sposób na sklonowanie przygotowań, by uruchomić generowanie od zera. Zależności są stosowane automatycznie: nie można na przykład zachować sali przy lekcji i jednocześnie usunąć wszystkich lokalizacji. Bez względu na to, jak szczegółowo odznaczono elementy, Omniscol usuwa odwołania, które stały się osierocone — na przykład klasę wskazującą na usuniętą lokalizację. ##### Zmiana typu planu lekcji > _Premium_ To samo okno dialogowe pozwala **przekonwertować** kopię na typ inny niż oryginał. Selektor proponuje tylko dwa **pozostałe** typy. Konwersja dopasowuje lekcje do nowej reprezentacji. - **Na kalendarz** (z tygodniowego lub cyklicznego) — wskazują Państwo **okres** (datę początku i końca). Każda lekcja cykliczna jest **rozwijana w lekcję z datą dla każdego odpowiadającego dnia roboczego** okresu; dni wolne, zamknięcia i nieobecności są pomijane. Wymiar godzin każdego przedmiotu jest dostosowywany do liczby tygodni okresu, a tygodnie naprzemienne są rozstrzygane datę po dacie na właściwy wariant (A/B, A/B/C…). - **Na cykl** — wskazują Państwo **długość cyklu** w dniach roboczych; każda pozycja staje się numerem dnia w cyklu. - **Na tygodniowy** (z cyklicznego lub kalendarza) — każda lekcja wraca na swój **dzień tygodnia**. Konwersja na plan tygodniowy lub cykl jest świadomie uproszczeniem: kilka lekcji przypadających w ten sam dzień tygodnia łączy się w jednym przedziale czasowym, a dostępności z datami z kalendarza nie są przenoszone. Konwersję na kalendarz warto zarezerwować na przypadki, w których naprawdę potrzebne są jawne daty. > _Premium_ ##### Przesunięcie dat (plan lekcji typu kalendarz) W przypadku planu lekcji typu **kalendarz** duplikowanie może **przesunąć wszystkie lekcje** na nową datę początku — wygodne, gdy chcą Państwo powtórzyć tę samą organizację w kolejnym roku. Zaznaczają Państwo opcję przesunięcia, podają nową datę początku, a Omniscol przesuwa okres i ponownie ustawia każdą lekcję. Zasada: Omniscol **zachowuje kolejność dni zajęć**. N-ty dzień zajęć okresu źródłowego staje się N-tym dniem zajęć nowego okresu — przeliczenie opiera się na dniach roboczych, a nie na surowej dacie kalendarzowej. Lekcja może więc **zmienić dzień tygodnia**, z dwóch powodów. Po pierwsze, nowa data początku nie musi przypadać w ten sam dzień co poprzednia: jeśli źródło zaczyna się w poniedziałek, a cel w środę, wszystko przesuwa się o dwa dni. Po drugie — i to przypadek najczęstszy — dni wolne i zamknięcia w obu okresach się nie pokrywają. Lekcje, które wypadają poza nowy okres, **wracają do stanu nieumieszczonych**: lekcja i wszystkie jej szczegóły zostają, tracona jest tylko jej pozycja. #### Reorganizacja szkoły w Omniscol Przy reorganizacji strukturalnej (przejście z klas tradycyjnych na pracę w grupach, połączenie poziomów, otwarcie nowej lokalizacji) proszę pracować na osobnej **wersji roboczej planu lekcji**: 1. Proszę zduplikować opublikowany plan lekcji jako `Scenariusz reorganizacji 2027-2028`. 2. Proszę zmienić strukturę (klasy, grupy, lokalizacje) w wersji roboczej. 3. Proszę uruchomić diagnostykę i generowanie, aby ocenić wykonalność. 4. Proszę powtarzać próby bez dotykania konta produkcyjnego. 5. Gdy scenariusz zostanie zatwierdzony, można przejść do publikacji. Zaleta: dopóki scenariusz pozostaje wersją roboczą, użytkownicy końcowi (uczeń, nauczyciel) niczego nie widzą. Dostęp do wersji roboczej mają tylko administratorzy. #### Usuwanie niepotrzebnej wersji roboczej Nieopublikowany plan lekcji można usunąć z listy. Aby zachować ślad przed usunięciem, proszę najpierw otworzyć plan lekcji, a następnie wyeksportować go do JSON przez [download]. Szczegóły w [Automatyczne generowanie](#page-timetables.generation). Opublikowanego planu lekcji nie należy usuwać bezpośrednio: jeśli naprawdę trzeba go wycofać z użycia, proszę najpierw cofnąć jego publikację w siatce publikacji. #### Instrukcja — Utworzenie scenariusza testowego z opublikowanego planu lekcji 1. **Aby sprawdzić reorganizację** (połączenie klas, nowa lokalizacja, przejście na grupy) bez dotykania konta produkcyjnego: proszę pracować na **wersji roboczej scenariusza** zduplikowanej z opublikowanego planu lekcji. Użytkownicy niczego nie widzą, dopóki pozostaje ona wersją roboczą. 2. **Proszę otworzyć moduł Zarządzanie planami lekcji**: lista pokazuje plany lekcji konta wraz ze statusem opublikowany/nieopublikowany, zakresami tygodni i szybkimi statystykami (klasy, kursy, nauczyciele). 3. **Proszę kliknąć [copy] Duplikuj** przy opublikowanym planie lekcji. W oknie dialogowym zaznaczają Państwo, co ma zostać przeniesione — **lokalizacje** (sale, zasoby), **nauczyciele**, **klasy** (grupy, dostępność), **kursy** i ich szczegóły. W scenariuszu zwykle warto zachować strukturę i kursy, odznaczając przydziały nauczycieli do ponownego zrobienia. 4. **Proszę nadać czytelną nazwę**: `Sem. 1 26-27`, `Trymestr 3 2027`, `Test nowej lokalizacji Warszawa`, `Reorganizacja grup fakultatywnych`. Im bardziej wyraźna nazwa, tym mniejsze ryzyko pomyłki za trzy miesiące. 5. **Proszę zmienić strukturę w wersji roboczej**: utworzyć lub połączyć klasy, dodać lokalizację, zreorganizować grupy. **Proszę uruchomić generowanie**, aby ocenić wykonalność. Można spokojnie powtarzać próby — bez wpływu na opublikowany plan lekcji. 6. **Jeśli scenariusz zostanie zatwierdzony**, proszę przejść do publikacji (zob. [Publikacja](#page-timetables.publication)). W przeciwnym razie można zachować go jako wersję roboczą albo wyeksportować do JSON przed usunięciem. #### Zobacz także - [Przegląd modułu Zarządzanie planami lekcji](#page-timetables.overview) - [Wyświetlanie planów lekcji](#page-schedules.schedule-display) - [Udostępnianie planu lekcji linkiem publicznym](#page-schedules.share-link) - [Przygotowanie następnego roku szkolnego](#page-timetables.next-school-year) - [Publikacja planu lekcji](#page-timetables.publication) ### 3.25 Przygotowanie następnego roku szkolnego *Source: `help/pl/timetables/next-school-year.md` · id: timetables.next-school-year · Audience: admin · Plan: standard · Updated: 2026-06-25* Budowę planu lekcji na następny rok szkolny można rozpocząć od sześciu do dziewięciu miesięcy wcześniej, równolegle z bieżącą pracą. Zasada jest prosta: proszę zduplikować opublikowany plan lekcji, aby utworzyć wersję roboczą, a następnie pracować na niej bez zmieniania planu opublikowanego. #### Trzy elementy do przeniesienia Z bieżącego roku do następnego przenosi się trzy grupy danych: 1. **Struktura** — lokalizacje i sale, klasy, grupy, partycje, wyrównania, grupy grup. Często można ją odtworzyć w 80-90 % z roku na rok, z drobnymi korektami na marginesie. 2. **Lekcje** — lista kursów do zaplanowania (przedmiot, klasa, nauczyciel, czas trwania, liczba lekcji w tygodniu). Można ją odtworzyć w 70-80 %, z uwzględnieniem zmian w programie nauczania. 3. **Przydziały nauczyciel-klasa-przedmiot** — kto czego uczy. To element najbardziej zmienny (odejścia, nowi nauczyciele, zmiany w przydziale godzin). #### Uruchomienie duplikowania W module Zarządzanie planami lekcji proszę użyć akcji Duplikuj na planie lekcji, który posłuży za podstawę. Okno dialogowe domyślnie zaznacza wszystko; proszę odznaczyć to, co wolą Państwo zbudować od nowa: - **Lokalizacje** — razem z salami i zasobami. - **Nauczyciele** — przypisanie nauczycieli do planu lekcji; ich dostępność zostaje przeniesiona. W zależności od przyjętych zasad, w cyklicznym planie lekcji można woleć ponownie poprosić nauczycieli o dostępność na nowy rok zamiast przejmować starą. - **Klasy** — razem z ich kursami, grupami, wyrównaniami, dostępnością i niekompatybilnościami. - **Lekcje** (podział godzin) — ze szczegółami do zachowania lub nie: przydziały nauczycieli do lekcji, grupy, sale, zasoby, pozycje. Warto je zwykle przejrzeć, ponieważ nauczyciele i uczniowie się zmienią. Utworzona wersja robocza nie jest opublikowana: nie wpływa na plan lekcji opublikowany w bieżącym roku. W przypadku tygodniowych lub cyklicznych planów lekcji publikację na tygodnie następnego roku wykonuje się potem w siatce publikacji. Podczas duplikowania można też **przesunąć daty** lekcji (w kalendarzowym planie lekcji) lub **zmienić typ planu lekcji**: obie opcje i ich skutki — zwłaszcza ponowne wyrównanie lekcji i grupowania — opisano w [Podgląd, duplikowanie, reorganizacja](#page-timetables.visualize-duplicate). #### Praca na wersji roboczej Przygotowany plan lekcji pojawia się na liście jako wersja robocza. Proszę nadać mu czytelną nazwę, na przykład `S1 27-28`. Można: - otworzyć go, aby zmienić klasy, dodać nowych nauczycieli i usunąć dotychczasowych, - poprosić nauczycieli, którzy zostają, o dostępność na nowy rok (wysyłka zbiorcza z modułu Administracja), - uruchomić automatyczne generowanie, aby sprawdzić wykonalność, - spokojnie iterować przez wiele miesięcy. #### Publikacja na początek roku szkolnego Gdy plan lekcji w wersji roboczej jest gotowy i zbliża się nowy rok szkolny, **publikują go Państwo** na wybrane tygodnie. Zob. [Publikacja](#page-timetables.publication). Wersja robocza staje się opublikowanym planem lekcji, a poprzedni plan lekcji pozostaje dostępny jako historia. #### Instrukcja — Przygotowanie początku roku szkolnego N+1 1. **Proszę rozpocząć N+1 równolegle z bieżącą pracą**: Omniscol oddziela wersję roboczą od bieżącego planu lekcji. Można spokojnie iterować przez wiele miesięcy, niczego nie psując. 2. **Warunek wstępny**: proszę utworzyć rok szkolny N+1 w [Administracja → Rok szkolny](#page-admin.school-year) wraz z jego datami i dniami wolnymi. Będzie potrzebny w chwili publikacji na tygodnie tego roku. 3. **W module Zarządzanie planami lekcji** proszę użyć akcji Duplikuj na planie lekcji, który służy za wzór. Wszystko jest domyślnie zaznaczone; proszę odznaczyć to, co zostanie zbudowane od nowa: - **Lokalizacje**, sale i zasoby. - **Nauczyciele** przypisani do planu lekcji (ich dostępność zostaje przeniesiona) — często do przeglądu, a nawet do ponownego zebrania na nowy rok. - **Klasy**, grupy i wyrównania — do odtworzenia w 80-90 %. - **Lekcje** i ich szczegóły (przydziały, sale, pozycje…) — do przeglądu, ponieważ nauczyciele i uczniowie się zmienią. 4. **Wersja robocza zostaje utworzona**. Proszę nadać jej wyraźną nazwę, otworzyć ją, a następnie dostosować klasy (nowi uczniowie, odejścia, połączenia), dodać nowych nauczycieli i usunąć dotychczasowych. 5. **Proszę zapytać nauczycieli, którzy zostają, o dostępność** za pomocą wysyłki zbiorczej z modułu Administracja. **Proszę uruchomić automatyczne generowanie**, aby jak najwcześniej sprawdzić wykonalność — i iterować po ograniczeniach, wymiarach godzin i nauczycielach. 6. **Gdy będą Państwo gotowi na początek roku szkolnego**, proszę **opublikować** wersję roboczą na wybrane tygodnie (zob. [Publikacja](#page-timetables.publication)). Wersja robocza staje się opublikowanym planem lekcji na N+1, a poprzedni plan lekcji N pozostaje dostępny jako historia. ⚠ Proszę nie zapomnieć o **strzałce w prawo** na osi czasu lub o zmianie roku za pomocą selektora, w przeciwnym razie pozostają Państwo w roku N (por. [Oś czasu i nawigacja w czasie](#page-core-concepts.timeline-navigation)). #### Zobacz także - [Rok szkolny i dni wolne](#page-admin.school-year) - [Przegląd modułu Zarządzanie planami lekcji](#page-timetables.overview) - [Publikacja planu lekcji](#page-timetables.publication) - [Podgląd, duplikowanie, reorganizacja](#page-timetables.visualize-duplicate) --- ## 4. Panel zarządczy ### 4.1 Przegląd modułu Panel zarządczy *Source: `help/pl/dashboard/overview.md` · id: dashboard.overview · Audience: admin/teacher/staff · Plan: standard · Updated: 2026-06-25* Moduł **Panel zarządczy** (ikona [gauge-high] w menu po lewej stronie) zbiera statystyki obliczone na operacyjnym planie lekcji (lekcje rzeczywiście umieszczone i opublikowane, z uwzględnieniem [nieobecności](#page-glossary.absence) i [zastępstw](#page-glossary.substitution)). To narzędzie **raportowe** i **zarządcze**: ile godzin przeprowadził każdy nauczyciel, jakie jest obłożenie sal, jaka liczba godzin przypada na przedmiot w danej klasie, ile dni obecności ma każdy uczeń. #### Dostępne wskaźniki Sześć osi analizy, dostępnych w zakładkach modułu: - Nauczyciele — nauczane przedmioty, liczba klas, czas rozliczeniowy, godziny nadliczbowe, lekcje odwołane. - Sale — zajęte godziny, dni otwarcia, godziny na dzień, liczba uczniów. - Zasoby — godziny wykorzystania, dni wykorzystania, ilość na dzień. - Przedmioty — godziny lekcyjne, dni, lekcje, szczegóły według klas. - Klasy — łączna liczba godzin (z udziałem poszczególnych grup), dni, szczegóły według przedmiotów i nauczycieli. - Uczniowie — lekcje, godziny, dni obecności, szczegóły według przedmiotów. #### Okres analizy Filtrowanie według **tygodnia**, **miesiąca**, **roku szkolnego** lub **własnego zakresu dat**. Oś czasu u góry służy do nawigacji w czasie. #### Eksport Przycisk Drukuj otwiera tabelę, którą można skopiować, wydrukować lub wyeksportować do CSV. Aby przekazać te liczby dalej, zob. [Link udostępniania](#page-glossary.share-link). Link iCal nie ma tu sensu: moduł Panel zarządczy zawiera wyłącznie statystyki, a nie lekcje z datami. #### Udostępnianie Przycisk Udostępnianie generuje publiczny link tylko do odczytu do statystyk z danego okresu. Przydatne dla audytorów zewnętrznych, koordynatorów dydaktycznych bez konta Omniscol itd. #### Zobacz także - [Panel zarządczy](#page-glossary.dashboard) - [Status](#page-glossary.lesson-status) - [Przeglądanie i filtrowanie](#page-schedules.consult-and-filter) - [Zarządzanie planami lekcji](#page-timetables.overview) ### 4.2 Korzystanie z tabel i wykresów *Source: `help/pl/dashboard/tools-and-filters.md` · id: dashboard.tools-and-filters · Audience: admin/teacher/staff · Plan: standard · Updated: 2026-05-18* Zakładki modułu **Panel zarządczy** łączą tabelę z wykresami. Tabela służy do sprawdzania szczegółów, wykresy — do szybkiego podglądu rozkładu danych lub wartości skrajnych. #### Wyszukiwanie i wykresy Wyszukiwanie filtruje wiersze tabeli. Wykresy są przeliczane na podstawie widocznych wierszy: po wyszukaniu przedmiotu, lokalizacji lub nauczyciela wykresy odzwierciedlają wyłącznie ten zakres. Wyszukiwanie nie uwzględnia wielkości liter, znaków diakrytycznych ani zbędnych odstępów. Kilka słów w jednym zapytaniu jest traktowane jako kryteria, które muszą być spełnione jednocześnie. Przecinek pozwala szukać kilku możliwości. Przykłady: - `matematyka kowalski` wyświetla wiersze zawierające jednocześnie `matematyka` i `kowalski`. - `aula, laboratorium` wyświetla wiersze odpowiadające jednemu albo drugiemu wyrażeniu. - `lokalizacja północ >50` na liście sal pozwala wyodrębnić sale w lokalizacji północ, których pojemność przekracza 50 miejsc. #### Sortowanie kolumn Nagłówki kolumn, które można sortować, pozwalają zmienić kolejność wierszy tabeli: alfabetycznie dla nazw, liczbowo dla liczników, według długości dla czasów trwania. Proszę kliknąć ten sam nagłówek ponownie, aby odwrócić kierunek sortowania. Sortowanie przydaje się przed eksportem: pozwala na przykład wysunąć na początek nauczycieli z największą liczbą godzin nadliczbowych, najbardziej obłożone sale albo klasy o największej liczbie godzin. #### Kopiowanie wykresu Aby wykorzystać wykres w dokumencie, wiadomości e-mail lub prezentacji: 1. W razie potrzeby proszę przefiltrować tabelę. 2. Proszę sprawdzić, czy wykres pokazuje właściwy zakres. 3. Proszę kliknąć wykres prawym przyciskiem myszy. 4. Proszę wybrać w przeglądarce polecenie **Kopiuj obraz**. Skopiowany wykres odpowiada stanowi widocznemu na ekranie. #### Eksportowanie lub udostępnianie Przycisk Drukuj otwiera opcje kopiowania, drukowania lub eksportu dostępne dla wyświetlonej tabeli. W zależności od zakładki eksport może posłużyć do przygotowania pliku Excel dla księgowości, przekazania wykazu koordynatorowi dydaktycznemu albo zachowania dokumentacji na potrzeby audytu. Przycisk Udostępnianie tworzy link do udostępniania tylko do odczytu. Odbiorca przegląda statystyki z danego okresu bez możliwości modyfikowania planu lekcji. #### Zobacz także - [Wyszukiwanie i filtry](#page-core-concepts.search-and-filter) - [Statystyki nauczycieli](#page-dashboard.teachers) - [Statystyki sal](#page-dashboard.classrooms) ### 4.3 Statystyki nauczycieli *Source: `help/pl/dashboard/teachers.md` · id: dashboard.teachers · Audience: admin/teacher/staff · Plan: standard · Updated: 2026-06-13* Zakładka Nauczyciele konsoliduje godziny rzeczywiście rozliczone w wyświetlanym okresie. Służy do śledzenia godzin pracy, przygotowania listy płac, eksportów księgowych i kontroli zastępstw. #### Główne wskaźniki - **Godziny rozliczeniowe**: liczba godzin przyjęta do ewidencji administracyjnej oraz, w zależności od organizacji placówki, do listy płac. - **Godziny nadliczbowe** (Godziny nadliczbowe): godziny wynikające z zastępstwa w module Zarządzanie nieobecnościami albo z ręcznego dodania lekcji z datą w powtarzalnym planie lekcji. - **Lekcje odwołane** (Lekcje odwołane): godziny usunięte przez nieobecność albo przez ręczne usunięcie lekcji z datą z powtarzalnego planu lekcji. - **Klasy i przedmioty**: zakres nauczania nauczyciela w danym okresie. - **Typy lekcji**: rozbicie liczby godzin według typu lekcji, gdy lekcje mają przypisany typ. Godziny nadliczbowe i odwołane pozwalają odróżnić zaplanowane godziny pracy od tych rzeczywiście zrealizowanych w danym okresie. #### Szczegóły według typu lekcji Szczegóły według typu lekcji są przydatne, gdy sposób rozliczania godzin zależy od formy dydaktycznej: wykład, ćwiczenia, laboratorium, konsultacje, warsztaty lub dowolna inna klasyfikacja skonfigurowana przez placówkę. Takie rozbicie pomaga sprawdzić liczbę godzin podlegających wypłacie, wewnętrzne zasady ich wyceny oraz dokumentację wymaganą przez księgowość lub jednostkę audytującą. #### Eksport, udostępnianie i księgowość Tabelę można skopiować, wydrukować lub wyeksportować do dalszego przetwarzania w programie Excel albo w narzędziu księgowym. Link do udostępniania tylko do odczytu pozwala przekazać zestawienie bez dawania dostępu do edycji planu lekcji. W przypadku stałego połączenia z oprogramowaniem księgowym te statystyki może pobierać proces ETL albo dedykowana integracja, w formacie oczekiwanym przez placówkę. > _Premium_ Na koncie **Premium** eksport tej tabeli dodaje dwie kolumny pochodzące ze szczegółowego śledzenia lekcji: **Rzeczywisty czas trwania** (czas rzeczywiście przeprowadzonej lekcji, inny niż czas rozliczeniowy) oraz **Zrealizowany** (liczba godzin z lekcji oznaczonych jako zrealizowane). Przydatne do zestawienia godzin zaplanowanych, rozliczonych i rzeczywiście przeprowadzonych. Natomiast lekcje o statusie **Wersja robocza** lub **Anulowany** są wyłączone z tych liczb. Zob. [Status](#page-glossary.lesson-status). #### Punkty kontrolne Przed wykorzystaniem tych liczb do listy płac proszę sprawdzić, czy okres jest prawidłowy, czy nieobecności zostały zatwierdzone, czy zastępstwa są poprawnie zarejestrowane oraz czy dodane lub usunięte lekcje z datą odpowiadają rzeczywistości operacyjnej. #### Zobacz także - [Monitorowanie i eksport nieobecności](#page-absences.statistics) - [Status](#page-glossary.lesson-status) - [Korzystanie z tabel i wykresów](#page-dashboard.tools-and-filters) - [Przegląd modułu Panel zarządczy](#page-dashboard.overview) ### 4.4 Statystyki sal *Source: `help/pl/dashboard/classrooms.md` · id: dashboard.classrooms · Audience: admin/teacher/staff · Plan: standard · Updated: 2026-06-13* Zakładka Sale analizuje rzeczywiste wykorzystanie sal w wyświetlanym okresie. Służy do wykrywania sal niedostatecznie wykorzystanych, sal nadmiernie obciążonych oraz nierównowagi w podziale na lokalizacje lub budynki. #### Śledzone wskaźniki Tabela pokazuje między innymi liczbę lekcji, zajęte godziny, dni wykorzystania, liczbę godzin na dzień oraz liczbę przyjmowanych uczniów. Gdy dane są uzupełnione, kolumny lokalizacji, budynku, specjalizacji i tagów ułatwiają analizy według strefy lub typu sali. Wykresy pomagają zobrazować rozkład obłożenia, wolumeny godzin i różnice w stopniu wykorzystania. #### Niedostateczne i nadmierne wykorzystanie Sala bardzo słabo zapełniona w stosunku do swojej pojemności może wskazywać na błędne przypisanie, źle wykorzystaną salę ze specjalizacją lub możliwość ponownego zrównoważenia. Sale wykorzystywane poniżej 25% swojej pojemności zasługują zazwyczaj na sprawdzenie. Odwrotnie, sala wykorzystywana powyżej swojej pojemności sygnalizuje ryzyko operacyjne: zbyt duża liczba uczniów, błędnie przypisana sala albo dane o pojemności wymagające korekty. #### Analiza budynków Zakładka pozwala odpowiedzieć na pytania takie jak: - w których budynkach koncentruje się obłożenie; - które sale pozostają słabo wykorzystane; - których specjalizacji sal brakuje, a które są przewymiarowane; - które lokalizacje można by zreorganizować. Do bardziej szczegółowych analiz, na przykład porównania zajętych godzin z godzinami otwarcia budynku lub z możliwymi przedziałami czasowymi na lekcje, placówka może wyeksportować tabelę i opracować ją w narzędziu zewnętrznym albo odpytać konto z poziomu zewnętrznego agenta AI podłączonego przez [MCP](#page-integrations.mcp), zależnie od profilu, uprawnień i udostępnionych narzędzi. #### Filtrowanie sal Wyszukiwanie przyjmuje operatory porównania pojemności (`>50`, `<=100` itd.) oraz terminy dotyczące lokalizacji, budynku, specjalizacji lub tagów. Wykresy są przeliczane na podstawie przefiltrowanych sal. #### Zobacz także - [Wyszukiwanie i filtry](#page-core-concepts.search-and-filter) - [Korzystanie z tabel i wykresów](#page-dashboard.tools-and-filters) - [Lokalizacje, sale i zasoby](#page-timetables.sites-rooms) ### 4.5 Statystyki przedmiotów *Source: `help/pl/dashboard/subjects.md` · id: dashboard.subjects · Audience: admin/teacher/staff · Plan: standard · Updated: 2026-05-18* Zakładka Przedmioty pokazuje, jak liczba godzin nauczania rozkłada się w wyświetlanym okresie: ogółem, według klas, według nauczycieli oraz według typów lekcji, gdy ta informacja jest uzupełniona. #### Co można sprawdzić na tej stronie - łączną liczbę godzin przeznaczonych na każdy przedmiot; - rozkład według klas; - rozkład według nauczycieli; - udział każdego typu lekcji, na przykład laboratorium, ćwiczenia, wykład czy warsztaty; - ewentualne formy nauczania stosowane przez placówkę. #### Analiza dydaktyczna Ten widok pomaga kontrolować, czy rzeczywiście zaplanowana liczba godzin pozostaje spójna z programami kształcenia, zobowiązaniami dydaktycznymi oraz oczekiwanym rozkładem między typami lekcji. Jest szczególnie przydatny przy odpowiadaniu na pytania takie jak: ile godzin laboratoriów zaplanowano, która klasa otrzymuje najwięcej godzin danego przedmiotu albo którzy nauczyciele prowadzą dany przedmiot w tym okresie. #### Wykresy i filtry Wyszukiwanie pozwala wyodrębnić przedmiot, klasę, nauczyciela lub typ lekcji. Wykresy są przeliczane na podstawie widocznych wierszy, co pozwala szybko uzyskać ukierunkowany widok przed skopiowaniem lub eksportem. #### Zobacz także - [Statystyki klas](#page-dashboard.classes) - [Statystyki nauczycieli](#page-dashboard.teachers) - [Korzystanie z tabel i wykresów](#page-dashboard.tools-and-filters) ### 4.6 Statystyki klas *Source: `help/pl/dashboard/classes.md` · id: dashboard.classes · Audience: admin/teacher/staff · Plan: standard · Updated: 2026-05-18* Zakładka Klasy zbiera liczbę godzin realizowanych przez każdą klasę w wyświetlanym okresie. Służy do kontrolowania rzeczywistego obciążenia dydaktycznego, rozkładu według przedmiotów oraz dokumentacji wymaganej przy akredytacjach lub certyfikacjach. #### Śledzone wskaźniki Strona pozwala w szczególności śledzić: - łączną liczbę godzin klasy; - teoretyczną i rzeczywistą liczbę uczniów, gdy grupy są uzupełnione; - dni lekcyjne; - rozkład według przedmiotów; - rozkład według nauczycieli; - szczegóły według typów lekcji; - grupy i podgrupy, których to dotyczy. #### Akredytacje i certyfikacje Statystyki klas pomagają udokumentować liczbę godzin zrealizowanych w ramach programu kształcenia. Mogą być przydatne w postępowaniach takich jak Qualiopi czy CTI we Francji albo AMBA, EQUIS i AACSB na poziomie międzynarodowym, gdy placówka musi wykazać liczbę godzin, formy i rozkład nauczania. #### Jakość danych Dokładność zależy od jakości klas, grup, przedmiotów, typów lekcji i przydziałów nauczycieli w planie lekcji. Dobrze uzupełnione grupy pozwalają uzyskać bardziej wiarygodne dane o liczbie godzin rzeczywiście realizowanych przez danych uczniów. #### Zobacz także - [Statystyki przedmiotów](#page-dashboard.subjects) - [Statystyki nauczycieli](#page-dashboard.teachers) - [Korzystanie z tabel i wykresów](#page-dashboard.tools-and-filters) ### 4.7 Statystyki uczniów i zasobów *Source: `help/pl/dashboard/students-resources.md` · id: dashboard.students-resources · Audience: admin/teacher/staff · Plan: standard · Updated: 2026-05-18* Zakładki Uczniowie i Zasoby uzupełniają analizę w module Panel zarządczy. Są bardziej ukierunkowane niż widoki nauczycieli, sal, przedmiotów czy klas, ale pozostają przydatne do kontrolowania danych operacyjnych. #### Uczniowie Zakładka Uczniowie przedstawia lekcje, godziny i dni lekcyjne realizowane przez danego ucznia w wyświetlanym okresie. Gdy klasy, grupy i podgrupy są prawidłowo uzupełnione, statystyki dokładniej odzwierciedlają wolumeny, które rzeczywiście dotyczą danego ucznia. Nieobecności są uwzględniane w osobnych kolumnach, w szczególności liczba godzin, lekcji i dni nieobecności. Widok ten pomaga wykryć indywidualne sytuacje, które wymagają sprawdzenia lub dalszych działań administracyjnych. #### Zasoby Zakładka Zasoby śledzi wykorzystanie zasobów materialnych: godziny wykorzystania, dni wykorzystania oraz ilość wykorzystaną dziennie. Służy przede wszystkim do sprawdzenia, czy współdzielony zasób jest rzeczywiście wykorzystywany, oraz do wykrywania okresów lub zasobów o niskim zapotrzebowaniu. #### Praca z danymi Podobnie jak w pozostałych zakładkach, wyszukiwanie filtruje widoczne wiersze, wykresy dostosowują się do wyświetlanego zakresu, a dane można skopiować, wydrukować, wyeksportować lub udostępnić w trybie tylko do odczytu. #### Zobacz także - [Statystyki klas](#page-dashboard.classes) - [Nieobecności klas i uczniów](#page-absences.class-and-student-absences) - [Korzystanie z tabel i wykresów](#page-dashboard.tools-and-filters) --- ## 5. Codzienne użytkowanie (moduł Plany lekcji) ### 5.1 Przeglądanie i filtrowanie planów lekcji *Source: `help/pl/schedules/consult-and-filter.md` · id: schedules.consult-and-filter · Audience: admin/teacher/student/staff · Plan: standard · Updated: 2026-09-23* Moduł **Plany lekcji** (ikona [calendar-days] w menu po lewej stronie) to ekran codziennego przeglądania. Wyświetla opublikowane plany lekcji w wybranym okresie, wraz ze wszystkimi przydatnymi filtrami i widokami. #### Dostępne filtry - **Klasa**, **nauczyciel**, **grupa** (z całą klasą lub bez niej), - **Sala**, **zasób**, - **Nauczyciele wg przedmiotu**, **zespół pedagogiczny** (wszyscy nauczyciele danej klasy), **przedmiot**, - **Typ lekcji** (ćwiczenia, laboratorium, egzamin, wykład…), jeśli został skonfigurowany, - **Uczeń** (jeśli uczniowie są wprowadzeni i przypisani do klas). Gdy w ciągu roku opublikowanych jest kilka planów lekcji, klasa występująca w kilku z nich tworzy jedną pozycję filtra: jej plan lekcji zbiera lekcje z każdego z nich. Omniscol [rozpoznaje tę samą klasę w kolejnych planach lekcji](#page-timetables.multiple-active-timetables--same-entity) po jej identyfikatorze zewnętrznym, a w jego braku — po nazwie. Można **zestawić kilka planów lekcji jeden pod drugim**: wygodnie jest mieć przed oczami klasę i konkretnego nauczyciela albo kilka klas równolegle. #### Widoki Komponent wyświetlania łączy dwa poziomy: - **tryb prezentacji**: **siatka**, **lista** albo **tabela** w stylu arkusza kalkulacyjnego; - **organizację czasową**: **tydzień**, **dzień**, **miesiąc**, **harmonogram** (oraz **harmonogram godzinowy**) albo **widok obok siebie**. Siatka to standardowy widok kalendarza. Tabela z kolei służy do pokazania bieżącego widoku w układzie tabelarycznym, bliższym arkuszowi kalkulacyjnemu; nie jest widokiem podstawowym. Zob. [Wyświetlanie planów lekcji](#page-schedules.schedule-display). #### Oś czasu i nawigacja **Oś czasu** u góry pokazuje: - **dni wolne** w postaci szarych poziomych pasków, - **wybrany okres** (tydzień, miesiąc, czasem rok szkolny) jako zielony obszar z nałożonymi datami, - **nawigację**: klawisze strzałek w lewo i w prawo, przesunięcie palcem na telefonie albo przyciski `◀ ▶︎`. Przyciski `◀` i `▶︎` na **końcach** osi czasu pozwalają **zmienić rok szkolny**. #### Pamięć podręczna i wydajność Omniscol intensywnie korzysta z pamięci podręcznej przeglądarki. Aplikacja przeładowuje plany lekcji tylko przy zmianie tygodnia — ponowne kliknięcie aktywnego tygodnia **wymusza odświeżenie**. Dzięki temu Omniscol działa nawet na połączeniu 2G (Edge) i nie przestaje działać podczas krótkich przerw w dostępie do internetu (żądania zostaną odtworzone po jego powrocie). #### Tryb edycji Przycisk Reorganizacja przełącza w tryb edycji: zob. [Doraźne modyfikacje](#page-schedules.ad-hoc-changes). #### Eksport / udostępnianie - Drukuj — wydrukowanie bieżącego zaznaczenia (albo zapisanie go w formacie PDF przez przeglądarkę). - Udostępnianie — otwarcie okna udostępniania: [publiczny link internetowy](#page-glossary.share-link), subskrypcja [iCal](#page-glossary.ical) albo reprezentacja JSON (API), zależnie od posiadanych uprawnień. #### Zobacz także - [Doraźne modyfikacje](#page-schedules.ad-hoc-changes) - [Konflikty i diagnostyka](#page-timetables.conflicts) - [Wyświetlanie planów lekcji](#page-schedules.schedule-display) - [Status](#page-glossary.lesson-status) - [Drukowanie i udostępnianie](#page-schedules.print-and-export) ### 5.2 Wyświetlanie planów lekcji: siatka, lista, tabela, harmonogram, miesiąc, widok obok siebie *Source: `help/pl/schedules/schedule-display.md` · id: schedules.schedule-display · Audience: admin/teacher/student/staff · Plan: standard · Updated: 2026-06-26* Ta strona opisuje **wspólne wyświetlanie planów lekcji** w Omniscol. Występuje ono w module **Plany lekcji**, na ekranie **Podział godzin** po przełączeniu na widok **planów lekcji**, na ekranach **Wizualizuj** i **Reorganizuj** w module **Zarządzanie planami lekcji**, a szerzej — na pozostałych ekranach, które otwierają kalendarz planu lekcji z tym samym silnikiem wyświetlania. Te same lekcje można czytać w kilku prezentacjach bez zmiany wyświetlanych danych: zmienia się wyświetlanie, a nie plan lekcji. #### Zmiana wyświetlania Ikony przekształcania są przypisane do **każdego wyświetlonego planu lekcji**. Aby je pokazać, **proszę najechać kursorem na tytuł planu lekcji**: pasek tytułu odsłania wtedy ikony przekształcania widoku. Proszę kliknąć wybraną ikonę: - [calendar] przełącza na **siatkę**, [table-list] na **listę**, [table] na **tabelę** (zastrzeżoną dla administratorów, na komputerze); - w **harmonogramie godzinowym** [up-down] **odwraca dni i kolumny**. Na pasku tytułu znajduje się też udostępnianie i zamknięcie kalendarza. Ponieważ każdy plan lekcji zachowuje własne wyświetlanie, przy kilku kalendarzach ułożonych jeden pod drugim można czytać jeden z nich jako listę, a inny jako siatkę. #### Trzy tryby prezentacji tego samego planu lekcji Pierwszy poziom przełączania dotyczy **prezentacji** tych samych lekcji. ##### Siatka **Siatka** (Widok siatki) to standardowy widok kalendarza: dni w kolumnach, przedziały czasowe lub godziny w wierszach, lekcje umieszczone w swoich komórkach. To widok odniesienia do czytania planu lekcji tydzień po tygodniu. Jest szczególnie przydatna do: - natychmiastowego wychwycenia luk, nakładających się lekcji i rozpiętości dnia, - wzrokowego porównania klasy, nauczyciela lub sali, - modyfikowania lub ponownego czytania planu lekcji w znajomym układzie czasowym. ##### Lista **Lista** (Widok listy) wyświetla lekcje jedna pod drugą, w porządku chronologicznym. Jest szczególnie przydatna do: - szybkiego przejrzenia długiego okresu na małym ekranie, - znalezienia konkretnej lekcji za pomocą filtrów, - przejrzenia po kolei godzin, sal i przydziałów. ##### Tabela **Tabela** to **odwzorowanie bieżącego widoku w stylu arkusza kalkulacyjnego**. Służy do audytu, wydruku, skopiowania danych do arkusza kalkulacyjnego lub — zależnie od ekranu — do bezpośredniego uruchomienia eksportu do pliku. To **nie** jest standardowy widok kalendarza. W zależności od kontekstu może odwzorowywać: - siatkę dni × przedziały czasowe w bardziej tabelarycznej formie, - albo jedną lekcję w wierszu, gdy wyświetlanie źródłowe jest już listą. Jest szczególnie przydatna do: - kontroli administracyjnej, - kopiowania i wklejania do arkusza kalkulacyjnego, - bezpośredniego eksportu do **PDF**, **CSV** lub **Excel / XLSX**, gdy ekran to oferuje, - sprawdzania wiersz po wierszu. #### Zakres czasowy: tydzień, dzień, miesiąc Drugi poziom przełączania dotyczy **wyświetlanego okresu**. - **Tydzień** — widok domyślny w większości przypadków. - **Dzień** — ta sama logika co standardowa siatka, ale zawężona do jednego dnia, aby dokładniej czytać gęsto zapełniony plan lekcji. - **Miesiąc** — spojrzenie długiego zasięgu. W trybie kalendarza wyświetlanie przybiera formę miesięcznej siatki macierzowej; w trybie tabeli pozostaje tabelaryczne odwzorowanie tej samej treści. Selektor Wybór dni do wyświetlenia pozwala dodatkowo ukryć lub pokazać wybrane dni w odpowiednich widokach. #### Harmonogram **Harmonogram** tworzy się z poziomu menu filtrów: zestawia kilka jednostek lub kilka dni w jednym widoku, aby rozpatrywać całe zbiory. Dwa warianty, zależnie od osi, którą chce się czytać: - **Dodaj harmonogram ogólny** (ikona [table-cells]) umieszcza **jedną jednostkę w wierszu** (klasa, nauczyciel, sala, przedmiot), a godziny każdego dnia w kolumnach — do porównania kilku jednostek w tym samym dniu. - **Dodaj harmonogram godzinowy** (ikona [table-columns]) umieszcza **godziny na osi pionowej** (w skali czasu) i **jedną kolumnę na jednostkę i dzień** — do czytania obłożenia i następstw na prawdziwej skali godzinowej. Przycisk [up-down] odwraca w razie potrzeby dni i kolumny. Harmonogram służy w szczególności do: - wyświetlenia **kilku jednostek obok siebie dla tego samego dnia**, - wyświetlenia **kilku dni dla jednej lub kilku jednostek**, - czytania obłożenia w skali miesiąca, - kontroli następstw, przejść lub dostępności. Uzupełnia siatkę kalendarza i odpowiada na inne pytania: proszę go wybrać, gdy chodzi o rozpatrywanie całych zbiorów jednostek lub dni. #### Widok obok siebie Funkcja Podziel ekran otwiera **widok obok siebie**: od dwóch do czterech planów lekcji wyświetlonych jeden przy drugim, każdy z własnymi filtrami i własnym trybem wyświetlania. Jest przydatny do: - porównania dwóch klas lub dwóch nauczycieli, - dopasowania wspólnej lekcji lub wspólnego dyżuru, - sprawdzenia, czy wolny przedział czasowy istnieje jednocześnie po obu stronach. #### Co pozostaje bez zmian przy zmianie wyświetlania Przełączenie między trybami nie zmienia lekcji. Podstawa danych pozostaje ta sama, a wraz z nią, zależnie od przypadku: - te same filtry jednostek, - ten sam wybrany okres, - te same widoczne konflikty i nieobecności, - te same akcje wydruku, eksportu i udostępniania, zgodnie z uprawnieniami użytkownika. #### Instrukcja — Wybór właściwego wyświetlania do zadania 1. **Aby szybko przeczytać plan lekcji** — proszę zacząć od **siatki**. To standardowy widok kalendarza, najczytelniejszy dla tygodnia lekcji. 2. **Aby przejrzeć lekcje jedna po drugiej** — proszę przełączyć na **listę**. Przydatna na małym ekranie lub do odnalezienia konkretnej lekcji. 3. **Aby kopiować, drukować, eksportować lub audytować w trybie arkusza kalkulacyjnego** — proszę użyć **tabeli**. To tabelaryczne odwzorowanie bieżącego widoku, a nie podstawowy widok planu lekcji. 4. **Aby przyjrzeć się z bliska jednemu dniowi** — proszę wybrać zakres **dzień**. 5. **Aby spojrzeć z dystansu na kilka tygodni lub kilka dat** — proszę przełączyć na **miesiąc** albo otworzyć **harmonogram**, zależnie od pytania. 6. **Aby zestawić kilka jednostek lub kilka dni w jednym widoku** — proszę dodać **harmonogram** (albo **harmonogram godzinowy** dla skali godzinowej). 7. **Aby porównać dwa osobne plany lekcji** — proszę użyć **widoku obok siebie**. #### Zobacz także - [Przeglądanie i filtrowanie](#page-schedules.consult-and-filter) - [Podgląd, duplikowanie, reorganizacja](#page-timetables.visualize-duplicate) - [Tryb wyświetlania planu lekcji](#page-glossary.schedule-view-mode) ### 5.3 Doraźne modyfikacje opublikowanego planu lekcji *Source: `help/pl/schedules/ad-hoc-changes.md` · id: schedules.ad-hoc-changes · Audience: admin · Plan: standard · Updated: 2026-06-26* Omniscol nie służy wyłącznie do generowania planów lekcji przed rozpoczęciem roku szkolnego — jest też narzędziem operacyjnym do obsługi codziennych modyfikacji w trakcie roku. #### Włączanie trybu edycji Proszę kliknąć Reorganizacja. Wszystkie otwarte kalendarze przechodzą w tryb reorganizacji. Nowo otwierane kalendarze również są od razu edytowalne. Proszę ustawić się na tygodniu do zmiany (oś czasu u góry). #### Modyfikowanie lekcji Po kliknięciu lekcji pojawia się panel (można go przesunąć lub uczynić półprzezroczystym) ze wszystkimi atrybutami podlegającymi zmianie: - nauczyciel lub nauczyciele, - ewentualna grupa, - zasoby, - sala lub sale (zob. [Wiele sal](#page-glossary.multi-room)), - komentarze. #### Modyfikowanie kilku lekcji jednocześnie W trybie reorganizacji **Shift+kliknięcie** kilku lekcji zaznacza je razem (od dwóch wzwyż są wyróżnione podświetleniem). Panel staje się wtedy **wspólnym formularzem**: sala, nauczyciel lub nauczyciele, zasoby, komentarz albo czas trwania ustawione w nim obejmą przy zapisie **wszystkie zaznaczone lekcje** — wygodnie, gdy całemu blokowi lekcji trzeba za jednym razem zmienić salę. Zob. [Edycja lekcji](#page-timetables.lesson-edit). Zamiast klikać każdą lekcję osobno, menu Zaznaczenie formularza **rozszerza zaznaczenie** jednym kliknięciem: - według **okna czasowego** — cały **dzień**, cały **tydzień** albo cały **miesiąc** (zależnie od typu planu lekcji); - według **podobieństwa** — **kolejne podobne lekcje** (ta sama klasa, przedmiot, grupa i przedział czasowy: powtarzalność kursu); - według **podziału klasy** — lekcje tej samej grupy w podziale klasy. Każda pozycja podaje liczbę lekcji, które dodaje, a przełącznik ogranicza zakres do bieżącego kalendarza albo rozszerza go na **wszystkie** otwarte kalendarze. Sąsiednie menu **kopiowania** ([copy]) zwielokrotnia zaznaczoną lekcję lub lekcje — w kilku egzemplarzach albo aż do wskazanej daty w kalendarzowym planie lekcji. Szczegóły jego działania opisuje [Podział godzin i tworzenie lekcji](#page-timetables.hour-distribution). #### Odpinanie lub usuwanie lekcji Aby **odpiąć** lekcję od siatki godzin, proszę kliknąć ikonę [scissors] w panelu albo dwukrotnie kliknąć samą lekcję. Lekcja trafia do strefy lekcji nieumieszczonych po prawej stronie, gdzie również można ją modyfikować. Aby ją **usunąć**, proszę otworzyć jej panel i kliknąć Usuń: odpięcie zachowuje lekcję w strefie do ponownego umieszczenia, natomiast usunięcie zdejmuje ją z planu lekcji. Jak każda zmiana, pojawia się ona na liście zmian, gdzie można ją cofnąć (zob. niżej). #### Przenoszenie lekcji Proszę otworzyć lekcję i kliknąć jej przycisk umieszczania (Umieść w planie lekcji, pinezka): możliwe przedziały czasowe wyświetlają się jako kolorowe kropki (zielony → czerwony, zależnie od konfliktów). Proszę kliknąć nowy przedział czasowy. Przy przenoszeniu między tygodniami są dwie możliwości: - **widok miesiąca** — pokazuje kilka tygodni jednocześnie, po czym można przestawić lekcję na wybrany przedział czasowy; - **odpięcie / zmiana tygodnia / ponowne umieszczenie** — wyjąć lekcję, zmienić aktywny tydzień, umieścić ją ponownie. #### Różnica w stosunku do kalendarzowych planów lekcji W planie lekcji [kalendarzowym](#page-glossary.calendar-mode) modyfikacja **dotyczy bezpośrednio datowanej lekcji** (i tak już jedynej dla tej daty). W planie lekcji [tygodniowym](#page-glossary.weekly-timetable) albo [cyklicznym](#page-glossary.cyclic-timetable) doraźna modyfikacja **nie** narusza tygodnia wzorcowego — zapisuje się jako wyjątek na danej dacie. Pozostałe tygodnie nadal podążają za tygodniem wzorcowym. #### Przeglądanie i cofanie modyfikacji Przycisk Zobacz listę wprowadzonych zmian pokazuje listę zmian wprowadzonych w danym okresie. Można cofać je pojedynczo. W planie lekcji **tygodniowym lub cyklicznym** doraźna modyfikacja zapisuje się jako wyjątek na swojej dacie: pozostaje do cofnięcia **w każdej chwili** z tej listy. ⚠ W planie lekcji **kalendarzowym** modyfikacje są natomiast **konsolidowane definitywnie przy zapisie**: proszę cofać je **przed zapisaniem**. Modyfikacje te dotyczą **konkretnej daty**, a nie struktury planu lekcji. Strukturę — klasy, grupy, **tydzień wzorcowy** — zmienia się przy **budowie planu lekcji**, a nie tutaj. Edycja **przeszłej** daty poprawia więc historię tej jednej daty: proszę robić to świadomie. #### Wykrywanie konfliktów Wykrywanie konfliktów działa w trybie edycji tak samo jak w module Zarządzanie planami lekcji: gdy tylko lekcja zostanie przeniesiona albo zmieniona, Omniscol sprawdza w czasie rzeczywistym podwójne rezerwacje, przekroczenia pojemności, ograniczenia czasowe i nieobecności. W kalendarzu lekcja w konflikcie ma **podwójne kolorowe obramowanie** — czerwone przy blokującym konflikcie, pomarańczowe albo żółte przy utrudnieniu do rozstrzygnięcia. Szczegóły (rodzaj konfliktu, lekcje, których dotyczy, czy na przykład brakująca sala) pokazuje **podpowiedź** po najechaniu kursorem na lekcję. Pełna lista rodzajów konfliktów, poziomy ważności oraz panel diagnostyki są opisane w [Konflikty i diagnostyka](#page-timetables.conflicts). #### Zobacz także - [Przeglądanie i filtrowanie planów lekcji](#page-schedules.consult-and-filter) - [Konflikty i diagnostyka](#page-timetables.conflicts) - [Wydarzenia jednorazowe](#page-schedules.events) ### 5.4 Wydarzenia jednorazowe (poza planem lekcji) *Source: `help/pl/schedules/events.md` · id: schedules.events · Plan: premium · Updated: 2026-08-07* > **Premium** > _Premium_ **Wydarzenie jednorazowe** to sesja, która nie należy do regularnej struktury planu lekcji: nadzwyczajne spotkanie, wycieczka szkolna, jednodniowy egzamin, dzień otwarty, zebranie klasyfikacyjne. Zamiast ingerować w regularną strukturę kursów, tworzy się datowane wydarzenie, które kładzie się **na** siatkę godzin, w dokładnie określonym przedziale. Tworzenie wydarzeń jednorazowych jest dostępne na kontach **Premium**. #### Kiedy tworzyć wydarzenie, a kiedy lekcję kursu - **Kurs regularny** — powtarza się co tydzień (albo co drugi tydzień) przez cały rok. Obsługiwany w module Zarządzanie planami lekcji, uwzględniany przez algorytm generowania. - **Wydarzenie jednorazowe** — odbywa się w datowanym przedziale, bez logiki regularnej powtarzalności. Obsługiwane bezpośrednio w module Plany lekcji. Praktyczna zasada: jeśli coś zapisałoby się raczej odręcznie w kalendarzu niż w tygodniowej siatce godzin, jest to wydarzenie. #### Tworzenie wydarzenia — kalendarz wydarzeń Wydarzenia nie wpisuje się w osobnym formularzu: rysuje się je **wprost na kalendarzu**, jak w terminarzu. Na siatce wydarzeń **kliknięciem i przeciągnięciem** rysuje się przedział w obrębie jednego dnia (w trakcie rysowania wyświetla się podgląd). Po zwolnieniu przycisku otwiera się karta zakotwiczona na zaznaczeniu, z **już wstępnie wypełnionymi** datami i godzinami; proszę uzupełnić: - **Tytuł** — `Zebranie klasyfikacyjne 7B`, `Wycieczka do Muzeum Narodowego`, `Matura próbna – język polski`. - **Początek** i **koniec** — data, godzina rozpoczęcia, godzina zakończenia. - **Uczestnicy** — klasy, grupy, nauczyciele, uczniowie albo uczestnicy wpisani **dowolnym tekstem**. - **Miejsce** — sala znana Omniscolowi albo miejsce wpisane **dowolnym tekstem**. - **Zasoby** — zasób do zarezerwowania, jeśli jest potrzebny. - **Przedmioty** i **etykiety** — do powiązania wydarzenia i do późniejszego odnalezienia; zob. niżej. - Link do wideokonferencji — opcjonalnie, aby uczestniczyć w wydarzeniu zdalnie. - **Komentarz** — dowolna notatka, która wyświetla się razem z wydarzeniem. - **Kolor** — pomoc wizualna, aby odróżnić wydarzenie w siatce godzin. Zaznaczenie myszą pozostaje **w obrębie jednego dnia**. ##### Gdzie znajduje się kalendarz - **W module Plany lekcji**. Proszę wyświetlić filtr **Wydarzenia**: kalendarz jest edytowalny (rysowanie myszą aktywne) wyłącznie w trybie **reorganizacji**; w zwykłym podglądzie pozostaje tylko do odczytu. - **W edycji planu lekcji typu kalendarzowego.** Filtr **Wydarzenia** jest tam proponowany wyłącznie dla planu lekcji **typu kalendarzowego**; nie pojawia się w planie lekcji w tygodniowej siatce godzin. #### Przedmioty i etykiety Dwa pola służą do powiązania wydarzenia z czymś szerszym i do późniejszego odnalezienia go. **Przedmioty.** Wydarzenie można powiązać z jednym przedmiotem lub z kilkoma: wykład, który liczy się w module informatyki, obrona przypisana do swojego toku studiów. Wydarzenie pojawia się wtedy w planie lekcji przy filtrowaniu po tym przedmiocie, obok lekcji — a w jego nazwie widnieje przedmiot, co pomaga rozpoznać je na pierwszy rzut oka. Przedmiot nadany wydarzeniu nie zużywa **żadnej godziny**: nie liczy się ani do wymiaru godzin przedmiotu, ani do godzin pracy nauczycieli. Wydarzenie pozostaje wydarzeniem; powiązanie mówi, czego ono dotyczy, a nie że czegoś uczy. **Etykiety.** Wydarzenia etykietuje się własnymi słowami — `wycieczka`, `komisja`, `bez podpisu` — i można ich użyć ponownie przy kolejnych wydarzeniach: już użyte etykiety są podpowiadane, co pozwala uniknąć dziesięciu pisowni tej samej myśli. Etykieta sama z siebie nic nie wywołuje. Służy do porządkowania, a przede wszystkim do decydowania, co wychodzi z Omniscola: konektory do systemów zewnętrznych umieją filtrować po tych etykietach, na przykład by wysyłać wszystko poza tym, co zostało oznaczone jako `bez podpisu`. #### Zapis bezpośredni, równolegle do planu lekcji Wydarzenie zapisuje się **natychmiast i oddzielnie**, z chwilą zatwierdzenia jego karty: utworzenie, przeniesienie albo usunięcie wydarzenia od razu wywołuje jego własny zapis (potwierdzony powiadomieniem). Globalny przycisk **Zapisz** reorganizacji ani edycji planu lekcji **nie jest potrzebny** — wydarzenia są już zapisane. Odwrotnie, zapis reorganizacji albo podziału godzin planu lekcji dotyczy **lekcji kursów**, a nie wydarzeń: to równoległy podsystem, utrwalany na bieżąco. #### Konflikty z lekcjami w planie lekcji Wydarzenie odwołuje się do **tych samych jednostek** co plan lekcji — nauczycieli, klas, grup, sal, zasobów — co pozwala Omniscolowi wykryć nakładanie się z regularnymi lekcjami. Przy wypełnianiu karty każdy uczestnik oraz każda sala i każdy zasób są sprawdzane względem tego, co już jest umieszczone w danym przedziale: - w przypadku **nauczyciela**, **klasy** albo **grupy** wydarzenie jest porównywane z lekcjami kursów **i z innymi wydarzeniami**; - **sale** i **zasoby** są sprawdzane pod kątem już istniejącego obłożenia w danym przedziale czasowym. Te sprawdzenia zasilają wskazania dostępności w listach wyboru i trafiają jako konflikty do widoku reorganizacji. Wydarzenie nakłada się na siatkę godzin: **zgłasza** konflikt, ale samo nie zwalnia lekcji, na które zachodzi. Proszę zająć się nimi oddzielnie (przeniesienie, doraźna modyfikacja, nieobecność…). #### Uczestnicy: wszyscy albo ktokolwiek Poza uczestnikami wskazanymi imiennie istnieją dwaj uczestnicy szczególni — i nie zachowują się jednakowo wobec konfliktów: - **Wszyscy** — wydarzenie dotyczy **całej szkoły**, w trybie **obowiązkowym**. Wyświetla się we wszystkich planach lekcji **i wchodzi w konflikt** z istniejącymi lekcjami kursów: to wybór na dzień otwarty albo na wydarzenie, które naprawdę angażuje całą placówkę. - **Ktokolwiek** — wydarzenie jest otwarte dla chętnych, w trybie **nieobowiązkowym**. Również wyświetla się we wszystkich planach lekcji, ale **nie generuje żadnego konfliktu**: na propozycję opcjonalną, która nie ma nikomu blokować siatki godzin. W obu przypadkach wydarzenie wyświetla się wszędzie; konflikty wywołuje tylko **Wszyscy**, ponieważ czyni obecność obowiązkową. #### Rzutowanie na plany lekcji Po utworzeniu wydarzenie jest **rzutowane na każdy plan lekcji, którego dotyczy**: pojawia się w planie lekcji każdego z uczestniczących nauczycieli, klas, grup i uczniów, a także w planie każdej wybranej sali i każdego wybranego zasobu (a przy **Wszyscy** i **Ktokolwiek** — wszędzie). To jedno i to samo wydarzenie widziane z kilku stron — naturalne jest więc, że odnajduje się je jednocześnie w planie lekcji klasy, nauczyciela i sali; nie są to duplikaty. Wydarzenie nie ma pola „typ”: od regularnego kursu odróżniają je tytuł, daty, uczestnicy i ewentualny kolor. #### Przenoszenie, dopasowywanie i swoboda godzin Na kalendarzu wydarzeń, w przeciwieństwie do lekcji kursów, wydarzenie **przenosi się i zmienia rozmiar przeciągnięciem i upuszczeniem**. **Wyświetlany zakres godzin** kalendarza odzwierciedla **godziny otwarcia** placówki: rozciąga się od najwcześniejszego skonfigurowanego otwarcia do najpóźniejszego skonfigurowanego zamknięcia, a gdy nic nie zostało określone, wraca do 07:00 – 20:00. Karta ma też przycisk **pinezki**: przełącza na umieszczanie według wolnych przedziałów czasowych, a kliknięcie wybranego przedziału przenosi jego datę i godziny do karty — alternatywa dla rysowania myszą, pozwalająca czysto dopasować wydarzenie. Na koniec godziny rozpoczęcia i zakończenia są **całkowicie swobodne**: nie muszą wypadać na przedziałach czasowych siatki godzin. Wydarzenie może zaczynać się o 9:50 i kończyć o 11:34, nawet jeśli regularne kursy są dopasowane do pełnych przedziałów: w tym właśnie tkwi sens wydarzenia nałożonego na siatkę godzin. #### Zmiana albo odwołanie Wydarzenie zmienia się tak, jak zostało utworzone: przeniesienie w czasie, zmiana sali, dodanie albo usunięcie uczestników. #### Instrukcja — Utworzenie wydarzenia jednorazowego 1. **Wydarzenie jednorazowe** kładzie się **na** siatkę godzin w datowanym przedziale: zebranie klasyfikacyjne, wycieczka, matura próbna, dzień otwarty, spotkanie. Nie ma regularnej powtarzalności do odwzorowania. 2. **Proszę kliknąć i przeciągnąć na kalendarzu wydarzeń**, aby wyrysować przedział (w trybie reorganizacji). Karta otwiera się ze wstępnie wypełnionymi datami; proszę wpisać tytuł (`Zebranie klasyfikacyjne 7B`, `Wycieczka do Muzeum Narodowego`). 3. **Proszę wybrać uczestników**: odpowiednie klasy, grupy i nauczycieli, uczniów, jeśli są dostępni, albo uczestników wpisanych dowolnym tekstem. 4. **Proszę dodać miejsce, zasoby, link do wideokonferencji i komentarz**, jeśli są potrzebne. Te pola opisują wydarzenie; nie przekształcają regularnych kursów. 5. **Proszę zapisać.** Wydarzenie pojawia się w planach lekcji, których dotyczy. Jeśli Omniscol zgłosi konflikt z regularnymi lekcjami kursów, proszę poprawić dane lekcje w widoku Reorganizacja. #### Zobacz także - [Lekcje poza siatką](#page-timetables.off-grid-lessons) - [Doraźne modyfikacje](#page-schedules.ad-hoc-changes) - [Przeglądanie i filtrowanie planów lekcji](#page-schedules.consult-and-filter) - [FAQ — przypadki szczególne](#page-faq.edge-cases) ### 5.5 Drukowanie i udostępnianie *Source: `help/pl/schedules/print-and-export.md` · id: schedules.print-and-export · Plan: standard · Updated: 2026-06-25* Wszystkie plany lekcji dostępne do przeglądania w module Plany lekcji można **wydrukować** lub **udostępnić** w kilku formatach. Wybór zależy od odbiorcy: papier do użytku w trybie offline, PDF do dystrybucji e-mailem, iCal do kalendarza elektronicznego, link internetowy do bezpośredniego przeglądania. Do liczbowej analizy wymiaru godzin w arkuszu kalkulacyjnym służy **Panel zarządczy**, który agreguje godziny i eksportuje je do CSV / XLSX. #### Drukowanie Przycisk Drukuj (u góry widoku) otwiera podgląd wydruku z układem strony zoptymalizowanym pod kątem papieru: - lekcje są **niewypełnione**: Omniscol drukuje tylko ich **kolorowy obrys** na białym tle, aby oszczędzić tusz, zachowując przy tym wizualną orientację po kolorach, - marginesy, orientacja i rozmiar są dostosowane do formatu A4 / Letter, - nagłówek zawiera nazwę szkoły, oznaczenie przeglądanego planu lekcji (uczeń, klasa, sala…) oraz zakres dat. Podgląd korzysta z systemu drukowania przeglądarki — dostępne jest więc wszystko, co ona potrafi (własny eksport do PDF, wybór drukarki, druk dwustronny itd.). #### Eksportowanie do PDF Omniscol oferuje **osobne przyciski eksportu do PDF**, które starannie formatują układ strony z planem lekcji. Najbardziej kompletny znajduje się na ekranie Wizualizuj modułu Zarządzanie planami lekcji (zob. [Podgląd, duplikowanie, reorganizacja](#page-timetables.visualize-duplicate)). Widok **tabeli** planu lekcji (zob. [Wyświetlanie planów lekcji](#page-schedules.schedule-display)) również pozwala na eksport do PDF, obok CSV i Excela. W przeciwnym razie w większości nowoczesnych przeglądarek wydruk można zapisać jako PDF (`Microsoft Print to PDF`, `Save as PDF`, `Drukuj do pliku`). Dobra praktyka: do komunikacji jednorazowej (na przykład wysłanie rodzicowi planu lekcji na tydzień) używać PDF, a do komunikacji powtarzalnej — linku udostępniania (PDF jest statyczny, link nadąża za zmianami). #### Analiza w arkuszu kalkulacyjnym (CSV / XLSX) Do arkusza kalkulacyjnego prowadzą dwie drogi. **Z ekranu przeglądania** proszę przełączyć widok planu lekcji na **tabelę** (zob. [Wyświetlanie planów lekcji](#page-schedules.schedule-display)): taki widok w stylu arkusza kalkulacyjnego można wydrukować, skopiować i wkleić oraz wyeksportować bezpośrednio do **CSV**, **Excela / XLSX** lub **PDF**. **W celu zbiorczej analizy wymiaru godzin** proszę skorzystać z modułu **Panel zarządczy**, który wylicza godziny na nauczyciela, na przedmiot, na klasę lub na salę w wybranym okresie i oferuje ten sam eksport do **CSV** (uniwersalny) lub **XLSX** (wstępnie sformatowany dla Excela). Typowe zastosowania tego eksportu do arkusza kalkulacyjnego: - zliczanie godzin zrealizowanych na nauczyciela, na przedmiot, na klasę; - zasilanie zewnętrznego systemu kadrowo-płacowego (płace, rozliczanie czasu pracy); - wykrywanie rozbieżności między planowanymi a zrealizowanymi godzinami pracy. Zob. [Korzystanie z tabel i wykresów](#page-dashboard.tools-and-filters) i [Statystyki nauczycieli](#page-dashboard.teachers). Aby pobrać same lekcje w formacie maszynowym, udostępnianie oferuje reprezentację **JSON (API)**; zob. [Udostępnianie planu lekcji linkiem publicznym](#page-schedules.share-link). #### Eksportowanie do iCal Aby dynamicznie udostępnić plan lekcji kalendarzowi elektronicznemu (Google Calendar, Apple Calendar, Outlook), proszę skorzystać z **subskrypcji iCal**, a nie z jednorazowego eksportu. Odbiorca widzi zmiany na bieżąco. Zob. [iCal — subskrypcja i dynamiczny link](#page-integrations.ical). Okno udostępniania wyświetla też **kod QR** gotowy do zeskanowania: odbiorca kieruje telefon na ekran komputera i subskrybuje kalendarz bez wpisywania adresu. Jeśli jednak potrzebny jest statyczny plik `.ics` do archiwizacji, jednorazowy eksport jest również dostępny w oknie udostępniania. #### Filtrowanie przed eksportem Eksporty respektują **aktywne filtry** bieżącego widoku: po zawężeniu widoku do konkretnej klasy lub konkretnego zakresu dat eksport obejmie tylko ten wycinek. Aby uzyskać szerszy eksport (cały rok, wszystkie klasy), proszę odpowiednio zmienić filtry przed jego uruchomieniem. #### Instrukcja — Drukowanie lub udostępnianie planu lekcji 1. **Dwa wyjścia z ekranu przeglądania**: wydruk (PDF) do dystrybucji statycznej oraz udostępnianie (Web, iCal, JSON) do dystrybucji dynamicznej. Liczbowa analiza w arkuszu kalkulacyjnym przebiega natomiast przez moduł Panel zarządczy. 2. **Najpierw proszę przefiltrować** widok według pożądanego zakresu: klasa, nauczyciel, sala, zakres dat, typ lekcji. Wydruk i udostępnianie respektują aktywne filtry — wąski filtr = wąski wynik. 3. **Dla PDF** (wysyłka e-mailem, archiwizacja): najbardziej kompletny jest eksport do PDF z ekranu Wizualizuj (por. [Podgląd, duplikowanie, reorganizacja](#page-timetables.visualize-duplicate)); z ekranu przeglądania przycisk Drukuj otwiera podgląd wydruku (niewypełnione lekcje, nagłówek z nazwą szkoły, oznaczeniem planu lekcji i zakresem dat), z którego również można zapisać PDF. 4. **W oknie drukowania przeglądarki** proszę wybrać **Save as PDF** / **Microsoft Print to PDF** / **Drukuj do pliku**. PDF jest statyczny: nie nadąża za późniejszymi zmianami planu lekcji. Do dystrybucji dynamicznej lepszy jest **link udostępniania** (zob. [Publiczne linki udostępniania](#page-schedules.share-link)). 5. **Dla analizy w arkuszu kalkulacyjnym**: proszę przełączyć plan lekcji na **tabelę**, aby wyeksportować go bezpośrednio (CSV / XLSX / PDF, por. [Wyświetlanie planów lekcji](#page-schedules.schedule-display)), albo otworzyć moduł **Panel zarządczy** dla zbiorczego wymiaru godzin — godziny na nauczyciela / przedmiot / klasę — a następnie wyeksportować do CSV lub XLSX (por. [Statystyki nauczycieli](#page-dashboard.teachers)). 6. **Dla kalendarza elektronicznego** lepsza od statycznego pliku jest **subskrypcja iCal**: odbiorca widzi aktualizacje na bieżąco (por. [iCal](#page-integrations.ical)). #### Zobacz także - [Wyświetlanie planów lekcji](#page-schedules.schedule-display) - [Podgląd, duplikowanie, reorganizacja](#page-timetables.visualize-duplicate) - [iCal — subskrypcja i dynamiczny link](#page-integrations.ical) - [Udostępnianie planu lekcji linkiem publicznym](#page-schedules.share-link) - [Import i eksport](#page-admin.import-export) ### 5.6 Udostępnianie planu lekcji linkiem publicznym *Source: `help/pl/schedules/share-link.md` · id: schedules.share-link · Audience: admin/teacher · Plan: standard · Updated: 2026-05-15* Moduł **Plany lekcji** udostępnia przycisk Udostępnianie, który generuje podpisane adresy URL dla przeglądanego planu lekcji. Odbiorca otwiera link internetowy i widzi plan lekcji tylko do odczytu, bez konieczności logowania. To najszybsza droga przekazania planu lekcji osobie, która nie ma konta Omniscol — zwykle rodzicowi ucznia, zewnętrznemu partnerowi albo służbie administracyjnej. #### Formaty generowane przy udostępnianiu Zależnie od kontekstu i posiadanych uprawnień okno udostępniania może zaproponować kilka adresów URL: - **responsywna strona internetowa** — widok do przeglądania w stylu portalu, z widokami tygodnia / dnia / listy, - **strumień iCal `.ics`** — do subskrypcji z Google Calendar, Apple Calendar, Outlook, - **JSON (API)** — dla programistów i integracji maszyna-maszyna, gdy ten format jest dozwolony. Odbiorca wybiera to, co mu wygodne: rodzic otworzy stronę internetową albo zasubskrybuje iCal, programista skorzysta z formatu JSON. #### Co można udostępnić? Udostępnianie nie ogranicza się do ekranu przeglądania planów lekcji: ta sama ikona Udostępnianie pojawia się na wielu ekranach Omniscol. **Tylko do odczytu** można udostępnić: - **indywidualny plan lekcji** ucznia albo nauczyciela, - **plan lekcji całej klasy**, **sali** albo **przedmiotu**, - **grafiki dyżurów** modułu Obsada personelu, - **panel zarządczy** oraz **monitorowanie nieobecności**, - ekrany **podglądu** i **reorganizacji** planu lekcji. **Do odczytu i zapisu** — jedyny taki przypadek — można udostępnić ekran **wprowadzania dostępności** nauczycieli (oraz personelu): dedykowany link pozwala każdej z tych osób wpisać swoją dostępność aż do daty wygaśnięcia, **bez konta ani hasła** Omniscol. To jedyne udostępnienie, które dopuszcza wprowadzanie danych, a nie samo przeglądanie. Każdy podpisany adres URL zawiera żądany zakres i datę wygaśnięcia. #### Tworzenie linku Na ekranie przeglądania proszę kliknąć Udostępnianie na pasku narzędzi. Okno dialogowe oferuje: - **Data wygaśnięcia** — data, do której wygenerowane linki pozostają ważne. - **Zakładki Web, iCal i JSON** — widoczne zależnie od formatów wygenerowanych dla bieżącego wyboru. Następnie proszę skopiować właściwy adres URL. Dla linków internetowych i iCal okno dialogowe może też pokazać **kod QR** gotowy do wydruku. #### Ograniczanie udostępnienia Do zastosowań jednorazowych proszę wybrać bliską datę wygaśnięcia. Link należy do konta, które go wygenerowało. Aby unieważnić istniejące linki wygenerowane przez dane konto, należy sięgnąć po faktycznie działające środki: - zmiana albo zresetowanie hasła konta właściciela; - dezaktywacja albo usunięcie konta właściciela. Wskazówka: przy udostępnianiu prowadzonym przez zespół planowania można użyć **wyraźnie oznaczonego konta serwisowego** (na przykład `udostepnianie-planow`) zamiast konta osobistego któregoś z pracowników. Takie konto odpowiada wtedy za wydane linki; jego dostępy i hasło należy traktować jak dostęp administracyjny. Linki internetowe są tylko do odczytu, z wyjątkiem opisanego wyżej linku do **wprowadzania dostępności** nauczycieli, który dopuszcza wpisywanie danych aż do daty wygaśnięcia, nie dając przy tym dostępu do konta Omniscol. #### Bezpieczeństwo - Link zawiera silnie zabezpieczony podpisany token. - Daje dostęp **wyłącznie do tego, co zostało udostępnione** (do planu lekcji albo ekranu), a nie do całego konta. - Ważność jest ograniczona wybraną datą wygaśnięcia. - Linki zostają unieważnione, jeśli zmieni się hasło konta właściciela, nawet gdy nowe hasło jest w jawnej postaci takie samo jak poprzednie. - Linki przestają działać, jeśli konto właściciela zostanie dezaktywowane albo usunięte. - Każda osoba, która ma ten adres URL, może przeglądać udostępniony zakres aż do wygaśnięcia lub unieważnienia. #### Różnica wobec ograniczonego konta Omniscol Przy udostępnianiu danych innym zespołom, na przykład działowi księgowości, obie opcje mogą wydawać się konkurencyjne. - **Podpisany link publiczny** = brak identyfikacji, prosty dostęp, szybkie udostępnienie. - **Ograniczone konto Omniscol** = dedykowana identyfikacja, dłuższy okres, zarządzanie kontem użytkownika, a do tego opcjonalnie [role niestandardowe](#page-admin.customroles). Do zastosowań jednorazowych lepszy jest link, a do zastosowań uporządkowanych i rozłożonych na dłuższy czas — ograniczone konto. #### Instrukcja — Tworzenie linku udostępniania 1. **Link udostępniania** daje dostęp do planu lekcji tylko do odczytu, bez logowania. Idealny dla rodzica, zewnętrznego partnera, służby administracyjnej. 2. **Proszę otworzyć plan lekcji do udostępnienia** w module Plany lekcji: ucznia, klasy, sali, nauczyciela albo przedmiotu. Punktem wyjścia jest strona przeglądania. 3. Proszę kliknąć Udostępnianie na pasku narzędzi. Otworzy się okno dialogowe z opcjami udostępnienia. 4. **Proszę wybrać datę wygaśnięcia.** Im szerzej link będzie krążyć, tym bliższa powinna być ta data. 5. **Proszę skopiować potrzebny format.** Web do bezpośredniego przeglądania, iCal do subskrypcji kalendarza, JSON wtedy, gdy przewidziana jest integracja API. Adres URL działa od razu: osoba, która go otworzy, widzi udostępniony zakres tylko do odczytu, bez logowania. 6. **W razie niepożądanego rozpowszechnienia** proszę utworzyć nowy, bardziej ograniczony link z innego konta i unieważnić linki należące do konta pierwotnego: zmieniając jego hasło albo, jeśli to właściwe, dezaktywując to konto. #### Zobacz także - [Publiczne linki udostępniania](#page-portal.share-links) - [iCal — subskrypcja i dynamiczny link](#page-integrations.ical) - [Portal gościa (linki publiczne)](#page-portal.guest-portal) --- ## 6. Nieobecności i zastępstwa ### 6.1 Przegląd modułu Zarządzanie nieobecnościami *Source: `help/pl/absences/overview.md` · id: absences.overview · Audience: admin/teacher/student/staff · Plan: standard · Updated: 2026-06-13* Moduł **Zarządzanie nieobecnościami** skupia w jednym miejscu zgłaszanie i śledzenie niedostępności, które mają zmienić wyświetlanie planów lekcji: nauczycieli, klas, uczniów oraz — jeśli moduł Obsada personelu jest włączony — członków personelu. #### Obsługiwane jednostki | Nieobecna jednostka | Wpływ na plan lekcji | | --- | --- | | **Nauczyciel** | Lekcja **odwołana**, gdy prowadzi ją wyłącznie nieobecny nauczyciel — chyba że wskazano **zastępcę** (pojawia się on wtedy obok przekreślonego nazwiska nieobecnego nauczyciela). Przy **współnauczaniu** lekcja zostaje **utrzymana**: usuwany jest tylko nieobecny nauczyciel, a pozostali nauczyciele prowadzą ją dalej. | | **Klasa** | Lekcje nieobecnej klasy są usuwane z wyświetlania we wskazanym okresie. | | **Uczeń** | Lekcje pozostają w planie klasy; nieobecność dotyczy widoku i śledzenia ucznia. | | **Personel** | Dostępne tylko wtedy, gdy moduł Obsada personelu jest aktywny; działa jak nieobecność jednostki w planowaniu personelu. | Dni wolne w roku szkolnym nie są wprowadzane jako nieobecności: zarządza się nimi na poziomie roku szkolnego. #### Usprawiedliwienia Moduł nie obsługuje **dołączania usprawiedliwień**: zarządzanie planami lekcji nie ma na celu przechowywania danych wrażliwych (zaświadczeń lekarskich, informacji objętych tajemnicą zawodową), lecz skupia się na planowaniu. Jeśli jednak trzeba dołączyć dokument, proszę umieścić go w swoim zwykłym miejscu przechowywania plików i wkleić **link w polu Komentarz** nieobecności. #### Statusy - **zaakceptowany**: nieobecność jest zatwierdzona i uwzględniana w widokach. - **oczekujący**: zgłoszenie złożone przez zainteresowanego użytkownika, do zatwierdzenia przez administratora. - **odrzucony**: zgłoszenie odrzucone. - **przerwany**: zgłoszenie anulowane przez osobę, która je złożyła. Tylko nieobecności o statusie **zaakceptowany** wywołują skutki: zmieniają wyświetlanie planów lekcji, oznaczają objęte nimi lekcje (w stosownych przypadkach jako odwołane) oraz zasilają **statystyki** i **eksporty** nieobecności (zob. [Monitorowanie i eksport nieobecności](#page-absences.statistics)). Pozostałe statusy — oczekujący, odrzucony, przerwany — nie mają wpływu na plan lekcji. #### Układ ekranów Moduł udostępnia zakładki według typu jednostki: - **Nauczyciele**: nieobecności nauczycieli i zarządzanie zastępstwami. - **Klasy**: nieobecności klas, zarządzane przez administratorów. - **Uczniowie**: indywidualne nieobecności uczniów. - **Personel**: nieobecności personelu, jeśli moduł Obsada personelu jest włączony. Każdy ekran pokazuje nieobecności z danego okresu, ich status, objęte nimi lekcje — jeśli informacja jest dostępna — nawigację w czasie oraz listę, którą administratorzy mogą wyeksportować. #### Wymagania wstępne - Co najmniej jeden opublikowany plan lekcji dla danego roku szkolnego. - W przypadku nieobecności nauczycieli: nauczyciele muszą być przypisani do kursów. - W przypadku nieobecności uczniów: uczniowie muszą być przypisani do klas. - W przypadku nieobecności personelu: moduł Obsada personelu musi być aktywny. #### Instrukcja — Zapoznanie się z modułem Zarządzanie nieobecnościami 1. Proszę otworzyć moduł **Zarządzanie nieobecnościami** z nawigacji głównej. 2. Proszę wybrać zakładkę odpowiadającą danej jednostce: nauczyciele, klasy, uczniowie lub personel — w zależności od włączonych modułów. 3. Proszę użyć Zgłoś nieobecność, aby otworzyć formularz: nieobecna jednostka, daty, zakres godzin, powód, komentarz i status zgodnie z posiadanymi uprawnieniami. 4. W przypadku zaakceptowanej nieobecności nauczyciela proszę otworzyć Zarządzanie zastępstwami, aby zobaczyć objęte nią lekcje oraz przypisać zastępców doraźnych lub zasady zastępstw. 5. Administratorzy mogą wyeksportować wyświetloną tabelę przyciskiem Tabela. #### Zobacz także - [Zgłaszanie nieobecności](#page-absences.declaring) - [Zasady zastępstw](#page-absences.substitution-policies) - [Nieobecność](#page-glossary.absence) - [Zastępstwo](#page-glossary.substitution) ### 6.2 Zgłaszanie nieobecności (administrator / nauczyciel / uczeń) *Source: `help/pl/absences/declaring.md` · id: absences.declaring · Audience: admin/teacher/student/staff · Plan: standard · Updated: 2026-06-13* #### Kto może zgłosić nieobecność? | Rola | Dla kogo? | Status początkowy | | --- | --- | --- | | **Administrator** | Nauczyciel, klasa, uczeń lub członek personelu | zaakceptowany domyślnie, z możliwością zmiany | | **Nauczyciel** | Tylko dla siebie | oczekujący | | **Uczeń** | Tylko dla siebie | oczekujący | | **Personel** | Tylko dla siebie, jeśli moduł Obsada personelu jest włączony | oczekujący | Nieobecności klas to operacje administracyjne: ich zgłaszanie i późniejsza zmiana są zastrzeżone dla administratorów. #### Pola formularza Przycisk Zgłoś nieobecność otwiera formularz. Zapis następuje przyciskiem Dodaj. - **Jednostka**: widoczna dla administratorów; pozostałe role mogą zgłosić wyłącznie własną nieobecność. - **Zakres dat**: data rozpoczęcia i data zakończenia. W przypadku nieobecności jednodniowej proszę podać tę samą datę. Jeśli interfejs nie wypełni daty zakończenia, Omniscol przyjmuje koniec roku szkolnego jako granicę techniczną: nie należy jej używać do udokumentowania nieobecności faktycznie bezterminowej. - **Zakres godzin**: domyślnie cały dzień albo wybrane przedziały czasowe. - **Filtry opcjonalne**: - **Klasa**, aby ograniczyć nieobecność nauczyciela do wybranych klas. - **Przedmiot**, aby objąć tylko lekcje danego przedmiotu. - **Przydział** dla nieobecności personelu, jeśli moduł Obsada personelu jest włączony. - **Powód**: wybierany z proponowanej listy; administratorzy mogą też wpisać własny powód. - **Komentarz**: krótki tekst dowolny. - **Status**: tylko administratorzy mogą dowolnie ustawić status (domyślnie status **zaakceptowany**). W przypadku pozostałych ról zgłoszenie otrzymuje status **oczekujący** i czeka na zatwierdzenie przez administratora; osoba zgłaszająca może jednak nadać własnemu zgłoszeniu status **przerwany**, aby z niego zrezygnować. #### Instrukcja — Pierwsza nieobecność nauczyciela 1. Proszę otworzyć zakładkę Nauczyciele w module Zarządzanie nieobecnościami. 2. Proszę kliknąć Zgłoś nieobecność. 3. Jeśli zgłoszenie składa administrator, proszę wybrać nauczyciela, którego dotyczy nieobecność. Nauczyciel zgłaszający własną nieobecność nie ma dostępu do listy innych nauczycieli. 4. Proszę wypełnić daty, a w przypadku nieobecności jednodniowej podać tę samą datę rozpoczęcia i zakończenia. 5. Proszę zostawić **Cały dzień** albo wskazać odpowiednie przedziały czasowe, jeśli nieobecność dotyczy tylko części dnia. 6. Proszę wybrać powód, w razie potrzeby dodać komentarz, a następnie zapisać przyciskiem Dodaj. 7. Jeśli nieobecność została zaakceptowana i dotyczy nauczyciela, proszę otworzyć zarządzanie zastępstwami przyciskiem Zarządzanie zastępstwami, aby przypisać zastępcę albo zdefiniować regułę zastępstwa. #### Zatwierdzanie oczekującego zgłoszenia Gdy nauczyciel, uczeń lub członek personelu zgłasza własną nieobecność, zgłoszenie pozostaje oczekujące. Administratorzy mogą je zaakceptować lub odrzucić skrótami zaakceptowany i odrzucony albo po otwarciu szczegółów nieobecności. #### Późniejsze zmiany - Administrator może zmienić daty, godziny, powód, komentarz i status. - Osoba zgłaszająca może zmienić własną przyszłą nieobecność; po zmianie zgłoszenie wraca do statusu oczekującego. - Osoba zgłaszająca może zrezygnować z własnego zgłoszenia. #### Widoczność Sam fakt nieobecności jednostki może być widoczny w planach lekcji lub w module Zarządzanie nieobecnościami, w zależności od praw do przeglądania. Szczegóły powodu, komentarza, danych utworzenia i statusu nie są pokazywane wszystkim rolom w ten sam sposób: użytkownicy bez uprawnień administratora niekoniecznie widzą szczegóły nieobecności innych osób. #### Zobacz także - [Zasady zastępstw](#page-absences.substitution-policies) - [Jednorazowe zastępstwo na pojedynczej lekcji](#page-absences.single-lesson-replacement) - [Nieobecność](#page-glossary.absence) ### 6.3 Zasady zastępstw *Source: `help/pl/absences/substitution-policies.md` · id: absences.substitution-policies · Audience: admin · Plan: standard · Updated: 2026-06-13* **Zasady zastępstw** pozwalają objąć wiele lekcji dotkniętych tą samą nieobecnością nauczyciela. Dzięki nim nie trzeba wybierać zastępcy lekcja po lekcji, gdy wystarcza jedna prosta reguła. #### Dostęp W wierszu nieobecności nauczyciela proszę otworzyć Zarządzanie zastępstwami. Panel pokazuje lekcje dotknięte nieobecnością oraz zapisane reguły zastępstw. Lekcje bez zastępcy pozostają oznaczone jako dotknięte nieobecnością stałego nauczyciela. #### Dwa poziomy reguł ##### Zastępstwo jednorazowe Na konkretnej lekcji Przypisz zastępcę pozwala wskazać zastępcę tylko dla tej jednej lekcji. Takie przypisanie ma pierwszeństwo przed zasadami długoterminowymi. ##### Zasady długoterminowe W sekcji Zastępstwa długoterminowe tego panelu przycisk Przypisz zastępcę tworzy regułę zastępstwa. Dla każdej reguły podaje się: - **zastępcę**; - **datę rozpoczęcia** i **datę zakończenia** okresu obowiązywania; - **przedziały czasowe**, jeśli reguła nie obowiązuje przez cały dzień; - opcjonalnie **przedmioty**; - opcjonalnie **klasy**; - wewnętrzny **komentarz**. Kilka reguł może obowiązywać jednocześnie. Stosuje się je w wyświetlonej kolejności; w razie zmiany priorytetu proszę zmienić ich kolejność, przeciągając je i upuszczając. #### Odczytywanie panelu Lista lekcji pokazuje, który zastępca obejmuje każdą z nich. Jeśli reguła nie odpowiada żadnej lekcji dotkniętej nieobecnością, panel wyświetla ostrzeżenie przy tej regule: należy poprawić daty, przedziały czasowe, przedmioty lub klasy. #### Typowy przypadek: długa nieobecność z podziałem W przypadku nieobecności trwającej kilka tygodni: 1. Proszę utworzyć pierwszą regułę z głównym zastępcą, bez filtra przedmiotu ani klasy. 2. Proszę dodać drugą, bardziej precyzyjną regułę, na przykład ograniczoną do jednego przedmiotu lub jednego przedziału czasowego. 3. Proszę umieścić najbardziej szczegółową regułę przed regułą ogólną, jeśli ma ona mieć pierwszeństwo. #### Instrukcja — Podział długiej nieobecności 1. Proszę otworzyć nieobecność nauczyciela za pomocą Zarządzanie zastępstwami. 2. Proszę kliknąć Przypisz zastępcę. 3. Proszę wybrać głównego zastępcę, określić daty obowiązywania, a następnie zapisać. 4. Proszę dodać regułę uzupełniającą, jeśli niektóre lekcje mają być poprowadzone przez innego zastępcę. 5. Proszę sprawdzić listę lekcji dotkniętych nieobecnością. Powinny pokazywać oczekiwanego zastępcę; lekcje nieobjęte regułami pozostają widoczne jako lekcje bez zastępstwa. 6. Proszę zatwierdzić panel przyciskiem Przypisz. #### Zobacz także - [Zgłaszanie nieobecności](#page-absences.declaring) - [Jednorazowe zastępstwo na pojedynczej lekcji](#page-absences.single-lesson-replacement) - [Zastępstwo](#page-glossary.substitution) ### 6.4 Jednorazowe zastępstwo na pojedynczej lekcji *Source: `help/pl/absences/single-lesson-replacement.md` · id: absences.single-lesson-replacement · Audience: admin · Plan: standard · Updated: 2026-06-13* **Jednorazowe zastępstwo** przypisuje zastępcę do pojedynczej lekcji objętej nieobecnością nauczyciela. Konfiguruje się je w panelu zarządzania zastępstwami danej nieobecności. Ten mechanizm nie przenosi lekcji, sam z siebie nie tworzy powiadomienia i nie proponuje kilku scenariuszy odwołania lekcji. Dodaje zastępcę do danej lekcji; nieobecny stały nauczyciel pozostaje widoczny jako nauczyciel zastępowany. #### Dostęp 1. Proszę otworzyć zakładkę Nauczyciele w module Zarządzanie nieobecnościami. 2. Przy danej nieobecności proszę kliknąć Zarządzanie zastępstwami. 3. Na liście lekcji objętych nieobecnością proszę użyć Przypisz zastępcę przy lekcji, która ma zostać zastąpiona. Panel pokazuje lekcje objęte nieobecnością oraz już zdefiniowane zasady zastępstw. #### Działanie jednorazowego zastępstwa - Wybrany zastępca jest przypisany wyłącznie do tej jednej lekcji. - Sala, klasa, data i godzina lekcji nie zmieniają się w wyniku tej operacji. - Jednorazowe zastępstwo ma pierwszeństwo przed ogólnymi zasadami zastępstw tej samej nieobecności. - Jeśli żaden zastępca nie zostanie przypisany, lekcja pozostaje dotknięta nieobecnością nauczyciela. #### Wybór zastępcy Lista wyboru opiera się na nauczycielach dostępnych w danym przedziale czasowym. Przed zatwierdzeniem proszę samodzielnie sprawdzić, czy wybór jest zgodny z przedmiotem, lokalizacją i wewnętrzną organizacją szkoły. #### Usuwanie jednorazowego zastępstwa Jeśli jednorazowe zastępstwo zostało dodane przez pomyłkę, proszę użyć [xmark]. Lekcja podlega wtedy obowiązującej zasadzie długoterminowej albo pozostaje bez zastępstwa, jeśli żadna zasada do niej nie pasuje. #### Instrukcja — Zastąpienie lekcji 1. Proszę utworzyć lub otworzyć zaakceptowaną nieobecność nauczyciela. 2. Proszę kliknąć Zarządzanie zastępstwami. 3. Na liście lekcji objętych nieobecnością proszę odnaleźć lekcję, którą należy obsłużyć. 4. Proszę kliknąć Przypisz zastępcę, wybrać nauczyciela zastępcę, a następnie zatwierdzić panel za pomocą Przypisz. 5. Proszę sprawdzić sposób wyświetlania lekcji: nieobecny stały nauczyciel powinien pozostać przekreślony, a zastępca powinien pojawić się na lekcji. #### Zobacz także - [Zasady zastępstw](#page-absences.substitution-policies) - [Zgłaszanie nieobecności](#page-absences.declaring) - [Nieobecności wielodniowe](#page-absences.multi-day) - [Zastępstwo](#page-glossary.substitution) ### 6.5 Nieobecności wielodniowe *Source: `help/pl/absences/multi-day.md` · id: absences.multi-day · Audience: admin · Plan: standard · Updated: 2026-06-13* **Nieobecność wielodniowa** to nieobecność zgłoszona z datą rozpoczęcia i datą zakończenia. Pozwala objąć ciągły okres bez tworzenia osobnej nieobecności dla każdej lekcji. Omniscol wyznacza następnie lekcje objęte tym okresem. W przypadku nieobecności nauczyciela lekcje te można pozostawić bez zastępstwa, objąć zasadami zastępstw albo skorygować jednorazowymi zastępstwami. #### Zgłoszenie okresu W zakładce Nauczyciele modułu Zarządzanie nieobecnościami proszę: - wybrać nauczyciela, którego dotyczy nieobecność; - wprowadzić datę rozpoczęcia i datę zakończenia; - pozostawić ustawienie całego dnia albo wskazać objęte nią przedziały czasowe; - wybrać powód; - w razie potrzeby dodać komentarz; - zapisać przyciskiem Dodaj. #### Obsługa lekcji objętych nieobecnością Po zgłoszeniu proszę: - otworzyć Zarządzanie zastępstwami; - sprawdzić listę lekcji objętych nieobecnością; - utworzyć jedną lub kilka reguł przyciskiem Przypisz zastępcę, jeśli ta sama logika zastępstw się powtarza; - użyć przycisku Przypisz zastępcę na konkretnej lekcji, aby ustalić wyjątki lekcja po lekcji. **Reguły zastępstw** to mechanizm przewidziany dla długich nieobecności. Reguła **bez filtra** obejmuje **wszystkie** lekcje z tego okresu; proszę dodać klasę, przedmiot, przedziały czasowe lub daty, aby objąć tylko ich część. Aby **pozostawić wszystko bez zastępstwa**, nie należy tworzyć żadnej reguły: lekcje prowadzone wyłącznie przez nieobecnego nauczyciela zostają wtedy odwołane na czas tego okresu. #### Nieobecność w powtarzających się przedziałach czasowych Nieobecność, która dotyczy tylko niektórych przedziałów czasowych długiego okresu — na przykład każdego poniedziałku rano przez dwa miesiące — zgłasza się **za jednym razem**: proszę podać szeroki zakres dat, a następnie wskazać objęte nią **przedziały czasowe** (a w razie potrzeby także klasę lub przedmiot). Omniscol wybiera wtedy w całym okresie wyłącznie te lekcje, które przypadają na te przedziały: nie trzeba wprowadzać każdego wystąpienia osobno. #### Monitorowanie i eksport Tabela nieobecności pozwala administratorom wyeksportować wyświetlane wiersze przyciskiem Tabela. Monitorowanie dostępne w module — zob. [Monitorowanie i eksport nieobecności](#page-absences.statistics). #### Instrukcja — Zarządzanie długą nieobecnością 1. Proszę zgłosić nieobecność z datą rozpoczęcia i datą zakończenia. 2. Jeśli nieobecność nie obejmuje całych dni, proszę wskazać objęte nią przedziały czasowe. 3. Proszę zapisać zgłoszenie. 4. Proszę otworzyć Zarządzanie zastępstwami. 5. Proszę dodać potrzebne reguły zastępstw, a następnie sprawdzić listę lekcji objętych nieobecnością. 6. Jednorazowych zastępstw proszę używać tylko dla tych lekcji, które mają odbiegać od reguł ogólnych. #### Zobacz także - [Zgłaszanie nieobecności](#page-absences.declaring) - [Zasady zastępstw](#page-absences.substitution-policies) - [Jednorazowe zastępstwo na pojedynczej lekcji](#page-absences.single-lesson-replacement) - [Monitorowanie i eksport nieobecności](#page-absences.statistics) ### 6.6 Nieobecności klas i uczniów *Source: `help/pl/absences/class-and-student-absences.md` · id: absences.class-and-student-absences · Audience: admin/teacher/staff · Plan: standard · Updated: 2026-06-13* Moduł Zarządzanie nieobecnościami rozróżnia nieobecności **całych klas** i nieobecności **poszczególnych uczniów**. Jedne i drugie opierają się na tej samej zasadzie zgłaszania, ale ich wpływ na plan lekcji nie jest taki sam. #### Nieobecność całej klasy Typowe przypadki: wycieczka dydaktyczna, wyjazd, wspólny staż, dzień egzaminów. Nieobecnościami klas zarządzają administratorzy. W zakładce Klasy formularz pozwala podać: - klasę, której dotyczy nieobecność; - zakres dat; - zakres godzin, jeśli nieobecność nie obejmuje całego dnia; - opcjonalnie przedmiot, aby ograniczyć skutek do wybranych lekcji; - powód; - komentarz. W powtarzalnym planie lekcji zaakceptowana nieobecność klasy usuwa lekcje tej klasy z widoku w danym okresie. #### Nieobecność poszczególnego ucznia Typowe przypadki: choroba, wizyta lekarska, wydarzenie rodzinne, nieobecność usprawiedliwiona lub nieusprawiedliwiona. Nieobecność ucznia: - dotyczy wybranego ucznia; - oznacza lekcje z danego okresu jako **anulowane** w planie lekcji ucznia, nie usuwając ani lekcji klasy, ani lekcji nauczycieli; - może zostać zgłoszona przez administratora lub przez ucznia, którego dotyczy, zależnie od jego uprawnień; - staje się oczekująca, gdy zgłasza ją sam uczeń. #### Widoczność Administratorzy mają pełny wgląd. Pozostałe role widzą wersję ograniczoną zgodnie ze swoimi uprawnieniami: istnienie nieobecności może być widoczne bez ujawniania powodu, komentarza ani metadanych zatwierdzenia. #### Instrukcja — Zgłaszanie nieobecności klasy 1. Proszę otworzyć zakładkę Klasy modułu Zarządzanie nieobecnościami. 2. Proszę kliknąć Zgłoś nieobecność. 3. Proszę wybrać klasę oraz daty i godziny, których dotyczy nieobecność. 4. Proszę dodać powód i, jeśli to konieczne, komentarz. 5. Proszę zapisać. Lekcje tej klasy zostają usunięte z widoku na zaakceptowany okres; pozostałe klasy zachowują swoje lekcje. #### Instrukcja — Zgłaszanie nieobecności ucznia 1. Proszę otworzyć zakładkę **Uczniowie**. 2. Jeśli nieobecność zgłasza administrator, proszę wybrać ucznia, którego ona dotyczy. 3. Proszę podać daty, godziny, powód i komentarz. 4. Proszę zapisać. Jeśli zgłoszenie utworzył sam uczeń, pozostaje ono oczekujące do momentu zatwierdzenia. 5. Po zaakceptowaniu lekcje z danego okresu zostają oznaczone jako **anulowane** w planie lekcji ucznia i wliczone do jego ewidencji oraz statystyk. Pozostali uczniowie klasy nie są objęci zmianą. #### Zobacz także - [Zgłaszanie nieobecności](#page-absences.declaring) - [Monitorowanie i eksport nieobecności](#page-absences.statistics) - [Nieobecności wielodniowe](#page-absences.multi-day) - [Wydarzenia jednorazowe](#page-schedules.events) ### 6.7 Monitorowanie i eksport nieobecności *Source: `help/pl/absences/statistics.md` · id: absences.statistics · Audience: admin · Plan: standard · Updated: 2026-06-13* Monitorowanie nieobecności odbywa się w kilku uzupełniających się miejscach: moduł Zarządzanie nieobecnościami służy do monitorowania operacyjnego, **Panel zarządczy** do statystyk zagregowanych, a moduł Administracja do historii ucznia. Te dwa ostatnie widoki uwzględniają wyłącznie nieobecności ze statusem **zaakceptowany**. #### Monitorowanie w module Zarządzanie nieobecnościami W zależności od zakładki i wybranego okresu ekran wyświetla: - jednostki nieobecne w danym okresie; - statusy zgłoszeń wraz z licznikami; - lekcje objęte nieobecnościami ze statusem zaakceptowany; - nawigację po tygodniach, miesiącach, roku szkolnym lub zakresie dat; - tabelaryczną listę nieobecności. W przypadku nieobecności nauczyciela zarządzanie zastępstwami (Zarządzanie zastępstwami) dodaje objęte nią lekcje oraz przypisanych zastępców. Administratorzy eksportują wyświetloną tabelę przyciskiem Tabela: jednostka, daty, godziny, ewentualny przedmiot, powód, komentarz i status zależnie od uprawnień — przydatne do wewnętrznego bilansu lub do dalszego przetwarzania poza Omniscol. #### Statystyki w module Panel zarządczy Aby poznać **sumy i wskaźniki**, proszę otworzyć **Panel zarządczy**. Zakładka Uczniowie podsumowuje, dla każdego ucznia i w danym okresie, **godziny**, **lekcje** i **dni nieobecności** oraz odpowiadający im **procent nieobecności**, z możliwością eksportu do CSV / XLSX (zob. [Statystyki uczniów i zasobów](#page-dashboard.students-resources)). Po stronie **nauczycieli** zakładka Nauczyciele odzwierciedla wpływ nieobecności na godziny pracy: kolumna **Lekcje odwołane** zlicza odjęte godziny (nieobecność bez zastępstwa odwołuje lekcję), a **Godziny nadliczbowe** — godziny doliczone. Każda kolumna wskazuje liczbę lekcji, których dotyczy, i udostępnia podpowiedź z ich szczegółami (przedmiot, klasa, dzień i godzina); w przypadku lekcji odwołanej z powodu nieobecności widnieje tam również powód, jeśli został podany. Tę zakładkę również można wyeksportować do CSV / XLSX (zob. [Statystyki nauczycieli](#page-dashboard.teachers)). #### Historia w module Administracja W module Administracja zarówno szczegóły **ucznia**, jak i szczegóły **nauczyciela** podsumowują nieobecności danej osoby z roku szkolnego i oferują własny eksport tabeli — przydatne do indywidualnego monitorowania lub do rozmowy (z rodziną w przypadku ucznia, z zainteresowanym w przypadku nauczyciela). #### O czym należy pamiętać - Na ekranie i w statystykach liczą się wyłącznie nieobecności ze statusem **zaakceptowany**; te ze statusem **oczekujący**, **odrzucony** lub **przerwany** mają charakter jedynie informacyjny. - Powody i komentarze mogą być ukryte w zależności od roli osoby czytającej. #### Instrukcja — Przygotowanie eksportu do monitorowania 1. Proszę otworzyć odpowiednią zakładkę modułu Zarządzanie nieobecnościami. 2. Proszę wybrać okres do sprawdzenia. 3. W razie potrzeby proszę sprawdzić statusy i lekcje objęte nieobecnością. 4. Proszę kliknąć przycisk Tabela. 5. Proszę użyć wyeksportowanego pliku do kontroli wewnętrznych lub do dalszego przetwarzania. 6. Aby uzyskać **sumy i procent nieobecności** w przeliczeniu na ucznia, proszę otworzyć Panel zarządczy, zakładkę Uczniowie (por. [Statystyki uczniów i zasobów](#page-dashboard.students-resources)). #### Zobacz także - [Przegląd modułu Zarządzanie nieobecnościami](#page-absences.overview) - [Nieobecności klas i uczniów](#page-absences.class-and-student-absences) - [Zasady zastępstw](#page-absences.substitution-policies) - [Statystyki uczniów i zasobów](#page-dashboard.students-resources) --- ## 7. Obsada personelu ### 7.1 Przegląd modułu Obsada personelu *Source: `help/pl/staffing/overview.md` · id: staffing.overview · Audience: admin/staff · Options: staffing · SKU: omniscol/staffing-only · Updated: 2026-06-13* > **Option: Obsada personelu** Moduł **Obsada personelu** służy do planowania pracy personelu **według zadań**, a nie według lekcji: myśli się tu kategoriami „kto obsadza które stanowisko i kiedy”, a nie „kto czego uczy”. Uzupełnia dydaktyczne plany lekcji, gdy placówka musi zorganizować opiekę nad uczniami, dyżury, naukę pod nadzorem, egzaminy lub zajęcia opiekuńcze. #### Główny przypadek użycia: opieka nad uczniami i asystenci wychowawczy Moduł powstał w odpowiedzi na długoletnią potrzebę zespołów opieki nad uczniami: kierowników ds. wychowania, asystentów wychowawczych, opiekunów i pracowników, którzy w ciągu dnia obsadzają wiele stanowisk, niezależnie od lekcji. Przykłady: - nadzór nad korytarzami; - kontrola wejść i wyjść z placówki; - obsada portierni; - nadzór nad boiskiem w czasie przerw; - nadzór nad stołówką w porze obiadowej; - obsada nauki pod nadzorem i sali do nauki własnej; - prowadzenie lub nadzorowanie biblioteki, świetlicy albo przestrzeni do pracy; - towarzyszenie uczniom poza terenem placówki, na przykład przy wyjściu na zajęcia sportowe powierzonym wyłącznie osobom uprawnionym; - jednorazowa obsada przerw między lekcjami; - nadzór nad egzaminami, egzaminami wstępnymi lub dniami specjalnymi. Zadanie opisuje potrzebę obecności. Nie ma ono przedmiotu, programu nauczania ani obowiązkowej grupy uczniów, inaczej niż lekcja. Siatka jest często znacznie drobniejsza niż dydaktyczny plan lekcji: w opiece nad uczniami powszechny jest kwadrans. Potrzeba może się mocno zmieniać w ciągu dnia: 0 osób na boisku w czasie lekcji, 3 osoby w porze obiadowej, 1 osoba w bibliotece przez całe popołudnie. #### Ekrany modułu ##### Siatka Siatka dyżurów wyznacza ramy czasowe pracy personelu: dni robocze, przedziały czasowe — często drobniejsze niż siatka godzin zajęć dydaktycznych — oraz okresy roku, w których obowiązuje. Służy jako szablon pracy, zanim pojawią się nazwiska osób. Lokalizacje i odległości między nimi deklaruje się w tym samym miejscu: pozwalają sygnalizować przydziały niemożliwe do pogodzenia między odległymi miejscami. Zob. [Budowanie siatki dyżurów](#page-staffing.building-grids). ##### Przydziały Ekran Przydziały określa stanowiska lub zadania do obsadzenia: etykietę, wymaganą i pożądaną liczbę osób, priorytet, lokalizację, uprawniony personel oraz kompatybilności między zadaniami — na przykład dwa sąsiadujące korytarze, które ta sama osoba może obsadzić w spokojnym przedziale czasowym przy niedoborze personelu. Potrzeby mogą się różnić w każdym przedziale czasowym. Zob. [Definiowanie zadań do obsadzenia](#page-staffing.assignments). ##### Planer Planer przydziela członków personelu do rzeczywistych zadań tygodnia lub zakresu dat. Przydział odbywa się przez zaznaczanie, przenoszenie, duplikowanie i ręczną korektę. Nieobecności, niedostępności, konflikty i przydziały osób nieuprawnionych pojawiają się jako ostrzeżenia. Zob. [Przydzielanie personelu](#page-staffing.planner). ##### Grafik dyżurów Grafik dyżurów daje każdej osobie jej listę zadań albo jej tydzień w formie siatki. Można go wydrukować, wyeksportować lub udostępnić, zależnie od uprawnień i trybu przekazywania wybranego przez placówkę. Pokazuje sumy przydatne przy czytaniu tygodnia i zachowuje sygnały o nieobecności lub niedostępności. Zob. [Grafiki dyżurów](#page-staffing.roster). #### Co moduł sprawdza - dostępność osób; - zgłoszone nieobecności; - przydzielone obciążenie pracą; - personel uprawniony do każdego zadania; - konflikty z innymi zadaniami lub obecnościami; - spójność potrzeb w podziale na lokalizacje i przedziały czasowe, z uwzględnieniem odległości między lokalizacjami. Planowanie pracy personelu jest **ręczne**: siatka, ostrzeżenia i narzędzia korekty prowadzą przez każdy przydział, który pozostaje pod kontrolą osoby planującej. Omniscol nie rozmieszcza personelu automatycznie. #### Korzyść operacyjna Zysk wynika przede wszystkim z centralizacji: - wspólna siatka potrzeb zamiast odizolowanego arkusza kalkulacyjnego; - przydziały, które można zmieniać tydzień po tygodniu; - duplikowanie stabilnych tygodni; - nieobecności widoczne w planie pracy personelu; - grafiki dyżurów do wydruku lub do udostępnienia; - mniej uzgodnień tam i z powrotem między zespołem opieki nad uczniami, osobami przydzielonymi i administracją. W placówce liczącej tysiąc uczniów doświadczenia użytkowników wskazują na oszczędność około 20 godzin pracy administracyjnej tygodniowo. > „Wybraliśmy Omniscol, aby zdigitalizować zarządzanie grafikami > naszego działu opieki nad uczniami (plan pracy asystentów > wychowawczych). Rozwiązanie okazało się intuicyjne, kompletne i > doskonale dopasowane do naszych potrzeb. Każdy wyraźnie widzi, gdzie > jest przydzielony.” > > — Jeanne Weeber, zastępczyni dyrektora Collège Sévigné (założone w 1880 r.), Paryż #### Inne zastosowania - **Nadzór nad egzaminami**: sesje egzaminacyjne, matura, egzaminy wstępne, kilka dni, kilka sal, potrzeby osób nadzorujących w podziale na poszczególne części egzaminu. - **Nauka pod nadzorem i nauka własna**: stanowiska nadzoru zmienne zależnie od liczby oczekiwanych uczniów. - **Opieka w pedagogice Montessori i w aktywnych metodach nauczania**: aktywności lub warsztaty do obsadzenia bez narzucania struktury klasycznej lekcji. - **Grafiki animatorów i zadań**: świetlica środowiskowa, zajęcia pozalekcyjne, internat, grafik zorganizowany według powierzonych zadań. - **Opieka podczas wyjść**: wycieczka szkolna, wyjście dydaktyczne, zwiedzanie placówki. - **Jednorazowe obecności**: przyjmowanie rodziców, dzień otwarty, posiedzenie klasyfikacyjne. #### Różnica w stosunku do lekcji Lekcja ma przedmiot, grupę uczniów i wykwalifikowanego nauczyciela. Zadanie w module Obsada personelu ma **potrzebę obecności**: na tym stanowisku ktoś jest potrzebny, z odpowiednią dostępnością i, jeśli trzeba, z uprawnieniem do jego obsadzenia. Ta różnica wyjaśnia, dlaczego moduł działa na siatkach potrzeb, przydziałach osób i grafikach dyżurów, zamiast wychodzić od podziału przedmiot / klasa / nauczyciel. #### Zakres modułu Konto z modułem Obsada personelu obejmuje: - moduł Obsada personelu: siatki, zadania, planer, grafiki dyżurów; - moduł Zarządzanie nieobecnościami dla personelu, którego można przydzielać; - ekrany administracji niezbędne do obsługi kont i ról; - wyszukiwanie przekrojowe, zależnie od uprawnień konta. #### Rola *Personel* Rola **Personel** jest przeznaczona dla zespołów opieki nad uczniami (kierownicy ds. wychowania, asystenci wychowawczy, opiekunowie, woźni). Zależnie od uprawnień konta daje ona dostęp do modułu Obsada personelu, do własnego planu pracy i do nieobecności personelu, bez otwierania całej globalnej konfiguracji szkoły. Ten sam użytkownik może łączyć kilka ról: na przykład osoba ucząca i zaangażowana w aktywne metody nauczania może występować jednocześnie jako nauczyciel i jako członek personelu planowany według zadań. #### Zobacz także - [Budowanie siatki dyżurów](#page-staffing.building-grids) - [Definiowanie zadań do obsadzenia](#page-staffing.assignments) - [Przydzielanie personelu](#page-staffing.planner) - [Grafiki dyżurów](#page-staffing.roster) - [Przegląd modułu Zarządzanie nieobecnościami](#page-absences.overview) - [Obsada personelu](#page-glossary.staffing) - [Świetlica i nauka pod nadzorem (oświata)](#page-k12.study-halls) ### 7.2 Budowanie siatki dyżurów *Source: `help/pl/staffing/building-grids.md` · id: staffing.building-grids · Audience: admin/staff · Options: staffing · SKU: omniscol/staffing-only · Updated: 2026-06-26* > **Option: Obsada personelu** **Siatka dyżurów** wyznacza ramy czasowe pracy personelu: dni robocze, przedziały czasowe i okresy roku, w których obowiązuje. Ten krok wykonuje się **przed** wskazaniem osób — najpierw powstają ramy, zadania do obsadzenia opisuje się potem na ekranie Przydziały, a wypełnianie odbywa się w planerze. W połączeniu z potrzebami zadeklarowanymi na każdym zadaniu siatka odpowiada na pytania w rodzaju „ile osób ma być na boisku o 10.00?” albo „które przedziały czasowe zespół opieki nad uczniami ma obsadzić w tym tygodniu?”. #### Tworzenie siatki Zakładka Siatka modułu Obsada personelu pokazuje istniejące siatki i ich rozkład w roku. Dla każdej siatki należy podać: - **nazwę** — krótką i rozpoznawalną, na przykład `Tydzień standardowy`, `Egzaminy semestr 1`, `Ferie`; - **Dni robocze** — na przykład od poniedziałku do piątku dla tygodnia standardowego albo wybrane dni dla tygodnia egzaminacyjnego; - **Siatka godzin** — przedziały czasowe siatki, definiowane dowolnie. W opiece nad uczniami powszechny jest kwadrans, a przedziały te mogą być drobniejsze niż siatka godzin zajęć dydaktycznych. Przycisk Przydział siatek przypisuje następnie każdą siatkę do tygodni lub zakresów dat w roku, które dana siatka obejmuje. Przy pierwszym otwarciu proponowana jest pusta siatka. Aby utworzyć kolejną, proszę zduplikować istniejącą siatkę przyciskiem Duplikuj, zmienić jej nazwę i dostosować ją. #### Definiowanie zadań i ich potrzeb Same zadania — nazwa, liczba osób, lokalizacja, uprawniony personel — definiuje się na ekranie Przydziały: zob. [Definiowanie zadań do obsadzenia](#page-staffing.assignments). Dla każdego zadania edytor potrzeb określa potem, przedział po przedziale na siatce, ile osób jest oczekiwanych (0 = brak potrzeby). Potrzeba może się mocno różnić w zależności od godziny: 0 osób na boisku w czasie lekcji, 3 osoby w południe w stołówce, 1 osoba w bibliotece przez całe popołudnie. #### Lokalizacje i odległości Jeśli placówka ma kilka lokalizacji, proszę je zadeklarować wraz z odległościami w dolnej części ekranu Siatka. Zadanie umiejscowione w odległej lokalizacji wywołuje ostrzeżenie, gdy ta sama osoba jest oczekiwana gdzie indziej bez wystarczającego czasu przejazdu. #### Kompatybilności przy niedoborze personelu Gdy dostępna obsada jest mniejsza od idealnej (częsty przypadek: kaskada nieobecności, sesje egzaminacyjne), można zadeklarować **kompatybilności** między sąsiadującymi zadaniami: ta sama osoba może wtedy obsadzić dwa zadania równolegle. Typowy przykład: `korytarz 2` + `korytarz 3` można połączyć — ta sama osoba może nadzorować oba. Deklaruje się to na zadaniu, na ekranie Przydziały, aby ukierunkować decyzje przydziału. Nie należy deklarować kompatybilności, aby trwale ukryć niedobór personelu. Kompatybilność musi odpowiadać sytuacji, którą placówka rzeczywiście akceptuje w praktyce. #### Szablony siatek Jeśli struktura planowania powtarza się co tydzień, można **zduplikować istniejącą siatkę**, aby ruszyć z gotowej podstawy. Powtarzające się przypadki: - **Tydzień standardowy** — siatka odniesienia (od początku do końca roku szkolnego). - **Tydzień ferii** — mniej zadań, mniejszy zespół. - **Tydzień egzaminacyjny** — nadzór w salach wykładowych oprócz zwykłych zadań. - **Dzień specjalny** — dni otwarte, wyjście, wydarzenie wewnętrzne, posiedzenie klasyfikacyjne lub szczególne przyjęcie gości. #### Sprawdzenie spójności przed przydziałem Przed przejściem do etapu przydziału warto użyć siatki jako operacyjnej listy kontrolnej: - czy zadania obejmują każdy istotny okres? - czy potrzeby są realistyczne w stosunku do dostępnego zespołu? - czy stanowiska w kilku lokalizacjach uwzględniają czasy przejazdu? - czy ograniczenia uprawnionego personelu odpowiadają osobom, które faktycznie mają do tego uprawnienia? - czy kompatybilności między zadaniami pozostają akceptowalne także przy niedoborze personelu? Po zatwierdzeniu siatki proszę przejść do etapu **przydziału**. Zob. [Przydzielanie personelu](#page-staffing.planner). #### Instrukcja — Budowanie siatki dyżurów 1. **Siatka dyżurów** opisuje ramy pracy personelu w ciągu roku: dni robocze, przedziały czasowe, lokalizacje. 2. **Proszę utworzyć siatkę.** Proszę nadać jej krótką nazwę (`Tydzień standardowy`), wybrać dni robocze, a następnie zdefiniować przedziały czasowe — zwykle kwadransowe dla asystentów wychowawczych. Można też zduplikować istniejącą siatkę, aby ruszyć z gotowej podstawy. 3. **Proszę rozłożyć siatkę na rok** za pomocą funkcji Przydział siatek: każda siatka obejmuje tygodnie lub zakresy dat, w których obowiązuje (tydzień standardowy, egzaminy, ferie). 4. **Proszę zadeklarować lokalizacje**, jeśli placówka ma ich kilka. Odległości między lokalizacjami pozwalają sygnalizować niezgodne przydziały. 5. **Proszę zapisać siatkę**, a następnie opisać zadania i ich potrzeby przedział po przedziale na ekranie Przydziały. Zob. [Definiowanie zadań do obsadzenia](#page-staffing.assignments). 6. **Następny etap: przydział personelu** w planerze. Zob. [Przydzielanie personelu](#page-staffing.planner). #### Zobacz także - [Przegląd modułu Obsada personelu](#page-staffing.overview) - [Definiowanie zadań do obsadzenia](#page-staffing.assignments) - [Przydzielanie personelu](#page-staffing.planner) ### 7.3 Definiowanie zadań do obsadzenia *Source: `help/pl/staffing/assignments.md` · id: staffing.assignments · Audience: admin/staff · Options: staffing · SKU: omniscol/staffing-only · Updated: 2026-06-13* > **Option: Obsada personelu** Ekran Przydziały służy do definiowania zadań lub stanowisk, które moduł Obsada personelu ma obsadzić. To etap konfiguracji: najpierw opisuje się potrzeby, a dopiero potem przydziela się osoby w [Planerze](#page-staffing.planner). **Przekazanie** personelowi następuje później, przez zakładkę Grafik dyżurów (zob. [Grafiki dyżurów](#page-staffing.roster)). #### Co opisuje zadanie Zadanie może określać: - czytelną etykietę: `Portiernia`, `Boisko`, `Stołówka`, `Nadzór nad egzaminem – aula A`; - minimalną wymaganą liczbę osób oraz liczbę idealną; - poziom priorytetu; - lokalizację lub miejsce; - konkretną listę członków personelu uprawnionych do jego realizacji (pusta = cały personel); - reguły kompatybilności z innymi zadaniami; - szczegółowe potrzeby dla każdego przedziału czasowego siatki dyżurów. Zadanie musi być na tyle precyzyjne, aby było zrozumiałe w Planerze i w grafiku dyżurów przekazywanym personelowi. Częste przykłady: - `Korytarz 2`; - `Portiernia – brama północna`; - `Boisko podczas przerw`; - `Stołówka`; - `Nauka pod nadzorem – sala B12`; - `Nadzór nad egzaminem – aula A`; - `Wyjście na WF – stadion miejski`. #### Potrzeby i uprawniony personel Potrzeby wskazują, ile osób ma obsadzić zadanie w każdym przedziale czasowym siatki dyżurów (0 = brak potrzeby), obok wymaganego minimum i idealnej liczby osób w samym zadaniu. Lista uprawnionego personelu zawęża grono osób, które można wybrać: proszę zachować ją dla stanowisk wymagających uprawnień albo szczególnych kompetencji — wyjście na zajęcia sportowe, nadzór o szczególnym charakterze, wyznaczone stanowisko w portierni, dostęp do lokalizacji. Te informacje nie pozwalają, by przydział zamienił się w zwykłą listę nazwisk: Omniscol zachowuje powiązanie między stanowiskiem, potrzebą i osobami uprawnionymi do jego obsadzenia. W przypadku zadania newralgicznego proszę ograniczyć uprawniony personel, zamiast polegać na ustnym poleceniu: Planer zgłosi wtedy każdy przydział osoby nieuprawnionej. #### Kompatybilności między zadaniami Niektóre bliskie sobie zadania może obsadzić ta sama osoba, jeśli placówka na to pozwala. Przykład: dwa sąsiadujące korytarze w spokojnym przedziale czasowym. Proszę deklarować te kompatybilności tylko wtedy, gdy odpowiadają rzeczywistej zasadzie obowiązującej w placówce. Zbyt szeroka kompatybilność czyni grafik mniej czytelnym i może ukryć niedobór osób. Przypadek do uniknięcia: łączenie odległych stanowisk tylko dlatego, że kogoś brakuje. #### Import i przeniesienie struktury Gdy wiele zadań już istnieje, ekran pozwala zaoszczędzić czas dzięki funkcjom importu i przeniesienia struktury dostępnym w module. Po imporcie proszę sprawdzić etykiety, potrzeby i uprawniony personel, zanim przejdzie się do Planera. Prawidłowo wykonany import powinien dać etykiety czytelne od razu dla osób, którym przydzielono zadania. Przy imporcie wewnętrznych kodów proszę zmienić ich nazwy przed przekazaniem. #### Dlaczego zadania i Planer są rozdzielone Rozdzielenie zapobiega mieszaniu dwóch decyzji: - **określenie potrzeby**: jakie stanowiska istnieją, gdzie i według jakich reguł; - **przydzielenie osób**: kto obsadza te stanowiska w danym tygodniu lub w danym okresie. Gdy struktura zmienia się niewiele, takie rozdzielenie pozwala ponownie wykorzystywać te same zadania i zmieniać wyłącznie osoby lub wyjątki. #### Instrukcja 1. Proszę otworzyć Obsada personelu > Przydziały. 2. Proszę utworzyć lub zaimportować zadania do obsadzenia. 3. Proszę sprawdzić etykiety widoczne dla zespołu. 4. Proszę wpisać potrzeby, lokalizacje i uprawniony personel. 5. Proszę zadeklarować wyłącznie rzeczywiście dopuszczone kompatybilności. 6. Proszę zapisać, a następnie otworzyć Planer, aby wskazać osoby. #### Zobacz także - [Budowanie siatki dyżurów](#page-staffing.building-grids) - [Przydzielanie personelu](#page-staffing.planner) - [Grafiki dyżurów](#page-staffing.roster) - [Przegląd modułu Obsada personelu](#page-staffing.overview) - [Przegląd modułu Zarządzanie nieobecnościami](#page-absences.overview) ### 7.4 Przydzielanie personelu *Source: `help/pl/staffing/planner.md` · id: staffing.planner · Audience: admin/staff · Options: staffing · SKU: omniscol/staffing-only · Updated: 2026-06-13* > **Option: Obsada personelu** Zakładka Planer służy do wskazania osób, które obsadzą zadania zdefiniowane w siatce dyżurów. To operacyjny ekran roboczy: wybrać tydzień, wypełnić komórki, poprawić alerty, a następnie zapisać. #### Przydział ręczny Dla każdego przedziału czasowego i każdego zadania proszę umieścić dostępnych członków personelu w odpowiedniej komórce. Omniscol sygnalizuje sytuacje wymagające sprawdzenia: - osoba nieobecna; - zadeklarowana niedostępność lub ograniczenie; - osoba już przydzielona w innym miejscu; - osoba nieuprawniona do danego zadania; - tygodniowe obciążenie wymagające uwagi. Planer jest zaprojektowany z myślą o rzeczywistych sytuacjach życia szkoły: asystenci wychowawczy w niepełnym wymiarze, których dostępność się zmienia, okresy egzaminów, nieobecności zgłoszone rano, stanowiska do szybkiego obsadzenia i zespoły, które trzeba obciążać sprawiedliwie. Planowanie jest **ręczne**: alerty, duplikowanie i narzędzia korekty prowadzą przez budowanie grafiku. Omniscol nie rozmieszcza personelu automatycznie. #### Czytanie alertów Kolory i podpowiedzi wskazują, dlaczego dany przydział wymaga sprawdzenia: nieobecność, niedostępność, inne zadanie w tym samym przedziale czasowym, osoba nieuprawniona lub przekroczenie godzin pracy. Podsumowanie tygodniowe pozwala wrócić do danej komórki. Alerty mają różną wagę: czerwony konflikt wymaga natychmiastowej korekty, a ostrzeżenie sygnalizuje sytuację do rozstrzygnięcia według zasad placówki. #### Narzędzia korekty Planer pozwala w szczególności: - nawigować po tygodniach i po dniach; - wyświetlić jeden dzień albo cały tydzień, zależnie od potrzeby; - zduplikować jeden tydzień na inny, gdy struktura się powtarza, filtrując w razie potrzeby kopiowane dni lub zadania; - włączyć tryb gumki, aby wyczyścić komórkę, wiersz lub kolumnę; - cofnąć niedawną korektę; - zapisać zmiany. Osoby zablokowane w danej komórce pozostają na miejscu przy kolejnych ręcznych korektach. #### Duplikowanie bez zaczynania od zera Gdy struktura jest stabilna, proszę zduplikować poprzedni tydzień, a następnie poprawić wyłącznie wyjątki: nieobecność, jednorazową niedostępność, zmianę egzaminu, wyjście albo zwiększoną potrzebę na stanowisku. To typowa metoda pozwalająca uniknąć ręcznego odtwarzania całego życia szkoły w każdym tygodniu. W przypadku tygodni nietypowych proszę użyć dopasowanej siatki: ferie, egzaminy, dni otwarte albo okres ze zmniejszonym zespołem. #### Nieobecności Nieobecności personelu zgłoszone w module Zarządzanie nieobecnościami są uwzględniane w przydziale. Osoba nieobecna może pojawić się jako alert na już obsadzonych zadaniach, co pozwala wskazać stanowiska do ponownego obsadzenia. Nieobecności uwidaczniają problem w odpowiednim miejscu: administrator albo koordynator przydziela wtedy zadanie ponownie, mając pełny obraz. #### Obciążenie pracą Planer wylicza informacje o pracy w rozbiciu na osobę i na dzień, w szczególności obsadzone okresy i czasy trwania. Proszę korzystać z tych wskazań, aby jedna osoba nie przyjmowała na siebie zbyt wielu przedziałów czasowych i aby uciążliwe zadania nie koncentrowały się wciąż na tym samym zespole. #### Udostępnianie Planer można udostępniać zgodnie z opcjami udostępniania dostępnymi na koncie. Aby przekazać każdej osobie jej indywidualny grafik, lepiej użyć [grafiku dyżurów](#page-staffing.roster), który jest czytelniejszy i przewidziany do wydruku lub rozesłania. #### Instrukcja 1. Proszę otworzyć Obsada personelu > Planer. 2. Proszę wybrać tydzień lub zakres do opracowania. 3. Proszę sprawdzić, czy aktywna jest właściwa siatka dyżurów. 4. Proszę przydzielić osoby do komórek. 5. Proszę obsłużyć alerty dostępności, nieobecności lub osoby nieuprawnionej. 6. Proszę zduplikować tydzień, jeśli struktura się powtarza. 7. Proszę zapisać, a następnie otworzyć grafik dyżurów do rozesłania. #### Zobacz także - [Budowanie siatki dyżurów](#page-staffing.building-grids) - [Definiowanie zadań do obsadzenia](#page-staffing.assignments) - [Grafiki dyżurów](#page-staffing.roster) - [Przegląd modułu Zarządzanie nieobecnościami](#page-absences.overview) ### 7.5 Tworzenie i udostępnianie grafików dyżurów *Source: `help/pl/staffing/roster.md` · id: staffing.roster · Audience: admin/staff · Options: staffing · SKU: omniscol/staffing-only · Updated: 2026-05-18* > **Option: Obsada personelu** Grafik dyżurów przedstawia zadania przydzielone jednej osobie albo całemu personelowi w wybranym okresie. Ten ekran służy do przekazania grafiku po zakończeniu pracy nad przydziałami. To ekran, który ma w prosty sposób odpowiedzieć na pytanie: „gdzie mam być, o której godzinie i do jakiego zadania?” #### Dwa widoki - **Widok listy**: zadania uporządkowane według dni i chronologicznie, z informacjami przydatnymi przy czytaniu indywidualnym. - **Widok siatki**: tydzień w formie tabeli, z przedziałami czasowymi w wierszach i dniami w kolumnach. Nieobecności, niedostępności i przydatne komentarze pozostają widoczne, aby nie przekazywać niespójnego grafiku. Widok listy pokazuje sumy dzienne i tygodniowe. #### Drukowanie i eksport Grafik dyżurów można wydrukować. Widok siatki oferuje dodatkowo eksport do czytelnej tabeli, z możliwością utworzenia pliku PDF w oknie eksportu. Zależnie od organizacji placówki grafik można: - wydrukować i wywiesić; - wyeksportować do pliku PDF; - przesłać pocztą elektroniczną poza Omniscolem; - udostępnić do bezpośredniego wglądu zalogowanemu personelowi; - udostępnić linkiem, gdy ta opcja jest używana na koncie. Drukowanie pozostaje częste w zespole opieki nad uczniami; ten sam ekran służy też do przygotowania imiennego pliku PDF, do przesłania widoku jednej osobie albo do umożliwienia personelowi wglądu we własny grafik ze swojego konta. #### Udostępnianie i kalendarz Udostępnianie może obejmować link internetowy i subskrypcję iCal, zależnie od dostępnych opcji. Podobnie jak przy innych linkach udostępniania, proszę ustawić datę wygaśnięcia dopasowaną do przekazywanego okresu. W przypadku przekazania imiennego proszę zawsze sprawdzić, czy wybrana osoba jest właściwa, przed wydrukowaniem, wyeksportowaniem lub udostępnieniem. #### Cały personel albo jedna osoba Można wyświetlić konkretną osobę albo cały personel. Widok indywidualny jest dostosowany do przekazania imiennego; widok ogólny służy raczej do kontroli wewnętrznej przed przekazaniem. #### Instrukcja 1. Proszę otworzyć Obsada personelu > Grafik dyżurów. 2. Proszę wybrać jedną osobę albo cały personel. 3. Proszę wskazać okres. 4. Proszę wybrać Widok listy albo Widok siatki. 5. Proszę sprawdzić nieobecności i ewentualne ostrzeżenia. 6. Proszę wydrukować, wyeksportować albo udostępnić zgodnie z przewidzianym sposobem przekazania. #### Zobacz także - [Przydzielanie personelu](#page-staffing.planner) - [Definiowanie zadań do obsadzenia](#page-staffing.assignments) - [Publiczne linki udostępniania](#page-glossary.share-link) --- ## 8. Administracja ### 8.1 Użytkownicy i role *Source: `help/pl/admin/users-and-roles.md` · id: admin.users-and-roles · Audience: admin · Updated: 2026-08-07* Administracja użytkowników obejmuje konta, które mogą logować się do Omniscol. Główne widoki to administratorzy, nauczyciele, uczniowie oraz — jeśli moduł Obsada personelu jest włączony — personel. #### Główne role | Rola techniczna | Etykieta w interfejsie | Zastosowanie | | --- | --- | --- | | `admin` | Administrator | Administrowanie kontem szkoły. | | `teacher` | Nauczyciel | Portal nauczyciela, dostępność, własny plan lekcji, własne nieobecności. | | `student` | Uczeń | Portal ucznia, własny plan lekcji, własne nieobecności. | | `staff` | Personel | Personel planowany w module Obsada personelu, jeśli jest włączony. | Jeden użytkownik może łączyć kilka ról. Menu pokazuje wtedy moduły odpowiadające sumie jego uprawnień. Rola techniczna `share` występuje przy niektórych podpisanych linkach. To nie jest zwykłe konto użytkownika: służy do otwarcia określonego zakresu, często tylko do odczytu, z adresu URL udostępniania. #### Dostępne ekrany - Administratorzy — konta administratorów. - Personel — personel placówki (jeśli moduł jest włączony). - Nauczyciele — nauczyciele i prowadzący zajęcia. - Uczniowie — uczniowie, studenci lub słuchacze, zależnie od terminologii placówki. - Wszyscy użytkownicy — zbiorczy widok wszystkich kont. #### Pola wspólne Formularz użytkownika obsługuje w szczególności: - imię, nazwisko i płeć; - data urodzenia; - e-mail i telefon; - identyfikator zewnętrzny / numer ewidencyjny; - identyfikator logowania, generowany zgodnie z ustawieniami konta; - role; - komentarz. Dodatkowe pola pojawiają się zależnie od roli: godziny pracy, przedmioty i status zewnętrzny dla nauczycieli; przypisania do klas i grup dla uczniów; ustawienia dyżurów dla personelu. #### Działania na liście Zależnie od wybranej roli ekran udostępnia: - Importuj dane — import lub modyfikacja masowa; - Zaproś użytkownika — wysyłanie zaproszeń; - Zmiana hasła — ustawianie haseł; - Wyślij e-mail — wysyłanie wiadomości; - Przypisz do klasy oraz Grupy — dla uczniów. Widoczne działania zależą od dostępnych API, typu konta oraz uprawnień zalogowanego użytkownika. > _Option: Role niestandardowe_ #### Role niestandardowe Opcja **Role niestandardowe** dodaje ograniczone role administracyjne dla kont administratorów. Pozwala wykluczyć wybrane moduły lub wybrane operacje dla konta, które ma administrować tylko częścią zakresu. Zob. [Role niestandardowe](#page-admin.customroles). Aby ograniczyć nie operacje, lecz dane — kampus, kierunek kształcenia, plan lekcji — ta sama opcja udostępnia [obszary](#page-admin.planning-domains), które przypisuje się do konta jak rolę i które się z nią sumują. #### Linki udostępniania Linki publiczne i podpisane udostępnienia niekoniecznie wymagają utworzenia konta użytkownika. Linki internetowe do planu lekcji są tylko do odczytu; niektóre linki ukierunkowane mogą jednak zezwalać na ograniczone działanie, na przykład na wprowadzenie dostępności nauczyciela do daty wygaśnięcia. #### Instrukcja — Zapraszanie grupy użytkowników 1. Proszę otworzyć ekran odpowiedni dla roli: nauczyciele, uczniowie, personel lub wszyscy użytkownicy. 2. Proszę zaznaczyć odpowiednie wiersze. 3. Proszę kliknąć przycisk Zaproś użytkownika. 4. Proszę sprawdzić, czy każdy użytkownik ma identyfikator logowania i adres e-mail. 5. Proszę wysłać zaproszenia. Użytkownicy ustawiają następnie swoje hasło przez otrzymany link. #### Zobacz także - [Architektura i role](#page-overview.architecture-and-roles) - [Zapraszanie i aktywowanie użytkowników](#page-getting-started.inviting-users) - [Role niestandardowe](#page-admin.customroles) - [Obszary](#page-admin.planning-domains) - [Zarządzanie członkami personelu](#page-admin.staff) ### 8.2 Zarządzanie administratorami *Source: `help/pl/admin/admins.md` · id: admin.admins · Audience: admin · Updated: 2026-08-07* Ekran **Administratorzy** to przefiltrowany widok użytkowników, którzy mają rolę administratora (tabela ról — zob. [Użytkownicy i role](#page-admin.users-and-roles)). Ta rola daje dostęp do operacji konfiguracyjnych szkoły: użytkownicy, plany lekcji, nieobecności, ustawienia, importy, eksporty i publikacja. #### Tworzenie administratora Proszę użyć przycisku Dodaj administratora na liście. Formularz jest taki sam jak dla użytkowników: - imię i nazwisko; - płeć; - e-mail i telefon, jeśli są potrzebne; - identyfikator zewnętrzny / numer ewidencyjny, jeśli szkoła go używa; - identyfikator logowania generowany zgodnie z ustawieniami konta; - rola administratora; - komentarz. Utworzone konto ma już identyfikator logowania. Aby włączyć dostęp dla tej osoby, proszę otworzyć jej kartę na liście użytkowników: można **ustawić hasło** (Hasło), **wysłać e-mail** (Wyślij e-mail) oraz **aktywować lub dezaktywować** konto (Aktywuj). Logowanie przez dostawcę tożsamości (SSO) pozostaje rozwiązaniem alternatywnym, zob. [OIDC / SSO](#page-integrations.oauth2). #### Łączenie kilku ról Jedno konto może mieć wiele ról. Koordynator może mieć jednocześnie dwie role: nauczyciel i administrator. Zachowuje wtedy swój portal nauczyciela, a dodatkowo ma dostęp do ekranów administracyjnych. Role niestandardowe pozwalają ograniczyć operacje, które administrator może wykonywać. Bez roli niestandardowej rola administratora pozostaje nieograniczona. Dane, na których administrator pracuje — kampus, kierunek kształcenia, plan lekcji — zawęża, obok przypisanych mu ról, [obszar planowania](#page-glossary.planning-domain). Zob. [Obszary](#page-admin.planning-domains). #### Odbieranie dostępu administratora Aby odebrać uprawnienia administracyjne, proszę otworzyć konto do edycji i usunąć rolę administratora. Nie należy tworzyć drugiego konta dla tej samej osoby, chyba że naprawdę nie ma innego wyjścia: łączenie ról na jednym użytkowniku jest przewidziane właśnie na takie przypadki. Przed zmianą uprawnień pozostałych administratorów należy zawsze zachować co najmniej jedno działające konto administratora. #### Instrukcja — Tworzenie administratora 1. Proszę otworzyć zakładkę Administratorzy. 2. Proszę kliknąć przycisk Dodaj administratora. 3. Proszę wpisać dane osobowe oraz adres e-mail, jeśli ta osoba ma otrzymać wiadomość, a następnie sprawdzić, czy rola administratora jest przypisana. 4. Proszę zapisać. Ze względów bezpieczeństwa utworzenie lub zmiana konta administratora zawsze wymaga podania **własnego** hasła administratora. 5. W razie potrzeby proszę wybrać konto na liście, aby **ustawić hasło**, **wysłać e-mail** lub **aktywować / dezaktywować** dostęp, w zależności od przyjętego sposobu wdrożenia. #### Zobacz także - [Użytkownicy i role](#page-admin.users-and-roles) - [Role niestandardowe](#page-admin.customroles) - [Obszary](#page-admin.planning-domains) - [OIDC / SSO](#page-integrations.oauth2) ### 8.3 Role niestandardowe w administracji *Source: `help/pl/admin/customroles.md` · id: admin.customroles · Audience: admin · Options: customroles · Updated: 2026-08-07* > **Option: Role niestandardowe** **Role niestandardowe** pozwalają ograniczyć uprawnienia konta administratora. Zasada polega na odejmowaniu: punktem wyjścia jest zakres administrowania, z którego następnie usuwa się moduły lub operacje, których dana osoba nie powinna móc używać. To opcja, którą należy włączyć, aby przekazać część administrowania bez nadawania wszystkich uprawnień globalnych. #### Dlaczego nie nadawać wszystkich uprawnień administracyjnych? Standardowa rola administratora daje pełne uprawnienia do konta szkoły. W przypadku wielu funkcji koordynacyjnych to za dużo: - koordynator nieobecności musi widzieć nieobecności i nimi zarządzać, ale nie modyfikować planów lekcji ani ustawień globalnych; - osoba zarządzająca planami lekcji musi je budować, niekoniecznie mając dostęp do importu i eksportu; - dział kadr może potrzebować modyfikować karty nauczycieli, nie ruszając kursów; - dział techniczny może przeglądać sale, panele informacyjne i zasoby, nie zarządzając użytkownikami. #### Co pozwala ustawić formularz Ekran **Role niestandardowe** udostępnia: - **nazwę roli**; - uprawnienia dla poszczególnych modułów; - uprawnienia dla poszczególnych operacji, zależnie od tego, co udostępnia dany moduł. Uprawnienia dotyczą modułów i ich operacji, a nie samych danych: rola niestandardowa nie ogranicza dostępu do konkretnej klasy, lokalizacji, przedmiotu czy okresu. Wyznacza granice tego, co dana osoba może robić, a nie danych, na których może pracować. #### Rola niestandardowa a obszar planowania Za dane odpowiada [obszar planowania](#page-glossary.planning-domain). Te dwa pojęcia odpowiadają na różne pytania i stosuje się je łącznie: - rola niestandardowa decyduje o tym, **jakie operacje** administrator wykonuje; - obszar decyduje o tym, **na jakich danych** je wykonuje — na jakich klasach, lokalizacjach, salach, przedmiotach i planach lekcji. Gdy koordynator ma zarządzać swoim kampusem, swoim kierunkiem kształcenia lub swoją placówką, nie ruszając tego, co należy do współpracowników, to właśnie obszar nakłada ograniczenie. Zob. [Obszary](#page-admin.planning-domains). #### Przypisywanie roli niestandardowej Po utworzeniu rola pojawia się na listach wyboru ról w kartach użytkowników. Przypisuje się ją do konta administratora tak jak każdą inną rolę. Jeden użytkownik może łączyć kilka ról standardowych i niestandardowych. Otrzymuje wtedy sumę pozostałych uprawnień. #### Typowe zastosowania - **Dział wychowawczy / opiekunowie** — uprawnienia do nieobecności, do modułu Obsada personelu oraz do podglądu planów lekcji, bez dostępu do konfiguracji. - **Koordynatorzy dydaktyczni** — uprawnienia do potrzebnych ekranów planów lekcji, bez ustawień globalnych. - **Dział techniczny** — dostęp do sal, paneli informacyjnych i zasobów, zależnie od dozwolonych operacji. - **Pracownicy administracyjni** — zarządzanie uczniami lub nauczycielami bez dostępu do wrażliwych ustawień. #### Możliwość audytu Działania wykonane z użyciem roli niestandardowej pojawiają się w dzienniku, jeśli opcja dziennika aktywności jest włączona, a dana trasa jest rejestrowana. Zob. [Dziennik aktywności (logi)](#page-admin.logs). #### Instrukcja — Tworzenie roli „Koordynator nieobecności” 1. Proszę otworzyć **Role niestandardowe** w module Administracja. 2. Proszę utworzyć rolę o nazwie `Koordynator nieobecności`. 3. Proszę zezwolić na niezbędne działania w module Zarządzanie nieobecnościami. 4. Proszę zachować podgląd planów lekcji, jeśli koordynator musi umiejscowić nieobecność w kontekście, ale odebrać prawo do modyfikacji. 5. Proszę wykluczyć moduły, które nie powinny być dostępne, w szczególności Zarządzanie planami lekcji, ustawienia globalne oraz import i eksport, jeśli nie należą do zakresu tej osoby. 6. Proszę zapisać, a następnie przypisać rolę odpowiednim kontom administratorów. 7. Jeśli dziennik aktywności jest włączony, proszę kontrolować działania na stronie [Dziennik aktywności (logi)](#page-admin.logs). #### Zobacz także - [Obszary](#page-admin.planning-domains) - [Użytkownicy i role](#page-admin.users-and-roles) - [Zarządzanie administratorami](#page-admin.admins) - [Ograniczenia widoczności](#page-admin.visibility-restrictions) - [Dziennik aktywności (logi)](#page-admin.logs) ### 8.4 Obszary planowania *Source: `help/pl/admin/planning-domains.md` · id: admin.planning-domains · Audience: admin · Plan: premium · Options: customroles · Updated: 2026-08-07* > **Premium · Option: Role niestandardowe** **Obszar planowania** nadaje administratorowi **zakres** — dane, którymi zarządza — oraz **uprawnienia** — działania, jakie może w nim wykonywać. Na koncie, które łączy w jednym planie lekcji kilka kampusów, kierunków kształcenia lub szkół, każdy planista pracuje w ten sposób na swojej części, nie gubiąc się w całości ani nie ruszając części współpracowników. Administrator może otrzymać jeden obszar lub kilka. Dopóki nie ma żadnego, zachowuje pełny dostęp do konta: obszary ograniczają te konta, które mają zostać ograniczone, pozostałe zostają bez zmian. #### Obszar czy rola niestandardowa? [Role niestandardowe](#page-admin.customroles) i obszary odpowiadają na dwa różne pytania i można je łączyć: - rola niestandardowa decyduje o tym, **jakie operacje** wykonuje administrator — w jakich modułach i czy jest to podgląd, modyfikacja czy usuwanie; - obszar decyduje o tym, **na jakich danych** je wykonuje — na jakich klasach, lokalizacjach, salach, przedmiotach i planach lekcji. Rola niestandardowa nie odróżnia jednej klasy od drugiej; obszar — owszem. Oba można nadać tej samej osobie: rola wyznacza granice operacji, obszar wyznacza granice terenu. Obszary włącza się na kontach Premium, tą samą opcją co role niestandardowe. #### Otwieranie obszarów Obszarami zarządza się z listy administratorów. W module Administracja proszę otworzyć **Użytkownicy**, zakładkę administratorów, a następnie Obszary. Wyłącznie administrator nieograniczony — taki, który sam nie ma żadnego obszaru — otwiera ten ekran i przypisuje obszary. Zarządzanie samymi kontami administratorów również pozostaje w jego rękach: planista ograniczony obszarem nie tworzy ani nie modyfikuje konta administratora. #### Zakres: jakie dane Zakres definiuje się w sekcji Filtr. Porządkują go wymiary, od najszerszego do najdrobniejszego: - **Kampus** i **Przedmioty** filtrują przekrojowo: obowiązują we wszystkim, czego dotyka planista, niezależnie od planu lekcji; - **plan lekcji**, a poniżej **lokalizacje** i podległe im **sale** oraz **klasy** i należące do nich **grupy**, odzwierciedlają strukturę każdego planu lekcji. Wymiar pozostawiony na **Wszystko** nie narzuca żadnego ograniczenia. Aby go zawęzić, proszę wybrać kryterium i wartość: - **Równe** — dokładna wartość (lokalizacja, poziom…); - **Zaczyna się od** — przedrostek, przydatny wtedy, gdy kody przedmiotów lub klas zawierają stopień studiów albo moduł (`LIC-`, `MOD-INF`…); - **Zawiera** — wartość występująca w nazwie. Kryteria liczbowe, takie jak pojemność sali, zastępują te warianty progami **≥** i **≤** — można więc powierzyć duże sale wykładowe wyznaczonemu planiście albo trzymać je poza obszarem. Każde kryterium odwraca się na **Wyklucz**, aby wykluczać zamiast obejmować. Przycisk **+** dodaje w tym samym wymiarze alternatywę („lub”) — kilka lokalizacji, kilka poziomów — a wymiary sumują się: lekcja wchodzi w zakres, gdy spełnia **wszystkie** zawężone wymiary. Każdy wymiar udostępnia odpowiadające mu kryteria: | Wymiar | Kryteria | | --- | --- | | Kampus | Nazwa | | Przedmioty | Nazwa, Kod, Typ lekcji, Rodzina | | Plan lekcji | Etykieta, Opublikowany, Data rozpoczęcia i Data zakończenia | | Lokalizacje | Nazwa | | Sale | Nazwa, Budynek, Specjalizacja, Etykiety, Pojemność | | Klasy | Nazwa, Poziom, Lokalizacja | | Grupy | Nazwa, Kod | Na górze filtra ikona oka otwiera Przegląd: Przegląd podaje liczbę objętych jednostek oraz próbkę, co pozwala sprawdzić zakres przed zapisaniem. Każdy wiersz ma własną ikonę, do kontroli pojedynczego wymiaru. #### Uprawnienia: jakie działania Sekcja Uprawnienia udostępnia dwa sposoby zastosowania zakresu: - **Ogranicz** — „Tylko dane objęte filtrem pozostają edytowalne, z uprawnieniami zaznaczonymi poniżej.” Planista przegląda wszystko, ale modyfikuje tylko swój zakres i tylko w granicach nadanych uprawnień. - **Ukryj** — „Filtr ustawia tylko widok: wszystkie uprawnienia pozostają przyznane.” Zakres odciąża widok, nic nie odbierając: przydaje się, aby skupić się na swoim kampusie, zachowując kontrolę nad całością. W trybie Ogranicz macierz uściśla uprawnienia. Zasada jest odejmująca, tak jak w rolach niestandardowych: domyślnie wszystko jest przyznane, a odznacza się to, czego obszar zabrania. Dwie tabele czyta się w kolumnach Modyfikacja, Tworzenie i Usuwanie: - **jednostki**: Ustawienia planów lekcji (tylko modyfikacja), Klasy, Nauczyciele, Sale, Przedmioty i Lokalizacje; - **Lekcje**: ich tworzenie, modyfikacja i usuwanie, a dalej, przy modyfikacji szczegółowej — pozycje na siatce godzin, nauczyciel, sala, tryb, link do wideokonferencji, status, czas trwania i komentarz lekcji. Sala, tryb i link do wideokonferencji dzielą jedno okno, ale pozostają trzema odrębnymi uprawnieniami: powierzenie wyboru trybu stacjonarnego albo zdalnego nie otwiera przypisywania sal. Odczyt natomiast pozostaje zawsze otwarty: obszar ogranicza to, co się zapisuje, nigdy to, co się widzi. #### Co widzi planista Planista widzi cały plan lekcji — to właśnie pozwala mu wychwycić konflikt między własnym zakresem a zakresem współpracownika — ale listy „klasy”, „sale” czy „przedmioty” pokazują tylko jego własne jednostki. Tam, gdzie elementy są odfiltrowane, wskazuje na to oznaczenie **Ukryte przez Pana/Pani obszary**, które po kliknięciu wyszczególnia, co zostało ukryte i przez który obszar. To bezpośrednia odpowiedź na „nie widzę tej sali”: informacja jest na ekranie. Jeśli działanie wychodzi poza zakres, Omniscol je odrzuca i wyjaśnia dlaczego: filtrowaniu widoku towarzyszy kontrola przy każdym zapisie. #### Na ekranie lekcji Element sterujący, którego zabrania uprawnienie, pozostaje **widoczny, ale nieaktywny** i nigdy nie zostaje ukryty: planista widzi, że funkcja istnieje, i wie, czego się trzymać. Dotyczy to każdego miejsca, w którym modyfikuje się lekcję — siatki godzin, karty lekcji i widoku tabelarycznego. Menu Akcje podlega tej samej regule, działanie po działaniu: masowe usuwanie sal zależy od uprawnienia do pola „sala”, „automatyczny przydział” — od uprawnienia do tworzenia, a „usunąć wszystkie lekcje” — od uprawnienia do usuwania. Działanie masowe obejmuje przy tym tylko lekcje z zakresu: zaznaczenie, które go przekracza, zostaje **przycięte**, a nie odrzucone w całości, i planista jest o tym powiadamiany. ##### Generowanie planu lekcji Generowanie wymaga własnego uprawnienia: wielu delegowanych planistów zarządza swoimi lekcjami, nie uruchamiając nigdy generowania. Gdy uprawnienie jest nadane, zasięg obliczeń jest **ograniczony do zakresu** — planista może go zawęzić bardziej, nigdy rozszerzyć. To właśnie sprawia, że wynik daje się zastosować: bez tego generowanie, które przeniosłoby lekcję poza zakres, zostałoby odrzucone przy zapisie i cała praca przepadłaby. Ustawienia generowania stanowią wyjątek od jednej reguły: zapisują się z uprawnieniem do generowania, nawet jeśli uprawnienie „ustawienia planów lekcji” nie zostało nadane. ##### Import tabeli lekcji Kolumny, których planista nie ma prawa modyfikować, wyświetlają się tylko do odczytu: czyta dane, ale ich nie zmienia. Klasa, przedmiot i grupa stanowią wyjątek, bo nie są zwykłymi polami: opróżnienie jednego z nich usuwa lekcję, a zmiana przenosi ją w inne miejsce. Te trzy kolumny otwierają się więc tylko wtedy, gdy nadane są razem uprawnienia do tworzenia, modyfikacji **i** usuwania. Jeśli wiersz wychodzi poza zakres, cały import zostaje odrzucony, a wiersze, które to spowodowały, zostają wskazane. Omniscol nigdy nie wysyła niczego innego niż to, co zostało wprowadzone: lepsza wyraźna odmowa niż import po cichu okrojony. #### Przypisywanie obszaru Obszar przypisuje się z karty administratora, tak jak rolę. Można przypisać ich kilka: planista łączy wtedy zakresy, każdy z własnymi uprawnieniami. Obszary sumują się, nie zlewając się w jeden — działanie jest dozwolone, gdy obejmuje je choćby jeden obszar. Tworzenie, duplikowanie i usuwanie obszaru odbywa się na tym samym ekranie: Dodaj dodaje obszar, Zapisz zapisuje. #### Instrukcja — Tworzenie obszaru „Kampus Kraków” 1. Proszę otworzyć moduł Administracja → **Użytkownicy**, zakładkę administratorów, a następnie Obszary. 2. Dodaj, a następnie proszę nazwać obszar „Kampus Kraków”. 3. W sekcji Filtr, na wymiarze Kampus, proszę wybrać Równe i wartość kampusu. Pozostałe wymiary proszę pozostawić na Wszystko. 4. Proszę sprawdzić pokrycie ikoną oka Przegląd. 5. Proszę zachować tryb Ogranicz. W macierzy proszę odznaczyć to, czego ten planista nie powinien robić — na przykład usuwanie klas. 6. Proszę zapisać przyciskiem Zapisz. 7. Proszę przypisać obszar odpowiedniemu kontu administratora z jego karty. #### Zobacz także - [Role niestandardowe](#page-admin.customroles) - [Użytkownicy i role](#page-admin.users-and-roles) - [Zarządzanie administratorami](#page-admin.admins) - [Ograniczenia widoczności](#page-admin.visibility-restrictions) ### 8.5 Zarządzanie nauczycielami *Source: `help/pl/admin/teachers.md` · id: admin.teachers · Audience: admin · Updated: 2026-05-15* Ekran **Nauczyciele** zawiera listę użytkowników, którzy mają rolę nauczyciel. W zależności od kontekstu placówki mówi się też o wykładowcach, prowadzących zajęcia lub trenerach. Ten ekran służy do tworzenia kont oraz zarządzania ich danymi, przedmiotami i dostępnością, a także do przeglądania ich planu lekcji. #### Pola karty Karta nauczyciela zawiera pola wspólne dla wszystkich użytkowników oraz pola właściwe dla nauczycieli: - imię, nazwisko i płeć; - data urodzenia; - e-mail i telefon; - identyfikator zewnętrzny / numer ewidencyjny; - identyfikator logowania; - godziny pracy; - nauczane przedmioty; - status zewnętrzny dla nauczycieli zewnętrznych lub prowadzących zajęcia gościnnie; - dostępność i ograniczenia czasowe; - komentarz. Zakładka **Plan lekcji** zbiera pełny plan lekcji nauczyciela ze wszystkich lat szkolnych, ze skonsolidowaną dostępnością w tle. To widok tylko do przeglądania: przydziały dydaktyczne wykonuje się w planach lekcji. Z karty przycisk **Udostępnianie** otwiera ekran udostępniania, który daje między innymi subskrypcję iCal właściwą dla danego nauczyciela, obowiązującą we wszystkich latach szkolnych. #### Nauczane przedmioty Przedmioty przypisane do nauczyciela służą do filtrowania lub przygotowania przydziałów. Wybiera się je z bazy przedmiotów oficjalnych lub niestandardowych. #### Dostępność Zakładka **Dostępność** pozwala administratorowi wpisać lub poprawić dostępność nauczyciela. W zależności od ustawień szkoły wpisywanie odbywa się w trybie tygodniowym, kalendarzowym, mieszanym albo jest wyłączone. Nauczyciel może również sam wpisać swoją dostępność ze swojego portalu, jeśli szkoła na to pozwala. #### Działania masowe Po zaznaczeniu nauczycieli na głównej liście można ich także zaprosić, ustawić im hasło lub wysłać im wiadomość, zależnie od funkcji włączonych dla konta. Wcześniej można ich przefiltrować. Przycisk **Importuj dane** otwiera tabelę w stylu arkusza kalkulacyjnego: dodaje się w niej, poprawia lub usuwa wielu nauczycieli jednocześnie i eksportuje się z niej listę. Dwie kolumny są w niej tylko do odczytu i służą wyłącznie do eksportu: - **Dostępność**: przedstawiona jako tekst, dokładnie w takiej postaci, w jakiej została zapisana; - **Klasy**: te, w których nauczyciel ma lekcje, skonsolidowane z opublikowanych planów lekcji roku bieżącego. > _Premium_ Nauczycieli można synchronizować z systemu zewnętrznego: Synchronizuj otwiera uzgadnianie z tym systemem. Zob. [Synchronizacja z systemami zewnętrznymi](#page-integrations.extsync). #### Instrukcja — Tworzenie nauczyciela 1. Proszę otworzyć Nauczyciele. 2. Proszę kliknąć Dodaj nauczyciela. 3. Proszę podać dane osobowe, adres e-mail, identyfikator logowania lub identyfikator zewnętrzny zgodnie z przyjętą zasadą wewnętrzną. 4. Proszę dodać nauczane przedmioty. 5. Proszę podać godziny pracy, jeśli szkoła z nich korzysta. 6. Proszę zapisać, a następnie zaprosić nauczyciela, jeśli ma się logować. #### Zobacz także - [Użytkownicy i role](#page-admin.users-and-roles) - [Zarządzanie uczniami](#page-admin.students) - [Zarządzanie przedmiotami](#page-admin.subjects) - [Dostępność nauczycieli](#page-core-concepts.wishes-and-availability) - [Nauczyciele zewnętrzni (prowadzący zajęcia gościnnie)](#page-higher-ed.external-faculty) ### 8.6 Zarządzanie uczniami *Source: `help/pl/admin/students.md` · id: admin.students · Audience: admin · Plan: standard · Updated: 2026-05-15* Ekran **Uczniowie** zawiera listę użytkowników, którzy mają rolę uczeń. W zależności od kontekstu placówki mówi się też o studentach lub słuchaczach. Ten ekran służy do tworzenia kont, śledzenia ich statusu oraz zarządzania przypisaniami do klas i grup, rok szkolny po roku szkolnym. #### Pola karty Karta ucznia zawiera pola wspólne dla wszystkich użytkowników: - imię, nazwisko i płeć; - data urodzenia; - e-mail i telefon; - identyfikator zewnętrzny / numer ewidencyjny; - identyfikator logowania; - komentarz. Przedstawiciele ustawowi, usprawiedliwienia i powiadomienia dla rodziców nie są polami tej karty. #### Przypisania do klas i grup Przypisaniami dydaktycznymi zarządza się w zakładce roku szkolnego na karcie ucznia. Pojedyncze przypisanie wskazuje w szczególności: - klasę główną; - dany rok szkolny; - daty początku i końca, jeśli przypisanie nie obejmuje całego roku; - grupy, w których uczeń się uczy, w razie potrzeby tydzień po tygodniu; - ewentualne nakładające się okresy do poprawienia. Uczeń może mieć w ciągu roku szkolnego kilka przypisań, na przykład po zmianie klasy, przy częściowym toku nauki albo przy częściowym powtarzaniu roku. #### Działania masowe Po zaznaczeniu uczniów na głównej liście można przypisać ich do klasy przyciskiem **Przypisz do klasy** lub do grup przyciskiem **Grupy** (jeśli należą do tej samej klasy), zaprosić ich, ustawić im hasło, wysłać im wiadomość, dezaktywować ich, gdy opuszczają placówkę, albo usunąć ich trwale. Wcześniej można ich przefiltrować, w szczególności według przypisanej klasy. Przycisk **Importuj dane** otwiera tabelę w stylu arkusza kalkulacyjnego: dodaje się w niej lub poprawia wielu uczniów jednocześnie i eksportuje się z niej listę (CSV, Excel, PDF). Dla każdego roku szkolnego dwie kolumny są w niej tylko do odczytu i służą wyłącznie do eksportu: - **Klasy**: klasa lub klasy, do których uczeń jest przypisany w roku bieżącym i w latach następnych; - **Grupy**: grupy, w których uczeń się uczy w roku bieżącym i w latach następnych. #### Powtarzanie roku i nauka poza tokiem Częściowe powtarzanie roku — uczeń, który uczęszcza na kursy rozłożone na dwa poziomy — obsługuje się, przypisując go do obu klas w tym samym okresie: jego plan lekcji łączy wtedy lekcje obu klas. Omniscol nie sprawdza, czy godziny tych klas na siebie nie nachodzą — należy to sprawdzić samodzielnie. #### Instrukcja — Tworzenie i przypisanie ucznia 1. Proszę otworzyć Uczniowie. 2. Proszę utworzyć ucznia albo zaimportować uczniów masowo. 3. Proszę otworzyć jego kartę, a następnie zakładkę danego roku szkolnego. 4. Proszę dodać klasę, sprawdzić daty, a następnie w razie potrzeby wybrać grupy, w których uczeń się uczy. 5. Proszę zapisać przypisania. 6. Proszę zaprosić ucznia, jeśli ma się logować do portalu. #### Zobacz także - [Użytkownicy i role](#page-admin.users-and-roles) - [Klasa, grupa, podgrupa](#page-core-concepts.classes-and-groups) - [Import i eksport](#page-admin.import-export) ### 8.7 Zarządzanie członkami personelu *Source: `help/pl/admin/staff.md` · id: admin.staff · Audience: admin · Options: staffing · SKU: omniscol/staffing-only · Updated: 2026-06-25* > **Option: Obsada personelu** Ekran **Personel** zawiera listę użytkowników, którzy mają rolę **Personel**. Pojawia się tylko na kontach z modułem **Obsada personelu**: to tutaj wprowadza się osoby (opiekunów, pracowników świetlicy, asystentów nauczyciela…), których pracę planuje się następnie w module [Obsada personelu](#page-staffing.overview). Ta zakładka służy do tworzenia kont oraz zarządzania danymi i godzinami pracy. **Przydzielanie zadań** (dyżury, opieka nad uczniami, nadzór nad egzaminami…) odbywa się natomiast w module Obsada personelu — zob. [Przydziały](#page-staffing.assignments). #### Pola karty Karta członka personelu zawiera pola wspólne dla każdego użytkownika oraz kilka pól właściwych dla personelu: - imię, nazwisko i płeć; - data urodzenia; - e-mail i telefon; - identyfikator zewnętrzny / numer ewidencyjny; - identyfikator logowania; - **godziny pracy** (wymiar odniesienia dla ewidencji); - role i komentarz. Z listy dostępna jest **karta szczegółowa** (Szczegóły), w której te informacje przegląda się i uzupełnia osoba po osobie. #### Członek personelu a moduł Obsada personelu Ten podział jest zamierzony: **tutaj** zarządza się *osobami* (ewidencją członków personelu), **w module [Obsada personelu](#page-staffing.overview)** — ich *planem pracy*: siatkami, zadaniami i przydziałami. Osoba utworzona na tym ekranie staje się dostępna do wyboru jako uprawniony członek personelu w [przydziałach](#page-staffing.assignments). #### Działania na liście Na liście przycisk Dodaj członka personelu dodaje jedną osobę, a Importuj dane otwiera **masowe** tworzenie lub poprawianie danych. Działania dla zaznaczonych osób pozwalają też wysyłać zaproszenia, ustawiać hasła, aktywować konta lub je usuwać, w zależności od dostępnych API. #### Instrukcja — Tworzenie członka personelu 1. Proszę otworzyć zakładkę Personel. 2. Proszę kliknąć przycisk Dodaj członka personelu. 3. Proszę wpisać dane osobowe, adres e-mail, identyfikator logowania lub identyfikator zewnętrzny, zgodnie z zasadą przyjętą w szkole. 4. Proszę wpisać **godziny pracy**, jeśli szkoła je prowadzi. 5. Proszę zapisać, a następnie wysłać zaproszenie, jeśli ta osoba ma się logować do swojego portalu. 6. Następnie proszę zaplanować jej zadania w module [Obsada personelu](#page-staffing.assignments). #### Zobacz także - [Użytkownicy i role](#page-admin.users-and-roles) - [Zarządzanie nauczycielami](#page-admin.teachers) - [Obsada personelu — przegląd](#page-staffing.overview) - [Przydziały](#page-staffing.assignments) - [Obsada personelu](#page-glossary.staffing) ### 8.8 Zarządzanie przedmiotami (oficjalnymi i niestandardowymi) *Source: `help/pl/admin/subjects.md` · id: admin.subjects · Audience: admin · Updated: 2026-05-14* Ekran **Przedmioty** służy do zarządzania przedmiotami niestandardowymi szkoły oraz, jeśli wspólna baza przedmiotów jest włączona, do wyszukiwania oficjalnych przedmiotów skonfigurowanego kraju. #### Przedmioty predefiniowane i niestandardowe - **Przedmioty predefiniowane** pochodzą z bazy przedmiotów Omniscol dla kraju szkoły. Można je wyszukiwać i dodawać, o ile ta baza nie została wyłączona. - **Przedmioty niestandardowe** należą do szkoły. Obejmują lokalne nazwy, moduły, przedmioty do wyboru lub jednostki kształcenia, których nie ma we wspólnej bazie przedmiotów. #### Pola przedmiotu niestandardowego | Pole | Wymagane? | Przeznaczenie | | --- | --- | --- | | **kod** | Tak | Krótkie oznaczenie przedmiotu, w parze z nazwą (która może być długa, zwłaszcza w szkolnictwie wyższym). Często jest to oficjalne odniesienie — na przykład kody przedmiotów ministerstw edukacji (Francja, Włochy) — zwykle składające się z wielkich liter i/lub cyfr. | | **nazwa** | Tak | Pełna etykieta przedmiotu, wyświetlana na listach wyboru kursów, w planie lekcji i w eksportach. | | **nazwa skrócona** | Nie | Skrócona etykieta do wyświetlania w planie lekcji, krótsza niż nazwa pełna. | | **przedmiot nadrzędny** | Nie | Przypisuje przedmiot do innego przedmiotu, co pozwala zbudować hierarchię przedmiotów. | | **rodzina** | Nie | Grupuje przedmioty. Lista wyboru podpowiada domyślne rodziny z bazy przedmiotów dla danego kraju oraz rodziny własne konta. | | **kolor** | Nie | Kolor do rozpoznawania wzrokowego. Przy tworzeniu wybiera się go z palety odcieni czytelnych na ekranie; w przeciwnym razie kolor jest wyliczany automatycznie na podstawie nazwy. | Kod i nazwa są wymagane przy tworzeniu. Nie należy zmieniać kodu, gdy służy już jako odniesienie w importach, eksportach lub wymianie danych z systemem zewnętrznym. #### Masowe tworzenie i modyfikacja Przycisk [table] otwiera **masowe** tworzenie i modyfikację przedmiotów niestandardowych: wiele przedmiotów wpisuje się lub zastępuje w jednej operacji, w tabeli w stylu arkusza kalkulacyjnego. Usunięcie wiersza z tabeli i zatwierdzenie usuwa odpowiedni przedmiot z katalogu: tabela zastępuje swoją treścią cały zestaw przedmiotów niestandardowych. W tej tabeli kolor przyjmuje dowolną wartość szesnastkową, bez palety odcieni proponowanej przy tworzeniu — co grozi mniej czytelnym wyświetlaniem. Przedmiot niestandardowy można usunąć, nawet jeśli był używany w dawnych lub opublikowanych planach lekcji. Dzięki temu katalog przedmiotów można porządkować z roku na rok bez ingerencji w te plany lekcji: każda klasa przechowuje lokalną kopię etykiety przedmiotu (nazwa, nazwa skrócona, kod), a plan lekcji zachowuje przypisany mu kolor. Przedmiot wyświetla się więc nadal po usunięciu go z katalogu. Zasadę kopii lokalnej opisuje [Pełny model danych](#page-integrations.data-model-full). > _Premium_ Jeśli synchronizacja z systemem zewnętrznym jest skonfigurowana, Synchronizuj otwiera uzgadnianie z tym systemem. Zob. [Synchronizacja z systemami zewnętrznymi](#page-integrations.extsync). #### Typy lekcji Ten sam ekran wyświetla też prostą listę typów lekcji. Zob. [Typy lekcji](#page-admin.lesson-types). > _Premium_ Typy lekcji można też synchronizować z systemu zewnętrznego: Synchronizuj otwiera uzgadnianie. Zob. [Synchronizacja z systemami zewnętrznymi](#page-integrations.extsync). #### Instrukcja — Dodawanie przedmiotu 1. Proszę otworzyć Przedmioty. 2. W przypadku przedmiotu predefiniowanego proszę skorzystać z wyszukiwania w bazie przedmiotów, jeśli jest dostępne. 3. W przypadku przedmiotu własnego placówki proszę kliknąć **Utwórz** za pomocą Utwórz. 4. Proszę wpisać kod i nazwę — oba są obowiązkowe — a następnie w razie potrzeby uzupełnić nazwę skróconą, rodzinę, przedmiot nadrzędny lub kolor. 5. Proszę zapisać. Przedmiot staje się dostępny na listach wyboru kursów i w kartach nauczycieli. #### Zobacz także - [Typy lekcji](#page-admin.lesson-types) - [Zarządzanie nauczycielami](#page-admin.teachers) - [Przedmiot](#page-glossary.subject) ### 8.9 Typy lekcji *Source: `help/pl/admin/lesson-types.md` · id: admin.lesson-types · Audience: admin · Updated: 2026-05-14* W module **Administracja** **typ lekcji** to krótka etykieta dołączana do lekcji, służąca do odróżniania form dydaktycznych, takich jak `Wykład`, `Ćwiczenia`, `Laboratorium`, `Egzamin` lub `Projekt`. Typy lekcji tworzą listę etykiet tekstowych, bez przypisanego koloru ani ikony. #### Gdzie się nimi zarządza Listą typów lekcji zarządza się z ekranu **Przedmioty** oraz z ekranu **Ustawienia**, w sekcji **Typ lekcji**. Służą do tego przyciski: - **Utwórz**, aby dodać nowy typ; - **Zapisz**, aby zapisać listę. Kolejność wyświetlania można zmienić, przeciągając pozycje i upuszczając je. #### Ustawienie „Obowiązkowy typ lekcji” Ustawienie Obowiązkowy typ lekcji konfiguruje się na ekranie **Ustawienia**. Gdy jest włączone, wprowadzenie kursu, czyli przedmiotu przypisanego do klasy w planie lekcji, musi zawierać typ. Jest to przydatne przy eksporcie lekcji do systemu ERP, który wymaga tej informacji. #### Dobre praktyki - Listę należy utrzymywać krótką i stabilną. - Należy unikać zmiany nazwy typu używanego produkcyjnie bez sprawdzenia importów i eksportów, które się na nim opierają. - Typów należy używać do rozróżniania form dydaktycznych, a nie do zastępowania przedmiotów ani trybu prowadzenia kursu (stacjonarny/zdalny). #### Instrukcja — Dodawanie typu 1. Proszę otworzyć ekran **Przedmioty**. 2. W sekcji **Typ lekcji** proszę kliknąć **Utwórz**. 3. Proszę wpisać etykietę typu. 4. W razie potrzeby proszę zmienić kolejność na liście. 5. Proszę zapisać przyciskiem **Zapisz**. #### Zobacz także - [Kursy, lekcje, typy lekcji](#page-core-concepts.lessons-and-types) - [Zarządzanie przedmiotami](#page-admin.subjects) ### 8.10 Rok szkolny i dni wolne *Source: `help/pl/admin/school-year.md` · id: admin.school-year · Audience: admin · Plan: standard · Updated: 2026-06-26* W module **Administracja** ekran **Lata szkolne** określa okresy, w których interpretowane są plany lekcji, dni wolne, nieobecności i przypisania uczniów. Używa się też nazwy rok akademicki. #### Tworzenie roku szkolnego Rok szkolny zawiera: - **nazwę**; - **datę rozpoczęcia**; - **datę zakończenia**. Przy tworzeniu roku Omniscol może zaproponować import dni wolnych obowiązujących w ustawionym kraju, jeśli dla wybranego przedziału dostępne są dane. Można odznaczyć te, które nie dotyczą szkoły. #### Bieżący rok szkolny Lista rozwijana **Bieżący rok szkolny** wskazuje rok wyświetlany domyślnie w aplikacji i na portalach. Zmiana tej wartości przestawia domyślny kontekst użytkowników. To również jedyny rok dostępny dla uczniów. Bieżący rok szkolny powinien wskazywać rok rzeczywiście używany w codziennej pracy. Przygotowanie następnego roku polega na utworzeniu nowego roku, a następnie na opracowaniu odpowiadających mu planów lekcji, bez zbyt wczesnego ustawiania go jako bieżącego roku szkolnego. #### Dni wolne Każdy rok szkolny zawiera listę dni wolnych: - nazwa; - data rozpoczęcia; - data zakończenia. Można dodawać je pojedynczo, modyfikować, usuwać albo zarządzać nimi w tabeli za pomocą **Tabela**. #### Tygodnie naprzemienne Jeśli tygodnie naprzemienne są włączone w ustawieniach ogólnych, ekran wyświetla oś tygodni, na której ustawia się naprzemienność w całym roku. Zapis następuje przyciskiem **Zapisz**. Format etykiet (`A, B, ...`, `1, 2, ...` lub wyłączony) ustawia się w ustawieniach ogólnych. **Przesunięcie przez dni wolne**: jeśli bezpośrednio przed dniami wolnymi obowiązywał tydzień A, a po nich ma nastąpić tydzień B, proszę kliknąć odpowiednie tygodnie na osi, aby utworzyć **wirtualne przesunięcie**. Naprzemienność zostaje wtedy dopasowana do dalszej części kalendarza. #### Instrukcja — Przygotowanie następnego roku 1. Proszę otworzyć ekran **Lata szkolne**. 2. Proszę utworzyć następny rok, podając jego nazwę, datę rozpoczęcia i datę zakończenia. 3. Proszę zaimportować lub wprowadzić dni wolne. 4. Proszę skonfigurować tygodnie naprzemienne, jeśli szkoła z nich korzysta. 5. Następnie proszę utworzyć lub zduplikować plany lekcji w module **Zarządzanie planami lekcji**. 6. Bieżący rok szkolny proszę zmienić dopiero wtedy, gdy użytkownicy mają domyślnie widzieć ten rok. #### Zobacz także - [Rok szkolny](#page-core-concepts.school-year) - [Rok szkolny](#page-glossary.school-year) - [Publikacja planu lekcji](#page-timetables.publication) - [Przygotowanie następnego roku szkolnego](#page-timetables.next-school-year) ### 8.11 Ustawienia ogólne szkoły *Source: `help/pl/admin/parameters.md` · id: admin.parameters · Audience: admin · Updated: 2026-05-14* W module **Administracja** ekran **Ustawienia** zawiera globalną konfigurację szkoły. Część ustawień obowiązuje od razu na całym koncie, a pozostałe służą jako wartość domyślna dla przyszłych planów lekcji. #### Główne ustawienia Ekran pozwala ustawić między innymi: - **nazwę szkoły**; - **strefę czasową**; - **bieżący rok szkolny**; - **poziomy klas** przyciskiem Utwórz; - **godziny otwarcia** dla kont, które korzystają z modułu Obsada personelu; - **tryb wprowadzania dostępności nauczycieli**; - **ograniczenie widoczności dla uczniów**; - **ograniczenie widoczności dla nauczycieli**; - **ograniczenie logowania według roli**; - **obsługę drugiego imienia**; - **zasadę zapisu imion i nazwisk wielkimi literami**; - **składnię loginu**; - **pierwszy dzień tygodnia**; - **format tygodni naprzemiennych**; - **obowiązkowy lub opcjonalny typ kursu**; - **włączenie lub wyłączenie przedmiotów predefiniowanych**; - **logo szkoły**. Limity kopii zapasowych ani okres przechowywania dzienników nie są zwykłymi ustawieniami tego ekranu. Omniscol włącza je lub dostosowuje zgodnie z umową danej szkoły. #### Poziomy **Poziomy** służą do porządkowania klas według postępu kształcenia: klasa 6, klasa 7, licencjat, magister, rok 1, rok 2 itd. Należą one do ustawień **ogólnych** konta. Z tego ekranu można je tworzyć, usuwać i zmieniać ich kolejność. Są następnie używane w klasach, w niektórych filtrach i w kilku widokach diagnostycznych. #### Ustawienia widoczności i logowania Ustawienia Ograniczenie przeglądania planów lekcji przez uczniów, Ograniczenie przeglądania planów lekcji przez nauczycieli oraz Ograniczenie logowania do aplikacji opisano na stronie [Ograniczenia widoczności](#page-admin.visibility-restrictions). #### Typy kursów i przedmioty predefiniowane Ustawienie Obowiązkowy typ lekcji decyduje o tym, czy przy wprowadzaniu kursu podanie typu jest wymagane. Ustawienie przedmiotów predefiniowanych reguluje dostęp do oficjalnego wykazu przedmiotów danego kraju. #### Logo Przesłane logo jest przechowywane na koncie i używane przez interfejs tam, gdzie przewiduje to kontekst, w szczególności na ekranach logowania i w aplikacji. #### Instrukcja — Konfigurowanie konta 1. Proszę otworzyć **Ustawienia**. 2. Proszę sprawdzić nazwę szkoły, strefę czasową i bieżący rok szkolny. 3. Proszę skonfigurować poziomy, pierwszy dzień tygodnia i tygodnie naprzemienne przed utworzeniem planów lekcji. 4. Proszę ustawić ograniczenia widoczności i logowania zgodnie z polityką szkoły. 5. Proszę zapisać ustawienia ogólne przyciskiem Zapisz. #### Zobacz także - [Konfigurowanie konta szkoły](#page-getting-started.setup-school) - [Rok szkolny i dni wolne](#page-admin.school-year) - [Zarządzanie przedmiotami](#page-admin.subjects) - [Ograniczenia widoczności](#page-admin.visibility-restrictions) - [Ustawienia zaawansowane i dostosowanie](#page-admin.advanced-parameters) ### 8.12 Ustawienia zaawansowane i dostosowanie *Source: `help/pl/admin/advanced-parameters.md` · id: admin.advanced-parameters · Audience: admin · Plan: premium · Updated: 2026-06-13* > **Premium** > _Premium_ W module **Administracja** ekran **Ustawienia** gromadzi na kontach Premium ustawienia **zaawansowane**, obok ustawień ogólnych. Ta strona opisuje właśnie te funkcje zaawansowane; ustawienia podstawowe omawia [Ustawienia ogólne szkoły](#page-admin.parameters). #### Kampusy **Kampusy** służą do porządkowania klas według organizacji wewnętrznej: filia, wydział, jednostka, kierunek kształcenia lub inny podział właściwy dla danej szkoły. To pojęcie jest **opcjonalne** i pozostaje niezależne od lokalizacji: lokalizacja to miejsce fizyczne, z własną siatką godzin, własnymi salami i czasami przejazdu, natomiast kampus jest wyłącznie logiczną warstwą organizacyjną. Kampus przydaje się przede wszystkim wtedy, gdy geografia nie pokrywa się dobrze z organizacją logiczną: kilka wydziałów w tych samych budynkach albo kilka szkół jednej grupy, które krzyżowo korzystają z kilku lokalizacji. Nawet gdy kampus i lokalizacja się pokrywają, ta warstwa może nadal być przydatna do filtrowania i grupowania. Przyciskiem **Utwórz** proszę tworzyć tylko te kampusy, które rzeczywiście pomagają porządkować pracę lub ją filtrować. Stają się one następnie dostępne na ekranach tworzenia klas oraz w niektórych filtrach diagnostycznych. #### Niestandardowe tłumaczenia i terminologia Ekran pozwala również **definiować niestandardowe tłumaczenia**, aby dostosować wyświetlane słownictwo do danej szkoły. Ta sekcja służy do zmiany etykiet widocznych w interfejsie, bez ingerencji w strukturę funkcjonalną produktu. Istnieją dwa odrębne mechanizmy: - Reguły zastępowania tłumaczeń: zastępują jeden termin innym w zbiorze etykiet; - Przedefiniowanie tłumaczeń: zastępuje bezpośrednio wartość jednego konkretnego tłumaczenia. ##### Reguły zastępowania Reguły zastępowania służą do ujednolicenia słownictwa w wielu etykietach jednocześnie. Typowe przykłady: - zastąpienie `Nauczyciel` słowem `Wykładowca`; - zastąpienie `Uczeń` słowem `Student`; - dostosowanie wybranych terminów do kultury danej szkoły. Reguły są **uporządkowane**. Kolejność ma znaczenie: reguła umieszczona wyżej jest stosowana przed następnymi. Ekran pozwala: - wpisać tekst źródłowy i tekst docelowy, a następnie zatwierdzić przyciskiem **Dodaj**; - wyświetlić podgląd etykiet, których dotyczy reguła; - zmienić kolejność reguł; - usunąć regułę. Dostępne opcje precyzują rodzaj zastąpienia: - `Aa`: rozróżnianie wielkości liter; - podkreślone `ab`: pełne dopasowanie; - `.*`: wyrażenie regularne. Reguł należy używać wtedy, gdy trzeba spójnie zmienić dany termin na wielu ekranach. Reguły zapisują się **we własnej sekcji**: dodanie, usunięcie i zmiana kolejności są zapisywane niezależnie od pozostałych ustawień na tej stronie. ##### Przedefiniowanie całych kluczy Przedefiniowanie całych kluczy służy do poprawienia lub przeredagowania etykiety **w pojedynczych przypadkach**. Ekran pozwala: - wyszukać istniejące tłumaczenie; - dodać je do listy przedefiniowań; - wpisać własną wersję; - zapisać lub usunąć to przedefiniowanie. Tego trybu należy użyć, gdy reguła ogólna byłaby zbyt szeroka albo gdy zamiast jednego terminu trzeba przeredagować całe zdanie. Każde przedefiniowanie klucza zapisuje się **wiersz po wierszu**, własnym przyciskiem zapisu lub usunięcia. ##### Właściwe użycie Reguły i przedefiniowania służą do dostosowania **wyświetlanego słownictwa**. Nie zmieniają ani pojęć leżących u podstaw produktu, ani identyfikatorów wewnętrznych, ani zachowania aplikacji. Zaleca się wybrać: - **regułę** przy powtarzalnej zmianie nazwy; - **przedefiniowanie klucza** przy lokalnym wyjątku lub całej etykiecie. Należy unikać zastąpień zbyt szerokich lub niejednoznacznych, które sprawiłyby, że pomoc, wyszukiwanie lub terminologia stałyby się niespójne pomiędzy poszczególnymi ekranami. #### Instrukcja 1. Proszę otworzyć **Ustawienia** w module **Administracja**. 2. Proszę znaleźć sekcję zaawansowaną odpowiadającą danej potrzebie: kampusy albo niestandardowe tłumaczenia. 3. W przypadku kampusów proszę utworzyć i uporządkować nazwy przydatne w danej organizacji. 4. W przypadku tłumaczeń proszę wybrać między regułą globalną a punktowym przedefiniowaniem, w zależności od zakresu zmiany. 5. Proszę zapisać każdą sekcję jej własnym mechanizmem: reguły są zapisywane w swoim bloku, a przedefiniowania kluczy zatwierdza się wiersz po wierszu. #### Zobacz także - [Ustawienia ogólne szkoły](#page-admin.parameters) - [Ograniczenia widoczności](#page-admin.visibility-restrictions) - [Kampus](#page-glossary.campus) - [Konflikty i diagnostyka](#page-timetables.conflicts) ### 8.13 Ograniczenia widoczności i logowania *Source: `help/pl/admin/visibility-restrictions.md` · id: admin.visibility-restrictions · Audience: admin · Plan: standard · Updated: 2026-05-14* W module **Administracja** ekran **Ustawienia** gromadzi kilka ukierunkowanych ograniczeń: horyzont przeglądania dla uczniów, ukrywanie planów lekcji między nauczycielami oraz blokowanie logowania według roli. #### Ograniczenie po stronie uczniów Ustawienie Ograniczenie przeglądania planów lekcji przez uczniów określa liczbę przyszłych tygodni, włącznie z tygodniem bieżącym, przez które opublikowane plany lekcji pozostają widoczne dla uczniów. Można ustawić liczbę tygodni albo wartość **Bez limitu**. Ograniczenie to dotyczy okna czasowego otwartego dla uczniów: każdy z nich przegląda opublikowane plany lekcji do wybranego horyzontu. #### Ograniczenie po stronie nauczycieli Ustawienie Ograniczenie przeglądania planów lekcji przez nauczycieli ukrywa plany lekcji innych nauczycieli. Oddziałuje ono na filtry i widoki przeglądania: każdy nauczyciel widzi własny plan lekcji, ale nie ma dostępu do planów swoich kolegów. #### Ograniczenie logowania Ustawienie Ograniczenie logowania do aplikacji blokuje logowanie wybranych profili: **Nauczyciele**, **Personel** lub **Uczniowie**. Użytkownik, który łączy kilka ról, może się zalogować, dopóki co najmniej jedna z jego ról pozostaje dozwolona. #### Instrukcja — Ograniczanie widoczności dla uczniów 1. Proszę otworzyć ekran **Ustawienia**. 2. Proszę znaleźć ustawienie Ograniczenie przeglądania planów lekcji przez uczniów. 3. Proszę wybrać **Bez limitu** albo liczbę tygodni. 4. Proszę zatwierdzić przyciskiem **Zapisz**. #### Zobacz także - [Ustawienia ogólne](#page-admin.parameters) - [Użytkownicy i role](#page-admin.users-and-roles) - [Portal ucznia](#page-portal.student-portal) - [Portal nauczyciela](#page-portal.teacher-portal) ### 8.14 Import i eksport *Source: `help/pl/admin/import-export.md` · id: admin.import-export · Audience: admin · Updated: 2026-06-03* W module **Administracja** ekran **Import/Eksport** zbiera operacje przenoszenia danych konta: eksport JSON, wymianę plików aSc, punkty kopii zapasowych, synchronizację z systemami zewnętrznymi oraz opcje API włączone na koncie. W zależności od kraju mogą być też dostępne wymiany oparte na standardowych protokołach. W przypadku szkół podlegających francuskiemu ministerstwu edukacji wymiany specyficzne dla Francji (STS, UnDeuxTemps, École Directe) są opisane w [admin.french-formats](#page-admin.french-formats). #### Eksport JSON Przycisk **Pobierz** uruchamia pełny eksport JSON konta. Ten plik zawiera dane konta i należy go traktować jak wrażliwą kopię zapasową. Eksport JSON jest dostępny dla wszystkich administratorów. Aby ograniczyć do niego dostęp, potrzebna jest opcja [Role niestandardowe](#page-admin.customroles). #### Import JSON Pełny import JSON korzysta z tego samego formatu co eksport. Pozostaje zarezerwowany dla zespołu Omniscol w ramach wsparcia: ponowne wczytanie danych odbywa się na wniosek tego zespołu, a nie jako zwykła operacja na ekranie administracyjnym. W celu przywrócenia konta proszę przede wszystkim korzystać z punktów kopii zapasowych, jeśli są włączone, lub skontaktować się z Omniscol, gdy ponowne wczytanie pliku JSON jest konieczne. Przed każdym importem niszczącym dane proszę utworzyć punkt kopii zapasowej, jeśli ta funkcja jest aktywna. #### aSc Timetables Ekran zawiera także sekcję aSc Timetables: - import pliku XML aSc; - eksport XML aSc z opcjami. Ta wymiana dotyczy kompletnego pliku aSc. Aby dodać kursy z arkusza kalkulacyjnego, proszę zamiast tego skorzystać z [Masowy import kursów z arkusza kalkulacyjnego](#page-timetables.mass-import). #### Punkty kopii zapasowych Jeśli **punkty kopii zapasowych** są włączone, przycisk **Punkty kopii zapasowych** otwiera zarządzanie nimi. Zob. [Punkty kopii zapasowych](#page-admin.snapshots). #### Synchronizacja z systemami zewnętrznymi i opcje API > _Premium_ Ekran udostępnia także: - konfigurację synchronizacji z systemami zewnętrznymi za pomocą **Konfiguruj**; - udostępnianie globalne / OpenAPI; - ustawienia API; - konfigurację MCP; - zarządzanie OAuth2 / OIDC. #### Instrukcja — Eksport konta 1. Proszę otworzyć **Import/Eksport**. 2. Proszę kliknąć **Pobierz**. 3. Proszę przechowywać plik w bezpiecznym miejscu. 4. Jeśli planowana jest ryzykowna operacja, proszę oprócz eksportu utworzyć punkt kopii zapasowej. #### Zobacz także - [Przygotowanie danych do importu masowego](#page-getting-started.preparing-data) - [Masowy import kursów z arkusza kalkulacyjnego](#page-timetables.mass-import) - [Punkty kopii zapasowych](#page-admin.snapshots) - [Przegląd](#page-migration.overview) - [Synchronizacja z systemami zewnętrznymi](#page-integrations.extsync) - [admin.french-formats](#page-admin.french-formats) ### 8.15 Punkty kopii zapasowych *Source: `help/pl/admin/snapshots.md` · id: admin.snapshots · Audience: admin · Plan: premium · Feature: snapshots · Updated: 2026-05-15* > **Premium** > _Premium_ **Punkt kopii zapasowej**, czyli *snapshot*, to migawka konta Omniscol. Funkcja jest dostępna tylko wtedy, gdy zespół Omniscol włączył dla konta limit punktów kopii zapasowych, zgodnie z umową szkoły. Limit ustala się z Omniscol odpowiednio do potrzeb szkoły (kopie ręczne, automatyzacje, oczekiwany okres przechowywania) i można go dostosować na życzenie. Administrator nie ustawia go bezpośrednio z tego ekranu. #### Otwieranie punktów kopii zapasowych W module **Administracja** proszę otworzyć **Import/Eksport**, a następnie kliknąć **Punkty kopii zapasowych**. Ekran wymienia istniejące punkty kopii zapasowych, wykorzystany limit oraz, gdy jest dostępny, **digest** zawartości: liczby użytkowników, lat szkolnych, paneli informacyjnych, wydarzeń, planów lekcji i najważniejsze liczniki danych. #### Dostępne działania Zależnie od uprawnień można: - utworzyć punkt kopii zapasowej za pomocą **Utwórz**; - wyeksportować punkt kopii zapasowej do formatu JSON za pomocą **Pobierz**; - usunąć punkt kopii zapasowej za pomocą **Usuń**; - zablokować punkt kopii zapasowej, aby zapobiec jego usunięciu; - ustawić lub zmienić datę wygaśnięcia; - przejrzeć digest, aby szybko rozpoznać zawartość punktu kopii zapasowej; - przywrócić punkt kopii zapasowej (w całości lub częściowo) za pomocą **Przywróć**. Punkty kopii zapasowych przechowywane są w replikowanej pamięci masowej. Każdy punkt kopii zapasowej można wyeksportować do formatu JSON, aby przeanalizować go lub porównać własnymi narzędziami. #### Przywracanie Przywracanie wymaga wyraźnego potwierdzenia. Ekran udostępnia trzy tryby, zależnie od wybranych rodzin danych: - **Nadpisz dane**: wybrane dane zostają zastąpione stanem z punktu kopii zapasowej. To tryb powrotu do wcześniejszego stanu; - **Przywróć tylko usunięte dane**: Omniscol wczytuje ponownie wyłącznie brakujące elementy, jeśli tryb jest obsługiwany, na przykład po przypadkowym usunięciu użytkowników; - **Przywróć bez nadpisywania**: Omniscol przywraca dane w postaci kopii, jeśli jest to obsługiwane, aby można je było porównać lub ręcznie scalić bez zastępowania obecnego stanu — na przykład gdy plan lekcji odbiegł od zapisanego stanu, a to, co zrobiono od chwili utworzenia punktu kopii zapasowej, ma zostać zachowane. Mogą więc powstać duplikaty. Przywracanie może obejmować całe konto albo jego podzbiory, takie jak plany lekcji, wydarzenia, panele informacyjne, nieobecności, użytkowników, przedmioty, lata szkolne czy konfigurację. #### Automatyzacje Przycisk **Automatyzacja** pozwala skonfigurować automatyczne tworzenie punktów kopii zapasowych. Częstotliwość zależy od przyjętej konfiguracji konta: codziennie, co tydzień, w środku nocy — zasady odpowiednie dla własnej szkoły ustala się samodzielnie. Okresem przechowywania sterują daty wygaśnięcia i blokada: - wygasły punkt kopii zapasowej może zostać usunięty automatycznie, o ile nie jest zablokowany; - zablokowany punkt kopii zapasowej jest chroniony przed ręcznym usunięciem i przed automatycznym czyszczeniem; - gdy automatyczna kopia zapasowa ma się zmieścić w limicie, który już został osiągnięty, Omniscol usuwa najstarszy niezablokowany automatyczny punkt kopii zapasowej, aby zrobić miejsce. Jeśli żadnego punktu kopii zapasowej nie można usunąć (wszystkie są zablokowane), utworzenie nowej kopii kończy się niepowodzeniem. Daje to historię kopii zapasowych zbliżoną do Time Machine w środowisku Apple: przydaje się, aby wrócić do wcześniejszego stanu, odzyskać dane usunięte przez pomyłkę lub przywrócić kopię na potrzeby porównania. Historia pozostaje jednak ograniczona limitem ustalonym z Omniscol, który można dostosować na życzenie. #### Co ustalić przed włączeniem Przed włączeniem lub rozszerzeniem opcji proszę ustalić z Omniscol: - limit punktów kopii zapasowych i oczekiwany zapas na ręczne kopie zapasowe; - częstotliwość automatycznych kopii zapasowych, którą zamierza się skonfigurować; - oczekiwany okres przechowywania; - rodziny danych objęte częściowym przywracaniem; - oczekiwany format eksportu do kontroli zewnętrznych. Każdy punkt kopii zapasowej można wyeksportować do formatu JSON. #### Instrukcja — Tworzenie punktu kopii zapasowej przed ryzykowną operacją 1. Proszę otworzyć **Import/Eksport**. 2. Proszę kliknąć **Punkty kopii zapasowych**. 3. Proszę kliknąć **Utwórz**. 4. Proszę sprawdzić, czy nowy punkt kopii zapasowej pojawił się na liście. 5. Następnie proszę uruchomić zaplanowany import, reorganizację lub zmianę konfiguracji. W razie poważnego problemu będzie można wrócić do wcześniejszego stanu. #### Zobacz także - [Import i eksport](#page-admin.import-export) - [Dziennik aktywności (logi)](#page-admin.logs) ### 8.16 Dziennik aktywności (logi) *Source: `help/pl/admin/logs.md` · id: admin.logs · Audience: admin · Feature: logs · Updated: 2026-05-15* > **Premium** W module **Administracja** ekran **Dziennik aktywności** pokazuje wpisy dziennika dostępne dla konta, gdy opcja logów jest włączona. Okres przechowywania ustala się z zespołem Omniscol zgodnie z umową szkoły i można go dostosować na życzenie. Ten ekran służy do przeglądania i eksportowania zapisów obecnych w strumieniu logów. #### Co jest rejestrowane Dziennik odnotowuje działania, które zmieniają konto, a nie każde przeglądanie danych. - **Każda zmiana** danych (karta użytkownika, plan lekcji, ustawienia…) — utworzenie, aktualizacja lub usunięcie — tworzy wpis z autorem, wykonanym działaniem i znacznikiem czasu. - **Logowania** — każda próba logowania zapisuje użyty identyfikator. - **Operacje na hasłach** — ustawienie, zmiana, usunięcie lub zresetowanie są odnotowywane: działanie i jego autor, nigdy samo hasło. - **Eksporty** — eksport konta w formacie JSON jest rejestrowany. Samo przeglądanie (otwarcie ekranu, wyświetlenie listy danych) nie jest zapisywane, poza kilkoma wrażliwymi operacjami. Dziennik odpowiada więc na pytanie „kto co i kiedy zrobił”, a nie „kto co przeglądał”. #### Co pokazuje ekran Każdy wiersz może zawierać: - znacznik czasu; - wykonane działanie; - rozpoznaną trasę, jeśli jest znana; - zapisane parametry i dane dodatkowe; - metodę HTTP; - powiązany adres URL; - użytkownika, którego dotyczy wpis. Dokładna treść zależy od tego, co Omniscol zarejestrował: ekran odzwierciedla zapisy obecne w strumieniu logów konta. #### Wyszukiwanie i eksport Gdy lista zawiera wystarczająco dużo wpisów, lokalna wyszukiwarka pozwala filtrować tabelę. Przycisk **Znacznik czasu** otwiera widok wierszy gotowy do eksportu. #### Zakres dzienników - Każdy wiersz podaje wykonane działanie, trasę, parametry i użytkownika, którego dotyczy; szczegóły obejmują to, co Omniscol zarejestrował. - Okres przechowywania zależy od opcji włączonej na koncie oraz od okresowego czyszczenia logów. - Dzienniki przegląda się i eksportuje z tego ekranu; Omniscol nie przekazuje ich automatycznie do zewnętrznego narzędzia monitorującego. Aby dokładnie odtworzyć stan konta na dany dzień, proszę połączyć dzienniki z punktami kopii zapasowych. #### Co sprawdzić w umowie Okres przechowywania, obowiązki audytowe i oczekiwane eksporty wynikają z umowy oraz z dokumentów dotyczących bezpieczeństwa, udostępnianych na życzenie. Ta strona nie zastępuje tych dokumentów. #### Zobacz także - [Punkty kopii zapasowych](#page-admin.snapshots) - [Użytkownicy i role](#page-admin.users-and-roles) --- ## 9. Integracje ### 9.1 Przegląd integracji *Source: `help/pl/integrations/overview.md` · id: integrations.overview · Audience: admin · Updated: 2026-06-13* Omniscol integruje się z systemem informacyjnym szkoły na kilka sposobów, zależnie od potrzeb. Przykłady narzędzi zewnętrznych i partnerów regularnie podłączanych do Omniscol — zob. też [integrations.partners](#page-integrations.partners). #### Zestawienie zbiorcze | Mechanizm | Do czego służy | Kierunek przepływu | | --- | --- | --- | | [iCal](#page-integrations.ical) | Umożliwienie nauczycielom / uczniom podglądu własnego planu lekcji w osobistym kalendarzu | Omniscol → kalendarz | | [Linki udostępniania](#page-glossary.share-link) | Udostępnienie planu lekcji tylko do odczytu albo otwarcie ukierunkowanego wprowadzania danych, zależnie od kontekstu | Omniscol → publiczny internet | | [Iframe](#page-portal.share-links) | Wbudowanie planu lekcji w stronę w **tej samej domenie** co Omniscol; zablokowane na witrynie zewnętrznej (bezpieczeństwo) | Omniscol → ta sama domena | | [API Omniscol](#page-integrations.api-tokens) | Integracje system-system zależnie od uprawnień i opcji konta | Zależnie od konfiguracji | | [MCP](#page-integrations.mcp) | Podłączenie do Omniscol agenta AI zgodnego z MCP | Agent AI ↔ Omniscol | | [OAuth2 / OIDC (serwer)](#page-integrations.oauth-server) | Podłączenie usługi zewnętrznej identyfikowanej przez zarejestrowanego klienta + zgodę + token o ograniczonym zakresie (podstawa MCP i OneRoster) | Usługa ↔ Omniscol | | [OIDC / SSO (logowanie)](#page-integrations.oauth2) | Uwierzytelnianie użytkowników przez dostawcę tożsamości (Google Workspace, Microsoft Entra ID, generyczny OIDC) | Zależnie od konfiguracji | | [Synchronizacja z systemami zewnętrznymi](#page-integrations.extsync) | Framework konektorów: Aurion, Auriga, Edusign, nowe konektory ustalane projektowo | Dwukierunkowy | | [Panele informacyjne](#page-panels.lobby-panel) | Wyświetlanie planu lekcji na ekranach publicznych | Omniscol → ekrany | #### Wybór właściwej integracji - **Udostępnienie planu lekcji nauczycielowi / uczniowi** — subskrypcja [iCal](#page-integrations.ical). - **Nadanie dostępu do odczytu rodzicowi / na potrzeby audytu** — [link udostępniania](#page-glossary.share-link). - **Synchronizacja uczniów z systemu ERP / systemu informacyjnego** — zob. [Synchronizacja z systemami zewnętrznymi](#page-integrations.extsync), gdzie wymieniono dostępne konektory. Jeśli danego systemu ERP tam nie ma, dodanie konektora ustala się ze wsparciem Omniscol. - **Logowanie jednokrotne** — [OIDC / SSO](#page-integrations.oauth2). - **Zewnętrzny asystent AI** na koncie, jeśli opcja jest włączona — [MCP](#page-integrations.mcp) dla zgodnych klientów. - **Publiczne wyświetlanie na terenie szkoły** — [panele informacyjne](#page-panels.lobby-panel). #### Dobre praktyki bezpieczeństwa - Proszę używać **OIDC / SSO**, gdy opcja jest włączona, do uwierzytelniania rzeczywistych użytkowników. - **Tokeny API** proszę stosować wyłącznie do integracji system-system, z minimalnym zakresem i okresową rotacją. - Proszę ustawiać krótkie **daty wygaśnięcia** linków udostępniania. - Proszę nie umieszczać tokenu API w publicznym repozytorium Git. #### Zobacz także - [iCal](#page-integrations.ical) - [API Omniscol](#page-integrations.api-tokens) - [MCP](#page-integrations.mcp) - [OAuth2 / OIDC (serwer)](#page-integrations.oauth-server) - [OIDC / SSO (logowanie)](#page-integrations.oauth2) - [Synchronizacja z systemami zewnętrznymi](#page-integrations.extsync) - [integrations.partners](#page-integrations.partners) ### 9.2 Jak działa Omniscol — jedno API, jedno źródło prawdy *Source: `help/pl/integrations/architecture.md` · id: integrations.architecture · Audience: admin · Plan: standard · Updated: 2026-07-12* Kilka faktów o tym, jak zbudowany jest Omniscol, warto poznać przed rozpoczęciem integracji — wyjaśniają, dlaczego API jest tak kompletne, w jaki sposób interfejs dostosowuje się do każdego użytkownika, oraz jeden punkt dotyczący poufności, o którym trzeba pamiętać. #### Jedna aplikacja na jednym API Omniscol działa jako **jedna aplikacja internetowa** w przeglądarce. Każdy ekran, każdy przycisk i każda tabela są rysowane przez wywołanie **publicznego API** Omniscol — tego samego API, które można wywołać samodzielnie, opisanego w interaktywnej dokumentacji API Omniscol, na stronie **Programiści** ([omniscol.com/pl/developers](https://www.omniscol.com/pl/developers)). Nie ma żadnego ukrytego, „prawdziwego” API za tym, z którym prowadzi się integrację: to, czego używa interfejs, *jest* tym, co się otrzymuje. Kilka operacji działa w przeciwną stronę — udostępnionych do integracji, ale **nieużywanych przez samą aplikację**: na przykład punkty dostępu **zaawansowanego wyszukiwania i rozpoznawania jednostek** (przeznaczone dla agenta AI przez [MCP](#page-integrations.mcp)) albo te, które pozwalają systemowi zewnętrznemu **zasilać Omniscol** danymi (ETL dbający o synchronizację zewnętrznej bazy). #### operationId — jeden klucz, jedno źródło prawdy Każda operacja to **para metoda + URL** (na przykład `GET /api/schedules/lessons/{datesrange}`) i każda nosi stabilny identyfikator: swój **operationId** (tutaj `os_schedules_dates_get`). Nazwa ma strukturę: **`os`** (Omniscol), następnie **moduł** (`schedules`), potem to, czego dotyczy **operacja** (`dates` — czasem kilka segmentów połączonych łącznikami), a na końcu zawsze **metoda HTTP** (`get`, `post`, `put`, `delete`). Tego jednego klucza Omniscol używa wszędzie — do nazwania operacji na stronie **Programiści**, do zbudowania odpowiadającego jej narzędzia [MCP](#page-integrations.mcp) oraz do wskazania jej z poziomu nadpisania API lub z tej pomocy. Zdefiniowany tylko raz, utrzymuje spójność wszystkich powiązanych miejsc: dokumentacja, narzędzia i interfejs nie mogą się rozejść, ponieważ wszystkie czytają tę samą definicję. #### Interfejs podąża za uprawnieniami **Element graficzny powiązany z działaniem** — przycisk, zakładka, pozycja menu — pojawia się tylko wtedy, gdy stojąca za nim operacja jest **dostępna** dla użytkownika. Decydują o tym jego rola i [role niestandardowe](#page-admin.customroles) (zob. [Użytkownicy i role](#page-admin.users-and-roles)), a także plan abonamentowy i opcje (zob. [Plany i opcje Omniscol](#page-overview.plans-and-options)). Wystarczy zmienić jedno z nich, a interfejs składa się na nowo: pojedyncze elementy, a nawet całe moduły, pojawiają się lub znikają. Ta sama zasada wykracza poza uprawnienia osobiste. Dział IT może wyłączyć niektóre operacje przez **nadpisanie API**, a odpowiadające im elementy znikają z interfejsu (zob. [Personalizacja API](#page-integrations.api-customization)). Tak samo jest wtedy, gdy jakieś dane są utrzymywane w aktualności przez **synchronizację zewnętrzną**: ich lokalne tworzenie i modyfikowanie mogą zostać wyłączone, a ich elementy sterujące ustępują wówczas miejsca synchronizacji (zob. [Synchronizacja z systemami zewnętrznymi](#page-integrations.extsync)). Dlatego Omniscol **nie ma osobnego portalu** dla uczniów ani dla nauczycieli. Istnieje jedna aplikacja; każdy widzi interfejs zsynchronizowany z własnymi uprawnieniami — uczeń, nauczyciel, administrator i posiadacz roli niestandardowej otrzymują dokładnie te operacje, do których mają prawo, i nic poza nimi. #### Interfejs to wygoda, a nie zabezpieczenie Ponieważ interfejsem sterują uprawnienia, łatwo byłoby wziąć ukryty przycisk za granicę bezpieczeństwa. Nią nie jest. **Każde wywołanie jest ponownie sprawdzane na serwerze** pod kątem tożsamości i uprawnień użytkownika; operacja, do której nie ma on prawa, zostaje tam odrzucona, niezależnie od tego, co pokazuje interfejs. Interfejs dostosowuje się dla przejrzystości i wygody; rzeczywista granica jest egzekwowana po stronie serwera, przy każdym żądaniu. #### Tokeny i linki udostępniania, ten sam model [Token API](#page-integrations.api-tokens) albo link udostępniania jest **ograniczony do zestawu operacji** — tych, na które udzielono zgody przy jego tworzeniu. Serwer stosuje to ograniczenie przy każdym wywołaniu, dokładnie tak jak dla zalogowanego użytkownika. Link udostępniania, token i osoba pracująca w interfejsie to trzy sposoby dotarcia do tego samego API kontrolowanego uprawnieniami — nigdy furtka, która je omija. #### Przetrwanie przerwy w połączeniu Ponieważ każdy ekran czyta API, Omniscol może też zachowywać w przeglądarce już otrzymane odpowiedzi, aby krótka utrata sieci nie przerwała przeglądania. Ta **kopia lokalna** znajduje się we własnej bazie danych (IndexedDB), obok zwykłej pamięci podręcznej stron przeglądarki. To **pamięć podręczna odczytu**: jeśli połączenie zaniknie, nadal widać to, co zostało już otwarte. **Nie** kolejkuje ona modyfikacji ani ich nie odtwarza — modyfikacja zawsze przechodzi przez serwer. Ta kopia lokalna opiera się na **zgodzie** użytkownika. Przy pierwszym użyciu danej przeglądarki Omniscol pyta, czy można mu zaufać; kopia zaczyna powstawać po wyrażeniu zgody. Pozycja Pamięć podręczna offline w menu użytkownika włącza ją lub czyści później w dowolnej chwili — znacznik wyboru wskazuje, że jest aktywna. Dwie rzeczy, o których warto wiedzieć: - **Dane osobowe są z niej wyłączone.** Zachowywane są tylko udane odczyty; odpowiedzi, które serwer oznacza jako niepodlegające przechowywaniu (dane sesji i uwierzytelniania), nigdy nie trafiają do pamięci podręcznej, a z tego, co *trafia*, oprogramowanie usuwa dane kontaktowe osób — e-mail, telefon, datę urodzenia, login, numer identyfikacyjny, stan hasła — oraz całkowicie usuwa konta administratorów. Kopia lokalna zawiera zwykłe dane robocze, a nie imienny spis osób. - **Na komputerze współdzielonym proszę raczej korzystać z okna przeglądania prywatnego.** Wylogowanie nie usuwa tej kopii lokalnej (ani zwykłej pamięci podręcznej przeglądarki); okno prywatne usuwa obie przy zamknięciu. Na taką ostrożność zasługuje każda aplikacja internetowa na komputerze, nad którym użytkownik nie ma kontroli. #### Zobacz także - [Przegląd integracji](#page-integrations.overview) - [Personalizacja API](#page-integrations.api-customization) - [API Omniscol](#page-integrations.api-tokens) - [MCP — podłączenie zewnętrznego agenta AI](#page-integrations.mcp) ### 9.3 iCal — subskrypcja i dynamiczny link *Source: `help/pl/integrations/ical.md` · id: integrations.ical · Plan: standard · Updated: 2026-05-15* Format **iCal** (`.ics`) to standard wymiany kalendarzy między aplikacjami. Omniscol udostępnia każdy plan lekcji (indywidualny, klasy, sali, nauczyciela) w postaci **linku subskrypcji iCal**, który użytkownik może wkleić do Google Calendar, Apple Calendar, Outlooka, Thunderbirda albo dowolnej innej aplikacji czytającej ustandaryzowany kalendarz. #### Link subskrypcji a eksport jednorazowy Dwa bardzo różne zastosowania: - **Link subskrypcji** (zalecany) — adres URL w protokole HTTPS wskazujący na Omniscol. Aplikacja kliencka odpytuje go regularnie (co godzinę, codziennie — zależnie od jej ustawień) i na bieżąco aktualizuje kalendarz użytkownika. Gdy w Omniscol lekcja zmieni pozycję, użytkownik widzi to w swoim kalendarzu, nie robiąc nic. - **Eksport jednorazowy** — pobranie pliku `.ics` w danej chwili. Przydatny do archiwizacji, do przesłania pocztą elektroniczną albo do wprowadzenia do systemu, który nie potrafi subskrybować. Ale jest to migawka: jeśli plan lekcji się zmieni, plik nie zostanie zaktualizowany. Proszę wybrać link subskrypcji, gdy klientem końcowym jest nowoczesna aplikacja potrafiąca odświeżać zdalny kalendarz (Google Calendar, Apple Calendar, Outlook). #### Uzyskiwanie linku subskrypcji Na ekranach, na których udostępnianie jest dostępne, przycisk Udostępnianie otwiera okno dialogowe, w którym mogą się pojawić: - jeden lub kilka podpisanych adresów URL subskrypcji iCal, - przycisk „Kopiuj adres URL”, - kod QR do zeskanowania, - pobranie pliku `.ics`. Adres URL zawiera tajny token: proszę go nie udostępniać — każdy, kto go zdobędzie, może zobaczyć plan lekcji objęty zakresem linku, aż do wygaśnięcia albo unieważnienia. #### Gdzie wygenerować iCal Główne punkty wejścia to: - **U góry modułu Plany lekcji** — przycisk Udostępnianie może wygenerować iCal wszystkich wyświetlanych planów lekcji, wspólny iCal, który łączy je w jedną subskrypcję, a następnie iCal osobno dla każdego z nich. Te linki są ograniczone do wyświetlanego roku szkolnego. - **Na każdym wyświetlonym planie lekcji** — pasek tytułu planu daje po najechaniu kursorem dostęp do udostępnienia tego jednego planu. Link obejmuje odpowiedni rok szkolny. - **Na karcie nauczyciela** — w module **Administracja** przycisk Udostępnianie na karcie generuje osobisty iCal nauczyciela, zaprojektowany tak, by pozostawał ważny długo — dopóki pozwalają na to sam link, konto wystawiające i wybrana data wygaśnięcia. - **W podglądzie planu lekcji w trybie kalendarzowym** — w module **Zarządzanie planami lekcji** przycisk Udostępnianie podglądu generuje iCal tego, co jest wyświetlone, nawet jeśli ten plan nie został jeszcze opublikowany. Przy każdym generowaniu użytkownik może ustalić datę unieważnienia. Data jest zapisana w tokenie adresu URL: później już się nie zmienia. Aby zmienić termin wygaśnięcia, należy wygenerować nowy link. Podobnie jak pozostałe linki udostępniania, iCal jest powiązany z kontem, które go wygenerowało: zmiana hasła, dezaktywacja albo usunięcie konta wystawiającego unieważnia powiązane z nim linki. #### Link publiczny dla klasy albo sali Administrator może wygenerować link subskrypcji dla **klasy** albo dla **sali** (na przykład po to, by udostępnić plan rodzicom albo podmiotowi zewnętrznemu). Takie linki są podpisane i mają datę wygaśnięcia. Zob. także [Udostępnianie planu lekcji linkiem publicznym](#page-schedules.share-link), gdzie opisano wszystkie opcje udostępniania (iCal, responsywna strona internetowa, JSON przez API). #### Konfiguracja po stronie klienta ##### Google Calendar 1. W Google Calendar po lewej stronie, obok **Inne kalendarze**, proszę kliknąć **+** > **Z adresu URL**. 2. Proszę wkleić adres URL subskrypcji Omniscol. 3. Kalendarz pojawia się z orientacyjną nazwą i domyślnym kolorem — jedno i drugie można zmienić. Google odświeża subskrypcję co około 8-24 godziny. W razie pilnych zmian trzeba liczyć się z opóźnieniem. ##### Apple Calendar (macOS, iOS) 1. **Plik > Nowa subskrypcja kalendarza**. 2. Proszę wkleić adres URL Omniscol. Link iCal Omniscol jest ustawiony na automatyczne odświeżanie co pół godziny. ##### Outlook (Microsoft 365) 1. **Dodaj kalendarz > Z internetu**. 2. Proszę wkleić adres URL Omniscol. Outlook aktualizuje dane z częstotliwością zależną od wersji; w starej wersji na komputer trzeba liczyć się z opóźnieniami. #### Ograniczenia - Zmiany po stronie klienta (przesunięcie wydarzenia w Google Calendar) nie wracają do Omniscol — subskrypcja jest tylko do odczytu. - Aby wygenerować swój osobisty adres URL, użytkownik musi mieć aktywne konto Omniscol. - Termin wygaśnięcia linku jest zapisany w wygenerowanym adresie URL: później już się nie przedłuża; w razie potrzeby proszę wygenerować nowy link. - Wydarzenia spoza planu lekcji są uwzględniane tylko wtedy, gdy obejmuje je udostępnienie albo filtr iCal. #### Instrukcja — Subskrypcja własnego planu lekcji w Google Calendar 1. **Subskrypcja iCal** synchronizuje plan lekcji w Omniscol z osobistym kalendarzem (Google Calendar, Apple Calendar, Outlook). Aktualizacja jest automatyczna i ciągła: nie trzeba ponawiać kopiowania i wklejania po każdej zmianie planu. 2. **Na swoim ekranie Omniscol** (uczeń, nauczyciel albo widok udostępniony) proszę kliknąć Udostępnianie, gdy przycisk jest dostępny. Otworzy się okno dialogowe z adresami URL wygenerowanymi dla danego zakresu. 3. **Proszę skopiować adres URL subskrypcji** (przycisk Kopiuj). Proszę go nie udostępniać: każdy, kto go ma, może zobaczyć zakres objęty linkiem, aż do wygaśnięcia albo unieważnienia. 4. **W Google Calendar**: panel po lewej, **Inne kalendarze → + → Z adresu URL**, wkleić, zatwierdzić. Kalendarz pojawia się z nazwą i kolorem (oba można zmienić). **W Apple Calendar**: `Plik → Nowa subskrypcja kalendarza`, wkleić. **W Outlooku M365**: `Dodaj kalendarz → Z internetu`, wkleić. 5. **Ważne**: subskrypcja = **tylko do odczytu**. Zmiany w osobistym kalendarzu nie wracają do Omniscol. Zmiany po stronie Omniscol trafiają do kalendarza przy następnej synchronizacji po stronie klienta. #### Zobacz także - [iCal (eksport kalendarza)](#page-glossary.ical) - [Udostępnianie planu lekcji linkiem publicznym](#page-schedules.share-link) - [Przegląd integracji](#page-integrations.overview) ### 9.4 API Omniscol — tokeny uwierzytelniające *Source: `help/pl/integrations/api-tokens.md` · id: integrations.api-tokens · Audience: admin · Plan: premium · Updated: 2026-06-13* > **Premium** > _Premium_ **API Omniscol** to API REST udokumentowane w OpenAPI. Służy do integracji system-system: zewnętrznego panelu zarządczego, własnego ekranu informacyjnego, synchronizacji z systemem ERP lub systemem informatycznym albo agenta AI przez MCP. Tokeny API, którymi można zarządzać z interfejsu, są dostępne na kontach oferujących tę integrację. Token pochodny daje dostęp wyłącznie do punktów dostępu API wybranych przy jego generowaniu; nie należy zakładać, że obejmuje całe API. #### Klucz i token: dwa odrębne obiekty Omniscol rozróżnia dwa obiekty, których nie wolno ze sobą mylić. **Klucz** to obiekt trwały, przechowywany po stronie Omniscol. Łączy w sobie: - krótki **identyfikator**, generowany losowo, publiczny: to on pojawia się na liście i jest przenoszony w każdym tokenie, aby wskazać klucz do weryfikacji; - opisową **etykietę**, modyfikowalną w każdej chwili; - opcjonalną **datę wygaśnięcia**, również modyfikowalną w każdej chwili; - długi **losowy sekret**, wylosowany po stronie serwera, który służy jako kryptograficzny klucz podpisu. Identyfikator, etykieta i data wygaśnięcia to informacje administracyjne: identyfikator jest tylko publicznym odnośnikiem, a nie elementem tajnym. Natomiast **sekret** jest jedynym materiałem podpisu: wygenerowany losowo przy tworzeniu klucza, zostaje po stronie serwera, nie podlega zmianie i **nigdy nie jest wyświetlany ani zwracany** — ani przy tworzeniu, ani na liście kluczy. A nawet gdyby wyciekł, nie wystarczyłby do podrobienia tokenu: podpis łączy go z **solą właściwą dla konta** oraz **sekretem serwera**, które również nigdy nie opuszczają Omniscol. **Token** to samodzielny **JWT** (JSON Web Token), podpisany sekretem klucza. To właśnie on jest przekazywany systemowi zewnętrznemu. Jego podpisana treść zawiera konto, którego dotyczy, listę dozwolonych punktów dostępu, klucz, z którego pochodzi, oraz własną datę wygaśnięcia. Innymi słowy: **klucz podpisuje, token jest podpisany.** Ten sam klucz może podpisać wiele tokenów — wszystkie weryfikowalne tym samym sekretem, a więc wszystkie unieważnione razem, gdy klucz zniknie. Omniscol nie przechowuje tokenu: generuje go, wyświetla raz, a potem weryfikuje przy każdym wywołaniu, odtwarzając jego podpis z sekretu klucza (HMAC SHA-256). Żadne uprawnienie przenoszone przez token nie może więc zostać zmienione bez tego sekretu. #### Tworzenie tokenu Ekran Udostępnianie jest dostępny w module Administracja → Import/Eksport na kontach Premium. Tworzenie przebiega w dwóch etapach: najpierw tworzy się **klucz**, a następnie **generuje token** z tego klucza. 1. **Utworzenie klucza** — proszę podać opisową etykietę oraz, jeśli dostęp jest tymczasowy, datę wygaśnięcia. Jego etykietę i datę wygaśnięcia można zmienić później; jego sekretu podpisu — nie. 2. **Wygenerowanie tokenu** — proszę wybrać klucz, zaznaczyć dozwolone punkty dostępu, ewentualnie wybrać datę wygaśnięcia właściwą dla tokenu, a następnie wygenerować JWT. Przy generowaniu Omniscol wyświetla token **tylko raz**. Proszę natychmiast skopiować go do menedżera sekretów: nie zostanie już wyświetlony ponownie. Data wygaśnięcia tokenu jest wpisana w jego podpisaną treść: nie zmienia się jej po fakcie. Aby zmienić tę datę, proszę wygenerować nowy token. Istnieją więc dwa poziomy wygaśnięcia, niezależne od siebie: - **wygaśnięcie klucza** — można je zmienić z listy kluczy; po jego nadejściu **wszystkie** tokeny pochodzące z tego klucza są odrzucane (wywołanie kończy się błędem 401); - **wygaśnięcie tokenu** — ustalone przy generowaniu, wpisane w JWT i później już niezmienne. #### Dozwolone punkty dostępu Token daje dostęp **wyłącznie do punktów dostępu zaznaczonych przy jego generowaniu**: nigdy nie należy zakładać, że obejmuje całe API. Dozwolona lista jest przenoszona w tokenie i weryfikowana przy każdym wywołaniu; wywołanie niedozwolonego punktu dostępu zostaje odrzucone (401). Poza pojedynczymi punktami dostępu lista wyboru proponuje **skróty na poziomie modułu**: - wpis samego modułu dopuszcza **wszystkie** jego punkty dostępu; - warianty według operacji — **odczyt**, **modyfikacja**, **tworzenie**, **usuwanie** — zawężają moduł do jednego rodzaju wywołań. Zaznaczenie „**Plany lekcji** [odczyt]” daje więc pełny odczyt tego modułu, nie otwierając żadnego zapisu i bez zaznaczania każdego punktu dostępu po kolei. Proszę trzymać się minimum: przyznawać tylko te moduły i operacje, które są bezwzględnie konieczne dla integracji. #### Używanie tokenu Dwa zwyczajowe sposoby przesłania tokenu do API: - **Nagłówek HTTP**: `Authorization: Bearer ` (zalecany). - **Parametr adresu URL**: `?auth=` (wygodny przy debugowaniu, ale pojawia się w logach HTTP — należy go unikać w środowisku produkcyjnym). Przykład `curl`, do dostosowania z rzeczywistym punktem dostępu wziętym z OpenAPI: ```bash curl -H "Authorization: Bearer $TOKEN" \ https://nazwa-szkoly.omniscol.com/api// ``` #### Dokumentacja OpenAPI Ekran Import/Eksport pokazuje link **OpenAPI 3.1**, który otwiera specyfikację dostępną dla konta w Swagger Editor. Znajdują się w niej: - lista udostępnionych punktów dostępu API, - schematy wymienianych danych, - metody i parametry, - oczekiwane odpowiedzi. Specyfikacja jest też udostępniana bezpośrednio przez konto, bez uwierzytelniania: - `/api/guest/openapi.json` — specyfikacja w formacie JSON; - `/api/guest/openapi.yaml` (albo `/api/guest/openapi?yaml=true`) — ta sama treść w formacie YAML; - `/api/guest/school_schema.json` — schemat JSON danych konta. #### Pełna pomoc dla asystenta AI Portal publikuje też całą pomoc Omniscol w jednym pliku tekstowym, gotowym do wykorzystania jako baza wiedzy asystenta AI (projekt Claude, własny GPT…): - [omniscol.com/pl/llms-full.txt](https://www.omniscol.com/pl/llms-full.txt) — pełny przewodnik w formacie Markdown, dostępny w każdym języku pomocy (`/en/llms-full.txt`, `/de/llms-full.txt`…); - [omniscol.com/llms.txt](https://www.omniscol.com/llms.txt) — indeks w standardzie `llms.txt`, który silniki AI odnajdują automatycznie. #### Unieważnianie dostępu Unieważnienie odbywa się na poziomie **klucza**, a nie pojedynczego tokenu. Ekran wymienia **klucze**, które posłużyły do wygenerowania tokenów. **Usunięcie klucza** wymazuje jego sekret podpisu po stronie Omniscol: od tej chwili żaden podpis pochodzący z tego sekretu nie może już zostać zweryfikowany, a każde wywołanie z tokenem wydanym z tego klucza kończy się błędem **401**. To brak sekretu unieważnia tokeny, a nie lista unieważnień. Dla działu IT dwie konsekwencje: - **Nie ma unieważniania token po tokenie.** Omniscol nie przechowuje wydanych JWT i nie może wyłączyć jednego z nich osobno: raz wygenerowany token pozostaje ważny do własnego wygaśnięcia albo do chwili, gdy jego klucz zostanie usunięty lub wygaśnie. - **Zmiana daty wygaśnięcia klucza** działa natychmiast na wszystkie jego tokeny: przesunięcie tej daty wcześniej odcina dostęp wszystkim tokenom wydanym z tego klucza. Dobra praktyka: klucz, co do którego istnieje podejrzenie wycieku, należy usunąć bezzwłocznie, a potem utworzyć klucz zastępczy z opisową etykietą. ##### Jeden klucz na cel i na zastosowanie Skoro unieważnianie odbywa się na poziomie klucza, **każdej integracji należy dedykować osobny klucz** (jedno oprogramowanie zewnętrzne = jeden klucz). Sekret klucza podpisuje tylko jego własne tokeny: usunięcie tego klucza unieważnia wyłącznie dostępy danej integracji, nie naruszając pozostałych. Odwrotnie, jeden klucz dzielony między kilka systemów sprawia, że każde unieważnienie działa na zasadzie wszystko albo nic: usunięcie klucza, który wyciekł, odcina od razu wszystkie systemy, które się nim posługiwały. #### Do jakich integracji API jest zwykle używane do: - własnych **systemów ekranów informacyjnych** (wykraczających poza wbudowane panele informacyjne Omniscol; zob. [Personalizacja paneli](#page-panels.customization)), - **zewnętrznych paneli zarządczych** konsolidujących Omniscol i inne źródła, - **konektorów lub synchronizacji** z systemem ERP albo dziedzinowym systemem informatycznym, - **agentów AI zgodnych z MCP** korzystających z Omniscol przez serwer MCP; zob. [MCP — podłączenie zewnętrznego agenta AI](#page-integrations.mcp). W przypadku dostępu delegowanego **zidentyfikowanej usłudze zewnętrznej** (token o zawężonym zakresie, zgoda użytkownika, możliwość unieważnienia przez wyłączenie klienta) lepszy jest serwer OAuth2 Omniscol: zob. [OAuth2 / OIDC (dostawca)](#page-integrations.oauth-server). #### Instrukcja — Generowanie tokenu API 1. **Token uwierzytelniający** pozwala systemowi zewnętrznemu (panel zarządczy, ekran informacyjny, agent AI przez MCP) odpytywać punkty dostępu API, które zostały wybrane. 2. **Proszę przejść do modułu Administracja → Import/Eksport**, a następnie otworzyć ekran udostępniania przyciskiem Udostępnianie. Widoczne są tam istniejące klucze, ich etykiety i ewentualne daty wygaśnięcia. 3. **Proszę utworzyć klucz**, jeśli jest potrzebny. Należy podać opisową etykietę (`Panel finansowy`, `Ekran informacyjny w holu głównym`, `Agent AI Claude desktop`) oraz datę wygaśnięcia, jeśli integracja jest tymczasowa. Tę datę wygaśnięcia klucza można będzie zmienić później. 4. **Proszę wybrać klucz**, a potem zaznaczyć punkty dostępu API, które token ma móc wywoływać. Listę należy utrzymać możliwie najkrótszą. Jeśli dostęp ma być ograniczony w czasie, trzeba też wybrać datę wygaśnięcia tokenu. 5. **Proszę wygenerować token**, a potem natychmiast skopiować wyświetlony JWT. Nie zostanie on wyświetlony ponownie, a jego daty wygaśnięcia nie będzie można zmienić. Następnie proszę używać go w nagłówku HTTP `Authorization: Bearer `. 6. **Aby unieważnić dostęp**, proszę usunąć odpowiedni klucz. Tokeny pochodzące z tego klucza stają się nieważne. #### Zobacz także - [Przegląd integracji](#page-integrations.overview) - [MCP — podłączenie zewnętrznego agenta AI](#page-integrations.mcp) - [Zaawansowane zapytania](#page-integrations.advanced-queries) - [OAuth2 / OIDC (dostawca)](#page-integrations.oauth-server) - [Personalizacja paneli](#page-panels.customization) ### 9.5 OAuth2 / OIDC — podłączenie usługi do Omniscol *Source: `help/pl/integrations/oauth-server.md` · id: integrations.oauth-server · Audience: admin · Plan: premium · Updated: 2026-06-29* > **Premium** > _Premium_ Ta strona jest przeznaczona dla **działu IT**. Opisuje Omniscol w jego roli **serwera autoryzacji OAuth2 / OpenID Connect**: jak usługa zewnętrzna rejestruje się jako **klient**, jak użytkownik **wyraża zgodę** na udzielenie jej dostępu i jak usługa otrzymuje **token** ograniczony do przyznanych **zakresów**. #### Co robi Omniscol jako serwer OAuth2 Usługa zewnętrzna — agent AI, konektor, panel zarządczy — staje się **klientem** zadeklarowanym na koncie; użytkownik szkoły **zatwierdza** jej dostęp na ekranie zgody; usługa otrzymuje wtedy **token dostępu** o krótkim czasie życia, którego zasięg jest ograniczony do przyznanych **zakresów** oraz do uprawnień tego użytkownika. Ten mechanizm jest odrębny od **SSO użytkowników** opisanego na [OIDC / SSO](#page-integrations.oauth2), gdzie Omniscol jest natomiast **klientem** dostawcy tożsamości i służy do logowania użytkowników. Tutaj Omniscol jest po stronie **serwera**: to usługi łączą się z nim. Z tego serwera korzystają dwie integracje Omniscol: - **MCP** — standardowe uwierzytelnianie agenta AI przebiega przez ten serwer OAuth2 (zob. [MCP — podłączenie zewnętrznego agenta AI](#page-integrations.mcp)); - **OneRoster** — producent OneRoster uwierzytelnia się tokenem OAuth2 maszyna-maszyna wydanym przez ten sam serwer (zob. [OneRoster](#page-integrations.oneroster)). Każda inna usługa zgodna z OAuth2 / OIDC może się z nim połączyć w taki sam sposób. #### Wykrywanie i punkty dostępu protokołu Omniscol publikuje swoje **metadane wykrywania** pod standardowymi adresami `.well-known`, udostępnianymi w katalogu głównym domeny konta (na przykład `https://nazwa-szkoly.omniscol.com`). Zgodny klient odnajduje tam samodzielnie wszystkie punkty dostępu, bez ręcznej konfiguracji: - `/.well-known/oauth-authorization-server` — metadane serwera autoryzacji (RFC 8414); - `/.well-known/openid-configuration` — metadane OpenID Connect (treść identyczna z poprzednią); - `/.well-known/jwks.json` — publiczne klucze weryfikacyjne (JWKS), które pozwalają sprawdzić podpis `id_token`; - `/.well-known/oauth-protected-resource` — metadane chronionego zasobu (RFC 9728). Metadane te ogłaszają punkty dostępu protokołu: - `/oauth/authorize` — żądanie autoryzacji (ekran logowania, a potem zgody); - `/oauth/token` — wymiana kodu na token oraz odświeżanie; - `/oauth/register` — **dynamiczna rejestracja klientów** (RFC 7591); - `/oidc/userinfo` — informacje o zalogowanym użytkowniku (OIDC); - `/oauth/revoke` — unieważnienie tokenu (RFC 7009). Te punkty dostępu protokołu są **publiczne**: nie są zastrzeżone dla kont Premium i nie trzeba ich otwierać ręcznie. Premium dotyczy jedynie **ekranu zarządzania klientami** opisanego niżej. #### Przepływy autoryzacji Omniscol obsługuje trzy przepływy OAuth2: - **Kod autoryzacyjny z PKCE** — domyślny przepływ dla usługi działającej **w imieniu użytkownika**. Usługa przekierowuje użytkownika na `/oauth/authorize`; po zalogowaniu i wyrażeniu zgody Omniscol zwraca **kod autoryzacyjny** (ważny 5 minut), który usługa wymienia pod adresem `/oauth/token`. Przyjęta metoda PKCE to **S256**, a jedyny akceptowany `response_type` to `code`. - **Odświeżanie (`refresh_token`)** — aby przedłużyć dostęp delegowany bez ponownego przechodzenia przez zgodę. - **Client credentials** — przepływ **maszyna-maszyna**, bez użytkownika, używany w szczególności przez konsumentów **OneRoster**. Klient uwierzytelnia się bezpośrednio i otrzymuje token dostępu. Przy wymianie serwer wydaje **token dostępu** (`Bearer`, ważny **1 godzinę**), a w przepływach użytkownika także **token odświeżający** (ważny **30 dni**). Gdy zażądano zakresu `openid`, wydawany jest również podpisany **`id_token`** OIDC; jego podpis weryfikuje się przez `/.well-known/jwks.json`. Przepływ `client_credentials` wydaje wyłącznie token dostępu, bez odświeżania i bez `id_token`. Token dostępu przesyła się następnie w nagłówku HTTP `Authorization: Bearer `. Przy każdym wywołaniu Omniscol weryfikuje jego podpis, sprawdza, czy klient jest nadal **aktywny**, czy użytkownik nadal istnieje i ma wymaganą rolę, oraz czy **zakresy** tokenu obejmują wywoływany punkt dostępu — w przeciwnym razie wywołanie jest odrzucane. #### Zakresy i zgoda Zakresy, którymi zarządza się dla klienta, to: - **`read:basic`** — odczyt planów lekcji, paneli zarządczych i widoków przeglądania (moduły Strona główna, Plany lekcji, Panel zarządczy, Zarządzanie planami lekcji); - **`read:user`** — odczyt listy użytkowników; - **`write:data`** — zapis w tych samych modułach przeglądania; - **`admin`** — dostęp administracyjny (moduły Administracja, Zarządzanie nieobecnościami, Zarządzanie planami lekcji). Serwer zna także zakresy OIDC (`openid`, `email`, `profile`) oraz zakresy **OneRoster** tylko do odczytu (prefiks `imsglobal.org`). Te ostatnie są **uprzywilejowane**: klient **nie może** przypisać ich sobie sam przez dynamiczną rejestrację; musi je udostępnić administrator na karcie klienta. Faktycznie przyznany zakres to **część wspólna** tego, o co klient prosi, i tego, co ma zarejestrowane: klient nigdy nie otrzymuje więcej, niż widnieje na jego karcie. W przepływie użytkownika **ekran zgody** (`/oauth/consent`) pokazuje **nazwę** i **logo** usługi żądającej dostępu oraz **czytelną listę** żądanych zakresów, z przyciskami **Zaakceptuj** i **Odrzuć**. Zatwierdzenie wydaje kod autoryzacyjny i odsyła użytkownika do usługi; odmowa odsyła go z błędem `access_denied`. #### Dynamiczna rejestracja klientów Punkt dostępu `/oauth/register` realizuje **dynamiczną rejestrację** (Dynamic Client Registration, RFC 7591): zgodna usługa może **zadeklarować się sama** jako klient, bez wcześniejszej ręcznej interwencji. To właśnie pozwala agentowi MCP skonfigurować się na podstawie samego adresu URL serwera. Dynamiczna rejestracja **nie może** przypisać sobie zakresu uprzywilejowanego (zakresów OneRoster): są one po cichu pomijane, a jeśli nie zostanie żaden poprawny zakres, domyślnie przyznawany jest `read:basic`. Zakresy uprzywilejowane pozostają zastrzeżone do udostępnienia przez administratora. #### Ekran zarządzania klientami OAuth2 Na kontach **Premium** klientami administruje się w module **Administracja → Import/Eksport**, w sekcji **OAuth2**, przyciskiem OAuth2. Dostęp wymaga najpierw **hasła administratora** — to dodatkowe potwierdzenie przed otwarciem ekranu. Ekran wymienia zarejestrowanych klientów i dla każdego pokazuje jego **stan** (aktywny / nieaktywny), **nazwę**, **zakresy**, **kontakty** oraz **URI** (witryna, logo, URI przekierowania). Można: - **Zarejestrować klienta** — proszę podać nazwę, opcjonalny `software_id`, zakresy, kontakty, witrynę, logo i URI przekierowania. Przy tworzeniu Omniscol wyświetla **tylko raz** `client_id` oraz `client_secret`. - **Zmodyfikować** klienta — modyfikowalne są wyłącznie bezpieczne pola: nazwa, zakresy, kontakty, witryna i logo. URI przekierowania, `software_id` ani sekret nie podlegają tu zmianie. - **Włączyć lub wyłączyć** klienta — tokeny wyłączonego klienta są odrzucane już przy następnym wywołaniu. - **Usunąć** klienta — usunięcie jest **nieodwracalne**. ##### Sekret klienta `client_secret` jest wyświetlany **tylko raz**, przy rejestracji. Omniscol zachowuje przy kliencie jedynie **skrót** sekretu, nigdy samego sekretu w postaci jawnej: **nie można** go później ponownie wyświetlić ani odzyskać. Proszę natychmiast skopiować go do menedżera sekretów. Natomiast `client_id` jest **deterministyczny**: pochodzi od nazwy konta, nazwy klienta i skrótu jego metadanych technicznych. Dwie ściśle identyczne rejestracje dają więc ten sam identyfikator. ##### Odnowienie sekretu (rotacja) **Rotacja** sekretu istnieje: wydaje nowy sekret, zachowuje z niego tylko nowy skrót i zwraca ten nowy sekret **tylko raz**. Przeprowadza się ją przez punkt dostępu do zarządzania dynamiczną rejestracją (`/oauth/register//rotation`), co wymaga przedstawienia **tokenu rejestracyjnego** przekazanego klientowi przy jego dynamicznej rejestracji. **Nie jest** więc wywoływana z opisanego wyżej ekranu zarządzania, który nie operuje tym tokenem. #### OAuth2 czy klucz API: co wybrać Omniscol udostępnia dwa mechanizmy dostępu maszynowego, o różnych modelach zaufania: - **OAuth2** (ta strona) — **zarejestrowana strona trzecia** otrzymuje, po **wyrażeniu zgody** przez użytkownika, token o **krótkim** czasie życia (1 godz.), ograniczony do przyznanych zakresów, **odświeżalny** i **unieważnialny** (przez wyłączenie klienta). Przepływ `client_credentials` obejmuje dodatkowo komunikację maszyna-maszyna bez użytkownika. To tryb właściwy dla zidentyfikowanej usługi zewnętrznej, dla MCP i dla OneRoster. - **Klucz API** (zob. [API Omniscol](#page-integrations.api-tokens)) — **samodzielny token** podpisany przez serwer, który przenosi **listę dozwolonych punktów dostępu** i który samodzielnie przekazuje się systemowi zewnętrznemu: bez zarejestrowanej strony trzeciej, bez ekranu zgody, bez odświeżania. To delegowanie przez administratora własnych uprawnień systemowi, nad którym sam ma kontrolę. Podsumowując: **klucz API** nadaje się wtedy, gdy dostęp przekazuje się samodzielnie systemowi pozostającemu pod własną kontrolą; **OAuth2** nadaje się wtedy, gdy zidentyfikowana usługa zewnętrzna ma uzyskać dostęp delegowany, zawężony zakresem i unieważnialny, albo gdy wymaga tego protokół (MCP, OneRoster). #### Instrukcja — Rejestracja klienta OAuth2 1. **Proszę otworzyć ekran OAuth2.** W module **Administracja → Import/Eksport**, w sekcji OAuth2, proszę kliknąć OAuth2, a następnie wpisać hasło administratora. 2. **Proszę zarejestrować klienta.** Należy podać jego nazwę, zakresy (`read:basic`, `read:user`, `write:data`, `admin`), URI przekierowania oraz, jeśli to przydatne, kontakty, witrynę i logo. Zakresów OneRoster nie przypisuje się tu przez dynamiczną rejestrację; wymagają one udostępnienia przez administratora. 3. **Proszę skopiować wyświetlone `client_id` i `client_secret`.** Sekret pojawia się **tylko raz**: należy zachować go w menedżerze sekretów. 4. **Po stronie usługi** proszę skonfigurować klienta tymi identyfikatorami i adresem URL serwera; zgodny klient samodzielnie odnajduje punkty dostępu przez `/.well-known/`. 5. **Aby odciąć dostęp**, proszę wrócić na ekran i **wyłączyć** albo **usunąć** klienta. #### Zobacz także - [MCP — podłączenie zewnętrznego agenta AI](#page-integrations.mcp) - [API Omniscol](#page-integrations.api-tokens) - [OneRoster](#page-integrations.oneroster) - [OIDC / SSO](#page-integrations.oauth2) - [Przegląd integracji](#page-integrations.overview) ### 9.6 Personalizacja API: nadpisania punktów dostępu i hooki *Source: `help/pl/integrations/api-customization.md` · id: integrations.api-customization · Audience: admin · Plan: premium · Updated: 2026-06-27* > **Premium** > _Premium_ **Personalizacja API** to ekran techniczny przeznaczony dla **działu informatycznego**. Pozwala dostosować zachowanie API Omniscol dla danego konta za pomocą **trzech mechanizmów**: - **konfiguracja ogólna** (wspólne nagłówki HTTP); - **nadpisanie punktu dostępu** — przekierowanie aplikacji internetowej na inny adres URL albo wyłączenie punktu dostępu; - **hooki** — wywołania wychodzące (webhooki), które Omniscol wysyła do systemu placówki, gdy zostaje wykonana jakaś operacja. #### Gdzie to znaleźć Moduł **Administracja**, ekran **Import/Eksport**, sekcja **Personalizacja API**, przycisk **API**. Ekran jest **zastrzeżony dla kont Premium** i chroniony **wzmocnionym uwierzytelnianiem**: Omniscol ponownie pyta o hasło administratora, zanim otworzy okno. Ponieważ każde działanie na tym ekranie dotyka technicznego kontraktu integracji, jej wdrożenie odbywa się w porozumieniu z Omniscol. #### Konfiguracja ogólna Definiuje się tu **nagłówki HTTP** (format `klucz1:wartość1;klucz2:wartość2`) stosowane do **wszystkich hooków**. To naturalne miejsce, aby przenieść **token uwierzytelniający** do własnego serwera (na przykład `Authorization: Bearer …`, którego ten serwer oczekuje). W przypadku **nadpisania** uwierzytelnianie umieszcza się natomiast w nagłówkach właściwych dla punktu dostępu (zob. poniżej). #### Nadpisanie punktu dostępu **Nadpisanie** przedefiniowuje punkt dostępu API Omniscol tak, aby **aplikacja internetowa** wywoływała w jego miejsce **inny adres URL**. Trzy zastosowania, od najpotężniejszego do najprostszego. ##### Udostępnianie danych na żywo z systemu informacyjnego placówki To najpotężniejsze zastosowanie. Punkt dostępu **do odczytu** przekierowuje się na **zewnętrzny adres URL** — zwykle na **ETL**, który pośredniczy w dostępie do **wewnętrznego systemu informacyjnego** placówki. Aplikacja internetowa pobiera wtedy dane **na żywo** z tego systemu, a nie z lokalnej kopii przechowywanej przez Omniscol. Konkretnie: gdy adres przekierowania jest **bezwzględnym adresem zewnętrznym**, aplikacja internetowa wywołuje go wprost, bez pośrednictwa serwerów Omniscol, i **przyjmuje odpowiedź w takiej postaci, w jakiej przyszła** — dokładnie tak, jakby pochodziła z Omniscol. Jedyny warunek jest taki, aby system placówki odpowiadał w **formacie oczekiwanym przez Omniscol** dla tego punktu dostępu (identyczna struktura JSON): nie ma żadnego pośredniego przekodowania. Dla tego punktu dostępu lokalna kopia Omniscol nie jest już odpytywana; wyświetlane dane pochodzą — na żywo — z systemu placówki. Przykład: **baza przedmiotów** placówki udostępniana na bieżąco z jej systemu informacyjnego, tak aby każda aktualizacja po stronie szkoły była natychmiast widoczna w Omniscol, bez ponownego importu. Uwierzytelnianie wobec systemu placówki umieszcza się tutaj w **nagłówkach właściwych dla punktu dostępu** (na przykład `Authorization: Bearer …`), wpisywanych w wierszu nadpisania. **Metodę** HTTP również można narzucić osobno dla każdego punktu dostępu. Przełączenie punktu dostępu samej aplikacji na żywe źródło zewnętrzne to możliwość równie potężna jak wymagająca: należy się nią posługiwać razem z działem informatycznym i w porozumieniu z Omniscol. ##### Wstawienie własnego serwera lub serwera proxy Wywołania można też przepuścić przez **własny serwer** lub **serwer proxy** — na przykład aby zezwolić na współdzielenie zasobów między źródłami (CORS) albo wstawić własną logikę między aplikację internetową a Omniscol. ##### Wyłączenie punktu dostępu Aby **wyłączyć** punkt dostępu, wystarczy nie podawać **żadnego adresu przekierowania** (metoda `null`). Należy oszacować skutek dla interfejsu. Omniscol to **jednostronicowa aplikacja internetowa** (SPA), której elementy interfejsu są sterowane **dostępnymi punktami dostępu**: przyciski, zakładki i menu pojawiają się tylko wtedy, gdy istnieje punkt dostępu, od którego zależą. Wyłączenie punktu dostępu **powoduje więc dynamiczne zniknięcie** — przy następnym wyświetleniu — zależnych od niego elementów interfejsu, a po wyłączeniu wszystkich punktów dostępu danego modułu z nawigacji znika **cały moduł**. Elementy te są usuwane, a nie tylko ukrywane, i wszystko to odbywa się **bez żadnej ingerencji w kod**: wystarczy zmienić konfigurację i ponownie wczytać aplikację. Tabela wymienia dla każdego punktu dostępu: jego **klucz** (wewnętrzny kod operacji), **pierwotny adres URL**, **metodę** HTTP, **nowy adres URL** przekierowania oraz **nagłówki** właściwe dla niego. Pole wyszukiwania pozwala odnaleźć punkt dostępu, który ma być nadpisany. #### Hooki (wywołania wychodzące) **Hook** zleca Omniscolowi **wysłanie żądania HTTP na wskazany adres URL** **po** tym, jak operacja się powiedzie. To mechanizm pozwalający **informować system zewnętrzny w czasie rzeczywistym** — ekran informacyjny, platformę edukacyjną, system kadrowy, własną synchronizację… Hook można podłączyć na dwa sposoby: - do **konkretnego punktu dostępu** (klucz operacji); - do **zdarzenia zbiorczego**, które obejmuje od razu całą rodzinę operacji. Istnieją trzy zdarzenia zbiorcze: - **zmiana planu lekcji** — zmiana dotykająca **obowiązującego planu lekcji**, wraz ze skutkami ubocznymi: zapisanie planu lekcji, utworzenie, przeniesienie lub usunięcie lekcji, publikacja planu lekcji, nieobecności nauczyciela lub klasy, gdy tylko obejmują jakąkolwiek datę, oraz usunięcia strukturalne (sali, przedmiotu…) w planie lekcji **opublikowanym** — usunięcie przedmiotu usuwa lekcje, które z niego korzystały, co samo w sobie jest zmianą. Edycje zamknięte w nieopublikowanej wersji roboczej go nie wyzwalają; - **zmiana nauczyciela** (dodanie, aktualizacja lub usunięcie); - **zmiana przedmiotu** (przedmioty niestandardowe). Dla każdego hooka podaje się **adres URL wywołania zwrotnego**, **metodę** HTTP, pole wyboru **„z danymi”** (czy dołączyć treść pierwotnego żądania?) oraz własne **nagłówki**. ##### Co otrzymuje serwer placówki Wywołanie jest wysyłane jako `application/json` i zawiera, obok podanych nagłówków: - **treść pierwotnego żądania**, jeśli opcja „z danymi” jest włączona; - blok **metadanych** Omniscol: wywołany adres URL, kod punktu dostępu, metodę, parametry, token uwierzytelniający użytkownika, identyfikator placówki oraz konfigurację samego hooka; - nagłówki umożliwiające śledzenie: `X-OS-original-query`, `X-OS-original-endpoint`, `X-OS-auth` i `X-School`. Przy zdarzeniu **zmiana planu lekcji**, gdy opcja „z danymi” jest włączona, wywołanie zawiera dodatkowo **zestawienie różnic w lekcjach** (lekcje dodane, zmienione, usunięte) — przydatne, aby propagować tylko to, co się zmieniło. ##### Zachowanie Hooki wychodzą **w tle**, **po** tym, jak działanie użytkownika doszło do skutku: nie spowalniają interfejsu i **nie blokują go**, gdy serwer placówki zawiedzie. Nieudane wywołanie wychodzące jest **zapisywane w dzienniku**, bez przerywania pracy w Omniscol. Każde wywołanie ma krótki limit czasu (kilka sekund): serwer placówki musi **szybko potwierdzić odbiór**, a resztę przetworzyć po swojej stronie. #### Warto wiedzieć - API Omniscol udostępnia **podzbiór** operacji; nadpisanie lub hook działa wyłącznie na punktach dostępu faktycznie udostępnionych. Lista i uwierzytelnianie: zob. [API Omniscol](#page-integrations.api-tokens). - W przypadku **integracji z gotowym oprogramowaniem** (ERP, system kadrowy, platforma edukacyjna) dedykowana synchronizacja jest zwykle lepiej dopasowana — zob. [Synchronizacja z systemami zewnętrznymi](#page-integrations.extsync). Wewnętrznie korzysta ona z tego samego mechanizmu hooków. - Aby **agent AI** mógł odpytywać dane konta bez prac programistycznych, zob. [MCP — podłączenie zewnętrznego agenta AI](#page-integrations.mcp). #### Zobacz także - [API Omniscol](#page-integrations.api-tokens) - [MCP — podłączenie zewnętrznego agenta AI](#page-integrations.mcp) - [Synchronizacja z systemami zewnętrznymi](#page-integrations.extsync) ### 9.7 Pełny model danych: jednostki JSON, relacje i ontologia *Source: `help/pl/integrations/data-model-full.md` · id: integrations.data-model-full · Audience: admin · Status: stable · Updated: 2026-06-18* Ta strona opisuje **pełny model danych** konta Omniscol: jednostki, ich główne pola i ich relacje. Jest rozwinięciem strony koncepcyjnej [Organizacja danych](#page-core-concepts.data-model), która wyjaśnia *dlaczego* (baza referencyjna szkoły ↔ plan lekcji, lokalne kopie); tutaj celem jest *co* — użyteczna mapa struktury, przydatna zwłaszcza do **powiązania modelu z zewnętrzną bazą referencyjną** (system ERP, katalog użytkowników, system informatyczny). > **Strona techniczna.** Ten materiał jest przeznaczony do integracji i do > dopasowania z systemem zewnętrznym. **Nie jest potrzebny do bieżącej > pracy** z Omniscol: aby zrozumieć organizację danych po stronie > funkcjonalnej, zob. [Organizacja danych](#page-core-concepts.data-model). Wszystkie dane placówki są zorganizowane w formie drzewa. Opisane poniżej jednostki (użytkownicy, lata szkolne, plany lekcji, nieobecności, wydarzenia itd.) odpowiadają poszczególnym gałęziom tej struktury. Odniesieniem normatywnym jest **schemat JSON** konta. Można go przeglądać w dwóch postaciach: - **źródło surowe** (schemat JSON jako taki), udostępniane przez konto pod adresem `https://api.omniscol.com/api/guest/school_schema.json`; - **czytelna przeglądarka drzewa** pod adresem [omniscol.com/pl/datamodel](https://www.omniscol.com/pl/datamodel) (oraz odpowiadająca jej dokumentacja API pod adresem [omniscol.com/pl/developers](https://www.omniscol.com/pl/developers)). Ten schemat opisuje dokładnie fizyczny sposób przechowywania danych w bazie, w postaci dokumentu JSON. Ta strona przedstawia jego uporządkowaną i stabilną w czasie wykładnię. #### Dokument szkoły: korzeń Dokument w korzeniu skupia trwałą bazę referencyjną placówki oraz całe jej planowanie. Jego poddrzewa pierwszego poziomu: | Klucz korzenia | Jednostka | Rola | | --- | --- | --- | | `config` | `SchoolConfig` | Ustawienia konta (kraj, opcje, strefa czasowa, synchronizacja zewnętrzna) | | `subjects_custom` | słownik `SubjectFull` | Przedmioty niestandardowe szkoły | | `families_custom` | słownik `Family` | Niestandardowe rodziny przedmiotów | | `users` | słownik `User` | Spis użytkowników (wszystkie role) | | `school_years` | tablica `SchoolYear` | Lata szkolne i dni wolne | | `timetables` | słownik `Timetable` | Plany lekcji | | `absences` | zgrupowanie `Absence*` | Nieobecności (nauczyciele, klasy, personel, uczniowie) | | `staffing` | `Staffing` | Moduł członków personelu i nadzoru | | `panels` | słownik `Panel` | Panele informacyjne | | `events` | słownik `Event` | Wydarzenia typu kalendarzowego | | `api`, `snapshots`, `jobs`, `translations`, `logo` | różne | Ustawienia techniczne i dane historyczne | Poddrzewa opisane jako „słownik” są obiektami JSON, których **klucze są stabilnymi identyfikatorami** (punkt odniesienia dla każdego powiązania zewnętrznego — zob. sekcja końcowa). ```mermaid erDiagram SCHOOL ||--|| CONFIG : "config" SCHOOL ||--o{ SUBJECT : "subjects_custom" SCHOOL ||--o{ FAMILY : "families_custom" SCHOOL ||--o{ USER : "users" SCHOOL ||--o{ SCHOOL_YEAR : "school_years" SCHOOL ||--o{ TIMETABLE : "timetables" SCHOOL ||--o| STAFFING : "staffing" SCHOOL ||--o{ ABSENCE : "absences" SCHOOL ||--o{ PANEL : "panels" SCHOOL ||--o{ EVENT : "events" SCHOOL { string _id "domena placówki" string name "nazwa konta" string country "kraj konta" string current_school_year "bieżący rok szkolny" } ``` #### Pola przekrojowe: `_extids` i `wishes` Dwa pola powtarzają się w wielu jednostkach. Aby nie opisywać ich w każdym schemacie, są opisane jeden raz tutaj. - **`_extids`** (`ExternalIds`) — tabela identyfikatorów jednostki w systemach zewnętrznych, na przykład `{ "auriga": "12345" }`. Obecne w jednostkach podlegających synchronizacji (przedmioty, rodziny, użytkownicy, lokalizacje, sale, zasoby, nauczyciele, klasy, grupy…). To **punkt zakotwiczenia powiązania z zewnętrzną bazą referencyjną** (zob. sekcja końcowa). - **`wishes`** — **ograniczenia czasowe**: dostępność, przedziały czasowe pożądane lub do unikania, maksymalna liczba godzin, uprzywilejowana sala… Obecne w większości jednostek podlegających planowaniu: użytkownicy, nauczyciele planu lekcji, kursy (przedmioty klas), grupy, klasy, sale, przedziały godzinowe lokalizacji, siatki nadzoru. W zależności od zakresu te ograniczenia są globalne (poziom szkoły) albo właściwe dla jednego planu lekcji. #### Poziom 1 — Baza referencyjna szkoły Baza referencyjna szkoły zawiera to, co jest prawdą dla placówki niezależnie od planu lekcji: katalog przedmiotów, spis użytkowników, kalendarz lat szkolnych. ```mermaid erDiagram FAMILY ||--o{ SUBJECT : "family" SUBJECT ||--o{ SUBJECT : "parent" USER ||--o{ PLACEMENT : "przypisania według roku" PLACEMENT ||--o{ PLACEMENT_GROUP : "groups" SCHOOL_YEAR ||--o{ HOLIDAY : "holidays" SUBJECT { string name string short "nazwa skrócona (wyświetlanie)" string code string parent "przedmiot nadrzędny" string family "rodzina" string color object _extids "identyfikatory zewnętrzne" } FAMILY { string name string code } USER { string login string first_name string middle_name "(jeśli istotne dla danego kraju)" string last_name string idnumber "identyfikator urzędowy" array roles "admin teacher staff student" string customrole "Rola niestandardowa" int servicehours "referencyjne godziny pracy" bool external "nauczyciel zewnętrzny" object subjects "nauczane przedmioty" object wishes "globalna dostępność" object _extids } PLACEMENT { string class "przypisana klasa" string date_start string date_end array groups "przypisane grupy" } PLACEMENT_GROUP { string group "grupa, grupa grup lub grupa wirtualna" array weeks "zakresy tygodni" } SCHOOL_YEAR { string name string date_start string date_end array altweeks "tygodnie naprzemienne" } HOLIDAY { string name string begin string end } ``` ##### Przedmioty — `SubjectFull` / `Subject` / `Family` Przedmiot niestandardowy (`SubjectFull`) rozszerza przedmiot podstawowy (`Subject`: `name`, `short`, `code`, `type`, `_extids`) o pola `parent`, `family` i `color`. Na poziomie szkoły współistnieją dwa źródła: **przedmioty wspólne** dla kraju (tylko do odczytu) oraz **przedmioty niestandardowe** placówki. Szczegóły funkcjonalne: [Zarządzanie przedmiotami](#page-admin.subjects). ##### Użytkownicy — `User` (w tym nauczyciele) `User` to **jedyna jednostka** spisu użytkowników: tożsamość (nazwisko, imię, `idnumber`, kontakt), uwierzytelnianie (`login`), `roles`, referencyjne godziny pracy (`servicehours`), globalna dostępność (pole `wishes`) oraz `placements`. **Nauczyciel** nie jest odrębną jednostką: to `User`, który ma `teacher` wśród swoich `roles` (ten sam użytkownik może łączyć kilka ról). Pole `placements` (indeksowane rokiem szkolnym) przypisuje **ucznia** do klasy (`class`) i do grup (`groups`) na dany okres. Szczegóły: [Zarządzanie nauczycielami](#page-admin.teachers). ##### Lata szkolne — `SchoolYear` / `Holiday` `SchoolYear` wyznacza `date_start → date_end`, listę `holidays` oraz `altweeks` (tygodnie naprzemienne). Jest **ramą czasową**, nie pojemnikiem: plany lekcji rozkładają się w niej, nie będąc w niej zagnieżdżone. Zob. [Rok szkolny](#page-core-concepts.school-year). #### Poziom 2 — Plan lekcji `Timetable` to spójna jednostka planowania. Zawiera własną lokalną kopię nauczycieli, klas, grup i przedmiotów — zob. zasadę lokalnej kopii na stronie [Organizacja danych](#page-core-concepts.data-model). ```mermaid erDiagram TIMETABLE ||--|| TIMETABLE_CONFIG : "config" TIMETABLE ||--o{ TIMETABLE_SITE : "sites" TIMETABLE ||--o{ TIMETABLE_TEACHER : "teachers" TIMETABLE ||--o{ TIMETABLE_CLASS : "classes" TIMETABLE ||--o{ LESSON : "lessons (grupy grup, lekcje wielogrupowe)" TIMETABLE_SITE ||--o{ TIMETABLE_CLASSROOM : "classrooms" TIMETABLE_SITE ||--o{ TIMETABLE_RESOURCE : "resources" TIMETABLE_CLASS ||--o{ TIMETABLE_CLASS_SUBJECT : "subjects" TIMETABLE_CLASS ||--o{ TIMETABLE_CLASS_GROUP : "groups" TIMETABLE_CLASS ||--o{ LESSON : "lessons" TIMETABLE_CLASS_GROUP ||--o{ TIMETABLE_CLASS_GROUP : "parent (hierarchia)" TIMETABLE_CLASS_SUBJECT }o--|| SUBJECT : "źródło (częściowa kopia lokalna)" TIMETABLE_CLASS_SUBJECT }o--o{ TIMETABLE_TEACHER : "domyślni nauczyciele (teachers)" TIMETABLE_TEACHER }o--o| USER : "częściowa kopia lokalna i niejawne powiązanie przez identyfikator" GROUPSET_ITEM }o--o{ TIMETABLE_CLASS_GROUP : "grupy składowe" TIMETABLE { bool active "opublikowany?" array lessons "lekcje przekrojowe" } TIMETABLE_CONFIG { string type "week cycle calendar" int time_period "czas trwania przedziału" int time_unit "podział przedziału" array weekdays "dni robocze" string displaymode "hours periods agenda" int cycle "długość cyklu" array dates "granice w trybie calendar" object date_windows "okna generowania" } TIMETABLE_SITE { string name object distances "odległości między lokalizacjami" object hours "siatki godzin" } TIMETABLE_CLASSROOM { string name int capacity string specialisation "dowolna specjalizacja" int maxclasses "klasy jednocześnie" string building string description "dowolny opis" array tags "etykiety cech lub urządzeń" } TIMETABLE_RESOURCE { string name int number "dostępna ilość" } TIMETABLE_TEACHER { string first_name string last_name string virtual_name "stanowisko do obsadzenia" array subjects "przedmioty stanowiska wirtualnego" string idnumber int servicehours "do nadpisania w każdym planie lekcji" string classroom "sala uprzywilejowana" } TIMETABLE_CLASS { string name string level string campus array sites "uwzględniana jest tylko jedna lokalizacja" int studentsnb "teoretyczna liczba uczniów (do wyboru odpowiedniej sali)" string classroom "sala domyślna" bool offgrid "poza siatką (calendar)" string videolink "domyślny link do wideokonferencji na wszystkich lekcjach" string resourcelink "domyślny link do zasobów (LMS) na wszystkich lekcjach" } TIMETABLE_CLASS_SUBJECT { string code "odziedziczony z Subject" array incompatibilities "niekompatybilności" number pweight "waga pedagogiczna" array teachers "domyślni nauczyciele" number minutes "docelowa liczba godzin" string specialisation "wymagana sala" } TIMETABLE_CLASS_GROUP { string name string code bool free "grupa wolna" string parent "grupa nadrzędna" int studentsnb "teoretyczna liczba uczniów (do wyboru odpowiedniej sali)" } GROUPSET_ITEM { string name string code array groups "identyfikatory grup" } ``` ##### Konfiguracja — `TimetableConfig` Polem decydującym jest `type`: `week` (powtarzalny tygodniowy), `cycle` (cykl wielodniowy, zob. `cycle`) albo `calendar` (rzeczywiste daty, zob. `dates`). `time_period` i `time_unit` definiują ramę siatki godzin; `weekdays` — dni robocze; `date_windows` — okna ograniczeń dla generowania. ##### Lokalizacje, sale, zasoby `TimetableSite` (lokalizacja) zawiera swoje `classrooms` (`TimetableClassroom`: `capacity`, `specialisation`, `maxclasses`, `building`) oraz swoje `resources` (`TimetableResource`: `number` = dostępna ilość, której przekroczenia system nie dopuszcza). `distances` odwzorowuje czasy przejazdu między lokalizacjami. Zob. [Lokalizacje, sale i zasoby](#page-core-concepts.sites-rooms-resources) oraz [Specjalizacje sal](#page-core-concepts.classroom-specializations). ##### Nauczyciele planu lekcji — `TimetableTeacher` Uzupełniona kopia częściowa jednostki `User`: kopiowane są tylko niektóre pola identyfikacyjne (`first_name`, `last_name`, `idnumber`), do których dochodzą pola właściwe dla planowania (`servicehours` do nadpisania, uprzywilejowana `classroom`, `wishes` w ramach planu lekcji). Niepuste `virtual_name` oznacza **wirtualnego nauczyciela** (stanowisko do obsadzenia, bez rzeczywistego `User` w tle). ##### Klasy, przedmioty klas, grupy - **`TimetableClass`**: `name`, `level`, `campus`/`sites`, `studentsnb` oraz trzy kluczowe poddrzewa — `subjects`, `groups`, `lessons`. - **`TimetableClassSubject`**: lokalna kopia przedmiotu (rozszerza `Subject`), uzupełniona na potrzeby planowania — `minutes` (docelowa liczba godzin), `pweight` (waga pedagogiczna), `incompatibilities`, domyślni `teachers`, `specialisation` sali. Przypisanie przedmiotu **z typem lekcji** tworzy odrębny wpis dla każdego typu. Zob. [Kursy, lekcje, typy lekcji](#page-core-concepts.lessons-and-types). - **`TimetableClassGroup`**: podzbiór klasy. `free=true` wyłącza konflikty z pozostałą częścią klasy ([grupa wolna](#page-core-concepts.free-groups)); dzięki polu `parent` powstaje [hierarchia grup](#page-core-concepts.group-hierarchy). ##### Reguły między grupami — podziały klasy, wyrównania, grupy grup Relacje między grupami są przechowywane w poddrzewie `groups` planu lekcji, w trzech postaciach: | Schemat | Jednostka | Znaczenie | Strona | | --- | --- | --- | --- | | `TimetableGroupTimeset` | podział klasy | Wzajemnie wykluczające się grupy **tej samej klasy**, umieszczane równolegle (połówki klasy, przedmioty do wyboru) | [Podziały klasy](#page-core-concepts.class-divisions) | | `TimetableGroupSpaceset` | wyrównanie | Grupy z **różnych klas** pracujące razem w odpowiadających sobie przedziałach czasowych | [Wyrównania grup](#page-core-concepts.alignments) | | `TimetableGroupGroupset` | grupa grup | Metagrupa (`GroupsetItem`: `name`, `code`, `groups[]`) łącząca kilka grup | [Grupy grup](#page-core-concepts.groups-of-groups) | Zob. także przegląd ogólny [Klasa, grupa, podgrupa](#page-core-concepts.classes-and-groups). #### Poziom 3 — Lekcje **Lekcja** (`Lesson`) to jednostka nauczania faktycznie umieszczona w planie lekcji: czas trwania, przedmiot, grupa, nauczyciel(e), sala, zasoby, pozycja i status. Jest tworzona na podstawie przedmiotu klasy (zob. poziom 2) i przypisana **albo do klasy** (`class.lessons`), **albo bezpośrednio do planu lekcji** (`timetable.lessons`) — ten drugi przypadek dotyczy grup grup oraz lekcji wielogrupowych, przekrojowych wobec kilku klas. ```mermaid erDiagram TIMETABLE_CLASS ||--o{ LESSON : "lessons (lekcje klasy)" TIMETABLE ||--o{ LESSON : "lessons (grupy grup, lekcje wielogrupowe)" LESSON ||--o{ LESSON : "assoc · concat · weekalt (złożone lekcje)" LESSON }o--o| TIMETABLE_CLASS_GROUP : "group" LESSON }o--o{ TIMETABLE_TEACHER : "teachers" LESSON }o--o| TIMETABLE_CLASSROOM : "classroom" LESSON }o--o{ TIMETABLE_RESOURCE : "resources" LESSON ||--o{ MEMO : "memos" LESSON ||--|| POSITION : "position" LESSON { int duration "w liczbie przedziałów czasowych" int duration_actual "minuty rzeczywiste" int duration_accounted "minuty rozliczane" string modality "in_person remote hybrid self_study" string subject "identyfikator przedmiotu" string group "identyfikator grupy" array teachers "null wymusza brak nauczyciela" string classroom "null wymusza brak sali" string status "planned draft canceled done" string _id "stabilna tożsamość lekcji" string _osrev "rewizja (blokowanie optymistyczne)" } MEMO { string comment string pub "widoczność komentarza" string owner int tstp "znacznik czasu" } POSITION { string day "data, dzień tygodnia lub numer dnia cyklu" int period "indeks przedziału czasowego w siatce godzin" string start "dokładna godzina rozpoczęcia HH:MM (tylko poza siatką)" string end "dokładna godzina zakończenia HH:MM (tylko poza siatką)" bool fixed "lekcja zablokowana (nieprzenoszona przy generowaniu)" } ``` ##### Rdzeń lekcji Lekcja zawiera pola planowania — `duration` (w przedziałach czasowych), `duration_actual` / `duration_accounted` (minuty rzeczywiste / rozliczane), `modality`, `subject`, `group`, `teachers`, `classroom`, `resources` — do których dochodzą jej `position`, `status`, `memos` oraz tożsamość (`_id`, `_osrev`). Ustawienie `teachers` lub `classroom` na `null` **jawnie wymusza** brak nauczyciela lub sali. ##### Złożone lekcje Jedna lekcja może **skupiać inne**: - `assoc` — lekcje **skojarzone**: grupy wymieniają się razem. - `concat` — lekcje **połączone**: ściśle następujące po sobie. - `weekalt` — **tygodnie naprzemienne**: jeden wariant lekcji na tydzień. Te mechanizmy obejmują **złożone lekcje** — zob. [Złożone lekcje: naprzemienne, skojarzone, połączone](#page-core-concepts.complex-lessons). ##### Pozycja lekcji `position` to **obiekt**, który umieszcza lekcję w czasie. Skupia następujące pola: - **`position.day`** — dzień lekcji, **polimorficzny zależnie od trybu planu lekcji**: nazwa dnia (`monday`…`sunday`) w trybie tygodniowym, **numer dnia cyklu** (`"1"`, `"2"`…) w trybie cyklicznym albo **data** `YYYY-MM-DD` w trybie kalendarzowym. To jedno i to samo pole, które zmienia postać zależnie od trybu; jest zawsze obecne. - **`position.period`** — **indeks przedziału czasowego** w siatce godzin. Lekcja bez `period` ani `start`/`end` odpowiada dniu wolnemu. - **`position.start`** / **`position.end`** — dokładne godziny rozpoczęcia i zakończenia (`HH:MM`), dla lekcji **poza siatką** albo w trybie kalendarzowym, które nie wpisują się w standardowy przedział czasowy. - **`position.fixed`** — wartość logiczna (domyślnie fałsz): lekcja **zablokowana**, której **generowanie nie przeniesie**. Lekcje klasy znajdują się w `class.lessons`; tablica `timetable.lessons` zawiera lekcje **przekrojowe**, powiązane z grupami grup. ##### Tożsamość lekcji Każda lekcja ma dwa techniczne pola tożsamości, **obecne na kontach Premium**: - **`_id`** — identyfikator **stabilny**, nadawany przy utworzeniu lekcji i później niezmienny (łączy znacznik czasu i odcisk treści). To **klucz lekcji** dla współpracy w czasie rzeczywistym i dla zewnętrznego narzędzia, które śledzi lekcje w czasie. W przypadku **wystąpień powtarzalnych** w kalendarzowym planie lekcji (tygodnie naprzemienne, połączenia, skojarzenia) `_id` każdego wystąpienia jest **pochodną** identyfikatora lekcji podstawowej, która pozostaje rozpoznawalna. - **`_osrev`** — token **rewizji** (blokowanie optymistyczne), zwiększany przy każdej zmianie (znacznik czasu + numer zmiany), w porządku ściśle alfabetycznym (co pozwala łatwo stwierdzić, czy jedna rewizja jest nowsza od innej). Pozwala on współpracy w czasie rzeczywistym **wykrywać i scalać równoczesne zmiany**: nieaktualna rewizja po stronie klienta sygnalizuje konflikt, który serwer rozstrzyga lub scala, zamiast po cichu nadpisać dane. #### Nieobecności Nieobecności mają wspólną podstawę (`Absence`: `date_start`, `date_end`, `reason`, `hours`, `comment`, status), doprecyzowaną osobno dla każdego podmiotu. ```mermaid erDiagram ABSENCE ||--o{ ABSENCE_TEACHER : "teachers" ABSENCE ||--o{ ABSENCE_CLASS : "classes" ABSENCE ||--o{ ABSENCE_STAFF : "staff" ABSENCE ||--o{ ABSENCE_STUDENT : "students" ABSENCE_TEACHER ||--o{ SUBSTITUTE : "substitutes" ABSENCE_TEACHER { string date_start string date_end string reason "klucz tłumaczenia lub nazwa" array subjects "objęte przedmioty" array classes "objęte klasy" string status } SUBSTITUTE { string substitute "nazwisko zastępcy" string date_start "początek reguły (data)" string date_end "koniec reguły (data)" array hours "objęte przedziały (begin/end w minutach, day)" array classes "objęte klasy" array subjects "objęte przedmioty" string comment "komentarz" } ABSENCE_STUDENT { string date_start string reason array subjects "wyłączone przedmioty" string status } ``` Jednostkę `AbsenceTeacher` można ograniczyć do wybranych `subjects`/`classes`; zawiera ona **tablicę reguł zastępstwa** (`substitutes`, każda to `AbsenceTeacherSubstitute`: zastępca, okres, przedziały czasowe, objęte klasy i przedmioty). Statusy różnią się zależnie od podmiotu (na przykład `ok`/`aborted` dla klasy). Zob. hasło słownika [Zastępstwo](#page-glossary.substitution) oraz moduł **Zarządzanie nieobecnościami**. #### Członkowie personelu Odrębny moduł (sprzedawany także samodzielnie) do nadzoru i do dyżurów opiekuńczych. ```mermaid erDiagram STAFFING ||--o{ STAFFING_GRID : "grids" STAFFING ||--o{ STAFFING_ASSIGNMENT : "assignments" STAFFING ||--o{ STAFFING_STAFF_MEMBER : "staff" STAFFING ||--|| STAFFING_SCHEDULE : "schedule" STAFFING_ASSIGNMENT ||--o{ STAFFING_NEED_SPAN : "needs" STAFFING_GRID { array dates "zakresy działania" array days array periods "przedziały czasowe" } STAFFING_ASSIGNMENT { string name int req "minimalna liczba opiekunów" int ideal "pożądana liczba osób" string site string priority "high normal low" array allowed_staff } STAFFING_NEED_SPAN { string day "dzień lub data" string begin "HH:MM" string end "HH:MM" int headcount "wymagana liczba osób" } STAFFING_STAFF_MEMBER { string first_name string last_name string virtual_name "stanowisko do obsadzenia" string color } STAFFING_SCHEDULE { object dates "dyżury według daty" } ``` `StaffingGrid` to wzorzec (dni, przedziały czasowe); `assignments` opisują stanowiska (`req`/`ideal`, `priority`, `needs` wyszczególnione według przedziału przez `StaffingNeedSpan`); `schedule` materializuje faktyczne dyżury według daty. Zob. moduł Obsada personelu. #### Wydarzenia **`Event`** to wpis **kalendarza nałożony na siatkę godzin**: coś, co odbywa się w placówce, **nie będąc regularną lekcją** — posiedzenie rady pedagogicznej, zebranie z rodzicami, całodzienny egzamin, wycieczka, dzień otwarty. Wydarzenia są przechowywane w słowniku `events` (klucze `event-`) i należą do funkcji Premium. Pola jednostki `Event` (obowiązkowe: `title`, `start`, `end`): - **`title`** — wyświetlana nazwa. - **`start`** / **`end`** — początek i koniec, w formacie `YYYYMMDDTHHmmSS`. - **`rrule`** — ewentualna reguła **powtarzalności**. - **`attendees`** — uczestnicy: użytkownik, klasa, grupa, dowolna nazwa (`custom`) albo cała placówka (`everybody`) / każda osoba chętna (`anyone`). - **`location`** — miejsce (miejsca): sala z planu lekcji albo dowolna nazwa. - **`resources`** — zasoby zarezerwowane na wydarzenie. - **`videolink`** — link do wideokonferencji, aby uczestniczyć zdalnie. - **`memos`** — komentarze; **`color`** — kolor (szesnastkowy). Działanie po stronie użytkowania (tworzenie, umieszczanie na siatce godzin, pola interfejsu) opisuje strona [Wydarzenia jednorazowe](#page-schedules.events). #### Panele informacyjne **`Panel`** to **panel informacyjny** pokazujący lekcje danego dnia (hol, sala, ekran w recepcji…). Definiuje wybór `columns`, `topline`, `filters`/`exclusions` oraz ustawienia wyglądu. Zob. hasło słownika [Panel informacyjny](#page-glossary.panel). #### Identyfikatory, lokalne kopie i powiązanie z systemem ERP Aby powiązać model Omniscol z zewnętrzną bazą referencyjną, obowiązują trzy zasady: 1. **Klucze słowników są stabilnymi identyfikatorami.** Przedmioty, użytkownicy, nauczyciele, klasy, grupy, sale i zasoby są indeksowane niezmiennym identyfikatorem (kluczem JSON), a nie swoją nazwą. To ten punkt odniesienia — nigdy `name` — należy wykorzystywać do każdego odwzorowania. 2. **Pole `_extids` (`ExternalIds`) zawiera identyfikatory zewnętrzne.** Obecne w jednostkach podlegających synchronizacji (`Subject`, `Family`, `TimetableSite`, `TimetableClassroom`, `TimetableResource`, `TimetableTeacher`, `TimetableClass`, `TimetableClassGroup`, `User`…), przypisuje każdej jednostce jej identyfikatory w systemach zewnętrznych, na przykład `{ "auriga": "12345", "aimaira": "67890" }`. To kanoniczny punkt zakotwiczenia powiązania dwukierunkowego. 3. **Lokalna kopia szkoła ↔ plan lekcji jest celowa.** Przedmiot klasy albo nauczyciel planu lekcji to uzupełniona kopia, a nie żywe odniesienie. Zewnętrzna baza referencyjna musi więc zdecydować, na jakim poziomie się dopasowuje: do **bazy referencyjnej szkoły** (trwały katalog) albo do konkretnego **planu lekcji** (datowane planowanie). Szczegóły reguł propagacji znajdują się na stronie [Organizacja danych](#page-core-concepts.data-model). Konfiguracja synchronizacji znajduje się w `config.extsync` (`SchoolConfigExtsync`): `systems` (skonfigurowane konektory), `sync` (kierunek i jednostki), `export` oraz `schedules`, a także tabele odwzorowań (`mappings`) według klucza i identyfikatora Omniscol. Po stronie dostępu programowego interfejs REST i tokeny opisują [Tokeny API](#page-integrations.api-tokens); konektory synchronizacji — [Synchronizacja zewnętrzna](#page-integrations.extsync). > Dokładna i wyczerpująca postać każdego pola pozostaje zdefiniowana > w referencyjnym schemacie JSON konta > (`https://api.omniscol.com/api/guest/school_schema.json`, > czytelna przeglądarka pod adresem > [omniscol.com/pl/datamodel](https://www.omniscol.com/pl/datamodel)). > W razie rozbieżności między tą stroną a schematem **rozstrzyga schemat**. #### Zobacz także - [Organizacja danych](#page-core-concepts.data-model) - [Klasa, grupa, podgrupa](#page-core-concepts.classes-and-groups) - [Podziały klasy](#page-core-concepts.class-divisions) · [Wyrównania grup](#page-core-concepts.alignments) · [Grupy grup](#page-core-concepts.groups-of-groups) - [Kursy, lekcje, typy lekcji](#page-core-concepts.lessons-and-types) · [Złożone lekcje](#page-core-concepts.complex-lessons) - [Lokalizacje, sale i zasoby](#page-core-concepts.sites-rooms-resources) - [Rok szkolny](#page-core-concepts.school-year) - [Tokeny API](#page-integrations.api-tokens) · [Synchronizacja zewnętrzna](#page-integrations.extsync) ### 9.8 Zaawansowane zapytania — filtrowanie, projekcja i paginacja w API *Source: `help/pl/integrations/advanced-queries.md` · id: integrations.advanced-queries · Audience: admin · Plan: premium · Updated: 2026-07-11* > **Premium** > _Premium_ Poza wywoływaniem jednego punktu dostępu naraz API Omniscol udostępnia **trzy ścieżki wyszukiwania**. Razem obejmują one wyszukiwanie pełnotekstowe, odwzorowanie nazwy czytelnej dla człowieka na identyfikator techniczny oraz wykonanie zapytania **filtrowanego, z projekcją i paginacją** ponad dowolnym punktem dostępu do odczytu — bez konieczności samodzielnego łączenia kilku wywołań. Te same elementy odpowiadają na pytania, które najczęściej zadaje **intranet**, narzędzie do rezerwacji lub **ETL** — poczynając od *„która sala lub który nauczyciel jest wolny w tym przedziale czasowym?”* (zob. [Znalezienie wolnej sali lub wolnego nauczyciela](#znalezienie-wolnej-sali-lub-wolnego-nauczyciela)). #### Trzy ścieżki w skrócie | Punkt dostępu | Co robi | Idealny do | | --- | --- | --- | | `POST /api/search` | Globalne wyszukiwanie pełnotekstowe na całym koncie. Dzieli podany tekst na słowa (bez względu na wielkość liter i znaki diakrytyczne) i zwraca **ścieżki** JSON, w których znaleziono każde ze słów. | Szybkiego sprawdzenia „gdzie pojawia się to określenie?”. | | `POST /api/search/entity` | Odwzorowuje nazwę na jednostkę. Radzi sobie ze znakami diakrytycznymi, znakami wieloznacznymi i dopasowaniem przybliżonym (podobieństwo Dice'a) oraz zwraca typ, identyfikator i kontekst jednostki. | Zamiany `„3A”` na klasę albo `„Anna Kowalska”` na nauczyciela. | | `POST /api/search/query` | **Orkiestrator zapytań**: wywołuje punkt dostępu do odczytu, a następnie stosuje do wyniku filtr `where`, projekcję pól, sortowanie i paginację. | Złożonych, filtrowanych pytań, które inaczej wymagałyby kilku wywołań. | Wszystkie trzy znajdują się w interaktywnej dokumentacji API (strona **/developers**), w sekcji **Search**, i wymagają uwierzytelnienia — zob. [API Omniscol](#page-integrations.api-tokens). #### Filtr `where` (w stylu Mango / MongoDB) Zarówno `/api/search/entity`, jak i `/api/search/query` przyjmują klauzulę `where`: ustrukturyzowany filtr o **operatorach w stylu MongoDB**. Pole odpowiada albo wartości bezpośredniej (niejawna równość), albo obiektowi operatorów; kilka operatorów na tym samym polu łączy się niejawnym **I**. Nazwy pól dopuszczają **notację kropkową**, aby dotrzeć do kontekstu nadrzędnego (na przykład `sites.name`). | Operator | Znaczenie | | --- | --- | | `$eq` / `$ne` | Równe / różne | | `$gt` `$gte` `$lt` `$lte` | Porównania | | `$in` / `$nin` | Wartość należy / nie należy do listy | | `$exists` | Pole jest obecne | | `$regex` | Wyrażenie regularne (bez względu na wielkość liter) | | `$contains` | Łańcuch znaków lub tablica zawiera wartość (bez względu na wielkość liter) | | `$like` | Dopasowanie przybliżone, z pominięciem znaków diakrytycznych i interpunkcji (Dice) | | `$and` `$or` `$not` | Składanie logiczne | Kilka przykładów: ```json { "capacity": { "$gte": 20, "$lte": 50 } } { "level": { "$in": ["rok 1", "rok 2", "rok 3"] } } { "name": { "$regex": "^lab" } } { "city": { "$like": "kedzierzyn kozle" } } { "$or": [ { "capacity": { "$gte": 50 } }, { "specialisation": "chemistry" } ] } ``` #### Projekcja, sortowanie i paginacja Na `/api/search/query` cztery dodatkowe dźwignie utrzymują odpowiedź zwartą i uporządkowaną — co ma znaczenie dla panelu zarządczego, a tym bardziej dla agenta AI rozliczanego za tokeny: - **`project`** — lista pól do zachowania (notacja kropkowa jest dozwolona). Wszystko inne zostaje odrzucone. - **`sort`** — jedno pole, `asc` albo `desc`. Pseudopole `_count.` sortuje według długości pola tablicowego. - **`limit`** i **`offset`** — dzielą wyniki na strony. Odpowiedź zwraca także blok `meta`: ile elementów istniało przed filtrowaniem, ile przeszło filtr i ile zostało zwróconych. #### Pełny przykład Znalezienie sal na co najmniej 30 miejsc, zachowanie wyłącznie ich nazwy i pojemności, od największej do najmniejszej, i pobranie pierwszych 20: ```bash curl -X POST "https://nazwa-szkoly.omniscol.com/api/search/query" \ -H "Authorization: Bearer $OMNISCOL_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "call": "os_dashboard_classrooms_get", "where": { "capacity": { "$gte": 30 } }, "project": ["name", "capacity"], "sort": { "capacity": "desc" }, "limit": 20 }' ``` `call` to wewnętrzna nazwa punktu dostępu do odczytu, który ma zostać wykonany (taka, jaka widnieje na stronie **/developers**), `params` przenosi parametry właściwe temu punktowi dostępu, a `extract_path` wskazuje w razie potrzeby tablicę do filtrowania wewnątrz wyniku — pominięty tutaj, zostaje wykryty automatycznie. #### Znalezienie wolnej sali lub wolnego nauczyciela Najczęstsza integracja — zasilanie intranetu, narzędzia do rezerwacji lub **ETL** — to *„kto lub co jest wolne w danym momencie?”*. Punkty dostępu **availability** odpowiadają na to wprost: zwracają, dla każdej jednostki, wyłącznie **wolne** przedziały czasowe w żądanych datach, uwzględniając już lekcje, nieobecności i obowiązkową dostępność. O dostępność pyta się na dwa sposoby: - **Z zakresem** — `GET /api/schedules/availability/{datesrange}/{entity}` (w razie potrzeby `/{entityId}`) dla jednego typu jednostki — `teachers`, `classrooms`, `groups`, `resources`… - **Filtr jawny** — `GET /api/schedules/availability/{datesrange}` z parametrem `filter`, którym zawęża się zbiór tym samym `$where`, co powyżej. `{datesrange}` zapisuje się w formacie `YYYYMMDD`, a **segmenty rozdzielone przecinkami pytają o daty rozproszone** — idealnie do „dwóch wybranych poniedziałków”: `20261005,20261012`. Każdy zwrócony przedział czasowy zawiera `day`, `start`, `end` i `time` (w minutach): „co najmniej 3 godziny” staje się więc testem `time >= 180` po stronie integracji. ##### Nauczyciel wolny w konkretnym przedziale czasowym *„Którzy nauczyciele są wolni w poniedziałek 5 października?”* — jedno wywołanie z zakresem: ```bash curl -G "https://nazwa-szkoly.omniscol.com/api/schedules/availability/20261005/teachers" \ -H "Authorization: Bearer $OMNISCOL_TOKEN" \ --data-urlencode "with_entities=true" ``` Wolne przedziały czasowe wracają pogrupowane według rodzaju, a potem według nauczyciela — na przykład `{ "availability": { "teachers": { "a.kowalska": [ { "day": "2026-10-05", "start": "14:00", "end": "17:00", "time": 180 } ] } } }` — a narzędzie zewnętrzne zachowuje tego, który pokrywa żądany przedział czasowy. ##### Sale określonej wielkości, wolne w dwa poniedziałki Filtr jednostek i dostępność można połączyć w jednym wywołaniu, używając **użytecznego podzbioru** składni — samego `$where` na pojemności: ```bash curl -G "https://nazwa-szkoly.omniscol.com/api/schedules/availability/20261005,20261012" \ -H "Authorization: Bearer $OMNISCOL_TOKEN" \ --data-urlencode 'filter={"classrooms":[{"$where":{"capacity":{"$gte":30}}}]}' \ --data-urlencode "with_entities=true" ``` Omniscol zwraca wolne przedziały czasowe, w oba poniedziałki, każdej sali na co najmniej 30 miejsc. ETL zachowuje następnie sale mające okno **3 godzin** (`time >= 180`) w **każdej** z dat — składanie wyniku z kilku dni pozostaje po stronie integracji, co utrzymuje regułę jawną i możliwą do skontrolowania. Parametr `filter` przyjmuje, dla każdego typu jednostki, prostą listę identyfikatorów (`{"classrooms":["A101","B204"]}`), znak wieloznaczny (`{"teachers":"*"}`), proste dopasowanie pola (`{"teachers":[{"email":"…"}]}`) albo ustrukturyzowany `$where` pokazany tutaj. #### Wybór właściwej ścieżki - **„Gdzie pojawia się to słowo?”** → `POST /api/search`. - **„Której jednostce odpowiada ta nazwa?”** → `POST /api/search/entity`. - **„Proszę podać sale na ponad 30 miejsc, posortowane, pierwsza strona”** → `POST /api/search/query`. - **„Kto lub co jest wolne w tym przedziale czasowym?”** → `GET /api/schedules/availability/…`. #### Dla agenta AI Te ścieżki istnieją w dużej mierze **dla agentów AI**. Wyszukiwanie pełnotekstowe i rozpoznawanie jednostek zamieniają sformułowanie użytkownika (`„nauczyciel Jan Kowalski”`, `„klasa 3A”`) na precyzyjne identyfikatory; orkiestrator zapytań odpowiada następnie na filtrowane pytanie w jednym wywołaniu i zwraca tylko żądane pola — zamiast kilku wywołań i przewymiarowanej odpowiedzi. Po podłączeniu agenta przez [MCP — podłączenie zewnętrznego agenta AI](#page-integrations.mcp) te narzędzia należą do tego, czym agent może się posługiwać. #### Podłączenie do intranetu, ETL lub narzędzia partnerskiego Te same ścieżki w trybie odczytu są tym, co narzędzie zewnętrzne wykorzystuje na co dzień. Typowe formy: - **Pobranie do intranetu lub panelu zarządczego** — własna strona wywołuje punkty dostępu do odczytu (dostępność, [punkt dostępu lekcji](#page-integrations.lessons-api), panele zarządcze) z ograniczonym **tokenem API** i wyświetla wynik. Po stronie Omniscol nie ma nic do instalowania. - **Nocny ETL** — zaplanowane zadanie pobiera to, czego potrzebuje (lekcje w oknie dat, godziny nauczyciela, obłożenie sal) i wczytuje to do własnego systemu informatycznego. `search/query` utrzymuje każde pobranie filtrowane, z projekcją i paginacją, dla zwartej odpowiedzi. - **Wysyłka z własnego systemu** — kierunek odwrotny, aby utrzymać Omniscol zgodny z własnym źródłem prawdy: nocne zadanie może aktualizować klasy i nauczycieli (`POST /api/external/classes`, `POST /api/external/teachers`) albo wczytać listę przedmiotów niestandardowych (`POST /api/admin/subjects/custom`) z własnej bazy. - **Oprogramowanie SIS / ERP** — dla Aurion, Auriga i podobnych właściwym narzędziem jest dedykowany konektor — zob. [Synchronizacja z systemami zewnętrznymi](#page-integrations.extsync). - **Sterowane zdarzeniami** — aby otrzymywać powiadomienie o zmianie zamiast odpytywać w pętli, należy zarejestrować **hook** — zob. [Personalizacja API](#page-integrations.api-customization). Każdą integrację należy utrzymywać **ograniczoną**: token zawężony do rzeczywiście potrzebnych punktów dostępu, odnawiany regularnie i w trybie tylko do odczytu wszędzie tam, gdzie integracja jedynie czyta. Zob. [API Omniscol](#page-integrations.api-tokens). #### Zobacz także - [API lekcji](#page-integrations.lessons-api) - [API Omniscol](#page-integrations.api-tokens) - [MCP — podłączenie zewnętrznego agenta AI](#page-integrations.mcp) - [Pełny model danych](#page-integrations.data-model-full) - [Wbudowany asystent AI](#page-integrations.ai-assistant) - [Przegląd integracji](#page-integrations.overview) ### 9.9 API lekcji — pobieranie lekcji dla dowolnej daty *Source: `help/pl/integrations/lessons-api.md` · id: integrations.lessons-api · Audience: admin · Plan: premium · Updated: 2026-07-11* > **Premium** > _Premium_ Gdy coś poza Omniscolem potrzebuje wiedzieć, *co się dzieje i kiedy*, wywoływany jest właśnie ten punkt dostępu: ``` GET /api/schedules/lessons/{datesrange} ``` Zwraca **datowane lekcje** z planów lekcji — każdą lekcję umieszczoną na jej rzeczywistej dacie — dla żądanych dat i jednostek. Niemal każda integracja (intranet, ETL, narzędzie partnerskie) zaczyna się właśnie tutaj. Ta strona omawia dźwignie, które czynią z niego jeden punkt dostępu do wielu zastosowań. #### Lekcje a struktury Dwa punkty dostępu, dwie role: - **`GET /api/schedules/lessons/{datesrange}`** — **lekcje**: każda lekcja umieszczona na rzeczywistej dacie, wraz z jej przedmiotem, nauczycielami, salą, grupą i czasem trwania. To właśnie czyta się, aby wiedzieć, kto jest gdzie i kiedy. - **`GET /api/schedules/`** — **struktury**: same opublikowane plany lekcji (klasy, przedmioty, lokalizacje, siatka godzin). Do czytania wtedy, gdy potrzebny jest model leżący u podstaw, a nie datowane lekcje. Struktury można też zwinąć do wywołania lekcji za pomocą `with_timetables=true` (zob. poniżej): jedno żądanie zwraca wtedy jedno i drugie. #### Wybór dat `{datesrange}` zapisuje się w formacie `YYYYMMDD` i jest celowo elastyczny: | Forma | Znaczenie | | --- | --- | | `20261005` | Jeden konkretny dzień | | `20261005-20261011` | Zakres zamknięty (jeden tydzień) | | `20260901-` / `-20260630` | Otwarty z jednej strony | | `20261005,20261012,20261019` | Daty **rozproszone** — trzy konkretne poniedziałki | | `20261005-20261011,20261102-20261108` | Kilka zakresów naraz | | `` albo `-` | Wszystkie daty | Forma rozproszona (rozdzielona przecinkami) sprawia, że pytanie w rodzaju „te trzy poniedziałki” staje się jednym wywołaniem. #### Zawężenie do tego, co potrzebne Parametr `filter` zawęża żądanie do jednostek, które się liczą — ta sama gramatyka filtra co w punktach dostępu zwracających dostępność ([Zaawansowane zapytania](#page-integrations.advanced-queries)): - prosta lista identyfikatorów — `{"classes":["3a","3b"]}`, - znak wieloznaczny — `{"teachers":"*"}`, - proste dopasowanie pola — `{"classrooms":[{"site":"centrum"}]}`, - albo ustrukturyzowany `$where` — `{"classrooms":[{"$where":{"capacity":{"$gte":30}}}]}`. Wynik jest pogrupowany **według typu filtra, a potem według identyfikatora jednostki** — na przykład `schedules.classes.3a.lessons[]`, `schedules.teachers.a-kowalska.lessons[]`. Dwa kolejne ustawienia zakreślają ramy pobierania, a ostatnie je ogranicza: - **`timetables_restrict`** / **`timetables_exclude`** — ograniczenie lub wykluczenie identyfikatorów planu lekcji (łańcuch znaków, CSV albo tablica). - **`limit`** — pułap liczby lekcji zwracanych dla każdego filtra. #### Jak wygląda lekcja Każdy wpis w `lessons[]` to umieszczona lekcja: ```json { "position": { "day": "2026-10-05", "period": 0, "start": "8:15", "end": "9:10" }, "duration": 2, "subject": "matematyka", "teachers": ["a-kowalska"], "classroom": "centrum:B12", "class": "3a", "schedid": "3" } ``` - **`position.day`** to data lekcji. - **`position.period`** to numer pozycji lekcji na siatce godzin planu lekcji — obecny przy lekcjach umieszczonych na siatce. Lekcja poza siatką (z własnymi, jawnymi `start`/`end`, poza regularnymi przedziałami czasowymi) nosi w zamian `start`/`end`, bez `period`. - **`position.start`** / **`position.end`** (godziny) towarzyszą zawsze lekcji poza siatką, a do lekcji na siatce dochodzą po przekazaniu **`with_hours=true`** (godziny wyliczone wcześniej). Do włączenia wtedy, gdy system docelowy potrzebuje godzin zegarowych, a nie numeru pozycji na siatce. #### Nieobecności, odwołania i zastępstwa Domyślnie punkt dostępu **konsoliduje nieobecności**: nieobecny nauczyciel zostaje usunięty z lekcji, a lekcja, na której nie został żaden nauczyciel, jest uznawana za odwołaną i pomijana. Kilka przełączników zmienia to zachowanie: - **`without_absences`** — całkowite pominięcie nieobecności; zwrócenie planu lekcji w postaci surowej, tak jak został zaplanowany. - **`with_absences`** — dodanie surowych nieobecności z danego okresu obok lekcji. - **`with_cancellessons`** — zachowanie odwołanych lekcji (wszyscy nauczyciele nieobecni) zamiast ich pomijania. - **`with_studentcancellessons`** — zachowanie wyłącznie lekcji odwołanych z powodu nieobecności ucznia. - **`with_removedlessons`** — zwrócenie usuniętych lekcji (wyklucza się z `with_cancellessons`). - **`without_teacher_consolidation`** — zachowanie nieobecnych nauczycieli na liście `teachers` każdej lekcji zamiast ich usuwania. - **`without_holidays`** — niewstawianie dni wolnych w zakres. Domyślnie, gdy do nieobecności wyznaczono zastępcę, **zajmuje on po prostu miejsce nieobecnego nauczyciela na liście `teachers`** lekcji — zastępstwo jest niewidoczne, bez dodatkowego pola. Po przekazaniu **`with_cancellessons`** albo **`without_teacher_consolidation`** lekcja nosi ponadto blok **`substitutes`** (identyfikator zastępcy, powód nieobecności oraz nieobecność, która je wymusiła), aby w tej samej odpowiedzi zobaczyć, kto został zastąpiony i dlaczego. #### Struktury i spisy Przydatne dane referencyjne można dołączyć w tym samym wywołaniu: - **`with_timetables=true`** — surowe struktury planów lekcji, które posłużyły do wyliczenia lekcji (klasy, przedmioty, siatka godzin, według identyfikatora). Do włączenia, aby rozwiązać identyfikatory; do pozostawienia wyłączonym dla zwartej odpowiedzi. - **`with_entities=true`** — nazwa i kod w wersji lekkiej (oraz pola imienia i nazwiska) jednostek z wyniku. - **`with_teachers`** / **`with_all_teachers`** — nauczyciele występujący na lekcjach albo wszyscy nauczyciele z planu lekcji i ze spisu użytkowników. - **`with_students`** — uczniowie wraz z ich przypisaniami według daty. - **`with_events=true`** — wydarzenia poza siatką (posiedzenia rady pedagogicznej, zebrania z rodzicami…) w tym samym zakresie. #### Nocne pobranie ETL Pobranie tygodnia lekcji dla wszystkich klas, wraz z godzinami, i wczytanie go do własnego systemu informatycznego: ```bash curl -G "https://nazwa-szkoly.omniscol.com/api/schedules/lessons/20261005-20261011" \ -H "Authorization: Bearer $OMNISCOL_TOKEN" \ --data-urlencode 'filter={"classes":"*"}' \ --data-urlencode "with_hours=true" ``` Odpowiedź grupuje lekcje pod `schedules.classes..lessons[]`. Nieobecności są już skonsolidowane: to, co zostaje wczytane, odzwierciedla rzeczywisty i aktualny plan lekcji — należy dodać `with_absences=true`, aby zapisać także powód zmiany. #### Wysyłanie do Omniscol Integracja działa też w drugą stronę — aby utrzymać Omniscol w zgodzie z zewnętrznym źródłem prawdy. Dla oprogramowania SIS / ERP (Aurion, Auriga…) właściwym narzędziem jest dedykowany konektor, a nie surowe punkty dostępu poniżej — zob. [Synchronizacja z systemami zewnętrznymi](#page-integrations.extsync). ##### Klasy i nauczyciele Te punkty dostępu istnieją **wyłącznie** na potrzeby synchronizacji z systemem zewnętrznym; interfejs Omniscol nigdy sam ich nie wywołuje: - **`POST /api/external/classes`** (`os_external_classes_post`) — aktualizacja istniejących klas (nazwa, lokalizacja, poziom, sala, liczba uczniów) z danych indeksowanych identyfikatorem klasy. Aktualizuje klasy znane; nowych nie tworzy. Ustawienie pola na `null` je czyści (z wyjątkiem nazwy klasy — klasa zachowuje swoją nazwę). - **`POST /api/external/teachers`** (`os_external_teachers_post`) — wstawienie lub aktualizacja nauczycieli według identyfikatora, zarówno w planach lekcji, jak i w spisie użytkowników (z utworzeniem w razie potrzeby użytkownika o roli nauczyciela i z automatycznie wygenerowanym loginem). Warianty `DELETE` usuwają klasę albo nauczyciela. Istnieje też szczególny punkt dostępu, **wyłącznie do nadpisania**, `os_external_classes_get`: Omniscol nie dostarcza dla niego żadnej domyślnej implementacji, ale gdy partner albo dostawca skieruje go na własną usługę (przez [Personalizacja API](#page-integrations.api-customization)), ekran tworzenia klasy wypełnia się wstępnie z tej **zamkniętej listy klas** zamiast ręcznego formularza. Bez nadpisania po prostu nic nie robi. ##### Przedmioty niestandardowe **`POST /api/admin/subjects/custom`** (`os_admin_subjects-custom_post`) wczytuje **katalog przedmiotów niestandardowych** albo tworzy jeden przedmiot. Korzysta z niego także interfejs. Treść żądania dla katalogu to `{ "subjects": [ … ], "replace": false, "duplicates_reuse": true }`: domyślnie przyrostowo, `replace: true` dla pełnego odświeżenia, `duplicates_reuse: true` (wartość domyślna), aby dopasować istniejące przedmioty według identyfikatora zewnętrznego, kodu albo nazwy. To punkt dostępu nocnej wysyłki przedmiotów. #### Zobacz także - [Zaawansowane zapytania](#page-integrations.advanced-queries) - [API Omniscol](#page-integrations.api-tokens) - [Pełny model danych](#page-integrations.data-model-full) - [Synchronizacja z systemami zewnętrznymi](#page-integrations.extsync) - [Personalizacja API](#page-integrations.api-customization) - [Przegląd integracji](#page-integrations.overview) ### 9.10 MCP — podłączenie zewnętrznego agenta AI do Omniscol *Source: `help/pl/integrations/mcp.md` · id: integrations.mcp · Audience: admin · Plan: premium · Updated: 2026-06-13* > **Premium** > _Premium_ **Model Context Protocol (MCP)** to otwarty standard, który pozwala asystentowi AI zgodnemu z MCP korzystać z narzędzi dziedzinowych udostępnianych przez usługę zewnętrzną. Omniscol udostępnia dużą część swojego API w postaci **serwera MCP**: agent AI może odpytywać konto za pomocą dozwolonych punktów dostępu API lub uprawnień, gdy się uwierzytelni — przez OAuth2, standardowy tryb MCP, albo przez token. #### Co agent może zrobić Agent MCP sprawdza się bardzo dobrze w **pytaniach o odczyt danych**, na które odpowiedź jest w Omniscol: - *„Proszę podać wskaźnik obłożenia sal w odniesieniu do godzin otwarcia w tym tygodniu.”* - *„Proszę znaleźć salę wolną w trzy październikowe poniedziałki w tym samym dwugodzinnym przedziale czasowym.”* - *„Ile godzin lekcyjnych przeprowadził Jan Kowalski w bieżącym roku szkolnym?”* - *„Jakie są wszystkie dzisiejsze lekcje matematyki?”* - *„Proszę wymienić nauczycieli, którzy w tym semestrze wypracowali mniej niż 70% swoich godzin pracy.”* Takie zapytania zwykle łączą kilka narzędzi: plan lekcji, statystyczne panele zarządcze, wyliczoną dostępność, karty nauczycieli. Agent orkiestruje wywołania i formułuje odpowiedź w języku naturalnym. #### Udostępnione narzędzia Serwer MCP buduje swoje narzędzia na podstawie punktów dostępu API Omniscol dozwolonych dla MCP. Punkty dostępu wyraźnie pominięte oraz niektóre moduły techniczne (na przykład związane z uwierzytelnianiem użytkowników) nie stają się narzędziami. Lista odzwierciedla więc API udostępnione MCP, a nie całe wnętrze aplikacji. Jest to jednak bardzo duża jego część. Co więcej, istnieje pewna liczba punktów dostępu przeznaczonych wyłącznie dla MCP i nieużywanych przez Omniscol. Tak jest w przypadku narzędzi wyszukiwania zaawansowanego, dzięki którym swobodny tekst wskazujący jednostkę („nauczyciel Jan Kowalski”, „klasa 3A”) zostaje odnaleziony przez Omniscol wraz z technicznym identyfikatorem, służącym następnie do precyzyjnego odpytania danych. Tak jest również w przypadku narzędzi złożonych, dla których Omniscol nie ma interfejsu graficznego, bo lepiej nadają się do promptu: szukanie obłożenia i dostępności jednostki, na przykład („proszę znaleźć salę wolną na 2 godziny po południu w 3 poniedziałki z rzędu”, „czy nauczyciel matematyki jest dostępny w tygodniu od 14 października na 3 godziny?”). Narzędzia obejmują w szczególności: - moduł **Administracja** (użytkownicy, przedmioty, lata szkolne, ustawienia), - moduł **Zarządzanie planami lekcji** (konfiguracja, lokalizacje, sale, klasy, kursy), - moduł **Plany lekcji** (planowanie, panele zarządcze, wyszukiwanie), - moduł **Zarządzanie nieobecnościami** (zgłaszanie, statystyki), - wyszukiwanie globalne. Punkty dostępu do odczytu najlepiej nadają się do pracy agenta. Pewne operacje zapisu mogą istnieć w katalogu, zależnie od uprawnień tokenu i dostępnego API, ale muszą pozostać pod nadzorem: zapytanie, które zmienia kilka obiektów dziedzinowych, powinno zostać sprawdzone przez użytkownika, zanim uzna się je za wiarygodne. #### Włączenie serwera MCP Serwer MCP jest dostępny na kontach **Premium**. Wszystko zaczyna się na **ekranie MCP**, otwieranym z modułu **Administracja** przyciskiem **Konfiguruj**: wyświetla on **adres URL serwera** zależnie od wybranego zakresu (globalnego albo ograniczonego do jednego modułu) i podaje, gotowe do skopiowania, elementy konfiguracji klienta. **Standardowym uwierzytelnianiem MCP jest OAuth2.** Zgodny klient (na przykład Claude) łączy się po prostu z adresem URL serwera, odnajduje tam konfigurację OAuth2 konta, a użytkownik zatwierdza dostęp na ekranie zgody: **nie trzeba podawać nic poza adresem URL**. Przyznany zakres wynika z uprawnień konta i jego ograniczeń widoczności. Serwer OAuth2 Omniscol, jego ekran zarządzania klientami oraz szczegóły zgody opisuje [OAuth2 / OIDC (dostawca)](#page-integrations.oauth-server). Dla klienta, który nie obsługuje OAuth2, ten sam ekran generuje **token** (klucz API, data wygaśnięcia, opcjonalny powiązany użytkownik, prawa zapisu do zaznaczenia), a następnie podaje, gotowe do wklejenia, formaty przydatne w danym przypadku: nagłówek `Authorization: Bearer`, adres URL z tokenem, blok konfiguracji **Claude Desktop** (wersja darmowa) oraz polecenie lokalnego proxy. Token opiera się na systemie kluczy opisanym w [API Omniscol](#page-integrations.api-tokens). #### Dobre praktyki bezpieczeństwa - **Uwierzytelnianie OAuth2** — wygodniejsze i warte wybrania, gdy agent je obsługuje (Claude w wersji płatnej). - **Token dedykowany dla AI** — proszę utworzyć token z opisową etykietą (`Agent AI — Claude desktop`), który można w razie potrzeby unieważnić. - **Minimalny zakres** — przy tokenie API proszę zaznaczyć tylko niezbędne punkty dostępu API. Przy tokenie OAuth proszę ograniczyć zakresy do rzeczywistej potrzeby. - **Dziennik aktywności (logi)** — wywołanie pojawia się w dziennikach powiązanych z tokenem, jeśli dany punkt dostępu jest objęty dziennikiem. Dzienniki rejestrują samo wywołanie; nie przechowują ani szczegółów zwróconych danych, ani odtwarzalnej treści zapytania. - **Ograniczenia widoczności** — agent widzi to, co zwraca mu Omniscol. Jeśli dla roli tokenu skonfigurowano surowe ograniczenia widoczności, obowiązują one również tutaj. #### Instrukcja — Podłączenie Claude do Omniscol Zalecana droga to **uwierzytelnianie OAuth2**: wystarczy podłączyć Claude do serwera MCP przez jego adres URL, bez operowania tokenem. 1. **Proszę włączyć serwer MCP** na koncie Premium i pobrać jego adres URL (zwykle `https://nazwa-szkoly.omniscol.com/mcp`). Ekran MCP (moduł **Administracja**, przycisk **Konfiguruj**) wyświetla go zależnie od wybranego zakresu, wraz z przyciskiem kopiowania. 2. **Proszę dodać Omniscol jako konektor w Claude.** W ustawieniach konektorów Claude należy dodać własny konektor i wkleić adres URL serwera MCP Omniscol. 3. **Proszę zatwierdzić dostęp.** Claude przekierowuje na ekran zgody Omniscol: należy się zalogować i zezwolić na dostęp. Przyznany zakres wynika z uprawnień konta oraz z ewentualnych ograniczeń widoczności. 4. **Narzędzia pojawiają się w Claude**, który wywołuje je, gdy zapytanie się do tego nadaje. 5. **Pierwszy test**: *„Ile godzin lekcyjnych przeprowadził Jan Kowalski w tym roku?”* — Claude łączy dostępne dane i odpowiada w języku naturalnym. **Metoda alternatywna przez token.** Dla klienta MCP, który nie obsługuje OAuth2, proszę wygenerować dedykowany token z ekranu MCP (opisowa etykieta, punkty dostępu ograniczone do rzeczywistej potrzeby, prawa zapisu zaznaczone wyraźnie) i przekazać go w nagłówku `Authorization: Bearer`. Ekran MCP podaje odpowiedni blok konfiguracji. Jeśli tylko klient obsługuje OAuth2, lepiej wybrać właśnie tę drogę. #### Zobacz także - [Wbudowany asystent AI](#page-integrations.ai-assistant) - [API Omniscol](#page-integrations.api-tokens) - [Zaawansowane zapytania](#page-integrations.advanced-queries) - [OAuth2 / OIDC (dostawca)](#page-integrations.oauth-server) - [Przegląd integracji](#page-integrations.overview) ### 9.11 Wbudowany asystent AI *Source: `help/pl/integrations/ai-assistant.md` · id: integrations.ai-assistant · Audience: admin · Status: stable · Updated: 2026-09-30* **Wbudowany asystent AI** to przestrzeń rozmowy w Omniscol, w której można zadać pytanie w języku naturalnym wprost z interfejsu. Otwiera się w zakładce **Asystent AI** panelu pomocy, zastrzeżonej dla administratorów. Asystent opiera się na korpusie pomocy oraz, zależnie od umowy konta, na narzędziach Omniscol udostępnionych agentowi. Zakres zależy od konta: asystent dokumentacyjny odpowiada na podstawie pomocy online, a konta, których umowa to przewiduje, zyskują dodatkowo dostęp do narzędzi operacyjnych odpytujących dane konta. Aby połączyć zewnętrznego agenta AI z kontem, proszę skorzystać z [MCP — podłączenie zewnętrznego agenta AI](#page-integrations.mcp). #### Co obejmuje asystent Asystent jest przeznaczony do dwóch rodzajów zapytań: - **pytania dokumentacyjne** — odnalezienie procedury, wyjaśnienie pojęcia, wskazanie właściwej strony pomocy; - **pytania operacyjne** — odpytanie danych konta za pomocą dozwolonych narzędzi, na przykład o lekcje, sale, nauczycieli, nieobecności lub statystyki. Przykłady: - *„Jak opublikować plan lekcji?”* - *„Gdzie skonfigurować linki iCal?”* - *„Jakie lekcje matematyki są zaplanowane na dziś?”* - *„Dlaczego to generowanie planu lekcji zostawia lekcje nieumieszczone?”* #### Co asystent widzi z ekranu Asystent wie, który ekran przegląda użytkownik. Nie widzi natomiast tego, co ten ekran pokazuje (nazw, liczb, otwartych okien), dopóki użytkownik mu tego nie dołączy. Przycisk aparatu (Dołącz to, co pokazuje ekran), po lewej stronie pola wprowadzania, udostępnia: - **Zrzut ekranu** lub **Zrzut obszaru**: obraz ekranu albo jego części, na kontach Premium; - **Kontekst ekranu (bez danych)**: adres ekranu, jego tytuł i widoczne na nim elementy, bez ich treści; - **Treść na pierwszym planie**: tekst tego, co jest otwarte nad ekranem, na przykład szczegóły konfliktu; - **Pełna treść (z danymi)**: tekst całej strony, wraz z danymi, które ona pokazuje. Na kontach bez Premium kontekst ekranu towarzyszy każdemu pytaniu. Gdy jakaś treść jest na pierwszym planie, asystent sygnalizuje to nad polem wprowadzania: „Asystent nie widzi treści na pierwszym planie.” Jej tekst zostaje przesłany dopiero po kliknięciu **Treść na pierwszym planie**. #### Uprawnienia i zakres Asystent nie ma nieograniczonego dostępu do konta. Jego odpowiedzi i czynności zależą od: - umowy konta, która decyduje, czy narzędzia operacyjne są włączone; - uprawnień zalogowanego administratora; - narzędzi faktycznie udostępnionych agentowi; - danych dostępnych w Omniscol. Czynność, która zmienia dane operacyjne, wymaga wyraźnego potwierdzenia, zanim zostanie zastosowana. W przypadku integracji z zewnętrznymi agentami proszę korzystać z [MCP — podłączenie zewnętrznego agenta AI](#page-integrations.mcp) oraz dedykowanych tokenów. #### Dobre praktyki - Proszę sprawdzić proponowane czynności przed ich zastosowaniem. - Proszę nie kopiować danych wrażliwych do rozmowy, jeśli nie są niezbędne do zapytania. - W przypadku agenta zewnętrznego proszę utworzyć dedykowany token o minimalnym zakresie i odpowiednim terminie wygaśnięcia. #### Zobacz także - [MCP — podłączenie zewnętrznego agenta AI](#page-integrations.mcp) - [API Omniscol](#page-integrations.api-tokens) - [Plany i opcje Omniscol](#page-overview.plans-and-options) ### 9.12 OIDC / SSO — logowanie przez dostawcę tożsamości *Source: `help/pl/integrations/oauth2.md` · id: integrations.oauth2 · Audience: admin · Plan: premium · Updated: 2026-06-13* > **Premium** > _Premium_ OpenID Connect (OIDC), zbudowany na OAuth2, pozwala użytkownikom logować się do Omniscol **kontem firmowym**, a nie osobnym hasłem Omniscol. Trzy korzyści: jedno hasło do zapamiętania, centralne wyłączenie dostępu przy przyjściu i odejściu pracownika, automatyczne stosowanie polityki bezpieczeństwa (MFA, długość hasła, wygaśnięcie…) zarządzanej po stronie systemu informacyjnego. Ta strona opisuje **SSO użytkowników**: logowanie osób do Omniscol przez dostawcę tożsamości szkoły. Przypadek odwrotny — Omniscol jako **serwer** OAuth2 / OIDC, z którym łączą się usługi zewnętrzne, wraz z jego ekranem zarządzania klientami — jest omówiony na [OAuth2 / OIDC (dostawca)](#page-integrations.oauth-server). #### Obsługiwani dostawcy Omniscol obsługuje: - **Google Workspace**, - **Microsoft Entra ID** (dawniej Azure AD), - **Keycloak**, - **generycznego dostawcę OIDC** przez jego adres issuer / discovery (dowolnego dostawcę zgodnego z OIDC). #### Konfiguracja po stronie Omniscol W module **Administracja** → **Ustawienia**, w sekcji **Bezpieczeństwo**, przycisk **Konfiguruj** otwiera ekran konfiguracji OIDC, na którym deklaruje się dostawcę: - **Nazwa wyświetlana** — etykieta, która pojawi się na przycisku logowania (na przykład `Zaloguj się przez Google`). - **Typ dostawcy** — Google, Microsoft Entra ID (Azure AD), Keycloak albo generyczny OIDC. - **Tenant / issuer** — tenant Microsoft dla Entra ID albo adres URL issuer dla Keycloaka i generycznych dostawców OIDC. Metadane OIDC są następnie wykrywane przez aplikację. - **Client ID** oraz **Client secret** — uzyskane przez utworzenie aplikacji po stronie dostawcy (zob. dokumentację dostawcy). - **Zakresy** — domyślnie `openid profile email`. W razie potrzeby proszę dodać zakresy właściwe danemu dostawcy. - **Dozwolone domeny** — opcjonalna lista domen pocztowych akceptowanych przy logowaniu SSO; jeśli pozostanie pusta, żadne filtrowanie po domenie nie jest stosowane. - **Adres URL przekierowania** — Omniscol podaje dokładną wartość do skopiowania w konfiguracji po stronie dostawcy (a także adres URL przekierowania po wylogowaniu, jeśli dostawca go wymaga). - Logowanie wyłącznie przez SSO — gdy SSO zostanie zatwierdzone, ta opcja odrzuca logowanie hasłem Omniscol, z wyjątkiem **kont awaryjnych** opisanych poniżej. Bieżąca konfiguracja SSO jest określona na poziomie konta szkoły. #### Dostęp awaryjny (break-glass) W trybie **Logowanie wyłącznie przez SSO** logowanie hasłem Omniscol jest odrzucane: wszyscy przechodzą przez dostawcę tożsamości. Jeśli ten dostawca stanie się nieosiągalny — awaria, wygasły sekret, błąd konfiguracji — dostęp do Omniscol byłby zablokowany dla wszystkich. **Konto awaryjne („break-glass”)** jest zabezpieczeniem przed tą blokadą: konto **administratora** uprawnione do logowania hasłem Omniscol nawet wtedy, gdy tryb wyłącznego SSO jest aktywny. - W karcie konta **administratora**, gdy opcja **Logowanie wyłącznie przez SSO** jest aktywna, pojawia się pole wyboru **Break-glass (SSO only)**. Jego zaznaczenie pozwala temu kontu zalogować się hasłem, jeśli dostawca tożsamości jest nieosiągalny. Uprawnienie to mogą otrzymać wyłącznie konta administratorów. - Wsparcie Omniscol zachowuje ponadto niezależny dostęp awaryjny. Proszę wyznaczyć co najmniej jedno konto awaryjne **przed** włączeniem trybu wyłącznego SSO i przechowywać jego hasło w bezpiecznym miejscu: to zabezpieczenie na wypadek awarii dostawcy tożsamości. #### Konfiguracja po stronie dostawcy (przykłady) ##### Google Workspace 1. Konsola Google Cloud > **APIs & Services > Credentials**. 2. Proszę utworzyć **identyfikator OAuth 2.0**, typ **Aplikacja internetowa**. 3. Proszę wkleić adres URL przekierowania podany przez Omniscol w **Authorized redirect URIs**. 4. Proszę odczytać **Client ID** oraz **Client secret**, aby wkleić je w Omniscol. ##### Microsoft Entra ID 1. Portal Azure > **Entra ID > App registrations**. 2. **New registration**, typ **Web**, adres URL przekierowania z Omniscol. 3. **Certificates & secrets** > proszę utworzyć client secret. 4. **API permissions** > proszę dodać `openid`, `profile`, `email`. 5. Proszę odczytać **Application (client) ID** oraz sekret. ##### Keycloak 1. Realm > **Clients > Create client**, typ **OpenID Connect**. 2. **Valid redirect URIs**: adres URL podany przez Omniscol. 3. **Credentials** > proszę odczytać client secret. #### Powiązanie z kontami Omniscol Gdy użytkownik kliknie przycisk SSO, Omniscol: 1. przekierowuje go do dostawcy, 2. po uwierzytelnieniu odczytuje jego adres e-mail, 3. szuka konta Omniscol o **tym samym adresie e-mail**. Jeśli konto istnieje i jest aktywne, użytkownik zostaje zalogowany. W przeciwnym razie dostęp jest odrzucany. Konsekwencja: aby SSO działało, użytkownicy muszą istnieć w Omniscol z poprawnym adresem e-mail — tworzenie kont nie jest domyślnie automatyczne po stronie Omniscol. #### Automatyczne zakładanie kont Automatyczne tworzenie kont przy pierwszym logowaniu SSO (`just-in-time provisioning`) nie jest domyślnym zachowaniem ekranu konfiguracji. Jeśli ten tryb jest potrzebny, należy go ustalić z Omniscol. #### Instrukcja — Konfiguracja dostawcy OIDC / SSO 1. **OIDC / SSO** pozwala użytkownikom logować się ich kontem firmowym (Google Workspace, Microsoft Entra ID, Keycloak, Okta…). Część po stronie dostawcy zależy od dostawcy. 2. **Po stronie dostawcy** proszę najpierw utworzyć aplikację OIDC typu **Aplikacja internetowa**: proszę odczytać **Client ID** oraz **Client secret** i skopiować **adres URL przekierowania** podany przez Omniscol do *Authorized redirect URIs* u dostawcy. 3. **Po stronie Omniscol** proszę otworzyć ustawienia, a potem konfigurację OIDC. Proszę wypełnić **nazwę wyświetlaną** (etykietę przycisku logowania), typ dostawcy, issuer albo tenant w zależności od przypadku, Client ID, Client secret oraz **zakresy** (domyślnie: `openid profile email`). 4. **Proszę kliknąć Testuj.** Proszę sprawdzić, czy konfiguracja działa. Omniscol wykonuje pełną wymianę OIDC; w razie błędu discovery, sekretu albo przekierowania komunikat o błędzie jest jednoznaczny. 5. **Proszę zapisać.** Przycisk logowania SSO pojawia się na stronie logowania, gdy konfiguracja jest aktywna. 6. **Ważne: konta muszą istnieć** w Omniscol z poprawnym adresem e-mail. Logowanie SSO dopasowuje konta po adresie e-mail; domyślnie brak automatycznego zakładania kont. #### Zobacz także - [Pierwsze logowanie](#page-getting-started.first-login) - [Użytkownicy i role](#page-admin.users-and-roles) - [OAuth2 / OIDC (dostawca)](#page-integrations.oauth-server) - [Przegląd integracji](#page-integrations.overview) ### 9.13 Synchronizacja z systemami zewnętrznymi (ERP) *Source: `help/pl/integrations/extsync.md` · id: integrations.extsync · Audience: admin · Plan: premium · Updated: 2026-06-13* > **Premium** > _Premium_ Omniscol łączy się z zewnętrznymi systemami ERP i systemami informacyjnymi placówek za pomocą jednolitego frameworku **synchronizacji**. Omniscol odgrywa w nim rolę **punktu centralnego**: to on prowadzi importy i eksporty, podczas gdy system zewnętrzny pozostaje administracyjnym źródłem prawdy. Synchronizacja z systemami zewnętrznymi jest dostępna na kontach **Premium**, gdy dla konta skonfigurowano konektor. **Projektowo** traktowane jest dodanie nowego systemu ERP lub nowego, jeszcze nieobsługiwanego systemu informacyjnego, wraz z ustaleniem mapowania i przepływów. #### Model przepływów Framework obejmuje dwa kierunki obiegu danych: - **Jednostki (przychodzące)** — Omniscol może pobrać z systemu ERP nauczycieli, przedmioty, sale, klasy, uczniów oraz ich identyfikatory zewnętrzne, zależnie od konektora i konfiguracji. Odniesienia ext-id są przechowywane w Omniscol na potrzeby uzgadniania danych. - **Lekcje (wychodzące)** — Omniscol wypycha lekcje powstałe w wyniku własnego planowania do systemu ERP, z poprawnymi odniesieniami ext-id. Zależnie od konektora eksport można wyzwolić na żądanie, zaplanować albo powtórzyć w całości wsadowo, aby nadrobić rozbieżności. Omniscol orkiestruje skonfigurowane importy i eksporty, przechowuje identyfikatory zewnętrzne, zarządza przebiegami synchronizacji i udostępnia ekrany kontrolne, które pozwalają uzgodnić dane między Omniscol a systemem zewnętrznym. #### Źródło i prawa do tworzenia lokalnego Dla każdego typu jednostki (nauczyciele, przedmioty, sale itd.) wybiera się system źródłowy i wskazuje, czy lokalne tworzenie i lokalna aktualizacja pozostają dozwolone. Ekran udostępnia też przycisk **Powiązanie**, który pozwala powiązać lokalną jednostkę Omniscol z jednostką ERP, gdy obie już istnieją. #### Pomost między ontologiami Każdy system ERP ma własne słownictwo (na przykład „przedmiot” w Omniscol = **Unité Pédagogique** w systemie Auriga = **Cours** w systemie Aurion). Framework obsługuje **mapowanie**: to Omniscol wiąże pojęcia z jednej strony z pojęciami z drugiej, nie trzeba przepisywać własnej nomenklatury. #### Dostępne konektory ##### Dostępne - **Aurion** — konektor dostępny produkcyjnie. System ERP **wydawany przez firmę Auriga**, szczególnie popularny we francuskim szkolnictwie wyższym (szkoły inżynierskie, szkoły biznesu). Zob. [integrations.aurion](#page-integrations.aurion). - **Auriga** — konektor dostępny produkcyjnie. **Auriga jako oprogramowanie** to w pełni webowa kontynuacja systemu Aurion, od tej samej firmy. Zob. [integrations.auriga](#page-integrations.auriga). ##### Standard katalogowy - **OneRoster** — zamiast konektora właściwego jednemu dostawcy Omniscol obsługuje międzynarodowy standard **OneRoster** (1.2 oraz grupy zaawansowane), aby wymieniać katalog szkolny z systemem SIS, platformą edukacyjną lub LMS, które są zgodne z tym standardem. Import katalogu OneRoster należy do tej synchronizacji Premium; eksport natomiast jest udostępniany tylko do odczytu i kontrolowany przez zakresy OAuth2. Zob. [OneRoster](#page-integrations.oneroster). ##### Na życzenie Każdy system ERP lub system informacyjny, który udostępnia **udokumentowane API** dla działań importu i eksportu oraz **sandbox** do pracy, może zostać zintegrowany projektowo. Proszę skontaktować się ze wsparciem Omniscol, aby ustalić zakres dodania nowego konektora. #### Różnica wobec systemów, które odpytują Omniscol Niektóre systemy mogą też korzystać z Omniscol przez punkty dostępu **GET** publicznego API: w takim przypadku Omniscol nie orkiestruje synchronizacji z systemem ERP, system strony trzeciej odpytuje tylko te dane, do których dostęp daje jego token. Ten model różni się od synchronizacji orkiestrowanej przez Omniscol: | Model | Kto orkiestruje? | Kierunek | Przykład | | --- | --- | --- | --- | | **Synchronizacja z systemami zewnętrznymi** | Omniscol | Dwukierunkowy (jednostki wchodzą, lekcje wychodzą) | Auriga, Aurion | | **Partner pull** | Partner | Partner wykonuje żądania GET | Konektor strony trzeciej przez API | Model partner pull nie wymaga konfiguracji synchronizacji z systemami zewnętrznymi: wystarczą publiczne API i tokeny uwierzytelniające. Zob. [API Omniscol](#page-integrations.api-tokens). #### Konfiguracja Konfiguracja synchronizacji z systemami zewnętrznymi wymaga zwykle sesji ze wsparciem Omniscol, aby: 1. **Wypisać obiekty do synchronizacji** — użytkownicy, klasy, nauczyciele, przedmioty, sale itd. 2. **Wykalibrować mapowanie ontologiczne** — które pojęcie ERP odpowiada któremu pojęciu Omniscol. 3. **Określić wyłączność** dla każdego typu jednostki. 4. **Ustalić częstotliwość** przebiegów (na żądanie, godzinowa, dzienna, plus przebieg nadrabiający rozbieżności). 5. **Przetestować na sandboksie** ERP przed uruchomieniem produkcyjnym. #### Sprawdzenia i codzienne czynności - **Sprawdzenie** skonfigurowanych ulubionych lub datasetów, zależnie od konektora. - **Ręczne wyzwolenie** eksportu lekcji z ekranu administracyjnego. - **Zaplanowany pełny eksport**, gdy ta opcja jest skonfigurowana w bloku eksportu. - **XML Pivot Aurion**, gdy używany jest konektor Aurion. - **Sprawdzenie dopasowań**: ekrany powiązań wskazują jednostki, które trzeba powiązać lub poprawić. #### Instrukcja — Sprawdzanie i wyzwalanie synchronizacji 1. **Gdy synchronizacja jest już skonfigurowana** przez wsparcie Omniscol, codzienne czynności wykonuje się z ekranu administracyjnego: sprawdzenie ulubionych/datasetów, powiązanie jednostek, wyzwolenie doraźnego eksportu, pobranie pliku pivot Aurion, jeśli jest dostępny, albo wyczyszczenie stanu eksportu przy przełączeniu. 2. **W konfiguracji systemu** proszę użyć przycisków **Sprawdź** przy wypełnionych ulubionych lub datasetach. Omniscol pobiera dane z konektora i zgłasza błędy konfiguracji lub formatu, jeśli konektor je zwraca. 3. **Aby natychmiast wypchnąć** lekcje do systemu ERP, bez czekania na następny zaplanowany przebieg, proszę kliknąć **Wyzwól**. Przydatne po pilnej zmianie. 4. **W przypadku systemu Aurion** przycisk **XML Pivot** pobiera plik, który administrator ERP wczytuje ręcznie przez konsolę systemu ERP, jeśli wybrano ten tryb. 5. **W razie poważnego przełączenia** (zmiana struktury, koniec roku szkolnego) przycisk **Purge Omniscol** usuwa **po stronie ERP** wszystkie lekcje, które Omniscol tam wyeksportował, aby zacząć od zera. Działanie dotyczy wybranego konektora i jest **nieodwracalne**: proszę używać go wyłącznie po uzgodnieniu ze wsparciem. #### Zobacz także - [integrations.aurion](#page-integrations.aurion) - [integrations.auriga](#page-integrations.auriga) - [OneRoster](#page-integrations.oneroster) - [API Omniscol](#page-integrations.api-tokens) - [Import i eksport](#page-admin.import-export) - [Przegląd integracji](#page-integrations.overview) ### 9.14 OneRoster (1.2 i grupy zaawansowane) *Source: `help/pl/integrations/oneroster.md` · id: integrations.oneroster · Audience: admin · Plan: standard · Updated: 2026-06-29* OneRoster to międzynarodowy standard wymiany katalogów szkolnych (wydawany przez 1EdTech): opisuje we wspólnym formacie **placówki**, **lata szkolne**, **kursy**, **klasy**, **zapisy** oraz **użytkowników** szkoły. Służy do połączenia systemu SIS, platformy edukacyjnej lub LMS z innym narzędziem, bez ponownego wprowadzania danych i bez formatu zastrzeżonego. Ta strona jest przeznaczona dla **działu IT** placówki. Opisuje, co Omniscol udostępnia i co pobiera w OneRoster, jakiego uwierzytelniania wymaga oraz jaki jest rzeczywisty zakres każdego kierunku wymiany. #### Obsługiwane wersje Omniscol obsługuje **OneRoster 1.2 Rostering** — podstawę standardu (Org, AcademicSession, Course, Class, Enrollment, User, Demographics) — oraz warstwę **OR-Groups (Advanced Groups Service)**, czyli addytywny standard grup, który nadbudowuje nad wersją 1.2 trzy jednostki (Group, GroupMembership, GroupAssociation). Warstwa OR-Groups jest **standardem w trakcie publikacji**. Jest ściśle addytywna wobec wersji 1.2: Group wyłącznie **odwołuje się** do jednostek Class / User / Org / AcademicSession z wersji 1.2, tylko do odczytu. Zapowiadana wersja 1.3 standardu OneRoster ma uczynić z Class specjalizację Group — i z tym kierunkiem implementacja Omniscol już się zbiega. #### Omniscol jako producent (Omniscol → platforma edukacyjna / LMS) W roli **producenta** Omniscol udostępnia katalog placówki **tylko do odczytu**, przez API REST zgodne z OneRoster, aby platforma edukacyjna lub LMS mogły go odczytać. - Podstawa Rostering 1.2 jest udostępniana pod `/ims/oneroster/rostering/v1p2/…` (na przykład `/orgs`, `/schools`, `/academicSessions`, `/courses`, `/classes`, `/enrollments`, `/users`, `/teachers`, `/students`, `/demographics`, każdy z własnymi wariantami zagnieżdżonymi). - Warstwa grup jest udostępniana pod `/ims/oneroster/groups/v1p0/…` (`/groups`, `/groupMemberships`, `/groupAssociations` oraz ich warianty zagnieżdżone). - Zakresem jest domyślnie **bieżący** rok szkolny; parametr pozwala wskazać inny rok albo objąć wszystkie lata. Dane odzwierciedlają skonsolidowane planowanie Omniscol (opublikowane plany lekcji). Producent działa **tylko do odczytu z założenia**: żadna operacja zapisu (PUT / DELETE) nie jest udostępniana — system zdalny nie decyduje o tworzeniu ani usuwaniu jednostek w Omniscol. ##### Uwierzytelnianie producenta Punkty dostępu producenta są chronione przez **OAuth2 w przepływie `client_credentials`** (token maszyna-maszyna, bez użytkownika), wydawany przez serwer OAuth2 Omniscol. **Nie** są zastrzeżone dla kont Premium: dostępem sterują **zakresy** OAuth2, a nie wybrany plan. Każdy zakres jest właściwy jednej usłudze, a dostęp do danych demograficznych jest wydzielony wewnątrz wersji 1.2: | Punkty dostępu | Akceptowane zakresy | | --- | --- | | Rostering 1.2 (bez danych demograficznych) | `https://purl.imsglobal.org/spec/or/v1p2/scope/roster-core.readonly`, `https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly` | | Rostering 1.2 `/demographics` | `https://purl.imsglobal.org/spec/or/v1p2/scope/roster.readonly`, `https://purl.imsglobal.org/spec/or/v1p2/scope/roster-demographics.readonly` | | OR-Groups (wszystkie) | `https://purl.imsglobal.org/spec/or-groups/v1p0/scope/roster-group.readonly` | Token OR-Groups nie daje dostępu do podstawy Rostering i odwrotnie. Żaden zakres zapisu nie jest deklarowany. Zakresy uprzywilejowane przypisuje administracja Omniscol w chwili rejestracji klienta OAuth2; klient nie może przypisać ich sobie sam. Zarządzanie klientami OAuth2 i tokenami opisano na [OAuth2 / OIDC (dostawca)](#page-integrations.oauth-server) oraz [API Omniscol](#page-integrations.api-tokens). ##### Przynależność uczniów przenosi warstwa grup Wybór strukturalny: lista uczniów klasy lub grupy jest udostępniana przez **OR-Groups** (GroupMembership), a nie przez samą podstawę 1.2. Konsument, który czyta wyłącznie Rostering 1.2, otrzymuje katalog (Courses, Classes), zapisy nauczyciel → kurs oraz katalog użytkowników, ale **nie** przynależność uczniów. Aby wiedzieć, kto należy do której klasy lub grupy, konsument musi zaimplementować warstwę OR-Groups. Ten wybór odzwierciedla model francuski: uczeń jest zapisany do **klasy** lub **grupy**, a nie przedmiot po przedmiocie. Producent jest udostępniany w REST. Format **pakietu CSV OneRoster** (archiwum zip z jednym plikiem na kolekcję) jest natomiast obsługiwany po stronie importu, dla dostawców, którzy przekazują swój katalog w plikach, a nie przez API — zob. sekcję o konsumencie poniżej. #### Omniscol jako konsument (SIS → Omniscol) > _Premium_ W roli **konsumenta** Omniscol importuje katalog systemu SIS zgodnego z OneRoster i uzgadnia go w placówce. Ta konfiguracja odbioru należy do **synchronizacji z systemami zewnętrznymi**: jest dostępna na kontach **Premium** i ustalana projektowo z zespołem Omniscol (zob. [Synchronizacja z systemami zewnętrznymi](#page-integrations.extsync)). - **Transport** — albo **API REST** dostawcy (adres bazowy jest konfigurowany, stosowana jest standardowa paginacja OneRoster), z uwierzytelnianiem OAuth2 w przepływie `client_credentials` wobec serwera dostawcy; albo **pakiet CSV** (archiwum zip). - **Profil** — profil konfiguracyjny wskazuje zakres do odczytu: sama podstawa 1.2, warstwa grup albo odwzorowanie francuskie dla edukacji szkolnej. Dostawca obsługujący wyłącznie wersję 1.2, bez usługi grup, importuje się poprawnie. - **Kontrolowane zastosowanie** — import działa na tej samej zasadzie co pozostałe konektory: Omniscol pobiera, a następnie uzgadnia dane, a **administrator zatwierdza** ich zastosowanie w placówce. System zdalny nigdy nie wypycha danych bezpośrednio do Omniscol. - **Idempotentne ponowne importy** — odwzorowania identyfikatorów zewnętrznych są zachowywane, dzięki czemu ponowny import nie tworzy duplikatów, nawet gdy dostawca zmieni nazwę etykiety. #### Profil francuski (edukacja szkolna) **Profil francuski dla edukacji szkolnej** odwzorowuje pojęcia francuskie na model OneRoster: **oddział** (klasa w znaczeniu faktycznym) staje się jednostką Group głównego typu organizacyjnego; **grupa** staje się jednostką Group służącą dydaktyce; **grupa grup** — jednostką Group o charakterze przekrojowym; **podziały klasy** i **wyrównania grup** stają się skojarzeniami grup; przypisanie **nauczyciela** do kursu staje się zapisem nauczyciela. Identyfikatory takie jak INE lub identyfikator pracownika są przenoszone w `userIds` użytkownika. #### Identyfikatory i poufność Każda udostępniana jednostka nosi stabilny identyfikator — `sourcedId`. - Identyfikatory **strukturalne** (placówka, rok, kurs, klasa, grupa) są stabilne i niezmienne między kolejnymi eksportami: konsument może się na nich oprzeć, aby korelować dane w czasie. - Identyfikator **użytkownika** jest **anonimizowany**: Omniscol nigdy nie przesyła własnego identyfikatora imiennego. Przesyłany token pochodzi z funkcji jednokierunkowej (HMAC) właściwej danemu kontu; zapisy i przynależności używają ponownie tego tokenu, nigdy nie ujawniając identyfikatora źródłowego. #### Status - **Producent** — dostępny i możliwy do zademonstrowania bez partnera zdalnego (eksport wystarcza sam sobie). Rostering 1.2 oraz warstwa OR-Groups są udostępniane tylko do odczytu, z uwierzytelnianiem OAuth2. - **Konsument** — konfiguracja importu należy do synchronizacji Premium. Uruchomienie synchronizacji **w czasie rzeczywistym** z systemem SIS zależy od dostawcy oraz, w stosownych przypadkach, od kalendarzy ministerialnych: ustala się ją **na życzenie**, konektor po konektorze. Nie jest to natychmiastowa synchronizacja pod klucz. #### Zobacz także - [Synchronizacja z systemami zewnętrznymi](#page-integrations.extsync) - [OAuth2 / OIDC (dostawca)](#page-integrations.oauth-server) - [API Omniscol](#page-integrations.api-tokens) - [Pełny model danych](#page-integrations.data-model-full) - [integrations.partners](#page-integrations.partners) ### 9.15 Konta powiązane i współdzielone zasoby *Source: `help/pl/integrations/linked-accounts.md` · id: integrations.linked-accounts · Audience: admin · Updated: 2026-09-23* **Konta powiązane** łączą **kilka odrębnych kont Omniscol — a więc kilka placówek** — które w rzeczywistości współdzielą **nauczycieli i sale**. Powiązanie sprawia, że **obłożenie** tych wspólnych zasobów jest widoczne z każdego z kont: przy przeglądaniu lub budowaniu planu lekcji Omniscol pokazuje lekcje z kont powiązanych dotyczące współdzielonego nauczyciela lub współdzielonej sali i oznacza je jako już zajęte. Pozwala to uniknąć dwukrotnej rezerwacji tej samej osoby lub tej samej sali, bez konieczności dzwonienia do drugiej placówki. Jest to opcja, którą zespół Omniscol włącza na życzenie. Każde konto pozostaje **całkowicie samodzielne**: zachowuje swoich użytkowników, swoje ustawienia, swoje lata szkolne i swój zakres administracyjny. #### Co obejmuje powiązanie - **Współdzielone**: **obłożenie** nauczycieli i sal obecnych na obu kontach. To właśnie ono zasila widoki obłożenia i wykrywanie konfliktów między kontami. - **Poza współdzieleniem**: użytkownicy, uczniowie, klasy, ustawienia i dane administracyjne właściwe każdemu kontu. Widok zajętego przedziału czasowego nie otwiera dostępu do szczegółów drugiego konta. Dopasowanie jest **automatyczne**: Omniscol rozpoznaje tego samego nauczyciela po imieniu i nazwisku (gdy dwie osoby mają je identyczne, rozstrzyga data urodzenia), a tę samą salę po nazwie jej lokalizacji i nazwie sali. Aby to działało, ci nauczyciele i te sale muszą więc mieć na każdym koncie **takie same nazwy**. Identyfikatory zewnętrzne (ERP) nie biorą udziału w tym dopasowywaniu między kontami. Wewnątrz jednego konta mają one pierwszeństwo przed nazwą: zob. [rozpoznawanie tej samej klasy w różnych planach lekcji](#page-timetables.multiple-active-timetables--same-entity). #### Przypadki użycia Wszystkie dotyczą **kilku odrębnych placówek**, każdej z własnym kontem Omniscol: - **Grupa szkół**, które wspólnie korzystają z nauczycieli lub sal — na przykład sieć placówek w tym samym mieście. - **Placówki odrębne pod względem prawnym** mieszczące się w tym samym budynku, a więc współdzielące sale. - Jeden wspólny teren, na którym **kilka podmiotów** (uczelnia techniczna, szkoła biznesu…), prowadzonych na odrębnych kontach, korzysta z tych samych aul wykładowych i tych samych nauczycieli. #### Włączenie opcji Konta powiązane ustala się z zespołem Omniscol, ponieważ trzeba wspólnie zdecydować: - które konta są powiązane; - które wspólne zasoby — nauczyciele, sale — są współdzielone; - jak ujednolicić nazwy wspólnych nauczycieli i sal, bo na tych nazwach opiera się automatyczne dopasowanie; - które konto pozostaje odpowiedzialne za poszczególne dane; - jak postępować z konfliktami wykrytymi między zakresami. Po włączeniu opcji współdzielone obłożenie pojawia się w widokach obłożenia i zasila wykrywanie konfliktów między kontami, bez żadnych dodatkowych czynności ze strony użytkownika. #### Włączanie lub wyłączanie synchronizacji Gdy plan lekcji jest zsynchronizowany z innymi opublikowanymi planami lekcji — z tego samego konta lub z kont powiązanych — pojawia się przycisk **Synchronizacja**: w **trybie reorganizacji** planu lekcji, a także przy **edycji kalendarzowego planu lekcji**, na **wspólnych datach**. Otwiera on listę tych synchronizacji: każdy **inny opublikowany plan lekcji** tego konta i każde **konto powiązane**, które współdzieli nauczycieli lub sale. Wszystkie są **domyślnie aktywne**. Proszę odznaczyć jedną z nich, aby **przestać uwzględniać** obłożenie tego planu lekcji lub tego konta w bieżącym widoku, a następnie zaznaczyć ją ponownie, aby ją przywrócić. Przycisk pojawia się tylko wtedy, gdy istnieje co najmniej jedna synchronizacja do obsługi. #### Przypadek pokrewny: kilka opublikowanych planów lekcji na jednym koncie Konta powiązane koordynują odrębne placówki; ta sama potrzeba pojawia się także **wewnątrz jednego konta**, gdy placówka prowadzi **kilka planów lekcji opublikowanych równolegle**. Ta sama zasada współdzielonego obłożenia zapobiega wtedy dwukrotnej rezerwacji sali, nauczyciela lub **klasy** przez dwa równoczesne plany lekcji. Typowy przypadek to **organizacja wieloprogramowa** o różnych rytmach — 18-miesięczny program EMBA, studia magisterskie w semestrach kalendarzowych, program przygotowawczy z tygodniowym planem lekcji — która współdzieli sale i nauczycieli między swoimi programami; albo **klasa rozpisana na dwa kalendarze**, z organizacją powtarzalną przed południem i jednorazową po południu. Ta koordynacja jest wliczona w plan **Premium** i może, w wyjątkowych przypadkach, zostać włączona na koncie Core po ustaleniach z Omniscol. Zob. [Kilka planów lekcji opublikowanych równolegle](#page-timetables.multiple-active-timetables). #### Zobacz także - [Kilka planów lekcji opublikowanych równolegle](#page-timetables.multiple-active-timetables) - [Lokalizacje, sale, zasoby](#page-core-concepts.sites-rooms-resources) - [Synchronizacja z systemami zewnętrznymi](#page-integrations.extsync) ### 9.16 Konektor Edusign *Source: `help/pl/integrations/edusign.md` · id: integrations.edusign · Audience: admin · Plan: premium · Updated: 2026-08-14* > **Premium** > _Premium_ W szkole, która korzysta z **Omniscol** i **Edusign**, każde z tych narzędzi pełni inną rolę. **Omniscol** przygotowuje lekcje: zarządza planem lekcji, ograniczeniami, dostępnością, podziałami klas i kursami przekrojowymi. **Edusign** wkracza dopiero wtedy, gdy lekcja jest już ustalona: musi wiedzieć, **kiedy** się odbywa, **kto** ją prowadzi i **kto** w niej uczestniczy, aby przygotować potwierdzanie obecności i zebrać podpisy. Konektor służy właśnie temu, by uniknąć podwójnego wprowadzania danych. Omniscol wysyła więc do Edusign lekcje, które mają zostać podpisane, ponieważ to w Omniscol szkoła je przygotowuje i poprawia. Stwierdzoną obecność sprawdza się natomiast w Edusign: to on ją rejestruje i to on jest w tej sprawie rozstrzygający. Konektor Edusign działa w ramach wspólnego mechanizmu synchronizacji — zob. [Synchronizacja z systemami zewnętrznymi](#page-integrations.extsync); ta strona opisuje jego cechy szczególne. #### Co jest wysyłane, a co nie Konektor wysyła w pierwszej kolejności **lekcje**. Każda z nich staje się kursem Edusign, a identyfikator Omniscol służy jako jej identyfikator zewnętrzny. To właśnie pozwala później ją odnaleźć, zaktualizować lub usunąć bez prowadzenia osobnej tabeli powiązań. Tą samą drogą mogą pójść **wydarzenia** z kalendarza: konferencja, obrona pracy albo dzień integracyjny również może trafić do Edusign do podpisu. Jeśli nie wszystko ma być wysyłane, eksport można też zawęzić filtrami — wracamy do tego niżej. **Nauczycieli** i **grupy** również można wysłać, na dwa sposoby: tworząc ich na bieżąco w trakcie eksportu lekcji, jeśli ta opcja zostanie włączona, albo synchronizując ich zbiorczo z zakładki Eksport jednostek — wtedy rozstrzygające są dane Omniscol. **Uczniowie** natomiast nigdy nie są wysyłani automatycznie: ich wysłanie następuje wyłącznie po ręcznym uruchomieniu, z powodów wyjaśnionych niżej. Ważna uwaga: **nie należy mieszać dwóch sposobów tworzenia list obecności**. Albo lekcje powstają w Omniscol, a konektor tworzy je w Edusign: to wybór najbardziej spójny, jeśli plan lekcji się zmienia, bo poprawki, nieobecności i zastępstwa pójdą jego śladem. Albo kursy tworzy się wprost w Edusign. To możliwe, ale takie kursy żyją wtedy poza Omniscol: konektor ich nie tknie, a zmiany w planie lekcji się w nich nie odbiją. Najbezpieczniej jest więc od początku wybrać, po której stronie powstają listy obecności, i tego się trzymać. To właśnie chroni przed dwiema wersjami tej samej lekcji. #### Przed pierwszym eksportem Dla Edusign lekcja bez nauczyciela jest bezużyteczna: trzeba wiedzieć, kto odpowiada za listę obecności. Dalszy przebieg zależy od jednego pytania: czy nauczyciele mają już swoje konta Edusign? **Konta już istnieją, z tym samym adresem e-mail po obu stronach.** Nie ma nic do zrobienia: dopasowanie jest automatyczne. To przypadek najczęstszy i powód, dla którego adres musi być w Omniscol wpisany i wiarygodny — służy jako identyfikator dopasowania, a zarazem jako login do Edusign. Jeśli dwóch nauczycieli ma w Omniscol ten sam adres, konektor próbuje ich rozróżnić po imieniu i nazwisku: dalsza sekcja szczegółowo opisuje, co wtedy robi i co może go zablokować. **Konta już istnieją, ale adresy e-mail się nie zgadzają.** Tu wkracza **powiązanie**: ekran powiązań stawia nauczycieli naprzeciw kont Edusign, a każde postawione powiązanie jest rozstrzygające, przed jakimkolwiek dopasowaniem adresów. To samo rozwiązanie służy przypadkom niejednoznacznym, gdy wspólny adres opiera się rozróżnieniu po imieniu i nazwisku. **Konta jeszcze nie istnieją w Edusign.** Dwie możliwości: - **tworzenie na bieżąco** — proszę zaznaczyć zdalne tworzenie w konfiguracji systemu, zakładka Konfiguracja systemów, a konektor utworzy każde konto w chwili, gdy jakaś lekcja go potrzebuje; - **synchronizacja nauczycieli** — proszę wysłać ich wszystkich naraz z zakładki Eksport jednostek; konta istnieją wtedy jeszcze przed pierwszą lekcją, a rozstrzygające są dane Omniscol. Zarówno na bieżąco, jak i zbiorczo Edusign zastrzega każdy adres e-mail dla jednego konta. Adres już zajęty — tworzenie kończy się niepowodzeniem, a wraz z nim lekcje tego nauczyciela; adres wspólny dla dwóch nauczycieli w Omniscol — konektor nie tworzy żadnego konta, nawet pierwszego, bo przypisałoby ono adres jednemu z nich na chybił trafił, a ich lekcje czekają, aż każdy będzie miał własny. Tworzenie jest więc przeznaczone dla kont rzeczywiście nieistniejących — dla nauczyciela już obecnego w Edusign pozostaje dopasowanie albo powiązanie. Jeszcze jedna uwaga, przed zleceniem tworzenia kont z Omniscol do Edusign: zależnie od konfiguracji konta Edusign utworzenie użytkownika może natychmiast wysłać mu jego dane dostępowe pocztą elektroniczną. Nauczyciele odkryliby wtedy nowe narzędzie już przy pierwszym eksporcie, bez żadnego przygotowania. Jeśli otwarcie kont ma zostać zapowiedziane we własnym zakresie, proszę sprawdzić to ustawienie po stronie Edusign przed uruchomieniem eksportu. Jeśli nauczyciela nie udaje się odnaleźć, lekcja **nie zostaje wysłana**. Konektor ją liczy i wyraźnie o niej informuje: brakująca lista obecności to rodzaj kłopotu, którego inaczej nigdy nie odkrywa się w dobrym momencie. #### Dopasowanie po adresie e-mail Dla nauczyciela bez postawionego powiązania, którego konta konektor nie utworzył, dopasowanie opiera się na adresie e-mail, bez względu na imiona i nazwiska po obu stronach. Adres musi więc być dokładny: błędny adres blokuje lekcję, a dwa zamienione adresy zamieniłyby listy obecności dwóch nauczycieli. Imię i nazwisko wchodzą w grę tylko po to, by rozróżnić duplikat: dwóch nauczycieli wpisanych w Omniscol z tym samym adresem e-mail — skrzynka sekretariatu, adres wspólny dla nauczycieli zewnętrznych. Konektor porównuje wtedy imiona i nazwiska z tymi z kont Edusign. To prawie zawsze wystarcza: każdy odnajduje swoje konto, lekcje odchodzą. Dwie osoby o identycznym imieniu i nazwisku pod tym samym adresem e-mail to według wszelkiego prawdopodobieństwa jeden człowiek wpisany w Omniscol dwa razy. Lista obecności będzie nosić właściwe nazwisko, właściwy przedmiot i właściwą klasę niezależnie od wybranego konta: lekcja odchodzi, a dziennik integracji zachowuje ślad duplikatu, do uprzątnięcia przy okazji. Pozostaje przypadek, w którym żadne imię i nazwisko nie pasuje. Nauczyciel może w ogóle nie mieć konta, a wysłanie go na chybił trafił kazałoby potwierdzać obecność na liście kogoś innego: takie lekcje **zostają na peronie**. Podsumowanie eksportu podaje imiona i nazwiska oraz adres, o które chodzi — aż po osobę, która tworzy duplikat, choć sama niczego nie uczy, i której długo nikt by nie podejrzewał. Trwałym wyjściem jest nadanie każdemu własnego adresu e-mail. Tymczasem proszę powiązać ich ręcznie: gdy powiązanie jest postawione, rozstrzyga identyfikator. #### Filtrowanie wysyłki według kampusów Kampus to pojęcie organizacyjne: grupuje klasy w obrębie konta, niezależnie od lokalizacji i od sal. Jeśli kampusy zostały zadeklarowane, można wysyłać tylko lekcje niektórych z nich. Wybór odbywa się w zakładce Eksport jednostek, pod lekcjami kursów. Lekcja odchodzi, gdy **co najmniej jedna** z jej klas znajduje się w wybranym kampusie: kurs dzielony między dwa kampusy jest więc wysyłany tylko raz. Natomiast gdy filtr obejmuje tylko niektóre kampusy, klasa bez przypisanego kampusu zostaje poza wysyłką: nie należąc do żadnego z wybranych kampusów, nie może zostać przez konektor uwzględniona. Jeśli wybór zostanie później zawężony, lekcje, które już się w nim nie mieszczą, są usuwane z Edusign — **z wyjątkiem tych, które już się odbyły** i których obecność została już potwierdzona. Niewybranie niczego oznacza wysłanie wszystkiego. #### Horyzont eksportu Edusign służy do podpisywania lekcji **przyszłych**. Lekcji, która już się odbyła, nie ma już po co przygotowywać do potwierdzania obecności, a Edusign ją blokuje. Horyzont ustawia się w konfiguracji systemu, w postaci liczby dni wstecz i w przód wokół dnia dzisiejszego. W praktyce kilka dni wstecz wystarcza: służą jedynie do nadrobienia poprawki wprowadzonej zaraz po lekcji. **Lekcja, która wypada z horyzontu, nigdy nie jest usuwana.** Odbyła się, Edusign przechowuje jej potwierdzenie obecności, a takiego potwierdzenia nie da się odtworzyć. Tylko lekcja rzeczywiście usunięta w Omniscol zostaje wycofana z Edusign — i to wyłącznie wtedy, gdy jeszcze się nie odbyła. #### Czas rzeczywisty i nadrabianie Współistnieją dwa mechanizmy, o dwóch różnych rolach. **Czas rzeczywisty** wysyła każdą zmianę na bieżąco. To tryb normalny: utrzymuje Edusign w stanie aktualnym niemal natychmiast. Trzeba go jednak widzieć jako kanał wygodny, a nie jako gwarancję absolutną: żądanie może się nie udać, proces może się zrestartować. **Zaplanowany eksport pełny** służy do regularnego uzgadniania obu stron. Wysyła cały horyzont, odczytuje z powrotem to, co Edusign przechowuje, a następnie usuwa lekcje, które w szkole już nie istnieją, ale które czas rzeczywisty przeoczył. To zabezpieczenie na wypadek kłopotów: bez niego awaria sieci albo restart zostawiłyby cichą rozbieżność. #### Uczniowie Uczniowie są wysyłani wyłącznie **po ręcznym uruchomieniu** i ze szczególną ostrożnością. Edusign umie dopasować ucznia tylko po identyfikatorze zewnętrznym, który mu nadaliśmy — ani po jego adresie e-mail, ani po jego identyfikatorze wewnętrznym. Uczeń już obecny w Edusign bez tego identyfikatora jest więc **nieosiągalny**: jego wysłanie utworzyłoby drugi zapis z tym samym adresem. Konektor woli więc się wstrzymać, niż utworzyć duplikat. Zaczyna od odczytania uczniów już obecnych w Edusign, tworzy tylko tych, których tam rzeczywiście nie ma, a pozostałych odkłada na bok. Uczniowie bez adresu e-mail są pomijani z tego samego powodu: nie da się ich dopasować w żaden sposób. Na koniec uruchomienia podsumowanie podaje dokładnie, których nie utworzono, wraz z ich tożsamością po obu stronach, aby można było rozstrzygnąć każdy przypadek osobno. Dziennik aktywności zachowuje ich ślad. W praktyce uczniowie są niezbędni tylko wtedy, gdy listy obecności mają być imienne. Potwierdzanie obecności działa bez nich, o ile lekcja nosi swojego nauczyciela i swoją grupę. #### Wydarzenia Konferencja, obrona pracy, egzamin próbny: to, co zostaje wpisane do kalendarza poza lekcjami kursów, również może trafić do Edusign. Wydarzenia mają własną sekcję w zakładce Eksport jednostek, zaraz pod lekcjami, z własnymi filtrami i własną zasadą wysyłki. Wydarzenie nosi te same informacje co lekcja: swoją datę, swoich uczestników, swoją salę. Spośród zaproszonych nauczyciele odpowiadają za listę obecności, a klasy i grupy stanowią jej publiczność. Nie trzeba wysyłać wszystkiego. Konektor filtruje według **etykiet** nadawanych wydarzeniom — zob. [Wydarzenia jednorazowe](#page-schedules.events): wysyłać tylko te, które noszą daną etykietę, albo odwrotnie, wysyłać wszystkie poza tymi, które ją noszą. **Wykluczenie zawsze wygrywa**, co pozwala na regułę najpraktyczniejszą: wysyłać wszystko poza tym, co zostało oznaczone jako *bez podpisu* (na przykład). #### Gdy system ERP jest już na miejscu Przypadek najprostszy to szkoła, która zarządza swoimi lekcjami w Omniscol, a następnie każe je podpisywać w Edusign. To najbardziej bezpośrednie zastosowanie konektora. W szkołach już zorganizowanych wokół systemu ERP, takiego jak [Aurion](#page-integrations.aurion) albo [Auriga](#page-integrations.auriga), architektura ma zwykle postać gwiazdy, w której środku stoi ten ERP. Wysyła on swoje dane podstawowe do Omniscol — nauczycieli, sale, przedmioty, grupy, a nawet uczniów — po czym Omniscol odsyła mu wytworzone lekcje. Od tego miejsca Edusign najczęściej podłącza się do systemu ERP, a nie bezpośrednio do Omniscol. Zależnie od przyjętej organizacji albo ERP przekazuje lekcje dalej do Edusign, w razie potrzeby przez ETL, albo Edusign regularnie odczytuje je z systemu ERP. W tej topologii identyfikatory zewnętrzne nie zastępują się nawzajem: nakładają się na siebie stosownie do wymian, które trzeba zapewnić. Ten sam nauczyciel może więc nosić w Omniscol identyfikator ERP, a w razie potrzeby odrębny identyfikator Edusign. W zakładce Synchronizacja jednostek każdy skonfigurowany system pozostaje powiązany osobno, dla tych samych jednostek. #### Resetowanie Przycisk czyszczenia usuwa z Edusign **lekcje pochodzące z Omniscol** w bieżącym roku szkolnym. Nie dotyka ani nauczycieli, ani grup, ani kursów utworzonych wprost w Edusign: jego celem jest uprzątnięcie tego, co wysłał konektor, a nie wymazanie reszty środowiska. Edusign silnie ogranicza tempo usuwania: jeden przebieg usuwa najwyżej kilkaset lekcji. Jeśli jakieś zostaną, proszę uruchomić czyszczenie ponownie — dziennik aktywności podaje liczbę pozostałych po każdym przebiegu. To, co konektor tworzy w Edusign, nie zawsze daje się usunąć w sensie dosłownym: usunięcie nauczyciela jest tam archiwizacją. Proszę więc włączać tworzenie kont ze świadomością tego faktu. --- ## 10. Portale ### 10.1 Portal ucznia *Source: `help/pl/portal/student-portal.md` · id: portal.student-portal · Audience: student/admin · Plan: standard · Updated: 2026-06-13* **Portal ucznia** to interfejs przeznaczony dla uczących się. Jest prostszy i bardziej ukierunkowany niż interfejs administratora — pokazuje dokładnie to, czego uczeń potrzebuje w codziennej pracy: swój osobisty plan lekcji, plan lekcji swojej klasy lub klas, swoje nieobecności oraz udostępnianie swojego kalendarza. #### Osobisty plan lekcji Po otwarciu uczeń widzi **swój własny plan lekcji** na bieżący tydzień: przedmioty, godziny, sale, nauczycieli. Dostępne są trzy klasyczne widoki: - **Tydzień** — standardowa siatka 5 lub 7 dni, zależnie od konfiguracji szkoły. - **Dzień** — chronologiczny terminarz, przydatny na urządzeniu mobilnym. - **Lista** — sekwencyjny widok najbliższych lekcji, bez siatki. Zmiany w ostatniej chwili (przeniesienie lekcji, zmiana sali, odwołanie) są uwzględniane: przy każdym otwarciu lub odświeżeniu widoku uczeń widzi aktualny stan. #### Przeglądanie planu lekcji swojej klasy Poza swoim osobistym planem lekcji uczeń może przeglądać **plan lekcji swojej klasy lub klas** oraz plan **grup** w tych klasach. Na tym jego dostęp się kończy: nie przegląda ani planu lekcji innej klasy, ani planu nauczyciela, ani planu sali. Administrator może ograniczyć **horyzont przeglądania** uczniów: ustawienie określa liczbę widocznych przyszłych tygodni albo przyjmuje wartość **Bez limitu**. Zob. [Ograniczenia widoczności](#page-admin.visibility-restrictions). #### Synchronizacja z osobistym kalendarzem Ikona udostępniania Udostępnianie w widoku planu lekcji otwiera okno Udostępnianie. Jego zakładka **iCal** podaje osobisty adres URL subskrypcji, do wklejenia w Google Calendar, Apple Calendar lub Outlook. Adres URL można skopiować, pobrać jako plik `.ics` albo zeskanować za pomocą kodu QR. Szczegóły: zob. [iCal — subskrypcja i dynamiczny link](#page-integrations.ical). Aplikacja kalendarza odświeża subskrypcję w regularnych odstępach: gdy plan lekcji zmienia się w Omniscol, zmiana pojawia się w kalendarzu ucznia. #### Zgłaszanie nieobecności Jeśli szkoła na to pozwala, uczeń może zgłosić własną nieobecność z poziomu portalu: daty, ewentualne godziny, powód i komentarz. Zob. [Zgłaszanie nieobecności](#page-absences.declaring). Zgłoszenie pojawia się w module Zarządzanie nieobecnościami ze statusem oczekujący do momentu zatwierdzenia przez administratora. Formularz nie przewiduje dołączenia usprawiedliwienia. #### Język interfejsu Język interfejsu jest zgodny z językiem przeglądarki użytkownika. Uczeń może wybrać inny z pozycji Język w menu użytkownika; wybór zostaje zapamiętany na jego koncie i obowiązuje przy kolejnych logowaniach. #### Zobacz także - [Portal nauczyciela](#page-portal.teacher-portal) - [Portal gościa (rodzice, obserwatorzy)](#page-portal.guest-portal) - [iCal — subskrypcja i dynamiczny link](#page-integrations.ical) - [Zgłaszanie nieobecności](#page-absences.declaring) - [Ograniczenia widoczności](#page-admin.visibility-restrictions) ### 10.2 Portal nauczyciela *Source: `help/pl/portal/teacher-portal.md` · id: portal.teacher-portal · Audience: teacher/admin · Plan: standard · Updated: 2026-06-26* **Portal nauczyciela** to interfejs przeznaczony dla nauczycieli. Obejmuje trzy codzienne potrzeby nauczyciela: przeglądanie własnego planu lekcji, wprowadzanie dostępności i zgłaszanie nieobecności. Domyślnie daje też dostęp do planów lekcji kolegów, klas i sal. #### Plan lekcji nauczyciela W bieżącym tygodniu nauczyciel widzi **lekcje, które prowadzi**: przedmiot, klasę, grupę, salę, godziny. Dostępne są trzy widoki: - **Tydzień** — standardowy widok siatki. - **Dzień** — chronologiczny terminarz. - **Lista** — chronologiczna sekwencja bez siatki, przydatna na urządzeniu mobilnym. Zmiany w planie lekcji (przeniesienie albo odwołanie lekcji, dodanie wyjątkowej lekcji) są uwzględniane: przy każdym otwarciu lub odświeżeniu widoku nauczyciel widzi aktualny stan. #### Wprowadzanie własnej dostępności Jeśli szkoła włączyła wprowadzanie dostępności, nauczyciel otwiera swoją własną kartę pozycją **Informacje** w menu użytkownika; zakładka **Dostępność** zawiera siatkę, na której deklaruje swoją dostępność na potrzeby najbliższego tworzenia planu lekcji: - przedziały czasowe **Niedostępny** — ograniczenie blokujące, algorytm generowania nigdy nie umieszcza tam lekcji, a przy ręcznym umieszczaniu powstałby w tym miejscu konflikt, - przedziały czasowe **Niepożądany** — algorytm generowania unika umieszczania tam lekcji, choć nie jest to zakaz bezwzględny, a przy ręcznym umieszczaniu pojawia się ostrzeżenie, - przedziały czasowe **Preferowane** — algorytm generowania chętniej wybiera te przedziały czasowe. Nieoznaczone przedziały czasowe pozostają neutralne: dostępne i w niczym nie wyróżnione. Zob. [Dostępność nauczycieli](#page-core-concepts.wishes-and-availability), gdzie opisano dokładne znaczenie kolorów i dobre praktyki wprowadzania dostępności. Nauczyciel może też dodać **swobodne komentarze** (`w piątki nie uczę z powodu innego zobowiązania zawodowego`), które pomagają administracji zrozumieć kontekst. #### Zgłaszanie nieobecności Przycisk **Zgłoś nieobecność** pozwala nauczycielowi zgłosić własną niedostępność: - daty, których dotyczy; - cały dzień albo wybrane przedziały czasowe; - powód; - krótki komentarz. Zgłoszenie pojawia się w module **Zarządzanie nieobecnościami** ze statusem **oczekujący** do momentu zatwierdzenia przez administratora. Zastępstwami zarządza się następnie w tym samym module; formularz portalu nie przenosi lekcji i nie przewiduje dołączenia usprawiedliwienia. Zob. [Zgłaszanie nieobecności](#page-absences.declaring). #### Przeglądanie planów lekcji kolegów i klas Domyślnie nauczyciel może przeglądać plany lekcji innych nauczycieli (przydatne przy ustalaniu terminów spotkań), klas (aby znaleźć wolny przedział czasowy na wycieczkę) i sal. Restrykcyjne ustawienie (zob. [Ograniczenia widoczności](#page-admin.visibility-restrictions)) ukrywa plany lekcji **innych nauczycieli**; dotyczy ono wyłącznie wglądu w plany lekcji kolegów, a dostęp do planów lekcji klas i sal pozostaje otwarty. #### Synchronizacja z osobistym kalendarzem Podobnie jak u ucznia, ikona udostępniania **Udostępnianie** w widoku planu lekcji otwiera okno **Udostępnianie**, którego zakładka **iCal** podaje osobisty adres URL subskrypcji, do wklejenia w Google Calendar, Apple Calendar lub Outlook. Zob. [iCal — subskrypcja i dynamiczny link](#page-integrations.ical). Przydatne dla nauczycieli, którzy chcą widzieć swoje lekcje w tym samym kalendarzu co spotkania i sprawy prywatne. #### Zobacz także - [Portal ucznia](#page-portal.student-portal) - [Dostępność nauczycieli](#page-core-concepts.wishes-and-availability) - [iCal — subskrypcja i dynamiczny link](#page-integrations.ical) - [Zgłaszanie nieobecności](#page-absences.declaring) - [Ograniczenia widoczności](#page-admin.visibility-restrictions) ### 10.3 Portal gościa (linki publiczne) *Source: `help/pl/portal/guest-portal.md` · id: portal.guest-portal · Plan: standard · Updated: 2026-05-15* **Portal gościa** oznacza tutaj przeglądanie planu lekcji przez osobę, która nie ma konta Omniscol w placówce. Typowym przypadkiem jest podpisany link publiczny: adres URL ograniczony do precyzyjnie określonego zakresu, otwierany tylko do odczytu. #### Tryby dostępu Zależnie od potrzeby proszę wybrać jedną z możliwości: - **Podpisany link publiczny** — adres URL zawierający tajny token daje dostęp do jednego konkretnego planu lekcji (ucznia, klasy, sali, nauczyciela) bez uwierzytelniania. Wygodny przy udostępnianiu rodzicowi: jeden link, żadnego hasła do zapamiętania. Zob. [Publiczne linki udostępniania](#page-portal.share-links). - **Ograniczone konto Omniscol** — jeśli dana osoba ma mieć dostęp trwały, uwierzytelniony albo obejmujący kilka zakresów, proszę raczej utworzyć konto z odpowiednią rolą i uprawnieniami. Proszę nie przedstawiać tego przypadku jako anonimowego linku publicznego. #### Co widzi gość Gość widzi plan lekcji w trybie **ściśle tylko do odczytu**: - nie można nic zmienić, - nie można zgłosić nieobecności, - nie można wprowadzić dostępności, - nie ma dostępu do planów lekcji poza zakresem zawartym w linku. Link otwiera przewidziany widok przeglądania, tylko do odczytu. W przypadku **planu lekcji** wyświetlanie jest automatycznie uproszczone — bez górnego paska i bez menu aplikacji — co daje stronę skupioną wyłącznie na kalendarzu. Taki sposób wyświetlania odpowiada parametrowi `raw=true` w adresie URL: ustawianemu automatycznie na linkach do planów lekcji, opcjonalnemu na pozostałych ekranach i możliwemu do dopisania ręcznie przez doświadczonego użytkownika. Parametr nie zmienia ani uwierzytelniania, ani zakresu linku. Niektóre linki udostępniania służą ukierunkowanemu działaniu, a nie przeglądaniu: link do wprowadzania dostępności nauczycieli zezwala wyłącznie na przewidziany formularz, aż do swojej daty wygaśnięcia. #### Przypadek użycia: rodzic ucznia (oświata) Typowy scenariusz w szkole podstawowej i ponadpodstawowej: 1. Administrator (albo sam uczeń) generuje link udostępniania planu lekcji ucznia. 2. Link zostaje wysłany rodzicowi pocztą elektroniczną. 3. Rodzic otwiera link: widzi plan lekcji swojego dziecka. 4. Z tego samego linku może utworzyć subskrypcję iCal i mieć plan lekcji wprost w Google Calendar / Apple Calendar. Nie trzeba zakładać konta ani zarządzać hasłem. #### Przypadek użycia: stały obserwator Jeśli zewnętrzny konsultant dydaktyczny ma śledzić realizację programu przez cały rok, proszę domyślnie unikać anonimowego linku publicznego. Proszę utworzyć konto Omniscol ograniczone do niezbędnego zakresu albo wprowadzić podpisane udostępnianie z krótką datą wygaśnięcia i kontrolowanym odnawianiem. #### Bezpieczeństwo - Podpisany link publiczny pozostaje ważny aż do swojej daty wygaśnięcia. Zostaje unieważniony, jeśli zmieni się hasło konta, do którego jest przypisany (albo jeśli to konto zostanie dezaktywowane); link iCal zostaje unieważniony także przez rotację klucza dostępu placówki. - Ograniczone konto Omniscol można dezaktywować tak samo jak pozostałe konta użytkowników. - Dostępu przez link publiczny nie wolno traktować tak jak uwierzytelnionego użytkownika wewnętrznego. #### Zobacz także - [Publiczne linki udostępniania](#page-portal.share-links) - [Portal ucznia](#page-portal.student-portal) - [iCal — subskrypcja i dynamiczny link](#page-integrations.ical) - [Udostępnianie planu lekcji linkiem publicznym](#page-schedules.share-link) ### 10.4 Publiczne linki udostępniania *Source: `help/pl/portal/share-links.md` · id: portal.share-links · Audience: admin · Plan: standard · Updated: 2026-06-13* **Publiczny link udostępniania** to podpisany adres URL, który daje dostęp do ekranu przeglądania — najczęściej do planu lekcji — tylko do odczytu i bez logowania. To najprostszy kanał przekazania kalendarza osobie, która nie ma (i nie będzie mieć) konta Omniscol: rodzicowi, zewnętrznemu partnerowi, służbie administracyjnej. #### Dostępne formaty Zależnie od kontekstu i uprawnień użytkownika, który udostępnia, Omniscol może wygenerować kilka podpisanych adresów URL: - **Responsywna strona internetowa** — widok do przeglądania w stylu portalu, z widokami tygodnia / dnia / listy. To właśnie widzi osoba, która otwiera link w przeglądarce. - **Strumień iCal (`.ics`)** — dynamiczna subskrypcja dla Google Calendar, Apple Calendar, Outlook. Zob. [iCal — subskrypcja i dynamiczny link](#page-integrations.ical). - **JSON (API)** — dla programistów i integracji maszyna-maszyna, gdy ten format jest dozwolony. Te formaty nie są uniwersalną obietnicą: okno dialogowe pokazuje zakładki rzeczywiście wygenerowane dla bieżącego wyboru. #### Co można udostępnić? Udostępnianie nie ogranicza się do ekranu przeglądania planów lekcji: ta sama ikona udostępniania **Udostępnianie** znajduje się na większości ekranów Omniscol. **Tylko do odczytu** można udostępnić: - **plan lekcji jednostki** — ucznia, klasy, nauczyciela, sali lub przedmiotu: najczęstszy przypadek (rodzice, koledzy, nauczyciele zewnętrzni, służby techniczne); - **pełny ekran planu lekcji** modułu **Plany lekcji**; - sześć **paneli zarządczych** (nauczyciele, sale, zasoby, przedmioty, klasy, uczniowie); - ekrany **monitorowania nieobecności** (nauczyciele, klasy, uczniowie, personel); - **grafiki dyżurów** modułu **Obsada personelu** (siatka, przydziały, planer, lista obecności); - ekrany **podglądu**, **reorganizacji** i **układu strony** planu lekcji; - ekran szczegółów osoby — nauczyciel albo członek personelu. **Do odczytu i zapisu** — tylko dwa przypadki — udostępnia się **wprowadzanie dostępności** osoby: nauczyciel albo członek personelu. Dedykowany link pozwala takiej osobie wpisać i zatwierdzić swoją dostępność oraz edytować swój profil, aż do daty wygaśnięcia, **bez konta ani hasła** Omniscol. Link jest powiązany z jej tożsamością i pojawia się tylko na jej własnej karcie. Ograniczenia czasowe klasy, sali, grupy lub kursu pozostają wewnętrznymi ekranami edycji: nie zbiera się ich przez link udostępniania. Każdy podpisany adres URL zawiera żądany zakres i datę wygaśnięcia. #### Tworzenie linku udostępniania W module **Plany lekcji** proszę wybrać plan lekcji do udostępnienia (ucznia, klasy, sali…), a następnie kliknąć ikonę udostępniania **Udostępnianie**. Otwierające się okno **Udostępnianie** oferuje: - **Data wygaśnięcia** — data, do której wygenerowane adresy URL pozostają ważne. - **Zakładki Web, iCal i JSON** — widoczne zależnie od formatów wygenerowanych dla danego udostępnienia. Następnie proszę skopiować właściwy adres URL. Okno dialogowe może pokazać kod QR dla linków przeznaczonych do przeglądania przez człowieka. #### Ograniczanie lub unieważnianie linku Udostępnianie publiczne nie prowadzi rejestru wydanych linków: Omniscol nie zapewnia ani zbiorczej listy przekazanych już linków, ani licznika dostępów, ani unieważniania link po linku. Unieważnienie odbywa się więc przez konto właściciela (hasło, dezaktywacja) i przez datę wygaśnięcia. Aby ograniczyć ryzyko: - proszę wybrać bliską datę wygaśnięcia; - proszę udostępniać wyłącznie niezbędny zakres; - do dystrybucji zespołowej proszę używać **wyraźnie oznaczonego konta serwisowego**, a nie konta osobistego; - w razie niepożądanego rozpowszechnienia proszę zmienić lub zresetować hasło konta właściciela albo, jeśli to konieczne, dezaktywować to konto. Zmiana hasła unieważnia linki należące do tego konta, nawet jeśli nowe hasło jest w jawnej postaci identyczne, ponieważ zmienia się zapisany skrót. Dezaktywacja lub usunięcie konta właściciela również odcina dostęp. #### Bezpieczeństwo - Adres URL zawiera podpisany token, trudny do odgadnięcia. - Link udostępnia **wyłącznie ekrany wpisane w jego token**, a nie resztę konta. W przypadku **planu lekcji jednostki** (oraz każdego strumienia **iCal**) filtr jest utrwalony w tokenie: odbiorca pozostaje ograniczony do tej jednostki — rodzic mający link do planu lekcji swojego dziecka nie dotrze do planu lekcji innego ucznia. Udostępnienie **pełnego ekranu planu lekcji** odzwierciedla natomiast **uprawnienia konta, które je wygenerowało**: przy ukierunkowanej dystrybucji zewnętrznej proszę udostępnić plan lekcji konkretnej jednostki, a nie cały ekran. - Ważność jest ograniczona datą wygaśnięcia. - Ważność zależy też od konta właściciela: zmiana hasła, dezaktywacja lub usunięcie unieważniają powiązane linki. - Każda osoba, która ma ten adres URL, może przeglądać udostępniony zakres aż do wygaśnięcia lub unieważnienia. #### Wstawianie planu lekcji na stronę (iframe) **Dzisiaj nie jest to możliwe w innej witrynie.** Aby zabezpieczyć się przed przejmowaniem kliknięć, Omniscol nie pozwala wyświetlać się w ramce (`iframe`) hostowanej w innej domenie niż własna. Przy próbie wstawienia planu lekcji do dziennika elektronicznego, do intranetu albo do publicznej witryny przeglądarka **odmawia** wyświetlenia ramki. Tę blokadę bezpieczeństwa zakłada Omniscol i nie da się jej zmienić z konta placówki. Jedynym wyjątkiem, w praktyce rzadkim, jest strona serwowana w dokładnie tej samej domenie co instancja Omniscol. Aby mimo wszystko udostępnić plan lekcji w zewnętrznej witrynie, są trzy proste rozwiązania: - **link** do adresu udostępniania: odbiorca otwiera plan lekcji w nowej karcie, bez wstawionej ramki; - **subskrypcja iCal**, aby plan lekcji pojawił się w kalendarzu danej osoby (Google Calendar, Outlook…) — zob. [iCal — subskrypcja i dynamiczny link](#page-integrations.ical); - **panel informacyjny**, na publiczny ekran na terenie szkoły — zob. [Panel informacyjny](#page-panels.lobby-panel). #### Instrukcja — Tworzenie linku dla rodziców z datą wygaśnięcia 1. **Aby udostępnić plan lekcji klasy rodzicom** bez zakładania im kont: podpisany link publiczny, ograniczony w czasie. 2. **Proszę otworzyć docelowy plan lekcji** w module **Plany lekcji**: wybrać właściwą klasę. Ikona udostępniania **Udostępnianie** znajduje się na pasku tytułu widoku. 3. **Okno udostępniania**: proszę wybrać **data wygaśnięcia**. Przy udostępnianiu rodzicom najdalszą granicą powinien być koniec danego semestru. 4. **Proszę skopiować potrzebny format.** Web do bezpośredniego przeglądania, iCal do subskrypcji kalendarza, JSON tylko wtedy, gdy przewidziana jest integracja API. Omniscol może też pokazać kod QR na potrzeby dystrybucji drukowanej. 5. **Proszę przekazać link** przewidzianym kanałem: zebranie z rodzicami, newsletter, dziennik elektroniczny, intranet albo wiadomość ukierunkowana. 6. **Jeśli link krąży poza zamierzonym kręgiem**, proszę utworzyć nowy, bardziej ograniczony link, a następnie w razie potrzeby unieważnić linki należące do starego konta: zmiana hasła, dezaktywacja albo usunięcie konta właściciela. #### Zobacz także - [Portal gościa (rodzice, obserwatorzy)](#page-portal.guest-portal) - [iCal — subskrypcja i dynamiczny link](#page-integrations.ical) - [Udostępnianie planu lekcji linkiem publicznym](#page-schedules.share-link) --- ## 11. Panele informacyjne ### 11.1 Konfigurowanie panelu informacyjnego dla holu lub korytarza *Source: `help/pl/panels/lobby-panel.md` · id: panels.lobby-panel · Audience: admin · Plan: standard · Updated: 2026-05-12* **Panel informacyjny** to strona internetowa wyświetlana w przeglądarce w trybie pełnoekranowym — na telewizorze, monitorze lub tablecie — aby pokazywać publiczności szkoły lekcje i wydarzenia danego dnia. To moduł przeznaczony do ekranu w holu wejściowym, ekranu na korytarzu, przed laboratorium lub naprzeciw auli: treść zależy wyłącznie od zastosowanego filtra, a nie od miejsca, w którym stoi ekran. Paneli można utworzyć dowolnie wiele, każdy z własnym filtrem i własnym adresem URL. #### Tworzenie nowego panelu W module **Plany lekcji** przycisk **Panel informacyjny** otwiera ekran konfiguracji. Lista po lewej stronie pokazuje istniejące panele; zielony przycisk **Dodaj** tworzy nowy, pusty panel. Istniejący panel można również **zduplikować** za pomocą **Duplikuj**, co jest szybsze przy zarządzaniu flotą ekranów o tej samej identyfikacji wizualnej. Każdy panel ma dwa pola: **Etykieta** — aby odnaleźć panel na liście — oraz **Tytuł**, wyświetlany u góry ekranu publicznego. Mogą się różnić: `Hol główny — kampus A` po stronie administracji, `Witamy w Szkole X — kampus A` na ekranie. #### Filtrowanie wyświetlanych lekcji Główny filtr — właściwość **Pokaż** — decyduje o tym, co trafia na ekran. Cztery uzupełniające się osie: - **Poziomy** — wszystkie klasy danego poziomu od razu (na przykład wszystkie klasy siódme). - **Klasy** — jawny wybór jednej lub kilku klas. - **Lokalizacje** — wszystkie sale danej lokalizacji (przydatne dla ekranu stojącego w holu konkretnej lokalizacji). - **Sale** — jawny wybór jednej lub kilku sal (przydatne dla panelu obejmującego jedno skrzydło budynku). Pusty filtr = wszystkie lekcje. To właściwe ustawienie domyślne dla ekranu w głównym holu, który ma pokazywać wszystko, co dzieje się w szkole. Druga lista — **Ukryj** — pozwala wybiórczo wyłączyć lekcje z zachowanego strumienia: - **Przedmioty** do ukrycia (na przykład nie wyświetlać wychowania fizycznego, jeśli odbywa się daleko od budynku głównego), - **Typy lekcji** do ukrycia (na przykład ukryć egzaminy, których nie należy ogłaszać publicznie). Filtr i maska działają łącznie: najpierw zostaje wszystko, co odpowiada filtrowi, a następnie usuwane jest to, co odpowiada masce. #### Ustawianie wyświetlanego zakresu czasu Właściwość **Zakres czasu** decyduje, jak daleko w przód panel pokazuje lekcje: - **Koniec dnia** (domyślnie) — przewija lekcje trwające i jeszcze zaplanowane na dziś (trwająca lekcja pozostaje widoczna do godziny zakończenia). Odpowiednie dla ekranu działającego przez cały dzień. - **okno przesuwne** — w krokach co 30 min do **+ 2 godz.**, następnie co pełną godzinę do **+ 12 godz.**. Panel pokazuje tylko to, co rozpoczyna się w wybranym oknie, licząc od godziny bieżącej. Przydatne dla bardzo obciążonego ekranu w holu, gdzie trzeba uniknąć ściany informacji: na przykład pokazywać tylko dwie najbliższe godziny. Odświeżanie odbywa się automatycznie w przeglądarce, bez ręcznego przeładowania; w miarę upływu czasu zakończone lekcje wychodzą z okna, a wchodzą kolejne. #### Dodawanie komunikatów tymczasowych Sekcja **Informacje** pozwala wyświetlić na panelu jeden lub kilka komunikatów tekstowych, każdy z własnym zakresem czasu. Typowe przypadki: - ogłoszenie wydarzenia (`Zebranie z rodzicami w sali B204 o godz. 17.30`), - ostrzeżenie o utrudnieniu (`Remont w skrzydle południowym, wejście od tyłu budynku`), - przekazanie słowa powitania (`Witamy na dniu otwartym`). Każdy komunikat ma dowolny tekst, godzinę rozpoczęcia i godzinę zakończenia. Poza tym zakresem komunikat znika automatycznie — nie trzeba go później usuwać ręcznie. #### Pobranie publicznego adresu URL panelu Po zapisaniu każdy panel ma **unikalny adres URL**, który należy otworzyć w trybie pełnoekranowym na urządzeniu docelowym. Adres zawiera tajny skrót uprawniający do dostępu bez logowania — to właśnie pozwala niezalogowanemu telewizorowi wyświetlać treść. Dopóki skrót nie zostanie rozpowszechniony publicznie, panel pozostaje niedostępny. Dobra praktyka: otworzyć ten adres w przeglądarce w **pełnoekranowym trybie kiosku** (Chrome `--kiosk`, Firefox F11), najlepiej na mini-PC lub odtwarzaczu digital signage podłączonym do ekranu. Przeglądarka sama zajmuje się odświeżaniem i przewijaniem. #### Instrukcja — Utworzenie panelu informacyjnego 1. **Panel informacyjny to strona internetowa**, którą wyświetla się w trybie pełnoekranowym na telewizorze lub monitorze, aby pokazywać lekcje danego dnia. 2. **Proszę kliknąć** **Dodaj**, aby utworzyć nowy, pusty panel. Można też zduplikować istniejący panel, żeby nie zaczynać od zera — oszczędność czasu przy zarządzaniu flotą ekranów o tej samej identyfikacji wizualnej. 3. **Proszę wypełnić etykietę** (**Etykieta** — po stronie administracji, aby odnaleźć panel na liście) oraz **tytuł** (wyświetlany u góry ekranu publicznego). Na przykład: `Hol główny — kampus A` po stronie administracji, `Witamy w Szkole X` na ekranie. 4. **Proszę wybrać filtr lekcji** we właściwości **Pokaż**: poziomy, klasy, lokalizacje lub sale. Pusty filtr = wszystkie lekcje. Dla panelu w głównym holu zwykle pozostaje pusty. Dla ekranu przy sali proszę wybrać tę salę. 5. **Proszę ewentualnie dodać komunikaty tymczasowe** z ich zakresem czasu (zebranie, utrudnienie, powitanie). Poza tym zakresem komunikat automatycznie przestaje być wyświetlany. 6. **Proszę zapisać.** Pojawia się unikalny adres URL panelu, który należy otworzyć w trybie pełnoekranowym na urządzeniu docelowym (Chrome `--kiosk`, Firefox F11). Odświeżanie jest następnie automatyczne. #### Zobacz także - [Panel informacyjny](#page-glossary.panel) - [Panel przed salą](#page-panels.room-panel) - [Personalizacja paneli](#page-panels.customization) ### 11.2 Konfigurowanie panelu informacyjnego przed salą *Source: `help/pl/panels/room-panel.md` · id: panels.room-panel · Audience: admin · Plan: standard · Updated: 2026-06-13* **Panel przed salą** to szczególny przypadek panelu informacyjnego: konfiguracja jest taka sama jak w panelu w holu, ale filtr obejmuje **tylko jedną salę** zamiast lokalizacji albo poziomu. Ekran zamontowany obok drzwi pokazuje wyłącznie obłożenie odpowiadającej mu sali, co odpowiada na pytanie, które zadają sobie ludzie na korytarzu: *„co dzieje się w tej sali teraz, a co potem?”* Typowe przypadki: - drzwi auli wykładowej, - wejście do laboratorium albo do sali komputerowej, - sala wielofunkcyjna dzielona przez kilka kierunków, - studio albo warsztat (muzyka, projektowanie, wideo). #### Konfiguracja Moduł **Plany lekcji** udostępnia ten sam przycisk **Panel informacyjny** co w przypadku panelu w holu. Różnica tkwi w filtrze: w sekcji **Pokaż** proszę wybrać **Sale** i zaznaczyć tę jedną, odpowiednią salę. Pozostałe ustawienia są identyczne jak w panelu w holu: - **Etykieta** po stronie administracji (na przykład `Drzwi B204`), **tytuł** po stronie ekranu (na przykład `Sala B204 — Nauki przyrodnicze`). - **Zakres czasu**: lepiej wybrać **+ 2 h** albo **+ 4 h** niż cały dzień — przy sali użytkownik chce przede wszystkim wiedzieć, która lekcja trwa i która będzie następna. - **Rozmiar czcionki**: **Duża** jest często odpowiednia dla ekranu czytanego z odległości 1-2 metrów na korytarzu, mniejsza, jeśli ekran znajduje się blisko. - **Komunikaty**: przydatne, aby ogłosić jednorazową rezerwację (`Sala zarezerwowana na zebranie rady pedagogicznej o 14:00`) albo niedostępność (`Sala niedostępna z powodu konserwacji do 15:00`). #### Kilka sal na tym samym ekranie Jeśli jeden ekran obejmuje kilka sąsiednich sal (skrzydło budynku, sale tego samego laboratorium), w filtrze można zaznaczyć kilka sal. Lekcje wszystkich wybranych sal są wtedy **scalane w jedną listę posortowaną według godziny**; jeśli nie mieści się ona na ekranie, panel dzieli ją **na strony** (przewijanie stron). Nie przełącza się natomiast kolejno między salami. Aby uzyskać rzeczywiście odrębny widok dla każdej sali, proszę utworzyć po jednym panelu na salę — każdy ma własny adres URL. Jeden mini-komputer może wyświetlać kilka paneli, cyklicznie przełączając kilka kart w trybie pełnoekranowym, za pomocą funkcji kiosku przeglądarki albo systemu (nie jest to ustawienie Omniscol). #### Adres URL i wdrożenie Każdy panel ma własny, unikalny adres URL, bez logowania, który należy otworzyć w trybie kiosku na pełnym ekranie na urządzeniu zamontowanym obok drzwi. Odświeżanie jest automatyczne, przez okresowe odpytywanie: widok jest ponownie filtrowany według bieżącej godziny mniej więcej co minutę, a dane są przeładowywane co pięć minut — żadnego ręcznego działania, ale aktualizacja nie jest natychmiastowa. #### Instrukcja — Utworzenie panelu przed salą 1. **Panel przed salą** pokazuje obłożenie tej sali w najbliższych godzinach. Różnica w stosunku do panelu w holu: filtr obejmujący jedną salę, krótki zakres czasu, rozmiar czcionki dopasowany do czytania na korytarzu. 2. Proszę kliknąć **Dodaj** w module **Plany lekcji**, aby utworzyć nowy panel (albo zduplikować istniejący panel w holu i go dostosować). 3. **Proszę wpisać etykietę i tytuł.** Etykieta po stronie administracji (`Drzwi B204`), tytuł po stronie ekranu (`Sala B204 — Nauki przyrodnicze`). Tytuł jest tym, co widzą ludzie na korytarzu. 4. **Filtr: sekcja Pokaż → Sale**, proszę zaznaczyć **odpowiednią salę**. W przypadku ekranu obejmującego całe skrzydło (kilka sąsiednich sal) proszę zaznaczyć je wszystkie — ich lekcje są scalane w jedną listę posortowaną według godziny, w razie potrzeby podzieloną na strony. 5. **Ustawienia specyficzne dla drzwi sali:** - **Zakres czasu**: lepiej wybrać `+ 2 h` albo `+ 4 h` niż cały dzień — użytkownik chce wiedzieć, która lekcja trwa i która będzie następna. - **Rozmiar czcionki**: `Duża` dla ekranu czytanego z 1-2 m. - **Komunikaty**: przydatne, aby ogłosić jednorazową rezerwację albo niedostępność. 6. **Proszę zapisać.** Następnie proszę pobrać unikalny adres URL panelu i otworzyć go w trybie kiosku na pełnym ekranie na urządzeniu zamontowanym obok drzwi. Odświeżanie jest automatyczne, przez okresowe odpytywanie (ponowne filtrowanie mniej więcej co minutę, przeładowanie danych co pięć minut). #### Zobacz także - [Panel informacyjny](#page-glossary.panel) - [Panel informacyjny](#page-panels.lobby-panel) - [Personalizacja paneli](#page-panels.customization) ### 11.3 Personalizacja wizualna paneli informacyjnych *Source: `help/pl/panels/customization.md` · id: panels.customization · Audience: admin · Plan: standard · Updated: 2026-05-12* Panele informacyjne Omniscol są zaprojektowane tak, aby wizualnie wpisywały się w identyfikację wizualną szkoły. Możliwe są dwa poziomy personalizacji: (1) ustawienia **w interfejsie** (wystarczające w większości przypadków), (2) **całkowite zastąpienie** strony internetowej, która wyświetla panel (dla wdrożeń o silnej identyfikacji wizualnej). #### Ustawienia w interfejsie W module **Plany lekcji** przycisk **Panel informacyjny** otwiera ekran konfiguracji paneli. Ekran ten udostępnia następujące opcje wyświetlania, które można zmieniać bez ingerencji w kod: - **Rozmiar czcionki** — mały, średni lub duży. Wyświetlanie korzysta z jednostek względnych wobec rozmiaru okna (`vmin`), więc czytelność pozostaje spójna niezależnie od formatu ekranu (`16:9`, `4:3`, pionowy). - **Kolory** — kolor tła, kolor tekstu, kolory parzystych i nieparzystych linii tabeli lekcji. Przyjmowane są wszystkie kody szesnastkowe; można odwzorować paletę identyfikacji wizualnej szkoły. - **Nagłówek** — uporządkowane połączenie: **tytułu**, **logo**, **daty bieżącego dnia**. Wybiera się, co pojawia się w nagłówku i w jakiej kolejności. - **Kolumny tabeli lekcji** — wybór i kolejność spośród: **sala**, **klasy**, **nauczyciele**, **przedmiot**, **godziny**. Ukrycie kolumny (na przykład nauczycieli na publicznym panelu przy wejściu) albo przestawienie jej działa natychmiast. - **Format imienia i nazwiska nauczyciela** — imię-nazwisko, nazwisko-imię, zwrot grzecznościowy + nazwisko (Pani Kowalska), zwrot grzecznościowy + imię. Zwroty `Pan` i `Pani` automatycznie podążają za językiem interfejsu; dla każdego panelu ustawia się sam **format**. - **Logo** — logo placówki wgrane w konfiguracji szkoły może być wyświetlane w nagłówku. Te ustawienia są zapisywane w konfiguracji panelu. Uwaga: w odróżnieniu od lekcji i komunikatów, które odświeżają się same, te opcje **wizualne** (kolory, rozmiar, kolumny, nagłówek, format imienia i nazwiska) są wbudowywane w stronę w chwili jej ładowania. Po ich zapisaniu proszę **odświeżyć karty** już otwarte na ekranach (F5 albo ponowne uruchomienie strony w trybie kiosku), aby przyjęły nowy wygląd. #### Całkowite zastąpienie szablonu (licencja MIT) Szablon, który wyświetla stronę panelu, jest wprost objęty **licencją MIT** i można go skopiować, a następnie dostosować, aby spersonalizować panel placówki. Otwiera to kilka możliwości dla placówek, które chcą wyjść poza same ustawienia: - **Pełna przebudowa wizualna** — przepisanie HTML/CSS szablonu tak, aby odpowiadał silnej identyfikacji wizualnej (własny krój pisma, dedykowane animacje, niestandardowy układ). - **Włączenie do istniejącego systemu digital signage** — wbudowanie treści panelu Omniscol w zbiorczą stronę informacyjną, która łączy lekcje, pogodę, aktualności szkoły, filmy… - **Specyficzne widoki dziedzinowe** — utworzenie wyświetlania na przykład dla opiekunów (kto ma co robić), dla służb technicznych (obłożenie sal wraz z zapotrzebowaniem na zasoby) itd. Są na to dwa komplementarne podejścia: 1. **Fork szablonu** — jeśli Omniscol działa na własnym serwerze szkoły, proszę zduplikować `panel.dot`, zmodyfikować go i wdrożyć własną wersję. Licencja MIT wprost zezwala na modyfikacje, redystrybucję i użycie komercyjne. 2. **API JSON panelu** — aby zachować Omniscol jako źródło danych, a samo wyświetlanie realizować po stronie systemu zewnętrznego, adres URL panelu udostępnia również wariant JSON (`GET /panels/:accesshash/lessons`). Zwraca on listę lekcji przefiltrowanych zgodnie z konfiguracją panelu, gotową do odczytu przez zewnętrzny system digital signage (Yodeck, Xibo, ScreenCloud, własny panel zarządczy). Ten adres otwiera się kluczem dostępu panelu, bez dodatkowego tokenu. Szersze integracje między systemami opisuje REST API Omniscol, przedstawione w [API Omniscol](#page-integrations.api-tokens). #### Praktyczne zalecenia Kilka kwestii, które często powtarzają się przy wdrożeniach: - **Kontrast** — ciemne tło z jasnym tekstem jest mniej męczące przy ekranie pracującym 12 godzin dziennie niż tło białe. - **Rozmiar czcionki „Duży”** gdy tylko ekran czyta się z odległości powyżej 2 m (typowe dla holu wejściowego). Dla ekranów przy drzwiach sali, oglądanych z bliska, lepszy jest „Średni”. - **Logo w nagłówku** — zawsze przydatne do szybkiej identyfikacji, gdy w jednej dużej lokalizacji działa kilka paneli. - **Data w nagłówku** — przydatna w holu (odwiedzający sprawdzają datę), mniej przydatna przed salą (kontekst jest oczywisty). - **Ukrycie kolumny nauczycieli** na panelach publicznych, jeśli w szkole obowiązują wewnętrzne zasady wyświetlania nazwisk. #### Instrukcja — Odwzorowanie identyfikacji wizualnej szkoły na panelu 1. **Dwa poziomy personalizacji**: (1) ustawienia w interfejsie (wystarczające w 90% przypadków), (2) całkowite zastąpienie szablonu MIT przy silnej identyfikacji wizualnej. 2. **Proszę otworzyć konfigurację panelu** w module **Plany lekcji**, przyciskiem **Panel informacyjny**. Ekran pokazuje opcje wyświetlania: kolory, rozmiar, nagłówek, kolumny, format imienia i nazwiska. 3. **Proszę dopasować kolory do identyfikacji wizualnej**: kolor tła, kolor tekstu, kolory linii parzystych/nieparzystych. Kody szesnastkowe są przyjmowane. Dla ekranu pracującego 12 godzin dziennie lepsze jest **ciemne tło z jasnym tekstem** (mniej męczące). 4. **Nagłówek**: proszę wybrać kolejność **logo**, **tytułu**, **daty**. Logo przydaje się, gdy w jednej lokalizacji jest kilka paneli. Data przydatna w holu, zbędna przed salą. 5. **Kolumny tabeli lekcji**: proszę wybrać i uporządkować spośród: sala, klasy, nauczyciele, przedmiot, godziny. Na **publicznym panelu przy wejściu**, gdzie regulamin placówki zabrania wyświetlania nazwisk, proszę ukryć kolumnę **nauczyciele**. **Format imienia i nazwiska** (jeśli kolumna zostaje): imię-nazwisko, nazwisko-imię, zwrot grzecznościowy+nazwisko, zwrot grzecznościowy+imię. 6. **Rozmiar czcionki**: duży, gdy ekran czyta się z odległości powyżej 2 m (hol), średni przy drzwiach sali (oglądany z bliska). Jednostki względne w `vmin` — czytelność pozostaje spójna niezależnie od formatu ekranu. 7. **Proszę zapisać, a następnie odświeżyć ekrany.** Te ustawienia wizualne są wbudowywane w stronę przy ładowaniu: proszę odświeżyć (F5) karty już otwarte na panelach, aby przyjęły nowy wygląd. **Dalsze możliwości** (pełna przebudowa, integracja z zewnętrznym systemem digital signage Yodeck/Xibo/ScreenCloud): szablon `panel.dot` jest objęty **licencją MIT**, fork jest dozwolony. Wariant JSON adresu URL panelu (`GET /panels/:accesshash/lessons`) udostępnia dane gotowe do odczytu przez system zewnętrzny, z kluczem dostępu panelu. Szersze REST API: zob. [API Omniscol](#page-integrations.api-tokens). #### Zobacz także - [Panel informacyjny](#page-panels.lobby-panel) - [Panel przed salą](#page-panels.room-panel) - [Panel informacyjny](#page-glossary.panel) - [API Omniscol](#page-integrations.api-tokens) --- ## 12. Migracja z innego programu ### 12.1 Migracja z innego oprogramowania — przegląd *Source: `help/pl/migration/overview.md` · id: migration.overview · Audience: admin · Updated: 2026-05-10* Przejście na Omniscol z innego oprogramowania do zarządzania planami lekcji? Dróg jest kilka — zależą od programu źródłowego i od tego, jak bogaty jest dostępny eksport. #### Dostępne podejścia ##### 1. Importery formatów natywnych W przypadku dwóch programów Omniscol czyta natywny plik eksportu bezpośrednio, bez pośredniego arkusza kalkulacyjnego: wystarczy wskazać plik lub pliki na ekranie Import/Eksport (import UnDeuxTEMPS, złożony z kilku plików `.DBF`, znajduje się w sekcji formatów francuskich). | Program źródłowy | Format czytany bezpośrednio | Osobna strona | | --- | --- | --- | | ASC Timetables | plik XML aSc | [Z aSc Timetables](#page-migration.from-asc) | | UnDeuxTEMPS | pliki UDT (`.DBF`) | [migration.from-undeuxtemps](#page-migration.from-undeuxtemps) | W przypadku pozostałych programów (Hyperplanning, EDT / Pronote, ADE) przeniesienie odbywa się przez **import masowy** z arkusza kalkulacyjnego, opisany w punkcie 2: dane eksportuje się z programu źródłowego, formatuje w arkuszu, a potem importuje. Każda ze stron poniżej omawia odpowiedniki i pułapki właściwe dla danego programu: - [Z Hyperplanning (Index Education)](#page-migration.from-hyperplanning) - [Z EDT / PRONOTE (Index Education)](#page-migration.from-edt) - [Z ADE / ADE Campus](#page-migration.from-ade) > **Aurion i Auriga** to **systemy ERP** (administracyjne zarządzanie > szkołą), a nie oprogramowanie do planowania. Omniscol się z nimi > integruje, ale ich nie zastępuje. Tryby integracji opisują > [integrations.aurion](#page-integrations.aurion) oraz > [integrations.auriga](#page-integrations.auriga). ##### 2. Ogólny import z arkusza kalkulacyjnego Jeśli program źródłowy nie ma natywnego importera albo jeśli woli się samemu zapanować nad formatowaniem: proszę wyeksportować dane do arkusza kalkulacyjnego (Excel, Arkusze Google, Numbers, Calc) i użyć **importu masowego** Omniscol. Zob. [Masowy import kursów z arkusza kalkulacyjnego](#page-timetables.mass-import). ##### 3. Bezpośrednie API Przy migracji **zautomatyzowanej** (na przykład gdy chce się synchronizować dane w okresie przejściowym między dwoma programami) można napisać skrypt, który wysyła dane przez API Omniscol. Zob. [API Omniscol](#page-integrations.api-tokens). ##### 4. Ręczne przeniesienie W małych placówkach albo przy migracjach częściowych ręczne wprowadzanie danych pozostaje możliwe. Proszę liczyć się z kilkoma godzinami do kilku dni, zależnie od wielkości. #### Zalecana strategia migracji 1. **Zmapować dane** — przede wszystkim proszę zrobić inwentarz tego, co ma zostać przeniesione: nauczyciele, uczniowie, sale, przedmioty, struktura klas, obecny plan lekcji, dostępność, nieobecności. 2. **Ustalić zakres** — zwykle nie przenosi się wszystkiego. Uczniowie mogą zostać w systemie SIS i być synchronizowani później. Historyczne plany lekcji mogą pozostać zarchiwizowane osobno. 3. **Wykonać częściowy import próbny** — na podzbiorze (jedna klasa, jeden rocznik), aby sprawdzić jakość przeniesienia. 4. **Wyznaczyć termin** — zwykle przejście następuje na **początku następnego roku szkolnego**, a nie w trakcie roku, żeby nie trzeba było zarządzać ciągłością. 5. **Przeszkolić użytkowników** — Omniscol ma inne konwencje niż programy konkurencyjne. Proszę przewidzieć czas na szkolenie, zwłaszcza w zakresie pojęć dziedzinowych ([Podział klasy](#page-glossary.class-division), [Wyrównanie grup](#page-glossary.alignment), [Grupa grup](#page-glossary.groups-of-groups)). #### Specyfika terminologiczna zależnie od programu źródłowego | Termin programu konkurencyjnego | Odpowiednik w Omniscol | | --- | --- | | „zasób” w rozumieniu Hyperplanning (nauczyciel, sala, klasa…) | Kilka jednostek, zależnie od przypadku | | „cours” w rozumieniu EDT/Pronote (umieszczona jednostka) | [Lekcja / Godzina lekcyjna](#page-glossary.lesson) | | „cours” w rozumieniu dydaktycznym (przedmiot nauczany w danej klasie) | [Kurs](#page-glossary.course) | | „budynek” | [Sala](#page-glossary.classroom) ma tag albo pole budynku | | „program studiów” w szkolnictwie wyższym | [Klasa](#page-glossary.class) albo zestaw klas | | „UE / EC / ECUE” | [Przedmiot](#page-glossary.subject) z konwencją nazewniczą | #### Zobacz także - [Przygotowanie danych do importu masowego](#page-getting-started.preparing-data) - [Masowy import kursów z arkusza kalkulacyjnego](#page-timetables.mass-import) - [API Omniscol](#page-integrations.api-tokens) - [FAQ — przypadki użycia w szkolnictwie wyższym](#page-faq.higher-ed-cases) - [FAQ — Przypadki szczególne i konfiguracje zaawansowane](#page-faq.edge-cases) ### 12.2 Migracja z Hyperplanning (Index Education) *Source: `help/pl/migration/from-hyperplanning.md` · id: migration.from-hyperplanning · Audience: admin · Updated: 2026-06-30* Hyperplanning (Index Education) jest najbardziej rozpowszechnionym narzędziem do zarządzania planami lekcji we francuskim szkolnictwie wyższym. Przejście na Omniscol wymaga przeniesienia istniejących danych (użytkownicy, struktury, bieżące plany lekcji) i dostosowania ich do pojęć Omniscol. Ta strona zbiera odpowiedniki oraz znane pułapki. #### Co przenosi się bezpośrednio | Hyperplanning | Omniscol | | --- | --- | | Rocznik (program wspólny) | Klasa | | Podział rocznika | Grupy rozłączne; **podział klasy**, jeśli te grupy dzielą ten sam przedział czasowy (jednoczesne ćwiczenia lub laboratoria) | | Grupa ćwiczeniowa (wydzielona z podziału) | Grupa w podziale klasy | | Przedmiot do wyboru | Grupa | | Zgrupowanie | Grupa grup (albo wyrównanie grup między różnymi klasami lub rocznikami) | | Kurs | Kurs (i jego lekcje) | | Przedmiot / moduł (moduł kształcenia, przedmiot składowy) | Przedmiot (często niestandardowy) | | Kalendarz / okresy | Tryb kalendarzowy (datowany plan lekcji, Premium); okna dat do włączania i wyłączania okresów | | Sala | Sala (specjalizacja do przeniesienia) | | Nauczyciel z zewnątrz / na umowę zlecenie | Nauczyciel oznaczony jako „zewnętrzny” (opcja Premium) | #### Co wymaga uwagi - **Wyrównania grup**: w Hyperplanning jednoczesne prowadzenie tego samego kursu dla grup ćwiczeniowych lub grup przedmiotów do wyboru z kilku roczników odbywa się przez **kurs wspólny** (często zbudowany na zgrupowaniu). Gdy taki wspólny kurs narzuca ten sam przedział czasowy, tę samą salę i tego samego nauczyciela grupom z różnych klas, jest to **wyrównanie grup** w Omniscol. Zob. [Wyrównania grup](#page-core-concepts.alignments). - **Zgrupowania**: zgrupowanie w Hyperplanning łączy kilka grup, aby uczestniczyły w tym samym kursie; w Omniscol jest to **grupa grup** (dostępna we wszystkich planach). Zob. [Grupy grup](#page-core-concepts.groups-of-groups). Zależnie od przypadku zgrupowanie obejmujące różne klasy lub roczniki może też podlegać opisanemu wyżej **wyrównaniu grup**. - **Lekcje skojarzone** (naprzemienność grup połówkowych): Omniscol obsługuje to natywnie dzięki **lekcjom skojarzonym**. Zob. [Złożone lekcje](#page-core-concepts.complex-lessons). - **Pensum dydaktyczne**: ciągłość dydaktyczną (te same elementy z lekcji na lekcję) odtwarza się, zachowując tego samego nauczyciela i tę samą salę na lekcjach jednego kursu — nie ma do tego osobnej jednostki. - **Kursy w kalendarzu**: jeśli Hyperplanning jest używany w trybie kalendarzowym do modułów o dokładnych datach, te same potrzeby pokrywa w Omniscol [tryb kalendarzowy](#page-timetables.calendar-mode), zawarty w planie Premium. - **Hyperplanning a Aurion**: jeśli placówka używa Hyperplanning **i** Aurion, migracja dotyczy wyłącznie planowania; Aurion nadal zasila strukturę administracyjną. Zob. [Synchronizacja z systemami zewnętrznymi](#page-integrations.extsync). #### Instrukcja 1. **Pobranie danych** z Hyperplanning do arkusza kalkulacyjnego — listy nauczycieli, uczniów, sal i kursów. Zależnie od wersji odbywa się to przez skopiowanie i wklejenie listy albo przez jej eksport; zob. dokumentację Hyperplanning. 2. **Przygotowanie plików Omniscol** w formacie importu: użytkownicy CSV, kursy CSV. Zob. [Przygotowanie danych do importu masowego](#page-getting-started.preparing-data). 3. **Utworzenie testowego konta Omniscol** (piaskownicy), aby bezpiecznie przetestować import. 4. **Import w kilku przebiegach**: - użytkownicy (nauczyciele, uczniowie), - klasy i grupy, - przedmioty, - kursy przez [import masowy z arkusza](#page-timetables.mass-import). 5. **Odtworzenie złożonych lekcji** (wyrównania grup, skojarzone, naprzemienne) ręcznie, jeśli import je spłaszczył. 6. **Sprawdzenie diagnostyki** i poprawienie wykrytych niespójności. 7. **Uruchomienie testowego generowania**, aby potwierdzić wykonalność. 8. **Punkt kopii zapasowej** przed przejściem na konto produkcyjne. #### Łagodna migracja użytkowników Dobra praktyka: proszę najpierw zaimportować użytkowników do Omniscol jako **nieaktywnych**. Następnie proszę sprawdzić dane, przełączyć konfigurację (SSO, jeśli dotyczy) i aktywować konta w jednym przebiegu, gdy wszystko będzie gotowe. Dzięki temu użytkownicy nie otrzymają przedwczesnego zaproszenia. #### Czego nie da się przenieść - **Historia Hyperplanning** wykraczająca poza bieżące plany lekcji — aby ją zachować, lepiej pozostawić Hyperplanning jako archiwum tylko do odczytu niż migrować wszystko. - **Dostosowania wizualne** Hyperplanning — proszę odtworzyć je w Omniscol zgodnie z identyfikacją wizualną placówki. Zob. [Personalizacja paneli](#page-panels.customization). #### Instrukcja — Migracja Hyperplanning → Omniscol 1. **Migracja z Hyperplanning**: sekwencja 8 przebiegów układa się w kolejności eksport → przygotowanie → piaskownica → import wieloprzebiegowy → poprawa złożonych lekcji → diagnostyka → testowe generowanie → przejście na produkcję. 2. **Przebieg 1 — pobranie danych z Hyperplanning**: proszę przenieść listy (nauczycieli, uczniów, sal, kursów) do arkusza kalkulacyjnego. Zależnie od wersji przez skopiowanie i wklejenie listy albo przez jej eksport — zob. dokumentację Hyperplanning. Im czyściej po stronie źródła, tym szybciej idzie dalej. 3. **Przebiegi 2-3 — przygotowanie i piaskownica**: proszę dopasować kolumny do szablonu Omniscol (zob. [Przygotowanie danych](#page-getting-started.preparing-data)). Proszę utworzyć **testowe konto Omniscol** (piaskownicę), aby przetestować import bez ryzyka dla produkcji. 4. **Przebieg 4 — import wieloprzebiegowy** w kolejności: **użytkownicy** → **klasy i grupy** → **przedmioty** → **kursy** przez [import masowy](#page-timetables.mass-import). Kolejność ma znaczenie: kursy odwołują się do klas i nauczycieli, którzy muszą już istnieć. 5. **Przebieg 5 — złożone lekcje**: wyrównania grup (kursy wspólne dla kilku roczników po stronie Hyperplanning → wyrównania grup w Omniscol), skojarzone (naprzemienność grup połówkowych), naprzemienne A/B. Import często je spłaszcza — proszę odtworzyć je ręcznie przez ikony złożonych lekcji na karcie kursu. 6. **Przebiegi 6-7 — diagnostyka i testowe generowanie**: proszę pozwolić, aby diagnostyka się przeliczyła, i poprawić niespójności. Proszę uruchomić **generowanie**, aby sprawdzić ogólną wykonalność przed migracją na produkcję. 7. **Przebieg 8 — przejście na produkcję**: proszę utworzyć **punkt kopii zapasowej** przed przełączeniem. Proszę aktywować konta użytkowników (dotąd zaimportowane jako nieaktywne). Proszę opublikować plan lekcji. Hyperplanning warto zachować jako archiwum tylko do odczytu — migracja nie przenosi historii wykraczającej poza bieżące plany lekcji. Jeśli w placówce działa także **Aurion**: migracja dotyczy wyłącznie planowania, Aurion pozostaje źródłem administracyjnym. Zob. [Synchronizacja z systemami zewnętrznymi](#page-integrations.extsync). #### Zobacz także - [Przegląd migracji](#page-migration.overview) - [Przygotowanie danych do importu masowego](#page-getting-started.preparing-data) - [Masowy import kursów z arkusza kalkulacyjnego](#page-timetables.mass-import) - [Synchronizacja z systemami zewnętrznymi](#page-integrations.extsync) ### 12.3 Migracja z EDT / PRONOTE (Index Education) *Source: `help/pl/migration/from-edt.md` · id: migration.from-edt · Audience: admin · Updated: 2026-06-30* **EDT** i **PRONOTE** (Index Education) to najbardziej rozpowszechnione narzędzia we francuskim szkolnictwie średnim — w gimnazjach i liceach, zarówno publicznych, jak i niepublicznych. Ten duet obejmuje plan lekcji (EDT) oraz obsługę spraw uczniowskich — oceny, świadectwa, dziennik lekcyjny (PRONOTE). Migracja do Omniscol dotyczy przede wszystkim części związanej z planem lekcji; w zakresie rozbudowanej obsługi spraw uczniowskich (oceny, świadectwa, komunikacja z rodzicami) PRONOTE może dalej działać równolegle. #### Najprostsza droga: eksport STSweb EDT buduje swoje struktury na podstawie **STSweb**: **przydziały dydaktyczne** (nauczyciel realizuje określoną liczbę godzin danego przedmiotu w danej klasie) pochodzą z STSweb i wracają tam na koniec przygotowań. To dobra wiadomość dla migracji, ponieważ **Omniscol importuje eksport STSweb bezpośrednio** (plik STS) z ekranu [Import i eksport](#page-admin.import-export). Ten import odtwarza za jednym razem dane struktury: szkołę (kod UAI), rok szkolny, **przedmioty**, **poziomy klas** (MEF) wraz z ich obowiązkową siatką godzin, **klasy** (divisions), **grupy**, **nauczycieli** oraz **przydziały dydaktyczne** — które stają się **kursami** Omniscol. Szczegóły obsługiwanych formatów francuskich opisuje [admin.french-formats](#page-admin.french-formats). Arkusz kalkulacyjny pozostaje przydatny do tego, czego STSweb nie zawiera (sale, szczególne zgrupowania, szczegółowa dostępność): zob. import masowy poniżej. #### Co trzeba przenieść inaczej - **Sale, odległe lokalizacje**: STSweb nie opisuje sal szczegółowo. Proszę przenieść je arkuszem kalkulacyjnym albo wprowadzić ponownie, a następnie odtworzyć lokalizacje. Dla zbioru sal wymiennych (odpowiednik „grupy sal” z EDT) proszę użyć wspólnej **specjalizacji**, którą algorytm generowania uwzględni. Zob. [Specjalizacje sal](#page-core-concepts.classroom-specializations). - **Dostępność i niedostępności nauczycieli**: szczegółowość różni się od tej w EDT; proszę przewidzieć ponowne wprowadzenie danych (wysłanie linków do wypełnienia przed początkiem roku szkolnego) albo przybliżony import do późniejszej korekty. - **Dni wolne i kalendarz roku szkolnego**: definiuje się je w ustawieniach roku szkolnego (szablon krajowy lub wprowadzenie ręczne), a nie przez eksport. #### Co zostaje w PRONOTE Omniscol nie przenosi poniższych danych (można je spokojnie zostawić w PRONOTE): - oceny, sprawdziany, świadectwa, kompetencje; - dziennik lekcyjny, zadania domowe; - sprawy uczniowskie w szerokim rozumieniu (komunikacja z rodzicami, ankiety); - nieobecności mogą zostać w PRONOTE albo być prowadzone w Omniscol, jeśli wygodniej je tam przenieść. #### Najważniejsze odpowiedniki | EDT / STSweb | Omniscol | | --- | --- | | Klasa (division) | Klasa | | Część klasy | Grupa; **podział klasy** dla relacji wykluczania w tym samym przedziale czasowym | | Grupa (poziom zaawansowania, przedmiot rozszerzony, przedmiot do wyboru, język) | Grupa (w obrębie klasy); wyrównanie grup albo grupa grup, gdy obejmuje kilka klas | | Przydział dydaktyczny (STSweb) | Kurs (lekcje powstają z niego przy umieszczaniu) | | Przedmiot | Przedmiot | | Sala / grupa sal | Sala; wymienna pula = sala nieprzypisana (automatyczne przydzielanie sal) albo wspólna specjalizacja | | Odległa lokalizacja | Lokalizacja (z czasem przejazdu) | | Dostępność / niedostępność nauczyciela | Dostępność; poziom **Niedostępny** (czarny) dla niedostępności | | Naprzemienność Q1 / Q2 (co dwa tygodnie) | Tygodnie naprzemienne A / B | | Świetlica / biblioteka szkolna (CDI) | Obsada personelu (nadzór) + „kurs nauki pod nadzorem” dla grupy bez lekcji | #### Instrukcja 1. **Pozyskać eksport STSweb** (plik STS) ze szkoły — to oficjalne źródło struktur i przydziałów dydaktycznych. 2. **Zaimportować plik STS** na testowe konto Omniscol, z ekranu [Import i eksport](#page-admin.import-export). Struktura (szkoła, rok, przedmioty, poziomy klas, klasy, grupy, nauczyciele, przydziały dydaktyczne → kursy) odtwarza się za jednym razem. Zob. [admin.french-formats](#page-admin.french-formats). 3. **Uzupełnić w arkuszu kalkulacyjnym** to, czego STSweb nie zawiera (sale, specjalizacje, szczególne zgrupowania), za pomocą importu masowego. Zob. [Masowy import kursów z arkusza kalkulacyjnego](#page-timetables.mass-import) i [Przygotowanie danych do importu masowego](#page-getting-started.preparing-data). 4. **Sprawdzić naprzemienność tygodni**: konwencja Q1/Q2 z EDT musi odpowiadać **tygodniom naprzemiennym A/B** w Omniscol. 5. **Przenieść dostępność i niedostępności** nauczycieli — ponowne wprowadzenie danych albo przybliżony import do korekty. 6. **Uruchomić diagnostykę** Omniscol, a potem testowe generowanie. 7. **Punkt kopii zapasowej** przed przejściem na konto produkcyjne. #### Współistnienie EDT i Omniscol w okresie przejściowym W okresie przejściowym (zwykle jeden trymestr) często zachowuje się PRONOTE do spraw uczniowskich, a plan lekcji przenosi do Omniscol. PRONOTE zwykle otrzymuje swój plan lekcji z EDT; aby nadal wyświetlać w nim plany lekcji prowadzone w innym systemie, proszę sprawdzić u Index Education, co PRONOTE potrafi wczytać — nie należy zakładać, że zewnętrzny strumień danych zostanie przyjęty bez zmian. #### Typowa migracja w szkole Standardowy przypadek gimnazjum lub liceum przechodzącego z EDT do Omniscol: - eksport STSweb w czerwcu, - import i testy w Omniscol w czasie wakacji, - przejście na nowy system na początku roku szkolnego we wrześniu, - PRONOTE zachowany do spraw uczniowskich, jeśli szkoła tak zdecyduje. #### Instrukcja — Typowa migracja szkolna: czerwiec → wrzesień 1. **Typowy przypadek szkoły**, która przechodzi z EDT/PRONOTE do Omniscol: eksport w czerwcu, testy w czasie wakacji, przejście na początku roku szkolnego. PRONOTE zachowany do spraw uczniowskich, jeśli jest taka potrzeba. 2. **Czerwiec — eksport STSweb**: proszę pozyskać plik STS ze szkoły (oficjalne źródło struktur i przydziałów dydaktycznych). W razie braku takiej możliwości proszę wyeksportować listy z EDT (kursy, przydziały dydaktyczne, klasy) do arkusza kalkulacyjnego — w zależności od wersji przez eksport list albo przez kopiowanie i wklejanie; zob. dokumentację EDT. 3. **Lipiec — testowe konto Omniscol**: proszę zaimportować plik STS z ekranu [Import i eksport](#page-admin.import-export) (zob. [admin.french-formats](#page-admin.french-formats)). Struktura odtwarza się za jednym razem. Testy odbywają się bez presji: jeśli coś nie pasuje, można spokojnie poprawiać. 4. **Sierpień — uzupełnić w arkuszu kalkulacyjnym** to, czego STSweb nie zawiera (sale, specjalizacje sal, zgrupowania), za pomocą importu masowego (zob. [Masowy import kursów z arkusza kalkulacyjnego](#page-timetables.mass-import)). Proszę uzgodnić **naprzemienność tygodni** (Q1/Q2 z EDT → A/B w Omniscol). 5. **Sierpień — dostępność i niedostępności** nauczycieli: szczegółowość się różni. Proszę przewidzieć albo **ponowne wprowadzenie danych** (wysłanie linków do wypełnienia przed początkiem roku szkolnego), albo **przybliżony import** do późniejszej korekty. 6. **Koniec sierpnia — diagnostyka** Omniscol, aby wychwycić niespójności (brakujące przedmioty, konflikty, nieprzeniesiona dostępność). Proszę uruchomić **testowe generowanie** na pierwszych tygodniach roku szkolnego, aby sprawdzić wykonalność. 7. **Wrzesień — przejście**: najpierw punkt kopii zapasowej, potem publikacja planów lekcji. **PRONOTE zachowany** do spraw uczniowskich, jeśli jest taka potrzeba. #### Zobacz także - [Przegląd](#page-migration.overview) - [Z Hyperplanning (Index Education)](#page-migration.from-hyperplanning) - [admin.french-formats](#page-admin.french-formats) - [Masowy import kursów z arkusza kalkulacyjnego](#page-timetables.mass-import) ### 12.4 Migracja z aSc Timetables *Source: `help/pl/migration/from-asc.md` · id: migration.from-asc · Audience: admin · Updated: 2026-06-30* **aSc Timetables** (Słowacja) to od dawna obecne na rynku i bardzo rozpowszechnione oprogramowanie do generowania planów lekcji, zwłaszcza w szkołach międzynarodowych i w kilku krajach Europy Środkowej. Dobra wiadomość: Omniscol czyta i zapisuje natywny plik aSc Timetables bezpośrednio, bez pośredniego arkusza kalkulacyjnego i bez ręcznego przypisywania struktur na nowo. #### Jeden plik w obie strony aSc Timetables zapisuje plan lekcji w pliku **XML** (format „aSc Timetables 2012”). Omniscol potrafi: - **czytać** ten plik i odtworzyć z niego kompletny plan lekcji (klasy, grupy, nauczyciele, przedmioty, sale, kursy); - **zapisywać** plik tego samego typu na podstawie planu lekcji z Omniscol, aby otworzyć go ponownie w aSc albo w Edupage (rozwiązanie do obsługi administracyjnej szkoły tego samego producenta). Wszystko odbywa się na ekranie [Import i eksport](#page-admin.import-export), bez technicznych zabiegów: aby wyeksportować, służy przycisk Eksportuj w formacie aSc (.xml); aby zaimportować, wystarczy wskazać plik XML utworzony przez aSc. Wymiana w obie strony jest **odwracalna**: eksport, a potem ponowny import odtwarzają po stronie Omniscol tę samą strukturę, z dokładnością do konwencji nazewniczych. #### Co zostaje przeniesione Przejmowane automatycznie przy czytaniu pliku: - **Klasy** i ich **grupy** (w tym podziały na laboratoria). - **Przedmioty** wraz z kodami. - **Sale** wraz z pojemnością. - **Nauczyciele** (nazwisko, imię, dane kontaktowe). - **Kursy** (przedmiot, liczba godzin, nauczyciel) i ich umieszczone **lekcje** (dzień, przedział czasowy, sala). - **Przerwy międzylekcyjne i dłuższe przerwy** w ciągu dnia. - **Tygodnie naprzemienne** (A/B), jeśli zostały skonfigurowane w aSc. #### Co wymaga sprawdzenia po imporcie - **Złożone ograniczenia** właściwe dla aSc (ograniczenia kolejności, sala warunkowa, bardzo specyficzne zakazy następstwa): Omniscol przekłada je najlepiej, jak potrafi, ale część reguł wyraża się tutaj inaczej i warto je przejrzeć. Sala warunkowa to raczej sprawa specjalizacji sal — zob. [Specjalizacje sal](#page-core-concepts.classroom-specializations); pozostałe reguły: zob. [Dostępność nauczycieli](#page-core-concepts.wishes-and-availability) oraz [Ograniczenia czasowe (zasady ogólne)](#page-core-concepts.time-constraints). - **Kursy wspólne dla kilku klas** (ten sam przedmiot w kilku klasach): zamieniane na [Grupy grup](#page-core-concepts.groups-of-groups). Proszę sprawdzić, czy wynik odpowiada zamierzeniu. - **Zmiany nazw i wymiana w obie strony**: Omniscol nie przechowuje wewnętrznych identyfikatorów aSc; zapisując plik aSc, odtwarza powiązania na podstawie samych jednostek, a przede wszystkim ich **nazw**. W praktyce: jeśli planowany jest ponowny eksport do aSc, proszę nie zmieniać w międzyczasie nazw klas, nauczycieli i przedmiotów, bo powiązania przestaną się zgadzać. #### Instrukcja 1. **W aSc**: proszę zapisać plan lekcji w formacie **XML** (wersja 2012 albo najbliższa oferowana przez posiadaną wersję aSc). 2. Proszę **utworzyć testowe konto Omniscol**, aby sprawdzać bez ryzyka. 3. Proszę **zaimportować plik** z ekranu [Import i eksport](#page-admin.import-export): wskazać plik XML aSc, a potem zatwierdzić. 4. Proszę **przeczytać diagnostykę** Omniscol, aby wychwycić niespójności (kursy bez sali, nieprzeniesiona dostępność itd.). 5. Proszę **dostosować złożone ograniczenia**, których nie udało się przełożyć automatycznie. 6. Proszę **uruchomić próbne generowanie**, aby sprawdzić, czy ograniczenia dają wynik zgodny z tym, co było w aSc. 7. Proszę **utworzyć punkt kopii zapasowej** przed przejściem na konto produkcyjne. #### Dalsze zasilanie aSc równolegle Jeśli aSc zostaje na czas przejścia, eksport odwrotny pozwala nadal zasilać go z Omniscol — przydaje się to na przykład wtedy, gdy szkoły partnerskie wciąż zaglądają do aSc. Powstały plik otwiera się ponownie w aSc Desktop (wersja 2012 lub nowsza). #### Na co zwrócić uwagę - **Znaki diakrytyczne**: jeśli po wymianie w obie strony część znaków wygląda źle, to kwestia kodowania pliku. Eksport Omniscol domyślnie używa kodowania oczekiwanego przez aSc Desktop; wystarczy sprawdzić, czy nazwa ze znakami diakrytycznymi przechodzi tam i z powrotem bez zmian. - **Różne algorytmy generowania**: aSc i Omniscol nie mają tego samego profilu algorytmu generowania. Plan lekcji, który generował się łatwo w aSc, może wymagać w Omniscol kilku korekt — i odwrotnie. - **Wersje aSc**: czytanie jest przystosowane do formatu 2012. Starsze wersje mogą nie być bezpośrednio zgodne — w takim razie proszę najpierw zapisać plik w formacie 2012 z aSc Desktop. #### Instrukcja — Wymiana XML w obie strony: aSc ↔ Omniscol 1. **Omniscol czyta i zapisuje natywny plik aSc Timetables 2012**: wymiana w obie strony odbywa się bezpośrednio, bez pośredniego arkusza kalkulacyjnego. 2. **Po stronie aSc**: proszę zapisać plan lekcji w formacie **XML 2012** (albo w najbliższej wersji) i zachować plik na swoim komputerze. 3. **Po stronie testowego konta Omniscol**: proszę otworzyć [Import i eksport](#page-admin.import-export) i wskazać plik XML aSc. Import odtwarza klasy, grupy, przedmioty, sale, nauczycieli, kursy, tygodnie naprzemienne i przerwy. 4. Proszę **sprawdzić diagnostykę**: kursy bez sali, nieprzeniesiona dostępność, kursy obejmujące kilka klas zamienione na [Grupy grup](#page-core-concepts.groups-of-groups). Przypomnienie: aby wymiana w obie strony przebiegła poprawnie, proszę nie zmieniać nazw klas, nauczycieli i przedmiotów, jeśli planowany jest ponowny eksport — Omniscol opiera się na ich nazwach przy odtwarzaniu powiązań. 5. Proszę **dostosować złożone ograniczenia** właściwe dla aSc (kolejność, bardzo specyficzne zakazy następstwa): konwersja przekłada je najlepiej, jak potrafi, część reguł wyraża się w Omniscol inaczej. Zob. [Dostępność nauczycieli](#page-core-concepts.wishes-and-availability). 6. Proszę **uruchomić próbne generowanie** w Omniscol, aby sprawdzić, czy wynik jest zgodny z oczekiwaniami. ⚠ aSc i Omniscol nie mają tego samego profilu algorytmu generowania; plan lekcji łatwy w aSc może wymagać korekt w Omniscol i odwrotnie. 7. **Eksport odwrotny** (jeśli aSc zostaje równolegle): przycisk Eksportuj w formacie aSc (.xml) na ekranie [Import i eksport](#page-admin.import-export). Plik otwiera się ponownie w aSc Desktop 2012+; wymiana w obie strony zachowuje strukturę (nieznaczne straty wyłącznie na konwencjach nazewniczych). #### Zobacz także - [Przegląd](#page-migration.overview) - [Import i eksport](#page-admin.import-export) - [Dostępność nauczycieli](#page-core-concepts.wishes-and-availability) - [Grupy grup](#page-core-concepts.groups-of-groups) ### 12.5 Migracja z ADE / ADE Campus *Source: `help/pl/migration/from-ade.md` · id: migration.from-ade · Audience: admin · Updated: 2026-06-30* **ADE** (producent Adesoft), często używany w wersji internetowej **ADE Campus**, jest rozpowszechniony w szkolnictwie wyższym, zwłaszcza na uniwersytetach, w uczelniach technicznych i szkołach biznesu. ADE jest **skoncentrowany na zajęciach** („sesja kursu”) i często synchronizuje się z systemem informacyjnym uczelni (Apogée, Pegase, Aurion, UNIT4…). Przejście na Omniscol dotyczy przede wszystkim planowania; synchronizację z systemem informacyjnym trzeba będzie na nowo skonfigurować po stronie Omniscol. #### Zakres Co da się przenieść: - **programy studiów** (licencjackich, inżynierskich, magisterskich…) i ich grupy (grupy pomocnicze, połowy roczników); - **prowadzący** (etatowi, nieetatowi, na umowę zlecenie); - **zajęcia** (sesje kursów) wraz z ich typem, czasem trwania i liczbą powtórzeń; - **sale i wyposażenie** (według budynku i piętra, wraz z pojemnością); - **dostępność i niedostępność** zasobów ADE. ADE i Omniscol mają w dużej mierze zgodne modele danych, ale konwencje nazewnictwa się różnią. Należy przewidzieć wstępne mapowanie. #### Odpowiedniki | ADE (ADE Campus) | Omniscol | | --- | --- | | Program studiów (licencjackich, inżynierskich, magisterskich…) | Kilka klas (jeden **rocznik**/rok = jedna klasa) | | Grupa pomocnicza / połowa rocznika | Grupa; **podział klasy**, jeśli dwie połowy rocznika mają różne lekcje w tym samym przedziale czasowym | | Prowadzący | Nauczyciel | | Zajęcia (sesja kursu) | Kurs (i jego lekcje) | | Typologia zajęć (wykład, ćwiczenia, laboratorium…) | Typ lekcji | | Tryb (stacjonarnie, zdalnie…) | Tryb (atrybut Premium) | | Limit miejsc / zapisani | Teoretyczna liczba uczniów — brak odrębnego limitu (granica liczby miejsc wynika z pojemności sali) | | Sala / wyposażenie (budynek, piętro, pojemność) | Sala (lokalizacja, pojemność); zasobem staje się tylko wyposażenie **przenośne** | | Dostępność / niedostępność (skala kolorów) | Dostępność (deklaracje): 4 poziomy — niedostępny / niepożądany / preferowany / neutralny | | Powiązanie zajęć | Zależnie od rodzaju powiązania: wyrównanie grup, połączenie lekcji albo lekcje skojarzone | | Kod CURSUS / UNIT4 | Identyfikator zewnętrzny (ślad synchronizacji z systemem informacyjnym) | #### Instrukcja 1. **Pobranie danych** z ADE — programy studiów, prowadzący, sale, zajęcia. ADE przedstawia dane w **konfigurowalnych listach** (widoki Listing, wybór kolumn), które można wydrukować albo wyeksportować do arkusza kalkulacyjnego z menu **Drukowanie**. 2. **Przygotowanie plików Omniscol** na podstawie tych eksportów (zob. [Przygotowanie danych do importu masowego](#page-getting-started.preparing-data)). 3. **Import z arkusza kalkulacyjnego** do testowego planu lekcji (zob. [Masowy import kursów z arkusza kalkulacyjnego](#page-timetables.mass-import)). 4. **Odtworzenie powiązań**: wyrównania grup (powiązania zajęć po stronie ADE), tygodnie naprzemienne, podziały klasy na połowy roczników — ADE i Omniscol nie używają dokładnie tych samych pojęć pierwotnych. 5. **Uruchomienie testowego generowania**. #### Na co zwrócić uwagę - **ADE planuje na konkretnych datach**: widok **Placement** (tydzień, dzień, początek, koniec) oraz pasek tygodni czynią z ADE narzędzie kalendarzowe. Aby odtworzyć to zachowanie, należy użyć trybu kalendarzowego Omniscol, zawartego w planie Premium (zob. [Tryb kalendarzowy](#page-timetables.calendar-mode)). - **Połowy roczników i grupy pomocnicze**: program studiów często dzieli się na grupy pomocnicze i połowy roczników. Po stronie Omniscol połowy roczników odpowiadają **podziałowi klasy**; granularność grup trzeba przemyśleć już na starcie. - **Sale narzucone albo „do wyboru”**: w ADE sala może być narzucona zajęciom albo pozostawiona do wyboru algorytmowi. Po stronie Omniscol narzucona sala zostaje przez algorytm zachowana bez zmian; przy sali „do wyboru” należy zostawić lekcję bez konkretnej sali — algorytm wybierze ją sam w danej lokalizacji, uwzględniając pojemność i ewentualną wymaganą **specjalizację** (zbiór wymiennych sal modeluje się przez wspólną specjalizację). Zob. [Lokalizacje, sale, zasoby](#page-core-concepts.sites-rooms-resources) i [Automatyczne przydzielanie sal](#page-timetables.auto-room-assignment). - **Stopniowana dostępność**: ADE obsługuje dostępność na kilku poziomach (od zielonego do czerwonego, plus warstwa dynamiczna). Omniscol używa **dostępności (deklaracji)** o 4 poziomach (niedostępny, niepożądany, preferowany, neutralny) — warto przenieść przede wszystkim skrajności (niedostępny i preferowany), poziomy pośrednie dopracowuje się później. - **Koordynator dydaktyczny**: ADE przypisuje koordynatora dydaktycznego do każdych zajęć. Omniscol nie przewiduje tej roli na poziomie kursu; jeśli informacja jest potrzebna, należy ją zachować przez konwencję nazewnictwa albo w notatce. - **Kanały iCal**: ADE często publikuje plany lekcji w postaci kanałów iCal. Import Omniscol nie czyta formatu iCal; eksport iCal trzeba najpierw przekształcić w tabelę. - **Synchronizacja z systemem informacyjnym**: jeśli ADE był zsynchronizowany z systemem informacyjnym uczelni (Apogée, Pegase, Aurion, UNIT4…), tę synchronizację trzeba będzie na nowo skonfigurować po stronie Omniscol — często przez API albo przez synchronizację z systemami zewnętrznymi. Pole **Kod CURSUS / UNIT4** w ADE jest jej śladem po stronie źródłowej. Zob. [Synchronizacja z systemami zewnętrznymi](#page-integrations.extsync). #### Instrukcja — Migracja ADE → Omniscol (szkolnictwo wyższe) 1. **ADE (Adesoft), często w wersji ADE Campus**, jest rozpowszechniony w szkolnictwie wyższym. Migracja dotyczy przede wszystkim planowania; synchronizację z systemem informacyjnym (Apogée, Pegase, Aurion, UNIT4) trzeba będzie na nowo skonfigurować po stronie Omniscol. 2. **Pobranie danych z ADE**: programy studiów, prowadzący, sale, zajęcia (wraz z typem, czasem trwania, powtórzeniami, limitem miejsc). ADE przedstawia te dane w konfigurowalnych listach (widoki Listing), które się drukuje albo eksportuje z menu **Drukowanie**. Kanał iCal trzeba najpierw przekształcić w tabelę (import nie czyta formatu iCal). Jeśli planowanie odbywa się na konkretnych datach, trzeba zachować i ten aspekt. 3. **Wstępne mapowanie**: ADE i Omniscol mają zgodne modele danych, ale różne konwencje nazewnictwa. Pliki należy przygotować według szablonu Omniscol (zob. [Przygotowanie danych do importu masowego](#page-getting-started.preparing-data)). Granularność **grup uczniów** (połowy roczników, grupy pomocnicze) trzeba przemyśleć na starcie — to najdelikatniejszy punkt w szkolnictwie wyższym. 4. **Import z arkusza kalkulacyjnego** do testowego planu lekcji: prowadzący, programy studiów, przedmioty, sale, a następnie zajęcia (zob. [Masowy import kursów z arkusza kalkulacyjnego](#page-timetables.mass-import)). Arkusz kursów nie zawiera kolumny identyfikatora zewnętrznego; do przyszłych uzgodnień z systemem informacyjnym lepiej przewidzieć synchronizację z systemami zewnętrznymi (zob. [Synchronizacja z systemami zewnętrznymi](#page-integrations.extsync)). 5. **Odtworzenie powiązań**: wyrównania grup obejmujące kilka programów studiów (**powiązania** zajęć po stronie ADE), tygodnie naprzemienne, podziały klasy na połowy roczników. Trzeba też odtworzyć sale pozostawione „do wyboru”, pozwalając algorytmowi je przypisać (w razie potrzeby przez wspólną specjalizację). ADE i Omniscol nie używają dokładnie tych samych pojęć pierwotnych — należy liczyć się z ręcznym dopracowaniem na koniec. Jeśli ADE planował na konkretnych datach, do odtworzenia tego zachowania służy **tryb kalendarzowy** Omniscol, zawarty w planie Premium (zob. [Tryb kalendarzowy](#page-timetables.calendar-mode)). 6. **Testowe generowanie** w Omniscol, aby sprawdzić wykonalność. Diagnostyka, poprawki, iteracja. Im więcej testów przed przejściem, tym mniej poprawek po nim. 7. **Ponowna konfiguracja systemu informacyjnego**: jeśli ADE był zsynchronizowany z Apogée, Pegase, Aurion albo UNIT4, tę synchronizację trzeba będzie na nowo ustawić po stronie Omniscol przez API (zob. [API Omniscol](#page-integrations.api-tokens)) albo przez synchronizację z systemami zewnętrznymi (zob. [Synchronizacja z systemami zewnętrznymi](#page-integrations.extsync)). Dla samego Aurion zob. [integrations.aurion](#page-integrations.aurion) — 3 możliwe tryby. #### Zobacz także - [Przegląd](#page-migration.overview) - [API Omniscol](#page-integrations.api-tokens) - [Synchronizacja z systemami zewnętrznymi](#page-integrations.extsync) - [Tryb kalendarzowy](#page-timetables.calendar-mode) ### 12.6 Migracja z własnego arkusza Excela *Source: `help/pl/migration/from-spreadsheet.md` · id: migration.from-spreadsheet · Audience: admin · Updated: 2026-05-12* Wiele placówek — zwłaszcza małe organizacje, szkoły prywatne, krótkie formy kształcenia — nadal prowadzi plan lekcji we własnym arkuszu Excela. Migracja do Omniscol jest w takim przypadku szczególnie prosta: nie ma zamkniętego formatu do odczytania, potrzeba tylko trochę dyscypliny, aby uporządkować dane. #### Przed rozpoczęciem: zrobić porządek Arkusz z planem lekcji gromadzi zwykle kilka „zakładek” o różnym charakterze: listę nauczycieli, listę klas, listę przedmiotów, siatkę planu lekcji, rozmaite notatki. Przed importem należy ustalić: - **listę nauczycieli** (osobna, czysta zakładka), - **listę uczniów** (osobna, czysta zakładka, jeśli istnieje), - **listę klas** wraz z ich liczebnością, - **listę sal**, - **kursy**: w każdym wierszu klasa, przedmiot, nauczyciel, sala, dzień, godzina, czas trwania. Jeśli arkusz źródłowy nie rozdziela tych informacji, trzeba to zrobić teraz — i tak jest to niezbędne do importu. #### Oczekiwany format importu Import odbywa się przez **kopiowanie i wklejanie** z arkusza kalkulacyjnego (Excel, Arkusze Google, Numbers, Calc…) do udokumentowanego szablonu kolumn. Kolumny rozpoznawane są po **pozycji** (szablon należy przestawić tak, aby odpowiadał plikowi źródłowemu), a nie po nazwie nagłówka. Szczegóły — kolejność kolumn, formaty dat, kody przedmiotów itd. — opisuje [Przygotowanie danych do importu masowego](#page-getting-started.preparing-data). Do kursów służy dedykowane narzędzie, czyli import masowy (zob. [Masowy import kursów z arkusza kalkulacyjnego](#page-timetables.mass-import)): wystarczy **skopiować i wkleić** wiersze arkusza wprost do edytowalnego obszaru, w strukturze jeden wiersz = jeden kurs. #### Instrukcja 1. **Oczyszczenie** arkusza źródłowego: usunięcie zbędnych kolumn, ujednolicenie nazw (jeden nauczyciel nie może występować w trzech różnych pisowniach). 2. **Jedna zakładka na typ jednostki**: nauczyciele, uczniowie, klasy, sale, kursy — każdą zakładkę wkleja się po kolei. 3. **Testowe konto Omniscol**, aby sprawdzić import bez ryzyka. 4. **Kolejne importy**, począwszy od danych referencyjnych (nauczyciele, sale, przedmioty), przed kursami, które się do nich odwołują. 5. **Sprawdzenie diagnostyki** Omniscol, aby wychwycić to, co nie zostało poprawnie zinterpretowane. 6. **Uruchomienie testowego generowania** (nawet jeśli ręczne umieszczenie lekcji z arkusza ma zostać zachowane), aby potwierdzić wykonalność. #### Korzyści z migracji - **Jedno narzędzie** skupia w jednym miejscu arkusz, pliki PDF z planami lekcji i aktualizacje, które krążyły pocztą elektroniczną. - **Aktualizacja w czasie rzeczywistym**: każdy widzi najnowszą wersję od chwili jej zmiany. - **Automatyczne udostępnianie**: iCal, panele informacyjne, portale dla uczniów i nauczycieli. - **Diagnostyka**: Omniscol wykrywa konflikty, które arkusz przepuszcza. #### Zachować arkusz tylko do odczytu jako archiwum Nie trzeba usuwać dawnego arkusza. Warto zachować go w trybie tylko do odczytu jako archiwum (na przykład w folderze współdzielonym) — może się przydać, gdy zajdzie potrzeba odtworzenia starszej konfiguracji. Omniscol staje się wtedy operacyjnym źródłem prawdy, a arkusz pozostaje zapisem historycznym. #### Instrukcja — Migracja własnego planu lekcji z Excela 1. **Najprostszy przypadek**: plan lekcji prowadzony we własnym pliku Excela. Nie ma zamkniętego formatu do odczytania, potrzeba tylko dyscypliny, aby uporządkować dane przed importem. 2. **Przed importem — zrobić porządek** w arkuszu źródłowym. Jeśli plik miesza nauczycieli, klasy, sale i kursy w jednej zakładce, trzeba najpierw rozdzielić je na zakładki tematyczne: nauczyciele, uczniowie, klasy, sale, kursy. 3. **Oczyszczenie** każdej zakładki: żadnych zbędnych kolumn, **ujednolicenie nazw** (jeden nauczyciel nie może występować w trzech różnych pisowniach), usunięcie scalonych wierszy. Jeden wiersz = jedna jednostka. 4. **Testowe konto Omniscol**: przed jakąkolwiek zmianą na produkcji warto utworzyć konto testowe. Importy sprawdza się wtedy bez ryzyka. 5. **Kolejne importy**, w kolejności zależności: **najpierw dane referencyjne** (nauczyciele, sale, przedmioty), **potem kursy**, które się do nich odwołują. Do kursów służy import masowy (zob. [Masowy import kursów z arkusza kalkulacyjnego](#page-timetables.mass-import)) — wiersze wkleja się tam wprost z arkusza. 6. **Diagnostyka**: Omniscol wykrywa niespójności (kursy bez sali, nieznani nauczyciele, konflikty), których arkusz nie widzi. Trzeba je poprawić przed przejściem. 7. **Testowe generowanie** (opcjonalnie — jeśli ręczne umieszczenie lekcji ma zostać zachowane), aby potwierdzić wykonalność. **Przejście**: dawny plik Excela pozostaje tylko do odczytu jako archiwum, a Omniscol staje się źródłem prawdy, z automatycznym udostępnianiem (iCal, panele, portale) i aktualizacją w czasie rzeczywistym. #### Zobacz także - [Przegląd](#page-migration.overview) - [Przygotowanie danych do importu masowego](#page-getting-started.preparing-data) - [Masowy import kursów z arkusza kalkulacyjnego](#page-timetables.mass-import) --- ## 13. Specyfika szkolnictwa wyższego ### 13.1 Specyfika szkolnictwa wyższego — przegląd *Source: `help/pl/higher-ed/overview.md` · id: higher-ed.overview · Updated: 2026-06-13* Szkolnictwo wyższe, kształcenie ustawiczne i ośrodki szkoleniowe mają ograniczenia bardzo różne od tych w szkole podstawowej i średniej. Ta sekcja zbiera strony, które opisują tę specyfikę. #### Typowe cechy - **[Tryb kalendarzowy](#page-glossary.calendar-mode)** zamiast tygodniowego — nauczanie rzadko jest powtarzalne przez cały rok, lekcje częściej otrzymują własne daty, jedna po drugiej. - **Wielu nauczycieli zewnętrznych** — nauczyciele na umowę zlecenie, profesorowie wizytujący, eksperci. Zob. [Nauczyciele zewnętrzni](#page-higher-ed.external-faculty). - **Równoległe roczniki** zamiast pojedynczych klas — studia magisterskie mogą mieć kilka ścieżek, które dzielą część kursów, mają wspólne specjalności, ale własne projekty. - **Współnauczanie** występuje często (duety nauczycieli, podwójne kompetencje). - **Egzaminy w wielu salach** (podzielone sale wykładowe). Zob. [Egzaminy w wielu salach](#page-higher-ed.multi-room-exams). - **Linki do wideokonferencji przy poszczególnych kursach** (kurs hybrydowy, częściowo zdalny). Zob. [Linki do wideokonferencji dla kursów](#page-higher-ed.videoconference-links). - **Uczniowie powtarzający rok albo spoza toku nauki**, którymi trzeba zarządzać. #### Zalecenia konfiguracyjne - **Konto [Premium](#page-overview.plans-and-options)** — zawiera tryb kalendarzowy, dostępność kalendarzową, kilka planów lekcji opublikowanych równolegle oraz **wydarzenia jednorazowe** (obrony, komisje egzaminacyjne, dni otwarte). Należy do niego także oznaczanie lekcji jako zdalnych lub hybrydowych, czyli **[tryb lekcji](#page-glossary.lesson-modality)**; sam **link do wideokonferencji** pozostaje dostępny na wszystkich kontach. - **Tryb kalendarzowy** dla głównego planu lekcji lub głównych planów lekcji, w szkolnictwie wyższym w większości przypadków niezbędny. - **Kilka planów lekcji opublikowanych równolegle**, jeśli łączy się kursy powtarzalne z jednorazowymi, jeśli uczelnia obejmuje kilka niezależnych wydziałów albo jeśli chodzi o grupę szkół. - **Grupy grup** w przypadku zmiennych zgrupowań. - **Wprowadzanie dostępności w trybie kalendarzowym** — dostępność podawana data po dacie przez nauczycieli, konsolidowana w czasie rzeczywistym. - **API + integracje** z systemem SIS lub ERP — w szkołach biznesu i na uczelniach technicznych często [synchronizacja z systemami zewnętrznymi](#page-integrations.extsync). Synchronizuje ona jednostki (nauczycieli, sale) oraz katalog oferty, a lekcje przekazuje jako realizacje dydaktyczne do systemu centralnego, który jest dla uczelni źródłem prawdy. #### Słownictwo To, co uczelnie nazywają **programem nauczania**, **planem studiów**, **programem studiów** albo **sylabusem**, po stronie Omniscol odpowiada **zbiorowi wszystkich [kursów](#page-glossary.course)** klasy albo kierunku kształcenia — przy czym każdy kurs to przedmiot z typem, przypisany do klasy, ze swoim wymiarem godzin i swoimi ograniczeniami. **[Lekcje](#page-glossary.lesson)** są jego zaplanowanymi wystąpieniami. Pozostałe terminy szkolnictwa wyższego oznaczają bardziej ogólne jednostki Omniscol, opisane w słowniku: **słuchacz** i **uczestnik** odsyłają do [ucznia](#page-glossary.student); **wykładowca**, **nauczyciel na umowę zlecenie**, **nauczyciel etatowy** i **ekspert** do [nauczyciela](#page-glossary.teacher); **rocznik**, **nabór** i **kohorta** do [klasy](#page-glossary.class). #### Przypadki użycia w szkolnictwie wyższym - [FAQ — przypadki użycia w szkolnictwie wyższym](#page-faq.higher-ed-cases) - [FAQ — Przypadki szczególne i konfiguracje zaawansowane](#page-faq.edge-cases) #### Zobacz także - [Tryb kalendarzowy](#page-glossary.calendar-mode) - [Grupy grup](#page-core-concepts.groups-of-groups) - [Nauczyciele zewnętrzni](#page-higher-ed.external-faculty) - [Egzaminy w wielu salach](#page-higher-ed.multi-room-exams) - [Linki do wideokonferencji dla kursów](#page-higher-ed.videoconference-links) ### 13.2 Roczniki, programy, ścieżki i okresy kształcenia *Source: `help/pl/higher-ed/sessions-and-tracks.md` · id: higher-ed.sessions-and-tracks · Updated: 2026-05-12* W szkolnictwie wyższym struktura kształcenia jest mniej liniowa niż w szkole. Uczeń należy do **rocznika** (swojej kohorty czasowej), ale także do **ścieżek** albo **programów** (swojej specjalności) oraz do **grup** ćwiczeniowych i laboratoryjnych. Czasem jest przypisany do kilku kohort jednocześnie (minor, dwa kierunki). Ta strona podsumowuje, jak Omniscol odwzorowuje takie sytuacje. #### Rocznik = klasa Omniscol **Rocznik** (potocznie „rok”) odpowiada klasie Omniscol w znaczeniu administracyjnym, na przykład *„Informatyka I st. 3 rok 2026”* albo *„Finanse II st. 2 rok 2025-2027”*. To jednostka, która zbiera kohortę uczniów przyjętych w tym samym naborze. Klasy nazywa się jednoznacznie, z rokiem naboru w przypadku dużych kierunków: - `Automatyka I st. 1 rok 2026` — pierwszy rok studiów inżynierskich na Automatyce i Robotyce, nabór 2026, - `Marketing II st. 1 rok 2026-2028` — studia magisterskie, dwa lata. #### Ścieżki i specjalności **Ścieżka** to profil kształcenia wewnątrz jednego rocznika albo przekrojowy wobec kilku: *„specjalność Data”*, *„minor Przedsiębiorczość”*, *„podwójny dyplom XYZ”*. Odwzorowanie w Omniscol zależy od złożoności: - **Prosta ścieżka** w jednym roczniku — **grupa** wewnątrz klasy (na przykład `Informatyka I st. 3 rok 2026-Ścieżka Data`). - **Ścieżka przekrojowa** wobec kilku roczników — **grupa grup**, która zbiera odpowiadające sobie grupy z kilku klas. Zob. [Grupy grup](#page-core-concepts.groups-of-groups). - **Dwa kierunki jednocześnie** (uczniowie realizujący dwie pełne ścieżki) — przypadek szczególny, w którym ten sam uczeń otrzymuje **dwa przypisania do klas** w ciągu roku. To wyjątek od ogólnej zasady, że dwie klasy nie dzielą między sobą uczniów. #### Okresy kształcenia **Okres kształcenia** to zdefiniowany czas nauczania: semestr, trymestr, dwutygodniowy moduł intensywny. Omniscol obsługuje okresy przez: - **zakresy publikacji** planów lekcji (jeden plan lekcji na okres, publikowany na odpowiednich tygodniach), - **lata szkolne** (jeden rok szkolny może obejmować kilka okresów). W przypadku krótkich albo jednorazowych programów kształcenia (seminaria, moduły kształcenia ustawicznego) proszę wybrać **tryb kalendarzowy** (zawarty w planie Premium) zamiast klasycznej tygodniowej siatki godzin. Zob. [Tryb kalendarzowy](#page-higher-ed.calendar-mode). #### Uczniowie o niestandardowym toku studiów Częste przypadki w szkolnictwie wyższym: - **Uczniowie powtarzający rok**, którzy zaliczyli część przedmiotów, a innych nie. - **Uczniowie w ramach mobilności** (Erasmus, wymiana akademicka) — przypisani do klasy przyjmującej, z korektami ścieżki. - **Uczniowie studiów dualnych** — tygodnie na uczelni przeplatają się z tygodniami w firmie; rytm odwzorowany przez tygodnie naprzemienne albo przez dedykowany kalendarzowy plan lekcji. #### Zobacz także - [Przegląd](#page-higher-ed.overview) - [Klasa, grupa, podgrupa](#page-core-concepts.classes-and-groups) - [Grupy grup](#page-core-concepts.groups-of-groups) - [Tryb kalendarzowy](#page-higher-ed.calendar-mode) ### 13.3 Nauczyciele zewnętrzni (na umowę zlecenie, visiting professor) *Source: `help/pl/higher-ed/external-faculty.md` · id: higher-ed.external-faculty · Audience: admin · Updated: 2026-06-13* Szkolnictwo wyższe w dużej mierze opiera się na **nauczycielach zewnętrznych**: specjalistach z branży na umowę zlecenie, praktykach prowadzących pojedyncze lekcje, profesorach zaproszonych z innych uczelni (visiting professor). Zarządza się nimi inaczej niż nauczycielami etatowymi: mało godzin, plan lekcji narzucony uczelni, a nie przez nią wybrany, czasem rozliczenie godzinowe. #### Oznaczanie nauczyciela jako zewnętrznego Na karcie nauczyciela ([Zarządzanie nauczycielami](#page-admin.teachers)) przełącznik **Nauczyciel zewnętrzny** (dostępny w planie Premium) pozwala odróżnić nauczycieli na umowę zlecenie od etatowych. Znacznik daje dwa konkretne efekty: - **ikonę** [user-tie] przed imieniem i nazwiskiem nauczyciela na listach i w podpowiedziach lekcji, - **dedykowaną kolumnę** w widokach tabelarycznych i w eksportach do arkusza kalkulacyjnego, pozwalającą wyodrębnić nauczycieli zewnętrznych (na przykład żeby śledzić godziny przeprowadzone przez etatowych w porównaniu z zewnętrznymi). #### Wprowadzanie dostępności Dostępność nauczyciela zewnętrznego jest często **kalendarzowa**, a nie tygodniowa: zgadza się prowadzić lekcje we wtorek 12 marca i we wtorek 19 marca, ale nie w każdy wtorek. W takim przypadku naturalnym rozwiązaniem jest [dostępność w trybie kalendarzowym](#page-timetables.calendar-wishes), zawarta w planie Premium. Bez planu Premium proszę wprowadzić przybliżoną **dostępność tygodniową** (wtorek po południu), a następnie ręcznie zablokować lekcje jedna po drugiej. #### Godziny pracy i warunki umowy Nauczyciele zewnętrzni mają zwykle **pulę godzin** ustaloną przy rekrutacji (`30 godzin w roku`, `moduł 15 godzin`). Pole **Godziny pracy** na karcie pozwala zapisać tę pulę; diagnostyka zgłasza problem, jeśli zaplanowane godziny ją przekraczają. W przypadku rozliczenia godzinowego (płatność za lekcję, a nie za miesiąc) eksport statystyk w rozbiciu na nauczycieli zasila zewnętrzny proces płac lub fakturowania. #### Komunikacja Nauczyciele zewnętrzni logują się do aplikacji rzadziej niż etatowi. Trzy przypadki użycia: - **Pełne konto** — nauczyciel zewnętrzny otrzymuje dane logowania, przegląda swój plan lekcji, wprowadza dostępność i zgłasza nieobecności z portalu nauczyciela. - **Tylko link iCal** — bez konta, jedynie link subskrypcji iCal, żeby zsynchronizować swoje lekcje z własnym kalendarzem. - **Przypomnienie e-mailem (poza aplikacją)** — administrator uprzedza nauczyciela zewnętrznego e-mailem przed jego lekcjami; nauczyciel nigdy się nie loguje. To przypomnienie jest ręczne: Omniscol nie wysyła automatycznego powiadomienia o każdej lekcji. Takie przypomnienie łatwo zbudować poza Omniscolem przez API pobierania planów, filtrując po nauczycielach. Cotygodniowe przetwarzanie może na przykład złożyć podsumowanie, wstawić je we własny szablon uczelni i wysłać przez jej usługę pocztową. Korzystanie z tej usługi chroni reputację nadawcy i ogranicza fałszywe trafienia filtrów antyspamowych. Do dobrania zależnie od profilu (starszy konsultant nie ma czasu na kolejne konto; doktorant, który prowadzi kilka godzin, przyzwyczai się bez trudu). #### Instrukcja — Wdrażanie nauczyciela zewnętrznego 1. **Nauczyciel zewnętrzny, który prowadzi 15 godzin w roku**: oznaczenie jako zewnętrzny, dostępność kalendarzowa, pula godzin, dobrany tryb komunikacji. 2. **Proszę utworzyć kartę nauczyciela** na ekranie **Nauczyciele**. Proszę podać imię, nazwisko i adres e-mail oraz włączyć przełącznik **Nauczyciel zewnętrzny**. Znacznik dodaje ikonę [user-tie] przed imieniem i nazwiskiem oraz dedykowaną kolumnę w widokach tabelarycznych i w eksportach. 3. **Pula godzin**: w polu **Godziny pracy** proszę wpisać pulę z umowy (`15`). Diagnostyka zgłasza problem, jeśli zaplanowane godziny ją przekraczają. Przydatne przy rozliczeniu godzinowym i monitorowaniu umowy. 4. **Dostępność**: na koncie Premium nauczyciel zewnętrzny wprowadza swoją dostępność **data po dacie** przez [dostępność w trybie kalendarzowym](#page-timetables.calendar-wishes) — idealnie pasuje do planu narzuconego uczelni. W przeciwnym razie: **przybliżona dostępność tygodniowa** + ręczne blokowanie lekcji jedna po drugiej. 5. **Tryb komunikacji** — proszę wybrać zależnie od profilu: - **Pełne konto** — dla doktoranta, który prowadzi kilka godzin; dane logowania, portal nauczyciela, dostępność, nieobecności; - **Tylko link iCal** — dla starszego konsultanta zbyt zajętego, by zakładać kolejne konto; wyłącznie subskrypcja kalendarza; - **Przypomnienie e-mailem (poza aplikacją)** — administrator uprzedza nauczyciela zewnętrznego e-mailem, ręcznie (Omniscol nie wysyła automatycznego przypomnienia o każdej lekcji); nauczyciel nigdy się nie loguje. 6. **Eksport statystyk** na koniec miesiąca lub semestru na potrzeby **zewnętrznych płac i fakturowania**: godziny przeprowadzone w rozbiciu na lekcje, przedmioty i klasy. Zob. [Drukowanie i udostępnianie](#page-schedules.print-and-export). Kolumna Zewnętrzny w eksportach pozwala wyodrębnić nauczycieli zewnętrznych. #### Zobacz także - [Zarządzanie nauczycielami](#page-admin.teachers) - [Dostępność w kalendarzu](#page-timetables.calendar-wishes) - [Nauczyciel zewnętrzny](#page-glossary.external-teacher) - [Przegląd](#page-higher-ed.overview) ### 13.4 Podzielone sale i egzaminy w wielu salach *Source: `help/pl/higher-ed/multi-room-exams.md` · id: higher-ed.multi-room-exams · Audience: admin · Updated: 2026-06-13* W szkolnictwie wyższym część lekcji zajmuje **kilka sal jednocześnie**. Egzamin cząstkowy zbiera rocznik liczący 200 uczniów, rozdzielonych na 5 sal wykładowych. Podzielony wykład odbywa się w 2 salach wykładowych połączonych wideokonferencją. Komisja egzaminacyjna zajmuje 3 sale równolegle. Omniscol obsługuje te przypadki przez pojęcie **wielu sal**. #### Wiele sal: zasada Lekcja (albo wydarzenie) może mieć przypisane **kilka sal**. Wszystkie te sale są wtedy zajęte w danym przedziale czasowym, a wszystkie ograniczenia (pojemność, specjalizacja, dostępność) są sprawdzane równolegle. Funkcja wielu sal jest dostępna we **wszystkich typach planów lekcji** (tygodniowym, cyklicznym, kalendarzowym). Zob. [Lokalizacje, sale, zasoby](#page-core-concepts.sites-rooms-resources). > _Premium_ Opisane poniżej scenariusze egzaminów i komisji opierają się na **wydarzeniach jednorazowych** (lekcjach datowanych, nakładanych na siatkę godzin), dostępnych na kontach **Premium**. Funkcja **wielu sal** na zwykłej lekcji pozostaje natomiast dostępna na wszystkich kontach. #### Typowe zastosowanie: egzamin w kilku salach Rocznik `Informatyka I st. 1 rok 2026` (200 uczniów) zdaje egzamin cząstkowy z algorytmiki. Żadna sala wykładowa uczelni nie ma 200 miejsc, więc egzamin odbywa się jednocześnie w: - `Aula A` (80 miejsc), - `Aula B` (70 miejsc), - `Aula C` (50 miejsc). Odwzorowanie w Omniscol: - utworzyć **wydarzenie egzaminacyjne** na właściwą datę i godzinę (zob. [Wydarzenia jednorazowe](#page-schedules.events)), - jako uczestnicy: klasa `Informatyka I st. 1 rok 2026`, - jako sale: `Aula A`, `Aula B`, `Aula C` (wiele sal), - jako nadzór: od 1 do 3 opiekunów na salę przez moduł **Obsada personelu** (zob. [Przegląd modułu Obsada personelu](#page-staffing.overview)). Proszę sprawdzić, czy łączna pojemność sal wykładowych (80 + 70 + 50 = 200) pokrywa liczebność rocznika. W przypadku egzaminu odwzorowanego jako **wydarzenie** Omniscol nie liczy tej sumy automatycznie: diagnostyka pojemności obejmuje wyłącznie zwykłe lekcje umieszczone na siatce godzin. #### Podzielony wykład przez wideokonferencję Wykład cieszący się dużym zainteresowaniem można transmitować przez wideokonferencję z głównej sali wykładowej do dodatkowej sali wykładowej. Odwzorowanie: - jeden wykład z dwiema salami, - nauczyciel przebywa fizycznie w głównej sali wykładowej, - **link do wideokonferencji** lekcji zawiera adres transmisji do drugiej sali wykładowej (notatka może uściślić organizację). #### Komisja egzaminacyjna na obronach Komisja, która egzaminuje 10 doktorantów równolegle w 3 salach (rotacja w trzech turach): - jedno wydarzenie na posiedzenie komisji, - wiele sal przypisanych do każdego posiedzenia, - **Obsada personelu** dla członków komisji przypisanych do każdej sali. #### Automatyczny podział uczniów Omniscol nie przypisuje automatycznie, który uczeń trafia do której sali wykładowej. Podział pozostaje decyzją uczelni (kolejność alfabetyczna, poziom, rodzaj egzaminu, zasady wewnętrzne). Wykonuje się go ręcznie albo przez eksport do arkusza kalkulacyjnego przekazywany opiekunom. #### Instrukcja — Zaplanowanie egzaminu cząstkowego w 3 salach wykładowych 1. **Typowy przypadek w szkolnictwie wyższym**: egzamin cząstkowy dla 200 uczniów w 3 salach wykładowych jednocześnie. Wystarczą funkcja wielu sal, wydarzenie i moduł **Obsada personelu**. 2. **Proszę utworzyć wydarzenie egzaminacyjne**: w module **Plany lekcji** proszę wyświetlić filtr **Wydarzenia** (tryb reorganizacji) i **kliknięciem i przeciągnięciem** zaznaczyć na kalendarzu datowany przedział czasowy. Tytuł: `Egzamin cząstkowy z algorytmiki — Informatyka I st. 1 rok`, następnie data oraz godzina rozpoczęcia i zakończenia. Zob. [Wydarzenia jednorazowe](#page-schedules.events). 3. **Uczestnicy**: proszę dodać klasę `Informatyka I st. 1 rok 2026` (200 uczniów). Wszyscy uczniowie, których to dotyczy, znajdą się automatycznie w wydarzeniu, niezależnie od sali wykładowej, w której fizycznie będą zdawać. 4. **Sale — to właśnie funkcja wielu sal**: proszę dodać 3 sale wykładowe (`Aula A` 80, `Aula B` 70, `Aula C` 50). Wszystkie 3 sale wykładowe są wtedy zajęte jednocześnie w tym przedziale czasowym. Proszę samodzielnie sprawdzić, czy łączna pojemność (200) pokrywa liczebność rocznika (200): w wydarzeniu ta suma nie jest diagnozowana automatycznie. 5. **Opiekunowie**: proszę otworzyć moduł **Obsada personelu** i utworzyć zadania nadzoru dla każdej sali wykładowej (od 1 do 3 opiekunów na salę, zgodnie z przyjętą zasadą). Zob. [Przegląd modułu Obsada personelu](#page-staffing.overview). 6. **Podział uczniów między sale wykładowe**: Omniscol nie robi tego automatycznie. Ten wybór wynika z zasad wewnętrznych uczelni (kolejność alfabetyczna, poziom, równoważenie). Proszę wyeksportować listę uczniów do arkusza kalkulacyjnego, wykonać podział ręcznie albo według własnych zasad, a następnie przekazać go opiekunom. Zob. [Drukowanie i udostępnianie](#page-schedules.print-and-export). #### Zobacz także - [Wiele sal](#page-glossary.multi-room) - [Tryb](#page-glossary.lesson-modality) - [Lokalizacje, sale, zasoby](#page-core-concepts.sites-rooms-resources) - [Przegląd modułu Obsada personelu](#page-staffing.overview) - [Wydarzenia jednorazowe](#page-schedules.events) ### 13.5 Współnauczanie i rotacja nauczycieli *Source: `help/pl/higher-ed/co-teaching.md` · id: higher-ed.co-teaching · Audience: admin · Updated: 2026-06-13* Dwie częste sytuacje w szkolnictwie wyższym: - **współnauczanie** — dwóch nauczycieli (lub więcej) prowadzi razem tę samą lekcję. Typowy przypadek: teoretyk i praktyk na kursie strategii, nauczyciel etatowy i ekspert na umowę zlecenie przy studium przypadku. - **rotacja nauczycieli** — kurs rozłożony na pewien okres (moduł, semestr) prowadzi po kolei kilku nauczycieli, którzy się zmieniają. Typowy przypadek: moduł branżowy podzielony na lekcje tematyczne, z których każdą powierza się innemu ekspertowi. Omniscol obsługuje oba mechanizmy natywnie. #### Współnauczanie (nauczanie zespołowe) Jedna lekcja może mieć **kilku nauczycieli jednocześnie**. W module **Zarządzanie planami lekcji** przycisk **Przypisz nauczycieli** pozwala wskazać na tej samej lekcji więcej niż jedną osobę. Indywidualne plany lekcji tych nauczycieli pokazują lekcję jako współprowadzoną. Konsekwencje: - **Dostępność** wszystkich nauczycieli prowadzących lekcję wspólnie musi być zgodna w danym przedziale czasowym. - Po stronie **godzin pracy** lekcja pojawia się **w całości** w planie lekcji każdego z tych nauczycieli. Jeśli zasady przyjęte w placówce dzielą tę godzinę proporcjonalnie między nich, obliczenie to wykonuje się przy eksporcie (płace, fakturowanie). Zob. [Złożone lekcje](#page-core-concepts.complex-lessons), gdzie opisano techniczne szczegóły kursów współprowadzonych. #### Rotacja nauczycieli w ramach modułu Przypadek trudniejszy: 12 lekcji jednego modułu, każda prowadzona przez innego nauczyciela. Dwa podejścia: ##### Podejście A — Jeden przedmiot, kilka kursów Proszę utworzyć w module **po jednym kursie na każdego nauczyciela**, każdy z jednym przypisanym nauczycielem. Wprowadzanie danych zajmuje dużo czasu, ale wynik pozostaje przejrzysty dla nauczycieli: każdy widzi swoje lekcje we własnym planie lekcji, a moduł wygląda jak przedmiot z kilkoma kursami. ##### Podejście B — Tryb kalendarzowy z dokładnymi datami Jeśli daty lekcji są dokładnie znane, służy do tego [tryb kalendarzowy](#page-timetables.calendar-mode), zawarty w planie Premium: - jeden przedmiot `Moduł Strategia przedsiębiorstwa`, - N lekcji z datami, po jednym nauczycielu na lekcję, - algorytm generowania respektuje dostępność każdego z nich. To podejście jest bardziej zwarte i naturalne w modułach intensywnych. #### Komentarz opisujący przebieg modułu Na każdej lekcji można przyciskiem Komentarz dodać **komentarz** wyjaśniający miejsce tej lekcji w module (`Lekcja 3 / 12 — Strategia finansowa`). Komentarz pojawia się w planach lekcji i pomaga uczniom się zorientować. #### Instrukcja — Moduł z 12 nauczycielami w rotacji 1. **Przypadek modułu branżowego**: 12 lekcji, każda powierzona innemu ekspertowi. Łączy się tu dwa mechanizmy: **podejście kalendarzowe**, aby nadać daty następującym po sobie lekcjom, oraz **współnauczanie** wyłącznie na lekcjach prowadzonych w duecie. 2. **W tym wariancie z dokładnymi datami**: plan lekcji w **trybie kalendarzowym**. Wszyscy nauczyciele na umowę zlecenie mają na swoich kartach nauczyciela włączony znacznik **Nauczyciel zewnętrzny**. Zob. [Nauczyciele zewnętrzni](#page-higher-ed.external-faculty). 3. **Proszę utworzyć jeden przedmiot** `Moduł Strategia przedsiębiorstwa`. To dydaktyczna rama całego modułu. Odpowiedni **Typ lekcji**: często mieszanka wykładów i studiów przypadku. 4. **Proszę wprowadzić 12 lekcji** z dokładnymi datami, każdą z **własnym nauczycielem**. Tytuł lekcji wraz z tematem (`Lekcja 3/12 — Strategia finansowa`) w komentarzu, aby pomóc uczniom zorientować się w przebiegu modułu. 5. **Na lekcjach prowadzonych w duecie** (teoretyk i praktyk nad studium przypadku) stosuje się **współnauczanie**: na danej lekcji proszę wybrać **kilku nauczycieli** przyciskiem **Przypisz nauczycieli**. Indywidualne plany lekcji tych nauczycieli pokazują lekcję jako współprowadzoną. 6. **Godziny pracy**: lekcja pojawia się **w całości** w planie lekcji każdego z tych nauczycieli. Podział proporcjonalny między nich obsługuje się przy eksporcie (płace, fakturowanie), a nie w Omniscolu. 7. **Weryfikacja**: proszę otworzyć portal ucznia i sprawdzić wyświetlanie modułu — 12 lekcji pojawia się w planie lekcji wraz z przypisanymi nauczycielami. Komentarze o przebiegu (`Lekcja N/12`) są widoczne po najechaniu kursorem. #### Zobacz także - [Współnauczanie](#page-glossary.co-teaching) - [Złożone lekcje](#page-core-concepts.complex-lessons) - [Nauczyciele zewnętrzni](#page-higher-ed.external-faculty) - [Tryb kalendarzowy](#page-timetables.calendar-mode) ### 13.6 Tryb kalendarzowy dla programów bez powtarzalności *Source: `help/pl/higher-ed/calendar-mode.md` · id: higher-ed.calendar-mode · Audience: admin · Plan: premium · Updated: 2026-06-13* > **Premium** > _Premium_ Szkolnictwo wyższe nie zawsze trzyma się **powtarzalności tygodniowej**: moduły intensywne na 2 tygodnie, trzydniowe seminaria, obrony rozłożone na miesiąc, jednorazowe warsztaty prowadzone przez nauczycieli zewnętrznych. W takich przypadkach **tryb kalendarzowy** Omniscol jest naturalniejszy niż tygodniowa siatka godzin naszpikowana wyjątkami. #### Kiedy wybrać tryb kalendarzowy Oznaki: - lekcje mają **dokładne daty**, a nie powtarzany co tydzień przedział czasowy, - **nauczyciele się zmieniają** z lekcji na lekcję, - **miejsca się zmieniają** (wyjście w teren, wizyta w firmie, wideokonferencja), - **rytm** nie jest tygodniowy (raz 3 lekcje w 2 dni, raz nic przez 3 tygodnie). Jeśli opis modułu łatwiej ułożyć w kalendarzu niż w tygodniowej siatce godzin, tryb kalendarzowy jest właściwym wyborem. #### Typowe zastosowania w szkolnictwie wyższym - **Moduły intensywne** — seminarium przez 3 pełne dni albo moduł intensywny na 2 tygodnie. - **Kształcenie ustawiczne** — pojedyncze sesje, których nie da się powtórzyć w rocznym planie lekcji. - **Seminaria naukowe** — pojedyncze lekcje z innymi gośćmi w każdym tygodniu. - **Obrony i komisje egzaminacyjne** — rozłożone na kilka tygodni, dokładne daty, dokładne sale. - **Prace w terenie / projekty** — krótkie etapy, zmienne miejsca. #### Odwzorowanie Definiuje się **uporządkowaną listę lekcji z datami**, bez przechodzenia przez tygodniową siatkę godzin: - dokładna **data i godzina**, - **czas trwania** (dowolny), - **miejsce**, - **nauczyciel** (może się zmieniać z lekcji na lekcję), - **odbiorcy**: jedna lub kilka klas, jedna lub kilka grup, grupy grup. Tryb kalendarzowy korzysta z tej samej struktury klas i grup co tryb tygodniowy — nie traci się przy tym żadnej możliwości organizacyjnej. Również w trybie kalendarzowym działa [automatyczne generowanie](#page-timetables.generation): algorytm generowania umieszcza lekcje w docelowym oknie dat i może zagęścić dni lekcyjne na początku albo na końcu okresu. Zob. [Tryb kalendarzowy](#page-timetables.calendar-mode). #### Łączenie z tygodniowym planem lekcji Można prowadzić **tygodniowy plan lekcji** dla powtarzalnego wspólnego trzonu rano i **kalendarzowy plan lekcji** dla pojedynczych lekcji po południu, publikując oba równolegle dla tych samych klas; albo pierwsze lata w trybie tygodniowym, a klasy specjalnościowe na ostatnim roku w trybie kalendarzowym (zob. [Kilka planów lekcji opublikowanych równolegle](#page-timetables.multiple-active-timetables)). #### Dostępność nauczycieli w trybie kalendarzowym Wprowadzanie [dostępności w trybie kalendarzowym](#page-timetables.calendar-wishes) jest tu szczególnie przydatne: nauczyciele zewnętrzni podają swoją dostępność na dokładne daty, a nie w rytmie tygodniowym. #### Zobacz także - [Tryb kalendarzowy — przegląd funkcji](#page-timetables.calendar-mode) - [Wybór właściwego typu planu lekcji](#page-overview.timetable-modes) - [Nauczyciele zewnętrzni](#page-higher-ed.external-faculty) - [Kilka planów lekcji opublikowanych równolegle](#page-timetables.multiple-active-timetables) - [Dostępność w trybie kalendarzowym](#page-timetables.calendar-wishes) ### 13.7 Linki do wideokonferencji dla kursów *Source: `help/pl/higher-ed/videoconference-links.md` · id: higher-ed.videoconference-links · Audience: admin · Plan: premium · Updated: 2026-06-13* > **Premium** > _Premium_ W szkolnictwie wyższym wiele kursów odbywa się **zdalnie** lub **hybrydowo** (część uczniów stacjonarnie, część połączona zdalnie). Każda lekcja ma wtedy **link do wideokonferencji** (Zoom, Teams, Google Meet, Jitsi), który musi być widoczny w planie lekcji, żeby wszyscy wiedzieli, gdzie kliknąć. #### Jak przypisać link Na lekcji kursu lub na wydarzeniu pole Link do wideokonferencji przyjmuje adres URL. W przypadku lekcji wypełnia się je w oknie wyboru sali. Po wypełnieniu plan lekcji pokazuje link z ikoną [video]; link otwiera się w nowej karcie. Link jest widoczny: - w portalu ucznia i nauczyciela na lekcji, - w eksporcie iCal, we właściwościach konferencji lub adresu URL, gdy link jest wpisany, - w API JSON. #### Kurs zdalny lub hybrydowy Pole **[Tryb](#page-glossary.lesson-modality)** lekcji określa jej formę: **Stacjonarnie**, **Zdalnie**, **Hybrydowy** albo **Samokształcenie**. Wypełnia się je w tym samym oknie co sala i link do wideokonferencji. W przypadku kursu **prowadzonego w pełni zdalnie** proszę wybrać tryb **Zdalnie**, wpisać link do wideokonferencji i nie wymuszać sali fizycznej, jeśli kurs jej nie zajmuje. W przypadku kursu **hybrydowego** (nauczanie stacjonarne i wideokonferencja równolegle) proszę wybrać **Hybrydowy**, zachować salę fizyczną i wpisać także link. #### Linki stałe a linki dla poszczególnych lekcji Zależnie od używanego narzędzia do wideokonferencji: - **Link stały** — osobisty pokój Zoom, cykliczne spotkanie Teams. Ten sam link służy wszystkim lekcjom jednego kursu. Proszę wpisać go tylko raz na kursie (wszystkie jego lekcje go odziedziczą) albo wprost na klasie, aby zastosować link domyślny do wszystkich jej lekcji. - **Link dla lekcji** — każda lekcja ma własny adres URL, wpisywany na lekcji (w tym samym oknie co sala). Proszę zarezerwować ten wariant dla lekcji, których link zmienia się za każdym razem (na przykład spotkanie Zoom tworzone na bieżąco). #### Bezpieczeństwo Kilka dobrych praktyk: - **Bez linku publicznego przy kursach wymagających ochrony** — w przypadku kursu zamkniętego lub egzaminu pod nadzorem proszę skonfigurować pokój wideokonferencji z dostępem uwierzytelnionym (a nie przez link bezpośredni). - **Link w iCal** — kanał iCal może przeglądać każda osoba, która ma link udostępniania. Link do wideokonferencji umieszczony na lekcji rozchodzi się więc przez iCal — proszę sprawdzić, czy to rzeczywiście zamierzony efekt. - **Odnawianie** — jeśli link stały zostanie ujawniony, proszę odnowić go po stronie Zoom / Teams i wprowadzić aktualizację w Omniscolu (na kursie lub na klasie, nie na każdej lekcji). #### Zobacz także - [Tryb](#page-glossary.lesson-modality) - [Typy lekcji](#page-admin.lesson-types) - [iCal — subskrypcja i dynamiczny link](#page-integrations.ical) - [FAQ — przypadki użycia w szkolnictwie wyższym](#page-faq.higher-ed-cases) ### 13.8 Praca w wielu lokalizacjach w szkolnictwie wyższym *Source: `help/pl/higher-ed/multi-site.md` · id: higher-ed.multi-site · Audience: admin · Updated: 2026-06-13* Praca w wielu lokalizacjach jest **dostępna już w planie Core** (wyłączona jedynie w planie Lite); zasady ogólne opisuje [Kampusy, lokalizacje, sale, zasoby, wiele sal](#page-core-concepts.sites-rooms-resources). Ta strona zbiera **sytuacje częste w szkolnictwie wyższym**, gdzie praca w wielu lokalizacjach jest niemal normą: politechniki rozłożone na kilka kampusów, szkoły biznesu z filiami w regionach, uniwersytety działające w wielu lokalizacjach. Uwaga: w Omniscol [kampus](#page-glossary.campus) jest pojęciem organizacyjnym, odrębnym od [lokalizacji](#page-glossary.site). Oba często się pokrywają (jeden kampus na lokalizację, z własnymi klasami). Gdy trzeba zarządzać siatką godzin, salami albo czasami przejazdu, proszę odwzorować dane miejsce jako lokalizację. > Te sytuacje dotyczą także szkolnictwa podstawowego i średniego, gdy > placówka jest rozproszona geograficznie (szkoła podstawowa i liceum > w osobnych lokalizacjach, szkoła z oddziałem przedszkolnym w filii itd.). #### Typowy przypadek: lokalizacja główna + filie w regionach Przypadek częsty w politechnice albo w szkole biznesu: - 1 **lokalizacja główna** (zwykle siedziba), - od 1 do N **filii w regionach**, w których roczniki uczące się poza siedzibą realizują część programu, - **nauczyciele** jeżdżący między lokalizacjami. Odwzorowanie w Omniscol: jedna lokalizacja na miejsce, czasy przejazdu wprowadzone dla każdej pary (przejazdy pociągiem, loty, dojazdy samochodem między lokalizacjami). Zob. [Zasady pracy w wielu lokalizacjach](#page-core-concepts.sites-rooms-resources), aby poznać dokładny mechanizm (ograniczenia blokujące co do minuty, przerwa obiadowa skrócona o czas przejazdu itd.). #### Osobny plan lekcji dla każdej lokalizacji albo jeden globalny Dwa podejścia, zależnie od organizacji wewnętrznej: - **Jeden skonsolidowany plan lekcji** — jeden plan lekcji obejmuje wszystkie lokalizacje. Rozwiązanie właściwe, gdy zespoły planujące pracują centralnie, a nauczyciele dużo się przemieszczają. Diagnostyka sprawdza wszystko krzyżowo w jednym przebiegu. - **Jeden plan lekcji na lokalizację** — dzięki [kilka planów lekcji opublikowanych równolegle](#page-timetables.multiple-active-timetables), zawartym w planie Premium. Każda lokalizacja ma własny zespół lokalny i własny plan lekcji opublikowany na te same tygodnie; przy przeglądaniu widoki są scalane dynamicznie dla uczniów i nauczycieli związanych z kilkoma lokalizacjami. #### Lokalizacje wirtualne i lekcje zdalne Przypadek szczególny: lekcja **transmitowana przez wideokonferencję** z lokalizacji głównej do rocznika uczącego się w pełni zdalnie. Możliwe odwzorowanie: - utworzyć **lokalizację wirtualną** „Zdalnie” bez czasu przejazdu do lokalizacji nadającej, co znosi wszelkie ograniczenia wynikające z przejazdu, - umieścić w niej jedną salę „Wideokonferencja” na każdą kohortę zdalną, - dołączyć tę salę do lekcji w trybie wielu sal razem z pierwotną salą wykładową. > To odwzorowanie ma swoje granice, gdy **kohort zdalnych jest wiele**: > mnożenie sal wirtualnych „Wideokonferencja” staje się trudne > w utrzymaniu, a zarządzanie ich pojemnością nie ma większego sensu. > W takim przypadku proszę > udokumentować tę potrzebę jako szczególną i wybrać raczej link do > wideokonferencji wprost na lekcji (albo, na koncie Premium, domyślnie > na klasie), bez tworzenia osobnej sali wirtualnej dla każdej kohorty. Zob. [Egzaminy w wielu salach](#page-higher-ed.multi-room-exams), aby poznać mechanizm wielu sal, oraz [Linki do wideokonferencji dla kursów](#page-higher-ed.videoconference-links) w sprawie powiązanych linków Zoom / Teams / Meet. #### Filtry i statystyki według lokalizacji Ekrany Omniscol udostępniają filtry **według lokalizacji**, aby wyodrębnić jedno miejsce fizyczne. Przydaje się to, aby: - wyświetlić plan lekcji jednego konkretnego miejsca, - osobno śledzić obłożenie sal w filii, - generować statystyki według lokalizacji (przeprowadzone godziny, wskaźniki obłożenia). #### Panele informacyjne według lokalizacji Na jedną konkretną lokalizację może filtrować także [panel informacyjny](#page-panels.lobby-panel), co zwykle odpowiada panelowi zawieszonemu **w holu** danej lokalizacji. Zob. [Konfigurowanie panelu w holu lub na korytarzu](#page-panels.lobby-panel). #### Zobacz także - [Lokalizacje, sale, zasoby](#page-core-concepts.sites-rooms-resources) - [Lokalizacja](#page-glossary.site) - [Kilka planów lekcji opublikowanych równolegle](#page-timetables.multiple-active-timetables) - [Egzaminy w wielu salach](#page-higher-ed.multi-room-exams) - [Linki do wideokonferencji dla kursów](#page-higher-ed.videoconference-links) - [Tryb](#page-glossary.lesson-modality) - [Konfigurowanie panelu informacyjnego](#page-panels.lobby-panel) - [Specyfika szkolnictwa wyższego — przegląd](#page-higher-ed.overview) --- ## 14. Specyfika szkoły podstawowej / średniej (oświata) ### 14.1 Specyfika szkoły podstawowej / średniej — przegląd *Source: `help/pl/k12/overview.md` · id: k12.overview · Updated: 2026-06-13* Ta sekcja zbiera strony, które opisują specyfikę szkolnictwa podstawowego i średniego (szkoła podstawowa, liceum, technikum). #### Typowe cechy - **[Tygodniowy plan lekcji](#page-glossary.weekly-timetable)** — powtarzalny tydzień wzorcowy jest normą, z [tygodniami naprzemiennymi](#page-glossary.alternate-lessons) (A/B) albo bez nich. - **Sale dedykowane poszczególnym klasom** — wiele szkół pracuje z salą przypisaną do każdej klasy; to nauczyciele się przemieszczają. - **Półklasy / grupy przedmiotów do wyboru** — obsługiwane przez [podziały klasy](#page-core-concepts.class-divisions) w obrębie jednej klasy. - **Uczniowie łaciny i greki / przedmioty rozszerzone w liceum** — obsługiwane przez międzyklasowe [wyrównania grup](#page-core-concepts.alignments). - **Generowanie planu lekcji** — algorytm generowania działa automatycznie i właśnie w tym tkwi główna wartość w oświacie. - **Świetlica / nauka pod nadzorem** — godziny, w których uczniowie są w szkole bez przypisanej lekcji. Zob. [Świetlica i nauka pod nadzorem](#page-k12.study-halls). - **Klasy łączone** — typowe dla małych szkół wiejskich. Zob. [Klasy łączone](#page-k12.multi-grade-classes). #### Zalecenia konfiguracyjne - **Konto Core** wystarcza w większości przypadków (w typowej szkole plan Premium nie jest potrzebny). - **Tryb tygodniowy** jako domyślny. - **Włączenie wprowadzania dostępności nauczycieli** w trybie tygodniowym; wprowadzanie może wykonać lub sprawdzić administracja. - **Jedna sala dedykowana na klasę**, gdy ma to zastosowanie — wprowadzana na klasie. - **Staranne określenie poziomów** w module **Administracja**, przyciskiem **Utwórz** (klasa 1, klasa 2, …, klasa 7, klasa 8 szkoły podstawowej, klasa 1, 2, 3 i 4 liceum lub technikum itd.). - **Oficjalne dni wolne w kraju** — przy tworzeniu roku szkolnego Omniscol proponuje import dni wolnych wspólnych dla całego kraju. Zob. [Rok szkolny i dni wolne](#page-admin.school-year). #### Przypadki użycia w oświacie Historyczną podstawą Omniscol jest szkolnictwo średnie (starsze klasy szkoły podstawowej oraz liceum i technikum): wiele domyślnych konwencji pochodzi właśnie stąd. Scenariusze krok po kroku mające zastosowanie w oświacie zebrano w [scenariuszach przypadków użycia](#page-use-cases.overview) oraz w [FAQ o tworzeniu planu lekcji](#page-faq.timetables). #### Zobacz także - [Czym jest Omniscol](#page-overview.what-is-omniscol) - [Wybór właściwego typu planu lekcji](#page-overview.timetable-modes) - [Półklasy i przedmioty do wyboru w podziale klasy](#page-k12.half-classes-and-options) - [Świetlica i nauka pod nadzorem](#page-k12.study-halls) - [Klasy łączone](#page-k12.multi-grade-classes) ### 14.2 Półklasy i przedmioty do wyboru w podziale klasy *Source: `help/pl/k12/half-classes-and-options.md` · id: k12.half-classes-and-options · Audience: admin · Updated: 2026-06-13* W szkolnictwie podstawowym i średnim zarządzanie klasą szybko się komplikuje przez **półklasy** (zajęcia laboratoryjne w zmniejszonym składzie) oraz **przedmioty do wyboru**, które rozdzielają uczniów tej samej klasy na kilka jednoczesnych podgrup. Pojęciem Omniscol, które to porządkuje, jest **podział klasy**: podgrupy, które muszą mieć lekcje w tym samym czasie, ale o różnej treści. #### Półklasy na zajęciach laboratoryjnych Typowy przypadek w klasach 5–6 szkoły podstawowej: 28 uczniów uczy się przez większość czasu w całej klasie, a na laboratorium z przedmiotów przyrodniczych dzieli się na 2 grupy po 14 osób. Obie półgrupy muszą mieć laboratorium w tym samym czasie (w przeciwnym razie nie mogłyby mieć równolegle innej lekcji), każda z własnym nauczycielem i własną salą. Odwzorowanie w Omniscol: - proszę utworzyć dwie **grupy** `6A-Lab1` i `6A-Lab2` w klasie `6A`, - proszę objąć je **podziałem klasy**: Omniscol gwarantuje, że są zajęte jednocześnie, - proszę utworzyć **dwa kursy laboratoryjne z przedmiotów przyrodniczych**, każdy z własną grupą, własnym nauczycielem i własną salą, w tym samym tygodniowym przedziale czasowym. Algorytm generowania przestrzega podziału klasy: nie jest możliwe, aby `6A-Lab1` miała zajęcia z przedmiotów przyrodniczych, gdy `6A-Lab2` ma język polski. #### Przedmioty do wyboru w podziale klasy Typowy przypadek w klasach 7–8 szkoły podstawowej: w tym samym przedziale czasowym część uczniów ma łacinę, część rozszerzony język niemiecki, a część nie wybiera nic (nauka pod nadzorem). Trzy jednoczesne grupy w obrębie jednej klasy. Odwzorowanie: - grupy `7A-Łacina`, `7A-Niemiecki`, `7A-Nauka` w klasie `7A`, - objęte **podziałem klasy** (wszystkie trzy są jednoczesne), - jeden kurs na grupę w tym samym przedziale czasowym, z własnym nauczycielem i własną salą. #### Uczniowie, którzy zmieniają przedmiot do wyboru w trakcie roku Przedmiot do wyboru może się zmienić w trakcie roku (na przykład uczeń rezygnuje z łaciny i przechodzi do nauki pod nadzorem). Przydziałem do grup zarządza się **tydzień po tygodniu** na karcie ucznia: tygodnie, które już minęły, zachowują dawny przydział, a kolejne tygodnie przyjmują nowy. #### Podział klasy + wyrównanie grup W przypadku języków prowadzonych **międzyklasowo** (na przykład łaciny otwartej dla klas 7A, 7B i 7C) proszę połączyć: - **podział klasy** w każdej z klas (7A-Łacina / 7A-Inne, 7B-Łacina / 7B-Inne itd.), - **wyrównanie grup** między trzema grupami łaciny, aby były w tym samym przedziale czasowym, w tej samej sali i z tym samym nauczycielem. Patrz [Wyrównania grup](#page-core-concepts.alignments). #### Instrukcja — Utworzenie przedziału czasowego łacina / niemiecki / nauka pod nadzorem w klasie 7 1. **Typowy przypadek w klasach 7–8**: w tym samym przedziale czasowym część uczniów ma łacinę, część język niemiecki, a część nic (nauka pod nadzorem). Trzy jednoczesne grupy. Podział klasy w Omniscol radzi sobie z tym bez trudu. 2. **Proszę utworzyć trzy grupy** w klasie `7A`: `7A-Łacina`, `7A-Niemiecki`, `7A-Nauka`. Proszę przypisać każdego ucznia do jego grupy zgodnie z wybranym przedmiotem. 3. **Proszę zadeklarować podział klasy** `(7A-Łacina, 7A-Niemiecki, 7A-Nauka)`: te trzy grupy **wykluczają się i są jednoczesne**. Omniscol zagwarantuje, że są zajęte w tym samym przedziale czasowym. 4. **Proszę utworzyć trzy kursy** w tym samym tygodniowym przedziale czasowym: - łacina dla `7A-Łacina` z nauczycielem łaciny i odpowiednią salą; - język niemiecki dla `7A-Niemiecki` z nauczycielem języka niemieckiego; - nauka pod nadzorem dla `7A-Nauka` z opiekunem (albo bez nauczyciela, w zależności od przyjętych zasad). Algorytm generowania przestrzega podziału klasy: te trzy kursy zawsze otrzymają ten sam przedział czasowy. 5. **W przypadku przedmiotów do wyboru otwartych dla kilku klas** (łacina w klasach 7A, 7B i 7C z jednym nauczycielem i jedną salą): proszę połączyć **podział klasy w każdej z klas** (`7A-Łacina` wyklucza się z pozostałymi grupami klasy 7A, podobnie 7B i 7C) **+ wyrównanie grup** między trzema grupami łaciny. Patrz [Wyrównania grup](#page-core-concepts.alignments). 6. **Zmiany w trakcie roku** (uczeń rezygnuje z łaciny i przechodzi do nauki pod nadzorem): proszę zmienić jego przynależność do grupy na karcie ucznia, począwszy od tygodnia, w którym nastąpiła zmiana. Tygodnie, które już minęły, zachowują dawny przydział. #### Zobacz także - [Podziały klasy](#page-core-concepts.class-divisions) - [Klasa, grupa, podgrupa](#page-core-concepts.classes-and-groups) - [Wyrównania grup](#page-core-concepts.alignments) - [Klasy łączone](#page-k12.multi-grade-classes) ### 14.3 Świetlica i nauka pod nadzorem (oświata) *Source: `help/pl/k12/study-halls.md` · id: k12.study-halls · Audience: admin/staff · Updated: 2026-06-13* **Świetlica** (lub **nauka pod nadzorem**) obejmuje godziny, w których uczniowie bez lekcji przebywają pod opieką w sali do nauki. To instytucja typowa dla francuskich szkół podstawowych i średnich: uczniowie, których przedmiot do wyboru nie wypada w danej godzinie, uczniowie zwolnieni z wychowania fizycznego, uczniowie, których nauczyciel jest nieobecny. #### Dlaczego nie wystarczy zwykły kurs? Świetlicą nie zarządza się dokładnie tak jak kursem: - **brak przedmiotu** w klasycznym rozumieniu, - **zmienny skład uczniów** z jednego przedziału czasowego na drugi (ci, którzy nie mają lekcji), - **nadzór, a nie nauczanie** — opiekun nie uczy, lecz sprawuje nadzór, - **silny wymóg sprawiedliwości**: obciążenie nadzorem musi być rozdzielone między nauczycieli (oraz kierowników ds. wychowania i opiekunów) według reguły sprawiedliwego podziału. Dlatego Omniscol udostępnia do tego rodzaju zarządzania osobny moduł **Obsada personelu**. Zob. [Przegląd modułu Obsada personelu](#page-staffing.overview). Ten moduł jest **opcją** konta: bez niego proszę odwzorować świetlicę **grupą nauki pod nadzorem** (sekcja poniżej); sama siatka nadzoru należy już do modułu. #### Odwzorowanie w module **Obsada personelu** Świetlica przekłada się na siatki dyżurów: - **siatka tygodniowa** przedziałów czasowych, w których uczniowie mogą przebywać w świetlicy, - dla każdego przedziału czasowego jedno lub kilka **zadań** nadzoru (zależnie od przewidywanej liczby uczniów i pożądanego stosunku liczby opiekunów do liczby uczniów), - **przydział** opiekunów (asystentów wychowawczych albo nauczycieli mających rolę **Personel**) do każdego zadania. Zob. [Budowanie siatki dyżurów](#page-staffing.building-grids) oraz [Przydzielanie personelu](#page-staffing.planner). #### Powiązanie z planami lekcji uczniów Gdy uczeń nie ma lekcji w danym przedziale czasowym (jego klasa ma przedmiot do wyboru albo połowa klasy ma laboratorium), jego indywidualny plan lekcji pokazuje po prostu **wolny przedział czasowy**: Omniscol nie wyświetla tam automatycznie lekcji „Świetlica”. Aby nauka pod nadzorem pojawiła się w planie lekcji uczniów, których to dotyczy, proszę utworzyć **kurs nauki pod nadzorem** dla grupy, która nie ma lekcji w tym przedziale czasowym, ze wskazaniem sali do nauki — to schemat grupy `7A-Nauka` opisany w [Półklasy i przedmioty do wyboru w podziale klasy](#page-k12.half-classes-and-options). Pokryciem nadzoru steruje się natomiast po stronie modułu **Obsada personelu** — zob. [Przegląd modułu Obsada personelu](#page-staffing.overview). #### Nauka pod nadzorem a nauka bez nadzoru Przydatne rozróżnienie: - **Nauka pod nadzorem** — opiekun jest obecny, uczniowie pracują w ciszy. Klasyczny przypadek dla modułu **Obsada personelu**. - **Nauka bez nadzoru** (klub uczniowski, przestrzeń do samodzielnej pracy) — brak wyznaczonego opiekuna, po prostu miejsce, w którym uczniowie mogą zaczekać. Moduł **Obsada personelu** nie jest tu potrzebny: proszę odwzorować ją jako osobną salę; **specjalizacja sali** może w razie potrzeby uniemożliwić umieszczanie w niej zwykłych kursów (nie rezerwując przy tym sali dla samej nauki bez nadzoru, która nie ma przedmiotu). Zob. [Specjalizacje sal](#page-core-concepts.classroom-specializations). #### Zobacz także - [Przegląd modułu Obsada personelu](#page-staffing.overview) - [Budowanie siatki dyżurów](#page-staffing.building-grids) - [Przydzielanie personelu](#page-staffing.planner) - [Półklasy i przedmioty do wyboru w podziale klasy](#page-k12.half-classes-and-options) ### 14.4 Klasy łączone *Source: `help/pl/k12/multi-grade-classes.md` · id: k12.multi-grade-classes · Audience: admin · Updated: 2026-06-13* **Klasy łączone** grupują uczniów z kilku poziomów w tej samej sali, pod opieką jednego nauczyciela. To codzienność **małych szkół wiejskich** w szkole podstawowej, czasem także **szkół specjalnych** lub **szkół międzynarodowych** o niewielkiej liczbie uczniów. #### Dlaczego Omniscol obsługuje te przypadki Model Omniscol — który rozdziela klasę (administracyjną) i grupy (podzbiory dydaktyczne) — obsługuje klasy łączone w sposób wbudowany. Ta sama klasa administracyjna `klasa 2-3` może obejmować dwie grupy `klasa 2` i `klasa 3`, czasem ze wspólnym kursem, czasem z kursami rozdzielonymi według poziomu. #### Modelowanie Dwa podejścia, w zależności od charakteru prowadzonych kursów: ##### Podejście A — jedna klasa administracyjna, dwie grupy dydaktyczne - Klasa administracyjna: `klasa 2-3` (do zarządzania uczniami, listy rodziców, sali). - Grupy dydaktyczne: `klasa 2` i `klasa 3`. - **Kursy wspólne** (muzyka, wychowanie fizyczne, godzina wychowawcza) przypisuje się całej klasie `klasa 2-3`. - **Kursy rozdzielone** (czytanie i matematyka na poziomie każdej grupy) korzystają z grup `klasa 2` i `klasa 3`, zadeklarowanych jako **podział klasy**, aby odbywały się jednocześnie (jeden nauczyciel uczy jedną grupę, podczas gdy druga pracuje samodzielnie). ##### Podejście B — dwie klasy administracyjne, jeden nauczyciel - Osobne klasy administracyjne: `klasa 2` i `klasa 3`. - Ten jeden nauczyciel jest przypisany do kursów obu klas. - Ponieważ nauczyciel nie może prowadzić dwóch lekcji w tym samym czasie, Omniscol zgłasza konflikt, gdy jego lekcje w klasie 2 i w klasie 3 zostaną umieszczone w tym samym przedziale czasowym. Podejście B jest rzadsze, ponieważ komplikuje zarządzanie administracyjne (dwie odrębne klasy dla tego, co w praktyce jest jedną grupą uczniów) i nie daje mechanizmu tak bezpośredniego jak podział klasy do organizowania przechodzenia od jednego poziomu do drugiego. #### Trzy poziomy i więcej Mechanizm rozciąga się na trzy poziomy lub więcej (przypadek bardzo małych szkół: od klasy 1 do klasy 5 w tej samej sali). Omniscol nie narzuca limitu liczbowego — złożoność wynika z organizacji dydaktycznej, nie z modelowania. #### Świetlica i nauka pod nadzorem Kiedy ten jeden nauczyciel zajmuje się jednym poziomem, drugi poziom pracuje samodzielnie w tej samej sali. Nie ma potrzeby modelowania tego jako świetlicy — jest to nieodłączna część funkcjonowania klasy łączonej i nie stanowi odrębnego zadania nadzoru. #### Instrukcja — Modelowanie klasy łączonej 2-3 1. **Typowy przypadek szkoły wiejskiej**: `klasa 2-3` z jednym nauczycielem, który pracuje kolejno z jednym i z drugim poziomem. Podejście A (zalecane): jedna klasa administracyjna, dwie grupy dydaktyczne. 2. **Proszę utworzyć klasę administracyjną** `klasa 2-3` w **Klasy**. To do niej należą lista uczniów, rodzice, sala, komunikacja. Poziom: proszę przypisać najbardziej reprezentatywny poziom albo utworzyć dedykowany poziom `Klasy łączone w szkole podstawowej`. 3. **Proszę utworzyć dwie grupy dydaktyczne** `klasa 2` i `klasa 3` w obrębie klasy. Proszę przypisać uczniów do odpowiedniej grupy. Obie grupy razem = cała klasa. 4. **Proszę zadeklarować grupy jako podział klasy** `(klasa 2, klasa 3)`: podział **pozwala** na ich **jednoczesne** umieszczenie (znosi konflikt, który w przeciwnym razie by tego zabronił), a algorytm generowania **stara się** umieścić kursy klasy 2 i klasy 3 w tych samych przedziałach czasowych. Salę i nauczyciela przypisuje się nadal kurs po kursie. Zob. [Podziały klasy](#page-core-concepts.class-divisions). 5. **Kursy wspólne** (muzyka, wychowanie fizyczne, godzina wychowawcza): proszę przypisać je całej klasie `klasa 2-3`. Wszyscy uczniowie uczestniczą w nich razem. 6. **Kursy rozdzielone według poziomu** (czytanie, matematyka): proszę utworzyć po jednym kursie na grupę `klasa 2` i `klasa 3`, w tym samym przedziale czasowym (tak wymaga podział klasy). Proszę przypisać nauczyciela do kursu, który prowadzi, a drugi kurs pozostawić bez nauczyciela (praca samodzielna): ten sam nauczyciel przypisany do dwóch jednoczesnych lekcji wywołałby konflikt. Nie ma potrzeby modelowania świetlicy; praca samodzielna jest nieodłączna od funkcjonowania klasy łączonej. 7. **W bardzo małych szkołach** (od klasy 1 do klasy 5 w tej samej sali) mechanizm rozciąga się bez ograniczeń. Tworzy się tyle grup, ile jest poziomów, zadeklarowanych jako podział klasy. Złożoność wynika z organizacji dydaktycznej, nie z modelowania w Omniscolu. #### Zobacz także - [Klasa, grupa, podgrupa](#page-core-concepts.classes-and-groups) - [Podziały klasy](#page-core-concepts.class-divisions) - [Półklasy i przedmioty do wyboru w podziale klasy](#page-k12.half-classes-and-options) --- ## 15. Scenariusze zastosowań ### 15.1 Scenariusze zastosowań — przegląd *Source: `help/pl/use-cases/overview.md` · id: use-cases.overview · Updated: 2026-10-03* Ta sekcja odpowiada na powtarzającą się prośbę dużych placówek: **listę scenariuszy operacyjnych** w formacie *user story*, wraz z konkretnym wyjaśnieniem, „jak to się robi w Omniscol”. Każdy dostępny scenariusz odsyła do istniejącej strony referencyjnej lub przewodnika krok po kroku; scenariusze będące jeszcze w analizie są śledzone osobno i nie znajdują się na tej liście. Scenariusze pochodzą z rzeczywistych uwag klientów i potencjalnych klientów (szkoły biznesu, szkoły inżynierskie, uniwersytety, kształcenie ustawiczne), zostały zanonimizowane i sformułowane w sposób ogólny. #### Format Każdy scenariusz ma klasyczny format Agile: > **Jako** *(rola użytkownika)* > **chcę** *(działanie)* > **aby** *(cel biznesowy)* Po nim następuje **rozwiązanie w Omniscol**: krótki tekst, odnośnik do szczegółowej strony referencyjnej oraz interaktywny przewodnik tylko wtedy, gdy istnieje już sprawdzony przewodnik krok po kroku. #### Statusy Każdy scenariusz ma status wdrożenia: | Status | Znaczenie | | --- | --- | | ✓ **Dostępne** | Funkcja działa na produkcji, jest przetestowana i zatwierdzona. | | ◐ **Częściowe** | Pokrycie niepełne; istnieje obejście albo funkcja dotyczy tylko niektórych trybów. | | — **Poza zakresem** | Obsługiwane przez inne narzędzie ekosystemu lub wykraczające poza zakres funkcjonalny Omniscol. | #### Spis tematyczny - [Tworzenie i generowanie planu lekcji](#page-use-cases.creation-and-generation) - [Codzienne umieszczanie i modyfikowanie lekcji](#page-use-cases.placement-and-modification) - [Wiele grup, sal i nauczycieli](#page-use-cases.multi-entities) - [Operacje masowe](#page-use-cases.mass-operations) - [Egzaminy i wydarzenia](#page-use-cases.exams-and-events) - [Nieobecności i zastępstwa (scenariusze)](#page-use-cases.absences-and-substitutions) - [Raporty i statystyki](#page-use-cases.reporting-and-stats) - [Udostępnianie i rozpowszechnianie](#page-use-cases.diffusion-and-sharing) #### Przewodniki i filmy Gdy scenariusz zawiera zatwierdzony przewodnik krok po kroku, ta sama treść może zasilać kilka powierzchni: - **dymki w panelu pomocy** (tryb interaktywny, użytkownik przechodzi krok po kroku), - **napisy wbudowane w film** (tryb pasywny, odtwarzanie liniowe), - powiązany **plik WebVTT**, jeśli powstaje film. Napisy są zsynchronizowane z przebiegiem kroków: jedno źródło tworzy wszystkie trzy formaty. Scenariusz bez zweryfikowanych kroków pozostaje zwykłą stroną referencyjną, bez przewodnika krok po kroku ani powiązanego filmu. #### Jak czytać scenariusz Typowa strona scenariusza zawiera: ```markdown ## Krótka nazwa scenariusza > **Jako** **, **chcę** **, **aby** > **. **Status**: ✓ Dostępne **Rozwiązanie w Omniscol.** Tekst wyjaśniający, krótki, operacyjny. [Odnośnik do szczegółowej strony referencyjnej](id:timetables.publication) `` ``` Scenariusze o statusie ✓ lub ◐ są **do wykorzystania już dziś**. #### Zobacz także - [FAQ — przypadki użycia w szkolnictwie wyższym](#page-faq.higher-ed-cases) - [FAQ — Przypadki szczególne i konfiguracje zaawansowane](#page-faq.edge-cases) - [Specyfika szkolnictwa wyższego — przegląd](#page-higher-ed.overview) ### 15.2 Scenariusze — Tworzenie i generowanie planu lekcji *Source: `help/pl/use-cases/creation-and-generation.md` · id: use-cases.creation-and-generation · Updated: 2026-06-13* Pierwsze utworzenie, automatyczne generowanie, piaskownica i duplikowanie planów lekcji na potrzeby testów i porównań. Informacje o formacie scenariuszy i legendę statusów zawiera [Scenariusze — przegląd](#page-use-cases.overview). #### Uruchomienie automatycznego generowania planu lekcji > **Jako** planista **chcę** uruchomić automatyczne generowanie planu lekcji, **aby** szybko uzyskać pierwszą, nadającą się do dalszej pracy wersję. **Status**: ✓ Dostępne **Rozwiązanie w Omniscol.** Automatyczne generowanie jest dostępne dla wszystkich trzech typów planu lekcji — tygodniowego, cyklicznego i kalendarzowego. Generowanie umieszcza lekcje, które zostały utworzone, ale nie mają jeszcze pozycji, i może zmienić pozycję lekcji już umieszczonych, jeśli poprawi to wynik — z wyjątkiem lekcji zablokowanych. Jeśli nie istnieje kompletne rozwiązanie, Omniscol zwraca najlepszy obliczony plan lekcji, a pozostałe lekcje zostawia na liście nieumieszczonych karteczek. [Automatyczne generowanie](#page-timetables.generation) #### Ponowne generowanie po zmianie ograniczeń > **Jako** planista **chcę** ponownie uruchomić generowanie po zmianie ograniczeń, **aby** sprawdzić różne konfiguracje bez zaczynania od początku. **Status**: ✓ Dostępne **Rozwiązanie w Omniscol.** Proszę zmienić dostępność, ograniczenia lub blokady, a następnie ponownie uruchomić generowanie z tego samego ekranu. Zablokowane lekcje zachowują swoją pozycję; pozostałe mogą zmienić pozycję, jeśli poprawi to wynik. Aby porównać kilka konfiguracji, proszę pracować na kopiach planu lekcji („Praca na kopii (piaskownica) planu”). [Diagnozowanie nieudanego generowania](#page-timetables.diagnosing-generation) #### Praca na kopii (piaskownica) planu > **Jako** planista **chcę** pracować na kopii (piaskownicy) planu, **aby** wykonywać próby bez wpływu na wersję oficjalną. **Status**: ✓ Dostępne **Rozwiązanie w Omniscol.** Proszę zduplikować plan lekcji w module **Zarządzanie planami lekcji** i pracować na kopii: dopóki nie zostanie opublikowana, wersją oficjalną pozostaje ta, którą widzą użytkownicy. Kopię proszę opublikować, gdy będzie gotowa. [Podgląd, duplikowanie, reorganizacja](#page-timetables.visualize-duplicate), [Publikacja planu lekcji](#page-timetables.publication) #### Zobacz także - [Scenariusze — przegląd](#page-use-cases.overview) - [Przegląd modułu Zarządzanie planami lekcji](#page-timetables.overview) - [Automatyczne generowanie](#page-timetables.generation) - [Algorytm generowania](#page-glossary.solver) ### 15.3 Scenariusze — Codzienne umieszczanie i modyfikowanie lekcji *Source: `help/pl/use-cases/placement-and-modification.md` · id: use-cases.placement-and-modification · Updated: 2026-06-13* Wyszukiwanie dostępnych sal i nauczycieli, umieszczanie i modyfikowanie lekcji, wykrywanie konfliktów i pominięć. Format odczytu i legendę statusów opisuje [Scenariusze — przegląd](#page-use-cases.overview). #### Znaleźć dostępną salę odpowiednią dla kursu (pojemność, typ, lokalizacja) i ją przypisać > **Jako** planista, **chcę** znaleźć dostępną salę odpowiednią dla kursu (pojemność, typ, lokalizacja) i przypisać ją do lekcji, **aby** szybko umieścić lekcję bez konfliktów. **Status**: ✓ Dostępne **Rozwiązanie w Omniscol.** Selektor sal przyjmuje wyszukiwanie tekstowe oraz filtry pojemności (`>20`, `<=50`, `=30`, `20-30`). Kilka kryteriów oddzielonych spacją jest traktowanych jak logiczne ORAZ; kilka wartości oddzielonych przecinkiem jak logiczne LUB. To samo wyszukiwanie przyjmuje „ok” (zamiast „ko”), aby zachować tylko sale wolne w danym przedziale czasowym. #### Znaleźć dostępnego nauczyciela uczącego danego przedmiotu > **Jako** planista, **chcę** znaleźć dostępnego nauczyciela uczącego danego przedmiotu, **aby** łatwo zastąpić lub uzupełnić przydział. **Status**: ✓ Dostępne **Rozwiązanie w Omniscol.** Przy wyborze nauczyciela uwzględniany jest nauczany przedmiot oraz jego dostępność. W zależności od ekranu zastąpienie odbywa się bezpośrednio z poziomu lekcji albo z listy kursów. #### Określić wolne przedziały czasowe dla klasy lub grupy > **Jako** planista, **chcę** określić wolne przedziały czasowe dla klasy lub grupy, **aby** sprawnie umieszczać lekcje ręcznie. **Status**: ◐ Częściowe **Rozwiązanie w Omniscol.** Proszę nałożyć na siebie plany lekcji klasy lub grupy w widokach przeglądania wielu jednostek, aby wskazać wolne przedziały czasowe (zob. „Przeglądać plany lekcji”). #### Szybko zmodyfikować lekcję (sala, nauczyciel, godzina) > **Jako** planista, **chcę** szybko zmodyfikować lekcję (sala, nauczyciel, godzina), **aby** na bieżąco dostosowywać plan. **Status**: ✓ Dostępne **Rozwiązanie w Omniscol.** Proszę otworzyć lekcję, aby zmienić salę, nauczyciela lub godzinę w oknie modyfikacji, albo przesunąć ją przyciskiem pinezki [thumbtack] (kliknięcie kolorowego przedziału czasowego) w widoku planu. **Zaznaczenie wielokrotne** (Shift+kliknięcie na kilku lekcjach) otwiera to samo okno w trybie grupowym: można zmienić pozycję, odblokować lub usunąć wszystkie wybrane lekcje jedną operacją. [Doraźne modyfikacje](#page-schedules.ad-hoc-changes) #### Wykryć lekcje bez nauczyciela lub bez sali > **Jako** planista, **chcę** wykryć lekcje bez nauczyciela lub bez sali, **aby** natychmiast poprawić krytyczne pominięcia. **Status**: ✓ Dostępne **Rozwiązanie w Omniscol.** Diagnostyka planu lekcji wprost wymienia lekcje umieszczone bez sali oraz lekcje bez nauczyciela; widoki planu również je sygnalizują. [Konflikty i diagnostyka](#page-timetables.conflicts) #### Otrzymywać alerty o niespójnościach (brak sali, brak nauczyciela, konflikt) > **Jako** planista, **chcę** otrzymywać alerty o niespójnościach (brak sali, brak nauczyciela, konflikt), **aby** zadbać o jakość planu. **Status**: ◐ Częściowe **Rozwiązanie w Omniscol.** Niespójności są sygnalizowane w diagnostyce i w widokach planu: lekcja bez sali, bez nauczyciela, konflikty sal, klas lub nauczycieli. Panel diagnostyczny można **dokładnie filtrować** — według wagi, typu alertu, jednostki (klasa, nauczyciel, sala), poziomu, lokalizacji lub kampusu oraz zakresu dat w trybie kalendarzowym (funkcja Premium; zob. [Konflikty i diagnostyka](#page-timetables.conflicts)). **Obejście (bez Premium).** Proszę skorzystać z chronologicznej listy alertów i dostępnych filtrów przeglądania, aby wyodrębnić dotknięte lekcje. Proszę poprawić konflikty blokujące przed udostępnieniem planu lub przed odesłaniem danych do systemu zewnętrznego. #### Szybko zobaczyć pozostałe konflikty > **Jako** planista, **chcę** szybko zobaczyć pozostałe konflikty, **aby** sfinalizować wiarygodny plan przed udostępnieniem. **Status**: ✓ Dostępne **Rozwiązanie w Omniscol.** Diagnostyka planu lekcji i widoki planu sygnalizują pozostałe konflikty. Proszę w pierwszej kolejności zająć się konfliktami blokującymi przed opublikowaniem. [Konflikty i diagnostyka](#page-timetables.conflicts) #### Zbierać dostępność i preferencje prowadzących > **Jako** planista, **chcę** zbierać dostępność i preferencje prowadzących. **Status**: ✓ Dostępne **Rozwiązanie w Omniscol.** Nauczyciele wprowadzają swoją dostępność i niedostępność w swojej przestrzeni; planista może też wprowadzić ją za nich. Ta dostępność jest widoczna podczas ręcznego umieszczania lekcji i uwzględniana przez automatyczne generowanie. [Dostępność nauczycieli](#page-core-concepts.wishes-and-availability) #### Zarządzać przedziałami czasowymi / siatkami godzin / zajęciami poza siatką > **Jako** planista, **chcę** zarządzać przedziałami czasowymi / siatkami godzin / zajęciami poza siatką. **Status**: ✓ Dostępne **Rozwiązanie w Omniscol.** Siatki godzin definiują, lokalizacja po lokalizacji, przedziały czasowe otwarte na umieszczanie lekcji, wraz z przerwami. > _Premium_ [lekcje poza siatką](#page-timetables.off-grid-lessons) obejmują lekcje, które nie odpowiadają żadnemu przedziałowi czasowemu siatki. [Siatka godzin, przedziały czasowe i czasy trwania](#page-core-concepts.timetable-grid) #### Zarządzać przerwami / zajęciami poza siatką > **Jako** planista, **chcę** zarządzać przerwami / zajęciami poza siatką. **Status**: ✓ Dostępne **Rozwiązanie w Omniscol.** Zob. „Zarządzać przedziałami czasowymi / siatkami godzin / zajęciami poza siatką”: przerwy definiuje się w siatce godzin każdej lokalizacji, a zajęcia poza siatką obejmują lekcje poza przedziałami czasowymi. #### Przeglądać plany lekcji (zaznaczenie wielokrotne, widoki własne, nakładanie) > **Jako** planista, **chcę** przeglądać plany lekcji (zaznaczenie wielokrotne, widoki własne, nakładanie, widoczność, eksport). **Status**: ✓ Dostępne **Rozwiązanie w Omniscol.** Widoki przeglądania obejmują widok tygodnia, dnia, miesiąca, listy, widok naprzeciw siebie oraz kilka trybów porównania. Przeglądanie wielu jednostek pozwala wyświetlić kilka planów lekcji obok siebie, w kolumnach lub w siatce, zależnie od kontekstu. Niedostępne w obecnym interfejsie: rozbudowana podpowiedź z kodem przedmiotu, automatyczne ukrywanie tygodni bez zajęć, jeden widok scalony bez kolumny wyróżniającej. #### Wyświetlać tylko dostępne sale > **Jako** planista, **chcę** wyświetlać tylko dostępne sale, **aby** zaoszczędzić czas przy przydzielaniu sal. **Status**: ✓ Dostępne **Rozwiązanie w Omniscol.** Proszę użyć filtra dostępności w selektorze sal, aby ukryć sale już zajęte w danym przedziale czasowym (zob. też „Znaleźć dostępną salę odpowiednią dla kursu”). #### Zobacz także - [Scenariusze — przegląd](#page-use-cases.overview) - [Przeglądanie i filtrowanie](#page-schedules.consult-and-filter) - [Doraźne modyfikacje](#page-schedules.ad-hoc-changes) - [Konflikty i diagnostyka](#page-timetables.conflicts) ### 15.4 Scenariusze — Wiele grup, wiele sal, wielu nauczycieli *Source: `help/pl/use-cases/multi-entities.md` · id: use-cases.multi-entities · Updated: 2026-06-13* Łączenie zajęć dla kilku grup, w kilku salach, z udziałem kilku nauczycieli: współprowadzenie, wyrównania, grupy grup. Sposób czytania scenariuszy i legendę statusów opisano w [Scenariusze — przegląd](#page-use-cases.overview). #### Łączenie kursów (1 kurs dla 2 grup w tym samym terminie i w tej samej sali) > **Jako** planista **chcę** łączyć kursy (1 kurs dla 2 grup w tym samym terminie i w tej samej sali). **Status**: ✓ Dostępne **Rozwiązanie w Omniscol.** Proszę odwzorować łączenie za pomocą [wyrównania grup](#page-core-concepts.alignments) lub [grupy grup](#page-core-concepts.groups-of-groups): wspólna lekcja gromadzi grupy w tym samym przedziale czasowym, w tej samej sali, z tym samym nauczycielem. #### Umieszczenie lekcji z kilkoma nauczycielami (współprowadzenie) > **Jako** planista **chcę** umieścić lekcję z kilkoma nauczycielami (współprowadzenie). **Status**: ✓ Dostępne **Rozwiązanie w Omniscol.** Lekcja może mieć kilku nauczycieli: proszę dodać pozostałych nauczycieli w polu wyboru nauczyciela **Przypisz nauczycieli** w karcie lekcji. [Współnauczanie](#page-higher-ed.co-teaching) #### Umieszczenie lekcji w kilku salach > **Jako** planista **chcę** umieścić lekcję w kilku salach. **Status**: ✓ Dostępne **Rozwiązanie w Omniscol.** Proszę przypisać kilka sal do tej samej lekcji w polu wyboru sali **Przypisz salę**. [Egzaminy w wielu salach](#page-higher-ed.multi-room-exams) #### Umieszczenie lekcji z kilkoma grupami > **Jako** planista **chcę** umieścić lekcję z kilkoma grupami. **Status**: ✓ Dostępne **Rozwiązanie w Omniscol.** Można **bezpośrednio powiązać kilka grup** — z jednej klasy lub z różnych klas — z jedną lekcją. Przy trwałych lub cyklicznych połączeniach lepiej uporządkować je za pomocą [grupy grup](#page-core-concepts.groups-of-groups) albo [wyrównania grup](#page-core-concepts.alignments), zależnie od przypadku. #### Masowe umieszczanie kursów według grup > **Jako** planista **chcę** masowo umieszczać kursy według grup, **aby** przypisywać grupy hurtowo, jednym kliknięciem. **Status**: ✓ Dostępne **Rozwiązanie w Omniscol.** Umieszczanie masowe umożliwiają dwa sposoby. - **Zaznaczenie wielu lekcji, a następnie pinezka.** Proszę zaznaczyć kilka lekcji naraz — za pomocą **Shift+klik** lub menu **Rozszerz zaznaczenie** (według dnia, tygodnia, miesiąca, dnia tygodnia, przedmiotu lub podziału grup). **Pinezka** pokazuje wtedy przedziały czasowe zgodne z całym zaznaczeniem: jedno kliknięcie umieszcza wszystkie lekcje razem w tym samym przedziale. - **Automatyczne generowanie.** Aby umieścić od razu wszystkie lekcje na siatce, proszę zlecić ich rozmieszczenie generowaniu, które uwzględni ograniczenia (zob. [Automatyczne generowanie](#page-timetables.generation)). Aby połączyć kilka grup w jednej lekcji, proszę zajrzeć do sekcji „Umieszczenie lekcji z kilkoma grupami” powyżej; do śledzenia umieszczonych godzin przydatny jest [podział godzin](#page-timetables.hour-distribution). #### Zobacz także - [Scenariusze — przegląd](#page-use-cases.overview) - [Wiele sal](#page-glossary.multi-room) - [Współnauczanie](#page-glossary.co-teaching) - [Podziały klasy](#page-core-concepts.class-divisions) - [Wyrównania grup](#page-core-concepts.alignments) - [Grupy grup](#page-core-concepts.groups-of-groups) ### 15.5 Scenariusze — Operacje masowe *Source: `help/pl/use-cases/mass-operations.md` · id: use-cases.mass-operations · Updated: 2026-06-28* Masowe przydzielanie, zaawansowane filtry i automatyzacje do szybkiego zarządzania salami, pojemnością i programami. Format odczytu i legendę statusów opisuje [Scenariusze — przegląd](#page-use-cases.overview). #### Masowo przydzielić tylko sale jeszcze nieprzypisane > **Jako** planista, **chcę** masowo przydzielić tylko sale jeszcze nieprzypisane. **Status**: ✓ Dostępne **Rozwiązanie w Omniscol.** W widoku listy na ekranie **Zarządzanie planami lekcji** proszę posortować lub przefiltrować kolumny, aby wyodrębnić lekcje **oczekujące na salę**, zaznaczyć je, a następnie uruchomić automatyczny przydział sal dla zaznaczenia. Automatyczne generowanie oferuje też tryb ograniczony do sal: uruchomione z pominięciem sal już przypisanych, uzupełnia wyłącznie lekcje, które ich nie mają, bez ponownego wyznaczania pozycji lekcji. [Automatyczne przydzielanie sal](#page-timetables.auto-room-assignment) #### Masowo przydzielić wszystkie sale powyżej 115 miejsc na wydarzenia > **Jako** planista, **chcę** masowo przydzielić wszystkie sale powyżej 115 miejsc na wydarzenia, **aby** zoptymalizować zarządzanie salami. **Status**: ✓ Dostępne **Rozwiązanie w Omniscol.** Duże sale można znaleźć w statystykach sal, gdzie wyszukiwanie przyjmuje operatory porównania pojemności (na przykład `>115`). Następnie proszę zaznaczyć odpowiednie lekcje w widoku listy na ekranie **Zarządzanie planami lekcji** i uruchomić automatyczny przydział sal: w selektorze sal kandydujących proszę zaznaczyć tylko wybrane sale — pojemność każdej z nich jest wyświetlana, co ułatwia wybór. #### Ograniczyć przydział sal do budynku lub piętra > **Jako** planista, **chcę** ograniczyć masowy przydział sal do wybranego budynku lub piętra, **aby** skupić zajęcia w jednym miejscu i ograniczyć przemieszczanie się. **Status**: ✓ Dostępne **Rozwiązanie w Omniscol.** W automatycznym przydziale selektor sal kandydujących grupuje sale według **lokalizacji**, a następnie według **budynku**: proszę zaznaczyć całą lokalizację lub cały budynek, aby dopuścić tylko ich sale, a algorytm wybierze spośród nich. Zob. [Automatyczne przydzielanie sal](#page-timetables.auto-room-assignment). #### Ponownie przydzielić sale według rzeczywistej liczebności > **Jako** planista, **chcę** masowo ponownie przydzielić sale według rzeczywistej liczebności (przedmioty do wyboru, języki, grupy), **aby** dopasować wielkość sal do liczby zapisanych uczniów. **Status**: ✓ Dostępne **Rozwiązanie w Omniscol.** Proszę wyodrębnić odpowiednie lekcje w widoku listy (sortowanie i filtry w kolumnach), a następnie uruchomić automatyczny przydział: algorytm porównuje **pojemność** każdej sali z **liczebnością** uczestników lekcji i wybiera najmniejszą salę, która się nadaje. Zob. [Automatyczne przydzielanie sal](#page-timetables.auto-room-assignment). #### Zobacz także - [Scenariusze — przegląd](#page-use-cases.overview) - [Automatyczne przydzielanie sal](#page-timetables.auto-room-assignment) - [Statystyki sal](#page-dashboard.classrooms) - [Podział godzin i tworzenie lekcji](#page-timetables.hour-distribution) - [Doraźne modyfikacje](#page-schedules.ad-hoc-changes) ### 15.6 Scenariusze — Egzaminy i wydarzenia *Source: `help/pl/use-cases/exams-and-events.md` · id: use-cases.exams-and-events · Updated: 2026-06-13* Tworzenie szczególnych lekcji: egzaminów (stacjonarnych lub zdalnych, w nietypowych konfiguracjach), konkursów i prac konserwacyjnych. Sposób czytania scenariuszy i legendę statusów opisano w [Scenariusze — przegląd](#page-use-cases.overview). #### Utworzenie wydarzenia (konkurs) > **Jako** planista **chcę** utworzyć wydarzenie (konkurs), **aby** zarezerwować sale i mieć dostęp do statystyk. **Status**: ✓ Dostępne **Rozwiązanie w Omniscol.** Proszę utworzyć [wydarzenie jednorazowe](#page-schedules.events) z datą, salami, uczestnikami i zasobami: jednoczesne zajęcie sali, klasy lub nauczyciela jest zgłaszane jako konflikt, o ile wydarzenie angażuje danych uczestników. Wydarzenia jednorazowe są dostępne w kontach **Premium**. #### Utworzenie lekcji egzaminacyjnej o szczególnej konfiguracji (co drugie miejsce, dodatkowy czas dla uprawnionych uczniów itp.) > **Jako** planista **chcę** utworzyć lekcję egzaminacyjną o szczególnej konfiguracji (co drugie miejsce, dodatkowy czas dla uprawnionych uczniów itp.), **aby** zarezerwować sale i mieć dostęp do statystyk. **Status**: ✓ Dostępne **Rozwiązanie w Omniscol.** Proszę utworzyć odrębną lekcję lub wydarzenie z salami i czasem trwania dopasowanymi do konfiguracji egzaminu. [Egzaminy w wielu salach](#page-higher-ed.multi-room-exams) #### Utworzenie wydarzenia (konserwacja) > **Jako** planista **chcę** utworzyć wydarzenie (konserwacja), **aby** zarezerwować sale i mieć dostęp do statystyk. **Status**: ✓ Dostępne **Rozwiązanie w Omniscol.** Proszę utworzyć [wydarzenie](#page-schedules.events) w odpowiednim przedziale czasowym i dodać do niego salę lub zasób do wyłączenia z użytku: w tym przedziale czasowym są one zajęte i nie figurują wśród dostępnych. #### Utworzenie egzaminu (zdalnego lub stacjonarnego, 1 h 30 min, 3 h i inne, do wyboru lub z kursu obowiązkowego) > **Jako** planista **chcę** utworzyć egzamin (zdalny lub stacjonarny, 1 h 30 min, 3 h i inne, do wyboru lub z kursu obowiązkowego), **aby** zaplanować egzaminy. **Status**: ✓ Dostępne **Rozwiązanie w Omniscol.** Egzamin tworzy się jako lekcję typu **egzamin** (zob. [Typy lekcji](#page-admin.lesson-types)): z dowolnym czasem trwania (1 h 30 min, 3 h…), stacjonarną lub zdalną zależnie od jej [formy](#page-glossary.lesson-modality), w jednej lub [wielu salach](#page-glossary.multi-room). Egzamin do wyboru modeluje się za pomocą [grupy](#page-glossary.group), a nie całej klasy. #### Zobacz także - [Scenariusze — przegląd](#page-use-cases.overview) - [Wydarzenia jednorazowe](#page-schedules.events) - [Lekcje poza siatką](#page-timetables.off-grid-lessons) ### 15.7 Scenariusze — Nieobecności i zastępstwa *Source: `help/pl/use-cases/absences-and-substitutions.md` · id: use-cases.absences-and-substitutions · Updated: 2026-06-13* Zgłaszanie nieobecności i organizowanie zastępstw za nauczycieli, zarówno na krótki, jak i na długi okres. Informacje o formacie scenariuszy i legendę statusów zawiera [Scenariusze — przegląd](#page-use-cases.overview). #### Zgłoszenie nieobecności nauczyciela > **Jako** sekretariat szkoły, **chcę** zgłosić nieobecność nauczyciela, **aby** oznaczyć dotknięte nią lekcje i zorganizować potrzebne zastępstwa. **Status**: ✓ Dostępne **Rozwiązanie w Omniscol.** Proszę zgłosić nieobecność w module **Zarządzanie nieobecnościami** (nauczyciel może też zgłosić ją samodzielnie, a zgłoszenie podlega zatwierdzeniu). Omniscol wskazuje dotknięte lekcje i umożliwia zorganizowanie zastępstw. [Zgłaszanie nieobecności](#page-absences.declaring) #### Zastąpienie nauczyciela innym nauczycielem w danym okresie > **Jako** sekretariat szkoły, **chcę** zastąpić nauczyciela innym nauczycielem w danym okresie, **aby** obsłużyć zmiany o charakterze trwałym (choroba, odejście z pracy itp.). **Status**: ✓ Dostępne **Rozwiązanie w Omniscol.** Proszę zgłosić nieobecność wielodniową z datą początkową i końcową: Omniscol wyznacza dotknięte lekcje, które można pozostawić bez zastępstwa, objąć zasadami zastępstw albo dostosować za pomocą pojedynczych zastępstw. [Nieobecności wielodniowe](#page-absences.multi-day), [Zasady zastępstw](#page-absences.substitution-policies) #### Zobacz także - [Scenariusze — przegląd](#page-use-cases.overview) - [Przegląd modułu Zarządzanie nieobecnościami](#page-absences.overview) - [Zgłaszanie nieobecności](#page-absences.declaring) - [Zasady zastępstw](#page-absences.substitution-policies) ### 15.8 Scenariusze — Raporty i statystyki *Source: `help/pl/use-cases/reporting-and-stats.md` · id: use-cases.reporting-and-stats · Updated: 2026-06-13* Statystyki obłożenia, kontrola obciążenia nauczycieli, proporcje zajęć zdalnych i stacjonarnych, wymiar godzin według grup i przedmiotów. Format odczytu i legendę statusów opisuje [Scenariusze — przegląd](#page-use-cases.overview). #### Wizualizacja napięć w obłożeniu sal > **Jako** planista, **chcę** wizualizować napięcia w obłożeniu sal, **aby** przewidywać punkty przeciążenia. **Status**: ✓ Dostępne **Rozwiązanie w Omniscol.** **Statystyki sal** w module **Panel zarządczy** (patrz [Statystyki sal](#page-dashboard.classrooms)) podają wskaźniki obłożenia według sali i okresu; moduł **Plany lekcji** pokazuje natomiast plan obłożenia każdej sali (zajęte przedziały czasowe). #### Sprawdzenie liczby godzin prowadzonych przez nauczyciela > **Jako** kierownik ds. nauczania, **chcę** sprawdzić liczbę godzin prowadzonych przez nauczyciela, **aby** kontrolować obciążenie i zgodność z przepisami. **Status**: ◐ Częściowe **Rozwiązanie w Omniscol.** Podczas edycji planu lekcji w module **Zarządzanie planami lekcji** suma godzin nauczyciela wyświetla się i aktualizuje na bieżąco; **Panel zarządczy** podaje łączną liczbę godzin w danym okresie. **Obejście.** Aby sprawdzić konkretny semestr, proszę wybrać odpowiedni zakres dat w **Panel zarządczy**: łączna liczba godzin przelicza się dla wybranego okresu, bez ręcznego odejmowania. #### Pobieranie statystyk aktywności (godziny, obłożenie, podział) > **Jako** osoba odpowiedzialna za jakość, **chcę** pobierać statystyki aktywności (godziny, obłożenie, podział), **aby** spełnić wymagania audytu jakości lub certyfikacji. **Status**: ◐ Częściowe **Rozwiązanie w Omniscol.** Eksporty z **Panel zarządczy** oraz z widoków planu udostępniają dostępne dane o wymiarze godzin. Same w sobie nie stanowią kompletnego raportu certyfikacyjnego: ramy merytoryczne i dokumentacyjne pozostają po stronie szkoły. > _Country: FR_ We Francji te eksporty zasilają w szczególności monitorowanie **Qualiopi**. #### Analiza obłożenia sal i zasobów > **Jako** dyrektor, **chcę** analizować obłożenie sal i zasobów, **aby** optymalizować wykorzystanie infrastruktury. **Status**: ✓ Dostępne **Rozwiązanie w Omniscol.** **Panel zarządczy** podaje obłożenie sal i zasobów; eksporty obejmują te same dane. #### Wizualizacja proporcji zajęć zdalnych i stacjonarnych według programu/rocznika > **Jako** planista, **chcę** wizualizować proporcję zajęć zdalnych i stacjonarnych według programu/rocznika, **aby** stosować zasady (maks. 20% zajęć zdalnych, min. 20% niepożądanych przedziałów w soboty). **Status**: ◐ Częściowe > _Premium_ **Rozwiązanie w Omniscol.** **Panel zarządczy** pokazuje podziały według **Tryb** dla klas i przedmiotów, gdy lekcje mają przypisaną formę (patrz [Edycja lekcji](#page-timetables.lesson-edit)) — **Stacjonarnie**, **Zdalnie**, **Hybrydowy** lub **Samokształcenie**. Omniscol nie zapewnia automatycznej kontroli przestrzegania progów regulacyjnych (na przykład „maksymalnie 20% zajęć zdalnych”). #### Śledzenie wymiaru godzin zaplanowanych i pozostałych do zaplanowania > **Jako** kierownik ds. nauczania, **chcę** śledzić wymiar godzin zaplanowanych i pozostałych do zaplanowania, **aby** kontrolować spójność z programem nauczania. **Status**: ✓ Dostępne **Rozwiązanie w Omniscol.** Podczas edycji [podział godzin](#page-timetables.hour-distribution) pokazuje na bieżąco, przedmiot po przedmiocie, wymiar już umieszczony i **czas pozostały do umieszczenia**. **Panel zarządczy** zapewnia późniejsze śledzenie według klas, przedmiotów i grup. #### Zobacz także - [Scenariusze — przegląd](#page-use-cases.overview) - [Panel zarządczy](#page-glossary.dashboard) - [Przegląd modułu Panel zarządczy](#page-dashboard.overview) - [Podział godzin i tworzenie lekcji](#page-timetables.hour-distribution) ### 15.9 Scenariusze — Udostępnianie i rozpowszechnianie *Source: `help/pl/use-cases/diffusion-and-sharing.md` · id: use-cases.diffusion-and-sharing · Updated: 2026-06-13* Eksport danych, subskrypcja iCal dla nauczycieli i uczniów, publiczny link tylko do odczytu, rezerwacja zasobów. Informacje o formacie scenariuszy i legendę statusów zawiera [Scenariusze — przegląd](#page-use-cases.overview). #### Eksport danych planów lekcji > **Jako** sekretariat **chcę** wyeksportować dane planów lekcji, **aby** wykorzystać je w innych narzędziach (system ERP, raportowanie itp.). **Status**: ✓ Dostępne **Rozwiązanie w Omniscol.** Widoki planów lekcji i Panel zarządczy oferują eksport; API Omniscol pozwala zautomatyzować pobieranie danych. [Drukowanie i udostępnianie](#page-schedules.print-and-export), [API Omniscol](#page-integrations.api-tokens) #### Wyświetlanie własnego planu lekcji przez bezpieczny link bez logowania > **Jako** nauczyciel **chcę** przeglądać swój plan lekcji przez bezpieczny link internetowy bez logowania, **aby** łatwo mieć dostęp do swoich lekcji. **Status**: ✓ Dostępne **Rozwiązanie w Omniscol.** Link do udostępniania jest podpisany i daje dostęp tylko do odczytu, bez logowania; może mieć datę ważności i pozostaje powiązany z kontem, które go utworzyło (dezaktywacja tego konta lub zmiana jego hasła unieważnia link). [Udostępnianie planu lekcji linkiem publicznym](#page-schedules.share-link) #### Subskrypcja własnego planu lekcji przez kanał iCal > **Jako** nauczyciel lub uczeń **chcę** zasubskrybować swój plan lekcji przez kanał iCal, **aby** automatycznie wyświetlać go w swoim osobistym kalendarzu. **Status**: ✓ Dostępne **Rozwiązanie w Omniscol.** Każdy użytkownik może zasubskrybować swój plan lekcji przez dynamiczny link iCal, zgodny z popularnymi kalendarzami (Kalendarz Google, Outlook, Apple Calendar); kalendarz aktualizuje się w rytmie własnych synchronizacji. [iCal — subskrypcja i dynamiczny link](#page-integrations.ical) #### Eksport planu lekcji nauczyciela lub grupy w formacie Excel > **Jako** sekretariat **chcę** wyeksportować plan lekcji nauczyciela lub grupy w formacie Excel, **aby** udostępnić lub dalej przetwarzać dane. **Status**: ✓ Dostępne **Rozwiązanie w Omniscol.** Zob. [Drukowanie i udostępnianie](#page-schedules.print-and-export). #### Udostępnianie planów lekcji przez kontrolowany link publiczny > **Jako** placówka **chcę** udostępniać plany lekcji przez kontrolowany link publiczny, **aby** w prosty sposób informować nauczycieli i uczniów. **Status**: ✓ Dostępne **Rozwiązanie w Omniscol.** Publiczne linki do udostępniania są podpisane, tylko do odczytu i **mają datę ważności** (domyślnie koniec roku szkolnego lub +90 dni, z możliwością zmiany). Przy udostępnianiu instytucjonalnym proszę powiązać linki z wyznaczonym kontem usługowym, odpowiedzialnym za udostępnianie, zamiast z kontem osobistym. [Publiczne linki udostępniania](#page-portal.share-links) #### Rezerwacja zasobu (sali, nauczyciela, lekcji lub innego) > **Jako** użytkownik **chcę** zarezerwować zasób (salę, nauczyciela, lekcję lub inny), **aby** rezerwować sale i mieć dostęp do statystyk. **Status**: ◐ Częściowe **Rozwiązanie w Omniscol.** Obecnie nie istnieje dedykowany moduł rezerwacji. **Obejście (konta Premium).** Aby zablokować zasób w określonym przedziale czasowym, proszę utworzyć [wydarzenie](#page-schedules.events); aby uczynić go niedostępnym przez cały **okres**, proszę użyć [okna dat](#page-glossary.date-windows). #### Zobacz także - [Scenariusze — przegląd](#page-use-cases.overview) - [iCal — subskrypcja i dynamiczny link](#page-integrations.ical) - [Link udostępniania](#page-glossary.share-link) - [Publiczne linki udostępniania](#page-portal.share-links) - [Drukowanie i udostępnianie](#page-schedules.print-and-export) --- ## 16. FAQ — często zadawane pytania ### 16.1 FAQ — pytania ogólne *Source: `help/pl/faq/general.md` · id: faq.general · Updated: 2026-09-29* Pytania ogólne zadawane najczęściej przez osoby zainteresowane i nowych użytkowników. Bardziej szczegółowe zagadnienia opisują wyspecjalizowane sekcje FAQ: [Tworzenie planu lekcji](#page-faq.timetables), [Import danych](#page-faq.data-import), [Działanie algorytmu generowania](#page-faq.solver-behavior), [Wyświetlanie i UX](#page-faq.display-and-ux), [Bezpieczeństwo i hosting](#page-faq.security-and-hosting), [Cennik i licencje](#page-faq.pricing-and-licenses). #### Jak uzyskać demonstrację? Przycisk Zamów demonstrację, widoczny u góry każdej strony witryny omniscol.com, rezerwuje 30-minutowe spotkanie w formie wideokonferencji z zespołem Omniscol. Demonstracja opiera się na sytuacjach zbliżonych do realiów danej placówki: jej typu, liczby uczniów, organizacji nauczania. Można też napisać do zespołu przez stronę kontaktową, aby przygotować to spotkanie lub zadać pytania wcześniej. Zwykle proponowany jest następnie okres testowy, pozwalający wypróbować Omniscol na własnych danych przy wsparciu zespołu. Zob. [Cennik i licencje](#page-faq.pricing-and-licenses). #### Czy Omniscol obsługuje oceny, sprawy wychowawcze lub komunikację z rodzinami? Omniscol koncentruje się na planie lekcji. Oceny i świadectwa, sprawy wychowawcze, dzienniczek ucznia czy komunikacja z rodzinami pozostają w dziennikach elektronicznych, które Omniscol zasila lekcjami. We Francji École Futée i EdSquare (Educentric), partnerzy Omniscol od kilku lat, w ten sposób automatycznie otrzymują zaplanowane lekcje. Zob. [integrations.partners](#page-integrations.partners). #### Czy Omniscol działa przy ograniczonym dostępie do internetu? Tak, pod warunkiem wystarczającego połączenia w chwili wczytywania i zapisywania danych. Aplikacja internetowa przechowuje w pamięci podręcznej przeglądarki dane już wyświetlone, dzięki czemu samo przeglądanie lepiej znosi krótkie przerwy. Modyfikacje, importy, eksporty i operacje administracyjne wymagają natomiast dostępu do sieci w chwili wykonania działania. #### Jakie przeglądarki są obsługiwane? Zalecany jest Chrome. Firefox, Safari i Edge również działają. Internet Explorer nie jest obsługiwany. #### Czy trzeba instalować program kliencki? Nie. Całość działa w przeglądarce. Nie jest wymagana żadna instalacja lokalna. #### Czy moje dane są objęte kopiami zapasowymi? Tak. Omniscol opiera się na kopiach zapasowych i mechanizmach redundancji opisanych w ramach umownych i w dokumentach dotyczących bezpieczeństwa konta. Zob. [Bezpieczeństwo i hosting](#page-faq.security-and-hosting). Do ręcznych kopii zapasowych dostępny jest **pełny eksport w formacie JSON** z ekranu Import/Eksport. W razie poważnego problemu plik ten można odesłać zespołowi Omniscol w celu ponownego wczytania danych. #### Czy mogę mieć kilka planów lekcji jednocześnie? Tak. Na koncie Core — na rozłącznych zakresach tygodni (na przykład semestr 1 i semestr 2). Na koncie [Premium](#page-overview.plans-and-options) kilka planów lekcji może być publikowanych **jednocześnie** na tych samych tygodniach, z dynamicznym scalaniem widoków — jest to w nim zawarte. Możliwość tę można też włączyć umownie na niektórych kontach Core (przypadek wyjątkowy, z odpowiednio ustalonym zakresem). Zob. [Kilka planów lekcji opublikowanych równolegle](#page-timetables.multiple-active-timetables). #### Ilu administratorów może pracować jednocześnie? Liczba jednoczesnych sesji zależy od umowy i od sposobu korzystania. Przy opcji Współpraca w czasie rzeczywistym administratorzy widzą obecność innych zalogowanych użytkowników (czerwone kółko sygnalizuje ryzyko jednoczesnej modyfikacji). Same widoki nie zawsze odświeżają się automatycznie po zapisie dokonanym przez współpracownika. Zob. [Współpraca między administratorami](#page-core-concepts.collaboration). #### Jak udostępnić plan lekcji osobie, która nie ma konta? Przycisk Udostępnianie na ekranie planu lekcji generuje [link udostępniania](#page-glossary.share-link) tylko do odczytu, z obowiązkową datą wygaśnięcia. Do dynamicznej subskrypcji kalendarza (automatyczna synchronizacja) służy opcja iCal, dostępna przy udostępnianiu. Zob. [iCal — subskrypcja i dynamiczny link](#page-integrations.ical). #### Jakie języki są obsługiwane? Obecnie: francuski, angielski, niemiecki, hiszpański, włoski, portugalski, niderlandzki, polski, rosyjski, chiński uproszczony, arabski, hebrajski, kazachski, wietnamski. Języki pisane od prawej do lewej (arabski, hebrajski) mają dostosowany interfejs (RTL). #### Moja szkoła jest w kraju, którego nie ma na liście. Czy mogę korzystać z Omniscol? Tak. Ustawienia wstępnie wypełnione dla poszczególnych krajów są udogodnieniem, a nie ograniczeniem. W najmniej korzystnym przypadku poziomy klas, siatkę godzin, dni wolne i przedmioty konfiguruje się ręcznie. #### Jak odzyskać moje dane, jeśli zrezygnuję z Omniscol? Pełny eksport JSON z ekranu Import/Eksport. Zawiera wszystkie dane szkoły w formacie nadającym się do dalszego wykorzystania. Właścicielem danych pozostaje szkoła, zgodnie z RODO. #### Jaka jest różnica między modułami **Plany lekcji** i **Zarządzanie planami lekcji**? - Moduł **Zarządzanie planami lekcji** służy do **tworzenia, konfigurowania, generowania i publikowania** planów lekcji. Użycie okazjonalne (przygotowanie roku szkolnego, zmiany strukturalne). - Moduł **Plany lekcji** służy do **przeglądania i doraźnego modyfikowania** opublikowanych planów lekcji. Użycie codzienne. Zob. [Przegląd modułu Zarządzanie planami lekcji](#page-timetables.overview) i [Przeglądanie i filtrowanie](#page-schedules.consult-and-filter). #### Zobacz także - [Tworzenie planu lekcji](#page-faq.timetables) - [Import danych](#page-faq.data-import) - [Działanie algorytmu generowania](#page-faq.solver-behavior) - [Bezpieczeństwo i hosting](#page-faq.security-and-hosting) - [FAQ — przypadki użycia w szkolnictwie wyższym](#page-faq.higher-ed-cases) - [FAQ — Przypadki szczególne i konfiguracje zaawansowane](#page-faq.edge-cases) ### 16.2 FAQ — Tworzenie planu lekcji *Source: `help/pl/faq/timetables.md` · id: faq.timetables · Updated: 2026-07-10* Najczęstsze pytania o tworzenie i konfigurowanie planów lekcji. Szczegóły każdego etapu — zob. [Przegląd modułu Zarządzanie planami lekcji](#page-timetables.overview). #### Jaki typ planu lekcji wybrać: tygodniowy, cykliczny czy kalendarzowy? Wybór zależy od rytmu pracy szkoły: - **Tygodniowy** — lekcje powtarzające się w typowym tygodniu. Odpowiedni dla szkolnictwa podstawowego i średniego. - **Cykliczny** — lekcje powtarzające się w cyklu N dni, innym niż tydzień 5- lub 7-dniowy (typowe dla systemów północnoamerykańskich). - **Kalendarzowy** — lekcje datowane pojedynczo, bez powtarzalności (typowe dla szkolnictwa wyższego i kształcenia ustawicznego). Dostępny na kontach Premium. Generowanie działa we wszystkich typach planów lekcji. Zob. [Wybór właściwego typu planu lekcji](#page-overview.timetable-modes). #### Czy można tworzyć kilka planów lekcji równolegle? Tak. Kilka planów lekcji może współistnieć na tym samym koncie (wersje robocze, warianty, semestry, okresy). Na koncie Core publikacje muszą obejmować rozłączne zakresy tygodni. Na koncie Premium kilka planów lekcji może być publikowanych **jednocześnie** na tych samych tygodniach, z dynamicznym scalaniem — równoważne włączenie umowne pozostaje możliwe na niektórych kontach Core. Zob. [Kilka planów lekcji opublikowanych równolegle](#page-timetables.multiple-active-timetables). #### Jaka jest zalecana kolejność konfigurowania planu lekcji? Kolejność **etapów**: Ogólne, Lokalizacje, Nauczyciele, Klasy (wraz z ich grupami), Wyrównanie grup, Podział godzin, Generowanie, a następnie Publikacja. Siedem pierwszych to zakładki edytora planu lekcji (od lewej do prawej); **publikacja** odbywa się natomiast z ekranu zarządzania planem lekcji. Szczegóły każdego etapu opisuje sekcja „Tworzenie planu lekcji” w spisie treści. #### Dlaczego przycisk generowania pozostaje nieaktywny? Ponieważ diagnostyka z zakładki weryfikacji zgłasza alert blokujący (na czerwono). Najczęstszy na początku budowania planu: nie ma **żadnej lekcji do umieszczenia**. Generowanie umieszcza istniejące lekcje, nie tworzy żadnej — należy je najpierw utworzyć na podstawie liczby godzin, na etapie [Podział godzin i tworzenie lekcji](#page-timetables.hour-distribution). Przy zwykłym alercie blokującym obliczenia można nadal uruchomić z menu opcji przycisku, na własne ryzyko. Przy alercie bezwzględnie blokującym — brak jakiejkolwiek lekcji, brak użytecznej klasy, lokalizacja bez siatki godzin — menu również jest nieaktywne. Szczegółowy opis przypadków zawiera strona [Automatyczne generowanie](#page-timetables.generation). #### Czy generowanie ma swoje granice? Algorytm generowania jest potężny, lecz ściśle respektuje przekazane mu ograniczenia. Jeśli konfiguracja jest strukturalnie niemożliwa (sprzeczna dostępność, zbyt mała pojemność, niespójne wyrównania grup), Omniscol zwraca najlepszy obliczony plan lekcji, pozostawia brakujące lekcje na liście nieumieszczonych karteczek i dostarcza wyraźną diagnostykę. Zob. [Diagnozowanie nieudanego generowania](#page-timetables.diagnosing-generation). #### Ile czasu zajmuje generowanie? Czas zależy od rozmiaru planu lekcji, liczby lekcji i ograniczeń. Każde generowanie uruchamia dedykowane, zrównoleglone środowisko obliczeniowe; sama inicjalizacja zajmuje często około dziesięciu sekund, zanim rozpoczną się właściwe obliczenia. Okno można zamknąć w trakcie obliczeń; po ich zakończeniu wyświetla się powiadomienie. Rzędy wielkości — zob. [Działanie algorytmu generowania](#page-faq.solver-behavior). #### Czy wygenerowany plan lekcji jest publikowany automatycznie? Nie. Publikacja to odrębny etap, który należy wykonać celowo, po weryfikacji. Bez publikacji plan lekcji pozostaje wersją roboczą, piaskownicą: jego lekcje nie zasilają żadnego innego modułu. Zob. [Publikacja planu lekcji](#page-timetables.publication). #### Czy można wrócić do wcześniejszego stanu planu lekcji? Tak, na dwa sposoby: - **Duplikowanie** planu lekcji — każdą zmianę strukturalną można wprowadzić na kopii, a oryginał służy jako punkt odniesienia (dostępne na wszystkich kontach). - **Punkty kopii zapasowych** — przywracalne punkty zapisu całego konta, automatyczne lub ręczne (opcja Snapshots, zgodnie z umową). Zob. [Punkty kopii zapasowych](#page-admin.snapshots). #### Jak obsługiwać tygodnie naprzemienne (A/B)? Funkcję włącza się w [Ustawienia ogólne](#page-admin.parameters), w sekcji **Tygodnie naprzemienne** (litery A/B/C albo cyfry 1/2/3, dowolny rytm na tylu tygodniach, ile potrzeba). Na kursie Dodaj tydzień dodaje zakres dla nowego tygodnia w naprzemienności. Zob. [Lekcje naprzemienne](#page-glossary.alternate-lessons). #### Czy można przesunąć porę obiadu w zależności od poziomu (dwie tury obiadowe)? Tak, i jest to właściwy sposób na **rozładowanie stołówki**. Deklaruje się szeroką, wspólną przerwę obiadową — na przykład **12.00 – 14.00** — z **godzinnym** czasem obiadu do zachowania, a następnie **ustala** się turę każdego poziomu, malując niedostępność (**Niedostępny**) na przeznaczonej na jego posiłek połowie przedziału czasowego, w ograniczeniach czasowych klasy (Ograniczenia czasowe klasy). Przykład: klasy 4, 5 i 6 niedostępne w 12.00 – 13.00 (pierwsza tura); klasy 7 i 8 niedostępne w 13.00 – 14.00 (druga tura). Stołówka przyjmuje w ten sposób dwa osobne strumienie. Zob. [Siatka godzin, przedziały czasowe i czasy trwania](#page-core-concepts.timetable-grid) oraz [Ograniczenia czasowe (zasady ogólne)](#page-core-concepts.time-constraints). #### Zobacz także - [Przegląd modułu Zarządzanie planami lekcji](#page-timetables.overview) - [Diagnozowanie nieudanego generowania](#page-timetables.diagnosing-generation) - [Wybór właściwego typu planu lekcji](#page-overview.timetable-modes) - [Działanie algorytmu generowania](#page-faq.solver-behavior) - [FAQ — Przypadki szczególne i konfiguracje zaawansowane](#page-faq.edge-cases) ### 16.3 FAQ — Import danych *Source: `help/pl/faq/data-import.md` · id: faq.data-import · Updated: 2026-05-10* #### Jakie formaty importu są obsługiwane? CSV i TSV, przez kopiowanie i wklejanie z Excela, Arkuszy Google, Numbers lub Calc. Pełny **eksport JSON** konta jest dostępny dla administratora (kopia zapasowa); **ponowny import** pełnego konta w formacie JSON jest natomiast operacją przywracania wykonywaną przez Omniscol, a nie zwykłą czynnością na ekranie administracyjnym. W przypadku migracji dedykowanych zob. [Przegląd](#page-migration.overview). #### Czy identyfikator jest generowany przez system? Tak. Podczas importu uczniów, nauczycieli lub klas Omniscol generuje stabilny identyfikator wewnętrzny: dla osób pochodzi on od imienia i nazwiska, dla grupy zawiera klasę nadrzędną (`:`). Wzorzec **identyfikatora logowania** (imię-nazwisko, nazwisko-imię albo numer identyfikacyjny) ustawia się na stronie [Ustawienia ogólne](#page-admin.parameters), pole **Identyfikator**. Można też wpisać własne oznaczenie w polu **identyfikator zewnętrzny / numer ewidencyjny** — przydatne do zachowania powiązania ze szkolnym systemem informacyjnym oraz do odróżnienia osób o tym samym imieniu i nazwisku. #### Czy w przypadku grup trzeba zawsze wskazać klasę? Tak. Grupa jest zawsze wydzieloną częścią klasy. Identyfikator grupy zawiera klasę nadrzędną. W plikach importu lekcji kolumny „klasa” i „grupa” działają łącznie. Zob. [Klasa, grupa, podgrupa](#page-core-concepts.classes-and-groups). #### Czy kolejność kolumn w tabeli ma znaczenie? Ekran importu otwiera **szablon kolumn** z typami przypisanymi do pozycji (przedmiot, nauczyciel, sala… — każde z nich zajmuje oczekiwaną kolumnę). **Kolumny szablonu można przestawiać**, tak aby odpowiadały kolejności w arkuszu źródłowym: kopiowanie i wklejanie pozostaje wtedy czyste, bez przepisywania pliku. Zob. [Masowy import kursów z arkusza kalkulacyjnego](#page-timetables.mass-import). #### Jakie separatory w listach (wielu nauczycieli, wielu grup itd.)? Wewnątrz jednego pola rozpoznawane są typowe separatory: przecinek, średnik, ukośnik, kreska pionowa, plus, ampersand lub znak nowego wiersza. Mechanizm importu wykrywa konwencję użytą w danym polu. #### Co się dzieje, gdy tabela zawiera nieznane przedmioty? Na etapie 4 importu Omniscol proponuje **utworzenie nieznanych jednostek**. W przypadku przedmiotów niestandardowych i części nauczycieli można poprosić o ich utworzenie w module **Administracja**, aby były dostępne w całej szkole. Etykiety poprawia się na etapie 3, podczas usuwania niejednoznaczności. #### Czy złożone lekcje są poprawnie importowane? Częściowo. Mechanizm importu dobrze rozpoznaje: - lekcje proste (przedmiot + klasa + nauczyciel + sala + przedział czasowy), - lekcje z prostą naprzemiennością (`A/B`), - lekcje z wieloma nauczycielami (współnauczanie), - lekcje w wielu salach. Słabiej radzi sobie z poniższymi przypadkami, które wymagają zatem ręcznego dokończenia: - lekcje skojarzone (naprzemienne grupy połówkowe), - złożone połączenia lekcji, - grupy grup, - lekcje poza siatką godzin, z dokładnymi godzinami. #### Co zrobić, gdy import nie uda się na dużym pliku? - Proszę sprawdzić, czy nie ma pustych wierszy ani scalonych komórek. - Proszę podzielić plik na mniejsze części (po klasach, po kampusach, po semestrach). - Proszę raczej wybrać **pełny eksport** konta źródłowego, zwykle czystszy niż ręczny eksport częściowy. #### Zobacz także - [Przygotowanie danych do importu masowego](#page-getting-started.preparing-data) - [Masowy import kursów z arkusza kalkulacyjnego](#page-timetables.mass-import) - [Przegląd](#page-migration.overview) - [Przypadki użycia w szkolnictwie wyższym](#page-faq.higher-ed-cases) ### 16.4 FAQ — Działanie algorytmu generowania *Source: `help/pl/faq/solver-behavior.md` · id: faq.solver-behavior · Updated: 2026-05-15* Najczęstsze pytania o działanie algorytmu generowania planów lekcji. Opis samego generowania — zob. [Algorytm generowania](#page-glossary.solver); szczegóły operacyjne — zob. [Automatyczne generowanie](#page-timetables.generation). #### Na jakich rodzajach planów lekcji działa algorytm generowania? Na planach lekcji [tygodniowych](#page-glossary.weekly-timetable), [cyklicznych](#page-glossary.cyclic-timetable) i [kalendarzowych](#page-glossary.calendar-mode). W trybie kalendarzowym lekcje są umieszczane na rzeczywistych datach, a opcje generowania obejmują granice dat. #### Jak działa algorytm generowania? Omniscol uruchamia obliczenia w tle. Algorytm ocenia lekcje do umieszczenia, zadeklarowane ograniczenia i wybrane ustawienia generowania. Wynik zależy przede wszystkim od jakości danych: liczby godzin, nauczycieli, sal, grup, dostępności, niekompatybilności i ograniczeń między lokalizacjami. Każde generowanie uruchamia dedykowane, zrównoleglone środowisko obliczeniowe. Szkoła nie musi zarządzać żadną kolejką; sama inicjalizacja zajmuje często około dziesięciu sekund, zanim rozpoczną się właściwe obliczenia. W module **Zarządzanie planami lekcji** przycisk **Generuj plan lekcji** uruchamia obliczenia, pokazuje ich stan i pozwala sprawdzić wynik. Algorytm generowania to optymalizacyjna sztuczna inteligencja typu **neurosymboliczna metaheurystyka Monte Carlo**: przeszukiwanie stochastyczne, ograniczenia symboliczne i stopniowa optymalizacja ocen. Nie jest to obietnica powodzenia przy niemożliwym zestawie ograniczeń; w takim przypadku Omniscol zwraca diagnostykę. #### Ile czasu zajmuje generowanie? Czas zależy od rozmiaru planu lekcji, liczby lekcji, liczby ograniczeń i wybranych opcji. Dla orientacji: szkoła podstawowa z około 550 uczniami, 45 nauczycielami i 16 klasami, z szeroko zadeklarowaną dostępnością, może w niespełna minutę otrzymać kompletny plan lekcji, z bardzo niewielką liczbą luk lub bez nich, o ile dane są spójne. Przypadek gęstszy, silnie ograniczony lub z kosztownymi optymalizacjami może zająć znacznie więcej czasu. #### Czy algorytm generowania respektuje wszystkie ograniczenia? **Twarde ograniczenia** są respektowane bezwzględnie: - nauczyciel tylko w jednym miejscu w tym samym czasie; - klasa bez podwójnego obłożenia, z wyjątkiem grup objętych podziałem klasy; - dostępność i przedziały czasowe oznaczone jako **niedostępne**; - sala ogólna zajęta tylko przez jedną lekcję jednocześnie; - duża sala używana wyłącznie w granicach swojej pojemności i liczby klas; - zgodne sale specjalistyczne, pojemności, zasoby materialne i czasy przejazdu między lokalizacjami; - zablokowane lekcje zachowane na swoim miejscu. **Miękkie ograniczenia** (niepożądane przedziały dostępności, przedziały preferowane, waga pedagogiczna, równowaga dni, liczba dni obecności, luki w planach lekcji) są optymalizowane w miarę możliwości. Tworzą punkty karne: algorytm generowania szuka rozwiązania, które zbiera ich najmniej, ale może część z nich zachować, jeśli jest to najlepszy kompromis zgodny z twardymi ograniczeniami. #### Co zrobić, jeśli generowanie się nie uda? Gdy nie zostanie znalezione żadne kompletne rozwiązanie, Omniscol zwraca najlepszy obliczony plan lekcji, a lekcje nieumieszczone pozostawia na pasku karteczek. Częściowy plan lekcji nadal można przeglądać, aby zobaczyć, co zostało umieszczone, a następnie poprawić ograniczenia lub ręcznie przestawić niektóre lekcje. Najczęstsze przyczyny opisuje strona [Diagnozowanie nieudanego generowania](#page-timetables.diagnosing-generation). #### Czy można ręcznie wymusić pozycję lekcji? Tak, przez **zablokowanie** lekcji po ręcznym umieszczeniu. Przy kolejnym generowaniu algorytm generowania nie przesuwa zablokowanej lekcji, lecz dostosowuje wokół niej pozostałe. Przydaje się to do zakotwiczenia lekcji niezmiennych (lekcji prowadzonych przez nauczycieli zewnętrznych w ustalonym terminie, egzaminów o wyznaczonej dacie). #### Dlaczego algorytm generowania nie proponuje kilku rozwiązań? Algorytm generowania optymalizuje według zadeklarowanych ograniczeń i ustawień, a następnie zwraca **najlepsze znalezione rozwiązanie**. Aby uzyskać kilka rozwiązań do porównania, proszę zduplikować plan lekcji przed każdym generowaniem i nieznacznie dostosować ograniczenia lub wagi między dwoma przebiegami. #### Czy algorytm generowania uwzględnia zgłoszone nieobecności? Algorytm generowania działa na planie lekcji **strukturalnym**, niezależnie od nieobecności. Nieobecnościami zarządza się **po fakcie** w module **Zarządzanie nieobecnościami** (zob. [Przegląd modułu Zarządzanie nieobecnościami](#page-absences.overview)), z wpływem na wyświetlanie opublikowanego planu lekcji i na statystyki w [Panel zarządczy](#page-glossary.dashboard) (ale nie na strukturę leżącą u jego podstaw). #### Konflikt zamierzony a konflikt blokujący Nie wszystkie konflikty są równoważne: - **Konflikty nieblokujące** — można je pozostawić bez zmian, jeśli jest to świadoma decyzja (na przykład sala, w której wyświetlana liczebność przekracza pojemność, bo wiadomo, że nie przyjdą wszyscy zapisani). Ostrzeżenie pozostaje widoczne, ale niczego nie blokuje. - **Konflikty blokujące** — uniemożliwiają pomyślne generowanie (brak zgodnej sali, niespójne wyrównanie grup itd.). Przycisk Generuj plan lekcji pozostaje nieaktywny, dopóki te konflikty się utrzymują. Zob. [Konflikt](#page-glossary.conflict). #### Zobacz także - [Algorytm generowania](#page-glossary.solver) - [Automatyczne generowanie](#page-timetables.generation) - [Diagnozowanie nieudanego generowania](#page-timetables.diagnosing-generation) - [Konflikt](#page-glossary.conflict) - [Diagnostyka](#page-glossary.diagnostic) ### 16.5 FAQ — Wyświetlanie i interfejs *Source: `help/pl/faq/display-and-ux.md` · id: faq.display-and-ux · Updated: 2026-06-25* Najczęstsze pytania dotyczące wyświetlania, widoków i doświadczenia użytkownika w interfejsie Omniscol. #### Jakie widoki są dostępne do przeglądania planu lekcji? Komponent wyświetlania łączy: - **tryby prezentacji**: **siatka** (standardowy kalendarz), **lista**, **tabela** w stylu arkusza kalkulacyjnego; - **warianty przeglądania**: **dzień**, **miesiąc**, **harmonogram** (oraz **harmonogram godzinowy**), **widok obok siebie**. Harmonogram służy do zestawiania kilku jednostek lub kilku dni w jednym widoku; harmonogram godzinowy robi to samo na skali godzinowej. Tabela jest tabelarycznym odwzorowaniem bieżącego widoku. Zob. [Wyświetlanie planów lekcji](#page-schedules.schedule-display) i [Przeglądanie i filtrowanie](#page-schedules.consult-and-filter). #### Czy dostępny jest pionowy widok planu lekcji? W module **Plany lekcji** komponent wyświetlania planów lekcji nie udostępnia widoku pionowego. Równoważny widok pionowy istnieje w module **Obsada personelu** (zob. [Przegląd modułu Obsada personelu](#page-staffing.overview)) dla pokrewnych zastosowań (siatki dyżurów). #### Czy interfejs jest responsywny (telefon, tablet)? Tak, interfejs dostosowuje się do ekranów każdej wielkości. Na telefonie przesunięcie palcem w poziomie przewija wyświetlany okres (domyślnie tydzień, a w widoku Dzień — dzień). #### Jakie ustawienia wyświetlania imion i nazwisk są dostępne? Imiona i nazwiska przechodzą przez funkcję formatowania, sterowaną konfiguracją szkoły: - Kolejność imienia i nazwiska (zgodnie z konwencjami danego kraju). - Pogrubienie głównej części imienia i nazwiska (zależne od kraju — obsługa *middle name* dla konwencji amerykańskich, wietnamskich i arabskich). - Zapis wielkimi literami imienia, drugiego imienia (jeśli jest włączone) i/lub nazwiska, poprzez ustawienie wyświetlania nazwisk wielkimi literami. #### Czy interfejs jest dostępny dla osób z niepełnosprawnościami? Prowadzony jest audyt dostępności cyfrowej (RGAA, WCAG). Raport zgodności może zostać udostępniony na życzenie. Zidentyfikowane usprawnienia są na bieżąco opracowywane. W przypadku szczególnych potrzeb (czytnik ekranu, zwiększony kontrast, nawigacja klawiaturą) proszę skontaktować się ze wsparciem. #### Czy języki pisane od prawej do lewej są obsługiwane? Tak. Dla języka arabskiego i hebrajskiego interfejs jest dostosowany do zapisu od prawej do lewej. Lista 14 obsługiwanych języków znajduje się w [Pytania ogólne](#page-faq.general). #### Jak wydrukować plan lekcji? Przycisk **Drukuj** w module **Plany lekcji** uruchamia drukowanie. Wydruk jest zoptymalizowany pod kątem papieru (bez elementów interaktywnych, z dostosowanym układem strony). #### Jak wyeksportować plan lekcji do Excela lub do zewnętrznego kalendarza? - Eksport do Excela / CSV poprzez **Tabela**. - Eksport / subskrypcja iCal poprzez **Pobierz** (zob. [iCal — subskrypcja i dynamiczny link](#page-integrations.ical)). - Publiczny link udostępniania w trybie tylko do odczytu (zob. [Link udostępniania](#page-glossary.share-link)). #### Czy dostępny jest tryb ciemny? Nie w obecnym interfejsie: Omniscol nie udostępnia motywu ciemnego ani nie przełącza się automatycznie wraz z ciemnym ustawieniem systemu operacyjnego. Interfejs uwzględnia natomiast systemowe preferencje ułatwień dostępu, takie jak zwiększony kontrast. #### Czy mogę dostosować kolory przedmiotów? Tak. Każdy przedmiot (zob. [Przedmiot](#page-glossary.subject)) może otrzymać własny kolor poprzez **Kolor**. Typy lekcji pozostają zwykłymi etykietami tekstowymi, bez przypisanego koloru ani ikony. #### Zobacz także - [Przeglądanie i filtrowanie](#page-schedules.consult-and-filter) - [FAQ — Przypadki szczególne i konfiguracje zaawansowane](#page-faq.edge-cases) - [Panel informacyjny](#page-panels.lobby-panel) - [Drukowanie i udostępnianie](#page-schedules.print-and-export) ### 16.6 FAQ — przypadki użycia w szkolnictwie wyższym *Source: `help/pl/faq/higher-ed-cases.md` · id: faq.higher-ed-cases · Updated: 2026-06-13* Pytania, które najczęściej zadają uczelnie i szkoły wyższe (szkoły biznesu, uczelnie techniczne, uczelnie artystyczne i projektowe, uniwersytety, centra kształcenia ustawicznego). Odpowiedzi mają zastosowanie we wszystkich tych typach instytucji; szczegóły merytoryczne zob. [Specyfika szkolnictwa wyższego](#page-higher-ed.overview). #### Kilka planów lekcji, każdy użytkownik widzi tylko swój **P.** Jak prowadzić równolegle kilka planów lekcji tak, aby każdy użytkownik widział w swoim kalendarzu wyłącznie te lekcje, które go dotyczą? **O.** Współdziałają trzy mechanizmy: - Po stronie administratora kilka planów lekcji może być opublikowanych równolegle na tych samych tygodniach, z dynamicznym scalaniem — zawarte w standardzie na koncie Premium (zob. [Kilka planów lekcji opublikowanych równolegle](#page-timetables.multiple-active-timetables)). - Każdy użytkownik widzi domyślnie tylko te lekcje, które go dotyczą — swoją klasę, swoje grupy, a w przypadku nauczyciela swoje własne lekcje. Filtry są stosowane automatycznie przy logowaniu, zgodnie z rolą użytkownika. - Aby obejrzeć inny zakres (inną klasę, innego nauczyciela…), użytkownik stosuje filtr ręcznie, o ile pozwala mu na to rola. Dostępne [ograniczenia widoczności](#page-admin.visibility-restrictions) pozwalają na przykład ukryć nauczycielom plany lekcji ich kolegów. #### Synchronizacja iCal po zmianie planu lekcji **P.** Czy kanał iCal jest aktualizowany automatycznie, gdy lekcja zostanie zmieniona w Omniscol? **O.** Tak, pod warunkiem korzystania z **linku subskrypcji iCal** (a nie ze statycznego pobrania pliku). Link subskrypcji jest dynamiczny; aplikacja kalendarza pobiera kanał ponownie w regularnych odstępach, z opóźnieniem od kilku minut do kilku godzin, zależnie od aplikacji i jej konfiguracji. To aplikacja kalendarza decyduje o rytmie odświeżania, a nie Omniscol. Zob. [iCal](#page-glossary.ical) oraz [iCal — subskrypcja i dynamiczny link](#page-integrations.ical). #### Powiadomienie przy każdej zmianie **P.** Czy można wysyłać powiadomienie przy każdej zmianie planu lekcji? **O.** Nie ma automatycznego powiadomienia przy każdej zmianie: ich liczba byłaby nie do opanowania po stronie odbiorców. Obecne podejście: publikowanie zmian partiami, wraz z e-mailem podsumowującym, do wybranych użytkowników, których one dotyczą (Wyślij e-mail). #### Sala z makrotypu / kategorii sal **P.** Jak wskazać, że kurs ma się odbywać w konkretnej sali należącej do makrotypu — zależnie od tego, czy chce się wymusić określoną salę, czy pozwolić algorytmowi generowania wybrać ją w obrębie kategorii? **O.** Przez [**specjalizacje sal**](#page-glossary.classroom-specialization), które są polami o dowolnej treści: - Proszę utworzyć specjalizację odpowiadającą makrotypowi (na przykład „PRACOWNIA”, „SALA-INFO”, „LAB-CHEMIA”). - Proszę przypisać tę specjalizację odpowiednim salom. - Na kursie proszę wskazać wymaganą specjalizację. Omniscol podpowiada w pierwszej kolejności sale z tą specjalizacją, a algorytm generowania wybiera jedną z dostępnych. - Aby **wymusić konkretną salę**, proszę wskazać ją bezpośrednio (obok specjalizacji albo zamiast niej). Algorytm generowania respektuje takie wymuszenie. Przy imporcie masowym można podać wyłącznie specjalizację; ostatecznym przydziałem zajmuje się algorytm generowania. #### Sprawdzenie obłożenia sal przed generowaniem **P.** Czy istnieje raport pozwalający sprawdzić przed generowaniem, czy godziny przypisane do sali albo do makrotypu sal mieszczą się w łącznej liczbie dostępnych godzin? **O.** Zakładka Generowanie wykonuje wstępną diagnostykę: kontrole pojemności (liczba lekcji do umieszczenia w zestawieniu z pojemnością siatki godzin) oraz kontrole zgodności specjalizacji sal. W razie przekroczenia pojemności pojawia się ostrzeżenie. [Panel zarządczy](#page-glossary.dashboard) po publikacji podaje rzeczywiste dane szczegółowe (z uwzględnieniem nieobecności i zastępstw). #### Czas trwania pojedynczego kursu przy imporcie **P.** W pliku importu kolumna „czas trwania” zawiera łączną liczbę godzin aktywności, która może obejmować kilka kursów. Gdzie wpisać czas trwania każdego kursu osobno? **O.** Jeden **wiersz importu odpowiada jednemu kursowi**. Wpisany czas trwania dotyczy tego kursu, a nie modułu. Dla modułu obejmującego kilka kursów o różnym czasie trwania potrzebny jest zatem jeden wiersz importu na każdy kurs. Jeśli źródło agreguje dane („Algebra = 30 godz. łącznie”), trzeba je rozłożyć przed importem — albo użyć [automatycznego podziału godzin](#page-timetables.hour-distribution), aby rozdzielić pulę godzin na pojedyncze kursy. #### Kursy tylko w wybranych tygodniach **P.** Jak wskazać, że kurs odbywa się wyłącznie w określonych tygodniach roku akademickiego? **O.** Zależy to od trybu: - W [trybie tygodniowym](#page-glossary.weekly-timetable) [tygodnie naprzemienne](#page-glossary.alternate-lessons) obejmują przypadek, w którym kurs powtarza się raz na N tygodni. Dla kursu, który wypada tylko w kilku konkretnych tygodniach roku, lepiej nadaje się tryb kalendarzowy. - W [trybie kalendarzowym](#page-glossary.calendar-mode) każda lekcja jest umieszczana pojedynczo pod swoją datą: to działa natywnie. - Przy imporcie proszę wpisać **datę** każdej lekcji w przeznaczonej do tego kolumnie (format `RRRR-MM-DD`) albo pozostawić ją pustą, aby umieścić lekcję ręcznie później. #### Kursy międzyklasowe / międzyrocznikowe **P.** Jak odwzorować kursy, w których w tym samym przedziale czasowym i tej samej sali uczestniczy kilka grup z jednej klasy albo z różnych klas, czasem dla różnych przedmiotów, czasem na różnych kampusach? **O.** Zależnie od przypadku: - **Kilka grup z tej samej klasy w tym samym przedziale czasowym, ten sam przedmiot, ten sam nauczyciel, ta sama sala** — jeden kurs przypisany do supergrupy. Skład stały → [podział klasy](#page-glossary.class-division), jeśli ma zastosowanie. Skład zmienny → [grupa grup](#page-glossary.groups-of-groups), dostępna na wszystkich kontach i we wszystkich typach planu lekcji. - **Kilka różnych klas w tym samym przedziale czasowym, ten sam przedmiot, ten sam nauczyciel, ta sama sala** — [wyrównanie grup](#page-glossary.alignment), gdy skład jest stały, albo [grupa grup](#page-glossary.groups-of-groups) (dostępna na wszystkich kontach i we wszystkich typach planu lekcji), gdy zgrupowanie ma pozostać zmienne. - **Różne przedmioty w tym samym przedziale czasowym i tej samej sali** (przypadek rzadki) — potrzebne są dwa odrębne kursy. Każdy uczeń widzi w swoim planie lekcji przedmiot swojej własnej grupy. - **Między dwiema lokalizacjami** (dwie klasy z różnych miejsc, które dzielą jeden kurs) — obsługiwane, pod warunkiem poprawnego odwzorowania wspólnej sali albo wideokonferencji (zob. [lokalizacje wirtualne](#page-glossary.site)). #### Naprzemienność nauczycieli w tym samym przedziale czasowym **P.** Jak wskazać, że dwóch nauczycieli zmienia się w tym samym przedziale czasowym, w ten sam dzień tygodnia, z tą samą klasą / przedmiotem / grupą — jeden w jednym tygodniu, drugi w następnym? **O.** To **naprzemienność nauczycieli**, a nie [współnauczanie](#page-glossary.co-teaching) w sensie ścisłym (które zakłada dwóch nauczycieli jednocześnie na tej samej lekcji). Dwa sposoby realizacji, zależnie od rytmu: - **Regularna naprzemienność w trybie tygodniowym** — proszę użyć [tygodni naprzemiennych](#page-glossary.alternate-lessons) z innym nauczycielem w każdym tygodniu. - **Naprzemienność w konkretnych datach w trybie kalendarzowym** — proszę utworzyć jeden kurs na każdą lekcję, z odpowiednim nauczycielem. Bardziej rozpisane, ale bardziej elastyczne: każdą lekcję można dostosować pojedynczo. #### Okazjonalne współnauczanie (visiting professor) **P.** Jak wskazać, że tylko na jednej lub kilku lekcjach visiting professor prowadzi kurs wspólnie z głównym nauczycielem? **O.** W [trybie kalendarzowym](#page-glossary.calendar-mode) proszę utworzyć zwykłe lekcje z samym głównym nauczycielem, a następnie na tych lekcjach, w których bierze udział visiting professor, dodać go jako [współnauczyciela](#page-glossary.co-teaching) na konkretnej lekcji. Każdy nauczyciel jest zaliczany we własnych statystykach. #### Link do wideokonferencji dla kursu **P.** Czy link do wideokonferencji można przypisać wyłącznie całej klasie, czy też konkretnemu kursowi albo konkretnej lekcji? **O.** Link do wideokonferencji można zdefiniować na trzech poziomach: na **klasie** (obowiązuje wtedy domyślnie dla wszystkich jej lekcji), na konkretnym **kursie** albo na **pojedynczej lekcji** w trybie kalendarzowym. Dobrze odpowiada to zajęciom hybrydowym, w których tylko część kursów odbywa się zdalnie. Zob. [Linki do wideokonferencji dla kursów](#page-higher-ed.videoconference-links). #### Uczniowie powtarzający rok i uczący się poza programem **P.** Jak postępować z uczniem, który musi uczęszczać na przedmiot z innego roku (powtarzanie roku, wyrównanie poziomu, *fuori corso* itp.)? **O.** Uczeń może być przypisany jednocześnie do kilku klas i ograniczony do wybranych grup w obrębie klasy. Cztery typowe przypadki: 1. **Cała inna klasa + konkretna grupa z trzeciej** — proszę przypisać do obu i wybrać grupę. 2. **Kilka grup z innej klasy bez całej klasy** — proszę przypisać bezpośrednio do grup. 3. **Jeden przedmiot z innej klasy przez konkretną grupę** — proszę utworzyć dedykowaną grupę w tej innej klasie i przypisać ucznia tylko do tej grupy. 4. **Uczeń poza programem powtarzający pojedynczy przedmiot** — ta sama logika z dedykowaną grupą. #### Identyfikator z systemu SIS jako identyfikator unikalny **P.** Czy identyfikator ucznia lub nauczyciela pochodzący z naszego systemu SIS można wykorzystać jako identyfikator unikalny w Omniscol, aby uniknąć pomyłek między osobami o tym samym nazwisku? **O.** Tak, przez pole **identyfikator zewnętrzny / numer ewidencyjny** na karcie użytkownika — właśnie do tego ono służy. Proszę wypełnić je przy imporcie, a Omniscol użyje go jako klucza identyfikacji. Szczególnie przydatne przy dwukierunkowych synchronizacjach z systemem SIS (zob. [synchronizację z systemami zewnętrznymi](#page-integrations.extsync) dla Aurion / Auriga albo [API Omniscol](#page-integrations.api-tokens) dla integracji własnej). #### Kilka adresów e-mail dla jednego użytkownika **P.** Czy można zaimportować dwa adresy e-mail dla tego samego nauczyciela (służbowy i prywatny)? **O.** Nie w obecnym interfejsie: jeden główny adres e-mail na użytkownika. Jeśli drugi adres ma być zachowany informacyjnie, proszę użyć pola Komentarz na karcie użytkownika. To pole nie jest używane jako adres wysyłki. #### Słuchacze, studenci, uczestnicy — która jednostka? **P.** Nasz model pojęciowy rozróżnia **słuchacza** (termin ogólny), **studenta** (kształcenie regularne) i **uczestnika** (kształcenie ustawiczne). Jak te odcienie się odwzorowują? **O.** Wszystkie sprowadzają się do jednostki Omniscol [uczeń](#page-glossary.student) (rola `student`). Rozróżnienie kształcenia regularnego i ustawicznego obsługuje opcjonalny atrybut na karcie (numer ewidencyjny z SIS, status), a nie odrębne jednostki. #### Nauczyciele: etatowi, na umowę, eksperci, visiting **P.** Nasz model pojęciowy rozróżnia **nauczyciela etatowego** (umowa na czas nieokreślony, rozłożony czas pracy), **nauczyciela na umowę** (umowa doraźna), **eksperta** (rzadko angażowany wykonawca zewnętrzny) i **visiting professor** (zaproszony naukowiec). Czy wszyscy odpowiadają tej samej jednostce Omniscol? **O.** Tak, wszyscy sprowadzają się do jednostki [nauczyciel](#page-glossary.teacher) (rola `teacher`). **Imienny znacznik „zewnętrzny / na umowę”**, który odróżnia ich od etatowych, jest opcją **Premium** (zob. [nauczyciel zewnętrzny](#page-glossary.external-teacher)); bez Premium te cztery profile pozostają jedną i tą samą jednostką nauczyciela, bez dedykowanego oznaczenia. Role „osoby odpowiedzialnej za kurs” i „osoby odpowiedzialnej za program” to **role funkcyjne** wewnętrzne dla danej uczelni. Omniscol nie modeluje ich jako takich, ale może je odwzorować przez [role niestandardowe](#page-admin.customroles). #### Programy, kierunki, ścieżki kształcenia **P.** Nasza oferta dzieli się na **programy** (studia jednolite magisterskie, MBA, MSc, doktorat itp.), **kursy zarządzania** (moduł / przedmiot / blok zajęciowy) i **aktywności dydaktyczne** (zajęcia). Jak to się odwzorowuje w Omniscol? **O.** Zalecane odwzorowanie: | Pojęcie uczelni | Jednostka Omniscol | | --- | --- | | **Program** | [Klasa](#page-glossary.class) (albo zestaw klas w przypadku równoległych roczników) | | **Kurs / moduł / przedmiot programu** | [Przedmiot](#page-glossary.subject) (z [typem kursu](#page-glossary.lesson-type) albo bez niego) | | **Zajęcia / aktywność dydaktyczna** | [Lekcja](#page-glossary.lesson) — pojedyncze, umieszczone w planie wystąpienie kursu | W przypadku nomenklatur hierarchicznych (moduł → przedmiot → blok) zgrupowanie można odwzorować konwencją nazewniczą na przedmiotach („M3-P2-B1 Algebra liniowa”) albo przez **rodziny przedmiotów**. #### Mobilność, wymiany, podwójny dyplom **P.** Jak zarządzać mobilnością przyjazdową i wyjazdową (wymiany akademickie, podwójne dyplomy, *free movers*, *study abroad*)? **O.** Po stronie planu lekcji te osoby to **zwykli uczniowie przypisani do określonych klas**. Obsługa administracyjna (umowy, punkty kredytowe, ECTS, status) należy do systemu SIS uczelni; Omniscol koncentruje się na pytaniu „kto uczestniczy w którym kursie, kiedy i gdzie”. #### Zalecenia konfiguracyjne dla szkolnictwa wyższego W przypadku konta w szkolnictwie wyższym warto rozważyć: - **Konto Premium**: tryb kalendarzowy, dostępność kalendarzowa oraz kilka planów lekcji opublikowanych równolegle są w nim zawarte w standardzie, podobnie jak MCP (podłączenie zgodnego asystenta AI). W razie potrzeby można je uzupełnić opcjami kontraktowymi: role niestandardowe, punkty kopii zapasowych, współpraca w czasie rzeczywistym. (**Grupy grup** są natomiast dostępne na wszystkich kontach.) - **Tryb kalendarzowy** w przypadku większości planów lekcji (lekcje datowane pojedynczo, nauczyciele zmieniający się z zajęć na zajęcia). - **Kilka planów lekcji opublikowanych równolegle** na program (jeden plan lekcji na studia magisterskie, scalany dynamicznie, gdy kursy są wspólne). - **Grupy grup** w przypadku zmiennych zgrupowań międzyprogramowych (wspólny trzon dla kilku ścieżek). - **Wiele sal** w przypadku egzaminów w podzielonych salach wykładowych albo transmitowanych wykładów. - **Role niestandardowe**, aby odwzorować osoby odpowiedzialne za kurs lub za program, z uprawnieniami ograniczonymi do ich zakresu. - **Integracja z SIS** ([synchronizacja z systemami zewnętrznymi](#page-integrations.extsync) dla Aurion / Auriga albo [API Omniscol](#page-integrations.api-tokens) dla integracji własnej), aby synchronizować słuchaczy. - **OIDC / SSO** u dostawcy tożsamości uczelni (Google Workspace, Microsoft Entra ID, Keycloak itp.). #### Zobacz także - [Specyfika szkolnictwa wyższego — przegląd](#page-higher-ed.overview) - [Wiele sal](#page-glossary.multi-room) - [Tryb](#page-glossary.lesson-modality) - [Współnauczanie](#page-glossary.co-teaching) - [Tryb kalendarzowy](#page-glossary.calendar-mode) - [Grupy grup](#page-core-concepts.groups-of-groups) - [FAQ — Tworzenie planu lekcji](#page-faq.timetables) - [FAQ — Import danych](#page-faq.data-import) ### 16.7 FAQ — Przypadki szczególne i konfiguracje zaawansowane *Source: `help/pl/faq/edge-cases.md` · id: faq.edge-cases · Updated: 2026-09-23* Pytania o konfiguracje nietypowe i przypadki szczególne: lekcje, które nie mieszczą się w siatce godzin, precyzyjne zarządzanie salami i ich specjalizacjami, konflikty nieblokujące, szczególne sposoby wyświetlania, śledzenie niespójności. #### Lekcje z niestandardową godziną **P.** Część lekcji w naszej szkole (około 20%) nie mieści się w standardowej siatce godzin: dokładny czas trwania egzaminu, przesunięte godziny niektórych laboratoriów. Jak umieścić lekcję, która musi zaczynać się o 13:10, na siatce o kroku 10 minut, i uzyskać spójną godzinę zakończenia? **O.** Tak. Lekcję można wprowadzić z własną godziną rozpoczęcia i zakończenia, bez dokładnego respektowania granic standardowej siatki. W umieszczonej lekcji proszę użyć przycisku Niestandardowa godzina (Niestandardowa godzina), a następnie wpisać początek i koniec. Lekcja nadal jest uwzględniana w konfliktach: nauczyciel, sala, klasa, grupa i zasób są uznawane za zajęte, gdy tylko niestandardowa godzina nachodzi na przedział czasowy. Przy generowaniu planu lekcji ta pozycja jest zablokowana. Ustawienie **Poza siatką** dla klasy to inny przypadek: służy ono klasom w trybie kalendarza skonfigurowanym poza siatką, których wszystkie lekcje muszą być zapisywane z dokładnymi godzinami. Szczegóły zob. [Lekcje poza siatką](#page-timetables.off-grid-lessons). #### Tworzenie przedmiotów z istniejącym przedmiotem nadrzędnym i rodziną **P.** Czy przy tworzeniu przedmiotu niestandardowego można wybrać już utworzony **przedmiot nadrzędny** oraz istniejącą **rodzinę**, bez konieczności ponownego wczytania danych z systemu zewnętrznego? **O.** Tak. Okno tworzenia lub modyfikacji przedmiotu niestandardowego pozwala wybrać bezpośrednio istniejący przedmiot nadrzędny (pole Przedmiot nadrzędny) oraz istniejącą rodzinę (pole Rodzina), bez ponownego wczytania z zewnątrz. Zob. [Zarządzanie przedmiotami](#page-admin.subjects). #### Zmiana lub usunięcie specjalizacji sali **P.** Dlaczego bezpośrednia zmiana lub usunięcie specjalizacji sali nie jest dostępne (na przykład w celu poprawienia błędu w pisowni)? **O.** Lista specjalizacji jest wyliczana **dynamicznie** na podstawie sal. Aby specjalizacja zniknęła: - Proszę usunąć ją ze wszystkich sal, do których jest przypisana. Przy najbliższym zapisie zniknie ona z listy automatycznie. - Aby **zmienić jej nazwę**, proszę utworzyć nową specjalizację z właściwą etykietą i podmienić ją na odpowiednich salach; stara zniknie potem sama. Interfejs nie udostępnia więc przycisku bezpośredniej zmiany ani usunięcia specjalizacji. Zob. [Specjalizacja sali](#page-glossary.classroom-specialization). #### Filtr planów lekcji po przedmiocie: przedmiot bez typu a przedmiot z typem **P.** Gdy filtruję plany lekcji po przedmiocie, część lekcji się nie pokazuje, choć są dobrze widoczne, gdy filtruję po klasie. Jaka jest przyczyna? **O.** Para **(przedmiot, typ kursu)** jest traktowana jako wpis niezależny od samego przedmiotu. Skutki: - „Algebra” bez typu i „Algebra — Ćwiczenia” odpowiadają **dwóm różnym wpisom** w planie lekcji. - Aby filtrować po obu jednocześnie, nie należy podawać typu w filtrze. - Jeśli trzeba przejrzeć wszystkie typy jednego przedmiotu, proszę użyć filtrów dostępnych w widoku, a następnie sprawdzić wyniki na liście kursów. #### Wyświetlanie nazwiska wielkimi literami **P.** Czy można wyświetlać nazwiska wielkimi literami? Przydaje się to szczególnie wtedy, gdy nazwisko jest również popularnym imieniem (na przykład „Paweł Marek” wobec „Paweł MAREK”). **O.** Tak. Ustawienie wyświetlania nazwisk wielkimi literami konfiguruje się w ustawieniach szkoły. Może dotyczyć imienia, drugiego imienia, jeśli ta opcja jest włączona, i/lub nazwiska — zależnie od kolejności imienia i nazwiska ustawionej dla szkoły. #### Blokada lekcji, która nie pojawia się we wszystkich widokach **P.** Blokada pozycji lekcji nie wyświetla się za każdym razem przy zmianie widoku (karteczki ↔ lista). **O.** Znacznik blokady zależy od widoku i od charakteru lekcji. W widokach podziału godzin oraz w niektórych wierszach kursów blokada jest pokazywana ikoną [lock]. Jeśli jakiś widok jej nie pokazuje, proszę sprawdzić szczegóły lekcji, zanim uzna się, że algorytm może ją przestawić. #### Przypisywanie sali: ulubiona lokalizacja i priorytet specjalizacji **P.** Przy przypisywaniu sali na pierwszym miejscu pojawiają się sale z innej lokalizacji, mimo że ulubiona lokalizacja jest zaznaczona. Dlaczego? **O.** Sortowanie opiera się domyślnie na **lokalizacji przypisanej do klasy**, a nie na ulubionej lokalizacji użytkownika. To zachowanie zamierzone: klasa decyduje o wyborze sali. Jeśli proponowana kolejność nie jest tą oczekiwaną, proszę sprawdzić przyciskiem Edytuj, czy klasa jest przypisana do właściwej lokalizacji. W przypadku **specjalizacji** proszę sprawdzić proponowane sale i ich ostrzeżenia o zgodności w selektorze. Nie należy zakładać, że sortowanie stawia na pierwszym miejscu najlepszą zgodność. #### Pojemność całkowita = suma sal (wiele sal) **P.** Gdy do jednego kursu przypisanych jest kilka sal, czy Omniscol liczy **pojemność całkowitą** jako sumę pojemności poszczególnych sal i czy dzięki temu unika fałszywych alertów o przekroczeniu pojemności? **O.** Tak. Pojemność całkowita jest liczona jako **suma** pojemności przypisanych sal. Jeśli grupa mieści się w tej sumie, żaden alert nie jest zgłaszany. Funkcja ta jest dostępna **we wszystkich typach planów lekcji**: tygodniowym, cyklicznym i kalendarzowym. Jeśli suma pozostaje mniejsza od liczebności grupy, konflikt jest zgłaszany. Administrator może wtedy: - dodać kolejną salę, - zmniejszyć grupę, - zaakceptować konflikt, jeśli jest zamierzony (typowy przypadek: wiadomo, że nie przyjdą wszyscy zapisani). Zob. [Wiele sal](#page-glossary.multi-room). #### Konflikt między dwiema klasami, które nie mają nic wspólnego **P.** Dwie klasy o różnych nazwach, bez wspólnego nauczyciela ani wspólnej sali, są zgłaszane jako konflikt. Skąd bierze się ten konflikt? **O.** Wskazują to szczegóły konfliktu. Jeśli przy klasie drugiej lekcji widnieje ikona [calendar-days] i nazwa planu lekcji, lekcja ta pochodzi z innego planu lekcji opublikowanego na te same daty. Omniscol rozpoznał tę samą klasę w obu planach: ponieważ ich nazwy się różnią, mają one ten sam identyfikator zewnętrzny (zob. [rozpoznawanie tej samej klasy w różnych planach lekcji](#page-timetables.multiple-active-timetables--same-entity)). Jeśli chodzi o dwie różne klasy, proszę poprawić ten identyfikator w programie źródłowym. Aby przestać uwzględniać dany plan lekcji, proszę go odznaczyć w menu Synchronizacja. Bez tej ikony obie lekcje należą do tego samego planu lekcji: proszę poszukać grupy grup, która łączy grupy z obu klas (zob. [Grupa grup](#page-glossary.groups-of-groups)). #### Wykrywanie niespójności grup w podziale klasy **P.** Omniscol zgłasza „Różna liczba lekcji dla grup w podziale”, nie precyzując, w których przedmiotach występują niespójności. Jak to szczegółowo zbadać? **O.** Panel **zaawansowanych statystyk** na ekranie podziału godzin pozwala na szczegółową inspekcję, zwłaszcza przez wyodrębnienie grup, które wchodzą ze sobą w interakcję w danych przedziałach czasowych. W szkołach, w których dysproporcje są liczne i zamierzone, heurystyka ogranicza wyświetlanie alertów powyżej pewnego progu, aby uniknąć listy niemożliwej do opanowania. Nadal można wyeksportować kursy i filtrować je w arkuszu kalkulacyjnym, aby uzyskać wyczerpującą diagnostykę. #### Kilka komentarzy z różnymi ograniczeniami **P.** Czy do jednego kursu można dodać dwa komentarze z odrębnymi ograniczeniami publikacji (jeden tylko dla administratorów, drugi dla nauczycieli)? **O.** Tak. Każdy komentarz ma własne ograniczenie publikacji: administratorzy, nauczyciele albo wszyscy użytkownicy. Proszę użyć przycisku Komentarz, aby dodać kilka komentarzy i ustawić ich widoczność osobno. #### Pionowe wyświetlanie planu lekcji (obciążenie tygodniowe) **P.** Przy podglądzie obciążenia grupy lub obłożenia pewnego typu sal w całym tygodniu wyświetlanie poziome wymusza przewijanie. Czy dostępne jest wyświetlanie pionowe? **O.** W module **Plany lekcji** wyświetlanie odbywa się poziomo. Równoważny widok pionowy istnieje w module **Obsada personelu** dla pokrewnych zastosowań (siatki dyżurów). Zob. [Przegląd modułu Obsada personelu](#page-staffing.overview) oraz [Wyświetlanie i UX](#page-faq.display-and-ux). #### Statystyki: lekcje umieszczone a utworzone kursy **P.** Licznik na ekranie „Podział godzin” pokazuje, ile kursów zostało utworzonych. Gdzie zobaczyć, ile godzin jest faktycznie **umieszczonych** w planie lekcji (a nie tylko utworzonych bez umieszczenia)? **O.** Dwa ekrany dają dwie dopełniające się miary: - **Panel zarządczy** pracuje na **operacyjnym planie lekcji** (lekcje faktycznie umieszczone, możliwe scalenie kilku opublikowanych planów, uwzględnienie nieobecności). Wyświetlane procenty są wartościami względnymi („93% godzin tej klasy”), a nie wskaźnikiem umieszczenia. - Ekran **podziału godzin** mierzy zadeklarowane kursy i utworzone wolumeny godzin. Jeśli potrzebny jest wskaźnik umieszczenia, proszę sprawdzić kursy w widoku planu lekcji albo wyeksportować listę, aby wyodrębnić lekcje bez pozycji. #### Nauczyciel zewnętrzny widoczny w planie lekcji **P.** Czy ikona odróżniająca nauczycieli zewnętrznych od etatowych pojawia się obok imienia i nazwiska nauczyciela w widokach planu lekcji? **O.** Zależnie od widoku: - **Widok siatki godzin** — miejsca jest mało, a imiona i nazwiska mogą być tam skracane lub obcinane jako zwykły tekst; ikona nie pojawia się tam za każdym razem. - **Listy, podpowiedzi i selektory** — wszędzie tam, gdzie wyświetlane jest pełne imię i nazwisko, ikona [user-tie] poprzedza imię i nazwisko nauczycieli, w których karcie widnieje oznaczenie Nauczyciel zewnętrzny. To oznaczenie „zewnętrzny” jest opcją **Premium**; bez niego żadna ikona nie wyróżnia nauczycieli zewnętrznych. Zob. [Nauczyciel zewnętrzny](#page-glossary.external-teacher). > _Premium_ #### Wydarzenia jednorazowe: szczegóły, o które pytają najczęściej Kilka szczegółów dotyczących ekranu wydarzeń (zob. [Wydarzenia jednorazowe](#page-schedules.events)): - **Proponowane godziny** — zakres godzin wydarzenia wynika z ustawienia Godziny otwarcia danej lokalizacji; jeśli jest zbyt wąski (na przykład wydarzenie wieczorne), proszę rozszerzyć te godziny w karcie lokalizacji. - **Zmiana godziny na miejscu** — godzinę wydarzenia zmienia się bezpośrednio, jednym kliknięciem na wydarzeniu. - **Uczestnicy** — lista uczestników proponuje klasy i grupy, a także pojedynczych nauczycieli i uczniów. #### Zobacz także - [Lekcje poza siatką](#page-timetables.off-grid-lessons) - [Wydarzenia jednorazowe](#page-schedules.events) - [Wiele sal](#page-glossary.multi-room) - [Specjalizacja sali](#page-glossary.classroom-specialization) - [Wyświetlanie i UX](#page-faq.display-and-ux) - [Działanie algorytmu generowania](#page-faq.solver-behavior) ### 16.8 FAQ — Bezpieczeństwo i hosting *Source: `help/pl/faq/security-and-hosting.md` · id: faq.security-and-hosting · Updated: 2026-05-10* Ta strona podsumowuje najczęstsze kwestie dotyczące bezpieczeństwa i hostingu. Pełny opis zawierają dokumenty oficjalne, które Omniscol udostępnia na życzenie (zależnie od przypadku po podpisaniu NDA): - `SECURITY_OVERVIEW.md` — przegląd publiczny, - `SECURITY_ONE_PAGER.md` — podsumowanie dla CISO, czyli osób odpowiedzialnych za bezpieczeństwo informacji, - `SECURITY_FULL.md` — pełna dokumentacja (nadzór, infrastruktura, zabezpieczenia, zgodność, reagowanie na incydenty), - `ISO27001_MAPPING.md` — powiązanie z zabezpieczeniami normy ISO 27001, - `SSI_QUESTIONNAIRE_STANDARD.md` — odpowiedzi na standardowy kwestionariusz bezpieczeństwa informacji. W sprawach bezpieczeństwa: **[security@omniscol.com](mailto:security@omniscol.com)**. #### Gdzie są hostowane moje dane? Informacje prawne wskazują hosting na terenie Unii Europejskiej, na AWS w Paryżu i w Scaleway. Dokładne zobowiązania dotyczące nadmiarowości, kopii zapasowych, okresu przechowywania i dostępności zależą od ram umownych obowiązujących dla danego konta. #### Czy Omniscol jest zgodny z RODO? Omniscol jest zaprojektowany do użytku zgodnego z RODO. Praktyczne konsekwencje: - Hosting wyłącznie w UE (Francja). - **Izolacja logiczna** dla każdego klienta: dostęp krzyżowy między kontami jest niemożliwy. - Żadnego **profilowania**, żadnej **odsprzedaży** danych, żadnego **wtórnego wykorzystania** treści szkoły. - **Odwracalność**: pełny eksport do formatu JSON za pomocą **Pobierz**. - Obsługa żądań osób, których dane dotyczą, zgodnie z obowiązującymi ramami umownymi i regulacyjnymi. #### Czy Omniscol ma certyfikat ISO 27001? Na dziś bez certyfikatu, ale **praktyki są spójne** z zasadami normy i realizują podejście oparte na ryzyku, poddawane stałej weryfikacji. Szczegóły zabezpieczeń można przekazać w odpowiednich ramach umownych lub w dokumentach dotyczących bezpieczeństwa. #### Jak chronione są hasła? Omniscol chroni hasła w następujący sposób: - **Wstępne haszowanie po stronie klienta** algorytmem **scrypt** — hasło w postaci jawnej nigdy nie dociera na serwery. - Przechowywanie na serwerze w postaci skrótu z solą. - Żadne hasło w postaci jawnej nie jest nigdy przesyłane ani przechowywane. - Żaden administrator Omniscol nie może odczytać, odtworzyć ani odzyskać hasła użytkownika. W razie podejrzenia naruszenia konta zmiana hasła unieważnia dostępy pochodne, które zależą od tego sekretu, w szczególności linki udostępniania powiązane z hasłem twórcy. #### Czy komunikacja jest szyfrowana? Publiczny dostęp do aplikacji odbywa się przez HTTPS. Konfiguracja ekspozycji sieciowej zależy od wybranego wdrożenia i wymaga sprawdzenia w dokumentacji bezpieczeństwa lub w ramach umownych danego konta. #### Jak działa uwierzytelnianie? Sesje Omniscol korzystają z podpisanych tokenów o ograniczonym czasie życia; dostęp jest odnawiany, dopóki użytkownik pracuje w interfejsie. Linki udostępniania i tokeny API podlegają odrębnym zasadom: - link udostępniania może mieć datę wygaśnięcia i zależy też od konta, które go utworzyło; zmiana hasła tego konta lub jego dezaktywacja unieważnia odpowiednie dostępy; - token API zależy od klucza utworzonego w interfejsie; usunięcie tego klucza lub upływ jego daty wygaśnięcia unieważnia powiązane tokeny. Zob. także [Link udostępniania](#page-glossary.share-link) i [API Omniscol](#page-integrations.api-tokens). #### API: klucze i tokeny Dostępem do API zarządza się z interfejsu za pomocą dwóch widocznych obiektów: 1. **Klucz** — tworzony z etykietą i, w razie potrzeby, z datą wygaśnięcia. Tę datę można później zmienić. 2. **Token** — generowany z klucza, z listą dozwolonych punktów dostępu API i własną datą wygaśnięcia. Tej daty nie można zmienić po wygenerowaniu; trzeba utworzyć nowy token. Dobra praktyka: jeden klucz na integrację, z jednoznaczną etykietą i datą wygaśnięcia dopasowaną do potrzeby. W razie wątpliwości proszę usunąć klucz i utworzyć nowy. Zob. [API Omniscol](#page-integrations.api-tokens). #### Czy użytkownicy mogą korzystać z konta firmowego (SSO)? Tak, przez [OIDC / SSO](#page-integrations.oauth2), gdy konfiguracja jest włączona na koncie. Omniscol obsługuje Google Workspace, Microsoft Entra ID oraz dowolnych dostawców OIDC. Każdy użytkownik loguje się wtedy swoją tożsamością firmową i zachowuje uprawnienia skonfigurowane w Omniscol. #### Jakie zabezpieczenia chronią przed nadużyciami przy logowaniu? - Odpowiedzi na nieudane uwierzytelnienie są celowo opóźniane. - Ekrany administracyjne są zabezpieczone mocniej. - Omniscol nie ujawnia, czy identyfikator istnieje: komunikat pozostaje ogólny. #### Cykl życia kont użytkowników - **Dezaktywacja bez usunięcia** — dezaktywowane konto nie może się już zalogować, ale powiązane z nim dane zostają zachowane. - **Obowiązkowa zmiana przy pierwszym dostępie** — gdy hasło zostało ustawione ręcznie, użytkownik musi je zmienić przy pierwszym logowaniu. - **Resetowanie** — administrator może uruchomić reset bez znajomości istniejącego hasła. #### Bezpieczeństwo sieci i eksploatacja Dokumenty dotyczące bezpieczeństwa, udostępniane na życzenie, opisują szczegółowo hosting, separację sieci, zasady dostępu do danych i procedury operacyjne obowiązujące dla danego konta. #### Czy istnieje dziennik audytu? Tak, gdy dla konta włączono opcję logów i odpowiedni okres przechowywania. Widoczny zakres zależy od rejestrowanych operacji i od głębokości ustawionej przez Omniscol. Zob. [Dziennik aktywności (logi)](#page-admin.logs). #### OWASP Top 10 Omniscol stosuje zabezpieczenia odpowiadające ryzykom OWASP Top 10: kontrola dostępu, szyfrowanie, walidacja danych wejściowych, bezpieczna konfiguracja, monitorowanie zależności, ochrona sesji i rejestrowanie zdarzeń. Dokładny zakres można opisać w dokumentach dotyczących bezpieczeństwa, udostępnianych na życzenie. #### Automatyczne testy bezpieczeństwa Automatyczne kontrole są wbudowane w proces rozwoju i wdrażania Omniscol. Ich zakres zmienia się razem z produktem; szczegóły można przekazać w odpowiednich dokumentach dotyczących bezpieczeństwa. #### Jak wykonać kopię zapasową ręcznie? Przycisk **Pobierz** pobiera pełny eksport konta w formacie JSON. Plik należy przechowywać starannie: zawiera skróty haseł i wszystkie dane osobowe. W razie poważnego incydentu plik można odesłać zespołowi Omniscol do ponownego wczytania. Jeśli na koncie włączona jest opcja **Snapshots**, można też zautomatyzować tworzenie punktów kopii zapasowych gotowych do przywrócenia. Zob. [Punkty kopii zapasowych](#page-admin.snapshots). #### Historia incydentów Według najnowszego zestawienia (luty 2026): - **0 naruszeń danych klientów** (w całej historii). - **0 incydentów bezpieczeństwa** w 2025 roku. Te liczby są publikowane w `SECURITY_ONE_PAGER.md`, dokumencie weryfikowanym co kwartał. #### Zobacz także - [Architektura i role](#page-overview.architecture-and-roles) - [Link udostępniania](#page-glossary.share-link) - [Token API](#page-glossary.api-token) - [API Omniscol](#page-integrations.api-tokens) - [OIDC / SSO](#page-integrations.oauth2) - [Kopie zapasowe i snapshoty](#page-admin.snapshots) - [Dziennik aktywności (logi)](#page-admin.logs) ### 16.9 FAQ — cennik i licencje *Source: `help/pl/faq/pricing-and-licenses.md` · id: faq.pricing-and-licenses · Updated: 2026-07-24* Najczęściej zadawane pytania o plany abonamentowe, zawarte w nich funkcje i opcje wykupywane osobno, a także o fakturowanie. Szczegółowe zestawienie funkcji w poszczególnych planach i opcjach zawiera [Plany i opcje Omniscol](#page-overview.plans-and-options). #### Jakie plany abonamentowe są dostępne? Trzy plany główne oraz zestaw opcji wykupywanych osobno: | Plan | Grupa docelowa | | --- | --- | | **Lite** | Bardzo małe placówki, osoby pracujące na własny rachunek, samodzielni szkoleniowcy, testy — wyłącznie generowanie planu lekcji i drukowanie (bez publikacji i bez zarządzania uczniami) | | **Core** | Typowa placówka (szkoła podstawowa, liceum, technikum), jeden zespół planujący, tygodniowy plan lekcji | | **Premium** | Szkolnictwo wyższe, kształcenie ustawiczne, duża skala, złożona praca w wielu lokalizacjach | Do tego dochodzą **Core Plus** (Core uzupełniony modułem **Obsada personelu**) oraz samodzielna oferta **Obsada personelu** (zarządzanie dyżurami bez pozostałej części Omniscol). Zob. [Plany i opcje Omniscol](#page-overview.plans-and-options), aby poznać szczegółowy wykaz funkcji. #### Jakie funkcje są zawarte w planie Premium? Domyślnie na koncie Premium: - Tryb kalendarzowy — plany lekcji z datami, lekcja po lekcji; - Dostępność kalendarzowa — dostępność wprowadzana data po dacie; - Kilka planów lekcji opublikowanych równolegle — na tych samych tygodniach, z automatycznym scalaniem widoków. (**Grupy grup** nie są funkcją Premium: są dostępne na wszystkich kontach, niezależnie od planu.) #### Jakie opcje można wykupić osobno? Pozostałe opcje umowne można włączyć zależnie od potrzeb konta, jako uzupełnienie wybranego planu: - Kilka planów lekcji opublikowanych równolegle na koncie Core — wyjątkowy przypadek włączenia na podstawie umowy, z odpowiednio ustalonym zakresem i fakturowaniem (w planie Premium funkcja jest zawarta domyślnie); - Konta powiązane — konta powiązane i współdzielenie obłożenia zasobów, włączane przez Omniscol na życzenie; - Role niestandardowe — role niestandardowe z macierzą uprawnień; - Punkty kopii zapasowych — odtwarzalne stany konta; - Współpraca — wspólna edycja w czasie rzeczywistym; - **Obsada personelu** — moduł dyżurów i opieki (dostępny także jako samodzielna oferta, bez pozostałej części Omniscol); - Synchronizacja z systemami zewnętrznymi — synchronizacja z zewnętrznym systemem ERP / informatycznym (Aurion, Auriga albo konektor dodany w ramach projektu); - Dziennik aktywności — wgląd w zapisy dziennika, gdy na koncie ustawiono okres przechowywania; - Moduły dodatkowe — dodatkowe moduły opcjonalne, zależnie od modułu i umowy. #### Czy istnieje oferta „tylko Obsada personelu”? Tak. Dla placówek, które potrzebują wyłącznie zarządzania dyżurami i opieką, moduł **Obsada personelu** sprzedawany jest również bez pozostałej części Omniscol. Konto udostępnia wtedy tylko moduł **Obsada personelu** oraz minimalne ekrany użytkowników. #### Gdzie znaleźć cennik? Każda placówka jest inna: cena zależy od wielkości, wybranych funkcji, okresu zobowiązania i oczekiwanego wsparcia. Zamiast publicznego cennika zespół Omniscol wspólnie z placówką analizuje jej sytuację i przygotowuje dopasowaną wycenę. Proszę napisać na adres **[contact@omniscol.com](mailto:contact@omniscol.com)** albo zamówić demonstrację, aby omówić to bezpośrednio (zob. [Pytania ogólne](#page-faq.general)). #### Jak sprawdzić plan swojego konta? Obowiązujący plan i wykupione opcje nie są pokazywane w zwykłym interfejsie administracyjnym (odpowiadająca im część sekcji **Ustawienia** jest zarezerwowana dla Omniscol). Aby poznać plan konta, należy skontaktować się z zespołem Omniscol. #### Czy można zmienić plan albo dodać opcje w trakcie roku szkolnego? Tak. Dodanie opcji obowiązuje natychmiast, bez przerwy w działaniu usługi. Przejście z planu Core na Premium odbywa się na tej samej zasadzie. Wyłączenie opcji wymaga, aby odpowiadające jej funkcje nie były już używane na koncie (na przykład brak współdzielenia zasobów między kontami, jeśli usuwane są konta powiązane, albo brak jednoczesnych publikacji, jeśli na danym koncie Core usuwana jest opcja kilku planów lekcji opublikowanych równolegle). #### Czy jest okres próbny? Tak. Dla nowych kont zwykle proponowany jest okres testowy, ze wsparciem zespołu Omniscol przy początkowej konfiguracji. Warunki na życzenie. #### Jak działa fakturowanie? Fakturowanie jest domyślnie roczne, ze zobowiązaniem na wybrany okres. Szczegółowe warunki (częstotliwość fakturowania, formy płatności) określa umowa. #### Co się dzieje po zakończeniu umowy? Dane konta pozostają dostępne przez okres przejściowy określony w umowie; w tym czasie dostępny pozostaje pełny eksport w formacie JSON. Odwracalność jest zagwarantowana umownie (RODO). #### Zobacz także - [Plany i opcje Omniscol](#page-overview.plans-and-options) - [Czym jest Omniscol?](#page-overview.what-is-omniscol) - [Bezpieczeństwo i hosting](#page-faq.security-and-hosting) --- ## Słowniczek **Słowniczek** — 55 terms - [Algorytm generowania / Automatyczne generowanie planu lekcji](#page-glossary.solver) - [Cykliczny plan lekcji](#page-glossary.cyclic-timetable) - [Diagnostyka](#page-glossary.diagnostic) - [Dni wolne](#page-glossary.holidays) - [Dostępność nauczycieli (deklaracje)](#page-glossary.wishes) - [Duża sala (kilka lekcji jednocześnie)](#page-glossary.large-room) - [Grupa](#page-glossary.group) - [Grupa grup](#page-glossary.groups-of-groups) - [Grupa wolna](#page-glossary.free-group) - [iCal (eksport kalendarza)](#page-glossary.ical) - [Kampus](#page-glossary.campus) - [Klasa](#page-glossary.class) - [Konflikt](#page-glossary.conflict) - [Kurs](#page-glossary.course) - [Kurs przekrojowy](#page-glossary.transverse-course) - [Lekcja / Godzina lekcyjna](#page-glossary.lesson) - [Lekcje naprzemienne / Tygodnie A-B](#page-glossary.alternate-lessons) - [Lekcje połączone](#page-glossary.concatenated-lessons) - [Lekcje skojarzone (naprzemienne grupy połówkowe)](#page-glossary.associated-lessons) - [Link udostępniania](#page-glossary.share-link) - [Lokalizacja](#page-glossary.site) - [Nauczyciel / Prowadzący](#page-glossary.teacher) - [Nauczyciel zewnętrzny / Nauczyciel na umowę zlecenie](#page-glossary.external-teacher) - [Niekompatybilność (między przedmiotami)](#page-glossary.incompatibility) - [Nieobecność](#page-glossary.absence) - [Obsada personelu](#page-glossary.staffing) - [Obszar planowania](#page-glossary.planning-domain) - [Okno dat](#page-glossary.date-windows) - [Oś czasu](#page-glossary.timeline) - [Panel informacyjny](#page-glossary.panel) - [Panel zarządczy](#page-glossary.dashboard) - [Plan lekcji](#page-glossary.timetable) - [Podział klasy](#page-glossary.class-division) - [Polityka podziału godzin](#page-glossary.distribution-policy) - [Poza siatką](#page-glossary.off-grid) - [Poziom](#page-glossary.level) - [Przedmiot](#page-glossary.subject) - [Publikacja planu lekcji](#page-glossary.publication) - [Rok szkolny](#page-glossary.school-year) - [Sala](#page-glossary.classroom) - [Siatka godzin](#page-glossary.timetable-grid) - [Specjalizacja sali](#page-glossary.classroom-specialization) - [Status lekcji](#page-glossary.lesson-status) - [Token API](#page-glossary.api-token) - [Tryb kalendarzowy](#page-glossary.calendar-mode) - [Tryb lekcji](#page-glossary.lesson-modality) - [Tryb wyświetlania planu lekcji](#page-glossary.schedule-view-mode) - [Tygodniowy plan lekcji](#page-glossary.weekly-timetable) - [Typ lekcji](#page-glossary.lesson-type) - [Uczeń / Student / Słuchacz](#page-glossary.student) - [Wiele sal (jedna lekcja w kilku salach)](#page-glossary.multi-room) - [Współnauczanie](#page-glossary.co-teaching) - [Wyrównanie grup](#page-glossary.alignment) - [Zasób](#page-glossary.resource) - [Zastępstwo](#page-glossary.substitution) ### Algorytm generowania / Automatyczne generowanie planu lekcji *Source: `help/pl/glossary/solver.md` · id: glossary.solver · Updated: 2026-06-13* **Algorytm generowania** Omniscol automatycznie wylicza umieszczenie lekcji w planie lekcji [tygodniowym](#page-glossary.weekly-timetable), [cyklicznym](#page-glossary.cyclic-timetable) lub [kalendarzowym](#page-glossary.calendar-mode). Umieszcza lekcje utworzone, ale jeszcze nieumieszczone, może przesunąć lekcje już umieszczone, jeśli poprawia to plan lekcji, i zachowuje zablokowane lekcje na ich miejscu. #### Jak to działa Po rozpoczęciu generowania Omniscol uruchamia dedykowane, zrównoleglone środowisko obliczeniowe. Szkoła nie musi zarządzać żadną kolejką; inicjalizacja zajmuje często około dziesięciu sekund, zanim pojawią się pierwsze widoczne obliczenia. Wynik zależy od jakości wprowadzonych danych: lokalizacji, sal, nauczycieli, grup, liczby godzin, dostępności i niekompatybilności. Im liczniejsze lub bardziej sprzeczne są ograniczenia, tym dłużej może trwać generowanie albo tym bardziej prawdopodobne, że jego wynik będzie częściowy. Silnikiem jest optymalizacyjna sztuczna inteligencja typu **neurosymboliczna metaheurystyka Monte Carlo**: łączy przeszukiwanie stochastyczne, symboliczne reguły dziedzinowe i ocenianie ograniczeń. Najważniejszy jest aspekt operacyjny: algorytm generowania jest zaprojektowany dla przypadków bardzo silnie ograniczonych, a sytuacje niemożliwe zgłasza, zamiast ukrywać konflikty. #### Twarde ograniczenia Algorytm generowania bezwzględnie respektuje ograniczenia, których naruszenie unieważniłoby plan lekcji: - nauczyciel nie może być w dwóch miejscach w tym samym czasie; - klasa nie może mieć dwóch lekcji w tym samym czasie, poza przypadkami przewidzianymi dla grup objętych podziałem klasy; - dostępność i ograniczenia czasowe oznaczone jako **niedostępne** blokują umieszczenie; - sala ogólna nie może przyjąć dwóch lekcji w tym samym momencie; - duża sala może przyjąć kilka lekcji tylko w granicach skonfigurowanej pojemności i liczby klas; - sale specjalistyczne, pojemności, zasoby materialne i czasy przejazdu między lokalizacjami muszą pozostać zgodne; - zablokowana lekcja zachowuje swoją pozycję. #### Ograniczenia optymalizacyjne Miękkie ograniczenia służą do oceniania i ulepszania znalezionych rozwiązań. Nie są pomijane: stają się punktami karnymi, których liczbę algorytm generowania stara się zmniejszyć. Częste przykłady: - dostępność lub ograniczenia czasowe oznaczone jako **niepożądane** dla nauczyciela, sali, kursu, grupy lub klasy; - niekompatybilności pedagogiczne między przedmiotami, na przykład unikanie laboratorium przed odpowiadającym mu wykładem, unikanie zajęć sportowych bezpośrednio po bardzo intensywnej lekcji albo narzucenie kolejności w programie nauczania; - unikanie dwóch lekcji tego samego przedmiotu w tym samym dniu w jednej klasie; - minimalna lub maksymalna liczba godzin lekcyjnych dziennie albo tygodniowo; - równowaga dni; - zmniejszanie luk w planach lekcji klas i nauczycieli; - liczba dni obecności nauczycieli, zależnie od zwyczajów szkoły lub kraju. Poszukiwanie prawidłowego rozwiązania to pierwszy etap. Optymalizacja punktów karnych może potem stać się najdłuższą częścią obliczeń. #### Dostępność funkcji - **Plany lekcji tygodniowe** — dostępne. - **Plany lekcji cykliczne** — dostępne. - **Plany lekcji kalendarzowe** — dostępne, z lekcjami datowanymi i zakresem dat. #### Co zrobić, jeśli generowanie się nie uda Gdy nie zostanie znalezione żadne kompletne rozwiązanie, Omniscol zachowuje najlepszy obliczony plan lekcji, a lekcje niemożliwe do umieszczenia pozostawia na liście nieumieszczonych karteczek. Można wtedy przejrzeć częściowy plan lekcji, zapoznać się z diagnostyką i poprawić ograniczenia. Częste przyczyny: - zbyt restrykcyjna dostępność (nauczyciel nie ma żadnego wolnego, zgodnego przedziału czasowego), - za mało sal albo brak dostępnej sali specjalistycznej, - niespójne wyrównanie grup (różna liczba godzin w wyrównanych grupach), - zbyt liczne lub zbyt rygorystyczne niekompatybilności, - teoretyczna liczebność klasy > pojemność wszystkich rozważanych sal. Zob. [Diagnozowanie nieudanego generowania](#page-timetables.diagnosing-generation). #### Wymuszenie umieszczenia lekcji Przed ponownym uruchomieniem generowania można **zablokować** pozycję lekcji: algorytm generowania jej wtedy nie przesuwa, lecz dostosowuje wokół niej pozostałe. Przydaje się to do zakotwiczenia lekcji „niezmiennych” (zajęć prowadzonych przez nauczycieli zewnętrznych w terminie ustalonym w umowie, egzaminów o wyznaczonej dacie itd.). #### Zobacz także - [Tygodniowy plan lekcji](#page-glossary.weekly-timetable) - [Dostępność](#page-glossary.wishes) - [Diagnostyka i konflikty](#page-glossary.conflict) - [Automatyczne generowanie](#page-timetables.generation) ### Cykliczny plan lekcji *Source: `help/pl/glossary/cyclic-timetable.md` · id: glossary.cyclic-timetable · Updated: 2026-05-10* *Also known as : dni numerowane* **Cykliczny plan lekcji** definiuje lekcje powtarzające się w cyklu o dowolnej liczbie dni (Day 1, Day 2, … Day 6 itd.), niekoniecznie zgodnym z tygodniem 5- lub 7-dniowym. Jest to rozwiązanie typowe dla **systemów północnoamerykańskich** (cykle 6- lub 8-dniowe), stosowane w niektórych szkołach międzynarodowych i rzadziej w Europie. #### Różnica w porównaniu z trybem tygodniowym | Aspekt | Tygodniowy | Cykliczny | | --- | --- | --- | | Jednostka powtarzalności | Tydzień (5-7 dni) | Cykl N dni | | Numeracja | Poniedziałek, wtorek… | Day 1, Day 2… | | Przy publikacji | Wybiera się tygodnie publikacji | Wybiera się dni tygodnia, w których obowiązuje cykl | | Generowanie automatyczne | Tak | Tak | #### Kiedy go stosować Jeśli placówka pracuje w cyklu 6-dniowym (na przykład Day 1 w poniedziałek, Day 2 we wtorek, Day 3 w środę, Day 4 w czwartek, Day 5 w piątek, Day 6 w następny poniedziałek, Day 1 w następny wtorek…), tryb tygodniowy nie jest odpowiedni — tryb cykliczny powstał właśnie dla takiego przypadku. Jeśli placówka działa w Europie z cyklem 5-dniowym dokładnie pokrywającym się z tygodniem, lepiej pozostać przy trybie tygodniowym — jest prostszy w konfiguracji i w publikacji. #### Zobacz także - [Plan lekcji](#page-glossary.timetable) - [Wybór właściwego typu planu lekcji](#page-overview.timetable-modes) ### Diagnostyka *Source: `help/pl/glossary/diagnostic.md` · id: glossary.diagnostic · Updated: 2026-06-26* *Also known as : weryfikacja · kontrola · alert konfiguracji · alert spójności* **Diagnostyka** w Omniscol to kontrola spójności wykonywana przez system w sposób ciągły, która wskazuje problemy w konfiguracji planu lekcji, zanim doprowadzą one do niepowodzenia generowania albo do nieprawidłowego wyniku. #### Poziomy ważności - **Krytyczny** (czerwony, blokujący) — uniemożliwia pomyślne generowanie: strukturalnie niemożliwe wyrównanie grup, niewystarczająca łączna pojemność sal, nauczyciel bez żadnego wolnego przedziału czasowego… - **Ostrzeżenie** (pomarańczowy) — można je pozostawić bez zmian, ale sygnalizuje ryzyko albo niespójność wymagającą sprawdzenia: nierówna liczba godzin w wyrównanych grupach, sala nieco za mała, bardzo ograniczająca dostępność. - **Informacja** (niebieski) — uwaga nieblokująca: „niektóre sale nigdy nie są używane”, „nauczyciel ma znacznie mniej godzin pracy niż pozostali”. #### Gdzie widać diagnostykę - Na **górnym pasku** ekranu „Podział godzin” oraz podglądu planu lekcji. - Obok **nazwy klasy** albo danego nauczyciela na listach. - Szczegółowo w zakładce Generowanie (albo weryfikacja — zależnie od trybu planu lekcji), z kontekstowym wyjaśnieniem dla każdego komunikatu. #### Częste komunikaty diagnostyczne | Komunikat diagnostyczny | Typowa przyczyna | Jak rozwiązać | | --- | --- | --- | | Brak zgodnej sali | Wymagana specjalizacja bez odpowiadającej jej sali | Utworzyć salę albo znieść specjalizację | | Niespójna liczba godzin w wyrównaniu grup | Jedna klasa ma 2 godz., druga 3 godz. w tej samej wyrównanej grupie | Zrównać liczby godzin albo usunąć wyrównanie | | Niewystarczająca pojemność sali | Liczebność > pojemność sali | Przypisać większą salę albo kilka sal ([wiele sal](#page-glossary.multi-room)) | | Dostępność bez możliwego przedziału czasowego | Wszystkie przedziały czasowe są oznaczone jako niedostępne dla tego nauczyciela | Złagodzić dostępność albo inaczej rozłożyć lekcje | | Lekcja w okresie nieobecności | Lekcja umieszczona w okresie, w którym nauczyciel jest nieobecny | Przenieść lekcję albo usunąć nieobecność | #### Zobacz także - [Konflikt](#page-glossary.conflict) - [Algorytm generowania](#page-glossary.solver) - [Diagnozowanie nieudanego generowania](#page-timetables.diagnosing-generation) ### Dni wolne *Source: `help/pl/glossary/holidays.md` · id: glossary.holidays · Updated: 2026-06-26* *Also known as : wakacje · święta · ferie szkolne* **Dni wolne** to okresy zamknięcia szkoły powiązane z [rokiem szkolnym](#page-glossary.school-year): ferie szkolne, długie weekendy i święta. Każdy taki okres ma nazwę, datę rozpoczęcia i datę zakończenia. Przy tworzeniu roku szkolnego Omniscol może zaproponować import dni wolnych obowiązujących w ustawionym kraju, jeśli dla wybranego przedziału dostępne są dane. Następnie listę uzupełnia się i koryguje ręcznie. #### Wpływ na plan lekcji Wpływ okresu dni wolnych zależy od typu planu lekcji: - **Powtarzalny plan lekcji (tygodniowy lub cykliczny)**: przy publikacji dni wolne odwołują lekcje przypadające na objęte nimi dni — powtarzalne kursy nie odbywają się w tych dniach, a statystyki to uwzględniają. - **Plan lekcji typu kalendarz**: lekcję można umieścić w dniu wolnym, ale powstaje wtedy konflikt; algorytm generowania zastrzega sobie wówczas prawo do przeniesienia tej lekcji, jeśli nie jest ona zablokowana. Dni wolne opisują zamknięcie **całej** szkoły. Aby zneutralizować okres w węższym zakresie: - [nieobecność klasy](#page-absences.class-and-student-absences) wyłącza jedną klasę w danym okresie; - w planie lekcji typu kalendarz [okna dat](#page-glossary.date-windows) ograniczają okres aktywności konkretnego kursu. #### Gdzie je skonfigurować Dniami wolnymi zarządza się dla każdego roku szkolnego, w [latach szkolnych](#page-admin.school-year), pojedynczo albo w tabeli. #### Zobacz także - [Rok szkolny](#page-glossary.school-year) - [Okno dat](#page-glossary.date-windows) - [Lata szkolne](#page-admin.school-year) ### Dostępność nauczycieli (deklaracje) *Source: `help/pl/glossary/wishes.md` · id: glossary.wishes · Updated: 2026-06-21* *Also known as : niedostępność · preferencje · deklaracje nauczycieli · dostępność nauczyciela* **Dostępność** nauczyciela wskazuje oprogramowaniu przedziały czasowe, które są **niedostępne** (czarny, twarde ograniczenia), **niepożądane** (czerwony, miękkie ograniczenia) albo **preferowane** (zielony). W szkolnictwie średnim mówi się też o **deklaracjach nauczycieli** — chodzi o to samo pojęcie: nauczyciel wprowadza swoją teoretyczną dostępność tygodniową, a szkoła dysponuje nią przy generowaniu planu lekcji (ewentualnie po jej zmianie lub nadaniu jej wag). Algorytm generowania **bezwzględnie** przestrzega niedostępności i w miarę możliwości stara się uwzględnić przedziały niepożądane / preferowane, zależnie od pozostałych ograniczeń. #### Dwa tryby zależnie od typu planu lekcji - **Tygodniowy plan lekcji** — dostępność wprowadzana na tygodniu wzorcowym, zatwierdzana przez administrację przed generowaniem. Późniejsza zmiana jest zgłaszana, ale niczego nie zakłóca. - **Kalendarzowy plan lekcji** (na kontach Premium) — dostępność wprowadzana data po dacie, konsolidowana w czasie rzeczywistym. Konflikty są wykrywane na bieżąco. #### Wprowadzanie przez samego nauczyciela Nauczyciele mogą wprowadzać własną dostępność ze swojego konta ([portal nauczyciela](#page-portal.teacher-portal)) — to duża oszczędność czasu dla administracji. Mogą też otrzymać **bezpośredni link udostępniania do ekranu dostępności** (bez konieczności logowania się), wygenerowany z Pobierz wraz z datą wygaśnięcia. #### Zobacz także - [Nauczyciel](#page-glossary.teacher) - [Algorytm generowania](#page-glossary.solver) - [Dostępność i ograniczenia czasowe nauczycieli](#page-core-concepts.wishes-and-availability) - [Dostępność w trybie kalendarzowym](#page-timetables.calendar-wishes) ### Duża sala (kilka lekcji jednocześnie) *Source: `help/pl/glossary/large-room.md` · id: glossary.large-room · Updated: 2026-06-25* *Also known as : maksymalna liczba klas · sala egzaminacyjna · teatr · sala gimnastyczna · pływalnia · przestrzeń na zewnątrz* **Duża sala** to [sala](#page-glossary.classroom), która może przyjąć **kilka różnych lekcji w tym samym momencie**, z różnymi nauczycielami i bez relacji grupowych między nimi. Deklaruje się ją, wypełniając na sali pole **Maksymalna liczba klas**: ta liczba określa, ile odrębnych lekcji może się w niej odbywać równolegle. Typowe przykłady: **sala egzaminacyjna**, **hol**, **przestrzeń na zewnątrz** (dziedziniec, teatr, boisko, muzeum...), **sala gimnastyczna**, **pływalnia** — czyli miejsca, w których współistnieje kilka niezależnych aktywności. #### Tylko dla sal ze specjalizacją Pole Maksymalna liczba klas pojawia się wyłącznie na sali mającej **[specjalizację](#page-glossary.classroom-specialization)**. Najpierw należy więc nadać sali specjalizację (sport, egzamin, pływalnia, przestrzeń na zewnątrz…), a potem podać jej maksymalną liczbę jednoczesnych klas. Jest to spójne: współdzielona duża sala to zawsze przestrzeń przeznaczona do określonej aktywności, a specjalizacja służy więc również do kierowania tam właściwych przedmiotów. #### Jak Omniscol z tego korzysta W każdym przedziale czasowym [algorytm generowania](#page-glossary.solver) i wykrywanie konfliktów pozwalają umieścić w sali tyle lekcji, ile dopuszcza Maksymalna liczba klas, o ile suma ich liczebności pozostaje w granicach **[pojemności](#page-glossary.classroom)** sali. Po przekroczeniu jednego z tych dwóch pułapów — za dużo równoległych lekcji albo przekroczona pojemność — Omniscol zgłasza konflikt. Sala bez wypełnionego pola Maksymalna liczba klas zachowuje się jak zwykła sala: tylko jedna lekcja naraz. #### Duża sala czy wiele sal? Oba pojęcia dotyczą pary sala ↔ lekcja, ale w dwóch przeciwnych kierunkach: - **duża sala** łączy **kilka lekcji w jednej sali**; - lekcja w trybie **[wielu sal](#page-glossary.multi-room)** zajmuje natomiast **kilka sal na jedną lekcję** (jej pojemność jest wtedy sumą przypisanych sal). #### Zobacz także - [Sala](#page-glossary.classroom) - [Specjalizacja sali](#page-glossary.classroom-specialization) - [Wiele sal](#page-glossary.multi-room) - [Lokalizacje, siatki godzin, sale, zasoby](#page-timetables.sites-rooms) ### Grupa *Source: `help/pl/glossary/group.md` · id: glossary.group · Updated: 2026-05-10* *Also known as : podgrupa · grupa połówkowa · grupa przedmiotu do wyboru · laboratorium-a · laboratorium-b* W Omniscol **grupa** jest **podzbiorem klasy**. Wszyscy uczniowie grupy są jednocześnie uczniami klasy nadrzędnej. Grupę tworzy się za każdym razem, gdy część uczniów klasy ma realizować inny kurs niż reszta klasy — nawet tymczasowo, na potrzeby jednej lekcji. Przykłady: - grupy połówkowe na laboratoriach („Laboratorium A”, „Laboratorium B”), - grupy przedmiotów do wyboru („Łacina”, „Greka”, „Drugi język obcy: hiszpański”, „Drugi język obcy: niemiecki”), - grupy poziomowe („Angielski rozszerzony”, „Angielski podstawowy”). #### Zdecydowane zalecenie: jedna grupa na kurs Nawet jeśli uczniowie łaciny i uczniowie greki w jednej klasie to w praktyce ci sami uczniowie, **proszę utworzyć dwie osobne grupy**. W przeciwnym razie [wyrównania](#page-glossary.alignment) z innymi klasami stają się niejednoznaczne, a konflikty trudno zdiagnozować. Odwrotnie: nie ma potrzeby tworzenia grupy „Cała klasa”. Gdy kurs jest przeznaczony dla całej klasy, nie dołącza się żadnej grupy, kurs przypisuje się po prostu do klasy. #### Teoretyczna liczba uczniów Proszę podać liczbę uczniów spodziewaną w grupie. Pole nieobowiązkowe, ale zalecane: [algorytm generowania](#page-glossary.solver) korzysta z niego przy doborze [sal](#page-glossary.classroom) o odpowiedniej pojemności. #### Łączenie uczniów z kilku klas Pojęcie grupy zatrzymuje się na granicy jednej klasy. Aby połączyć uczniów łaciny z klas 1a, 1b i 1c, którzy mają wspólne lekcje: - proszę utworzyć w każdej z trzech klas grupę „Łacina”, - a następnie utworzyć [wyrównanie](#page-glossary.alignment), które powiąże wszystkie trzy grupy. Można też użyć [grupy grup](#page-glossary.groups-of-groups), którą łatwiej modyfikować, gdy zgrupowanie ma się zmieniać. #### Grupy wolne W przypadku zapisów otwartych (wieczorne warsztaty, przedmioty do wyboru nieograniczone klasą) proszę zapoznać się z pojęciem [grupy wolnej](#page-glossary.free-group) — skład nie jest ustalony z góry, uczniowie mogą dołączać i odchodzić bez powodowania konfliktu. To przypadek **wyjątkowy** (półautonomiczna podgrupa satelitarna): aby po prostu **zebrać albo połączyć istniejące grupy** na wspólnej lekcji, należy użyć grupy grup, a nie grupy wolnej. #### Zobacz także - [Klasa](#page-glossary.class) - [Podział klasy](#page-glossary.class-division) - [Wyrównanie grup](#page-glossary.alignment) - [Grupy grup](#page-glossary.groups-of-groups) - [Grupa wolna](#page-glossary.free-group) ### Grupa grup *Source: `help/pl/glossary/groups-of-groups.md` · id: glossary.groups-of-groups · Updated: 2026-05-10* *Also known as : supergrupa · zgrupowanie grup* **Grupa grup** to zgrupowanie — bardziej elastyczne niż [wyrównanie grup](#page-glossary.alignment) — kilku [grup](#page-glossary.group) pochodzących z tej samej klasy albo z różnych klas. Dostępna w Omniscol jako podstawowy mechanizm grupowania. #### Kluczowa różnica wobec wyrównania grup Wyrównanie jest **zamrożone w chwili utworzenia**: lista wyrównanych grup jest ustalona, a każde wyłączenie z wyrównania wymaga sklonowania grupy. Grupę grup natomiast **można zmieniać po fakcie**. Grupy można dodawać i usuwać bez odtwarzania całej struktury. To właśnie czyni ją cenną w szkolnictwie wyższym, gdzie skład zgrupowań często zmienia się w ciągu roku (nowa ścieżka kształcenia dołącza do kursu wspólnego, podgrupa wydziela się na czas przedsięwzięcia). #### Kiedy jej używać - Kursy wspólne dla kilku ścieżek kształcenia (uczelnia techniczna lub szkoła biznesu), - Wykłady międzyrocznikowe, seminaria przekrojowe, - Kursy wspólnego trzonu w kształceniu ustawicznym, - Otwarte wydarzenia dydaktyczne (wizyta studyjna, wystąpienie gościa z zewnątrz). Kurs przypisany do grupy grup jest widoczny (i edytowalny) z każdej klasy nadrzędnej grup składowych. #### Cecha szczególna Grupa grup jest szczególnie przydatna, gdy skład odbiorców zmienia się w ciągu roku albo gdy trzeba uniknąć ograniczeń symetrii, jakie narzuca wyrównanie. #### Zobacz także - [Wyrównanie grup](#page-glossary.alignment) - [Kurs przekrojowy](#page-glossary.transverse-course) - [Tryb kalendarzowy](#page-glossary.calendar-mode) - [Grupy grup](#page-core-concepts.groups-of-groups) ### Grupa wolna *Source: `help/pl/glossary/free-group.md` · id: glossary.free-group · Updated: 2026-06-13* *Also known as : grupa satelitarna · grupa półautonomiczna · grupa otwarta · grupa z zapisami* **Grupa wolna** to **półautonomiczna grupa robocza**: część klasy pracuje samodzielnie, zwykle **w tej samej sali i z tym samym nauczycielem** co kurs główny, równolegle do niego — rodzaj **grupy satelitarnej** kursu. Autor planu lekcji chce **umieścić ją w planie lekcji**, nie tworząc naprzeciw niej formalnego podziału klasy. Stąd pochodzi słowo **wolna**: ponieważ ta podgrupa dzieli salę i nauczyciela z kursem, z którego się wywodzi, zwykła [grupa](#page-glossary.group) (nawet w podziale klasy) wywołałaby **konflikt sali i nauczyciela**. Grupa wolna to **joker**, który **wyłącza wszystkie konflikty** — ani z resztą klasy, ani z nauczycielem, ani z salą. Współistnieje więc z lekcją, z której się wywodzi. Taka potrzeba pojawia się przede wszystkim w **szkołach artystycznych** oraz na **kierunkach pracy socjalnej**, gdzie część czasu przebiega jako **samodzielna praca pod nadzorem**: podgrupa pracuje nad swoim projektem w kącie sali, podczas gdy reszta klasy uczestniczy w lekcji. Szerzej rzecz ujmując, grupa wolna modeluje każdą grupę, której skład **nie jest z góry ustalony**, bez powodowania konfliktu. #### Różnica wobec grupy zwykłej Grupa zwykła jest uwzględniana przez algorytm generowania: sprawdza on, czy jej uczniowie nie są zajęci w dwóch miejscach jednocześnie (dwie lekcje w tym samym czasie) oraz czy wolne są zarówno jej **sala**, jak i **nauczyciel**. Właśnie to uniemożliwiłoby utworzenie grupy satelitarnej: sala i nauczyciel kursu głównego są już zajęci. Grupa wolna **znosi te sprawdzenia**. Jej lekcja może więc dzielić salę i nauczyciela z kursem, z którego się wywodzi; a uczeń może należeć do kilku nakładających się grup wolnych, nie wywołując żadnego ostrzeżenia. #### W praktyce: ręczne umieszczanie Generowanie **obsługuje** grupy wolne, ale w tym przypadku zaleca się **nie** z niego korzystać: proszę **ręcznie umieścić i zablokować** lekcję główną oraz jej lekcję satelitarną w wybranym przedziale czasowym. Algorytm generowania nie wie, która z nich jest główna, a która satelitarna — pozostawione generowaniu, mogłyby wypaść w dowolnym miejscu. Ze względu na swój bardzo okazjonalny i specyficzny charakter grupa wolna nadaje się do **użycia ręcznego**. #### Tworzenie Przy tworzeniu grupy proszę zaznaczyć opcję „grupa wolna” na Dodaj grupę. Wizualnie grupy te są oznaczone w interfejsie, aby nie mylić ich z grupami objętymi ograniczeniami. > _Premium_ Grupy wolne są funkcją kont Premium. #### Zobacz także - [Grupa](#page-glossary.group) - [Grupy wolne](#page-core-concepts.free-groups) ### iCal (eksport kalendarza) *Source: `help/pl/glossary/ical.md` · id: glossary.ical · Updated: 2026-05-15* *Also known as : ics · subskrypcja kalendarza · link ical · eksport ical* **iCal** (rozszerzenie `.ics`) to standardowy format wymiany kalendarzy, czytany przez wszystkie dostępne na rynku aplikacje kalendarza: Apple Calendar, Google Calendar, Outlook, Thunderbird, Fastmail i inne. Omniscol udostępnia dwa rodzaje eksportu iCal: #### 1. Pobranie statyczne Przycisk Pobierz na wybranym planie lekcji. Otrzymuje się plik `.ics`, który można zaimportować do własnego kalendarza. To **migawka** z chwili pobrania: nie jest aktualizowana, gdy plan lekcji później się zmieni. Przydatne do jednorazowego udostępnienia planu pocztą elektroniczną. #### 2. Dynamiczny link subskrypcji Przycisk Pobierz na planie lekcji (albo na ekranie nauczyciela itd.) generuje adres URL subskrypcji iCal. Po skopiowaniu go do aplikacji kalendarza jako **subskrypcji** kalendarz aktualizuje się automatycznie, w miarę jak plan lekcji zmienia się w Omniscol. W ten sposób nauczyciel i uczeń synchronizują swój plan lekcji w Omniscol z własnym kalendarzem, bez konieczności pobierania pliku na nowo po każdej zmianie. Linki iCal Omniscol są podpisane, mogą wygasać i są powiązane z kontem, które je wygenerowało. Data wygaśnięcia jest zapisana w tokenie adresu URL; aby ją zmienić, należy wygenerować nowy link. Zmiana hasła, dezaktywacja albo usunięcie tego konta unieważnia powiązane z nim linki. #### Synchronizacja i aktualizacje Subskrybowany iCal jest **odświeżany przez aplikację kalendarza**, w tempie zależnym od klienta: - Apple Calendar: zwykle 5-15 min. - Google Calendar: w najgorszym przypadku do 24 godz. (ale często szybciej). - Outlook: różnie. To opóźnienie wynika z samego protokołu iCal i nie zależy od Omniscol — zmiana planu lekcji w Omniscol pojawia się w subskrybowanym kalendarzu, gdy tylko aplikacja ponownie pobierze kanał. #### Zobacz także - [Link udostępniania](#page-glossary.share-link) - [iCal — subskrypcja i dynamiczny link](#page-integrations.ical) ### Kampus *Source: `help/pl/glossary/campus.md` · id: glossary.campus · Plan: premium · Updated: 2026-06-13* > **Premium** *Also known as : filia · wydział · jednostka* > _Premium_ **Kampus** pozwala rozróżnić kilka filii, wydziałów lub jednostek w obrębie jednego konta Omniscol. Pojęcie kampusu jest **zastrzeżone dla kont Premium** i pozostaje opcjonalne: proszę tworzyć kampusy tylko wtedy, gdy rzeczywiście pomagają odwzorować organizację placówki. Pojęcie to jest **organizacyjne**. Nie zastępuje [lokalizacji](#page-glossary.site), która opisuje raczej rzeczywistość geograficzną lub fizyczną: miejsce, siatkę godzin, sale, czasy przejazdu. Kampus staje się szczególnie przydatny, gdy pojęcie lokalizacji nie pokrywa się z logiczną organizacją placówki. Przykłady: - kilka wydziałów dzieli te same budynki; - kilka szkół jednej grupy dzieli kilka lokalizacji w sposób krzyżowy; - ta sama lokalizacja fizyczna mieści kilka jednostek lub kierunków. Nawet gdy kampus i lokalizacja pokrywają się w znacznym stopniu, pojęcie może pozostać przydatne, ponieważ ułatwia filtrowanie i grupowanie. #### Do czego służy kampus Kampus służy głównie do: - grupowania klas według tej samej organizacji; - ułatwiania niektórych filtrowań i grupowań, zwłaszcza w diagnostyce konfliktów. Sam kampus nie definiuje siatki godzin, czasu przejazdu ani ścisłego ograniczenia przy umieszczaniu lekcji. Za te zachowania nadal odpowiadają lokalizacje, sale, zasoby i ograniczenia planu lekcji. #### Gdzie go skonfigurować Kampusy tworzy się w [ustawienia ogólne](#page-admin.parameters), poniżej poziomów klas. Każdą klasę można następnie przypisać do kampusu, co zasila odpowiednie filtry i grupowania. #### Zobacz także - [Lokalizacja](#page-glossary.site) - [Sala](#page-glossary.classroom) - [Klasa](#page-glossary.class) - [Poziom](#page-glossary.level) - [Wykrywanie i rozwiązywanie konfliktów](#page-timetables.conflicts) ### Klasa *Source: `help/pl/glossary/class.md` · id: glossary.class · Updated: 2026-07-05* *Also known as : rocznik · nabór · edycja · kohorta* W Omniscol **klasa** jest główną jednostką, która zbiera uczniów realizujących ten sam tok nauki w tej samej szkole, w określonym okresie. To ona jest adresatem kursów: kurs przypisuje się do klasy (do całej albo przez [grupę](#page-glossary.group), która jest jej podzbiorem), a nie odwrotnie. Klasa ma: - **nazwę** (na przykład „6a”, „INF2-S3”, „Marketing, studia magisterskie I rok”), - **poziom klasy** (poziomy definiuje się w Utwórz — na przykład klasy 5, 6, 7 i 8 w szkole podstawowej albo I, II i III rok studiów licencjackich), - ewentualnie **kampus** (opcja Premium; filia, wydział, jednostka albo inne grupowanie organizacyjne), - domyślną **lokalizację** (miejsce fizyczne i sale używane domyślnie), - ewentualnie **salę dedykowaną**, w której lekcje klasy odbywają się domyślnie, - **teoretyczną liczbę uczniów** (spodziewana liczba uczniów; nieobowiązkowa, ale przydatna przy doborze wielkości sal). #### Słownictwo zależnie od kontekstu Słowo „klasa” nabiera bardzo różnych odcieni znaczeniowych zależnie od typu placówki. Wszystkie sprowadzają się do tej samej jednostki Omniscol: - **Szkoła podstawowa i ponadpodstawowa** — „klasa” w zwykłym szkolnym znaczeniu (4a, 8b, 2c liceum). - **Szkolnictwo wyższe** — często „rocznik”, „nabór”, „edycja”, „kohorta”, czasem „ścieżka kształcenia” albo „specjalność”. Rocznik liczący 200 uczniów to jedna klasa; podgrupy ćwiczeniowe i laboratoryjne to [grupy](#page-glossary.group), a nie klasy. - **Kształcenie ustawiczne** — „edycja”, „kohorta”, „grupa słuchaczy”. > _Premium_ W szkolnictwie wyższym „klasa” oznacza tutaj stałą grupę uczniów mających ten sam plan lekcji albo tę samą ogólną ścieżkę kształcenia. Odpowiada to często kohorcie, grupie szkoleniowej, a czasem ścieżce kształcenia. Nie należy jej mylić z jednostką kształcenia, modułem ani kursem. Słowo „klasa” w Omniscol należy czytać jako „kohortę, która realizuje tę ścieżkę kształcenia w tym okresie”, a nie jako „pomieszczenie” (to jest [sala](#page-glossary.classroom)). #### Różnica między klasą a grupą Klasyczna pułapka: pomylenie klasy z grupą. Grupy są **zawsze** podzbiorami jednej klasy. Jeśli trzeba połączyć uczniów z kilku klas (na przykład uczniów uczących się łaciny w klasach 1a, 1b i 1c, którzy mają wspólny kurs łaciny), nie tworzy się nowej klasy: używa się [wyrównania grup](#page-glossary.alignment) albo [grupy grup](#page-glossary.groups-of-groups). #### Zobacz także - [Grupa](#page-glossary.group) - [Poziom](#page-glossary.level) - [Podział klasy](#page-glossary.class-division) - [Wyrównanie grup](#page-glossary.alignment) - [Kampus](#page-glossary.campus) - [Lokalizacja](#page-glossary.site) - [Klasa, grupa, podgrupa](#page-core-concepts.classes-and-groups) ### Konflikt *Source: `help/pl/glossary/conflict.md` · id: glossary.conflict · Updated: 2026-09-23* *Also known as : alert · wykryta niekompatybilność · nakładanie się · kolizja* **Konflikt** w Omniscol to sytuacja, w której dwa ograniczenia nie mogą być spełnione jednocześnie. Przykłady: - nauczyciel przypisany do dwóch lekcji w tym samym przedziale czasowym, - sala zarezerwowana przez dwie lekcje w tym samym czasie, - klasa, nauczyciel lub sala już zajęte w tym samym momencie przez lekcję z innego opublikowanego planu lekcji albo z konta powiązanego, - grupa uczniów, która musiałaby być w dwóch miejscach jednocześnie, - lekcja w sali bez specjalizacji wymaganej przez jej przedmiot, - lekcja, której łączna pojemność (suma przypisanych sal) jest mniejsza od liczebności grupy, - wyrównanie grup, w którym wyrównane grupy mają różną liczbę godzin. #### Wykrywanie w czasie rzeczywistym Omniscol wykrywa konflikty **już w trakcie wprowadzania danych**, a nie tylko w momencie generowania: - czerwony pasek u góry ekranu „Podział godzin”, - ikona [triangle-exclamation] przy lekcjach i klasach, których to dotyczy, - lista konfliktów, którą można klikać („lupa” prowadzi do szczegółów), - w tych szczegółach ikona [calendar-days], a za nią nazwa innego planu lekcji, przy lekcji pochodzącej z tego planu (zob. [rozpoznawanie tej samej klasy w różnych planach lekcji](#page-timetables.multiple-active-timetables--same-entity)). #### Konflikty zamierzone Nie wszystkie konflikty trzeba rozwiązywać. Niektóre są zamierzone: - ta sama grupa na egzaminie + sala z wydłużonym czasem pracy (ci sami uczniowie mają być w dwóch salach, zależnie od warunków), - liczebność > pojemność sali, gdy wiadomo, że nie przyjdą wszyscy zapisani. Można **pozostawić konflikt**; alert nadal jest wyświetlany, ale nie blokuje działania. #### Konflikty blokujące Niektóre niespójności uniemożliwiają pomyślne **generowanie**: - brak sali zgodnej z danym przedmiotem i daną liczbą godzin, - dostępność nauczyciela całkowicie niezgodna z jego kursami, - strukturalnie niemożliwe wyrównanie grup. Takie konflikty są oznaczane jako **krytyczne**; dopóki istnieją, przycisk Generuj plan lekcji pozostaje niedostępny. #### Zobacz także - [Diagnostyka](#page-glossary.diagnostic) - [Algorytm generowania](#page-glossary.solver) - [Wykrywanie i rozwiązywanie konfliktów](#page-timetables.conflicts) ### Kurs *Source: `help/pl/glossary/course.md` · id: glossary.course · Updated: 2026-06-26* *Also known as : przedmiot klasy · kurs klasy · wiersz kursu* **Kurs** to nauczanie [przedmiotu](#page-glossary.subject) w [klasie](#page-glossary.class) (albo w jednej z jej [grup](#page-glossary.group)) w określonym okresie. To podstawowa jednostka **oferty dydaktycznej**: co ma być nauczane, komu i w jakiej liczbie godzin — niezależnie od tego, kiedy wypadnie to w planie lekcji. Kurs ma: - **przedmiot** (nauczaną dyscyplinę), - ewentualnie **[typ lekcji](#page-glossary.lesson-type)** (wykład, ćwiczenia, laboratorium, egzamin…) — para `(przedmiot, typ)` tworzy odrębny kurs, - docelową **liczbę godzin** (godziny tygodniowo albo liczbę lekcji), - jednego lub kilku przypisanych **nauczycieli**, - ewentualnie **ograniczenia**: wagę pedagogiczną, wymaganą salę o określonej specjalizacji, niekompatybilności, preferencje umieszczania. #### Kurs, przedmiot, lekcja: nie mylić ich ze sobą - [Przedmiot](#page-glossary.subject) to sama dyscyplina (matematyka), w katalogu szkoły. - **Kurs** to ten przedmiot *odniesiony do klasy*, z liczbą godzin i atrybutami: „matematyka w klasie 8a, 4 godziny tygodniowo, jako ćwiczenia”. - [Lekcje](#page-glossary.lesson) to konkretne **wystąpienia**, które realizują kurs na siatce godzin (cztery tygodniowe przedziały czasowe rzeczywiście umieszczone w planie). Jeden kurs daje więc jedną lub kilka lekcji; usunięcie lekcji nie usuwa kursu. #### Pojęcie ukryte w interfejsie Interfejs nie mówi w tym miejscu „kurs”: buduje się go, **przypisując przedmiot do klasy** (zakładka Kursy klasy), a następnie podając liczbę godzin, typ i nauczycieli. Samo pojęcie pozostaje przydatne w rozumowaniu — zwłaszcza w szkolnictwie wyższym, gdzie wyraźnie rozróżnia się kurs (definicję) i jego lekcje (wystąpienia). #### Wszystkie kursy razem: program nauczania Wszystkie kursy klasy — albo kierunku kształcenia — tworzą **program nauczania**. Zależnie od poziomu i słownictwa placówki mówi się także o **programie studiów**, **planie studiów**, **toku nauki** albo **sylabusie**. Omniscol nie narzuca tego słownictwa: operuje kursami (przedmiotami klas, z typem); ich suma *jest* właśnie tym programem. #### Zobacz także - [Przedmiot](#page-glossary.subject) - [Lekcja / Godzina lekcyjna](#page-glossary.lesson) - [Typ lekcji](#page-glossary.lesson-type) - [Kursy, lekcje, typy lekcji](#page-core-concepts.lessons-and-types) - [Organizacja danych: przedmioty, klasy, plany lekcji](#page-core-concepts.data-model) - [Konfigurowanie przedmiotów dla poszczególnych klas](#page-timetables.creating-classes) ### Kurs przekrojowy *Source: `help/pl/glossary/transverse-course.md` · id: glossary.transverse-course · Updated: 2026-06-21* *Also known as : kursy przekrojowe · kurs współdzielony · kurs wspólny · moduł przekrojowy · nauczanie przekrojowe · zgrupowanie przekrojowe* **Kurs przekrojowy** zbiera uczniów z **kilku klas, ścieżek kształcenia lub roczników** wokół jednego i tego samego kursu — wspólnego trzonu, minorów, międzyścieżkowych przedmiotów do wyboru, wykładów międzyrocznikowych. W Omniscol odwzorowuje się go najczęściej **[grupą grup](#page-glossary.groups-of-groups)** (inne programy mówią o „zgrupowaniu”): odpowiednie grupy łączy się w jedną jednostkę, do której przypisuje się kurs. Pojawia się on wtedy we wszystkich klasach nadrzędnych i pozostaje **edytowalny po fakcie** — grupę można dodać albo usunąć bez naruszania struktury. Jest to rozwiązanie zalecane, szczególnie w szkolnictwie wyższym i w trybie kalendarzowym. W razie potrzeby **doraźnej**, bez tworzenia nazwanej jednostki, można też **przypisać kilka grup wprost do lekcji**, w jej polu wyboru grup. Szybsze, ale mniej przejrzyste i trudniejsze do ponownego wykorzystania. Gdy klasy są **równoległe i mają identyczną strukturę** (te same liczby godzin), zwłaszcza w planie lekcji tygodniowym lub cyklicznym, **[wyrównanie](#page-glossary.alignment)** pozostaje trafnym wyborem: jeden kurs dzielony między grupy, ten sam przedział czasowy, ten sam nauczyciel, ta sama sala — za cenę zamrożonego składu. #### Zobacz także - [Grupa grup](#page-glossary.groups-of-groups) - [Wyrównanie grup](#page-glossary.alignment) - [Wyrównania grup i grupy grup](#page-timetables.alignments-and-groups-of-groups) - [Grupy grup](#page-core-concepts.groups-of-groups) ### Lekcja / Godzina lekcyjna *Source: `help/pl/glossary/lesson.md` · id: glossary.lesson · Updated: 2026-06-13* *Also known as : zajęcia lekcyjne · godzina zlecona* **Lekcja** (albo *lekcja kursu*) to zaplanowana jednostka umieszczona na siatce godzin planu lekcji: to właśnie ją umieszcza się w planie, przenosi, blokuje, modyfikuje, anuluje albo zastępuje. Lekcja ma: - **klasę** albo [grupę](#page-glossary.group) (odbiorcy), - **przedmiot** ([przedmiot](#page-glossary.subject)), - jednego lub kilku **nauczycieli** ([współnauczanie](#page-glossary.co-teaching)), - jedną lub kilka **sal** (zob. [wiele sal](#page-glossary.multi-room)), - jeden lub kilka **zasobów** (przenośny projektor, walizka tabletów…), - **czas trwania** (zwykle 1 lub 2 jednostki czasu z siatki godzin lokalizacji), - ewentualnie **typ** (wykład, ćwiczenia, laboratorium, egzamin itd., definiowany w Utwórz), - ewentualnie **notatkę** (swobodny komentarz, z ograniczeniem publikacji: tylko administratorzy, administratorzy + nauczyciele albo wszyscy). #### Lekcja czy kurs? Interfejs Omniscol mówi „lekcja” o jednostce umieszczonej na siatce godzin. **[Kurs](#page-glossary.course)** pozostaje właściwym słowem na samo nauczanie — przedmiot nauczany w klasie, z jego liczbą godzin i atrybutami: mówi się o kursie języka angielskiego, o godzinach kursu, o dniach kursu, a jeden i ten sam kurs daje jedną lub kilka lekcji w planie lekcji. Etykieta Typ lekcji i pojęcie [złożone lekcje](#page-core-concepts.complex-lessons) noszą wprawdzie słowo „lekcja”, ale należą do poziomu kursu. #### Słownictwo zależnie od kontekstu - **Lekcja** — termin interfejsu na zaplanowaną jednostkę, bez względu na typ placówki. - **Godzina lekcyjna** — powszechny synonim w szkole podstawowej i ponadpodstawowej. - **Zajęcia** — zwyczajowe określenie w szkolnictwie wyższym: nauczyciel prowadzi zajęcia (słownictwo przyjęte także przez konektory Auriga i Aurion). - **Przedział czasowy** — wskazuje raczej miejsce w czasie na siatce godzin niż lekcję, która to miejsce zajmuje. - **Godzina zlecona** oznacza lekcję prowadzoną przez nauczyciela na umowę zlecenie (w odróżnieniu od nauczyciela etatowego); nie jest to inny typ lekcji, zmienia się tylko nauczyciel. #### Lekcje proste, lekcje złożone Lekcja prosta = jedni uczniowie, jeden nauczyciel, jedna sala, jeden przedział czasowy. **Złożone lekcje** wiążą ze sobą kilka lekcji: - **[Połączone](#page-glossary.concatenated-lessons)** — dwie lekcje następujące po sobie (dwugodzinne laboratorium = godzinne laboratorium połączone z drugim godzinnym laboratorium). - **[Skojarzone](#page-glossary.associated-lessons)** — naprzemienność grup na dwóch następujących po sobie lekcjach (grupa A najpierw na biologii, potem na fizyce; grupa B najpierw na fizyce, potem na biologii). - **[Naprzemienne](#page-glossary.alternate-lessons)** — lekcje, które powtarzają się tylko co drugi tydzień (tydzień A i tydzień B), co trzeci tydzień itd. Konfiguruje się je w Zapisz. #### Lekcje i klasy poza siatką godzin Domyślnie lekcje układają się na przedziałach czasowych siatki godzin lokalizacji. Omniscol obsługuje jednak również lekcje, które się w niej nie mieszczą (dwugodzinny egzamin rozpoczynający się o 10:20 na siatce o kroku 50 minut). Zob. [lekcje i klasy poza siatką godzin](#page-timetables.off-grid-lessons). #### Zobacz także - [Kurs](#page-glossary.course) - [Typ lekcji (wykład, ćwiczenia, laboratorium…)](#page-glossary.lesson-type) - [Status lekcji](#page-glossary.lesson-status) - [Tryb lekcji](#page-glossary.lesson-modality) - [Przedmiot](#page-glossary.subject) - [Złożone lekcje](#page-core-concepts.complex-lessons) - [Wiele sal](#page-glossary.multi-room) ### Lekcje naprzemienne / Tygodnie A-B *Source: `help/pl/glossary/alternate-lessons.md` · id: glossary.alternate-lessons · Updated: 2026-05-10* *Also known as : tygodnie naprzemienne · tygodnie A/B · tydzień parzysty nieparzysty · naprzemienność tygodni* **Lekcje naprzemienne** to lekcje, które nie powtarzają się co tydzień, lecz występują naprzemiennie z innymi lekcjami w tym samym przedziale czasowym. Klasyczny przypadek: jedna lekcja w tygodniu A, druga w tygodniu B, tego samego dnia i o tej samej godzinie. #### Konfiguracja cyklu Tygodnie naprzemienne konfiguruje się w Zapisz. Trzy opcje: - **Wyłączona** — brak naprzemienności. - **Litery** — tydzień A, B (oraz C, D…, jeśli doda się ich więcej). - **Cyfry** — tydzień 1, 2 (oraz 3, 4…, jeśli cykl zostanie rozszerzony). Omniscol nie wymusza cyklu dwutygodniowego — naprzemienność można rozłożyć na 3, 4 lub więcej tygodni. #### Tworzenie lekcji naprzemiennej Podczas konfigurowania podziału godzin: 1. Proszę najechać kursorem na lekcję, która ma występować naprzemiennie. W prawym górnym rogu pojawi się ikona [plus] — proszę ją kliknąć. 2. Zostanie dodane nowe wolne miejsce na kolejny tydzień naprzemienności. 3. Proszę utworzyć lekcję odpowiadającą temu nowemu miejscu. 4. Proszę umieścić ją w planie lekcji przyciskiem pinezki [thumbtack], a następnie kliknąć żądany przedział czasowy (dzień i godzinę) wśród kolorowych znaczników. Czynność tę można powtarzać, aby dodać do tej samej lekcji kolejne tygodnie naprzemienności. #### Kombinacje z innymi złożonościami Lekcja naprzemienna może być: - **prosta** — czysta naprzemienność między dwiema lekcjami, - **[połączona](#page-glossary.concatenated-lessons)** — lekcja, która występuje naprzemiennie, a zarazem zajmuje podwójny przedział czasowy, - **[skojarzona](#page-glossary.associated-lessons)** — występująca razem ze skojarzonymi lekcjami (wymiana grup: grupa A ma biologię, potem fizykę, a grupa B fizykę, potem biologię). Wymiana grup to złożoność **odrębna** od naprzemienności A/B, ale można je ze sobą łączyć. #### Przesunięcie przez dni wolne Jeśli bezpośrednio przed dniami wolnymi obowiązywał tydzień A, a po nich ma obowiązywać tydzień B, należy utworzyć **wirtualne przesunięcie** na osi tygodni roku szkolnego (por. [rok szkolny](#page-glossary.school-year)). Bez przesunięcia naprzemienność po prostu kontynuuje swój normalny cykl. #### Zobacz także - [Lekcja / Godzina lekcyjna](#page-glossary.lesson) - [Złożone lekcje](#page-core-concepts.complex-lessons) - [Rok szkolny i dni wolne](#page-glossary.school-year) ### Lekcje połączone *Source: `help/pl/glossary/concatenated-lessons.md` · id: glossary.concatenated-lessons · Updated: 2026-05-10* *Also known as : lekcje sąsiadujące · lekcje kolejne · podwójna lekcja · blok lekcji* **Lekcje połączone** to dwie lekcje, które muszą zostać umieszczone **jedna po drugiej** w ciągu dnia. Algorytm generowania gwarantuje, że następują bezpośrednio po sobie, bez niczego pomiędzy. Typowe przypadki: - **dwugodzinne laboratorium** złożone z dwóch bloków jednogodzinnych, - **wykład i następujące po nim ćwiczenia** (wykład wprowadzający, potem ćwiczenia utrwalające), - **podwójna lekcja egzaminacyjna** trwająca 2 godz. w przedziale czasowym 1 godz. × 2. #### Tworzenie Proszę przeciągnąć jedną lekcję pod drugą w widoku podziału godzin. Obie lekcje pojawią się wówczas **zespolone**, jedna pod drugą, tworząc jeden blok. #### Rozdzielanie Przycisk „nożyczek”, który pojawia się po najechaniu kursorem na granicę między dwiema połączonymi lekcjami, pozwala **rozdzielić** połączenie. Obie lekcje stają się wówczas ponownie niezależne. #### Dlaczego nie utworzyć jednej dłuższej lekcji? Dobre pytanie. Dwa główne powody, aby łączyć lekcje, a nie wydłużać jedną: 1. Lekcje mogą mieć **różne typy** (wykład połączony z ćwiczeniami), **różnych nauczycieli** albo **różne sale**. 2. Statystyki mają liczyć dwie odrębne lekcje (dwa wpisy w dzienniku lekcyjnym), a nie jedną. Jeśli wszystkie atrybuty są identyczne, prościej jest wydłużyć jedną lekcję. Łączenie daje swobodę tam, gdzie jest ona potrzebna. #### Zobacz także - [Lekcje skojarzone](#page-glossary.associated-lessons) - [Złożone lekcje](#page-core-concepts.complex-lessons) ### Lekcje skojarzone (naprzemienne grupy połówkowe) *Source: `help/pl/glossary/associated-lessons.md` · id: glossary.associated-lessons · Updated: 2026-05-10* *Also known as : skojarzenie lekcji · wymiana grup a/b* **Lekcje skojarzone** to dwie lekcje odbywające się jednocześnie w grupach połówkowych, które **kolejno się wymieniają**. Typowy przypadek: ``` Przedział czasowy 1: grupa A — biologia, grupa B — fizyka Przedział czasowy 2: grupa A — fizyka, grupa B — biologia ``` Po dwóch przedziałach czasowych obie grupy miały oba przedmioty, ale w innej kolejności. Taka struktura jest bardzo rozpowszechniona w przedmiotach przyrodniczych (laboratoria z biologii i z fizyki prowadzone przez dwóch nauczycieli specjalistów, którzy się „rotują”), w przedmiotach artystycznych (jedna grupa połówkowa pracuje nad praktyką, druga nad teorią, a potem następuje wymiana) itd. #### Tworzenie 1. Najpierw proszę utworzyć dwie lekcje [połączone](#page-glossary.concatenated-lessons) (jedną pod drugą). 2. Proszę najechać kursorem na granicę między nimi: pojawi się przycisk „skojarzenie”. 3. Proszę kliknąć i wskazać **dwie grupy**, które mają się wymieniać — najlepiej zadeklarowane jako [podział klasy](#page-glossary.class-division). #### Spójność z grupami Grupy użyte w skojarzeniu muszą być zadeklarowane w klasie jako **podział klasy** — w przeciwnym razie algorytm generowania zgłasza ostrzeżenie o niespójności (jedna grupa nie może być w dwóch miejscach w tym samym czasie). #### Zobacz także - [Lekcje połączone](#page-glossary.concatenated-lessons) - [Podział klasy](#page-glossary.class-division) - [Złożone lekcje](#page-core-concepts.complex-lessons) ### Link udostępniania *Source: `help/pl/glossary/share-link.md` · id: glossary.share-link · Updated: 2026-06-13* *Also known as : udostępniony link · link publiczny · udostępnianie tokenem* **Link udostępniania** w Omniscol to podpisany adres URL, dający dostęp do zasobu internetowego bez uprzedniego zalogowania: - planu lekcji klasy albo nauczyciela, - ukierunkowanego ekranu wprowadzania danych, na przykład dostępności, - modułu Zarządzanie nieobecnościami w trybie podglądu, - konkretnego widoku dla zespołu zewnętrznego (audyt, komunikacja). W przypadku publicznych planów lekcji dostęp jest tylko do odczytu. Niektóre wewnętrzne linki udostępniania mogą jednak zezwalać na ograniczone działanie, na przykład na wypełnienie konkretnego formularza. Typowym przypadkiem jest link do wprowadzania dostępności nauczycieli: placówka może wysłać go nauczycielowi z terminem końcowym, bez zakładania mu loginu Omniscol. #### Bezpieczeństwo Każdy link zawiera podpisany **JWT**. W linkach internetowych i API podpis zależy od konta, które wygenerowało link, oraz od skrótu jego hasła. W linkach iCal skrót weryfikacyjny jest tworzony na tej samej zasadzie. Cztery konsekwencje: 1. **Obowiązkowa data wygaśnięcia** — link wygasa automatycznie w wybranym dniu. To ważne zabezpieczenie: żaden link nie jest wieczny. 2. **Unieważnienie przy zmianie hasła** — jeśli konto wystawiające zmieni swoje hasło (albo ustawi je ponownie na to samo, co zmienia losową sól), wszystkie wygenerowane przez nie linki zostają natychmiast unieważnione. 3. **Unieważnienie przez konto wystawiające** — jeśli to konto zostanie dezaktywowane albo usunięte, wydane przez nie linki przestają działać. 4. **Ograniczony zakres** — link otwiera tylko przewidziany widok albo działanie. Nie należy go opisywać jako ogólnego dostępu do konta. Do dystrybucji zbiorowej proszę używać wyraźnie oznaczonego konta serwisowego, a nie konta osobistego. Konto serwisowe staje się administracyjnym wystawcą wydanych linków i można je poddać rotacji albo dezaktywować, jeśli trzeba unieważnić całą kampanię udostępniania. #### Różnica wobec tokenu API | Aspekt | Link udostępniania | [Token API](#page-glossary.api-token) | | --- | --- | --- | | Odbiorca | Człowiek w przeglądarce | Oprogramowanie zewnętrzne | | Uprawnienia | Ograniczony zakres, często tylko do odczytu | Zależnie od wybranych punktów dostępu API | | Zastosowanie | Jednorazowa dystrybucja | Integracja z oprogramowaniem | | Uwierzytelnianie | JWT w adresie URL | JWT w nagłówku `Authorization` | | Wymagany poziom | Rola twórcy | Uprawnienia administracyjne | #### Tworzenie linku Przycisk Udostępnianie pojawia się na ekranach, które można udostępniać (plany lekcji, dostępność, nieobecności). Proszę go kliknąć, wybrać datę wygaśnięcia, a następnie skopiować adres URL w potrzebnym formacie. #### Zobacz także - [Token API](#page-glossary.api-token) - [Udostępnianie planu lekcji](#page-schedules.share-link) - [Publiczne linki udostępniania](#page-portal.share-links) ### Lokalizacja *Source: `help/pl/glossary/site.md` · id: glossary.site · Updated: 2026-05-10* *Also known as : site · miejsce · budynek główny · placówka* **Lokalizacja** w Omniscol to miejsce fizyczne, w którym odbywają się lekcje. Lokalizacja mieści [sale](#page-glossary.classroom) i [zasoby](#page-glossary.resource). Nie należy jej mylić z [kampusem](#page-glossary.campus), który jest pojęciem organizacyjnym: filia, wydział, jednostka lub grupowanie wewnętrzne. Godziny, sale i czasy przejazdu należą do lokalizacji; kampus służy raczej do porządkowania i filtrowania. Każdy plan lekcji ma co najmniej jedną lokalizację. Jeśli wszystkie budynki znajdują się w tym samym miejscu geograficznym, wystarczy jedna lokalizacja. Jeśli placówka działa w wielu lokalizacjach, a nauczyciele lub uczniowie przemieszczają się między nimi, proszę utworzyć tyle lokalizacji, ile potrzeba — **i wprowadzić czas przejazdu między nimi**, w przeciwnym razie algorytm generowania może teleportować nauczycieli lub uczniów. #### Siatka godzin na poziomie lokalizacji Każda lokalizacja ma własną **siatkę godzin** (godziny lekcji, przerwy, obiad, zamknięcia). Omniscol odgaduje ją automatycznie na podstawie wprowadzonych informacji, ale warto ją dostosować, dodając przerwy, przerwę obiadową i zamknięcia (wolne popołudnie, dzień nieczynny). #### Przypadek praktyczny: dwie lokalizacje wirtualne dla jednego miejsca Konfiguracja czasem przydatna (ale rzadka): utworzyć dwie „lokalizacje wirtualne” dla jednego miejsca fizycznego dzielonego przez dwie szkoły (podstawową i liceum), które nie mają tej samej siatki godzin, ale mają wspólnych nauczycieli. Czas przejazdu między dwiema lokalizacjami wirtualnymi wynosi wtedy zero. Proszę pamiętać o zduplikowaniu dzielonych sal w obu lokalizacjach i o wprowadzeniu wzajemnie wyłącznych godzin otwarcia (zob. [sala](#page-glossary.classroom)). #### Kiedy lepsze są dwa konta niż dwie lokalizacje Jeśli dwie odrębne placówki nie mają **żadnego wspólnego nauczyciela** (albo jeśli nieliczni wspólni nauczyciele są przypisywani kolejno do jednej lokalizacji, a potem do drugiej, w wyraźnie określonych dniach), często prościej jest użyć dwóch osobnych kont Omniscol. Wiele lokalizacji staje się konieczne dopiero wtedy, gdy trzeba odwzorować rzeczywiste przemieszczanie się nauczycieli lub uczniów. W **Premium** inną możliwością jest opublikowanie na tym samym koncie **dwóch planów lekcji równolegle** (zob. [Kilka planów lekcji opublikowanych równolegle](#page-timetables.multiple-active-timetables)), z których każdy odpowiada jednej lokalizacji, zamiast konfigurowania dwóch lokalizacji w jednym planie lekcji. Zarówno przy wielu kontach, jak i przy wielu planach lekcji publikowanych równolegle można współdzielić obłożenie nauczycieli i sal, z krzyżowym wykrywaniem konfliktów (które planista może wyłączyć). Przy wielu kontach konfigurację powiązania między nimi trzeba ustalić z zespołem Omniscol. Źródłem do wyznaczania obłożenia wspólnych jednostek są wyłącznie operacyjne, opublikowane plany lekcji. #### Zobacz także - [Sala](#page-glossary.classroom) - [Zasób](#page-glossary.resource) - [Kampus](#page-glossary.campus) - [Wiele lokalizacji w szkolnictwie wyższym](#page-higher-ed.multi-site) ### Nauczyciel / Prowadzący *Source: `help/pl/glossary/teacher.md` · id: glossary.teacher · Updated: 2026-05-10* *Also known as : nauczycielka · wykładowca · trener · instruktor* W Omniscol **nauczyciel** oznacza każdą osobę, która odpowiada za dydaktyczne prowadzenie lekcji. Termin obejmuje: - **nauczycieli etatowych** (umowa na czas nieokreślony, faculty), - **nauczycieli na umowę** (doraźnie angażowani nauczyciele zewnętrzni), - **visiting professors** (zaproszeni naukowcy, prelegenci), - **trenerów** (kształcenie ustawiczne, warsztaty), - **ekspertów** (osoby angażowane doraźnie ze względu na swoją wiedzę). Zależnie od kultury placówki mówi się o „nauczycielu”, „wykładowcy”, „prowadzącym” albo „trenerze” — Omniscol dostosowuje się do tego słownictwa przez etykiety (zob. ustawienia), ale pod spodem wszyscy są reprezentowani przez tę samą jednostkę. #### Tworzenie Nauczycieli tworzy się na poziomie szkoły, na ekranie Nauczyciele. Podaje się: - imię, nazwisko, identyfikator logowania, hasło, - adres e-mail (używany do zaproszenia i do procedury „nie pamiętam hasła”), - w razie potrzeby identyfikator zewnętrzny (numer ewidencyjny, identyfikator SIS), - **nauczane przedmioty** (upraszczają późniejsze przypisywanie do lekcji), - **godziny pracy** (przewidywana liczba godzin tygodniowo, przejmowana domyślnie w nowych planach lekcji). #### Przypisanie do planu lekcji Po utworzeniu na poziomie szkoły nauczyciele muszą jeszcze zostać **przypisani do planu lekcji** z Przypisz nauczycieli. Ten etap odróżnia „nauczycieli dostępnych” (na poziomie szkoły) od „nauczycieli zaangażowanych w ten plan lekcji” (na poziomie planu lekcji). #### Dostępność Nauczyciel może sam wpisać swoją [dostępność](#page-glossary.wishes) (przedziały niedostępne, niepożądane, preferowane). W tygodniowych planach lekcji wymaga ona akceptacji przez administrację; w kalendarzowych planach lekcji jest konsolidowana w czasie rzeczywistym. W szkolnictwie ponadpodstawowym mówi się też o **dyspozycyjności**. #### Nauczyciele na umowę (nauczyciele zewnętrzni) W przypadku **nauczycieli na umowę** zob. osobne hasło: [Nauczyciel zewnętrzny / nauczyciel na umowę zlecenie](#page-glossary.external-teacher). #### Wirtualny nauczyciel Przycisk Wirtualny tworzy *wirtualnego nauczyciela* — tymczasową kartę stanowiska do obsadzenia, wyświetlaną z ikoną ducha obok nazwy. Po zatrudnieniu rzeczywistej osoby kartę przekształca się w prawdziwego nauczyciela przyciskiem w jej wierszu. Przydatne przy przygotowaniu nowego roku szkolnego, zanim wszystkie rekrutacje zostaną zamknięte. #### Zobacz także - [Nauczyciel zewnętrzny (na umowę zlecenie)](#page-glossary.external-teacher) - [Dostępność](#page-glossary.wishes) - [Zarządzanie nauczycielami](#page-admin.teachers) - [Przypisywanie nauczycieli do planu lekcji](#page-timetables.assigning-teachers) ### Nauczyciel zewnętrzny / Nauczyciel na umowę zlecenie *Source: `help/pl/glossary/external-teacher.md` · id: glossary.external-teacher · Updated: 2026-06-13* *Also known as : wykładowca zewnętrzny · prowadzący zewnętrzny · wykładowca gościnny · visiting professor* **Nauczyciel zewnętrzny** (zależnie od kontekstu także *nauczyciel na umowę zlecenie*, *visiting professor*, *ekspert*) to nauczyciel, którego stosunek umowny z placówką jest tymczasowy lub okazjonalny. Z punktu widzenia algorytmu generowania nauczyciel zewnętrzny jest [nauczycielem](#page-glossary.teacher) jak każdy inny — ta sama dostępność, te same przydziały. Różnica jest przede wszystkim **administracyjna**: - krótka umowa (za godzinę, za lekcję, za zlecenie), - mniejsza liczba godzin niż u nauczycieli etatowych, - użytkownik często niezarejestrowany w tych samych systemach co nauczyciele etatowi (inny adres e-mail, brak dostępu do tych samych narzędzi wewnętrznych). > _Premium_ Osobny znacznik Nauczyciel zewnętrzny, zaznaczany na karcie użytkownika, jest zastrzeżony dla kont Premium. Służy do jednoznacznego wskazania nauczycieli zewnętrznych i zasila dedykowane wyświetlanie opisane poniżej. #### Dedykowane wyświetlanie Ikona [user-tie] odróżnia nauczycieli zewnętrznych od etatowych na niektórych ekranach (zwłaszcza w podpowiedzi lekcji i w widoku listy planów lekcji). Na głównej siatce godzin domyślne wyświetlanie ich nie rozróżnia ze względu na brak miejsca, ale informacja pozostaje widoczna w podpowiedzi po najechaniu kursorem. #### Przypadek szczególny: visiting professor na kilka lekcji W przypadku pojedynczej lekcji, którą visiting professor współprowadzi z głównym nauczycielem bez naprzemienności, zob. [współnauczanie](#page-glossary.co-teaching). W przypadku cotygodniowej naprzemienności dwóch nauczycieli w tym samym przedziale czasowym, zob. [lekcje naprzemienne](#page-glossary.alternate-lessons). #### Zobacz także - [Nauczyciel](#page-glossary.teacher) - [Współnauczanie](#page-glossary.co-teaching) - [Nauczyciele zewnętrzni w szkolnictwie wyższym](#page-higher-ed.external-faculty) ### Niekompatybilność (między przedmiotami) *Source: `help/pl/glossary/incompatibility.md` · id: glossary.incompatibility · Updated: 2026-06-13* *Also known as : wykluczenie · zakaz następstwa · kolejność przedmiotów* **Niekompatybilność** to ograniczenie pedagogiczne, które zakazuje, aby jeden przedmiot **następował** po drugim. Jest to reguła **ukierunkowana**: deklaruje się, że „przedmiot A nie może poprzedzać przedmiotu B” — kierunek ma znaczenie, A-potem-B i B-potem-A to dwie różne reguły. Typowy przypadek: „żadnej lekcji matematyki bezpośrednio po wychowaniu fizycznym”. Konfiguruje się ją na poziomie klasy, w zakładce Niekompatybilności bieżącego planu lekcji. #### Zakres zakazu Okno, w którym obowiązuje zakaz, wybiera się w momencie tworzenia reguły: - **Bezpośrednio** — nie w kolejnej lekcji, tego samego dnia. - **Połowa dnia** — nie później w tej samej połowie dnia. - **Dzień** — nie później tego samego dnia. - **Tydzień** — nie później w tym samym tygodniu. - **Zawsze** *(cykliczny albo kalendarzowy plan lekcji)* — nigdy potem, w całym okresie. To narzędzie **sekwencjonowania**: zakończyć jeden moduł, zanim zacznie się ten, który od niego zależy. Osobno: opcja **niekompatybilności przedmiotu z samym sobą** (ustawienie globalne) zapobiega temu, aby ten sam przedmiot wracał dwa razy w ciągu dnia u jednego ucznia — często prostsza niż wiele reguł tworzonych parami. #### Różnica wobec ograniczeń czasowych kursu Nie należy mylić niekompatybilności z **ograniczeniami czasowymi** kursu ([clock]), które ustalają **bezwzględną** pozycję lekcji jednego kursu na siatce godzin. Niekompatybilność dotyczy natomiast **względnej** kolejności dwóch przedmiotów. | Ograniczenie | Dotyczy | Przykład | | --- | --- | --- | | **Niekompatybilność** | **kolejności** dwóch przedmiotów | „matematyka nie po wychowaniu fizycznym” | | Ograniczenie czasowe kursu | bezwzględnej **pozycji** kursu | „matematyka nie w pierwszym przedziale czasowym” | | Specjalizacja | **sali** wymaganej przez przedmiot | „chemia wymaga laboratorium” | #### Ograniczenie optymalizacyjne, nie blokada Niekompatybilność nie jest ograniczeniem blokującym: algorytm generowania traktuje ją jako karę, którą stara się wyeliminować, tak samo jak niepożądaną dostępność. Jeśli pozostałe ograniczenia nie zostawiają żadnej alternatywy, niekompatybilność może się więc utrzymać w wygenerowanym planie lekcji; [diagnostyka](#page-glossary.diagnostic) sygnalizuje ją wtedy, aby można było podjąć decyzję. Należy unikać lawiny niekompatybilności: każda z nich ogranicza swobodę algorytmu generowania i wydłuża obliczenia. Do zrównoważenia przedmiotu w skali tygodnia często skuteczniejsza jest waga pedagogiczna przedmiotu. #### Zobacz także - [Przedmiot](#page-glossary.subject) - [Generowanie — jak algorytm rozstrzyga ograniczenia](#page-glossary.solver) ### Nieobecność *Source: `help/pl/glossary/absence.md` · id: glossary.absence · Updated: 2026-05-14* *Also known as : niedostępność · urlop · zwolnienie lekarskie · nieobecność jednorazowa* **Nieobecność** w Omniscol to zgłoszenie, że dana jednostka nie będzie obecna w określonym okresie. Obsługiwane jednostki to nauczyciele, klasy, uczniowie oraz, jeśli moduł Obsada personelu jest włączony, członkowie personelu. Zaakceptowana nieobecność może zmienić sposób wyświetlania lekcji: - **nieobecny nauczyciel bez zastępcy**: lekcja oznaczona jako objęta nieobecnością, z przekreślonym nauczycielem; - **nieobecny nauczyciel z [zastępcą](#page-glossary.substitution)**: zastępca wyświetlany obok przekreślonego stałego nauczyciela; - **nieobecna klasa**: lekcje klasy usunięte z widoku w danym okresie; - **nieobecny uczeń**: ewidencja przypisana do ucznia, bez zmian w lekcjach jego klasy. #### Statusy nieobecności - **zaakceptowany**: nieobecność jest zatwierdzona i uwzględniana. - **oczekujący**: zgłoszenie złożone przez zainteresowanego użytkownika, do zatwierdzenia przez administratora. - **odrzucony**: zgłoszenie odrzucone. - **przerwany**: zgłoszenie wycofane przez osobę zgłaszającą. Tylko nieobecności ze statusem **zaakceptowany** wpływają na wyświetlanie planów lekcji. #### Pola nieobecności - **Jednostka**: nauczyciel, klasa, uczeń lub personel, jeśli moduł Obsada personelu jest włączony. - **Zakres dat**: data rozpoczęcia i data zakończenia. Nieobecność faktycznie bezterminową należy wyraźnie monitorować; jeśli nie podano daty zakończenia, granicą techniczną może być koniec roku szkolnego. - **Zakres godzin**: cały dzień albo wybrane przedziały czasowe. - **Filtry**: klasy, przedmioty lub przydziały, w zależności od typu jednostki. - **Powód**: wybierany z proponowanej listy; administrator może wpisać własny powód. - **Komentarz**: krótki tekst dowolny. - **Status**: zaakceptowany, oczekujący, odrzucony lub przerwany. #### Zobacz także - [Zastępstwo](#page-glossary.substitution) - [Moduł Zarządzanie nieobecnościami — przegląd](#page-absences.overview) - [Zgłaszanie nieobecności](#page-absences.declaring) ### Obsada personelu *Source: `help/pl/glossary/staffing.md` · id: glossary.staffing · Options: staffing · SKU: omniscol/staffing-only · Updated: 2026-06-13* > **Option: Obsada personelu** *Also known as : opieka nad uczniami · planowanie dyżurów · siatka dyżurów · siatka nadzoru* Moduł **Obsada personelu** planuje **pracę personelu według zadań**, a nie według lekcji. Pierwotnie zaprojektowano go z myślą o opiece nad uczniami: zespoły asystentów wychowawczych, kierowników ds. wychowania, opiekunów i pracowników o podobnych zadaniach, którzy w ciągu dnia pełnią dyżury na boisku, w portierni, na korytarzach, w bibliotece, w stołówce, podczas wyjść na zajęcia sportowe, w świetlicy itd. Moduł obsługuje również: - **nadzór nad egzaminami** (sesje egzaminacyjne, matura, egzaminy wstępne), - **jednorazowe zadania opiekuńcze** (wyjścia, wycieczki, posiedzenia klasyfikacyjne), - **aktywne metody nauczania** (Montessori), w których nauczyciele są planowani według aktywności, a nie według lekcji. #### Model danych - **Zadania** = potrzeby do obsadzenia, określone przez miejsce + przedział czasowy + liczbę osób + ewentualną listę uprawnionego personelu. - **Siatka** = zbiór zadań w zadanym zakresie dat, zwykle z dokładnością do kwadransa. - **Przydział** = członek personelu przypisany do komórki siatki. - **Grafik dyżurów** = widok zadań danej osoby. #### Niezależność od lekcji Moduł Obsada personelu można stosować: - jako **uzupełnienie** dydaktycznych planów lekcji (zadania personelu pojawiają się na tym samym koncie obok lekcji); - jako **ofertę samodzielną**, bez prowadzenia dydaktycznego planu lekcji. #### Rola Personel Rola **Personel** jest przeznaczona dla zespołu opieki nad uczniami (kierownicy ds. wychowania, asystenci wychowawczy, opiekunowie, woźni): dostęp do modułu Obsada personelu, do własnych nieobecności i do własnego planu pracy; bez dostępu do konfiguracji ogólnej. Można ją łączyć z rolą Nauczyciel, gdy ta sama osoba zarówno uczy, jak i jest planowana w module Obsada personelu. Zob. [Użytkownicy i role](#page-admin.users-and-roles). #### Zobacz także - [Przegląd modułu Obsada personelu](#page-staffing.overview) - [Budowanie siatki dyżurów](#page-staffing.building-grids) - [Definiowanie zadań do obsadzenia](#page-staffing.assignments) - [Przydzielanie personelu](#page-staffing.planner) - [Grafiki dyżurów](#page-staffing.roster) ### Obszar planowania *Source: `help/pl/glossary/planning-domain.md` · id: glossary.planning-domain · Plan: premium · Options: customroles · Updated: 2026-08-07* > **Premium · Option: Role niestandardowe** *Also known as : zakres planowania* **Obszar planowania** nadaje administratorowi **zakres** — dane, którymi zarządza — oraz **uprawnienia** — działania, jakie może w nim wykonywać. Na koncie, które łączy kilka [kampusów](#page-glossary.campus), kierunków kształcenia lub szkół w jednym [planie lekcji](#page-glossary.timetable), każdy planista pracuje w ten sposób na swojej części. Dopóki administrator nie ma żadnego obszaru, zachowuje pełny dostęp do konta. #### Zakres Zakres opisuje się wymiarami, od najszerszego do najdrobniejszego: najpierw kampusy i [przedmioty](#page-glossary.subject), następnie plan lekcji, jego [lokalizacje](#page-glossary.site) i należące do nich [sale](#page-glossary.classroom), jego [klasy](#page-glossary.class) i ich [grupy](#page-glossary.group). Każdy wymiar zawęża się kryterium — dokładną wartością, przedrostkiem, fragmentem wartości, progiem liczbowym — a [lekcja](#page-glossary.lesson) wchodzi w zakres wtedy, gdy spełnia wszystkie zawężone wymiary. #### Uprawnienia Uprawnienia mówią, co planista robi ze swoim zakresem: tworzy, modyfikuje lub usuwa jednostki i lekcje, a w modyfikacji szczegółowej — pozycję na siatce godzin, nauczyciela, salę, tryb, link do wideokonferencji, status, czas trwania, komentarz i generowanie. Zasada jest odejmująca: wszystko jest przyznane, odznacza się to, czego obszar zabrania. Odczyt pozostaje natomiast zawsze otwarty: obszar ogranicza to, co się zapisuje, nigdy to, co się widzi. #### Obszar czy rola niestandardowa [Rola niestandardowa](#page-admin.customroles) decyduje o tym, **jakie operacje** wykonuje administrator — w jakich modułach i czy jest to odczyt, modyfikacja czy usuwanie. Obszar decyduje o tym, **na jakich danych** je wykonuje. Oba nadaje się tej samej osobie i wzajemnie się dopełniają. #### Kilka obszarów Administrator może otrzymać kilka obszarów, każdy z własnym zakresem i własnymi uprawnieniami. Sumują się, nie zlewając się w jeden: działanie jest dozwolone, gdy obejmuje je choćby jeden obszar. #### Zobacz także - [Obszary](#page-admin.planning-domains) - [Role niestandardowe](#page-admin.customroles) - [Kampus](#page-glossary.campus) - [Lokalizacja](#page-glossary.site) ### Okno dat *Source: `help/pl/glossary/date-windows.md` · id: glossary.date-windows · Plan: premium · Updated: 2026-06-20* > **Premium** *Also known as : okna dat · okno włączenia · okno wykluczenia · warstwa dat* > _Premium_ **Okno dat** to okres **włączenia** lub **wykluczenia** dat, **wielokrotnego użytku**, który ogranicza, kiedy określone lekcje mogą być planowane. Zdefiniowane raz na ekranie edycji planu lekcji typu kalendarz, jest następnie nakładane jako **warstwa** na ograniczenia czasowe klas, grup i kursów oraz na dostępność sal. Tylko dla **planów lekcji typu kalendarz**, na kontach **Premium**. #### Dwa rodzaje - **Dozwolone lekcje** — lekcje mogą być planowane wyłącznie w tych terminach. - **Wykluczone lekcje** — lekcje nie mogą być w nich planowane. Kilka okien się kumuluje; w przypadku nakładania się wykluczenie ma pierwszeństwo przed zezwoleniem. #### Zobacz także - [Okna dat](#page-timetables.date-windows) - [Tryb kalendarzowy](#page-glossary.calendar-mode) ### Oś czasu *Source: `help/pl/glossary/timeline.md` · id: glossary.timeline · Updated: 2026-06-29* *Also known as : pasek czasu · pasek tygodni · linia czasu · pasek nawigacji czasowej* **Oś czasu** to poziomy pasek znajdujący się u góry każdego ekranu wyświetlającego plan albo statystyki. To przy jej pomocy **nawiguje się w czasie**: wybiera się rok szkolny i wyświetlany okres, a zależnie od ekranu przełącza się między widokiem tygodnia, miesiąca i roku. Jej **strzałki w lewo / w prawo** przesuwają widok o cały rok szkolny w tył albo w przód. Wyświetlany rok (albo okres) jest wyraźnie wypisany nad osią czasu. [Oś czasu i nawigacja w czasie](#page-core-concepts.timeline-navigation) ### Panel informacyjny *Source: `help/pl/glossary/panel.md` · id: glossary.panel · Updated: 2026-06-13* *Also known as : ekran informacyjny · tablica informacyjna · ekran w holu · wyświetlacz* **Panel informacyjny** w Omniscol to publiczny ekran skonfigurowany tak, aby stale pokazywał przefiltrowany plan lekcji. Typowe zastosowania: - **panel w holu** — ekran przy wejściu do szkoły, przewijający lekcje danego dnia dla wszystkich klas, - **panel przed salą** — ekran zamontowany obok drzwi, pokazujący obłożenie tej sali w ciągu dnia, - **panel w auli lub w laboratorium** — wyświetlający najbliższe lekcje w wyspecjalizowanej przestrzeni. #### Unikalny adres URL dla każdego panelu Każdy utworzony panel ma **unikalny adres URL**, który należy otworzyć w przeglądarce w trybie pełnoekranowym. Przewijanie i odświeżanie odbywają się automatycznie. #### Personalizacja Przy definiowaniu panelu konfiguruje się: - **filtr wyświetlanych lekcji**: które poziomy, które klasy, które lokalizacje, które sale, - wyświetlany **zakres czasu**, - **rozmiar czcionki**, - **pasek informacyjny** (przewijany tekst, logo), - **kolory i motyw**. We wdrożeniach o silnej identyfikacji wizualnej można również całkowicie zastąpić stronę internetową, która wyświetla panel, aby zintegrować ją z istniejącym systemem digital signage. Zob. [Personalizacja wizualna](#page-panels.customization). #### Zobacz także - [Panel w holu](#page-panels.lobby-panel) - [Panel przed salą](#page-panels.room-panel) - [Personalizacja wizualna](#page-panels.customization) ### Panel zarządczy *Source: `help/pl/glossary/dashboard.md` · id: glossary.dashboard · Updated: 2026-05-18* *Also known as : dashboard · statystyki · wskaźniki* Moduł **Panel zarządczy** dostarcza statystyki obliczane na podstawie faktycznego planu lekcji (umieszczone lekcje, uwzględnione nieobecności, zastosowane zastępstwa) za wybrany okres: tydzień, miesiąc, rok szkolny albo własny zakres dat. #### Dostępne wskaźniki Statystyki są uporządkowane według osi analizy: nauczyciele, sale, zasoby, przedmioty, klasy i uczniowie. Pełna strona modułu szczegółowo opisuje wskaźniki dostępne dla każdej osi. #### Przypadki użycia - **Raportowanie kadrowe** — zestawienie przeprowadzonych godzin dla celów płacowych, certyfikacji i akredytacji. - **Optymalizacja sal** — wykrywanie sal słabo wykorzystanych albo przeciążonych. - **Kontrola zasobów** — sprawdzenie, jak faktycznie wykorzystywane są zasoby przenośne. - **Audyt dydaktyczny** — sprawdzenie, czy cała zaplanowana liczba godzin została rzeczywiście zrealizowana. #### Eksport Przycisk Drukuj otwiera tabelę, którą można skopiować i wkleić, wydrukować albo wyeksportować do CSV w celu dalszego przetwarzania zewnętrznego (Excel, Power BI itp.). #### Obliczenia Ważne: moduł Panel zarządczy pracuje na **operacyjnym planie lekcji** (na lekcjach rzeczywiście umieszczonych i opublikowanych, przy czym w razie potrzeby scala się [kilka planów lekcji opublikowanych równolegle](#page-timetables.multiple-active-timetables)) oraz **uwzględnia zatwierdzone nieobecności i zastępstwa**. To obliczenie oparte na stanie rzeczywistym, a nie na planowanej konfiguracji. #### Zobacz także - [Przegląd modułu Panel zarządczy](#page-dashboard.overview) - [Korzystanie z tabel i wykresów](#page-dashboard.tools-and-filters) - [Statystyki nauczycieli](#page-dashboard.teachers) - [Statystyki sal](#page-dashboard.classrooms) - [Statystyki przedmiotów](#page-dashboard.subjects) - [Statystyki klas](#page-dashboard.classes) ### Plan lekcji *Source: `help/pl/glossary/timetable.md` · id: glossary.timetable · Updated: 2026-06-13* *Also known as : plany lekcji · rozkład lekcji · harmonogram lekcji · tygodniowy plan lekcji · terminarz lekcji* **Plan lekcji** w Omniscol to pełna organizacja lekcji szkoły w określonym okresie. Jest to centralny obiekt oprogramowania. Plan lekcji obejmuje: - [klasy](#page-glossary.class) z ich [grupami](#page-glossary.group) i [podziałami](#page-glossary.class-division), - przypisanych [nauczycieli](#page-glossary.teacher), - [lokalizacje](#page-glossary.site) z ich siatkami godzin, salami i zasobami, - ograniczenia (dostępność, niekompatybilności, wyrównania grup), - [lekcje](#page-glossary.lesson) (umieszczone albo nie). #### Trzy tryby planu lekcji Przy tworzeniu planu lekcji wybiera się jego tryb: - **[Tygodniowy](#page-glossary.weekly-timetable)** — lekcje układają się w powtarzalny tydzień wzorcowy. Typowy dla szkół podstawowych i ponadpodstawowych. - **[Cykliczny](#page-glossary.cyclic-timetable)** — lekcje powtarzają się w cyklu o dowolnej liczbie dni (5, 6, 7… zależnie od przyjętego cyklu). Typowy dla systemów północnoamerykańskich. - **[Kalendarzowy](#page-glossary.calendar-mode)** — każda lekcja ma własną datę, jak w terminarzu. Typowy dla szkolnictwa wyższego (uczelnie techniczne, kształcenie ustawiczne). #### Kilka planów lekcji w jednej szkole Na tym samym koncie można mieć równolegle kilka planów lekcji: - **wersje robocze**, nieopublikowane, - plany lekcji na różne **okresy** (semestr 1 i semestr 2, przygotowanie nowego roku szkolnego i plan bieżący), - na koncie Premium (albo, wyjątkowo, na koncie Core z włączeniem ustalonym umownie) plany lekcji **publikowane równolegle** na tych samych tygodniach (na przykład powtarzalny poranny plan lekcji + popołudniowy plan lekcji w trybie kalendarzowym) — zob. [Kilka planów lekcji opublikowanych równolegle](#page-timetables.multiple-active-timetables). #### Cykl życia planu lekcji ``` Tworzenie → Konfiguracja → (Generowanie automatyczne?) → Podgląd → Publikacja → Codzienne zmiany ``` - **Tworzenie** — wybór trybu, nazwa, podstawowe ustawienia. - **Konfiguracja** — lokalizacje, sale, nauczyciele, klasy, grupy, przedmioty, kursy. - **Generowanie** — automatyczne, przez algorytm generowania (dostępne we wszystkich trzech trybach: tygodniowym, cyklicznym, kalendarzowym), albo ręczne umieszczanie. - **Podgląd** — weryfikacja przed publikacją. - **Publikacja** — plan lekcji wchodzi do codziennej pracy: na wybranych tygodniach roku szkolnego jego lekcje zasilają wszystkie pozostałe moduły. - **Codzienne zmiany** — w ciągu roku (przenoszenie lekcji, zmiany sali, zarządzanie nieobecnościami) bez ponownego przechodzenia przez etap generowania. #### Zobacz także - [Tygodniowy, cykliczny czy kalendarzowy](#page-overview.timetable-modes) - [Tworzenie planu lekcji](#page-timetables.overview) - [Publikowanie planu lekcji](#page-timetables.publication) ### Podział klasy *Source: `help/pl/glossary/class-division.md` · id: glossary.class-division · Updated: 2026-05-10* *Also known as : podział grup · rozdzielenie klasy* **Podział** łączy kilka [grup](#page-glossary.group) pochodzących z **tej samej klasy**, które muszą **dzielić ten sam przedział czasowy**. W praktyce: uczniów nie da się zwielokrotnić (ten sam uczeń nie może być w dwóch miejscach jednocześnie), więc jeśli grupy połówkowe Laboratorium A i Laboratorium B mają realizować jednocześnie dwa różne laboratoria, algorytm generowania musi wiedzieć, że tworzą one podział. Wtedy potrafi: - umieścić oba laboratoria w tym samym przedziale czasowym, - w dwóch różnych salach, - z dwoma różnymi nauczycielami, - bez zgłaszania ostrzeżenia o konflikcie. #### Kiedy tworzyć podział Za każdym razem, gdy w tym samym przedziale czasowym mają się odbywać różne lekcje dla rozłącznych podzbiorów jednej klasy: - grupy połówkowe na laboratoriach (Laboratorium A i Laboratorium B, połowa klasy na matematyce i połowa na języku polskim itd.), - grupy językowe (drugi język obcy: niemiecki albo hiszpański), - wykluczające się przedmioty do wyboru (filozofia rozszerzona albo historia rozszerzona), - grupy połówkowe na informatyce (bo w sali komputerowej jest tylko 15 stanowisk). Kryterium poprawności: **żaden uczeń nie może należeć do dwóch grup tego samego podziału**. W przeciwnym razie jest to raczej wyrównanie niż podział (co i tak nie jest możliwe, jeśli grupy należą do tej samej klasy). #### Jak utworzyć podział Na stronie [grup klasy](#page-core-concepts.classes-and-groups) proszę wybrać odpowiednie grupy i kliknąć Dodaj podział. W jednej klasie może współistnieć kilka podziałów: jeden dla laboratoriów przedmiotów przyrodniczych, jeden dla języków, jeden dla przedmiotów rozszerzonych. #### Różnica wobec wyrównania **Podział** = grupy **jednej klasy**, które muszą być w tym samym przedziale czasowym. [**Wyrównanie**](#page-glossary.alignment) = grupy **różnych klas**, które muszą być w tym samym przedziale czasowym, **z tym samym nauczycielem i w tej samej sali**. #### Zobacz także - [Grupa](#page-glossary.group) - [Wyrównanie grup](#page-glossary.alignment) - [Pełna strona o podziałach klasy](#page-core-concepts.class-divisions) ### Polityka podziału godzin *Source: `help/pl/glossary/distribution-policy.md` · id: glossary.distribution-policy · Updated: 2026-09-14* *Also known as : reguła podziału · planowanie wstępne* W Omniscol polityka podziału godzin opisuje, kurs po kursie, lekcje, które ma zawierać plan lekcji: dla jakich odbiorców, z jakimi nauczycielami i w jakich salach, w jakiej liczbie i o jakim czasie trwania. Należy do **planowania wstępnego**: ustala się ją, zanim powstanie choćby jedna lekcja, i często poza biurkiem planisty — dział dydaktyczny zatwierdza program nauczania, a planista go stosuje. Składa się z **reguł**. Reguła opisuje serię identycznych lekcji: > Grupa A · pani Kowalska · 4 lekcje po 2 godz. Kurs ma ich tyle, ile potrzeba: jedną na każdego odbiorcę, na każdy czas trwania albo na każdego nauczyciela, który różni się od pozostałych. Polityka jest **opcjonalna**. Kurs bez polityki rozdziela się ręcznie albo automatycznym przydziałem, jak każdy inny. Tam, gdzie istnieje, służy dwóm rzeczom: **tworzy** brakujące lekcje takie, jakimi je opisuje; **mierzy rozbieżność** między tym, czego oczekuje, a tym, co plan lekcji rzeczywiście zawiera, i robi to nieprzerwanie. Wstawia się między dwie rzeczy, które łączy: - **kurs** i jego liczbę godzin, wyrażoną z punktu widzenia ucznia — 24 godz. analizy finansowej, niezależnie od tego, czy w klasie zadeklarowano [podziały](#page-glossary.class-division); - **lekcje** rzeczywiście zbudowane na ekranie podziału godzin, gdzie liczba godzin, którą uczeń widzi raz, może się powtórzyć tyle razy, ile jest grup do obsłużenia. Jak ją wdrożyć w praktyce — zob. [Polityka podziału](#page-timetables.distribution-policy). ### Poza siatką *Source: `help/pl/glossary/off-grid.md` · id: glossary.off-grid · Plan: premium · Updated: 2026-08-24* > **Premium** *Also known as : klasa poza siatką · lekcja poza siatką · swobodne godziny* > _Premium_ Gdy dla klasy włączony jest tryb **poza siatką**, wszystkie jej lekcje są niezależne od siatek godzin lokalizacji: ich godziny rozpoczęcia i zakończenia są swobodne. Omniscol zachowuje jedynie krok czasowy (10, 15, 20, 30 lub 60 minut), aby ułatwić ich umieszczanie. Ten tryb jest odpowiedni dla kształcenia ustawicznego lub równoległych ścieżek kształcenia, które dzielą te same pomieszczenia, nie trzymając się wspólnej siatki godzin. ### Poziom *Source: `help/pl/glossary/level.md` · id: glossary.level · Updated: 2026-06-21* *Also known as : poziom klasy · poziom kształcenia* **Poziom** porządkuje [klasy](#page-glossary.class) według **postępu kształcenia**: klasy 5, 6, 7 i 8 w szkole podstawowej; I, II i III rok studiów licencjackich; licencjat, magister, rok 1, rok 2… zależnie od placówki. To **etykieta organizacyjna**, a nie ograniczenie przy umieszczaniu lekcji: poziom nie narzuca niczego algorytmowi generowania. Służy do **porządkowania i wyszukiwania** klas — na ekranach klas, w kilku filtrach i w niektórych widokach diagnostycznych. #### Gdzie go skonfigurować Poziomy należą do ustawień **ogólnych** konta. Na ekranie [ustawienia ogólne](#page-admin.parameters), w sekcji **Poziomy**, można je tworzyć przyciskiem Utwórz, usuwać oraz **przeciągać i upuszczać, aby zmienić ich kolejność** — kolejność odzwierciedla postęp kształcenia. Każda klasa otrzymuje następnie poziom w momencie tworzenia (zob. [Tworzenie klas](#page-timetables.creating-classes)). #### Poziom, kampus i lokalizacja Trzy pokrewne pojęcia, których nie należy ze sobą mylić: - **poziom** sytuuje klasę w **progresji** (na jakim etapie toku nauki jest klasa); - [kampus](#page-glossary.campus) wiąże ją z **grupowaniem organizacyjnym** (wydział, filia, jednostka); - [lokalizacja](#page-glossary.site) wskazuje jej **miejsce fizyczne** i sale używane domyślnie. Jedna i ta sama klasa zwykle ma wszystkie trzy: poziom, ewentualnie kampus i domyślną lokalizację. #### Zobacz także - [Klasa](#page-glossary.class) - [Kampus](#page-glossary.campus) - [Lokalizacja](#page-glossary.site) - [Tworzenie klas i ich grup](#page-timetables.creating-classes) - [Ustawienia ogólne](#page-admin.parameters) ### Przedmiot *Source: `help/pl/glossary/subject.md` · id: glossary.subject · Updated: 2026-05-10* *Also known as : dyscyplina · jednostka kształcenia · moduł · blok zajęciowy* **Przedmiot** to dyscyplina nauczana w ramach [kursu](#page-glossary.course): matematyka, fizyka, angielski, prawo bilansowe, uczenie maszynowe, metodyka projektów… Przedmiot to sama dyscyplina; kurs to ten przedmiot odniesiony do konkretnej klasy. Dla każdego kraju Omniscol dostarcza **katalog przedmiotów wspólnych** (czasem kilkaset, czasem kilka tysięcy pozycji, zależnie od oficjalnych nomenklatur), wstępnie wypełniony na poziomie konta. Jeśli jakiegoś przedmiotu brakuje, proszę utworzyć **przedmiot niestandardowy** w Utwórz. #### Słownictwo w szkolnictwie wyższym Nomenklatury dydaktyczne szkolnictwa wyższego operują różnymi poziomami agregacji: - **moduł** (moduł kształcenia) — zestaw przedmiotów objętych wspólnymi efektami uczenia się, - **przedmiot** — pojedyncza pozycja programu, podrzędna wobec modułu, - **blok zajęciowy** — jeszcze drobniejszy podział przedmiotu, - **szkolenie** — termin ogólny w kształceniu ustawicznym. Wszystkie te poziomy sprowadzają się do jednej jednostki Omniscol — „przedmiotu”. Jeśli trzeba odwzorować samą hierarchię dydaktyczną (moduł → przedmiot → blok), proszę zrobić to przez konwencję nazewniczą (na przykład poprzedzając nazwę kodami: `M3-P2-B1 Algebra liniowa`) albo przez [rodziny przedmiotów](#page-admin.subjects). #### Przedmiot kopiowany do planu lekcji Gdy przedmiot zostaje przypisany do klasy w planie lekcji, Omniscol tworzy jego **wewnętrzną kopię** w strukturze tego planu. Jest to wybór zamierzony: jeśli przedmiot zostanie później usunięty albo przemianowany na poziomie szkoły, istniejące plany lekcji zachowają swoją historyczną wersję. Dlatego **proszę zadbać o pisownię** przedmiotów niestandardowych, zanim zostaną użyte w planach lekcji — późniejsza poprawka nie przenosi się do planów już skonfigurowanych. #### Powiązany typ lekcji Przy przypisywaniu przedmiotu do klasy można wskazać **[typ lekcji](#page-glossary.lesson-type)** (ćwiczenia, laboratorium, egzamin, wykład…). Para `(przedmiot, typ)` tworzy niezależny identyfikator: na przykład „wykład z matematyki” i „ćwiczenia z matematyki” to dwa niezależne wpisy w strukturze planu lekcji. #### Wymagana specjalizacja sali Przedmiot może **wymagać specjalizacji sali** (chemia → laboratorium chemiczne, wychowanie fizyczne → sala gimnastyczna). Algorytm generowania ściśle przestrzega tego ograniczenia. Zob. [specjalizacja sali](#page-glossary.classroom-specialization). #### Waga pedagogiczna Na przedmiocie w klasie można zdefiniować **wagę pedagogiczną**: algorytm generowania będzie wtedy dążył do rozłożenia przedmiotu na dni tygodnia, zamiast skupiać wszystko w jednym dniu. #### Zobacz także - [Kurs](#page-glossary.course) - [Typ lekcji](#page-glossary.lesson-type) - [Lekcja / Godzina lekcyjna](#page-glossary.lesson) - [Zarządzanie przedmiotami](#page-admin.subjects) - [Specjalizacja sali](#page-glossary.classroom-specialization) ### Publikacja planu lekcji *Source: `help/pl/glossary/publication.md` · id: glossary.publication · Updated: 2026-06-13* **Opublikowanie** planu lekcji oznacza wdrożenie go do codziennej pracy. Na wybranych **tygodniach roku szkolnego** opublikowany plan lekcji zasila swoimi **lekcjami** wszystkie pozostałe moduły: Strona główna, Plany lekcji, Panel zarządczy, Zarządzanie nieobecnościami, a nawet Administracja — za pośrednictwem planów lekcji nauczycieli i przypisań uczniów. Lekcje ze statusem Wersja robocza albo Anulowany do nich nie trafiają. Wygenerowany plan lekcji **nie jest publikowany automatycznie**. Dopóki nie zostanie opublikowany, pozostaje wersją roboczą, piaskownicą: można go swobodnie przygotowywać w module Zarządzanie planami lekcji, nie zmieniając niczego poza nim; widzą go wyłącznie administratorzy. #### Jak opublikować Na stronie startowej modułu Zarządzanie planami lekcji: 1. Proszę wybrać odpowiedni rok szkolny. 2. Proszę kliknąć Publikacja planów lekcji (Publikacja planów lekcji). 3. W wyświetlonej tabeli proszę wybrać tygodnie każdego planu lekcji. 4. Proszę zapisać. #### Tylko jedna publikacja na tydzień (konto Core) Na koncie Core dozwolona jest **tylko jedna publikacja** na tydzień. Aby opublikować dwa różne plany lekcji, muszą one obejmować rozłączne zakresy tygodni. #### Jednoczesne publikacje Na koncie Premium — albo, wyjątkowo, na koncie Core z włączeniem ustalonym umownie — kilka planów lekcji może być publikowanych na tych samych tygodniach i scalanych podczas przeglądania. Przypadek ten jest omówiony w [Kilka planów lekcji opublikowanych równolegle](#page-timetables.multiple-active-timetables) oraz na pełnej stronie o publikacji. #### Plan lekcji w trybie kalendarzowym: publikacja binarna Planu lekcji w [trybie kalendarzowym](#page-glossary.calendar-mode) nie publikuje się na zakresach tygodni (lekcje mają już indywidualne daty): publikacja jest binarna — plan lekcji jest opublikowany albo nie. #### Zobacz także - [Plan lekcji](#page-glossary.timetable) - [Rok szkolny](#page-glossary.school-year) - [Publikowanie planu lekcji — pełna strona](#page-timetables.publication) - [Kilka planów lekcji opublikowanych równolegle](#page-timetables.multiple-active-timetables) ### Rok szkolny *Source: `help/pl/glossary/school-year.md` · id: glossary.school-year · Updated: 2026-05-10* *Also known as : rok akademicki · kalendarz akademicki · rok nauki* **Rok szkolny** w Omniscol to okres odniesienia, na który publikowane są plany lekcji. Jest to obiekt deklarowany na poziomie szkoły, na ekranie Lata szkolne. #### Dlaczego jest obowiązkowy Aby opublikować plan lekcji, trzeba mieć zadeklarowany co najmniej **jeden** rok szkolny. Rok szkolny wyznacza **oś czasu**, na której publikuje się następnie plany lekcji dla określonych zakresów. #### Konwencje nazewnicze Aby wyświetlanie było czytelne, proszę nazywać lata ich datami: „2025-2026”, a nie „Rok obecny”. Dzięki temu można zachować historię lat minionych i równolegle przygotowywać następny rok. #### Dni wolne Dni wolne roku szkolnego można wprowadzić: - **kopiując i wklejając** tabelę (z Excela, Numbers itp.), - **importem automatycznym** dat wstępnie wprowadzonych dla danego kraju (proponowanym przy tworzeniu roku, jeśli baza danych je zna), - **wpisując ręcznie** okresy. Dni wolne są usuwane z osi czasu — opublikowane plany lekcji ich nie obejmują. #### Przesunięcia naprzemienności Jeśli szkoła korzysta z [tygodni naprzemiennych](#page-glossary.alternate-lessons) (A/B), dni wolne mogą zaburzyć naprzemienność. Aby obsłużyć takie przypadki, można utworzyć **wirtualne przesunięcie** (proszę kliknąć odpowiednie tygodnie na osi czasu). #### Kilka lat równolegle W każdej chwili może istnieć kilka zdefiniowanych lat szkolnych: rok bieżący, rok poprzedni (historia) oraz następny, przygotowywany. Przycisk Następny rok szkolny (▶︎) na osi czasu przełącza między latami. **Rok bieżący** wybiera się w ustawieniu Bieżący rok szkolny. Właśnie on decyduje o tym, co użytkownicy widzą domyślnie. #### Zobacz także - [Lekcje naprzemienne / tygodnie A/B](#page-glossary.alternate-lessons) - [Zarządzanie rokiem szkolnym](#page-admin.school-year) - [Przygotowanie następnego roku szkolnego](#page-timetables.next-school-year) ### Sala *Source: `help/pl/glossary/classroom.md` · id: glossary.classroom · Updated: 2026-06-13* *Also known as : sala lekcyjna · sala zajęciowa · pomieszczenie · room · sala dedykowana* **Sala** w Omniscol to pomieszczenie fizyczne, w którym może odbywać się lekcja. Każda sala jest przypisana do [lokalizacji](#page-glossary.site). Sala ma: - **nazwę** („A102”, „Sala wykładowa Newtona”, „Lab. chemii 3”), - **pojemność** (liczbę uczniów, których można w niej pomieścić; pole krytyczne dla algorytmu generowania), - opcjonalnie ustawienie Maksymalna liczba klas, gdy jest to **[duża sala](#page-glossary.large-room)** mogąca pomieścić kilka lekcji jednocześnie (sala egzaminacyjna, teatr, sala gimnastyczna, pływalnia, przestrzeń na zewnątrz), - opcjonalnie **[specjalizację](#page-glossary.classroom-specialization)** (chemia, informatyka, sport, multimedia itd. — jedna etykieta na salę), - opcjonalnie **tagi** lub dowolne komentarze (flipchart, stały projektor, gniazdka elektryczne dla uczniów itd.), - opcjonalnie **budynek**, - **godziny otwarcia** (przydatne dla sal dzielonych z inną placówką albo dla sal otwartych tylko w wybrane dni). #### Przypisanie do lekcji Lekcja może mieć jedną salę lub [kilka sal](#page-glossary.multi-room). Gdy sala jest przypisywana ręcznie, Omniscol: - **wstępnie odfiltrowuje** sale nieodpowiednie (niewłaściwa specjalizacja, niewystarczająca pojemność, niedostępność, niewłaściwa lokalizacja), wyświetlając je jako półprzezroczyste, - **sortuje** sale zgodne według stopnia dopasowania (gwiazdki: optymalne wypełnienie itd.), - pozwala wymusić niespójne przypisanie, ale wyświetla ostrzeżenie. #### Pojemność i dobór rozmiaru Pojemność jest polem krytycznym. W razie wątpliwości, o ile jest pewne, że sala będzie wystarczająco duża, proszę wpisać wysoką liczbę. Przy zbyt małej wartości algorytm generowania odrzuci poprawne konfiguracje lub wyświetli ostrzeżenia. #### Duża sala: kilka lekcji jednocześnie Pole **Maksymalna liczba klas** zamienia salę w **[dużą salę](#page-glossary.large-room)**: może ona wtedy pomieścić kilka różnych lekcji w tym samym momencie (z odrębnymi nauczycielami i grupami), w granicach tej liczby i swojej całkowitej pojemności — typowo sala egzaminacyjna, teatr, sala gimnastyczna, pływalnia lub przestrzeń na zewnątrz. To ustawienie pojawia się tylko na sali ze **[specjalizacją](#page-glossary.classroom-specialization)**. Jeśli pole pozostanie puste, sala przyjmuje tylko jedną lekcję naraz. #### Specjalizacja **Specjalizacja** (chemia, informatyka, sport, multimedia, sala do nauki pod nadzorem…) to dowolna etykieta, jedna na salę. Służy następnie do wskazania — przy przypisywaniu przedmiotu do klasy — że wymagana jest sala z dokładnie tą etykietą. Algorytm generowania przestrzega tego ograniczenia bezwzględnie. #### Sala dedykowana klasie Wiele konfiguracji w szkolnictwie podstawowym i średnim przypisuje jedną salę do każdej klasy (lekcje odbywają się tam domyślnie, przemieszczają się tylko nauczyciele). Można to ustawić na klasie (zob. [tworzenie klasy](#page-timetables.creating-classes)). #### Sale w dwóch lokalizacjach wirtualnych Jeśli dla jednego miejsca fizycznego utworzono dwie [lokalizacje](#page-glossary.site) wirtualne (typowo szkoła podstawowa i liceum dzielące te same pomieszczenia), sala może należeć tylko do jednej z nich naraz. Aby można było jej używać po stronie szkoły podstawowej **i** po stronie liceum, proszę ją zduplikować w obu lokalizacjach i **wprowadzić wzajemnie wyłączne godziny otwarcia**. Omniscol nie odróżnia jednej sali dzielonej między dwie lokalizacje od dwóch sal o tej samej nazwie: nie zestawia więc automatycznie obu wpisów, a uniknięcie podwójnej rezerwacji rzeczywistego pomieszczenia pozostaje zadaniem administratora. #### Zobacz także - [Lokalizacja](#page-glossary.site) - [Kampus](#page-glossary.campus) - [Specjalizacja sali](#page-glossary.classroom-specialization) - [Wiele sal](#page-glossary.multi-room) - [Duża sala](#page-glossary.large-room) - [Zasób](#page-glossary.resource) ### Siatka godzin *Source: `help/pl/glossary/timetable-grid.md` · id: glossary.timetable-grid · Plan: standard · Updated: 2026-08-24* *Also known as : siatka godzin lokalizacji · przedziały czasowe* **Siatka godzin** to podział czasu w **lokalizacji**: przedziały czasowe, w których umieszczane są lekcje, wraz z godzinami rozpoczęcia i zakończenia, przerwami i zamknięciami. Każda lokalizacja ma własną siatkę godzin, więc dwie lokalizacje tej samej placówki mogą mieć inaczej zorganizowane dni. Siatka godzin służy wyświetlaniu planów lekcji, kontroli dostępności i generowaniu. Klasa może się od niej uniezależnić: zob. **poza siatką**. ### Specjalizacja sali *Source: `help/pl/glossary/classroom-specialization.md` · id: glossary.classroom-specialization · Updated: 2026-05-10* *Also known as : typ sali · sala specjalistyczna · sala przypisana do przedmiotu* **Specjalizacja sali** wskazuje, że sala jest przeznaczona do określonego rodzaju aktywności: laboratorium chemiczne, sala informatyczna, sala gimnastyczna, sala multimedialna, sala do sprawdzianów, pracownia plastyczna, studio muzyczne itd. Jest to pole **dowolne** — specjalizacje tworzy się według własnych potrzeb i własnej nomenklatury. Omniscol nie narzuca zamkniętej listy. #### Zachowanie algorytmu generowania Gdy przedmiot wymaga specjalizacji, algorytm generowania przypisuje **wyłącznie** sale, które tę specjalizację mają. Laboratorium chemiczne nigdy nie zostanie wykorzystane na lekcję literatury, jeśli na przedmiocie laboratoryjnym wymagana jest „chemia”. Wymuszenie niespójnego przypisania (ręczne wskazanie dla lekcji chemii sali bez specjalizacji „chemia”) **nie jest blokowane**, ale powoduje wyświetlenie alertu. #### Porządkowanie lub usuwanie specjalizacji Specjalizacja istnieje tak długo, jak długo używa jej co najmniej jedna sala. Aby ją usunąć, proszę zdjąć ją ze wszystkich sal, które ją mają — przy najbliższym zapisie zniknie z bazy referencyjnej. Aby **zmienić nazwę**, proszę utworzyć nową specjalizację o właściwej nazwie, podmienić ją na salach, a stara zniknie automatycznie (o ile nie ma już do niej żadnych odwołań, również po stronie przedmiotów). #### Zobacz także - [Sala](#page-glossary.classroom) - [Przedmiot](#page-glossary.subject) - [Specjalizacje sal](#page-core-concepts.classroom-specializations) ### Status lekcji *Source: `help/pl/glossary/lesson-status.md` · id: glossary.lesson-status · Plan: premium · Updated: 2026-06-25* > **Premium** *Also known as : status kursu · zaplanowany · wersja robocza · lekcja anulowana · lekcja zrealizowana · zrealizowany* > _Premium_ Na kontach **Premium** atrybut **Status** wskazuje, na jakim etapie cyklu planowania znajduje się [lekcja](#page-glossary.lesson). Ustawia się go lekcja po lekcji — ikoną Status — albo **masowo** z widoku listy. Cztery wartości: - **Zaplanowany** — Domyślny status zaplanowanych lekcji. To stan zwykłej lekcji, umieszczonej na siatce godzin. - **Wersja robocza** — lekcja w przygotowaniu, **pomijana przy generowaniu** i w **panelach zarządczych**. Przydatne, aby przygotować lekcję, nie narzucając jej jeszcze ani planowi lekcji, ani [algorytmowi generowania](#page-glossary.solver). - **Anulowany** — lekcja pozostaje **widoczna jako anulowana** (zachowana w celach dokumentacyjnych), ale również jest **pomijana przy generowaniu** i w **panelach zarządczych**. - **Zrealizowany** — lekcja jest oznaczona jako **zrealizowana** i właśnie w tej postaci trafia do **panelu zarządczego** nauczycieli, na potrzeby **fakturowania**. #### Wyświetlanie Gdy są wyświetlane na siatce godzin, takie lekcje rozpoznaje się po samym wyglądzie: - lekcja o statusie **Wersja robocza** ma **pomarańczowe, kropkowane obramowanie** i pozostaje lekko przygaszona; - lekcja o statusie **Anulowany** jest **przekreślona** i mocno przygaszona — staje się znów czytelna po najechaniu kursorem, co pozwala zachować ją w celach dokumentacyjnych, nie zaśmiecając siatki godzin. #### Wpływ na generowanie Lekcje o statusie **Wersja robocza** i **Anulowany** są odkładane na bok przez [algorytm generowania](#page-glossary.solver): nie zostają umieszczone w planie i nie są brane pod uwagę przy wykrywaniu konfliktów (obłożenie sal, kolizje nauczycieli, pojemność sal). Lekcje o statusie **Zaplanowany** pozostają rzeczywistymi lekcjami, które generowanie umieszcza w planie. #### „Zrealizowany”: tylko w trybie kalendarzowym Status **Zrealizowany** jest proponowany wyłącznie w planach lekcji typu **[kalendarz](#page-glossary.calendar-mode)**: to tam, na lekcjach z datami, oznaczenie lekcji jako faktycznie odbytej ma sens. Zasila on wówczas **ewidencję godzin rzeczywiście przeprowadzonych przez nauczycieli** (panel zarządczy nauczycieli) oraz ich **fakturowanie**. W planie lekcji tygodniowym albo cyklicznym ten status się nie pojawia. #### Zobacz także - [Edycja lekcji](#page-timetables.lesson-edit) - [Tryb](#page-glossary.lesson-modality) - [Lekcja / Godzina lekcyjna](#page-glossary.lesson) - [Tryb kalendarzowy](#page-glossary.calendar-mode) ### Token API *Source: `help/pl/glossary/api-token.md` · id: glossary.api-token · Updated: 2026-05-15* *Also known as : klucz api · token uwierzytelniający · klucz dostępu* **Token API** pozwala oprogramowaniu zewnętrznemu wywoływać punkty dostępu API Omniscol w imieniu szkoły — w trybie odczytu oraz, jeśli wybrano punkty dostępu API do zapisu, także w trybie zapisu. Daje to duże możliwości — dlatego należy obchodzić się z nim ostrożnie. #### Generowanie Token generuje się w Udostępnianie (Import/Eksport > Udostępnianie). Proszę podać: - klucz (generowany w Omniscol, z etykietą i ewentualną datą wygaśnięcia; tę datę wygaśnięcia można później zmienić), - zakres: listę punktów dostępu API, które ten token będzie mógł wywoływać (proszę przyznać tylko to, co jest absolutnie niezbędne), - opcjonalnie **datę wygaśnięcia tokenu**. Data ta jest wpisywana do wygenerowanego JWT i nie można jej później zmienić. Usunięcie klucza lub upływ jego daty wygaśnięcia natychmiast unieważnia wygenerowane z niego tokeny. Aby zmienić datę wygaśnięcia pojedynczego tokenu, proszę wygenerować nowy JWT. #### Użycie Token przekazuje się w nagłówku HTTP `Authorization: Bearer ` albo (mniej zalecane w środowisku produkcyjnym) w adresie URL przez `?auth=`. #### Dobre praktyki - **Jeden klucz na integrację** — ułatwia niezależne unieważnianie. - **Minimalny zakres** — proszę zaznaczać tylko potrzebne API, a nie wszystko domyślnie. - **Wygaśnięcie na właściwym poziomie** — daty wygaśnięcia klucza proszę używać do prowadzenia integracji w dłuższym czasie, a daty wygaśnięcia tokenu — do dostępu tymczasowego, którego nie da się zmienić. - **Rotacja okresowa** — proszę generować klucz ponownie co 6-12 miesięcy. - **Nie w Gicie** — token nie może trafić do publicznego repozytorium pod kontrolą wersji. Proszę korzystać ze zmiennych środowiskowych serwera. #### Różnica wobec OIDC / SSO Do logowania rzeczywistych użytkowników ich tożsamością instytucjonalną służy [OIDC / SSO](#page-integrations.oauth2). Token API jest przeznaczony do technicznych integracji serwer-serwer, a nie do codziennego logowania użytkowników. #### Zobacz także - [Link udostępniania](#page-glossary.share-link) - [API Omniscol](#page-integrations.api-tokens) - [MCP — podłączenie zewnętrznego agenta AI](#page-integrations.mcp) ### Tryb kalendarzowy *Source: `help/pl/glossary/calendar-mode.md` · id: glossary.calendar-mode · Plan: premium · Updated: 2026-06-13* > **Premium** *Also known as : tryb kalendarza · plan z datami · bez powtarzalności* > _Premium_ Plan lekcji w **trybie kalendarzowym** porządkuje lekcje **według dat**, bez powtarzalnego tygodnia wzorcowego. Każda lekcja jest umieszczana pojedynczo na konkretnej dacie, jak w terminarzu. To tryb najczęściej stosowany w: - **szkolnictwie wyższym** (uczelnie techniczne, szkoły biznesu, uniwersytety), - **kształceniu ustawicznym** (pojedyncze sesje, krótkie programy), - **ośrodkach szkoleniowych**, w których kursy nie powtarzają się co tydzień. Tryb dostępny na kontach **Premium**. #### Różnice w porównaniu z trybem tygodniowym | Aspekt | Tygodniowy | Kalendarzowy | | --- | --- | --- | | Powtarzalność | Tydzień wzorcowy | Data po dacie | | Generowanie automatyczne | Tak | Tak (z oknem dat i zagęszczaniem dni) | | Dostępność | Zatwierdzana z wyprzedzeniem | Konsolidowana w czasie rzeczywistym | | Edycja lekcji | Dotyczy wszystkich opublikowanych tygodni | Dotyczy jednej konkretnej daty | | Grupy grup | Tak | Tak | | Publikacja | Na zakresach tygodni | Binarna (opublikowany albo nie) | | Domyślne wyświetlanie | Widok tygodnia | Widok tygodnia albo miesiąca | | Usuwanie w dni wolne | Automatyczne | Brak (lekcje mają już daty) | #### Generowanie automatyczne w trybie kalendarzowym Algorytm generowania działa także w trybie kalendarzowym: umieszcza na dostępnych datach lekcje jeszcze nieumieszczone, respektując te same ograniczenia (nauczyciel ani klasa nie mogą być w dwóch miejscach jednocześnie, zgodne sale, blokująca dostępność). Ekran generowania udostępnia ponadto ustawienia właściwe dla kalendarza: **docelowe okno dat**, które ogranicza obliczenia do wybranego okresu, oraz **zagęszczanie dni** (skupienie na początku albo na końcu okna lub pozostawienie decyzji algorytmowi generowania). Równolegle pozostaje dostępna pomoc przy ręcznym umieszczaniu: konflikty wykrywane w czasie rzeczywistym, przefiltrowane propozycje sal, dostępność uwzględniana natychmiast. #### Dostępność w trybie kalendarzowym W planie lekcji kalendarzowym dostępność nauczycieli zewnętrznych może się zmieniać z czasem. Omniscol konsoliduje ją w czasie rzeczywistym i zgłasza ostrzeżenia o konfliktach w miarę, jak dostępność się zmienia. Zob. [Dostępność w trybie kalendarzowym](#page-timetables.calendar-wishes). #### Łączenie trybu tygodniowego i kalendarzowego w jednej szkole W Premium można **publikować jednocześnie** plan lekcji tygodniowy (powtarzalne kursy poranne, studia pierwszego stopnia) i plan lekcji kalendarzowy (okazjonalne kursy mistrzowskie po południu, studia magisterskie) na tych samych tygodniach, dzięki opcji [Kilka planów lekcji opublikowanych równolegle](#page-timetables.multiple-active-timetables). Jeśli oba plany lekcji mają wspólne jednostki (nauczycieli, sale), Omniscol dynamicznie scala widoki i wykrywa konflikty krzyżowe między nimi. #### Zobacz także - [Plan lekcji](#page-glossary.timetable) - [Wybór właściwego typu planu lekcji](#page-overview.timetable-modes) - [Tryb kalendarzowy](#page-timetables.calendar-mode) - [Grupy grup](#page-glossary.groups-of-groups) ### Tryb lekcji *Source: `help/pl/glossary/lesson-modality.md` · id: glossary.lesson-modality · Plan: premium · Updated: 2026-06-25* > **Premium** *Also known as : stacjonarnie · lekcja stacjonarna · zdalnie · nauczanie zdalne · lekcja zdalna · hybrydowy* > _Premium_ Na kontach **Premium** atrybut **Tryb** wskazuje, **jak** przebiega [lekcja](#page-glossary.lesson). Wybiera się go w polu wyboru sali Przypisz salę, obok samego przypisania. Cztery wartości, każda z własną ikoną na lekcji: - **Stacjonarnie** — lekcja odbywa się w [sali](#page-glossary.classroom) (przypadek domyślny). - **Zdalnie** — lekcja odbywa się na odległość (ikona [video]); sala nie jest wymagana. - **Hybrydowy** — lekcja odbywa się w sali **i** jest jednocześnie transmitowana zdalnie (na przykład wykład nadawany przez wideokonferencję): zajmuje więc salę i potrzebuje linku. - **Samokształcenie** — praca prowadzona samodzielnie, bez wymaganej sali. Jest to równoważne zablokowaniu braku sali (co wyłącza alert, gdy do lekcji nie przypisano żadnej sali). #### Wpływ na salę i generowanie Tryb ma konkretny wpływ na planowanie: lekcja w trybie **Zdalnie** lub **Samokształcenie** **nie wymaga sali**. [Algorytm generowania](#page-glossary.solver) nie rezerwuje jej żadnej sali, a automatyczne przypisywanie sal ją pomija. Lekcje w trybie **Stacjonarnie** i **Hybrydowy** wymagają natomiast sali. #### Link do wideokonferencji W przypadku lekcji zdalnych i hybrydowych można wpisać **link do wideokonferencji** w tym samym polu wyboru sali. Link można też ustawić domyślnie na klasie — obowiązuje wtedy dla jej lekcji. Gdy linku brakuje, wyświetlany jest alert. #### Statystyki według trybu [Diagnostyka](#page-glossary.diagnostic) udostępnia tabelę rozkładu **według trybu**: sumuje czas nauczania realizowany stacjonarnie, zdalnie, hybrydowo i w ramach samokształcenia. Przydaje się to na przykład do zmierzenia udziału nauczania zdalnego w danym programie kształcenia. Gdy tryb nie został wskazany wprost, Omniscol **wywnioskuje** go z obecnych elementów: sala **i** link do wideokonferencji dają lekcję hybrydową; sama sala — stacjonarną; sam link do wideokonferencji — zdalną; lekcja wprost pozbawiona sali — samokształcenie. Wybór dokonany wprost zawsze ma pierwszeństwo przed tym wnioskowaniem. #### Zobacz także - [Edycja lekcji](#page-timetables.lesson-edit) - [Status](#page-glossary.lesson-status) - [Lekcja / Godzina lekcyjna](#page-glossary.lesson) - [Sala](#page-glossary.classroom) ### Tryb wyświetlania planu lekcji *Source: `help/pl/glossary/schedule-view-mode.md` · id: glossary.schedule-view-mode · Updated: 2026-06-13* *Also known as : widok siatki · widok listy · widok tabeli · przełączanie widoku* Trzy wymienne reprezentacje tych samych lekcji w tym samym planie lekcji, wybierane przyciskami w pasku tytułu: - **Siatka** (Widok siatki): klasyczny widok kalendarza, lekcje umieszczone na siatce dzień × godzina. Tryb domyślny do szybkiego przeglądania. - **Lista** (Widok listy): chronologiczny ciąg lekcji, po jednej w wierszu, z dniem, godzinami, czasem trwania, klasą, grupą, przedmiotem, nauczycielami, lokalizacją i salą. Wygodna do przeglądania po kolei. - **Tabela** (Tabela): odwzorowanie bieżącego widoku w stylu arkusza kalkulacyjnego — dni w kolumnach i przedziały czasowe w wierszach (albo odwrotnie), albo jedna lekcja w wierszu, gdy aktywny jest widok listy. Przydatna do audytu, skopiowania do arkusza kalkulacyjnego lub eksportu do pliku w zależności od ekranu (PDF, CSV, Excel / XLSX). Ten tryb jest zastrzeżony dla administratorów i dostępny tylko na komputerze. Wszystkie trzy tryby operują na **tym samym zbiorze danych**; przełączenie niczego nie modyfikuje ani nie filtruje, to wyłącznie inna prezentacja. Wybór nie jest zapisywany: obowiązuje dla bieżącego wyświetlania. ### Tygodniowy plan lekcji *Source: `help/pl/glossary/weekly-timetable.md` · id: glossary.weekly-timetable · Updated: 2026-05-15* *Also known as : tydzień wzorcowy · powtarzalny · plan tygodniowy* **Tygodniowy plan lekcji** opiera się na **tygodniu wzorcowym**: lekcje definiuje się jako powtarzające się w dniach tygodnia. Przy publikacji wybiera się **zakresy tygodni** roku, w których obowiązuje tydzień wzorcowy. Ten tryb stosuje się: - w szkolnictwie podstawowym i średnim (szkoły podstawowe, licea, technika), - na studiach pierwszego stopnia na niektórych wydziałach, - w ośrodkach szkoleń językowych o stałym rozkładzie godzin. #### Generowanie automatyczne Algorytm generowania działa w tym trybie. Szuka optymalnego umieszczenia lekcji w tygodniu wzorcowym, respektując: - dostępność nauczycieli, - wymagane specjalizacje sal, - podziały klas, wyrównania grup, niekompatybilności, - wagę pedagogiczną (rozłożenie przedmiotów na dni tygodnia). Zob. [Algorytm generowania](#page-glossary.solver). #### Tygodnie naprzemienne Dzięki funkcji [tygodni naprzemiennych](#page-glossary.alternate-lessons) można mieć lekcje, które występują tylko co drugi tydzień (albo co trzeci itd.) — tygodnie A/B, 1/2 itd. Konfiguruje się ją w Zapisz. #### Dni wolne a naprzemienność Ferie szkolne mogą zaburzyć naprzemienność A/B. Jeśli bezpośrednio przed feriami obowiązywał tydzień A, a po nich ma obowiązywać tydzień B, można utworzyć **wirtualne przesunięcie** na osi czasu (proszę kliknąć odpowiednie tygodnie). #### Dostępność zatwierdzana z wyprzedzeniem Dostępność nauczycieli jest zatwierdzana z wyprzedzeniem (przed generowaniem). Każda późniejsza zmiana po stronie nauczyciela jest zgłaszana, ale nie wpływa na już wyliczony plan lekcji. Inaczej jest w trybie [kalendarzowym](#page-glossary.calendar-mode), w którym dostępność jest konsolidowana w czasie rzeczywistym. #### Zobacz także - [Plan lekcji](#page-glossary.timetable) - [Wybór właściwego typu planu lekcji](#page-overview.timetable-modes) - [Generowanie automatyczne](#page-glossary.solver) - [Lekcje naprzemienne](#page-glossary.alternate-lessons) ### Typ lekcji *Source: `help/pl/glossary/lesson-type.md` · id: glossary.lesson-type · Updated: 2026-05-10* *Also known as : typ kursu · forma dydaktyczna · wykład · ćwiczenia · laboratorium · zajęcia praktyczne* **Typ lekcji** określa formę dydaktyczną, w jakiej prowadzona jest lekcja. Kanoniczne przykłady: - **Wykład** — nauczanie całego rocznika jednocześnie, - **Ćwiczenia** — praca w małych grupach pod kierunkiem nauczyciela, - **Laboratorium** — praca praktyczna i doświadczalna, - **Egzamin** — sprawdzenie wiedzy na ocenę, - **Konferencja** — wystąpienie gościa z zewnątrz, - **Warsztaty**, **Seminarium**, **Forum**, **Obrona pracy**… Typy lekcji definiuje się na poziomie szkoły w Utwórz. Można utworzyć ich tyle, ile wymaga przyjęta nomenklatura dydaktyczna (na uczelniach bywa ich 25-30). #### Powiązanie przedmiotu z typem Typ lekcji przypisuje się do kursu, obok jego [przedmiotu](#page-glossary.subject). Para `(przedmiot, typ)` jest traktowana jako niezależny identyfikator: na przykład w statystykach czy filtrach „kurs matematyki” i „ćwiczenia z matematyki” pojawiają się osobno. Aby objąć oba wpisy jednym zapytaniem (bez rozróżniania typu), proszę użyć otwartego filtra, w którym typ nie jest określony. #### Filtrowanie i wyświetlanie - **Filtr w module Plany lekcji** — wybór typu, aby zobaczyć tylko laboratoria albo tylko wykłady. - **Statystyki** — zestawienie godzin ćwiczeń, laboratoriów i wykładów w podziale na klasy lub nauczycieli. - **Wyświetlanie** — kolor albo znacznik wizualny dla każdego typu na siatce godzin, zależnie od ustawień wyświetlania. #### Zobacz także - [Kurs](#page-glossary.course) - [Przedmiot](#page-glossary.subject) - [Lekcja / Godzina lekcyjna](#page-glossary.lesson) - [Konfigurowanie typów lekcji](#page-admin.lesson-types) ### Uczeń / Student / Słuchacz *Source: `help/pl/glossary/student.md` · id: glossary.student · Updated: 2026-05-14* *Also known as : uczestnik · kursant* **Uczeń** w Omniscol to osoba przypisana do [klasy](#page-glossary.class), uczęszczająca na kursy i ewentualnie należąca do jednej lub kilku [grup](#page-glossary.group) w obrębie tej klasy. **Uczeń** to termin kanoniczny interfejsu; zależnie od kontekstu placówki zmienia się słownictwo potoczne: - **Szkoła podstawowa i ponadpodstawowa** — „uczeń”, - **Szkolnictwo wyższe** — „student”, - **Kształcenie ustawiczne** — „słuchacz”, „uczestnik”, „kursant”. Wszystkie oznaczają tę samą jednostkę Omniscol. #### Wprowadzanie uczniów jest **nieobowiązkowe** Ważna uwaga: Omniscol działa bardzo dobrze **bez wprowadzenia ani jednego ucznia**. Plany lekcji, dostępność nauczycieli, generowanie i statystyki panelu zarządczego działają na poziomie klasy, grupy i nauczyciela. Co daje wprowadzenie uczniów pojedynczo: - **Indywidualne plany lekcji** — każdy uczeń po zalogowaniu widzi własny plan lekcji, zawężony do jego klasy i grup. - **Szczegółowe statystyki** — panel zarządczy w podziale na uczniów (godziny lekcji, dni obecności). - **Nieobecności** — uczeń może sam zgłaszać swoje nieobecności (z zatwierdzeniem przez administrację). - **Uczniowie powtarzający rok i uczący się poza tokiem** — obsługa uczniów, którzy muszą uczęszczać na kursy innej klasy niż własna. Jeśli te funkcje nie są potrzebne, nie trzeba wprowadzać uczniów — nic istotnego nie zostanie utracone. #### Przypisanie do klasy i do grup Ucznia przypisuje się do jego klasy i grup na ekranie Uczniowie, po opublikowaniu pierwszego planu lekcji w roku szkolnym. Można też przypisywać masowo działaniem Przypisz do klasy na wielu zaznaczonych uczniach. #### Powtarzanie roku i nauka poza tokiem Ucznia można przypisać do kilku klas (na przykład uczeń III roku, który musi uczęszczać także na moduł z II roku) albo tylko do niektórych grup klasy (uczeń na *warunku*, który powtarza jeden przedmiot). Takie przypadki obsługuje się wielokrotnym wyborem klas i grup na ekranie przypisania. #### Zobacz także - [Klasa](#page-glossary.class) - [Grupa](#page-glossary.group) - [Zarządzanie uczniami](#page-admin.students) ### Wiele sal (jedna lekcja w kilku salach) *Source: `help/pl/glossary/multi-room.md` · id: glossary.multi-room · Updated: 2026-06-13* *Also known as : kilka sal · dwie sale · podwojenie sali* Omniscol pozwala przypisać **kilka sal** do tej samej lekcji. Funkcja ta jest dostępna **we wszystkich typach planów lekcji**: [tygodniowym](#page-glossary.weekly-timetable), [cyklicznym](#page-glossary.cyclic-timetable) i [kalendarzowym](#page-glossary.calendar-mode). #### Typowe zastosowania - **Egzaminy w podzielonych salach wykładowych** — egzamin dla 200 kandydatów rozdzielony na trzy sale wykładowe (pojemność 70 + 60 + 80) z jednym odpowiedzialnym nauczycielem. Pojemność jest liczona jako suma przypisanych sal. - **Transmitowany wykład** — wykład w głównej sali wykładowej, przekazywany przez wideokonferencję do sali satelickiej (na przykład w innej lokalizacji, a nawet dla klasy uczącej się w pełni zdalnie). - **Podzielone laboratorium bez podziału grupy** — gdy laboratorium dla 30 uczniów nie mieści się w żadnej pojedynczej sali informatycznej, ale może być nadzorowane jednocześnie w dwóch sąsiednich salach (15 + 15) przez tego samego nauczyciela. #### Pojemność całkowita = suma sal Po przypisaniu kilku sal do lekcji Omniscol sumuje ich pojemności, aby sprawdzić, czy grupa się pomieści. Fałszywe alerty o przekroczeniu pojemności nie pojawiają się, gdy suma wystarcza. > **Wskazówka.** Jeśli po dodaniu drugiej sali alerty o przekroczeniu > pojemności znikają, jest to dokładnie oczekiwane zachowanie: > suma pokrywa teraz liczebność grupy. #### Zastrzeżenie, o którym warto wiedzieć Jeśli suma pojemności pozostaje **mniejsza** od liczebności grupy, Omniscol nadal pokazuje konflikt — to administrator decyduje, jak go rozwiązać (dodając salę, zmniejszając grupę albo akceptując konflikt, jeśli jest zamierzony, na przykład gdy wiadomo, że nie przyjdą wszyscy zapisani). #### Zobacz także - [Sala](#page-glossary.classroom) - [Egzaminy w wielu salach w szkolnictwie wyższym](#page-higher-ed.multi-room-exams) - [Lokalizacja](#page-glossary.site) ### Współnauczanie *Source: `help/pl/glossary/co-teaching.md` · id: glossary.co-teaching · Updated: 2026-05-10* *Also known as : nauczanie zespołowe · duet nauczycieli · nauczyciel prowadzący i wspierający* **Współnauczanie** oznacza lekcję prowadzoną jednocześnie przez **dwóch lub więcej nauczycieli**, w tej samej sali i dla tych samych uczniów. Omniscol odwzorowuje ten przypadek w prosty sposób: kurs może mieć **wielu nauczycieli**. Każdy z nich ma tę lekcję zaliczoną w swoich statystykach i godzinach pracy. #### Typowe przypadki - **Wzmocniona opieka dydaktyczna** — nauczyciel etatowy i asystent nauczyciela albo dwaj nauczyciele przy dużej liczbie uczniów. - **Okazjonalny profesor wizytujący** — kurs, którego lekcja danego dnia jest współprowadzona przez nauczyciela zewnętrznego (por. [nauczyciel zewnętrzny / na umowę zlecenie](#page-glossary.external-teacher)). - **Dwóch nauczycieli etatowych** — moduł nauczany w duecie przez cały semestr. - **Podwójne kompetencje** — moduł interdyscyplinarny (na przykład „informatyka w ochronie zdrowia” z lekarzem i informatykiem). #### Różnica wobec naprzemienności Współnauczanie to **dwaj nauczyciele jednocześnie na tej samej lekcji**. **Naprzemienność** ([lekcje naprzemienne](#page-glossary.alternate-lessons)) to **dwaj nauczyciele w tym samym przedziale czasowym, ale w różnych tygodniach**. Jeśli dwaj nauczyciele wymieniają się co tydzień, ale nigdy nie prowadzą lekcji razem, są to lekcje naprzemienne, a nie współnauczanie. Jeśli jeden z nich prowadzi tylko kilka okazjonalnych lekcji, najprościej jest utworzyć osobny kurs na te konkretne daty z profesorem wizytującym, obok kursu głównego — zwłaszcza w [trybie kalendarzowym](#page-glossary.calendar-mode). #### Zobacz także - [Lekcja / Godzina lekcyjna](#page-glossary.lesson) - [Nauczyciel zewnętrzny](#page-glossary.external-teacher) - [Współnauczanie w szkolnictwie wyższym](#page-higher-ed.co-teaching) ### Wyrównanie grup *Source: `help/pl/glossary/alignment.md` · id: glossary.alignment · Updated: 2026-06-26* *Also known as : grupa międzyklasowa · grupowanie międzyklasowe* **Wyrównanie** łączy kilka [grup](#page-glossary.group) pochodzących z **różnych klas**, które muszą dzielić **ten sam przedział czasowy, tego samego nauczyciela i tę samą salę**. Klasyczny przykład: uczniowie łaciny z klas 2A, 2B i 2C mają razem jedną lekcję łaciny. Zamiast tworzyć trzy równoległe lekcje (które konkurowałyby o nauczyciela i salę), należy utworzyć **grupę „Łacina”** w każdej z trzech klas, a następnie je **wyrównać**. Algorytm generowania umieszcza wtedy jedną lekcję, powiązaną jednocześnie z trzema grupami. Typowe przypadki: - międzyklasowe grupy językowe (grupy języka angielskiego zebrane z kilku klas), - międzyklasowe przedmioty do wyboru (łacina, greka, wiedza o społeczeństwie), - przedmioty rozszerzone w liceum, - wspólne moduły w szkolnictwie wyższym (ten sam kurs wspólnego trzonu dla kilku kierunków). #### Możliwości i ograniczenia Wyrównanie daje ogromne możliwości — pozwala uniknąć duplikowania, gwarantuje spójność zmian (przeniesiona lekcja zostaje przeniesiona wszędzie) i upraszcza przeglądanie. **Jest jednak także bardzo ograniczające**: - Po wyrównaniu grupa nie może już mieć samodzielnej lekcji w tym konkretnym przedziale czasowym: jeśli jedna z trzech klas ma wyjątkowo własną lekcję, trzeba **zduplikować** jej grupę i wyłączyć kopię z wyrównania. - Wszystkie wyrównane grupy muszą mieć w swoich klasach dokładnie tę samą liczbę godzin i tę samą konfigurację. Rozbieżność powoduje ostrzeżenie o niespójności (zob. zakładkę Generowanie). - Zmiany (dodanie lekcji, zmiana sali) należy wprowadzać tylko raz, na wyrównaniu — Omniscol propaguje je dalej. Edytowanie lekcji z poziomu tylko jednej z klas może jednak wywołać skutki uboczne. #### Ważne różnice | Pojęcie | Zakres | Ograniczenie | | --- | --- | --- | | [Podział klasy](#page-glossary.class-division) | Grupy **jednej** klasy | Ten sam przedział czasowy, **różni** nauczyciele i **różne** sale | | **Wyrównanie** | Grupy **kilku** klas | Ten sam przedział czasowy, **ten sam** nauczyciel, **ta sama** sala | | [Grupa grup](#page-glossary.groups-of-groups) | Taki sam jak w wyrównaniu | Ten sam przedział czasowy, jeden nauczyciel i jedna sala, **elastyczna edycja po fakcie** | #### W trybie kalendarzowym W planie lekcji w trybie [kalendarzowym](#page-glossary.calendar-mode) lepiej wybrać [grupę grup](#page-glossary.groups-of-groups) niż wyrównanie: łatwiej ją edytować, można stopniowo dodawać lub usuwać grupę bez konieczności odtwarzania całej struktury. #### Zobacz także - [Grupa](#page-glossary.group) - [Podział klasy](#page-glossary.class-division) - [Grupy grup](#page-glossary.groups-of-groups) - [Kurs przekrojowy](#page-glossary.transverse-course) - [Wyrównania grup](#page-core-concepts.alignments) ### Zasób *Source: `help/pl/glossary/resource.md` · id: glossary.resource · Updated: 2026-05-10* *Also known as : zasoby · wyposażenie · sprzęt mobilny · projektor · walizka · zestaw* **Zasób** w Omniscol to **mobilny** element, który nie jest przypisany do żadnej konkretnej sali. Każdy zasób ma **nazwę** i **dostępną ilość**. Przykłady: trzy przenośne projektory, walizka z 30 tabletami (walizka liczy się jako 1, a nie jako 30 — podaje się liczbę walizek, nie liczbę tabletów), zestaw mikrofonów, zestaw fantomów do pierwszej pomocy. #### Jak się z niego korzysta Przy konfigurowaniu kursu należy wskazać zasoby, które są dla niego niezbędne. Algorytm generowania gwarantuje, że **jednoczesne lekcje nie będą wymagać więcej zasobów, niż jest dostępnych**: jeśli dostępne są 3 przenośne projektory, nigdy więcej niż 3 jednoczesne lekcje nie będą mogły zażądać po jednym. #### Różnica wobec sal [Sala](#page-glossary.classroom) jest przypisana do [lokalizacji](#page-glossary.site) i się z niej nie rusza. Zasób nie jest przypisany do żadnej sali (jest natomiast przypisany do lokalizacji, co uniemożliwia użycie walizki z lokalizacji A na kursie w lokalizacji B). #### Typowe przypadki, w których nie używa się zasobu Wiele kursów nie ma żadnego zadeklarowanego zasobu — tak jest domyślnie. Zasób należy deklarować tylko wtedy, gdy stanowi **rzeczywisty limit**: jeśli dostępnych jest 30 przenośnych projektorów, a jednoczesnych lekcji najwyżej 4, nie ma potrzeby tego modelować; jeśli są 3, a lekcji, które ich wymagają, jest kilka, rozstrzygnięcie warto pozostawić algorytmowi generowania. #### Zobacz także - [Lokalizacja](#page-glossary.site) - [Sala](#page-glossary.classroom) ### Zastępstwo *Source: `help/pl/glossary/substitution.md` · id: glossary.substitution · Updated: 2026-05-14* *Also known as : nauczyciel zastępca · reguła zastępstwa* **Zastępstwo** to przypisanie innego nauczyciela do lekcji, której stały nauczyciel jest [nieobecny](#page-glossary.absence). #### Zastępstwo jednorazowe Dla konkretnej lekcji administrator otwiera panel zarządzania zastępstwami danej nieobecności i korzysta z Przypisz zastępcę. Takie przypisanie obowiązuje wyłącznie dla wybranej lekcji i ma pierwszeństwo przed zasadami długoterminowymi. #### Reguła zastępstwa Przy długiej nieobecności administrator tworzy jedną lub kilka reguł za pomocą Przypisz zastępcę. Reguła może określać: - zastępcę; - daty obowiązywania; - przedziały czasowe; - przedmioty; - klasy; - komentarz. Reguły stosuje się w wyświetlonej kolejności. Jeśli żadna reguła nie obejmuje danej lekcji, pozostaje ona dotknięta nieobecnością stałego nauczyciela. #### Wyświetlanie zastępstw W planie lekcji zastępowany nauczyciel pozostaje widoczny jako nieobecny stały nauczyciel, a zastępca pojawia się na lekcji. Szczegóły powodu i komentarza nieobecności zależą od uprawnień do przeglądania. #### Zobacz także - [Nieobecność](#page-glossary.absence) - [Zasady zastępstw](#page-absences.substitution-policies) - [Jednorazowe zastępstwo na pojedynczej lekcji](#page-absences.single-lesson-replacement) --- ## Index ### A - **Algorytm generowania** — [Definition](#page-glossary.solver) · [Automatyczne generowanie](#page-timetables.generation) · [Blokowanie lekcji](#page-timetables.lesson-lock) · [Czym jest Omniscol](#page-overview.what-is-omniscol) · [Diagnozowanie nieudanego generowania](#page-timetables.diagnosing-generation) · [Dostępność nauczycieli](#page-core-concepts.wishes-and-availability) · [Działanie algorytmu generowania](#page-faq.solver-behavior) · [Ogólna filozofia Omniscol](#page-overview.philosophy) · [Ograniczenia czasowe (zasady ogólne)](#page-core-concepts.time-constraints) · [Ręczne umieszczanie](#page-timetables.manual-placement) · [Tworzenie planu lekcji](#page-faq.timetables) ### C - **Cykliczny plan lekcji** — [Definition](#page-glossary.cyclic-timetable) · [Tworzenie planu lekcji](#page-faq.timetables) · [Wybór właściwego typu planu lekcji](#page-overview.timetable-modes) ### D - **Diagnostyka** — [Definition](#page-glossary.diagnostic) · [Automatyczne generowanie](#page-timetables.generation) · [Diagnozowanie nieudanego generowania](#page-timetables.diagnosing-generation) · [Działanie algorytmu generowania](#page-faq.solver-behavior) · [Konflikty i diagnostyka](#page-timetables.conflicts) - **Dni wolne** — [Definition](#page-glossary.holidays) - **Dostępność nauczycieli (deklaracje)** — [Definition](#page-glossary.wishes) · [Dostępność nauczycieli](#page-core-concepts.wishes-and-availability) · [Grupy grup](#page-core-concepts.groups-of-groups) · [Ograniczenia czasowe (zasady ogólne)](#page-core-concepts.time-constraints) · [Pełny model danych](#page-integrations.data-model-full) · [Przypisywanie nauczycieli](#page-timetables.assigning-teachers) - **Duża sala** — [Definition](#page-glossary.large-room) · [Automatyczne przydzielanie sal](#page-timetables.auto-room-assignment) · [Lokalizacje, sale, zasoby](#page-core-concepts.sites-rooms-resources) · [Lokalizacje, siatki godzin, sale, zasoby](#page-timetables.sites-rooms) ### G - **Grupa** — [Definition](#page-glossary.group) · [Edycja lekcji](#page-timetables.lesson-edit) · [Grupy grup](#page-core-concepts.groups-of-groups) · [Grupy wolne](#page-core-concepts.free-groups) · [Hierarchia grup](#page-core-concepts.group-hierarchy) · [Klasa, grupa, podgrupa](#page-core-concepts.classes-and-groups) · [Lekcje poza siatką](#page-timetables.off-grid-lessons) · [Obszary](#page-admin.planning-domains) · [OneRoster](#page-integrations.oneroster) · [Pełny model danych](#page-integrations.data-model-full) · [Podział godzin i tworzenie lekcji](#page-timetables.hour-distribution) · [Podziały klasy](#page-core-concepts.class-divisions) · [Polityka podziału](#page-timetables.distribution-policy) · [Przypadki użycia w szkolnictwie wyższym](#page-faq.higher-ed-cases) · [Statystyki klas](#page-dashboard.classes) · [Statystyki uczniów i zasobów](#page-dashboard.students-resources) · [Tworzenie klas i ich grup](#page-timetables.creating-classes) · [Wyrównania grup](#page-core-concepts.alignments) · [Wyrównania grup i grupy grup](#page-timetables.alignments-and-groups-of-groups) - **Grupa grup** — [Definition](#page-glossary.groups-of-groups) · [Grupy grup](#page-core-concepts.groups-of-groups) · [OneRoster](#page-integrations.oneroster) · [Pełny model danych](#page-integrations.data-model-full) · [Plany i opcje Omniscol](#page-overview.plans-and-options) · [Przegląd](#page-higher-ed.overview) · [Przypadki szczególne i konfiguracje zaawansowane](#page-faq.edge-cases) · [Przypadki użycia w szkolnictwie wyższym](#page-faq.higher-ed-cases) · [Wyrównania grup](#page-core-concepts.alignments) · [Wyrównania grup i grupy grup](#page-timetables.alignments-and-groups-of-groups) - **Grupa wolna** — [Definition](#page-glossary.free-group) · [Grupy wolne](#page-core-concepts.free-groups) · [Pełny model danych](#page-integrations.data-model-full) ### I - **iCal (eksport kalendarza)** — [Definition](#page-glossary.ical) · [Przegląd integracji](#page-integrations.overview) ### K - **Kampus** — [Definition](#page-glossary.campus) · [Konflikty i diagnostyka](#page-timetables.conflicts) · [Lokalizacje, sale, zasoby](#page-core-concepts.sites-rooms-resources) · [Lokalizacje, siatki godzin, sale, zasoby](#page-timetables.sites-rooms) · [Obszary](#page-admin.planning-domains) · [Tworzenie klas i ich grup](#page-timetables.creating-classes) · [Ustawienia zaawansowane i dostosowanie](#page-admin.advanced-parameters) - **Klasa** — [Definition](#page-glossary.class) · [Architektura i role](#page-overview.architecture-and-roles) · [Czym jest Omniscol](#page-overview.what-is-omniscol) · [Klasa, grupa, podgrupa](#page-core-concepts.classes-and-groups) · [Obszary](#page-admin.planning-domains) · [OneRoster](#page-integrations.oneroster) · [Oprowadzenie w pięć minut](#page-overview.quick-tour) · [Organizacja danych](#page-core-concepts.data-model) · [Pełny model danych](#page-integrations.data-model-full) · [Statystyki klas](#page-dashboard.classes) · [Tworzenie klas i ich grup](#page-timetables.creating-classes) - **Konflikt** — [Definition](#page-glossary.conflict) · [Automatyczne generowanie](#page-timetables.generation) · [Blokowanie lekcji](#page-timetables.lesson-lock) · [Czym jest Omniscol](#page-overview.what-is-omniscol) · [Diagnozowanie nieudanego generowania](#page-timetables.diagnosing-generation) · [Doraźne modyfikacje](#page-schedules.ad-hoc-changes) · [Działanie algorytmu generowania](#page-faq.solver-behavior) · [Konflikty i diagnostyka](#page-timetables.conflicts) · [Ogólna filozofia Omniscol](#page-overview.philosophy) · [Przypadki szczególne i konfiguracje zaawansowane](#page-faq.edge-cases) - **Kurs** — [Definition](#page-glossary.course) · [Polityka podziału](#page-timetables.distribution-policy) - **Kurs przekrojowy** — [Definition](#page-glossary.transverse-course) ### L - **Lekcja / Godzina lekcyjna** — [Definition](#page-glossary.lesson) · [Blokowanie lekcji](#page-timetables.lesson-lock) · [Czym jest Omniscol](#page-overview.what-is-omniscol) · [Doraźne modyfikacje](#page-schedules.ad-hoc-changes) · [Edycja lekcji](#page-timetables.lesson-edit) · [Lekcje poza siatką](#page-timetables.off-grid-lessons) · [Masowy import kursów z arkusza kalkulacyjnego](#page-timetables.mass-import) · [Obszary](#page-admin.planning-domains) · [Oprowadzenie w pięć minut](#page-overview.quick-tour) · [Organizacja danych](#page-core-concepts.data-model) · [Pełny model danych](#page-integrations.data-model-full) · [Podział godzin i tworzenie lekcji](#page-timetables.hour-distribution) · [Polityka podziału](#page-timetables.distribution-policy) · [Przeglądanie i filtrowanie](#page-schedules.consult-and-filter) · [Przygotowanie danych do importu masowego](#page-getting-started.preparing-data) · [Przypadki szczególne i konfiguracje zaawansowane](#page-faq.edge-cases) · [Ręczne umieszczanie](#page-timetables.manual-placement) · [Siatka godzin, przedziały czasowe i czasy trwania](#page-core-concepts.timetable-grid) - **Lekcje naprzemienne** — [Definition](#page-glossary.alternate-lessons) · [Podział godzin i tworzenie lekcji](#page-timetables.hour-distribution) · [Ustawienia ogólne](#page-admin.parameters) · [Złożone lekcje](#page-core-concepts.complex-lessons) - **Lekcje połączone** — [Definition](#page-glossary.concatenated-lessons) · [Podział godzin i tworzenie lekcji](#page-timetables.hour-distribution) · [Złożone lekcje](#page-core-concepts.complex-lessons) - **Lekcje skojarzone** — [Definition](#page-glossary.associated-lessons) · [Podział godzin i tworzenie lekcji](#page-timetables.hour-distribution) · [Złożone lekcje](#page-core-concepts.complex-lessons) - **Link udostępniania** — [Definition](#page-glossary.share-link) · [Architektura i role](#page-overview.architecture-and-roles) · [Bezpieczeństwo i hosting](#page-faq.security-and-hosting) · [Przegląd integracji](#page-integrations.overview) - **Lokalizacja** — [Definition](#page-glossary.site) · [Automatyczne przydzielanie sal](#page-timetables.auto-room-assignment) · [Lokalizacje, sale, zasoby](#page-core-concepts.sites-rooms-resources) · [Lokalizacje, siatki godzin, sale, zasoby](#page-timetables.sites-rooms) · [Obszary](#page-admin.planning-domains) · [Pełny model danych](#page-integrations.data-model-full) · [Siatka godzin, przedziały czasowe i czasy trwania](#page-core-concepts.timetable-grid) ### N - **Nauczyciel** — [Definition](#page-glossary.teacher) · [Architektura i role](#page-overview.architecture-and-roles) · [Czym jest Omniscol](#page-overview.what-is-omniscol) · [Dostępność nauczycieli](#page-core-concepts.wishes-and-availability) · [Edycja lekcji](#page-timetables.lesson-edit) · [Lekcje poza siatką](#page-timetables.off-grid-lessons) · [Obszary](#page-admin.planning-domains) · [OneRoster](#page-integrations.oneroster) · [Oprowadzenie w pięć minut](#page-overview.quick-tour) · [Organizacja danych](#page-core-concepts.data-model) · [Pełny model danych](#page-integrations.data-model-full) · [Przegląd modułu Panel zarządczy](#page-dashboard.overview) · [Przewodnik](#page-getting-started.onboarding-tour) · [Przygotowanie danych do importu masowego](#page-getting-started.preparing-data) · [Przypisywanie nauczycieli](#page-timetables.assigning-teachers) · [Statystyki klas](#page-dashboard.classes) · [Statystyki nauczycieli](#page-dashboard.teachers) · [Statystyki przedmiotów](#page-dashboard.subjects) · [Użytkownicy i role](#page-admin.users-and-roles) · [Wymagania wstępne](#page-timetables.prerequisites) · [Zapraszanie i aktywowanie użytkowników](#page-getting-started.inviting-users) - **Nauczyciel zewnętrzny** — [Definition](#page-glossary.external-teacher) · [Przegląd](#page-higher-ed.overview) · [Przypadki użycia w szkolnictwie wyższym](#page-faq.higher-ed-cases) · [Przypisywanie nauczycieli](#page-timetables.assigning-teachers) - **Niekompatybilność (między przedmiotami)** — [Definition](#page-glossary.incompatibility) · [Ograniczenia czasowe (zasady ogólne)](#page-core-concepts.time-constraints) - **Nieobecność** — [Definition](#page-glossary.absence) · [Przegląd modułu Zarządzanie nieobecnościami](#page-absences.overview) · [Statystyki nauczycieli](#page-dashboard.teachers) · [Statystyki uczniów i zasobów](#page-dashboard.students-resources) · [Zasady zastępstw](#page-absences.substitution-policies) · [Zgłaszanie nieobecności](#page-absences.declaring) ### O - **Obsada personelu** — [Definition](#page-glossary.staffing) · [Pełny model danych](#page-integrations.data-model-full) - **Obszar planowania** — [Definition](#page-glossary.planning-domain) · [Obszary](#page-admin.planning-domains) · [Role niestandardowe](#page-admin.customroles) - **Okno dat** — [Definition](#page-glossary.date-windows) - **Oś czasu** — [Definition](#page-glossary.timeline) · [Oś czasu i nawigacja w czasie](#page-core-concepts.timeline-navigation) ### P - **Panel informacyjny** — [Definition](#page-glossary.panel) · [Pełny model danych](#page-integrations.data-model-full) · [Wyświetlanie i UX](#page-faq.display-and-ux) - **Panel zarządczy** — [Definition](#page-glossary.dashboard) · [Korzystanie z tabel i wykresów](#page-dashboard.tools-and-filters) · [Przegląd modułu Panel zarządczy](#page-dashboard.overview) · [Statystyki klas](#page-dashboard.classes) · [Statystyki nauczycieli](#page-dashboard.teachers) · [Statystyki przedmiotów](#page-dashboard.subjects) · [Statystyki sal](#page-dashboard.classrooms) · [Statystyki uczniów i zasobów](#page-dashboard.students-resources) - **Plan lekcji** — [Definition](#page-glossary.timetable) · [Czym jest Omniscol](#page-overview.what-is-omniscol) · [Korzystanie z tabel i wykresów](#page-dashboard.tools-and-filters) · [Lekcje poza siatką](#page-timetables.off-grid-lessons) · [Obszary](#page-admin.planning-domains) · [Ogólna filozofia Omniscol](#page-overview.philosophy) · [Oprowadzenie w pięć minut](#page-overview.quick-tour) · [Przegląd modułu](#page-timetables.overview) · [Przegląd modułu Panel zarządczy](#page-dashboard.overview) · [Przeglądanie i filtrowanie](#page-schedules.consult-and-filter) · [Przewodnik](#page-getting-started.onboarding-tour) · [Publikacja planu lekcji](#page-timetables.publication) · [Siatka godzin, przedziały czasowe i czasy trwania](#page-core-concepts.timetable-grid) · [Statystyki nauczycieli](#page-dashboard.teachers) · [Statystyki sal](#page-dashboard.classrooms) · [Tworzenie planu lekcji](#page-faq.timetables) · [Ustawienia ogólne](#page-timetables.general-settings) · [Wybór właściwego typu planu lekcji](#page-overview.timetable-modes) · [Wyszukiwanie i filtry](#page-core-concepts.search-and-filter) · [Wyświetlanie i UX](#page-faq.display-and-ux) · [Wyświetlanie planów lekcji](#page-schedules.schedule-display) - **Podział klasy** — [Definition](#page-glossary.class-division) · [Hierarchia grup](#page-core-concepts.group-hierarchy) · [Klasa, grupa, podgrupa](#page-core-concepts.classes-and-groups) · [OneRoster](#page-integrations.oneroster) · [Pełny model danych](#page-integrations.data-model-full) · [Podziały klasy](#page-core-concepts.class-divisions) · [Polityka podziału](#page-timetables.distribution-policy) · [Przegląd](#page-k12.overview) · [Przypadki szczególne i konfiguracje zaawansowane](#page-faq.edge-cases) · [Przypadki użycia w szkolnictwie wyższym](#page-faq.higher-ed-cases) · [Tworzenie klas i ich grup](#page-timetables.creating-classes) · [Wyrównania grup](#page-core-concepts.alignments) - **Polityka podziału godzin** — [Definition](#page-glossary.distribution-policy) · [Polityka podziału](#page-timetables.distribution-policy) - **Poza siatką** — [Definition](#page-glossary.off-grid) - **Poziom** — [Definition](#page-glossary.level) · [Obszary](#page-admin.planning-domains) - **Przedmiot** — [Definition](#page-glossary.subject) · [Obszary](#page-admin.planning-domains) · [OneRoster](#page-integrations.oneroster) · [Organizacja danych](#page-core-concepts.data-model) · [Pełny model danych](#page-integrations.data-model-full) · [Przegląd modułu Panel zarządczy](#page-dashboard.overview) · [Przewodnik](#page-getting-started.onboarding-tour) · [Przygotowanie danych do importu masowego](#page-getting-started.preparing-data) · [Statystyki klas](#page-dashboard.classes) · [Statystyki przedmiotów](#page-dashboard.subjects) · [Tworzenie klas i ich grup](#page-timetables.creating-classes) · [Wymagania wstępne](#page-timetables.prerequisites) - **Publikacja planu lekcji** — [Definition](#page-glossary.publication) · [Przewodnik](#page-getting-started.onboarding-tour) · [Publikacja planu lekcji](#page-timetables.publication) · [Tworzenie planu lekcji](#page-faq.timetables) ### R - **Rok szkolny** — [Definition](#page-glossary.school-year) · [Konfigurowanie konta szkoły](#page-getting-started.setup-school) · [OneRoster](#page-integrations.oneroster) · [Organizacja danych](#page-core-concepts.data-model) · [Pełny model danych](#page-integrations.data-model-full) · [Przewodnik](#page-getting-started.onboarding-tour) · [Publikacja planu lekcji](#page-timetables.publication) · [Ustawienia ogólne](#page-admin.parameters) · [Wymagania wstępne](#page-timetables.prerequisites) ### S - **Sala** — [Definition](#page-glossary.classroom) · [Automatyczne przydzielanie sal](#page-timetables.auto-room-assignment) · [Edycja lekcji](#page-timetables.lesson-edit) · [Lekcje poza siatką](#page-timetables.off-grid-lessons) · [Lokalizacje, sale, zasoby](#page-core-concepts.sites-rooms-resources) · [Lokalizacje, siatki godzin, sale, zasoby](#page-timetables.sites-rooms) · [Masowy import kursów z arkusza kalkulacyjnego](#page-timetables.mass-import) · [Obszary](#page-admin.planning-domains) · [Przegląd modułu Panel zarządczy](#page-dashboard.overview) · [Przygotowanie danych do importu masowego](#page-getting-started.preparing-data) · [Statystyki przedmiotów](#page-dashboard.subjects) · [Statystyki sal](#page-dashboard.classrooms) · [Wyszukiwanie i filtry](#page-core-concepts.search-and-filter) - **Siatka godzin** — [Definition](#page-glossary.timetable-grid) - **Specjalizacja sali** — [Definition](#page-glossary.classroom-specialization) · [Automatyczne przydzielanie sal](#page-timetables.auto-room-assignment) · [Lokalizacje, sale, zasoby](#page-core-concepts.sites-rooms-resources) · [Lokalizacje, siatki godzin, sale, zasoby](#page-timetables.sites-rooms) · [Pełny model danych](#page-integrations.data-model-full) · [Przypadki szczególne i konfiguracje zaawansowane](#page-faq.edge-cases) - **Status** — [Definition](#page-glossary.lesson-status) ### T - **Token API** — [Definition](#page-glossary.api-token) · [API lekcji](#page-integrations.lessons-api) · [Architektura](#page-integrations.architecture) · [Bezpieczeństwo i hosting](#page-faq.security-and-hosting) · [Przegląd integracji](#page-integrations.overview) · [Zaawansowane zapytania](#page-integrations.advanced-queries) - **Tryb** — [Definition](#page-glossary.lesson-modality) - **Tryb kalendarzowy** — [Definition](#page-glossary.calendar-mode) · [Plany i opcje Omniscol](#page-overview.plans-and-options) · [Przegląd](#page-higher-ed.overview) · [Przegląd modułu](#page-timetables.overview) · [Przypadki użycia w szkolnictwie wyższym](#page-faq.higher-ed-cases) · [Tworzenie planu lekcji](#page-faq.timetables) · [Wybór właściwego typu planu lekcji](#page-overview.timetable-modes) - **Tryb wyświetlania planu lekcji** — [Definition](#page-glossary.schedule-view-mode) - **Tygodniowy plan lekcji** — [Definition](#page-glossary.weekly-timetable) · [Działanie algorytmu generowania](#page-faq.solver-behavior) · [Przegląd](#page-k12.overview) · [Przegląd modułu](#page-timetables.overview) · [Tworzenie planu lekcji](#page-faq.timetables) · [Wybór właściwego typu planu lekcji](#page-overview.timetable-modes) - **Typ lekcji** — [Definition](#page-glossary.lesson-type) · [Organizacja danych](#page-core-concepts.data-model) · [Pełny model danych](#page-integrations.data-model-full) ### U - **Uczeń / Student / Słuchacz** — [Definition](#page-glossary.student) · [Architektura i role](#page-overview.architecture-and-roles) · [Czym jest Omniscol](#page-overview.what-is-omniscol) · [OneRoster](#page-integrations.oneroster) · [Przewodnik](#page-getting-started.onboarding-tour) · [Przygotowanie danych do importu masowego](#page-getting-started.preparing-data) · [Statystyki uczniów i zasobów](#page-dashboard.students-resources) · [Użytkownicy i role](#page-admin.users-and-roles) · [Zapraszanie i aktywowanie użytkowników](#page-getting-started.inviting-users) ### W - **Wiele sal** — [Definition](#page-glossary.multi-room) · [Lokalizacje, sale, zasoby](#page-core-concepts.sites-rooms-resources) · [Lokalizacje, siatki godzin, sale, zasoby](#page-timetables.sites-rooms) · [Masowy import kursów z arkusza kalkulacyjnego](#page-timetables.mass-import) · [Przegląd](#page-higher-ed.overview) · [Przypadki szczególne i konfiguracje zaawansowane](#page-faq.edge-cases) · [Przypadki użycia w szkolnictwie wyższym](#page-faq.higher-ed-cases) - **Współnauczanie** — [Definition](#page-glossary.co-teaching) · [Przypadki użycia w szkolnictwie wyższym](#page-faq.higher-ed-cases) · [Złożone lekcje](#page-core-concepts.complex-lessons) - **Wyrównanie grup** — [Definition](#page-glossary.alignment) · [Grupy grup](#page-core-concepts.groups-of-groups) · [Klasa, grupa, podgrupa](#page-core-concepts.classes-and-groups) · [Pełny model danych](#page-integrations.data-model-full) · [Przegląd](#page-k12.overview) · [Przypadki użycia w szkolnictwie wyższym](#page-faq.higher-ed-cases) · [Wyrównania grup](#page-core-concepts.alignments) · [Wyrównania grup i grupy grup](#page-timetables.alignments-and-groups-of-groups) ### Z - **Zasób** — [Definition](#page-glossary.resource) · [Edycja lekcji](#page-timetables.lesson-edit) · [Lokalizacje, sale, zasoby](#page-core-concepts.sites-rooms-resources) · [Lokalizacje, siatki godzin, sale, zasoby](#page-timetables.sites-rooms) · [Pełny model danych](#page-integrations.data-model-full) · [Statystyki uczniów i zasobów](#page-dashboard.students-resources) - **Zastępstwo** — [Definition](#page-glossary.substitution) · [Pełny model danych](#page-integrations.data-model-full) · [Przegląd modułu Zarządzanie nieobecnościami](#page-absences.overview) · [Statystyki nauczycieli](#page-dashboard.teachers) · [Zasady zastępstw](#page-absences.substitution-policies)