151 lines
6.5 KiB
Python
151 lines
6.5 KiB
Python
from datetime import timedelta
|
|
|
|
from django.utils import timezone
|
|
|
|
from vbv_lernwelt.core.admin import User
|
|
from vbv_lernwelt.notify.models import NotificationType
|
|
from vbv_lernwelt.notify.tests.factories import NotificationFactory
|
|
|
|
|
|
def create_default_notifications() -> int:
|
|
"""
|
|
Creates default notifications for all users.
|
|
@return: The number of created notifications per user.
|
|
"""
|
|
avatar_urls = [
|
|
"/static/avatars/avatar_alexandra.png",
|
|
"/static/avatars/avatar_bianca.png",
|
|
"/static/avatars/avatar_chantal.png",
|
|
]
|
|
timestamps = [timezone.now() - timedelta(hours=n) for n in range(13)]
|
|
notifications_per_user: int
|
|
for user in User.objects.all():
|
|
notifications_per_user = len(
|
|
(
|
|
NotificationFactory(
|
|
recipient=user,
|
|
actor=user,
|
|
verb="Alexandra hat einen neuen Beitrag erfasst",
|
|
actor_avatar_url=avatar_urls[0],
|
|
target_url="/",
|
|
notification_type=NotificationType.USER_INTERACTION,
|
|
course="Versicherungsvermittler/-in",
|
|
timestamp=timestamps[0],
|
|
),
|
|
NotificationFactory(
|
|
recipient=user,
|
|
actor=user,
|
|
verb="Alexandra hat einen neuen Beitrag erfasst",
|
|
actor_avatar_url=avatar_urls[0],
|
|
target_url="/",
|
|
notification_type=NotificationType.USER_INTERACTION,
|
|
course="Versicherungsvermittler/-in",
|
|
timestamp=timestamps[1],
|
|
),
|
|
NotificationFactory(
|
|
recipient=user,
|
|
actor=user,
|
|
verb="Alexandra hat einen neuen Beitrag erfasst",
|
|
actor_avatar_url=avatar_urls[0],
|
|
target_url="/",
|
|
notification_type=NotificationType.USER_INTERACTION,
|
|
course="Versicherungsvermittler/-in",
|
|
timestamp=timestamps[2],
|
|
),
|
|
NotificationFactory(
|
|
recipient=user,
|
|
actor=user,
|
|
verb="Alexandra hat einen neuen Beitrag erfasst",
|
|
actor_avatar_url=avatar_urls[0],
|
|
target_url="/",
|
|
notification_type=NotificationType.USER_INTERACTION,
|
|
course="Versicherungsvermittler/-in",
|
|
timestamp=timestamps[3],
|
|
),
|
|
NotificationFactory(
|
|
recipient=user,
|
|
actor=user,
|
|
verb="Bianca hat für den Auftrag Autoversicherung 3 eine Lösung abgegeben",
|
|
actor_avatar_url=avatar_urls[1],
|
|
target_url="/",
|
|
notification_type=NotificationType.USER_INTERACTION,
|
|
course="Versicherungsvermittler/-in",
|
|
timestamp=timestamps[4],
|
|
),
|
|
NotificationFactory(
|
|
recipient=user,
|
|
actor=user,
|
|
verb="Bianca hat für den Auftrag Autoversicherung 1 eine Lösung abgegeben",
|
|
actor_avatar_url=avatar_urls[1],
|
|
target_url="/",
|
|
notification_type=NotificationType.USER_INTERACTION,
|
|
course="Versicherungsvermittler/-in",
|
|
timestamp=timestamps[5],
|
|
),
|
|
NotificationFactory(
|
|
recipient=user,
|
|
actor=user,
|
|
verb="Bianca hat für den Auftrag Autoversicherung 2 eine Lösung abgegeben",
|
|
actor_avatar_url=avatar_urls[1],
|
|
target_url="/",
|
|
notification_type=NotificationType.USER_INTERACTION,
|
|
course="Versicherungsvermittler/-in",
|
|
timestamp=timestamps[6],
|
|
),
|
|
NotificationFactory(
|
|
recipient=user,
|
|
actor=user,
|
|
verb="Bianca hat für den Auftrag Autoversicherung 4 eine Lösung abgegeben",
|
|
actor_avatar_url=avatar_urls[1],
|
|
target_url="/",
|
|
notification_type=NotificationType.USER_INTERACTION,
|
|
course="Versicherungsvermittler/-in",
|
|
timestamp=timestamps[7],
|
|
),
|
|
NotificationFactory(
|
|
recipient=user,
|
|
actor=user,
|
|
verb="Chantal hat eine Bewertung für den Transferauftrag 3 eingegeben",
|
|
target_url="/",
|
|
actor_avatar_url=avatar_urls[2],
|
|
notification_type=NotificationType.USER_INTERACTION,
|
|
course="Versicherungsvermittler/-in",
|
|
timestamp=timestamps[8],
|
|
),
|
|
NotificationFactory(
|
|
recipient=user,
|
|
actor=user,
|
|
verb="Chantal hat eine Bewertung für den Transferauftrag 4 eingegeben",
|
|
target_url="/",
|
|
actor_avatar_url=avatar_urls[2],
|
|
notification_type=NotificationType.USER_INTERACTION,
|
|
course="Versicherungsvermittler/-in",
|
|
timestamp=timestamps[9],
|
|
),
|
|
NotificationFactory(
|
|
recipient=user,
|
|
actor=user,
|
|
verb="Super, du kommst in deinem Lernpfad gut voran. Schaue dir jetzt die verfügbaren Prüfungstermine an.",
|
|
target_url="/",
|
|
notification_type=NotificationType.PROGRESS,
|
|
course="Versicherungsvermittler/-in",
|
|
timestamp=timestamps[10],
|
|
),
|
|
NotificationFactory(
|
|
recipient=user,
|
|
actor=user,
|
|
verb="Wartungsarbeiten: 20.12.2022 08:00 - 12:00",
|
|
notification_type=NotificationType.INFORMATION,
|
|
timestamp=timestamps[11],
|
|
),
|
|
NotificationFactory(
|
|
recipient=user,
|
|
actor=user,
|
|
verb="Wartungsarbeiten: 31.01.2023 08:00 - 12:00",
|
|
notification_type=NotificationType.INFORMATION,
|
|
timestamp=timestamps[12],
|
|
),
|
|
)
|
|
)
|
|
return notifications_per_user
|