diff --git a/README.rst b/README.rst index e5d0251f38d496da608ba3c99526b31678378caf..664d44feccd825af419d30650fa31a27e97234c2 100644 --- a/README.rst +++ b/README.rst @@ -1,38 +1,16 @@ -AlekSIS — All-libre extensible kit for school information systems -================================================================= +AlekSIS (School Information System) — Core (Core functionality and app framework) +================================================================================= -Warning -------- - -**This is an alpha version of AlekSIS, the free school information system. -The AlekSIS team is looking for schools who want to help shape the 2.0 -final release and supports interested schools in operating AlekSIS.** - -What AlekSIS is ----------------- - -`AlekSIS`_ is a web-based school information system (SIS) which can be used to -manage and/or publish organisational subjects of educational institutions. - -Formerly two separate projects (BiscuIT and SchoolApps), developed by -`Teckids e.V.`_ and a team of students at `Katharineum zu Lübeck`_, they -were merged into the AlekSIS project in 2020. +AlekSIS standard distribution +----------------------------- -AlekSIS is a platform based on Django, that provides central funstions -and data structures that can be used by apps that are developed and provided -seperately. The AlekSIS team also maintains a set of official apps which -make AlekSIS a fully-featured software solutions for the information -management needs of schools. +The AlekSIS standard distribution with information about all official apps +can be found on `EduGit`_. -By design, the platform can be used by schools to write their own apps for -specific needs they face, also in coding classes. Students are empowered to -create real-world applications that bring direct value to their environment. +Features +-------- -AlekSIS is part of the `schul-frei`_ project as a component in sustainable -educational networks. - -Core features --------------- +The AlekSIS-Core currently provides the following features: * For users: @@ -53,24 +31,6 @@ Core features * Authentication via LDAP * Automatic backup of database, static and media files -Official apps -------------- - -+--------------------------------------+---------------------------------------------------------------------------------------------+ -| App name | Purpose | -+======================================+=============================================================================================+ -| `AlekSIS-App-Chronos`_ | The Chronos app provides functionality for digital timetables. | -+--------------------------------------+---------------------------------------------------------------------------------------------+ -| `AlekSIS-App-DashboardFeeds`_ | The DashboardFeeds app provides functionality to add RSS or Atom feeds to dashboard | -+--------------------------------------+---------------------------------------------------------------------------------------------+ -| `AlekSIS-App-Hjelp`_ | The Hjelp app provides functionality for aiding users. | -+--------------------------------------+---------------------------------------------------------------------------------------------+ -| `AlekSIS-App-LDAP`_ | The LDAP app provides functionality to import users and groups from LDAP | -+--------------------------------------+---------------------------------------------------------------------------------------------+ -| `AlekSIS-App-Untis`_ | This app provides import and export functions to interact with Untis, a timetable software. | -+--------------------------------------+---------------------------------------------------------------------------------------------+ - - Licence ------- @@ -91,13 +51,6 @@ full licence text or on the `European Union Public Licence`_ website https://joinup.ec.europa.eu/collection/eupl/guidelines-users-and-developers (including all other official language versions). -.. _AlekSIS: https://aleksis.org/ -.. _Teckids e.V.: https://www.teckids.org/ -.. _Katharineum zu Lübeck: https://www.katharineum.de/ +.. _AlekSIS: https://edugit.org/AlekSIS/Official/AlekSIS .. _European Union Public Licence: https://eupl.eu/ -.. _schul-frei: https://schul-frei.org/ -.. _AlekSIS-App-Chronos: https://edugit.org/AlekSIS/official/AlekSIS-App-Chronos -.. _AlekSIS-App-DashboardFeeds: https://edugit.org/AlekSIS/official/AlekSIS-App-DashboardFeeds -.. _AlekSIS-App-Hjelp: https://edugit.org/AlekSIS/official/AlekSIS-App-Hjelp -.. _AlekSIS-App-LDAP: https://edugit.org/AlekSIS/official/AlekSIS-App-LDAP -.. _AlekSIS-App-Untis: https://edugit.org/AlekSIS/official/AlekSIS-App-Untis +.. _EduGit: https://edugit.org/AlekSIS/official/AlekSIS diff --git a/aleksis/core/locale/de_DE/LC_MESSAGES/django.po b/aleksis/core/locale/de_DE/LC_MESSAGES/django.po index 79d4a662072dcdb6960cb7196fb14e3d0027ccb8..6f6d8fc83f732fbd2abdedbb8f4793e2591c1ca1 100644 --- a/aleksis/core/locale/de_DE/LC_MESSAGES/django.po +++ b/aleksis/core/locale/de_DE/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: AlekSIS (School Information System) 0.1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-08-02 16:29+0200\n" -"PO-Revision-Date: 2020-08-02 15:00+0000\n" +"PO-Revision-Date: 2020-12-19 12:57+0000\n" "Last-Translator: Jonathan Weth <teckids@jonathanweth.de>\n" "Language-Team: German <https://translate.edugit.org/projects/aleksis/aleksis/" "de/>\n" @@ -17,7 +17,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.0.1\n" +"X-Generator: Weblate 4.3.2\n" #: filters.py:37 templates/core/base.html:77 templates/core/group/list.html:20 #: templates/core/person/list.html:24 templates/search/search.html:7 @@ -412,7 +412,7 @@ msgstr "Kann Kindgruppen zu Gruppen zuordnen" #: models.py:330 msgid "Long name" -msgstr "Langer Name" +msgstr "Langname" #: models.py:340 templates/core/group/full.html:65 msgid "Members" diff --git a/aleksis/core/locale/la/LC_MESSAGES/django.po b/aleksis/core/locale/la/LC_MESSAGES/django.po index 4f7d0a777a81038f71eadea209d332a096758d80..6fa38602c123109a48b5f34b07415b76a666f5a5 100644 --- a/aleksis/core/locale/la/LC_MESSAGES/django.po +++ b/aleksis/core/locale/la/LC_MESSAGES/django.po @@ -8,27 +8,26 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-08-02 16:29+0200\n" -"PO-Revision-Date: 2020-04-27 13:03+0000\n" +"PO-Revision-Date: 2020-12-19 12:57+0000\n" "Last-Translator: Julian <leuckerj@gmail.com>\n" -"Language-Team: Latin <https://translate.edugit.org/projects/aleksis/aleksis/la/>\n" +"Language-Team: Latin <https://translate.edugit.org/projects/aleksis/aleksis/" +"la/>\n" "Language: la\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.0.1\n" +"X-Generator: Weblate 4.3.2\n" #: filters.py:37 templates/core/base.html:77 templates/core/group/list.html:20 #: templates/core/person/list.html:24 templates/search/search.html:7 #: templates/search/search.html:22 msgid "Search" -msgstr "" +msgstr "Quaerere" #: filters.py:53 -#, fuzzy -#| msgid "Short name" msgid "Search by name" -msgstr "Breve nomen" +msgstr "Quaerere cum breve nomine" #: filters.py:65 #, fuzzy @@ -249,7 +248,7 @@ msgstr "" #: models.py:36 msgid "Date and time" -msgstr "" +msgstr "Dies et hora" #: models.py:37 msgid "Decimal number" diff --git a/aleksis/core/settings.py b/aleksis/core/settings.py index 16a003bef2b94c6c3b4e05b0b425fd42e2678343..7f584cd9d5c16492803c6dbb7a1d53da9b0b46f1 100644 --- a/aleksis/core/settings.py +++ b/aleksis/core/settings.py @@ -44,6 +44,23 @@ DEBUG_TOOLBAR_CONFIG = { "SHOW_TOOLBAR_CALLBACK": "aleksis.core.util.core_helpers.dt_show_toolbar", } +DEBUG_TOOLBAR_PANELS = [ + "debug_toolbar.panels.versions.VersionsPanel", + "debug_toolbar.panels.timer.TimerPanel", + "debug_toolbar.panels.settings.SettingsPanel", + "debug_toolbar.panels.headers.HeadersPanel", + "debug_toolbar.panels.request.RequestPanel", + "debug_toolbar.panels.sql.SQLPanel", + "debug_toolbar.panels.cache.CachePanel", + "debug_toolbar.panels.staticfiles.StaticFilesPanel", + "debug_toolbar.panels.templates.TemplatesPanel", + "debug_toolbar.panels.signals.SignalsPanel", + "debug_toolbar.panels.logging.LoggingPanel", + "debug_toolbar.panels.redirects.RedirectsPanel", + "debug_toolbar.panels.profiling.ProfilingPanel", +] + + ALLOWED_HOSTS = _settings.get("http.allowed_hosts", []) # Application definition @@ -184,6 +201,11 @@ if _settings.get("caching.memcached.enabled", False): "LOCATION": _settings.get("caching.memcached.address", "127.0.0.1:11211"), } } + INSTALLED_APPS.append("cachalot") + DEBUG_TOOLBAR_PANELS.append("cachalot.panels.CachalotPanel") + CACHALOT_TIMEOUT = _settings.get("caching.cachalot.timeout", None) + CACHALOT_DATABASES = set(["default"]) + SILENCED_SYSTEM_CHECKS.append("cachalot.W001") # Password validation # https://docs.djangoproject.com/en/2.1/ref/settings/#auth-password-validators diff --git a/poetry.lock b/poetry.lock index fcdb7c6b506734fa499a17a387b90f148955b2ff..be0e61cd822675c59e9c9fc318fd2f104c7f900a 100644 --- a/poetry.lock +++ b/poetry.lock @@ -445,6 +445,17 @@ python-versions = "*" [package.dependencies] Django = ">=1.8" +[[package]] +name = "django-cachalot" +version = "2.3.3" +description = "Caches your Django ORM queries and automatically invalidates them." +category = "main" +optional = false +python-versions = "*" + +[package.dependencies] +Django = ">=2" + [[package]] name = "django-cache-memoize" version = "0.1.7" @@ -2171,7 +2182,7 @@ ldap = ["django-auth-ldap"] [metadata] lock-version = "1.1" python-versions = "^3.7" -content-hash = "796fb4bd6779730135a6d2c08f09646dd3f91cdb59dfe2210bdfabd5050f0d2f" +content-hash = "65a4b7b891965a330e7fec9ed64213579550aac1ac8295aa8c3022a4978d488c" [metadata.files] alabaster = [ @@ -2337,6 +2348,10 @@ django-bulk-update = [ {file = "django-bulk-update-2.2.0.tar.gz", hash = "sha256:5ab7ce8a65eac26d19143cc189c0f041d5c03b9d1b290ca240dc4f3d6aaeb337"}, {file = "django_bulk_update-2.2.0-py2.py3-none-any.whl", hash = "sha256:49a403392ae05ea872494d74fb3dfa3515f8df5c07cc277c3dc94724c0ee6985"}, ] +django-cachalot = [ + {file = "django-cachalot-2.3.3.tar.gz", hash = "sha256:ba3a6cabf834139196179c4f6d77409ae9170267ee8ce40e27bbf6c3f6733b2b"}, + {file = "django_cachalot-2.3.3-py3-none-any.whl", hash = "sha256:55f94e94f7000f5f6bd92188d3d7535cfdef79f2e697e36daf69cba8f435e156"}, +] django-cache-memoize = [ {file = "django-cache-memoize-0.1.7.tar.gz", hash = "sha256:5e96349b0159aec1eb79257199a1902ea3ed538231ce7b4fee12e563127ca657"}, {file = "django_cache_memoize-0.1.7-py2.py3-none-any.whl", hash = "sha256:bc7f53725558244af62197d0125732d7ec88ecc1281a3a2f37d77ae1a8c269d3"}, diff --git a/pyproject.toml b/pyproject.toml index 9d0c7e7a40c795c77697aefea7b04cbef1b8e284..c0df6916b5e987cc3ec19bd1e03ddcfb567bda76 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -89,6 +89,7 @@ django-favicon-plus-reloaded = "^1.0.4" django-health-check = "^3.12.1" psutil = "^5.7.0" celery-progress = "^0.0.14" +django-cachalot = "^2.3.2" django-prometheus = "^2.1.0" importlib-metadata = {version = "^3.0.0", python = "<3.9"} django-model-utils = "^4.0.0"