From f79427c39f939f8f761e8231a237d78ef50fd194 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Herv=C3=A9=20=20MENAGER?= <herve.menager@pasteur.fr>
Date: Tue, 16 May 2017 22:16:55 +0200
Subject: [PATCH] create Symmetry table initial contents

(closes #9)
---
 ippisite/db.sqlite3                           | Bin 536576 -> 536576 bytes
 ippisite/ippidb/admin.py                      |   4 ++
 .../management/commands/import_v1_data.py     |  39 +++++++++++++++++-
 3 files changed, 42 insertions(+), 1 deletion(-)

diff --git a/ippisite/db.sqlite3 b/ippisite/db.sqlite3
index bb7ca110e188bf4d34171a62e5c4e6f6eda80691..418ffe91ef59f6e2db941d723da526c109b5b5f5 100644
GIT binary patch
delta 756
zcmaiy!B5k06vtP_$`%<v7NRj?pk#P3%k<Y@e{C6JVr|_V$**&=ZtD`G+i<KMg|QLl
z8WV_4ybu+4FnUm8yc4q+?s_r&3wj_PIKp3Ga10eL#>2aO-sio%Z}L`ln3Wyo#UM4Y
zeqMG>ID$VHK2C28JI{Kv%^v1*mp9vzn2X-i1Cld98RfDuox5ADTh{%>O5M|13O>vA
z)9y7#-)C>5H+;(N*><nB2OhYWA6=ncq~VgPY)vrGTvg0LY@1~h^Y!_;yeJ@HNigQK
zEU|U0qbOF**`jWiP%Nb(lE~N8#0;mJNkd1IR>sn5u?VS=6v28T4vAeBqqCvnbo%yu
znoHW5^kg9$3ENpYDnu>9>PUwiv1hoLQY@)R!>Xbq)mF`n60fUf*d&&Y)l||VN*od8
zMol;K&GmN!&G6eh!*+BIUPX`<gOCq$kYPjPJQ|0>B_4)gNNjDt9;bV0;CFy6@Dh9n
z{#M_{0Jt#fB-H=1(yg1D@Y+-rSIS}qsf8u2GFrsKY$R7Gr4qTqq7<t{@})5?qe-=}
zm0l>;r!rbWmIE37*7f+`t61UqDlCX&Jlh=EAAG#K|7v%i8tSJ(!~uSQFW>`s0tz6~
z^4;Trf5<6O|Bgi;wwrrz&OL1$Q0?k!mvgIe(7nQ(@qnZQ?169KEBFN7gXiEOFhH`s
zbpkB=JlzhTU*Q#=`STV&_aTyb`2_0eSXjZw7TvM1d;+;T7N>B>R(HqZ<P*r*v5<n=
jR^aFpeO(<5$%pI+^;2y$B28s~10%l*U8|5@g+0FjnuXvT

delta 252
zcmZp8pwRF@VS+TH{zMsPR(%HDXWSc87RWP;^Oj9!SJ2-qnBc&>xlFe&iI0`@6a(KO
z-WDD=ZVt{<n;jK)aBe;|(~6CYmEVJbe>?vq{yUom76|iC4p30v?6Ka!A=tn&qCD8y
z(Ih#oB1<LE&&#4b!^tbpF(ooczqDN6-^0h()v!R{*uuoABrU?S*gGY;%rQU9Bhc2!
zz|dURz*yJNSi#WD%D~vl*g((F)Xdn>VzT0U>E>ter$2koD96XjpT@xdi2pGE68={H
zG@w&M_*vwb9T_LTn<drW@}CiinShvid&_^828G2e4Fc^f2CP8Lww=X*{m*{@-Oy1}

diff --git a/ippisite/ippidb/admin.py b/ippisite/ippidb/admin.py
index 84f01827..516d2719 100644
--- a/ippisite/ippidb/admin.py
+++ b/ippisite/ippidb/admin.py
@@ -28,6 +28,10 @@ class ProteinDomainPartnerComplexAdmin(admin.ModelAdmin):
     list_display = ('protein_id', 'domain_id', 'ppc_copy_nb')
     list_display_links = ('protein_id', 'domain_id', 'ppc_copy_nb')
 
+@admin.register(Symmetry)
+class Symmetry(admin.ModelAdmin):
+    list_display = ('code', 'description')
+
 for model in apps.get_app_config('ippidb').models.values():
     try:
         admin.site.register(model)
diff --git a/ippisite/ippidb/management/commands/import_v1_data.py b/ippisite/ippidb/management/commands/import_v1_data.py
index 7de942bf..e2dfc077 100644
--- a/ippisite/ippidb/management/commands/import_v1_data.py
+++ b/ippisite/ippidb/management/commands/import_v1_data.py
@@ -2,7 +2,7 @@ from django.core.management import BaseCommand, CommandError
 import mysql.connector
 
 from ippidb.models import Bibliography, Protein, Taxonomy, MolecularFunction, \
-    Domain, ProteinDomainBoundComplex, ProteinDomainPartnerComplex
+    Domain, ProteinDomainBoundComplex, ProteinDomainPartnerComplex, Symmetry
 
 class Command(BaseCommand):
 
@@ -37,6 +37,13 @@ class Command(BaseCommand):
             default=False,
             help='Flush and migrate complexes',
         )
+        parser.add_argument(
+            '--symmetries',
+            action='store_true',
+            dest='symmetries',
+            default=False,
+            help='Flush and create symmetries',
+        )
         parser.add_argument(
             '--stoponfail',
             action='store_true',
@@ -142,3 +149,33 @@ class Command(BaseCommand):
                         self.stdout.write(self.style.ERROR('Failed inserting {} {}'.format(row[0], row[1])))
                 else:
                     self.stdout.write(self.style.SUCCESS('Successfully inserted {} {}'.format(row[0], row[1])))
+        if options['symmetries']:
+            Symmetry.objects.all().delete()
+            self.stdout.write(self.style.SUCCESS('Successfully flushed symmetries table'))
+            rows = [
+                    ['AS', 'asymmetric'],
+                    ['C2', 'C2 symmetry'],
+                    ['D2', 'D2 symmetry'],
+                    ['C3', 'C3 symmetry'],
+                    ['D3', 'D3 symmetry'],
+                    ['C4', 'C4 symmetry'],
+                    ['D4', 'D4 symmetry'],
+                    ['C5', 'C5 symmetry'],
+                    ['D5', 'D5 symmetry'],
+            ]
+            for row in rows:
+                try:
+                    symmetry = Symmetry()
+                    symmetry.code = row[0]
+                    symmetry.description = row[1]
+                    symmetry.save()
+                except Exception as e:
+                    if options['stoponfail']:
+                        import traceback
+                        self.stderr.write(traceback.format_exc())
+                        raise CommandError('Failed inserting {} {}'.format(row[0], row[1]))
+                    else:
+                        self.stdout.write(self.style.ERROR('Failed inserting {} {}'.format(row[0], row[1])))
+                else:
+                    self.stdout.write(self.style.SUCCESS('Successfully inserted {} {}'.format(row[0], row[1])))
+            
-- 
GitLab