diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 86ecc190a6f58f77488b83939bd353b19578c172..d06f45d8567d1fd800d2b9d485c2d2980d00b336 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -24,6 +24,8 @@ Removed ~~~~~~~ * Remove old generated AlekSIS icons +* Imprint is now called "Imprint" and not "Impress". +* Logo files weren't uploaded to public namespace. `2.3.1`_ – 2021-12-17 --------------------- diff --git a/aleksis/core/mixins.py b/aleksis/core/mixins.py index 3232aac4deb912dfb65f28d69831767bf2fd8445..c6cee9a8c6bbefed3439eef156b685f5484e4a13 100644 --- a/aleksis/core/mixins.py +++ b/aleksis/core/mixins.py @@ -1,5 +1,6 @@ # flake8: noqa: DJ12 +import os from datetime import datetime from typing import Any, Callable, List, Optional, Union @@ -21,6 +22,8 @@ from django.views.generic import CreateView, UpdateView from django.views.generic.edit import DeleteView, ModelFormMixin import reversion +from dynamic_preferences.settings import preferences_settings +from dynamic_preferences.types import FilePreference from guardian.admin import GuardedModelAdmin from guardian.core import ObjectPermissionChecker from jsonstore.fields import IntegerField, JSONFieldMixin @@ -529,3 +532,14 @@ class SchoolTermRelatedExtensibleForm(ExtensibleForm): kwargs["initial"] = {"school_term": SchoolTerm.current} super().__init__(*args, **kwargs) + + +class PublicFilePreferenceMixin(FilePreference): + """Uploads a file to the public namespace.""" + + upload_path = "public" + + def get_upload_path(self): + return os.path.join( + self.upload_path, preferences_settings.FILE_PREFERENCE_UPLOAD_DIR, self.identifier() + ) diff --git a/aleksis/core/preferences.py b/aleksis/core/preferences.py index d0de22fe03cc044fa5722982dfcc7faf86a4503c..0110d9aa84d3848912bf411a00063d86609f6c1d 100644 --- a/aleksis/core/preferences.py +++ b/aleksis/core/preferences.py @@ -16,6 +16,7 @@ from dynamic_preferences.types import ( ) from oauth2_provider.models import AbstractApplication +from .mixins import PublicFilePreferenceMixin from .models import Group, Person from .registries import person_preferences_registry, site_preferences_registry from .util.notifications import get_notification_choices_lazy @@ -78,7 +79,7 @@ class ColourSecondary(StringPreference): @site_preferences_registry.register -class Logo(FilePreference): +class Logo(PublicFilePreferenceMixin, FilePreference): """Logo of your AlekSIS instance.""" section = theme @@ -88,7 +89,7 @@ class Logo(FilePreference): @site_preferences_registry.register -class Favicon(FilePreference): +class Favicon(PublicFilePreferenceMixin, FilePreference): """Favicon of your AlekSIS instance.""" section = theme @@ -98,7 +99,7 @@ class Favicon(FilePreference): @site_preferences_registry.register -class PWAIcon(FilePreference): +class PWAIcon(PublicFilePreferenceMixin, FilePreference): """PWA-Icon of your AlekSIS instance.""" section = theme diff --git a/aleksis/core/templates/core/base.html b/aleksis/core/templates/core/base.html index 6c47c2a3bd0da7ba02e4c8aa96e7a5787cd933c0..06aebc4533369e9b7af39051dcb80713193f50d5 100644 --- a/aleksis/core/templates/core/base.html +++ b/aleksis/core/templates/core/base.html @@ -180,7 +180,7 @@ <span id="doit"></span> {% if request.site.preferences.footer__imprint_url %} <a class="blue-text text-lighten-4" href="{{ request.site.preferences.footer__imprint_url }}"> - {% trans "Impress" %} + {% trans "Imprint" %} </a> {% endif %} {% if request.site.preferences.footer__privacy_url and request.site.preferences.footer__imprint_url %}