Пример #1
0
def new_poll(request):
    if request.method == "POST":
        option_list = request.POST.getlist('option[]')
        error = []
        options = []
        error2 = []
        if len(option_list) > 10:
            error2.append(u'Слишком много вариантов, хакир')
        if len(option_list) < 2:
            error2.append(u'Слишком мало вариантов, хакир')
        print len(option_list)
        print len(error2)
        for key, value in enumerate(option_list):
            if len(value) < 2 or len(value) > 15:
                error.append(key)
            options.append([key, value])
        if len(error) > 0 or len(error2) > 0:
            c = Context({
                'user': request.user,
                'head_menu': 'vote_new',
                'error': error,
                'error2': error2,
                'options': options,
                'post': 1,
                'poll_name': request.POST.get('poll_name')
            })
            c.update(csrf(request))
            return render_to_response('new_poll.html', c)
        else:
            poll = Polls()
            poll.user = request.user
            poll.name = request.POST.get('poll_name')
            poll.save()

            last_id = Polls.objects.latest('id')

            for key, value in options:
                option = Options()
                option.poll = last_id
                option.name = value
                option.count = 0
                option.save()
                cache.delete('all_polls')
            return HttpResponseRedirect('/poll/%s/' % (last_id.id))
    else:
        options = []
        [options.append(i) for i in xrange(1, 6)]
        c = Context({
            'user': request.user,
            'head_menu': 'vote_new',
            'options': options
        })
        c.update(csrf(request))
        return render_to_response('new_poll.html', c)