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

Solve issue #18 (absolute urls in notifications) trough a workaround

parent 03c1b9c1
No related branches found
No related tags found
1 merge request!86Merge school-apps
......@@ -110,22 +110,25 @@ def check2(request):
# Notify user
register_notification(title="Ihr Antrag auf Unterrichtsbefreiung wurde genehmigt",
description="Ihr Antrag auf Unterrichtsbefreiung vom {} bis {} wurde von der Schulleitung genehmigt.".format(
description="Ihr Antrag auf Unterrichtsbefreiung vom {} bis {} wurde von der "
"Schulleitung genehmigt.".format(
formats.date_format(aub.from_dt),
formats.date_format(aub.to_dt)),
app=AubConfig.verbose_name, user=aub.created_by,
link=reverse('aub_details', args=[aub.id]))
link=request.build_absolute_uri(reverse('aub_details', args=[aub.id])))
elif 'deny' in request.POST:
# Update status
Aub.objects.filter(id=aub_id).update(status=NOT_ALLOWED_STATUS)
# Notify user
register_notification(title="Ihr Antrag auf Unterrichtsbefreiung wurde abgelehnt",
description="Ihr Antrag auf Unterrichtsbefreiung vom {} bis {} wurde von der Schulleitung abgelehnt. Für weitere Informationen kontaktieren Sie bitte die Schulleitung.".format(
description="Ihr Antrag auf Unterrichtsbefreiung vom {} bis {} wurde von der "
"Schulleitung abgelehnt. Für weitere Informationen kontaktieren Sie "
"bitte die Schulleitung.".format(
formats.date_format(aub.from_dt),
formats.date_format(aub.to_dt)),
app=AubConfig.verbose_name, user=aub.created_by,
link=reverse('aub_details', args=[aub.id]))
link=request.build_absolute_uri(reverse('aub_details', args=[aub.id])))
aubs = Aub.objects.filter(status=SEMI_ALLOWED_STATUS)
context = {
......
......@@ -4,7 +4,10 @@ und seine letzten Aktivitäten anzuzeigen.
Edit: Außerdem zeigt das Dashboard aktuelle Nachrichten für den Benutzer an.
## Aktivität registrieren
## Aktivitäten
Als Aktivität gilt alles, was der Nutzer selbst macht, d.h., bewusst.
### Eine Aktivität registrieren
1. Importieren
from .apps import <Meine App>Config
......@@ -15,4 +18,27 @@ Edit: Außerdem zeigt das Dashboard aktuelle Nachrichten für den Benutzer an.
act = Activity(title="<Titel der Aktion>", description="<Beschreibung der Aktion>", app=<Meine App>Config.verbose_name, user=<Benutzer Objekt>)
act.save()
## Nachricht „verschicken“
\ No newline at end of file
## Benachrichtigungen
Als Benachrichtigung gilt eine Aktion, die den Nutzer betrifft.
### Eine Benachrichtigung verschicken
1. Importieren
from .apps import <Meine App>Config
from dashboard.models import Notification
2. Verschicken
register_notification(title="<Titel der Nachricht>",
description="<Weitere Informationen>",
app=<Meine App>Config.verbose_name, user=<Benutzer Objekt>,
link=request.build_absolute_uri(<Link für weitere Informationen>))
**Hinweis:** Der angegebene Link muss eine absolute URL sein.
Dies wird durch übergabe eines dynamischen Linkes (z. B. /aub/1) an die Methode `request.build_absolute_uri()` erreicht.
Um einen dynamischen Link durch den Namen einer Django-URL zu "errechnen", dient die Methode `reverse()`.
Literatur:
- [1] https://docs.djangoproject.com/en/2.1/ref/request-response/#django.http.HttpRequest.build_absolute_uri
- [2] https://docs.djangoproject.com/en/2.1/ref/urlresolvers/#reverse
\ No newline at end of file
......@@ -41,7 +41,9 @@ class Notification(models.Model):
def register_notification(user, title, description, app="SchoolApps", link=""):
print(link)
n = Notification(user=user, title=title, description=description, app=app, link=link)
n.save()
context = {
'notification': n
......
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