コード例 #1
0
ファイル: topic.py プロジェクト: naitianliu/pigeon
class TopicOperation(object):
    def __init__(self, user_id, event_id):
        self.__user_id = user_id
        self.__event_id = event_id
        self.table = Table('Event')
        self.event_item = self.table.get_item(event_id=event_id)
        self.db_event = EventDBOperation()

    def invite_members_to_topic(self, members):
        current_members = self.event_item['info']['members']
        new_members = current_members + members
        topic_name = self.event_item['info']['topic_name']
        self.event_item['info']['members'] = new_members
        self.event_item.partial_save()
        self.db_event.bulk_create_new_event_per_user(self.__event_id, EVENT_TYPE, members)
        self.db_event.update_event_to_new(self.__event_id)
        return topic_name

    def exit_topic(self):
        members = self.event_item['info']['members']
        if self.__user_id in members:
            members.remove(self.__user_id)
        self.event_item['info']['members'] = members
        self.event_item.partial_save()
        self.db_event.remove_event_per_user(self.__event_id, self.__user_id)
コード例 #2
0
ファイル: reminder.py プロジェクト: naitianliu/pigeon
class ReminderOperation(object):
    def __init__(self, user_id, event_id):
        self.__user_id = user_id
        self.__event_id = event_id
        self.table = Table('Event')
        self.event_item = self.table.get_item(event_id=event_id)
        self.db_event = EventDBOperation()

    def change_receivers(self, receivers):
        current_receivers = self.event_item['info']['receivers']
        self.event_item['info']['receivers'] = receivers
        self.event_item['info']['receiver_status'] = dict.fromkeys(receivers, 0)
        self.event_item.partial_save()
        self.db_event.remove_event_by_user_id_list(self.__event_id, current_receivers)
        self.db_event.bulk_create_new_event_per_user(self.__event_id, EVENT_TYPE, receivers)
        self.db_event.update_event_to_new(self.__event_id)

    def complete_reminder_by_receiver(self, message=None):
        creator_id = self.event_item['info']['creator_id']
        self.event_item['info']['receiver_status'][self.__user_id] = 1
        self.event_item.partial_save()
        self.db_event.save_comment_by_event_id(self.__event_id, self.__user_id, action=1, content=message)
        self.db_event.update_event_to_new(self.__event_id)
        return creator_id

    def revoke_reminder_by_creator(self, message=None):
        creator_id = self.event_item['info']['creator_id']
        receivers = self.event_item['info']['receivers']
        self.event_item['info']['status'] = 5
        self.event_item.partial_save()
        self.db_event.save_comment_by_event_id(self.__event_id, self.__user_id, action=5, content=message)
        user_id_list = receivers + [self.__user_id]
        self.db_event.remove_event_per_user(self.__event_id, user_id_list)
        return creator_id

    def delay_reminder_by_receiver(self, message=None):
        creator_id = self.event_item['info']['creator_id']
        self.event_item['info']['receiver_status'][self.__user_id] = 2
        self.event_item.partial_save()
        self.db_event.save_comment_by_event_id(self.__event_id, self.__user_id, action=2, content=message)
        self.db_event.update_event_to_new(self.__event_id)
        return creator_id

    def reject_reminder_by_receiver(self, message=None):
        creator_id = self.event_item['info']['creator_id']
        self.event_item['info']['receiver_status'][self.__user_id] = 3
        self.event_item.partial_save()
        self.db_event.save_comment_by_event_id(self.__event_id, self.__user_id, action=3, content=message)
        self.db_event.update_event_to_new(self.__event_id)
        self.db_event.remove_event_per_user(self.__event_id, self.__user_id)
        return creator_id

    def resend_reminder_by_creator(self, message=None):
        creator_id = self.event_item['info']['creator_id']
        self.event_item['info']['status'] = 6
        self.event_item.partial_save()
        self.db_event.save_comment_by_event_id(self.__event_id, self.__user_id, action=6, content=message)
        self.db_event.update_event_to_new(self.__event_id)
        return creator_id
コード例 #3
0
ファイル: task.py プロジェクト: naitianliu/pigeon
class TaskOperation(object):
    def __init__(self, user_id, event_id):
        self.__user_id = user_id
        self.__event_id = event_id
        self.table = Table('Event')
        self.event_item = self.table.get_item(event_id=event_id)
        self.db_event = EventDBOperation()

    def invite_members_to_task(self, members):
        current_members = self.event_item['info']['members']
        member_status = self.event_item['info']['member_status']
        temp = member_status.copy()
        temp.update(dict.fromkeys(members, 0))
        new_members = current_members + members
        task_name = self.event_item['info']['task_name']
        self.event_item['info']['members'] = new_members
        self.event_item['info']['member_status'] = temp
        self.event_item.partial_save()
        self.db_event.bulk_create_new_event_per_user(self.__event_id,
                                                     EVENT_TYPE, members)
        return task_name

    def accept_task(self, message=None):
        self.event_item['info']['member_status'][self.__user_id] = 1
        self.event_item.partial_save()
        if message:
            self.db_event.save_comment_by_event_id(self.__event_id, message)
        self.db_event.update_event_to_new(self.__event_id)

    def reject_task(self, message=None):
        self.event_item['info']['member_status'][self.__user_id] = 2
        members = self.event_item['info']['members']
        if self.__user_id in members:
            members.remove(self.__user_id)
        self.event_item['info']['members'] = members
        self.event_item.partial_save()
        self.db_event.remove_event_per_user(self.__event_id, self.__user_id)
        if message:
            self.db_event.save_comment_by_event_id(self.__event_id, message)
        self.db_event.update_event_to_new(self.__event_id)

    def exit_task(self, message=None):
        self.event_item['info']['member_status'][self.__user_id] = 3
        members = self.event_item['info']['members']
        if self.__user_id in members:
            members.remove(self.__user_id)
        self.event_item['info']['members'] = members
        self.event_item.partial_save()
        self.db_event.remove_event_per_user(self.__event_id, self.__user_id)
        if message:
            self.db_event.save_comment_by_event_id(self.__event_id, message)
        self.db_event.update_event_to_new(self.__event_id)
コード例 #4
0
ファイル: task.py プロジェクト: naitianliu/pigeon
class TaskOperation(object):
    def __init__(self, user_id, event_id):
        self.__user_id = user_id
        self.__event_id = event_id
        self.table = Table('Event')
        self.event_item = self.table.get_item(event_id=event_id)
        self.db_event = EventDBOperation()

    def invite_members_to_task(self, members):
        current_members = self.event_item['info']['members']
        member_status = self.event_item['info']['member_status']
        temp = member_status.copy()
        temp.update(dict.fromkeys(members, 0))
        new_members = current_members + members
        task_name = self.event_item['info']['task_name']
        self.event_item['info']['members'] = new_members
        self.event_item['info']['member_status'] = temp
        self.event_item.partial_save()
        self.db_event.bulk_create_new_event_per_user(self.__event_id, EVENT_TYPE, members)
        return task_name

    def accept_task(self, message=None):
        self.event_item['info']['member_status'][self.__user_id] = 1
        self.event_item.partial_save()
        if message:
            self.db_event.save_comment_by_event_id(self.__event_id, message)
        self.db_event.update_event_to_new(self.__event_id)

    def reject_task(self, message=None):
        self.event_item['info']['member_status'][self.__user_id] = 2
        members = self.event_item['info']['members']
        if self.__user_id in members:
            members.remove(self.__user_id)
        self.event_item['info']['members'] = members
        self.event_item.partial_save()
        self.db_event.remove_event_per_user(self.__event_id, self.__user_id)
        if message:
            self.db_event.save_comment_by_event_id(self.__event_id, message)
        self.db_event.update_event_to_new(self.__event_id)

    def exit_task(self, message=None):
        self.event_item['info']['member_status'][self.__user_id] = 3
        members = self.event_item['info']['members']
        if self.__user_id in members:
            members.remove(self.__user_id)
        self.event_item['info']['members'] = members
        self.event_item.partial_save()
        self.db_event.remove_event_per_user(self.__event_id, self.__user_id)
        if message:
            self.db_event.save_comment_by_event_id(self.__event_id, message)
        self.db_event.update_event_to_new(self.__event_id)
コード例 #5
0
ファイル: activity.py プロジェクト: naitianliu/pigeon
class ActivityOperation(object):
    def __init__(self, user_id, event_id):
        self.__user_id = user_id
        self.__event_id = event_id
        self.table = Table('Event')
        self.event_item = self.table.get_item(event_id=event_id)
        self.db_event = EventDBOperation()

    def invite_members_to_activity(self, members):
        current_members = self.event_item['info']['members']
        new_members = current_members + members
        self.event_item['info']['members'] = new_members
        self.event_item.partial_save()
        self.db_event.bulk_create_new_event_per_user(self.__event_id, EVENT_TYPE, members)
        self.db_event.update_event_to_new(self.__event_id)

    def exit_topic(self):
        members = self.event_item['info']['members']
        if self.__user_id in members:
            members.remove(self.__user_id)
        self.event_item['info']['members'] = members
        self.event_item.partial_save()
        self.db_event.remove_event_per_user(self.__event_id, self.__user_id)

    def post_notification(self, notification_content):
        members = self.event_item['info']['members']
        current_time = int(time.time())
        temp_list = self.event_item['info']['notification_list']
        temp_list.append(dict(
            created_time=current_time,
            content=notification_content,
            editor_id=self.__user_id
        ))
        self.event_item['info']['notification_list'] = temp_list
        self.event_item.partial_save()
        return members
コード例 #6
0
ファイル: activity.py プロジェクト: naitianliu/pigeon
class ActivityOperation(object):
    def __init__(self, user_id, event_id):
        self.__user_id = user_id
        self.__event_id = event_id
        self.table = Table('Event')
        self.event_item = self.table.get_item(event_id=event_id)
        self.db_event = EventDBOperation()

    def invite_members_to_activity(self, members):
        current_members = self.event_item['info']['members']
        new_members = current_members + members
        self.event_item['info']['members'] = new_members
        self.event_item.partial_save()
        self.db_event.bulk_create_new_event_per_user(self.__event_id,
                                                     EVENT_TYPE, members)
        self.db_event.update_event_to_new(self.__event_id)

    def exit_topic(self):
        members = self.event_item['info']['members']
        if self.__user_id in members:
            members.remove(self.__user_id)
        self.event_item['info']['members'] = members
        self.event_item.partial_save()
        self.db_event.remove_event_per_user(self.__event_id, self.__user_id)

    def post_notification(self, notification_content):
        members = self.event_item['info']['members']
        current_time = int(time.time())
        temp_list = self.event_item['info']['notification_list']
        temp_list.append(
            dict(created_time=current_time,
                 content=notification_content,
                 editor_id=self.__user_id))
        self.event_item['info']['notification_list'] = temp_list
        self.event_item.partial_save()
        return members
コード例 #7
0
ファイル: reminder.py プロジェクト: naitianliu/pigeon
class ReminderOperation(object):
    def __init__(self, user_id, event_id):
        self.__user_id = user_id
        self.__event_id = event_id
        self.table = Table('Event')
        self.event_item = self.table.get_item(event_id=event_id)
        self.db_event = EventDBOperation()

    def change_receivers(self, receivers):
        current_receivers = self.event_item['info']['receivers']
        self.event_item['info']['receivers'] = receivers
        self.event_item['info']['receiver_status'] = dict.fromkeys(
            receivers, 0)
        self.event_item.partial_save()
        self.db_event.remove_event_by_user_id_list(self.__event_id,
                                                   current_receivers)
        self.db_event.bulk_create_new_event_per_user(self.__event_id,
                                                     EVENT_TYPE, receivers)
        self.db_event.update_event_to_new(self.__event_id)

    def complete_reminder_by_receiver(self, message=None):
        creator_id = self.event_item['info']['creator_id']
        self.event_item['info']['receiver_status'][self.__user_id] = 1
        self.event_item.partial_save()
        self.db_event.save_comment_by_event_id(self.__event_id,
                                               self.__user_id,
                                               action=1,
                                               content=message)
        self.db_event.update_event_to_new(self.__event_id)
        return creator_id

    def revoke_reminder_by_creator(self, message=None):
        creator_id = self.event_item['info']['creator_id']
        receivers = self.event_item['info']['receivers']
        self.event_item['info']['status'] = 5
        self.event_item.partial_save()
        self.db_event.save_comment_by_event_id(self.__event_id,
                                               self.__user_id,
                                               action=5,
                                               content=message)
        user_id_list = receivers + [self.__user_id]
        self.db_event.remove_event_per_user(self.__event_id, user_id_list)
        return creator_id

    def delay_reminder_by_receiver(self, message=None):
        creator_id = self.event_item['info']['creator_id']
        self.event_item['info']['receiver_status'][self.__user_id] = 2
        self.event_item.partial_save()
        self.db_event.save_comment_by_event_id(self.__event_id,
                                               self.__user_id,
                                               action=2,
                                               content=message)
        self.db_event.update_event_to_new(self.__event_id)
        return creator_id

    def reject_reminder_by_receiver(self, message=None):
        creator_id = self.event_item['info']['creator_id']
        self.event_item['info']['receiver_status'][self.__user_id] = 3
        self.event_item.partial_save()
        self.db_event.save_comment_by_event_id(self.__event_id,
                                               self.__user_id,
                                               action=3,
                                               content=message)
        self.db_event.update_event_to_new(self.__event_id)
        self.db_event.remove_event_per_user(self.__event_id, self.__user_id)
        return creator_id

    def resend_reminder_by_creator(self, message=None):
        creator_id = self.event_item['info']['creator_id']
        self.event_item['info']['status'] = 6
        self.event_item.partial_save()
        self.db_event.save_comment_by_event_id(self.__event_id,
                                               self.__user_id,
                                               action=6,
                                               content=message)
        self.db_event.update_event_to_new(self.__event_id)
        return creator_id