Example #1
0
def new_code(request, pid, template='new_code.html'):
    p = get_object_or_404(Project, pk=pid)

    back_or_success = reverse('browse_codes', args=(pid,))

    if request.method == 'POST':
        c = Code()
        form = CodeForm(request.POST, instance=c)
        if form.is_valid():
            c.created_by = request.user
            c.project = p
            c.save()

            for parent in form.cleaned_data['parent_codes']:
                c.parent_codes.add(parent)
            c.save()

            return redirect(back_or_success)
    else:
        form = CodeForm()

    form_action = reverse('new_code', args=(pid,))
    return render(request,
              template,
              {'form': form,
               'form_action': form_action,
               'back_url': back_or_success})
Example #2
0
def new_code(request, pid, template='new_code.html'):
    p = get_object_or_404(Project, pk=pid)

    back_or_success = reverse('browse_codes', args=(pid,))

    # Create queryset to filter possible parent codes
    choices = Code.objects.filter(project=pid)

    if request.method == 'POST':
        c = Code()
        form = CodeForm(request.POST, instance=c)
        # Modify form's queryset for validation
        form.fields['parent_codes'].queryset = choices

        if form.is_valid():
            c.created_by = request.user
            c.project = p
            c.save()

            for parent in form.cleaned_data['parent_codes']:
                c.parent_codes.add(parent)
            c.save()

            return redirect(back_or_success)
    else:
        form = CodeForm()
        # Only display project's codes
        form.fields['parent_codes'].queryset = choices

    form_action = reverse('new_code', args=(pid,))
    return render(request,
              template,
              {'form': form,
               'form_action': form_action,
               'back_url': back_or_success})