From e397e96dabbbef8fb6052cf4675bd51c1a10fd40 Mon Sep 17 00:00:00 2001
From: Matthew Dillon <mrdillon@alaska.edu>
Date: Sat, 30 Jan 2016 15:54:10 -0700
Subject: [PATCH] Fixing storage location code

---
 ccdb/locations/admin.py                       | 11 +++++------
 ccdb/locations/migrations/0001_initial.py     |  1 +
 ccdb/locations/models.py                      | 12 ++----------
 ccdb/utils/management/commands/import_data.py | 10 +++++++++-
 4 files changed, 17 insertions(+), 17 deletions(-)

diff --git a/ccdb/locations/admin.py b/ccdb/locations/admin.py
index 35cb96b..ac78f53 100644
--- a/ccdb/locations/admin.py
+++ b/ccdb/locations/admin.py
@@ -68,17 +68,16 @@ class StudyLocationAdmin(admin.ModelAdmin):
 
 
 class StorageLocationAdmin(admin.ModelAdmin):
-    list_display = ('__str__', 'facility', 'building', 'room', 'freezer', 'temp_c',
+    list_display = ('code', 'facility', 'building', 'room', 'freezer', 'temp_c',
         'description', 'sort_order')
-    list_display_links = ('__str__',)
-    search_fields = ('facility', 'building', 'room', 'freezer', 'temp_c',
-        'description')
+    list_display_links = ('code',)
+    search_fields = ('code', 'facility', 'building', 'room', 'freezer',
+        'temp_c', 'description')
     list_per_page = 25
-    fields = ('facility', 'building', 'room', 'freezer', 'temp_c',
+    fields = ('code', 'facility', 'building', 'room', 'freezer', 'temp_c',
         'description', 'sort_order')
 
 
-
 admin.site.register(Region, RegionAdmin)
 admin.site.register(Site, SiteAdmin)
 admin.site.register(MunicipalLocation, MunicipalLocationAdmin)
diff --git a/ccdb/locations/migrations/0001_initial.py b/ccdb/locations/migrations/0001_initial.py
index ddde8c0..f75adf8 100644
--- a/ccdb/locations/migrations/0001_initial.py
+++ b/ccdb/locations/migrations/0001_initial.py
@@ -60,6 +60,7 @@ class Migration(migrations.Migration):
                 ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
                 ('facility', models.CharField(max_length=100)),
                 ('building', models.CharField(max_length=100)),
+                ('code', models.CharField(max_length=100)),
                 ('room', models.CharField(max_length=50, blank=True)),
                 ('freezer', models.CharField(max_length=50, blank=True)),
                 ('temp_c', models.IntegerField(null=True, blank=True)),
diff --git a/ccdb/locations/models.py b/ccdb/locations/models.py
index f91569f..eeb42d8 100644
--- a/ccdb/locations/models.py
+++ b/ccdb/locations/models.py
@@ -70,6 +70,7 @@ class StudyLocation(models.Model):
 
 
 class StorageLocation(models.Model):
+    code = models.CharField(max_length=100)
     facility = models.CharField(max_length=100)
     building = models.CharField(max_length=100)
     room = models.CharField(max_length=50, blank=True)
@@ -79,16 +80,7 @@ class StorageLocation(models.Model):
     sort_order = models.IntegerField(blank=True, null=True)
 
     def __str__(self):
-        bldg = "".join(e[0].upper() for e in self.building.split())
-        temp_c = '20'
-        if self.temp_c:
-            temp_c = self.temp_c
-
-        freezer = 'No Freezer'
-        if self.freezer:
-            freezer = self.freezer
-
-        return " ".join([bldg, str(temp_c)+'C', str(freezer)])
+        return self.code
 
     class Meta:
         ordering = ['sort_order']
diff --git a/ccdb/utils/management/commands/import_data.py b/ccdb/utils/management/commands/import_data.py
index 99d4f51..72ce6cb 100644
--- a/ccdb/utils/management/commands/import_data.py
+++ b/ccdb/utils/management/commands/import_data.py
@@ -139,7 +139,15 @@ def _import_data():
 
         # Storage Location
         for r in c.execute('SELECT * FROM tbl_lu_storage_locations;'):
+            bldg = "".join(e[0].upper() for e in r[2].split())
+            temp_c = '20'
+            if r[5]:
+                temp_c = r[5]
+            freezer = 'No Freezer'
+            if r[4]:
+                freezer = r[4]
+            code = " ".join([bldg, str(temp_c)+'C', str(freezer)])
             sl = StorageLocation(id=r[0], facility=r[1], building=r[2],
-                room=r[3], freezer=r[4], temp_c=r[5],
+                room=r[3], freezer=r[4], temp_c=r[5], code=code,
                 description=r[6], sort_order=r[7])
             sl.save()