Exemple #1
0
def create_tasks_sync(task_list, organizer):
    for task in task_list:
        # print(task['agents'])
        agents = task['agents']

        new_task = Task(manager=task['manager'],
                        title=task['title'],
                        address=task['address'],
                        deadline=set_duration(task['duration']))
        new_task.task_type = 'Custom Upload'
        custom_fields = {}
        if task['image_req']:
            new_task.image_required = True
        if task['demand']:
            custom_fields.update({
                'demand_keys': ['Item', 'Quantity'],
                'Demands': []
            })
        for field in task['other_fields']:
            custom_fields.update({field: ''})
        new_task.custom_fields = custom_fields
        new_task.save()
        if len(agents) > 1:
            new_task.agent_list.add(*agents)
            new_task.save()

    organizer.org.subscription.current_usage.consumed_tasks += len(task_list)
    organizer.org.subscription.current_usage.save()
Exemple #2
0
def create_task(title,
                manager,
                agent_list=[],
                status=TSD['Unassigned'],
                task_type='Visit'):
    task = Task(
        title=title,
        task_type=task_type,
        manager=manager,
        status=status,
        org=manager.org,
    )
    task.save()
    if len(agent_list) > 0 and status == TSD['Unassigned']:
        task.status = TSD['Remaining']
    for agent in agent_list:
        agent.is_present = True
        if status == TSD['In progress']:
            agent.userstate.active_task = task
            agent.is_working = True
            agent.save()
            agent.userstate.save()
        task.agent_list.add(agent)
    task.save()
    return task
Exemple #3
0
    def addEditTask(self, param):

        if param.has_key('id'):
            id = int(param['id'])
        else:
            id = 0

        if id == 0:
            task = Task()
        else:
            task = self.getTaskId(id)

        if param.has_key('name'):
            task.name = str(param['name'].encode('utf-8'))

        if param.has_key('is_folder'):
            task.is_folder = int(param['is_folder'])

        if param.has_key('main'):
            task.main = int(param['main'])

        if param.has_key('percent'):
            task.percent = int(param['percent'])

        if param.has_key('important'):
            task.important = int(param['important'])

        if param.has_key('checked_id'):
            task.checked_id = int(param['checked_id'])

        if param.has_key('staff_id'):
            task.staff_id = int(param['staff_id'])

        if param.has_key('status_id'):
            task.status_id = int(param['status_id'])

        if param.has_key('date_start'):
            task.date_start = date_sql(str(param['date_start']))

        if param.has_key('date_end'):
            task.date_end = date_sql(str(param['date_end']))

        if param.has_key('date_checked'):
            task.date_checked = date_sql(str(param['date_checked']))

        if param.has_key('parent'):
            parent = self.getTaskId(int(param['parent']))
            if parent:
                task.parent = parent


        task.save()


        if param.has_key('responsible'):
            task.responsible.add(param['responsible'])

        return task