Skip to content
Snippets Groups Projects
Verified Commit 4999abf1 authored by Jonathan Weth's avatar Jonathan Weth :keyboard:
Browse files

Move crawling of app licence information to core_helpers

parent 48ec91e6
No related branches found
No related tags found
1 merge request!146Resolve "Add licence information page"
Pipeline #806 passed with warnings
import os
import pkgutil
from importlib import import_module
from typing import Any, Callable, Sequence, Union
from typing import Any, Callable, Sequence, Union, List
from uuid import uuid4
from django.conf import settings
......@@ -148,3 +148,23 @@ def school_information_processor(request: HttpRequest) -> dict:
return {
"SCHOOL": School.get_default,
}
def get_app_licence_information() -> List[dict]:
""" Get a list of the attribute LICENCE_INFORMATION from every app and the core """
licence_information = []
packages = list(get_app_packages())
packages.insert(0, "aleksis.core")
for app in packages:
app_mod = import_module(app)
try:
app_licence_information = app_mod.LICENCE_INFORMATION
app_licence_information["copyright_holders"].sort(key=lambda x: x[1].split(" ")[-1])
licence_information.append(app_licence_information)
except AttributeError:
pass
return licence_information
......@@ -20,7 +20,7 @@ from .forms import (
from .models import Activity, Group, Notification, Person, School, DashboardWidget
from .tables import GroupsTable, PersonsTable
from .util import messages
from .util.core_helpers import get_app_packages
from .util.core_helpers import get_app_licence_information
@person_required
......@@ -47,21 +47,7 @@ def offline(request):
def about(request):
context = {}
licence_information = []
packages = list(get_app_packages())
packages.insert(0, "aleksis.core")
for app in packages:
app_mod = import_module(app)
try:
app_licence_information = app_mod.LICENCE_INFORMATION
app_licence_information["copyright_holders"].sort(key=lambda x: x[1].split(" ")[-1])
licence_information.append(app_licence_information)
except AttributeError:
pass
context["licence_information"] = licence_information
context["licence_information"] = get_app_licence_information()
return render(request, "core/about.html", context)
......
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