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))
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))