Commit 02eacb90d24a5bdb0bcd3118e5313b8a529db74c
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): |