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
Example #2
0
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()