From 28daf7692426f0dbf6b88e631cdccc4c27ea4e73 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Herv=C3=A9=20=20MENAGER?= <herve.menager@pasteur.fr>
Date: Fri, 16 Jun 2017 10:25:16 +0200
Subject: [PATCH] add code to retrieve proteins information from PDB

Former-commit-id: 9a7b9355ed06b75a23904ec12e070237b5f477f1
---
 ippisite/ippidb/views.py | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/ippisite/ippidb/views.py b/ippisite/ippidb/views.py
index e4b4b049..d3c6bfb0 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):
-- 
GitLab