Not every notification is clickable, so click_url is optional end to end (null/blank on the model, required=False on the serializer). When set, it's merged into Gotify's own client::notification.click.url extras convention without disturbing any other extras a producer already sends, so official Gotify clients can open it on tap. Wired through both message-creation paths: the single-push REST API and the bulk Excel upload. Also fixes a pre-existing NameError in the bulk path (json.loads(extras) referenced an undefined name instead of extras_str). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
27 lines
642 B
Python
27 lines
642 B
Python
from rest_framework import serializers
|
|
|
|
from .models import PushUser, PushMessage
|
|
|
|
|
|
class PushUserSerializer(serializers.ModelSerializer):
|
|
class Meta:
|
|
model = PushUser
|
|
fields = (
|
|
"user",
|
|
"client_token",
|
|
"application_token"
|
|
)
|
|
|
|
class PushMessageSerializer(serializers.ModelSerializer):
|
|
class Meta:
|
|
model = PushMessage
|
|
fields = (
|
|
"push_user",
|
|
"application",
|
|
"title",
|
|
"message",
|
|
"priority",
|
|
"extras",
|
|
"click_url"
|
|
)
|
|
read_only_fields = ("push_user","application")
|