def switch_stages(command, first_stage_name, second_stage_name): response = {'update': False} user = command.body['user'] project_id = command.body['project_id'] project = Project.objects.get(id=project_id) first_stage = Stage.objects.get(project=project_id, title=first_stage_name) second_stage = Stage.objects.get(project=project_id, title=second_stage_name) # switch order largest_order = Stage.objects.filter( project=project).order_by('-order')[0].order temp_first_order = first_stage.order temp_second_order = second_stage.order first_stage.order = largest_order + 1 first_stage.save() second_stage.order = temp_first_order second_stage.save() first_stage.order = temp_second_order first_stage.save() log = ActivityLog(actor=user, project=project, \ content=" switch stage %s and stage %s" % \ (first_stage.title, second_stage.title)) log.save() response['update'] = True response['event'] = 'switch_stages' response['first_stage_title'] = first_stage.title response['second_stage_title'] = second_stage.title response['log'] = str(log) return response
def create_task(command, task_name, stage_name): response = {'update': False} user = command.body['user'] project_id = command.body['project_id'] project = Project.objects.get(id=project_id) stage = Stage.objects.get(project=project, title=stage_name) task, created = Task.objects.get_or_create(title=task_name, \ project=project, \ stage=stage, \ creator=user) if created: log = ActivityLog(actor=user, project=project, \ content=" create task %s in stage %s" % \ (task.title, stage.title)) log.save() response['update'] = True response['event'] = 'create_task' response['stage_title'] = stage.title response['task_title'] = task.title response['task_id'] = task.id response['log'] = str(log) return response
def move_task(command, task_id, stage_name): response = {'update': False} user = command.body['user'] project_id = command.body['project_id'] project = Project.objects.get(id=project_id) destination_stage = Stage.objects.get(project=project, title=stage_name) task = Task.objects.get(id=task_id) if task.stage.title != destination_stage.title and \ task.stage.project == destination_stage.project: task.stage = destination_stage task.save() log = ActivityLog(actor=user, project=project, content=" move task %s to stage %s" % \ (task.title, destination_stage.title)) log.save() response['update'] = True response['event'] = 'move_task' response['stage_title'] = destination_stage.title response['task_title'] = task.title response['task_id'] = task.id response['log'] = str(log) return response
def delete_stage(command, stage_name): response = {'update': False} user = command.body['user'] project_id = command.body['project_id'] project = Project.objects.get(id=project_id) num, dict_del_type_num = Stage.objects.get(title=stage_name, project=project).delete() if num > 0: log = ActivityLog(actor=user, content=" delete stage %s" % stage_name) log.save() response['update'] = True response['event'] = 'delete_stage' response['stage_title'] = stage_name response['log'] = str(log) return response
def create_stage(command, stage_name): response = {'update': False} user = command.body['user'] project_id = command.body['project_id'] project = Project.objects.get(id=project_id) largest_order = Stage.objects.filter( project=project).order_by('-order')[0].order stage, created = Stage.objects.get_or_create(title=stage_name, project=project, order=largest_order + 1) if created: log = ActivityLog(actor=user, content=" create stage %s" % stage.title) log.save() response['update'] = True response['event'] = 'create_stage' response['stage_title'] = stage.title response['log'] = str(log) return response
def delete_task(command, task_id): response = {'update': False} user = command.body['user'] task = Task.objects.get(id=task_id) task_title = task.title project = task.project stage =task.stage num, dict_del_type_num = Task.objects.get(id=task_id).delete() if num > 0: log = ActivityLog(actor=user, content=" delete task %s" % task_title) log.save() response['update'] = True response['event'] = 'delete_task' response['stage_title'] = stage.title response['task_id'] = task_id response['log'] = str(log) return response