diff options
author | heather <unknown> | 2011-05-11 21:55:18 -0400 |
---|---|---|
committer | heather <unknown> | 2011-05-11 21:55:18 -0400 |
commit | 3a0baa99e1cb44a719c761f4d0eece44362fe82a (patch) | |
tree | 2d1363640b2dded9fa2f0d58bb50ac6a2a1b5ebb | |
parent | 6b527753a5a691c9daf52ded10cf4cf515d83f47 (diff) | |
download | d2-3a0baa99e1cb44a719c761f4d0eece44362fe82a.tar.bz2 d2-3a0baa99e1cb44a719c761f4d0eece44362fe82a.tar.xz d2-3a0baa99e1cb44a719c761f4d0eece44362fe82a.zip |
more cleanup
-rw-r--r-- | lib/d2/bin/d2_svg_processor.py | 32 |
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 | |||
4 | import stat | 4 | import stat |
5 | import re | 5 | import re |
6 | import xlrd | 6 | import xlrd |
7 | from collections import namedtuple | ||
7 | from lxml import etree | 8 | from lxml import etree |
8 | from copy import deepcopy | 9 | from copy import deepcopy |
9 | from copy import copy | 10 | from copy import copy |
10 | from sqlalchemy import MetaData | 11 | from sqlalchemy import MetaData |
11 | from d2.app.adapters.detail import DetailAdapter | 12 | from d2.app.adapters.detail import DetailAdapter |
13 | from d2.app.adapters.search import SearchAdapter | ||
12 | from d2.app.adapters.forge import ForgeAdapter | 14 | from d2.app.adapters.forge import ForgeAdapter |
13 | from d2.app.model.static import StaticData | 15 | from d2.app.model.static import StaticData |
14 | from d2.config import Config | 16 | from 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 | |||
75 | floor_plan_data = {} | 79 | floor_plan_data = {} |
76 | 80 | ||
77 | ntwk_number_data = {} | 81 | ntwk_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() |