def update(request, task_id): task = get_object_or_404(Task, id=task_id) images_form = TaskImagesForm(request.POST, request.FILES) form = TaskForm(request.user, data=request.POST, instance=task) next_page = request.POST.get('next_page', 'tool_control') if not form.is_valid() or not images_form.is_valid(): errors = nice_errors(form) errors.update(nice_errors(images_form)) dictionary = { 'title': 'Task update failed', 'heading': 'Invalid task form data', 'content': errors.as_ul(), } return render(request, 'acknowledgement.html', dictionary) form.save() set_task_status(request, task, request.POST.get('status'), request.user) determine_tool_status(task.tool) task_images = save_task_images(request, task) try: send_task_updated_email( task, request.build_absolute_uri(task.tool.get_absolute_url()), task_images) except Exception as error: site_title = get_customization('site_title') error_message = f"{site_title} was unable to send the task updated email. The error message that was received is: " + str( error) tasks_logger.exception(error_message) pass if next_page == 'maintenance': return redirect('maintenance') else: return redirect('tool_control')
def cancel(request, task_id): task = get_object_or_404(Task, id=task_id) if task.cancelled or task.resolved: dictionary = { 'title': 'Task cancellation failed', 'heading': 'You cannot cancel this task', 'content': 'The status of this task has been changed so you may no longer cancel it.', } return render(request, 'acknowledgement.html', dictionary) if task.creator.id != request.user.id: dictionary = { 'title': 'Task cancellation failed', 'heading': 'You cannot cancel this task', 'content': 'You may only cancel a tasks that you created.', } return render(request, 'acknowledgement.html', dictionary) task.cancelled = True task.resolver = request.user task.resolution_time = timezone.now() task.save() determine_tool_status(task.tool) return redirect('tool_control')
def update(request, task_id): task = get_object_or_404(Task, id=task_id) form = TaskForm(request.user, data=request.POST, instance=task) next_page = request.POST.get('next_page', 'tool_control') if not form.is_valid(): dictionary = { 'title': 'Task update failed', 'heading': 'Invalid task form data', 'content': str(form.errors), } return render(request, 'acknowledgement.html', dictionary) form.save() set_task_status(request, task, request.POST.get('status'), request.user) determine_tool_status(task.tool) try: send_task_updated_email( task, request.build_absolute_uri(task.tool.get_absolute_url())) except Exception as error: error_message = 'NEMO was unable to send the task updated email. The error message that NEMO received is: ' + str( error) tasks_logger.exception(error_message) pass if next_page == 'maintenance': return redirect('maintenance') else: return redirect('tool_control')
def update(request, task_id): task = get_object_or_404(Task, id=task_id) images_form = TaskImagesForm(request.POST, request.FILES) form = TaskForm(request.user, data=request.POST, instance=task) next_page = request.POST.get('next_page', 'tool_control') if not form.is_valid() or not images_form.is_valid(): errors = nice_errors(form) errors.update(nice_errors(images_form)) dictionary = { 'title': 'Task update failed', 'heading': 'Invalid task form data', 'content': errors.as_ul(), } return render(request, 'acknowledgement.html', dictionary) form.save() set_task_status(request, task, request.POST.get('status'), request.user) determine_tool_status(task.tool) task_images = save_task_images(request, task) send_task_updated_email( task, request.build_absolute_uri(task.tool.get_absolute_url()), task_images) if next_page == 'maintenance': return redirect('maintenance') else: return redirect('tool_control')
def update(request, task_id): task = get_object_or_404(Task, id=task_id) form = TaskForm(request.user, data=request.POST, instance=task) next_page = request.POST.get('next_page', 'tool_control') if not form.is_valid(): dictionary = { 'title': 'Task update failed', 'heading': 'Invalid task form data', 'content': str(form.errors), } return render(request, 'acknowledgement.html', dictionary) form.save() determine_tool_status(task.tool) if next_page == 'maintenance': return redirect('maintenance') else: return redirect('tool_control')