aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorheather <unknown>2011-05-11 21:55:18 -0400
committerheather <unknown>2011-05-11 21:55:18 -0400
commit3a0baa99e1cb44a719c761f4d0eece44362fe82a (patch)
tree2d1363640b2dded9fa2f0d58bb50ac6a2a1b5ebb
parent6b527753a5a691c9daf52ded10cf4cf515d83f47 (diff)
downloadd2-3a0baa99e1cb44a719c761f4d0eece44362fe82a.tar.bz2
d2-3a0baa99e1cb44a719c761f4d0eece44362fe82a.tar.xz
d2-3a0baa99e1cb44a719c761f4d0eece44362fe82a.zip
more cleanup
-rw-r--r--lib/d2/bin/d2_svg_processor.py32
1 files changed, 21 insertions, 11 deletions
diff --git a/lib/d2/bin/d2_svg_processor.py b/lib/d2/bin/d2_svg_processor.py
index 3e59a4b..97c6801 100644
--- a/lib/d2/bin/d2_svg_processor.py
+++ b/lib/d2/bin/d2_svg_processor.py
@@ -4,11 +4,13 @@ import json
4import stat 4import stat
5import re 5import re
6import xlrd 6import xlrd
7from collections import namedtuple
7from lxml import etree 8from lxml import etree
8from copy import deepcopy 9from copy import deepcopy
9from copy import copy 10from copy import copy
10from sqlalchemy import MetaData 11from sqlalchemy import MetaData
11from d2.app.adapters.detail import DetailAdapter 12from d2.app.adapters.detail import DetailAdapter
13from d2.app.adapters.search import SearchAdapter
12from d2.app.adapters.forge import ForgeAdapter 14from d2.app.adapters.forge import ForgeAdapter
13from d2.app.model.static import StaticData 15from d2.app.model.static import StaticData
14from d2.config import Config 16from d2.config import Config
@@ -70,8 +72,10 @@ NAME_CORRECTIONS = {u'Deb Smith': u'Deborah Smith',
70 u'Jane Carpenter-Lamb': u'Jane Carpenter', 72 u'Jane Carpenter-Lamb': u'Jane Carpenter',
71 u'Nanette Weidl': u'Nanette Wiedl', 73 u'Nanette Weidl': u'Nanette Wiedl',
72 u'Kathi Fai': u'Kathi Fay', 74 u'Kathi Fai': u'Kathi Fay',
75 u'Sally Babcock': u'Sally Schriner',
73 u'Brian Staneck': u'Brian Stanek'} 76 u'Brian Staneck': u'Brian Stanek'}
74 77
78
75floor_plan_data = {} 79floor_plan_data = {}
76 80
77ntwk_number_data = {} 81ntwk_number_data = {}
@@ -168,7 +172,7 @@ class ParseFloorPlanXLS(object):
168 "in room {1}" 172 "in room {1}"
169 173
170 def __init__(self): 174 def __init__(self):
171 pass 175 self._make = namedtuple('cubeInfo', 'name net_jack1 net_jack2')
172 176
173 def _determine_room(self, s): 177 def _determine_room(self, s):
174 """@params s: spread sheet's name, such as "QA 3A1" contains 178 """@params s: spread sheet's name, such as "QA 3A1" contains
@@ -194,9 +198,9 @@ class ParseFloorPlanXLS(object):
194 log_obj.error(self.MULTIPLE_RECORD_ERROR.format(cube, 198 log_obj.error(self.MULTIPLE_RECORD_ERROR.format(cube,
195 room_name)) 199 room_name))
196 else: 200 else:
197 floor_plan_data[room_name][cube] = {'name': name, 201 floor_plan_data[room_name][cube] = self._make(name,
198 'net_jack1': net_jack1, 202 net_jack1,
199 'net_jack2': net_jack2} 203 net_jack2)
200 204
201 def __call__(self, args): 205 def __call__(self, args):
202 wb = xlrd.open_workbook(args.master_spreadsheet) 206 wb = xlrd.open_workbook(args.master_spreadsheet)
@@ -740,13 +744,13 @@ class PopulateTables(object):
740 744
741 def _find_occupant_id(self, info): 745 def _find_occupant_id(self, info):
742 occupant_id = None 746 occupant_id = None
743 if info['name'] == "Open": 747 if info.name == "Open":
744 empty = self._db.session.query(Occupant).filter( 748 empty = self._db.session.query(Occupant).filter(
745 "occupant_type_id=:occupant_type_id").params( 749 "occupant_type_id=:occupant_type_id").params(
746 occupant_type_id=self._static.occupant_type.empty).first() 750 occupant_type_id=self._static.occupant_type.empty).first()
747 occupant_id = empty.id 751 occupant_id = empty.id
748 else: 752 else:
749 (first_name, last_name) = self._get_first_last_name(info['name']) 753 (first_name, last_name) = self._get_first_last_name(info.name)
750 records = self._detail_adapter.fetch_detail_by_type_data( 754 records = self._detail_adapter.fetch_detail_by_type_data(
751 self._static.detail_type.last_name, 755 self._static.detail_type.last_name,
752 last_name) 756 last_name)
@@ -761,21 +765,26 @@ class PopulateTables(object):
761 occupant_id = rec.occupant_id 765 occupant_id = rec.occupant_id
762 break 766 break
763 767
768 # last resort try to do a search
769 if not occupant_id:
770 detail = self._search_adapter.search(info.name)
771 if len(detail) == 1:
772 occupant_id = detail[0].id
773
764 if not occupant_id: 774 if not occupant_id:
765 self._log_obj.error(self.NO_OCCUPANT_DETAIL.format(info['name'])) 775 self._log_obj.error(self.NO_OCCUPANT_DETAIL.format(info.name))
766 776
767 return occupant_id 777 return occupant_id
768 778
769 def _add_ntwk_jacks(self, plot_id, info): 779 def _add_ntwk_jacks(self, plot_id, info):
770 if info and info.get('net_jack1'): 780 if info:
771 self._detail_adapter.insert_plot_detail(plot_id, 781 self._detail_adapter.insert_plot_detail(plot_id,
772 self._static.detail_type.network_jack, 782 self._static.detail_type.network_jack,
773 info['net_jack1']) 783 info.net_jack1)
774 784
775 if info and info.get('net_jack2'):
776 self._detail_adapter.insert_plot_detail(plot_id, 785 self._detail_adapter.insert_plot_detail(plot_id,
777 self._static.detail_type.network_jack, 786 self._static.detail_type.network_jack,
778 info['net_jack2']) 787 info.net_jack2)
779 788
780 def __call__(self, args): 789 def __call__(self, args):
781 self._config = args.config 790 self._config = args.config
@@ -784,6 +793,7 @@ class PopulateTables(object):
784 self._static = StaticData.load(self._db)() 793 self._static = StaticData.load(self._db)()
785 self._detail_adapter = DetailAdapter.load(self._config) 794 self._detail_adapter = DetailAdapter.load(self._config)
786 self._forge_adapter = ForgeAdapter.load(self._config) 795 self._forge_adapter = ForgeAdapter.load(self._config)
796 self._search_adapter = SearchAdapter.load(self._config)
787 797
788 # clean up database records from previous run 798 # clean up database records from previous run
789 self._drop_tables() 799 self._drop_tables()