def task_details(request: WSGIRequest, task_pk: int, *args, **kwargs): task: Task = get_object_or_404(Task, pk=task_pk) if task.user != request.user: messages.add_message( request, messages.ERROR, 'Vous n\'êtes pas autorisé à consulter cette tâche') return redirect(reverse('tasks:list')) form = EditTaskForm(instance=task) if request.method == 'POST': form = EditTaskForm(instance=task, data=request.POST) if form.is_valid(): form.save() return redirect(reverse('tasks:list')) return render(request, 'tasks/task_details.html', { 'active_menu': 'tasks', 'task': task, 'form': form, })
def task_edit(request, task_id): group = get_current_group(request) if group == None: return HttpResponseRedirect(reverse('index')) task = Task.objects.get(pk=int(task_id)) if task.group != group: return HttpResponseRedirect(reverse('index')) page_heading = task if request.method == "POST": if request.POST['button']: if request.POST['button']=='delete_task': task.delete() return HttpResponseRedirect(reverse('task-list')) else: form = EditTaskForm(group, request.POST, instance=task, label_suffix='') # import pdb; pdb.set_trace() if form.is_valid(): form.save(group) return HttpResponseRedirect(reverse('task-list')) else: form = EditTaskForm(group, instance=task, label_suffix='') menu = {'parent': 'tasks'} return render(request, 'task_edit.html', { 'menu': menu, 'form': form, 'page_heading': page_heading, 'task_id': task_id, })
def view_task(request, task_id): """ View task details. Allow task details to be edited. """ task = get_object_or_404(Task, pk=task_id) # Ensure user has permission to view item. # Get the users this task belongs to. # Admins can edit all tasks. if task.assigned_to == request.user or request.user.is_staff: auth_ok = True if request.POST: form = EditTaskForm(request.POST, instance=task) if form.is_valid(): form.save() messages.success(request, "The task has been edited.") return HttpResponseRedirect(reverse('tasks:task-lists')) else: form = EditTaskForm(instance=task) if task.due_date: thedate = task.due_date else: thedate = datetime.datetime.now() else: messages.info(request, "You do not have permission to view/edit this task.") return render(request, 'tasks/view_task.html', locals())
def task_edit(request, task_id): group = get_current_group(request) if group == None: return HttpResponseRedirect(reverse('index')) task = Task.objects.get(pk=int(task_id)) if task.group != group: return HttpResponseRedirect(reverse('index')) page_heading = task if request.method == "POST": if request.POST['button']: if request.POST['button'] == 'delete_task': task.delete() return HttpResponseRedirect(reverse('task-list')) else: form = EditTaskForm(group, request.POST, instance=task, label_suffix='') # import pdb; pdb.set_trace() if form.is_valid(): form.save(group) return HttpResponseRedirect(reverse('task-list')) else: form = EditTaskForm(group, instance=task, label_suffix='') menu = {'parent': 'tasks', 'child': 'manage_tasks', 'tips': 'edit_task'} return render( request, 'task_edit.html', { 'menu': menu, 'form': form, 'page_heading': page_heading, 'task_id': task_id, })
def task(request, id, template_name="tasks/task.html"): task = get_object_or_404(Task, id=id) group = task.group # @@@ if group.deleted: # @@@ raise Http404 if group: notify_list = group.member_users.all() # @@@ else: notify_list = User.objects.all() is_member = True # @@@ groups.has_member(request.user) if is_member and request.method == "POST": form = EditTaskForm(request.user, request.POST, instance=task) if form.is_valid(): task = form.save() if "status" in form.changed_data: request.user.message_set.create(message="updated your status on the task") if notification: notification.send(notify_list, "tasks_status", {"user": request.user, "task": task, "group": group}) if "state" in form.changed_data: request.user.message_set.create(message="task marked %s" % task.get_state_display()) if notification: notification.send(notify_list, "tasks_change", {"user": request.user, "task": task, "group": group, "new_state": task.get_state_display()}) if "assignee" in form.changed_data: request.user.message_set.create(message="assigned task to '%s'" % task.assignee) if notification: notification.send(notify_list, "tasks_assignment", {"user": request.user, "task": task, "assignee": task.assignee, "group": group}) if "tags" in form.changed_data: request.user.message_set.create(message="updated tags on the task") if notification: notification.send(notify_list, "tasks_tags", {"user": request.user, "task": task, "group": group}) form = EditTaskForm(request.user, instance=task) else: form = EditTaskForm(request.user, instance=task) return render_to_response(template_name, { "task": task, "is_member": is_member, "form": form, }, context_instance=RequestContext(request))
def task(request, id, group_slug=None, template_name="tasks/task.html", bridge=None): if bridge: try: group = bridge.get_group(group_slug) except ObjectDoesNotExist: raise Http404 else: group = None if group: tasks = group.content_objects(Task) group_base = bridge.group_base_template() else: tasks = Task.objects.filter(object_id=None) group_base = None task = get_object_or_404(tasks, id=id) if group: notify_list = group.member_queryset() else: notify_list = User.objects.all() notify_list = notify_list.exclude(id__exact=request.user.id) if not request.user.is_authenticated(): is_member = False else: if group: is_member = group.user_is_member(request.user) else: is_member = True if is_member and request.method == "POST": form = EditTaskForm(request.user, group, request.POST, instance=task) if form.is_valid(): task = form.save() task.save_history(change_owner=request.user) if task.assignee == request.user: task.denudge() if "status" in form.changed_data: messages.add_message(request, messages.SUCCESS, ugettext("updated your status on the task") ) if notification: notification.send(notify_list, "tasks_status", {"user": request.user, "task": task, "group": group}) if "state" in form.changed_data: messages.add_message(request, messages.SUCCESS, ugettext("task marked %(state)s") % { "state": task.get_state_display() } ) if notification: notification.send(notify_list, "tasks_change", {"user": request.user, "task": task, "group": group, "new_state": task.get_state_display()}) if "assignee" in form.changed_data: messages.add_message(request, messages.SUCCESS, ugettext("assigned task to '%(assignee)s'") % { # @@@ user_display "assignee": task.assignee } ) if notification: notification.send(notify_list, "tasks_assignment", {"user": request.user, "task": task, "assignee": task.assignee, "group": group}) if "tags" in form.changed_data: messages.add_message(request, messages.SUCCESS, ugettext("updated tags on the task") ) if notification: notification.send(notify_list, "tasks_tags", {"user": request.user, "task": task, "group": group}) form = EditTaskForm(request.user, group, instance=task) else: form = EditTaskForm(request.user, group, instance=task) # The NUDGE dictionary nudge = {} nudge["nudgeable"] = False # get the count of nudges so assignee can see general level of interest. nudge["count"] = Nudge.objects.filter(task__exact=task).count() # get the nudge if you are not the assignee otherwise just a None if is_member and request.user != task.assignee and task.assignee: nudge["nudgeable"] = True try: nudge["nudge"] = Nudge.objects.filter(nudger__exact=request.user, task__exact=task)[0] except IndexError: nudge["nudge"] = None # get the nudge history nudge["history"] = Nudge.objects.filter(task__exact=task) return render_to_response(template_name, { "group": group, "nudge": nudge, "task": task, "is_member": is_member, "form": form, "group_base": group_base, }, context_instance=RequestContext(request))
def task(request, id, template_name="tasks/task.html"): group, bridge = group_and_bridge(request) if group: is_member = group.request.user_is_member() else: is_member = True if group: tasks = group.content_objects(Task) else: tasks = Task.objects.filter(object_id=None) task = get_object_or_404(tasks, id=id) if not request.user.is_authenticated(): is_member = False else: if group: is_member = group.user_is_member(request.user) else: is_member = True if is_member and request.method == "POST": form = EditTaskForm(request.user, group, request.POST, instance=task) if form.is_valid(): task = form.save() task.save_history(change_owner=request.user) if task.assignee == request.user: task.denudge() if "status" in form.changed_data: messages.add_message(request, messages.SUCCESS, ugettext("updated your status on the task") ) signals.task_status_changed.send( sender = Task, user = request.user, task = task, group = group, ) if "state" in form.changed_data: messages.add_message(request, messages.SUCCESS, ugettext("task marked %(state)s") % { "state": task.get_state_display() } ) signals.task_changed.send( sender = Task, user = request.user, task = task, group = group, ) if "assignee" in form.changed_data: messages.add_message(request, messages.SUCCESS, ugettext("assigned task to '%(assignee)s'") % { # @@@ user_display "assignee": task.assignee } ) signals.task_assignment_changed.send( sender = Task, user = request.user, task = task, group = group, ) if "tags" in form.changed_data: messages.add_message(request, messages.SUCCESS, ugettext("updated tags on the task") ) signals.task_tags_changed.send( sender = Task, user = request.user, task = task, group = group, ) form = EditTaskForm(request.user, group, instance=task) else: form = EditTaskForm(request.user, group, instance=task) # The NUDGE dictionary nudge = {} nudge["nudgeable"] = False # get the count of nudges so assignee can see general level of interest. nudge["count"] = Nudge.objects.filter(task__exact=task).count() # get the nudge if you are not the assignee otherwise just a None if is_member and request.user != task.assignee and task.assignee: nudge["nudgeable"] = True try: nudge["nudge"] = Nudge.objects.filter(nudger__exact=request.user, task__exact=task)[0] except IndexError: nudge["nudge"] = None # get the nudge history nudge["history"] = Nudge.objects.filter(task__exact=task) ctx = group_context(group, bridge) ctx.update({ "nudge": nudge, "task": task, "is_member": is_member, "form": form, }) return render_to_response(template_name, RequestContext(request, ctx))
def task(request, id, template_name="tasks/task.html"): task = get_object_or_404(Task, id=id) group = task.group # @@@ if group.deleted: # @@@ raise Http404 if group: notify_list = group.member_users.all().exclude(id__exact=request.user.id) # @@@ else: notify_list = User.objects.all().exclude(id__exact=request.user.id) is_member = request.user.is_authenticated() # @@@ groups.has_member(request.user) if is_member and request.method == "POST": form = EditTaskForm(request.user, request.POST, instance=task) if form.is_valid(): task = form.save() task.save_history(change_owner=request.user) if task.assignee == request.user: task.denudge() if "status" in form.changed_data: request.user.message_set.create(message="updated your status on the task") if notification: notification.send(notify_list, "tasks_status", {"user": request.user, "task": task, "group": group}) if "state" in form.changed_data: request.user.message_set.create(message="task marked %s" % task.get_state_display()) if notification: notification.send(notify_list, "tasks_change", {"user": request.user, "task": task, "group": group, "new_state": task.get_state_display()}) if "assignee" in form.changed_data: request.user.message_set.create(message="assigned task to '%s'" % task.assignee) if notification: notification.send(notify_list, "tasks_assignment", {"user": request.user, "task": task, "assignee": task.assignee, "group": group}) if "tags" in form.changed_data: request.user.message_set.create(message="updated tags on the task") if notification: notification.send(notify_list, "tasks_tags", {"user": request.user, "task": task, "group": group}) form = EditTaskForm(request.user, instance=task) else: form = EditTaskForm(request.user, instance=task) # The NUDGE dictionary nudge = {} nudge['nudgeable'] = False # get the count of nudges so assignee can see general level of interest. nudge['count'] = Nudge.objects.filter(task__exact=task).count() # get the nudge if you are not the assignee otherwise just a None if is_member and request.user != task.assignee and task.assignee: nudge['nudgeable'] = True try: nudge['nudge'] = Nudge.objects.filter(nudger__exact=request.user, task__exact=task)[0] except IndexError: nudge['nudge'] = None # get the nudge history nudge['history'] = Nudge.objects.filter(task__exact=task) return render_to_response(template_name, { "nudge": nudge, "task": task, "is_member": is_member, "form": form, }, context_instance=RequestContext(request))
def task(request, id, group_slug=None, template_name="tasks/task.html", bridge=None): if bridge: try: group = bridge.get_group(group_slug) except ObjectDoesNotExist: raise Http404 else: group = None if group: tasks = group.content_objects(Task) group_base = bridge.group_base_template() else: tasks = Task.objects.filter(object_id=None) group_base = None task = get_object_or_404(tasks, id=id) if group: notify_list = group.member_queryset() else: notify_list = User.objects.all() notify_list = notify_list.exclude(id__exact=request.user.id) if not request.user.is_authenticated(): is_member = False else: if group: is_member = group.user_is_member(request.user) else: is_member = True if is_member and request.method == "POST": form = EditTaskForm(request.user, group, request.POST, instance=task) if form.is_valid(): task = form.save() task.save_history(change_owner=request.user) if task.assignee == request.user: task.denudge() if "status" in form.changed_data: request.user.message_set.create( message="updated your status on the task") if notification: notification.send(notify_list, "tasks_status", { "user": request.user, "task": task, "group": group }) if "state" in form.changed_data: request.user.message_set.create(message="task marked %s" % task.get_state_display()) if notification: notification.send( notify_list, "tasks_change", { "user": request.user, "task": task, "group": group, "new_state": task.get_state_display() }) if "assignee" in form.changed_data: request.user.message_set.create( message="assigned task to '%s'" % task.assignee) if notification: notification.send( notify_list, "tasks_assignment", { "user": request.user, "task": task, "assignee": task.assignee, "group": group }) if "tags" in form.changed_data: request.user.message_set.create( message="updated tags on the task") if notification: notification.send(notify_list, "tasks_tags", { "user": request.user, "task": task, "group": group }) form = EditTaskForm(request.user, group, instance=task) else: form = EditTaskForm(request.user, group, instance=task) # The NUDGE dictionary nudge = {} nudge['nudgeable'] = False # get the count of nudges so assignee can see general level of interest. nudge['count'] = Nudge.objects.filter(task__exact=task).count() # get the nudge if you are not the assignee otherwise just a None if is_member and request.user != task.assignee and task.assignee: nudge['nudgeable'] = True try: nudge['nudge'] = Nudge.objects.filter(nudger__exact=request.user, task__exact=task)[0] except IndexError: nudge['nudge'] = None # get the nudge history nudge['history'] = Nudge.objects.filter(task__exact=task) return render_to_response(template_name, { "group": group, "nudge": nudge, "task": task, "is_member": is_member, "form": form, "group_base": group_base, }, context_instance=RequestContext(request))