def step_4(request, trial_pk): ct = get_object_or_404(ClinicalTrial, id=int(trial_pk)) DescriptorFormSet = modelformset_factory(Descriptor, formset=MultilingualBaseFormSet, form=InterventionDescriptorForm, can_delete=True, extra=EXTRA_FORMS, extra_formset_attrs={ 'default_second_language':ct.submission.get_secondary_language(), 'available_languages':[lang.lower() for lang in ct.submission.get_mandatory_languages()], 'display_language':request.user.get_profile().preferred_language, }, ) queryset = Descriptor.objects.filter(trial=trial_pk, aspect=choices.TRIAL_ASPECT[1][0], level=choices.DESCRIPTOR_LEVEL[0][0]) if request.POST: form = InterventionForm(request.POST, instance=ct, display_language=request.user.get_profile().preferred_language) specific_desc_formset = DescriptorFormSet(request.POST, queryset=queryset) if form.is_valid() and specific_desc_formset.is_valid(): descriptors = specific_desc_formset.save(commit=False) for descriptor in descriptors: descriptor.trial = ct specific_desc_formset.save() form.save() return HttpResponseRedirect(reverse('step_4',args=[trial_pk])) else: form = InterventionForm(instance=ct, default_second_language=ct.submission.get_secondary_language(), display_language=request.user.get_profile().preferred_language) specific_desc_formset = DescriptorFormSet(queryset=queryset) forms = [form] formsets = [specific_desc_formset] return render_to_response('repository/step_4.html', {'forms':forms,'formsets':formsets, 'trial_pk':trial_pk, 'title':TRIAL_FORMS[3], 'steps': step_list(trial_pk), 'remarks':Remark.opened.filter(submission=ct.submission,context=slugify(TRIAL_FORMS[3])), 'default_second_language': ct.submission.get_secondary_language(), 'available_languages': [lang.lower() for lang in ct.submission.get_mandatory_languages()],}, context_instance=RequestContext(request))
def step_4(request, trial_pk): ct = get_object_or_404(ClinicalTrial, id=int(trial_pk)) DescriptorFormSet = modelformset_factory(Descriptor, form=InterventionDescriptorForm, extra=EXTRA_FORMS) queryset = Descriptor.objects.filter(trial=trial_pk, aspect=choices.TRIAL_ASPECT[1][0], level=choices.DESCRIPTOR_LEVEL[0][0]) if request.POST: form = InterventionForm(request.POST, instance=ct) idesc = DescriptorFormSet(request.POST, queryset=queryset) if form.is_valid() and idesc.is_valid(): for cdata in idesc.cleaned_data: cdata['trial'] = ct idesc.save() form.save() if request.POST.has_key('submit_next'): return HttpResponseRedirect(reverse("step_5",args=[trial_pk])) return HttpResponseRedirect(reverse("repository.edittrial", args=[trial_pk])) else: form = InterventionForm(instance=ct) idesc = DescriptorFormSet(queryset=queryset) forms = [form] formsets = [idesc] return render_to_response('repository/step_4.html', {'forms':forms,'formsets':formsets, 'username':request.user.username, 'trial_pk':trial_pk, 'title':TRIAL_FORMS[3], 'steps': step_list(trial_pk), 'next_form_title':_('Recruitment Form')})