Exemple #1
0
def build_discussion(core, index):
    """Temporary build of output Discussion return parameter."""
    discuss = DiscussionParam()
    discuss.user_id = core.user_id
    discuss.discussion_id = core.discussion_id
    discuss.date_insert = core.date_insert
    discuss.date_update = index.last_message.date_insert
    # TODO : excerpt from plain or html body
    maxsize = 100
    discuss.excerpt = unicode_truncate(
        index.last_message.body_plain,
        maxsize) if index.last_message.body_plain else u''
    discuss.total_count = index.total_count

    # TODO
    # discussion.privacy_index = index_message.privacy_index
    # XXX Only last message recipient at this time

    for part in index.last_message.participants:
        participant = Participant()
        participant.address = part['address']
        try:
            participant.label = part['label']
        except:
            participant.label = part['address']
        participant.type = part['type']
        if 'contact_id' in part:
            participant.contact_id = part['contact_id']
        participant.protocol = part['protocol']
        discuss.participants.append(participant)

    # XXX Missing values (at least other in parameter to fill)
    discuss.unread_count = index.unread_count
    discuss.attachment_count = index.attachment_count
    return discuss.serialize()
Exemple #2
0
 def create_from_message(cls, user, message):
     # TODO excerpt from plain or html body
     maxsize = 200
     excerpt = unicode_truncate(message.body_plain,
                                maxsize) if message.body_plain else u''
     new_id = uuid.uuid4()
     kwargs = {u'discussion_id': new_id,
               u'date_insert': datetime.datetime.now(tz=pytz.utc),
               # 'privacy_index': message.privacy_index,
               # 'importance_level': message.importance_level,
               u'excerpt': excerpt,
               }
     discussion = cls.create(user, **kwargs)
     log.debug('Created discussion {}'.format(discussion.discussion_id))
     return discussion
Exemple #3
0
 def create_from_message(cls, user, message):
     # TODO excerpt from plain or html body
     maxsize = 200
     excerpt = unicode_truncate(message.body_plain,
                                maxsize) if message.body_plain else u''
     new_id = uuid.uuid4()
     kwargs = {u'discussion_id': new_id,
               u'date_insert': datetime.datetime.now(tz=pytz.utc),
               # 'privacy_index': message.privacy_index,
               # 'importance_level': message.importance_level,
               u'excerpt': excerpt,
               }
     discussion = cls.create(user, **kwargs)
     log.debug('Created discussion {}'.format(discussion.discussion_id))
     return discussion
Exemple #4
0
def build_discussion(core, index):
    """Temporary build of output Discussion return parameter."""
    discuss = DiscussionParam()
    discuss.user_id = core.user_id
    discuss.discussion_id = core.discussion_id
    discuss.date_insert = core.date_insert
    discuss.date_update = index.last_message.date_sort
    # TODO : excerpt from plain or html body
    maxsize = 100
    discuss.last_message_id = index.last_message.message_id 
    discuss.last_message_subject = index.last_message.subject
    discuss.excerpt = unicode_truncate(index.last_message.body_plain,
                                       maxsize) if index.last_message.body_plain else u''
    discuss.total_count = index.total_count
    discuss.subject = index.last_message.subject
    discuss.protocol = index.last_message.protocol

    # TODO
    # discussion.privacy_index = index_message.privacy_index
    # XXX Only last message recipient at this time

    for part in index.last_message.participants:
        participant = Participant()
        participant.address = part['address']
        try:
            participant.label = part['label']
        except:
            participant.label = part['address']
        participant.type = part['type']
        if 'contact_ids' in part:
            participant.contact_ids = part['contact_ids']
        participant.protocol = part['protocol']
        discuss.participants.append(participant)

    # XXX Missing values (at least other in parameter to fill)
    discuss.unread_count = index.unread_count
    discuss.attachment_count = index.attachment_count
    return discuss.serialize()