def task_time_slot_add(request, task_id, response_format='html'): "Time slot add to preselected task" task = get_object_or_404(Task, pk=task_id) if not request.user.get_profile().has_permission(task, mode='x'): return user_denied(request, message="You don't have access to this Task") if request.POST: task_time_slot = TaskTimeSlot(task=task, time_to=datetime.now(), user=request.user.get_profile()) form = TaskTimeSlotForm(request.user.get_profile(), task_id, request.POST, instance=task_time_slot) if 'cancel' in request.POST: return HttpResponseRedirect(reverse('projects_task_view', args=[task.id])) elif form.is_valid(): task_time_slot = form.save() task_time_slot.set_user_from_request(request) return HttpResponseRedirect(reverse('projects_task_view', args=[task.id])) else: form = TaskTimeSlotForm(request.user.get_profile(), task_id) subtasks = Object.filter_by_request(request, Task.objects.filter(parent=task)) time_slots = Object.filter_by_request(request, TaskTimeSlot.objects.filter(task=task)) context = _get_default_context(request) context.update({'form': form, 'task': task, 'subtasks': subtasks, 'time_slots': time_slots}) return render_to_response('projects/task_time_add', context, context_instance=RequestContext(request), response_format=response_format)
def task_time_slot_start(request, task_id, response_format='html'): "Start TaskTimeSlot for preselected Task" task = get_object_or_404(Task, pk=task_id) if not request.user.get_profile().has_permission(task, mode='x'): return user_denied(request, message="You don't have access to this Task") if not task.is_being_done_by(request.user.get_profile()): task_time_slot = TaskTimeSlot(task=task, time_from=datetime.now(), user=request.user.get_profile()) task_time_slot.save() task_time_slot.set_user_from_request(request) return HttpResponseRedirect(reverse('projects_task_view', args=[task_id]))
def read(self, request, task_id, *args, **kwargs): try: task = Task.objects.get(pk=task_id) except Task.DoesNotExist: return rc.NOT_FOUND if not request.user.get_profile().has_permission(task, mode='x'): return rc.FORBIDDEN if not task.is_being_done_by(request.user.get_profile()): task_time_slot = TaskTimeSlot(task=task, time_from=datetime.now(), user=request.user.get_profile()) task_time_slot.save() task_time_slot.set_user_from_request(request) return task_time_slot return ("The task isn't in progress", 401)