Notify members when a new event is planned
New events.tasks.notify_new_event, scheduled from management.views.EventCreateView.form_valid -- the deliberate "a staff member planned one new event" action, not every Event row that happens to get created. A recurring series' rolling-horizon extension (extend_event_series) and bulk fixture imports are NOT wired to this on purpose: either would flood everyone with one push per occurrence instead of the single, deliberate action this is meant to catch. Notifies whoever is still NO_RESPONSE right after creation -- exactly "everyone who needs to respond", using the existing notify_members() -> Notification -> mobile.signals push chain already in place, so this is in-app (visible in the M7 inbox, mark read/mark-all-read) and a push notification both, with no new plumbing needed there. Generalized mobile.views.NotificationsView's News-only "tap to open the source" handling (previously isinstance(source, News)) into _notification_source_link, covering Event sources too -- tapping an "new event" notification now marks it read and opens the event's answer screen, the same way a news notification already opened the article. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01ECGMEwrc2k4D8VQuwjstj9
This commit is contained in:
@@ -1,10 +1,11 @@
|
||||
{% load i18n %}
|
||||
{% comment %}
|
||||
One M7 notification row -- included from notifications.html once per day
|
||||
bucket. Expects ``row`` ({notification, news_item}) in scope. The whole
|
||||
row is the tap target (a submit button styled full-width, since a POST
|
||||
form can't wrap another form/link) -- tapping always marks it read, and
|
||||
also navigates to the linked News item when there is one (see
|
||||
bucket. Expects ``row`` ({notification, source_label}) in scope. The
|
||||
whole row is the tap target (a submit button styled full-width, since a
|
||||
POST form can't wrap another form/link) -- tapping always marks it read,
|
||||
and also navigates to the linked News/Event when its source resolves to
|
||||
one (see mobile.views._notification_source_link and
|
||||
NotificationsView.post). A club-coloured bar marks it unread, same
|
||||
treatment as management/templates/management/home.html's own
|
||||
notifications card.
|
||||
@@ -18,7 +19,7 @@
|
||||
<span class="min-w-0 flex-1">
|
||||
<span class="block text-sm font-semibold text-ink">{{ row.notification.title }}</span>
|
||||
<span class="block truncate text-xs text-muted">{{ row.notification.body|truncatechars:120 }}</span>
|
||||
{% if row.news_item %}<span class="block font-display text-[11px] font-extrabold text-club uppercase tracking-wide">{% trans "Club news" %}</span>{% endif %}
|
||||
{% if row.source_label %}<span class="block font-display text-[11px] font-extrabold text-club uppercase tracking-wide">{{ row.source_label }}</span>{% endif %}
|
||||
</span>
|
||||
<span class="shrink-0 font-mono text-[11px] text-dim">{% blocktrans with time=row.notification.created|timesince %}{{ time }} ago{% endblocktrans %}</span>
|
||||
</button>
|
||||
|
||||
Reference in New Issue
Block a user