Skip to content
Snippets Groups Projects
Commit 1b3e5cda authored by magicfelix's avatar magicfelix
Browse files

Implement LiveDocument for announcements

parent 4b307b23
No related branches found
No related tags found
No related merge requests found
# Generated by Django 4.2.9 on 2024-01-20 14:52
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
initial = True
dependencies = [
("resint", "0010_drop_site"),
]
operations = [
migrations.CreateModel(
name="Announcements",
fields=[
(
"livedocument_ptr",
models.OneToOneField(
auto_created=True,
on_delete=django.db.models.deletion.CASCADE,
parent_link=True,
primary_key=True,
serialize=False,
to="resint.livedocument",
),
),
],
options={
"abstract": False,
},
bases=("resint.livedocument",),
),
]
from typing import Any, Dict
from django.db.models.signals import post_save
from django.dispatch import receiver
from aleksis.apps.resint.models import LiveDocument
from aleksis.core.models import Announcement
class Announcements(LiveDocument):
"""Model for configuring automatically updated announcements PDF."""
template = "infinita/announcements.html"
def get_context_data(self) -> Dict[str, Any]:
"""Get context data for generating the substitutions PDF."""
from aleksis.core.models import Announcement # noqa
context = {"announcements": Announcement.objects.on_date()}
return context
@receiver(post_save, sender=Announcement)
def announcements_signal_receiver(sender, instance, **kwargs):
if Announcement.objects.filter(pk=instance.pk).on_date():
for document in Announcements.objects.all():
document.update()
{# -*- engine:django -*- #}
{% extends 'core/base_print.html' %}
{% load i18n static %}
{% block extra_head %}
<link rel="stylesheet" href="{% static 'css/chronos/timetable.css' %}">
{% endblock %}
{% block browser_title %}{% blocktrans %}Print: Announcements{% endblocktrans %}{% endblock %}
{% block page_title %}{% blocktrans %}Announcements{% endblocktrans %}{% endblock %}
{% block content %}
{% include "core/partials/announcements.html" with announcements=announcements %}
{% endblock %}
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