Commit 02eacb90d24a5bdb0bcd3118e5313b8a529db74c

Authored by Laura Hawkins
1 parent 7a17fac38e
Exists in master

trying to get deck to refresh after an add in one browser on another browser

Showing 1 changed file with 11 additions and 1 deletions Inline Diff

flashcards/notifications.py View file @ 02eacb9
import serializers 1 1 import serializers
from rest_framework.renderers import JSONRenderer 2 2 from rest_framework.renderers import JSONRenderer
from ws4redis.publisher import RedisPublisher 3 3 from ws4redis.publisher import RedisPublisher
from ws4redis.redis_store import RedisMessage 4 4 from ws4redis.redis_store import RedisMessage
from ws4redis.redis_store import SELF 5 5 from ws4redis.redis_store import SELF
6 6
7 7
def notify_score_change(flashcard): 8 8 def notify_score_change(flashcard):
redis_publisher = RedisPublisher(facility='feed/%d' % flashcard.section_id, broadcast=True) 9 9 redis_publisher = RedisPublisher(facility='feed/%d' % flashcard.section_id, broadcast=True)
ws_message = JSONRenderer().render( 10 10 ws_message = JSONRenderer().render(
{'event_type': 'score_change', 'new_score': flashcard.score, 'flashcard_id': flashcard.pk}) 11 11 {'event_type': 'score_change', 'new_score': flashcard.score, 'flashcard_id': flashcard.pk})
message = RedisMessage(ws_message) 12 12 message = RedisMessage(ws_message)
redis_publisher.publish_message(message) 13 13 redis_publisher.publish_message(message)
14 14
15 15
def notify_new_card(flashcard): 16 16 def notify_new_card(flashcard):
redis_publisher = RedisPublisher(facility='feed/%d' % flashcard.section_id, broadcast=True) 17 17 redis_publisher = RedisPublisher(facility='feed/%d' % flashcard.section_id, broadcast=True)
ws_message = JSONRenderer().render( 18 18 ws_message = JSONRenderer().render(
{'event_type': 'new_card', 'flashcard': serializers.FlashcardSerializer(flashcard).data}) 19 19 {'event_type': 'new_card', 'flashcard': serializers.FlashcardSerializer(flashcard).data})
message = RedisMessage(ws_message) 20 20 message = RedisMessage(ws_message)
redis_publisher.publish_message(message) 21 21 redis_publisher.publish_message(message)
22 22
def notify_pull(flashcard): 23 23 def notify_pull(flashcard):
redis_publisher = RedisPublisher(facility='deck/%d' % flashcard.section_id, users=[SELF]) 24 24 redis_publisher = RedisPublisher(facility='deck/%d' % flashcard.section_id, users=[SELF])
ws_message = JSONRenderer().render( 25 25 ws_message = JSONRenderer().render(
{'event_type': 'pull_card', 'flashcard': serializers.FlashcardSerializer(flashcard).data}) 26 26 {'event_type': 'pull_card', 'flashcard': serializers.FlashcardSerializer(flashcard).data})
message = RedisMessage(ws_message) 27 27 message = RedisMessage(ws_message)
redis_publisher.publish_message(message) 28 28 redis_publisher.publish_message(message)
29
30 def notify_new_card(flashcard):