def update_task(self, request, task_act_uuid, data): obj = TaskActivityDbio().get_taskactivity(task_act_uuid) TaskActivityDbio().update_obj(obj, {'state': data.get('state')}) if obj.state == StatesStatus.COMPLETED: TaskDbio().update_task_state(obj.task, StatesStatus.COMPLETED) elif obj.state == StatesStatus.DECLINED: TaskDbio().update_task_state(obj.task, StatesStatus.NEW) return self.cur_user_tasks(request)
def accepted_by_other(self, request): cur_user = TaskActivityDbio.get_current_users() dvr_man = [ user.profile for user in cur_user if user.profile.user_type == UserType.DELIVERY ] return TaskActivityDbio().filter_objects({ 'dvr_man__in': dvr_man, 'state': StatesStatus.ACCEPTED }).exclude(dvr_man=request.user.profile)
def handle_task(self, request, task_uuid, accept): if request.user.profile.dvr_man.filter( state=StatesStatus.ACCEPTED).count() == MAX_LIMIT: return {'message': 'You accept limit of task is over'} obj = TaskDbio().get_task(task_uuid) data = {'task': obj, 'dvr_man': request.user.profile} if accept: return self.accept_task(obj, data) data['state'] = StatesStatus.DECLINED return TaskActivityDbio().create_obj(data)
def retreive_single_task(self, task_uuid): return (TaskDbio().get_task(task_uuid), TaskActivityDbio().various_state(task_uuid))
def cur_user_tasks(self, request): return TaskActivityDbio().filter_objects({ 'dvr_man': request.user.profile }).order_by('state')
def accept_task(self, obj, data): data['state'] = StatesStatus.ACCEPTED TaskActivityDbio().create_obj(data) return TaskDbio().update_obj(obj, {'state': StatesStatus.ACCEPTED})
def get(self, request, task_act_uuid): """ view a previously task before complete/decline """ obj = TaskActivityDbio().get_taskactivity(task_act_uuid) return render(request, DELIVERY_UPDATE, {'info': obj})