diff --git a/aleksis/core/settings.py b/aleksis/core/settings.py index 0a4bd992518fb89281f36b756bd330c0b57956ea..09572883982081f2619581322a24467865d993e2 100644 --- a/aleksis/core/settings.py +++ b/aleksis/core/settings.py @@ -478,3 +478,22 @@ CKEDITOR_CONFIGS = { ]), } } + +LICENCE_INFORMATION = { + "core": { + "name": _("Core"), + "repository": "https://edugit.org/AlekSIS/AlekSIS/", + "licence": _("EUPL, version 1.2 or later"), + "copyright_holders": [ + ([2017, 2018, 2019, 2020], "Jonathan Weth", "wethjo@katharineum.de"), + ([2017, 2018, 2019], "Frank Poetzsch-Heffter", "p-h@katharineum.de"), + ([2018, 2019, 2020], "Hangzhi Yu", "yuha@katharineum.de"), + ([2018, 2019, 2020], "Julian Leucker", "leuckeju@katharineum.de"), + ([2019, 2020], "Dominik George", "dominik.george@teckids.org"), + ([2019, 2020], "mirabilos", "thorsten.glaser@teckids.org"), + ([2019, 2020], "Tom Teichler", "tom.teichler@teckids.org"), + ] + } +} + +merge_app_settings("LICENCE_INFORMATION", LICENCE_INFORMATION, False) diff --git a/aleksis/core/templates/core/about.html b/aleksis/core/templates/core/about.html new file mode 100644 index 0000000000000000000000000000000000000000..3c3ad5454d84b3817ad5e8ce99ee25982d2d8c27 --- /dev/null +++ b/aleksis/core/templates/core/about.html @@ -0,0 +1,79 @@ +{# -*- engine:django -*- #} +{% extends "core/base.html" %} +{% load i18n %} + + +{% block browser_title %}{% blocktrans %}About AlekSIS{% endblocktrans %}{% endblock %} +{% block page_title %}{% blocktrans %}AlekSIS – The Free School Information System{% endblocktrans %}{% endblock %} + +{% block content %} + + <div class="card"> + <div class="card-content"> + <span class="card-title">{% blocktrans %}About AlekSIS{% endblocktrans %}</span> + <p> + {% blocktrans %} + AlekSIS is a web-based school information system (SIS) which can be used to manage and/or publish + organisational subjects of educational institutions. + {% endblocktrans %} + </p> + </div> + <div class="card-action"> + <a class="" href="https://aleksis.org/">{% trans "Website of AlekSIS" %}</a> + </div> + </div> + + <div class="card"> + <div class="card-content"> + <span class="card-title">{% trans "Licence information" %}</span> + <p> + {% blocktrans %} + The core and the official apps of AlekSIS are licenced under the EUPL, version 1.2 or later. For licence + information from third-party apps, if installed, see directly at the respective components below. + {% endblocktrans %} + </p> + </div> + <div class="card-action"> + <a href="https://eupl.eu">{% trans "Full licence text" %}</a> + <a href="https://joinup.ec.europa.eu/collection/eupl/guidelines-users-and-developers">{% trans "More information about the EUPL" %}</a> + </div> + </div> + + {% for short_name, app in licence_information.items %} + <div class="card"> + <div class="card-content"> + <span class="card-title">{{ app.name }}</span> + + {% if app.copyright_holders %} + <p> + {% for holder in app.copyright_holders %} + Copyright © {{ holder.0|join:", " }} + + {% if holder.2 %} + <a href="mailto:{{ holder.2 }}">{{ holder.1 }}</a> + {% else %} + {{ holder.1 }} + {% endif %} + + <br/> + {% endfor %} + </p> + <br/> + {% endif %} + + {% if app.licence %} + <p> + {% blocktrans with licence=app.licence %} + This part of AlekSIS is licenced under the {{ licence }}. + {% endblocktrans %} + </p> + {% endif %} + </div> + {% if app.repository %} + <div class="card-action"> + <a href="{{ app.repository }}">{% trans "Show source code" %}</a> + </div> + {% endif %} + </div> + {% endfor %} +{% endblock %} diff --git a/aleksis/core/templates/core/base.html b/aleksis/core/templates/core/base.html index cfe2f1ce00259825d6cc240709ca60b5b1f487a8..fb2408cfd940141982dd3e53a687b2f2c1908992 100644 --- a/aleksis/core/templates/core/base.html +++ b/aleksis/core/templates/core/base.html @@ -132,8 +132,8 @@ <div class="footer-copyright"> <div class="container"> <div class="left"> - <a class="blue-text text-lighten-4" href="https://aleksis.edugit.org/"> - AlekSIS — The Free School Information System + <a class="blue-text text-lighten-4" href="{% url "about_aleksis" %}"> + {% trans "About AlekSIS — The Free School Information System" %} </a> © The AlekSIS Team @ <a class="blue-text text-lighten-4" href="https://www.teckids.org"> diff --git a/aleksis/core/urls.py b/aleksis/core/urls.py index 6f1d4275e0fd15f2b1cd315353beb56d219342fd..e4fbe082e95c6722ea85f50082ee52d61297f4ba 100644 --- a/aleksis/core/urls.py +++ b/aleksis/core/urls.py @@ -16,6 +16,7 @@ from . import views urlpatterns = [ path("", include("pwa.urls"), name="pwa"), path("offline/", views.offline, name="offline"), + path("about/", views.about, name="about_aleksis"), path("admin/", admin.site.urls), path("data_management/", views.data_management, name="data_management"), path("status/", views.system_status, name="system_status"), diff --git a/aleksis/core/views.py b/aleksis/core/views.py index c610ec8abf640246355fd04e56130e15f103f483..3800cfa086240d3513ae4fed0e0ec3e07766afce 100644 --- a/aleksis/core/views.py +++ b/aleksis/core/views.py @@ -5,6 +5,7 @@ from django.core.exceptions import PermissionDenied from django.http import Http404, HttpRequest, HttpResponse from django.shortcuts import get_object_or_404, redirect, render from django.utils.translation import ugettext_lazy as _ +from django.conf import settings from django_tables2 import RequestConfig @@ -42,6 +43,13 @@ def offline(request): return render(request, "core/offline.html") +def about(request): + context = {} + + context["licence_information"] = settings.LICENCE_INFORMATION + + return render(request, "core/about.html", context) + @login_required def persons(request: HttpRequest) -> HttpResponse: context = {}