Esempio n. 1
0
def create(request):
    topics = Topic.objects.all()
    if request.user.id == None:
        return HttpResponse('please login')
    if request.method == 'POST':
        requestpost = request.POST.getlist('choice')  # returns topic id
        requestweight = request.POST.getlist(
            'weight')  # returns a list of weights
        form = ChallengeForm(request.POST)

        if form.is_valid():
            challenge = form.save(commit=False)
            exist = Challenge.objects.filter(name=challenge.name)
            if not exist.exists():
                challenge.save()

                a = Author()
                a.user = request.user
                a.challenge = challenge
                a.timestamp = datetime.datetime.now()
                a.save()

                for i in range(0, len(requestpost)):
                    idx = int(requestpost[i])
                    topicweight = 0
                    for j in range(0, len(requestweight)):
                        if requestweight[j] != '':
                            topicweight = requestweight[j]
                            requestweight[j] = ''
                            break

                    ct = ChallengeTopic()
                    ct.challenge = challenge
                    ct.topic = Topic.objects.get(pk=idx)
                    ct.weight = float(topicweight)
                    ct.save()

                return redirect('thanks/')
            else:
                return HttpResponse('Challenge Name exists')
    else:
        form = ChallengeForm()
        return render(request, 'challenge/create.html', {
            'form': form,
            'topics': topics
        })