diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 74ee2f25784f8ba6aff67d3ac2d594a22c0b0758..e387d51057375db5a14c70ed1b10d4759c4ca107 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -14,6 +14,7 @@ Fixed * Migration added in 2.7.2 did not work in all scenarios * [Dev] Field change tracking API for Person was broken in 2.7.2 +* Add missing documentation `2.7.2`_ - 2022-01-31 --------------------- diff --git a/docs/_static/accept_invite.png b/docs/_static/accept_invite.png new file mode 100644 index 0000000000000000000000000000000000000000..598839ab61686ef58cc979ce2cc437b093f9e456 Binary files /dev/null and b/docs/_static/accept_invite.png differ diff --git a/docs/_static/invitations.png b/docs/_static/invitations.png new file mode 100644 index 0000000000000000000000000000000000000000..07cb25b9b1b741cd9a37aa07385b283c6c2805fe Binary files /dev/null and b/docs/_static/invitations.png differ diff --git a/docs/_static/invite_existing.png b/docs/_static/invite_existing.png new file mode 100644 index 0000000000000000000000000000000000000000..6ae7c7b819fd43e3dc3bd5b35dc204a1661a1eca Binary files /dev/null and b/docs/_static/invite_existing.png differ diff --git a/docs/_static/signup.png b/docs/_static/signup.png new file mode 100644 index 0000000000000000000000000000000000000000..cb60572b41a58327f366f7d9db665f6618220554 Binary files /dev/null and b/docs/_static/signup.png differ diff --git a/docs/admin/01_core_concepts.rst b/docs/admin/01_core_concepts.rst index 680ee618367334efff3cde1befcf082d9fdeb8f2..cdd49c7183217897b09cf1fda5575307e0a5f08c 100644 --- a/docs/admin/01_core_concepts.rst +++ b/docs/admin/01_core_concepts.rst @@ -4,7 +4,7 @@ Concepts of the AlekSIS core The AlekSIS core provides functionality and data models as a base for all apps. -.. _sec:SchoolTerms: +.. _core-concept-schoolterm: The concept of school terms --------------------------- @@ -32,7 +32,7 @@ of all school terms and buttons to create, edit or delete school terms. Please be aware that there can be only one school term at time and each school term needs a unique name. -.. _sec:Persons: +.. _core-concept-person: The concept of persons ---------------------- @@ -49,7 +49,7 @@ information like the following: - Address details - Photo - Relation to guardians -- Primary group (e. g. a class or a tutor group, cf. [@sec:Groups]) +- Primary group (e. g. a class or a tutor group, cf. :ref:`core-concept-group`) Except for the name, all data points are optional, so you can decide on your own (and based on your local data protection laws) which data should be @@ -74,7 +74,7 @@ The main method to manage persons is the view under ``People → Persons``. To add person to groups, you have to open the respective group and set the person as a member or an owner. -.. _sec:Groups: +.. _core-concept-group: The concept of groups --------------------- @@ -95,18 +95,20 @@ class or a course varies from school term to school term. In order to archive historical data according to local laws, these groups have to be separeted which is solved by linking them to a school term. -Manage group types -~~~~~~~~~~~~~~~~~~ - -You can manage your local group types by opening the menu entry -``People → Group types`` as an admin user. - Manage groups ~~~~~~~~~~~~~ Groups are managed on the page ``People → Groups``. There you can search, view, create, change and delete groups. +.. _core-concept-grouptype: + +Manage group types +~~~~~~~~~~~~~~~~~~ + +You can manage your local group types by opening the menu entry +``People → Group types`` as an admin user. + Import school terms, persons and groups from other data sources --------------------------------------------------------------- diff --git a/docs/admin/02_install.rst b/docs/admin/10_install.rst similarity index 99% rename from docs/admin/02_install.rst rename to docs/admin/10_install.rst index 5c5b0931917447fdf8468cb1377a7aab01978e5c..c234fa5d7dfcd472c1e786a9909dca503a40e362 100644 --- a/docs/admin/02_install.rst +++ b/docs/admin/10_install.rst @@ -20,6 +20,8 @@ AlekSIS will need and use the following paths: You can change any of the paths as you like. +.. _core-install-prerequisites: + Prerequisites ~~~~~~~~~~~~~ @@ -123,6 +125,8 @@ from `yarnpkg`, collect static files, and migrate the database to the final sche aleksis-admin migrate aleksis-admin createinitialrevisions +.. _core-configure-uwsgi: + Configure uWSGI ~~~~~~~~~~~~~~~ diff --git a/docs/admin/02_config.rst b/docs/admin/15_config_files.rst similarity index 98% rename from docs/admin/02_config.rst rename to docs/admin/15_config_files.rst index 1af436d556ab82254d1c5cfbd213e5eaae85bb0d..adb94a8cac6375ec1b06dbb1de4b60fb0c761165 100644 --- a/docs/admin/02_config.rst +++ b/docs/admin/15_config_files.rst @@ -1,3 +1,5 @@ +.. _core-configuration-files: + Configuration files and format ============================== diff --git a/docs/admin/06_configuration_options.rst b/docs/admin/16_config_options.rst similarity index 100% rename from docs/admin/06_configuration_options.rst rename to docs/admin/16_config_options.rst diff --git a/docs/admin/06_storage.rst b/docs/admin/17_storage.rst similarity index 100% rename from docs/admin/06_storage.rst rename to docs/admin/17_storage.rst diff --git a/docs/admin/18_mail.rst b/docs/admin/18_mail.rst new file mode 100644 index 0000000000000000000000000000000000000000..60e02d1c72a62d9e90ce438a9595e1de54e5f08b --- /dev/null +++ b/docs/admin/18_mail.rst @@ -0,0 +1,36 @@ +Mail +==== + +AlekSIS needs to send mails e.g. for account confirmations, feedback or +error reports. + +Configure mailing +----------------- + +The mailserver can be configured via the configuration file + +.. code-block:: toml + + [mail.server] + host = "mail.example.com" + tls = False + ssl = True + port = 25 + user = "mailuser" + password = "password" + +Name and address for mails sent by AlekSIS can be configured in the +webinterface. To configure, visit `Admin → Configuration` and click on the +`Mail` tab. + +Configure mail recipients +------------------------- + +You can configure admin contacts in your configuration file, located at +``/etc/aleksis/``. + +.. code-blocK:: toml + + [contact] + admins = [["AlekSIS - Admins", "root@example.com"],["AlekSIS - Admins2", "root2@example.com"]] + from = 'aleksis@example.com' diff --git a/docs/admin/03_ldap.rst b/docs/admin/21_ldap.rst similarity index 98% rename from docs/admin/03_ldap.rst rename to docs/admin/21_ldap.rst index 795c9d5e1e1cba76dde168f9778bd12ec9178563..7b123a594154950482a6cdf7ac095a3030ee5359 100644 --- a/docs/admin/03_ldap.rst +++ b/docs/admin/21_ldap.rst @@ -1,3 +1,5 @@ +.. _core-ldap: + Authenticating against LDAP =========================== diff --git a/docs/admin/22_registration.rst b/docs/admin/22_registration.rst new file mode 100644 index 0000000000000000000000000000000000000000..2442b5ce6c59314928fb3f6504b2db51eaa02010 --- /dev/null +++ b/docs/admin/22_registration.rst @@ -0,0 +1,82 @@ +Registration and user invitations +================================= + +In addition to central management of user accounts, AlekSIS allows self-registration +by users. Registration can be either fully open, or based on personal invitations. + +In a system handling ciritcal data, access control should be as tight as possible. +However, there are scenarios where central account creation is not feasible, e.g. +for optional guardian accounts. In such a scenario, the invitation system allows +for processes like handing out invitation codes as a letter or through e-mail +campaigns. + +Configuration +------------- + +.. _core-registration: + +Registration +~~~~~~~~~~~~ + +Registration can be enabled via the configuration interface in frontend. + +In the ``Authentication`` tab, click the checkbox ``Enable signup`` to enable +signup for everyone. A menu item will be added for public registration. + +.. warning:: + Do not enable this feature unless you intend to run a public AlekSIS instance. + +User invitations +~~~~~~~~~~~~~~~~ + +.. _core-user-invitations: + +In the same location as public registration, the invitation system can be enabled. + +* Authentication + + * Enable invitations: Click to enable invitations. + * Length of invite code: Length of invitation code packets, defaults to 5. + * Size of packets: Configure how many packets are generated, defaults to 3. + +By default, an invitation code looks like the following: +``abcde-abcde-abcde``. + +A menu item will become available for users to enter their invitation code. + +Usage +----- + +Invite by email or code +~~~~~~~~~~~~~~~~~~~~~~~ + +To invite a new user , visit the invitation page located at ``People → Invite +person`` + +Here you are able to invite the user by email address or generate an +invitation code. + +.. image:: ../_static/invitations.png + :width: 100% + :alt: Invitations page + +This mechanism allows for registration of entirely new persons that do not +exist in the system, e.g. if perosnal details are not known in advance. + +Invite existing person +~~~~~~~~~~~~~~~~~~~~~~ + +To invite an existing person, open the person in AlekSIS and click ``Invite +user``. + +The invitation will be sent to the person's email address, and can only +be used by this person. Upon registration, the new account will automatically +be linked to the existing person. + +.. image:: ../_static/invite_existing.png + :width: 100% + :alt: Invite existing person + +.. note:: + Before using this feature, make sure to read and understand + :ref:`core-concept-person`. diff --git a/docs/admin/04_socialaccounts.rst b/docs/admin/23_socialaccounts.rst similarity index 98% rename from docs/admin/04_socialaccounts.rst rename to docs/admin/23_socialaccounts.rst index b53c0f23fc69aa893004608b5c67ec8b5b740a15..97f2fc7bb15c59f7cbac769759c6a485122e5ea8 100644 --- a/docs/admin/04_socialaccounts.rst +++ b/docs/admin/23_socialaccounts.rst @@ -34,5 +34,5 @@ provider and enter client id and secret from your application and choose your site: .. image:: ../_static/create_social_application.png - :width: 400 + :width: 100% :alt: Create social application diff --git a/docs/admin/05_monitoring.rst b/docs/admin/31_monitoring.rst similarity index 100% rename from docs/admin/05_monitoring.rst rename to docs/admin/31_monitoring.rst diff --git a/docs/admin/32_tasks.rst b/docs/admin/32_tasks.rst new file mode 100644 index 0000000000000000000000000000000000000000..f8e2dcaf2597487a853568fb6517d35d5d0093ae --- /dev/null +++ b/docs/admin/32_tasks.rst @@ -0,0 +1,26 @@ +Background tasks +================ + +Operations that are expected to take a long time are run as background tasks. +For this, at least one `Celery`_ worker has to be running, e.g. by coupling it +with uWSGI as laid out in :ref:`core-configure-uwsgi`. + +If a task is triggered from the AlekSIS frontend, for example by starting an import +job, a progress page is displayed, and the result of the job is waited for. + +.. _core-periodic-tasks: + +Periodic tasks +~~~~~~~~~~~~~~ + +Some tasks are also run on a schedule. For example, the backup job is run on +a regular basis. + +All tasks in AlekSIS that are expected to run have a default schedule, which +is registered when migrating the database. Changing this default schedule +is currently only possible through the Django Admin backend, under +*Admin → Backend Admin*. + +Under the *Periodic Tasks* app, you can define schedules and tasks. The names +of tasks you can add manually are documented in the respective sections +of the manual. diff --git a/docs/admin/33_data_checks.rst b/docs/admin/33_data_checks.rst new file mode 100644 index 0000000000000000000000000000000000000000..92de54485aea5fada1162c3e18f7b9313e36de0c --- /dev/null +++ b/docs/admin/33_data_checks.rst @@ -0,0 +1,42 @@ +.. _core-data-checks: + +Data checks +=========== + +Data checks are AlekSIS' mechanism for highlighting issues with the +contents of the database. These checks are not of a technical nature, +but strictly concern the contextual integrity of the data stored. + + +Verify data checks +------------------ + +In the menu under ``Admin → Data checks``, the status of all known +checks can be verified. + +.. image:: ../_static/data_checks.png + :width: 100% + :alt: Data check overview + +The first card shows the current global check state. If any data checks +reported issues, they will be listed here. In that case, administrators can +choose between options provided by the data checks to resolve the issues. + +.. note:: + Details about the checks and solve options are described in the + respective chapters of the manual. + +Configure notifications +----------------------- + +In the ``General`` tab of the configuration interface, you can configure +email notifications for problems detected by the data checks. + +* General + + * Send emails if data checks detect problems: Enable email notifications + * Email recipients for data checks problem emails: Choose recipient persons + * Email recipient groups for data checks problem emails: Choose recipient groups + +Data checks normally run once per hour, and if notifications are enabled, results +will be mailed to the selected recipients if problems are detected. diff --git a/docs/admin/10_dashboard.rst b/docs/admin/50_dashboard.rst similarity index 100% rename from docs/admin/10_dashboard.rst rename to docs/admin/50_dashboard.rst diff --git a/docs/dev/06_merging_app_settings.rst b/docs/dev/06_merging_app_settings.rst index 3e12ab95063e002326743afb733b360c094c7d9c..ad30c595f3dc8ef7bc39ab1b3a06b4785cc7276a 100644 --- a/docs/dev/06_merging_app_settings.rst +++ b/docs/dev/06_merging_app_settings.rst @@ -23,7 +23,3 @@ the following into your ``settings.py``:: "HOST": "127.0.0.1", "PORT": 5432, } - -If you install new apps and want to configure these, or need some other settings you can easily add -settings to your ``settings.py``. Only settings that do not exist in the -main ``settings.py`` will be respected. diff --git a/docs/user/01_registration.rst b/docs/user/01_registration.rst new file mode 100644 index 0000000000000000000000000000000000000000..3beb4fb51621af47b97a51a1cb6719773249ecf7 --- /dev/null +++ b/docs/user/01_registration.rst @@ -0,0 +1,36 @@ +Register a new account +====================== + +.. _core-user-registration: + +Public registration +------------------- + +If public registration is enabled on the AlekSIS instance, you can click the +``Signup`` button located in the navigation sidebar and register for an +AlekSIS account. + +.. image:: ../_static/signup.png + :width: 100% + :alt: Signup formular + +If enabled, you have to verify your email address after signup. To do so, click +on the link you recieved on the email address you entered in the signup form. + +.. note:: + Normally, AlekSIS does not allow public registratio, and all accounts are + centrally managed by administrators. Public registration is an optional + feature that has to be enabled by adminsitrators after careful consideration. + +Using an invitation code +------------------------ + +If you have an invitation code, click ``Accept invitation`` in the sidebar and +enter it. You will be redirected to the signup form. + +.. image:: ../_static/accept_invite.png + :width: 100% + :alt: Accept invitation + +If you've recieved an invitation link (e.g. via email), clicking the link +will redirect you to the signup form automatically. diff --git a/docs/user/01_personal_account.rst b/docs/user/02_personal_account.rst similarity index 90% rename from docs/user/01_personal_account.rst rename to docs/user/02_personal_account.rst index da1c435fa7a77302343cf693cd40bf0886d04385..a506b9e759ddf0b9f0e8235db784c51c150317c8 100644 --- a/docs/user/01_personal_account.rst +++ b/docs/user/02_personal_account.rst @@ -5,7 +5,7 @@ Each logged in user has several options to provided through the AlekSIS core. Which of these items are display depends on whether the user has a person and what your system administrator has configured. -.. _sec:Notifications: +.. _core-notifications: Notifications ------------- @@ -16,14 +16,14 @@ changes). Notifications are shown on the dashboard and the notifications page reachable over the menu entry ``Notifications``. In addition to that, notifications can be sent to users through several communication channels. These channels can be switched on or off in your personal -preferences (cf. [@sec:PersonalPreferences]). +preferences (cf. :ref:`core-user-preferences`). Setup two-factor authentication ------------------------------- .. image:: ../_static/2fa.png - :width: 600 + :width: 100% :alt: Configure two factor authentication AlekSIS provides two factor authentication using hardware tokens such as @@ -58,7 +58,7 @@ Reachable under ``Account → Me``, this page shows the personal information saved about you in the system. If activated, you can upload a picture of yourself or edit some information. -.. _sec:PersonalPreferences: +.. _core-user-preferences: Personal preferences -------------------- @@ -74,7 +74,7 @@ apps. - **Name format for addressing**: Here you can select how AlekSIS should address you. - **Channels to use for notifications:** This channel is used to - sent notifications to you (cf. [@sec:Notifications]). + sent notifications to you (cf. :ref:`core-notifications`). Third-party accounts -------------------- @@ -83,6 +83,9 @@ If you logged in using a third-party account (e. g. a Google or Microsoft account), you can manage the connections to these accounts on the page ``Account → Third-party accounts``. +The feature to use third-party accounts needs to be enabled by +an administrator, as described in :doc:`../admin/04_socialaccounts`. + Authorized applications ----------------------- diff --git a/docs/user/02_dashboard.rst b/docs/user/10_dashboard.rst similarity index 100% rename from docs/user/02_dashboard.rst rename to docs/user/10_dashboard.rst