def _fromSpreadsheetEntry(self, data, session): model = Tracks_SiteMap.MASTER sitemap = model() filename = data.get(SitemapCsvColumnEnum.FILENAME.name, u'') sitemap.name = Tracks_SiteMap.getNameFromFilename(filename) sitemap.level = Tracks_SiteMap.getLevelFromFilename(filename) sitemap.index = int(data[SitemapCsvColumnEnum.INDEX.name]) sitemap.filename = filename sitemap.federalNorth = float(data.get(SitemapCsvColumnEnum.FEDERAL_NORTH.name, 0)) sitemap.federalEast = float(data.get(SitemapCsvColumnEnum.FEDERAL_EAST.name, 0)) sitemap.left = float(data.get(SitemapCsvColumnEnum.LEFT.name, 0)) sitemap.top = float(data.get(SitemapCsvColumnEnum.TOP.name, 0)) sitemap.width = float(data.get(SitemapCsvColumnEnum.WIDTH.name, 0)) sitemap.height = float(data.get(SitemapCsvColumnEnum.HEIGHT.name, 0)) sitemap.xFederal = float(data.get(SitemapCsvColumnEnum.FEDERAL_X.name, 0)) sitemap.yFederal = float(data.get(SitemapCsvColumnEnum.FEDERAL_Y.name, 0)) sitemap.xTranslate = float(data.get(SitemapCsvColumnEnum.TRANSLATE_X.name, 0)) sitemap.zTranslate = float(data.get(SitemapCsvColumnEnum.TRANSLATE_Z.name, 0)) sitemap.xRotate = float(data.get(SitemapCsvColumnEnum.ROTATE_X.name, 0)) sitemap.yRotate = float(data.get(SitemapCsvColumnEnum.ROTATE_Y.name, 0)) sitemap.zRotate = float(data.get(SitemapCsvColumnEnum.ROTATE_Z.name, 0)) sitemap.scale = float(data.get(SitemapCsvColumnEnum.SCALE.name, 0)) session.add(sitemap) self._log.write(u'<div>CREATED: %s "%s"</div>' % (sitemap.index, sitemap.filename)) return sitemap
from cadence.models.tracks.Tracks_Trackway import Tracks_Trackway from cadence.models.tracks.Tracks_SiteMap import Tracks_SiteMap #--------------------------------------------------------------------------------------------------- # SITEMAP TABLE UPDATE # All sitemaps must have their name and level fields set for the trackway population script # to work. Since the name and level fields were not part of the original sitemap table # structure this section populates any values that haven't been updated to include these # values since the migration to the new table structure. model = Tracks_SiteMap.MASTER session = model.createSession() for sm in session.query(model).filter(sqla.or_(model.name == '', model.level == '')).all(): sm.name = Tracks_SiteMap.getNameFromFilename(sm.filename) sm.level = Tracks_SiteMap.getLevelFromFilename(sm.filename) session.commit() session.close() #--------------------------------------------------------------------------------------------------- # TRACKWAY POPULATION # All existing trackway entries are removed from the table and new ones created for any # trackway found by searching for distinct track series using Tracks_Track.next field to # iterate over track series Tracks_Trackway.populateTrackwaysTable() model = Tracks_Trackway.MASTER session = model.createSession()