Skip to content
Snippets Groups Projects
Commit 8e9ffb15 authored by Jonathan Weth's avatar Jonathan Weth :keyboard:
Browse files

Merge branch 'add-docs' into 'master'

[Docs] Add docs

See merge request !236
parents 9df6666f 646ccb05
No related branches found
No related tags found
1 merge request!236[Docs] Add docs
Pipeline #49656 canceled
Showing
with 482 additions and 0 deletions
# Minimal makefile for Sphinx documentation
#
# You can set these variables from the command line.
SPHINXOPTS =
SPHINXBUILD = sphinx-build
SOURCEDIR = .
BUILDDIR = _build
# Put it first so that "make" without argument is like "make help".
help:
@$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
.PHONY: help Makefile
# Catch-all target: route all unknown targets to Sphinx using the new
# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
%: Makefile
@$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
docs/_static/all_timetables.png

124 KiB

docs/_static/class_timetable.png

131 KiB

docs/_static/daily_lessons.png

110 KiB

docs/_static/my_timetable.png

113 KiB

docs/_static/print_timetable.png

119 KiB

docs/_static/substitution_edit.png

62.9 KiB

docs/_static/substitutions.png

98.2 KiB

docs/_static/substitutions_print.png

132 KiB

Managing timetable data and substition plans in Chronos
=======================================================
.. toctree::
:glob:
*
Managing timetable and substitution data
========================================
Currently, CHronos does not provide an interface for
interactively managing timetable data.
Instead, data is imported from an external source. The
official distribution handbook contains documentation about
the existing integration apps.
While there is basic support for editing substitutions, the
interface should not be used when substitution data is
imported from an external source.
System-wide settings for timetable and substitution display
===========================================================
The display of timetables and substitution plans can be customised
under `Admin → Configuration → Timetables`. The section contains the
following preferences:
* **Use parent groups in timetable views**: If a lesson or substitution
has only one group and this group has parent groups, these groups will
be shown.
* **Limit of groups for shortening of groups**: If a user has activated
the preference for shortening too long group lists, this limit will be
used to determine at what number of groups shortening will happen.
* **Number of days shown on substitutions print view**: Here you can set
the number of days that will be shown on the substitutions print view
(PDF file).
* **Show header box in substitution views**: The header box shows all
affected/absent teachers/groups for the current day.
* **Show parent groups in header box in substitution views instead of original groups**:
This setting determines the same setting as `Use parent groups in timetable views`,
but for the printout.
# -*- coding: utf-8 -*-
#
# Configuration file for the Sphinx documentation builder.
#
# This file does only contain a selection of the most common options. For a
# full list see the documentation:
# http://www.sphinx-doc.org/en/master/config
# -- Path setup --------------------------------------------------------------
import os
import sys
# If extensions (or modules to document with autodoc) are in another directory,
# add these directories to sys.path here. If the directory is relative to the
# documentation root, use os.path.abspath to make it absolute, like shown here.
#
import django
sys.path.insert(0, os.path.abspath(".."))
os.environ["DJANGO_SETTINGS_MODULE"] = "aleksis.core.settings"
os.environ["LOCAL_SETTINGS_FILE"] = os.path.abspath(os.path.join("..", "local.cfg"))
django.setup()
# -- Project information -----------------------------------------------------
project = "AlekSIS-App-Chronos"
copyright = "2018-2022 The AlekSIS team"
author = "The AlekSIS Team"
# The short X.Y version
version = "2.0"
# The full version, including alpha/beta/rc tags
release = "2.0.1.dev0"
# -- General configuration ---------------------------------------------------
# If your documentation needs a minimal Sphinx version, state it here.
#
# needs_sphinx = '1.0'
# Add any Sphinx extension module names here, as strings. They can be
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
# ones.
extensions = [
"sphinx.ext.autodoc",
"sphinxcontrib_django",
"sphinx_autodoc_typehints",
"sphinx.ext.intersphinx",
"sphinx.ext.viewcode",
]
# Add any paths that contain templates here, relative to this directory.
templates_path = ["_templates"]
# The suffix(es) of source filenames.
# You can specify multiple suffix as a list of string:
#
# source_suffix = ['.rst', '.md']
source_suffix = ".rst"
# The master toctree document.
master_doc = "index"
# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.
#
# This is also used if you do content translation via gettext catalogs.
# Usually you set "language" from the command line for these cases.
language = None
# List of patterns, relative to source directory, that match files and
# directories to ignore when looking for source files.
# This pattern also affects html_static_path and html_extra_path.
exclude_patterns = ["_build", "Thumbs.db", ".DS_Store"]
# The name of the Pygments (syntax highlighting) style to use.
pygments_style = None
# -- Options for HTML output -------------------------------------------------
# The theme to use for HTML and HTML Help pages. See the documentation for
# a list of builtin themes.
#
html_theme = "sphinx_material"
html_favicon = "../aleksis/core/static/img/aleksis-icon.png"
html_logo = "../aleksis/core/static/img/aleksis-banner.svg"
# Theme options are theme-specific and customize the look and feel of a theme
# further. For a list of options available for each theme, see the
# documentation.
#
html_theme_options = {
"repo_url": f"https://edugit.org/AlekSIS/official/{project}",
"repo_name": "EduGit",
"repo_type": "gitlab",
"theme_color": "#0d5eaf",
"color_primary": "#0d5eaf",
"color_accent": "#0d5eaf",
"globaltoc_depth": 2,
"globaltoc_collapse": False,
}
# Add any paths that contain custom static files (such as style sheets) here,
# relative to this directory. They are copied after the builtin static files,
# so a file named "default.css" will overwrite the builtin "default.css".
html_static_path = ["_static"]
# Custom sidebar templates, must be a dictionary that maps document names
# to template names.
#
# The default sidebars (for documents that don't match any pattern) are
# defined by theme itself. Builtin themes are using these templates by
# default: ``['localtoc.html', 'relations.html', 'sourcelink.html',
# 'searchbox.html']``.
#
html_sidebars = {
"**": ["logo-text.html", "globaltoc.html", "localtoc.html", "searchbox.html"]
}
# -- Options for HTMLHelp output ---------------------------------------------
# Output file base name for HTML help builder.
htmlhelp_basename = f"{project}doc"
# -- Options for LaTeX output ------------------------------------------------
latex_elements = {
# The paper size ('letterpaper' or 'a4paper').
#
# 'papersize': 'letterpaper',
# The font size ('10pt', '11pt' or '12pt').
#
# 'pointsize': '10pt',
# Additional stuff for the LaTeX preamble.
#
# 'preamble': '',
# Latex figure (float) alignment
#
# 'figure_align': 'htbp',
}
# Grouping the document tree into LaTeX files. List of tuples
# (source start file, target name, title,
# author, documentclass [howto, manual, or own class]).
latex_documents = [
(master_doc, f"{project}.tex", f"{project} Documentation", author, "manual"),
]
# -- Options for manual page output ------------------------------------------
# One entry per manual page. List of tuples
# (source start file, name, description, authors, manual section).
man_pages = [(master_doc, "aleksis", f"{project} Documentation", [author], 1)]
# -- Options for Texinfo output ----------------------------------------------
# Grouping the document tree into Texinfo files. List of tuples
# (source start file, target name, title, author,
# dir menu entry, description, category)
texinfo_documents = [
(
master_doc,
project,
f"{project} Documentation",
author,
project,
"One line description of project.",
"Miscellaneous",
),
]
# -- Options for Epub output -------------------------------------------------
# Bibliographic Dublin Core info.
epub_title = project
# The unique identifier of the text. This can be a ISBN number
# or the project homepage.
#
# epub_identifier = ''
# A unique identification for the text.
#
# epub_uid = ''
# A list of files that should not be packed into the epub file.
epub_exclude_files = ["search.html"]
# -- Extension configuration -------------------------------------------------
# -- Options for intersphinx extension ---------------------------------------
# Example configuration for intersphinx: refer to the Python standard library.
intersphinx_mapping = {
"https://docs.python.org/": None,
"https://docs.djangoproject.com/en/stable": "https://docs.djangoproject.com/en/stable/_objects",
}
.. AlekSIS documentation master file, created by
sphinx-quickstart on Thu Aug 15 10:49:03 2019.
You can adapt this file completely to your liking, but it should at least
contain the root `toctree` directive.
Welcome to AlekSIS-App-Chronos' documentation!
==============================================
.. toctree::
:maxdepth: 2
:caption: Contents:
user/00_index
admin/00_index
dev/00_index
ref/00_index
Indices and tables
==================
* :ref:`genindex`
* :ref:`modindex`
* :ref:`search`
@ECHO OFF
pushd %~dp0
REM Command file for Sphinx documentation
if "%SPHINXBUILD%" == "" (
set SPHINXBUILD=sphinx-build
)
set SOURCEDIR=.
set BUILDDIR=_build
if "%1" == "" goto help
%SPHINXBUILD% >NUL 2>NUL
if errorlevel 9009 (
echo.
echo.The 'sphinx-build' command was not found. Make sure you have Sphinx
echo.installed, then set the SPHINXBUILD environment variable to point
echo.to the full path of the 'sphinx-build' executable. Alternatively you
echo.may add the Sphinx directory to PATH.
echo.
echo.If you don't have Sphinx installed, grab it from
echo.http://sphinx-doc.org/
exit /b 1
)
%SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS%
goto end
:help
%SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS%
:end
popd
Timetables and substitution plans with Chronos
==============================================
.. toctree::
:glob:
*
Finding information about the timetable
=======================================
Timetables are provided in several ways in AlekSIS. Using the different
views, it is possible to both find information about the regular
lessons taking place, as well as up-to-date information generated from
most recent information, e.g. substitutions, cancellations, or extra lessons.
Viewing the personal timetable
------------------------------
One of the most useful features is the ability to see your daily or weekly
timetable at a glance – with all recent information included. This view,
called "My timetable", can be accessed in two ways: Just add the timetable
widget to the dashboard or use the menu entry `Timetables → My timetable`.
On this page, you can switch between different days (on mobile devices)
or different weeks (on desktop devices) to see future information.
Smart plan
~~~~~~~~~~
By default, the personal timetable id displayed in `smart plan` mode.
This means that all available information, like substitutions or
cancellations, is merged into the regular plan to create an up-to-date
version of the timetable. At one glance, the actual timetable for a
specific day can thus be viewed.
Using the button `Show regular timetable` above the plan, the view can
be switched into regular mode, showing only what was planned ahead,
without up-to-date information.
.. image:: ../_static/my_timetable.png
:width: 600
:alt: My timetable
The colours of the lessons are defined by the subject of the lesson,
and was probably imported from a time-tabling software. In addition,
the following highlighting is done for changes:
* Substituted lessons are decorated with a red border, and changes
in the lesson data are struck through and replaced with the
new information
* Cancelled lessons have their background removed, and a `Cancelled`
label added
* Remarks from the substitution plan are added in italics underneath
the lesson information
Dashboard widget
~~~~~~~~~~~~~~~~
A dashboard widget is provided that shows the `smart plan` for the current
day. Right when logging into AlekSIS, or opening the PWA, the timetable
can thus be immediately viewed.
The widget needs to be enabled by an administrator.
Week timetables
---------------
Using the menu entry `Timetables → All timetables` will give you access
to all timetables of your institution (or whatever your administrator
allowed you to see). It's divided into three main sections:
* Teachers
* Groups
* Rooms
.. image:: ../_static/all_timetables.png
:width: 600
:alt: All timetables
If you open one of these timetables, by default you see the `smart plan`
of the current week. By clicking on `Show regular plan` or using the `print`
button, you can access the corresponding regular plan. To easily jump between
timetables, every teacher, subject, or group short name is linked to the
respective timetable.
.. image:: ../_static/class_timetable.png
:width: 600
:alt: Class timetable
The `print` button will generate the currently displayed plan as a PDF
file, which can either be printed, or used for display on digital signage.
.. image:: ../_static/print_timetable.png
:width: 600
:alt: Print timetable
Substitution plan
=================
In addition to the `smart plan`, substitutions can be
displayed as a traditional substitution plan. The substitution
plan lists all changes made to the regular plan, on a
daily basis, as a table.
View in AlekSIS
~~~~~~~~~~~~~~~
In AlekSIS, the substitution plan is available from the menu under
`Timetable → Substitutions`. This function provides a browsable list,
where substitution plans can be navigated by week.
.. image:: ../_static/substitutions.png
:width: 600
:alt: Substitutions
Print view
~~~~~~~~~~
Like for the regular timetable, the substitution plan can be
printed (as a PDF file), to make hardcopies, or to display it
on digital signage.
.. image:: ../_static/substitutions_print.png
:width: 600
:alt: Print view of substitutions
\ No newline at end of file
Managing substitutions
======================
AlekSIS has basic support for managing substitutions and cancellations.
In the mnue under `Timetable → Daily lessons`, a list of all lessons taking
place on a day can be found.
.. image:: ../_static/daily_lessons.png
:width: 600
:alt: Daily lessons
The list allows editing a substitution for each lesson.
.. image:: ../_static/substitution_edit.png
:width: 600
:alt: Edit a substitution
When editing a substitution, the week, date, and lesson is pre-filled.
The fields for `teacher`, `room`, and `subject` allow replacing
the respective information for the selected lesson.
It should be noted that support for editing substitutions is currently
very basic, and the feature should not be used when substitution data
is imported from an external source.
Configuring the timetable display
=================================
Some display options can be changed by the user, under `Account → Settings → Timetables`:
* **Shorten groups in timetable views**: With this setting activated, lists
with more groups than set in the system-wide limit will be collapsed into
a shorter string (e.g. 5a,b,c,d,e,f might be abbreviated as 5a-f)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment