unread attribute for messages and live api topic.

- added an unread attribute to the message class and populate it
  during sync.
- fixed new topics in the live api.
This commit is contained in:
Adi Sieker
2011-04-12 20:59:38 +02:00
parent fe7c5af03c
commit 3cc3b9e0ff
3 changed files with 22 additions and 5 deletions
+15 -3
View File
@@ -134,6 +134,12 @@ class Topics(SyncedList):
def list(self):
return self.data
def insert(self, index, object):
return self.data.insert(index, object)
def append(self, object):
return self.data.append(object)
def get(self, key):
r = get('topics', key)
topic = self._create_topic_from_api(deserialize(r.content)['topic'])
@@ -177,13 +183,19 @@ class Messages(SyncedList):
self.data = []
r = get('topics', self.topic.id, 'messages')
for _message in deserialize(r.content)['messages']:
messages = deserialize(r.content)['messages']
idx = 0
msg_count = len(messages)
unread_count = self.topic.unread
for message_data in messages:
idx = idx + 1
message = models.Message()
message.import_from_api(_message)
message.import_from_api(message_data)
message.topic = self.topic
message.unread = idx > msg_count - unread_count
self.data.append(message)
def create(self, message):
params = {'topic_id': self.topic.id, 'message': message}
r = post(params ,'topics', self.topic.id, 'messages', 'create')
+6 -2
View File
@@ -62,14 +62,18 @@ class Convore(object):
try:
for data in deserialize(r.content)['messages']:
class_ = LIVE_TYPES[data['kind']]
try:
class_ = LIVE_TYPES[data['kind']]
except KeyError:
continue
message = class_()
message.import_from_api(data)
if data['kind'] == 'read':
group = self.groups.get(data['group_id'])
message.topic = group.topics.get(data['topic_id'])
elif data['kind'] == 'topic':
message.group = self.groups.get(data['group_id'])
message.group = self.groups.get(data['group'])
elif data['kind'] == 'message':
group = self.groups.get(data['group'])
message.topic = group.topics.get(data['topic']['id'])
+1
View File
@@ -129,6 +129,7 @@ class Message(object):
self.message = None
self.date_created = None
self.user = None
self.unread = False
def import_from_api(self, data):