def multipartite_view(request, multi_type=None): if multi_type is None: return render_to_response('multipartite_initial.html', {}, context_instance=RequestContext(request)) elif multi_type not in PARTS_TO_ASSEMBLE.keys(): return Http404 context = RequestContext(request) context.update(csrf(request)) if request.method == 'POST': request_data = request.POST elif request.method == 'GET': request_data = request.GET else: request_data = None form_class = get_multipartite_form(multi_type, request.user) if request_data: form = form_class(request_data) if form.is_valid(): used_parts = OrderedDict() multi_form_data = form.cleaned_data for part_type in [p[0] for p in PARTS_TO_ASSEMBLE[multi_type]]: used_parts[part_type] = multi_form_data[part_type] used_parts[VECTOR_TYPE_NAME] = multi_form_data[VECTOR_TYPE_NAME] return render_to_response('multipartite_result.html', {'used_parts': used_parts, 'multi_type': multi_type}, context_instance=RequestContext(request)) else: form = form_class() context['form'] = form template = 'multipartite_template.html' content_type = None return render_to_response(template, context, content_type=content_type)
def multipartite_view_sbol(request, multi_type=None): 'view of the multipartite tool' if multi_type is None: return render_to_response('multipartite_initial.html', {}, context_instance=RequestContext(request)) elif multi_type not in PARTS_TO_ASSEMBLE.keys(): return Http404 context = RequestContext(request) context.update(csrf(request)) if request.method == 'POST': request_data = request.POST elif request.method == 'GET': request_data = request.GET else: request_data = None form_class = get_multipartite_form(multi_type, request.user) if request_data: form = form_class(request_data) if form.is_valid(): multi_form_data = form.cleaned_data part_types = [p[0] for p in PARTS_TO_ASSEMBLE[multi_type]] assembled_seq = assemble_parts(multi_form_data, part_types) filename = assembled_seq.name + '.xml' response = HttpResponse(convert_to_sbol(assembled_seq), content_type='xml/plain') response['Content-Disposition'] = 'attachment; ' response['Content-Disposition'] += 'filename="{0}"'.format(filename) return response return HttpResponseBadRequest()