示例#1
0
文件: views.py 项目: hozano/quest
def criar_questao(request):
    if request.method == 'POST':
        form = QuestaoVFForm(request.POST)
        formset = AlternativaVFFormSet(request.POST)
        if form.is_valid() and formset.is_valid():
            questao = form.save(commit=False)
            questao.criador = request.user
            questao.save()
            questao.tags = form.cleaned_data['tags']
            for form_dict in formset.cleaned_data:
                if form_dict:
                    alternativa = AlternativaVFQuestao()
                    alternativa.questao = questao
                    alternativa.alternativa = form_dict['alternativa']
                    alternativa.valor = form_dict['valor']
                    alternativa.save()
            return HttpResponseRedirect('/questoes')
    else:
        form = QuestaoVFForm()
        formset = AlternativaVFFormSet()
        
    return render_to_response('private/questao/vf/form.html', {'form':form, 'formset':formset}, 
                                      context_instance=RequestContext(request))
示例#2
0
文件: views.py 项目: hozano/quest
def atualizar_questao(request, pk):
    questao = QuestaoVF.objects.get(id = pk)
    if (request.method == 'POST'):
        form = QuestaoVFForm(request.POST)
        formset = AlternativaVFFormSet(request.POST)
        if form.is_valid() and formset.is_valid(): 
            with transaction.commit_on_success():
                query = QuestaoVF.objects.get(id = pk)
                query.nome = form.cleaned_data['nome']
                query.enunciado = form.cleaned_data['enunciado']
                query.criador = questao.criador
                query.data_criacao = questao.data_criacao
                query.nivel_estatico = form.cleaned_data['nivel_estatico']
                query.nivel_dinamico = questao.nivel_dinamico
                query.questionarios = questao.questionarios.all()
                query.tags = form.cleaned_data['tags']
                query.save()
                AlternativaVFQuestao.objects.filter(questao = query).delete()
                for form_dict in formset.cleaned_data:
                    if form_dict:
                        alternativa = AlternativaVFQuestao()
                        alternativa.questao = query
                        alternativa.alternativa = form_dict['alternativa']
                        alternativa.valor = form_dict['valor']
                        alternativa.save()
                return HttpResponseRedirect('/questao/detail/%s/%s' % (questao.uid(), questao.id))

    form = QuestaoVFForm(initial={'nome':questao.nome, 'enunciado':questao.enunciado, 
                                        'criador':questao.criador, 'data_criacao':questao.data_criacao, 
                                        'nivel_estatico':questao.nivel_estatico, 'nivel_dinamico':questao.nivel_dinamico, 
                                        'questionarios':questao.questionarios, 'tags':questao.get_tags_as_string})

    queryset= AlternativaVFQuestao.objects.filter(questao = questao).values()
    formset = AlternativaVFFormSet(initial=queryset)
    return render_to_response('private/questao/vf/show.html', {'questao':questao, 'form':form, 'formset':formset}, 
                              context_instance=RequestContext(request))