Пример #1
0
def handle_task_form(request, form_post, task, success_action):
    if request.method == 'POST':
        form = TaskForm(request.POST, instance=task)
        if form.is_valid():
            task = form.save(commit=False)
            if not task.author_id:
                task.author_id = request.user.pk
            if save_task(task):
                success_action(task)
                messages.add_message(
                    request,
                    messages.SUCCESS,
                    'Task %s saved successfully.' % task)
                return HttpResponseRedirect(
                    reverse('task_details', args=[task.pk]))
            else:
                messages.add_message(
                    request,
                    messages.ERROR,
                    'Unable to save this task. '
                    'Please report this accident to administrator.')
    else:
        form = TaskForm(instance=task)
    return render(request, 'contest/task_new.html', {
        'form': form,
        'form_post': form_post
    })
Пример #2
0
def fetch_task(request, contest_id):
    contest = Contest.objects.get(pk=contest_id)
    if not request.user.has_perm('manage_contest', contest):
        raise PermissionDenied
    elif request.method == 'POST':
        form = TaskFetchForm(request.POST)
        if form.is_valid():
            fetched_task = copy_task(form)
            fetched_task.contest = contest
            if save_task(fetched_task):
                messages.add_message(
                    request, messages.SUCCESS,
                    'New task has been added to contest %s.' % contest.name)
                add_task_to_groups(contest, fetched_task)
            else:
                messages.add_message(
                    request, messages.ERROR,
                    'Unable to fetch task %s. Please report this accident'
                    ' to administrator.' % fetched_task)

    return HttpResponseRedirect(
        reverse('contest_details', args=[contest_id]) + '?current_tab=tasks')
Пример #3
0
def handle_task_form(request, form_post, task, success_action):
    if request.method == 'POST':
        form = TaskForm(request.POST, instance=task)
        if form.is_valid():
            task = form.save(commit=False)
            if not task.author_id:
                task.author_id = request.user.pk
            if save_task(task):
                success_action(task)
                messages.add_message(request, messages.SUCCESS,
                                     'Task %s saved successfully.' % task)
                return HttpResponseRedirect(
                    reverse('task_details', args=[task.pk]))
            else:
                messages.add_message(
                    request, messages.ERROR, 'Unable to save this task. '
                    'Please report this accident to administrator.')
    else:
        form = TaskForm(instance=task)
    return render(request, 'contest/task_new.html', {
        'form': form,
        'form_post': form_post
    })
Пример #4
0
def fetch_task(request, contest_id):
    contest = Contest.objects.get(pk=contest_id)
    if not request.user.has_perm('manage_contest', contest):
        raise PermissionDenied
    elif request.method == 'POST':
        form = TaskFetchForm(request.POST)
        if form.is_valid():
            fetched_task = copy_task(form)
            fetched_task.contest = contest
            if save_task(fetched_task):
                messages.add_message(
                    request,
                    messages.SUCCESS,
                    'New task has been added to contest %s.' % contest.name)
                add_task_to_groups(contest, fetched_task)
            else:
                messages.add_message(
                    request,
                    messages.ERROR,
                    'Unable to fetch task %s. Please report this accident'
                    ' to administrator.' % fetched_task)

    return HttpResponseRedirect(
        reverse('contest_details', args=[contest_id]) + '?current_tab=tasks')