diff --git a/ippisite/ippidb/views.py b/ippisite/ippidb/views.py index e4b4b049d9cc5f99848b34f08a5fb5297cc71b7e..d3c6bfb064922bdc5cc095f6d17a004d0de41dc0 100644 --- a/ippisite/ippidb/views.py +++ b/ippisite/ippidb/views.py @@ -2,7 +2,10 @@ import ippidb from django.shortcuts import render from django.http import HttpResponseRedirect from formtools.wizard.views import SessionWizardView,NamedUrlSessionWizardView + from .forms import IdForm, BibliographyForm, PDBForm, ProteinForm, ProteinDomainComplexTypeForm, ProteinDomainComplexForm, PpiForm +from .models import Protein +from .ws import get_pdb_uniprot_mapping def index(request): return render(request, 'index.html') @@ -48,6 +51,19 @@ class IppiWizard(SessionWizardView): if self.steps.current=='IdForm': form.instance.autofill() self.instance_dict['BibliographyForm'] = form.instance + elif self.steps.current=='PDBForm': + uniprot_ids = get_pdb_uniprot_mapping(form.cleaned_data['pdb_id']) + proteins = [] + for uniprot_id in uniprot_ids: + try: + p = Protein.objects.get(uniprot_id=uniprot_id) + except Protein.DoesNotExist: + p = Protein() + p.uniprot_id = uniprot_ids[0] + p.autofill() + proteins.append(p) + #TODO replace p with proteins as the instance_dict + self.instance_dict['ProteinForm'] = p return self.get_form_step_data(form) def done(self, form_list, **kwargs):