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

Setup dbsettings for more options

- mail out name and address, impress and privacy policy URL
- Move dbsettings to own file to prevent importing in circle
- Add context processor to provide dbsettings in templates
- Add "Katharineum zu Lübeck" in footer menu

Close #128
parent ac48ca9e
No related branches found
No related tags found
1 merge request!93Resolve "Allow defining imprint and privacy policy URLs as dbsetting"
Pipeline #490 failed
from django.utils.translation import ugettext_lazy as _
import dbsettings
class ThemeSettings(dbsettings.Group):
colour_primary = dbsettings.StringValue(_("Primary colour"), default="#007bff")
colour_secondary = dbsettings.StringValue(_("Secondary colour"), default="#007bff")
class MailSettings(dbsettings.Group):
mail_out_name = dbsettings.StringValue(_("Mail out name"), default="AlekSIS", required=False)
mail_out = dbsettings.StringValue(_("Mail out address"), default="no-reply@aleksis.org")
class FooterSettings(dbsettings.Group):
privacy_url = dbsettings.StringValue(_("Link to privacy policy"), default="")
impress_url = dbsettings.StringValue(_("Link to impress"), default="")
theme_settings = ThemeSettings(_("Global theme settings"))
mail_settings = MailSettings(_("Mail settings"))
footer_settings = FooterSettings(_("Footer links"))
db_settings = {
"theme": theme_settings,
"mail": mail_settings,
"footer": footer_settings
}
from django.core.mail import send_mail
from django.template.loader import render_to_string
SENDER_EMAIL = 'SchoolApps <infoplan@katharineum.de>'
from aleksis.core.db_settings import mail_settings
mail_out = "{} <{}>".format(mail_settings.mail_out_name,
mail_settings.mail_out) if mail_settings.mail_out_name != "" else mail_settings.mail_out
def send_mail_with_template(title, receivers, plain_template, html_template, context={}, sender_email=SENDER_EMAIL):
def send_mail_with_template(title, receivers, plain_template, html_template, context={}, mail_out=mail_out):
msg_plain = render_to_string(plain_template, context)
msg_html = render_to_string(html_template, context)
......@@ -12,7 +15,7 @@ def send_mail_with_template(title, receivers, plain_template, html_template, con
send_mail(
title,
msg_plain,
sender_email,
mail_out,
receivers,
html_message=msg_html,
)
......
......@@ -129,8 +129,9 @@ MENUS = {
},
],
"FOOTER_MENU_CORE": [
{"name": _("Website"), "url": "https://aleksis.edugit.org/"},
{"name": _("Website"), "url": "https://aleksis.edugit.io/"},
{"name": "Teckids e.V.", "url": "https://www.teckids.org/"},
{"name": "Katharineum zu Lübeck", "url": "https://katharineum-zu-luebeck.de"}
],
"DATA_MANAGEMENT_MENU": [],
"SCHOOL_MANAGEMENT_MENU": [
......
......@@ -5,8 +5,6 @@ from django.contrib.auth.models import User
from django.db import models
from django.utils import timezone
from django.utils.translation import ugettext_lazy as _
import dbsettings
from image_cropping import ImageCropField, ImageRatioField
from phonenumber_field.modelfields import PhoneNumberField
......@@ -14,14 +12,6 @@ from .mailer import send_mail_with_template
from .mixins import ExtensibleModel
class ThemeSettings(dbsettings.Group):
colour_primary = dbsettings.StringValue(default="#007bff")
colour_secondary = dbsettings.StringValue(default="#007bff")
theme_settings = ThemeSettings("Global theme settings")
class School(models.Model):
"""A school that will have many other objects linked to it.
AlekSIS has multi-tenant support by linking all objects to a school,
......
from aleksis.core.db_settings import db_settings
def db_settings_processor(request):
return {"DB_SETTINGS": db_settings}
......@@ -119,6 +119,7 @@ TEMPLATES = [
"django.contrib.messages.context_processors.messages",
"maintenance_mode.context_processors.maintenance_mode",
"settings_context_processor.context_processors.settings",
"aleksis.core.processors.db_settings_processor"
],
},
},
......
......@@ -101,28 +101,35 @@
</div>
<div class="footer-copyright">
<div class="container">
<span class="left">
<a class="blue-text text-lighten-4" href="https://aleksis.edugit.org/">
AlekSIS — The Free School Information System
</a>
© The AlekSIS Team @
<a class="blue-text text-lighten-4" href="https://www.teckids.org">
Teckids e.V.
</a>
and
<a class="blue-text text-lighten-4" href="https://katharineum-zu-luebeck.de">
Katharineum zu Lübeck
</a>
</span>
<span class="right">
<span id="doit"></span>
<a class="blue-text text-lighten-4" href="https://katharineum-zu-luebeck.de/impressum/">Impressum</a>
·
<a class="blue-text text-lighten-4" href="https://katharineum-zu-luebeck.de/datenschutzerklaerung/">
Datenschutzerklärung
</a>
</span>
<div class="left">
<a class="blue-text text-lighten-4" href="https://aleksis.edugit.org/">
AlekSIS — The Free School Information System
</a>
© The AlekSIS Team @
<a class="blue-text text-lighten-4" href="https://www.teckids.org">
Teckids e.V.
</a>
and
<a class="blue-text text-lighten-4" href="https://katharineum-zu-luebeck.de">
Katharineum zu Lübeck
</a>
</div>
<div class="right">
<span id="doit"></span>
{% if DB_SETTINGS.footer.impress_url %}
<a class="blue-text text-lighten-4" href="{{ DB_SETTINGS.footer.impress_url }}">
{% trans "Impress" %}
</a>
{% endif %}
{% if DB_SETTINGS.footer.privacy_url and DB_SETTINGS.footer.impress_url %}
·
{% endif %}
{% if DB_SETTINGS.footer.privacy_url %}
<a class="blue-text text-lighten-4" href="{{ DB_SETTINGS.footer.privacy_url }}">
{% trans "Privacy Policy" %}
</a>
{% endif %}
</div>
</div>
</div>
</footer>
......
from colour import web2hex
from sass import SassColor
from aleksis.core.models import theme_settings
from aleksis.core.db_settings import theme_settings
def get_colour(html_colour: str) -> SassColor:
......
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