def save(self, xmlinput, user): if not xmlinput: return -1 """Initialize using an XML document passed as a string.""" root = ET.fromstring(xmlinput) if root.tag == '{http://www.topografix.com/GPX/1/0}gpx': gpxversion = utils.version_old utils.gpxns = utils.ns_old elif root.tag == '{http://www.topografix.com/GPX/1/1}gpx': gpxversion = utils.version_new utils.gpxns = utils.ns_new else: logging.info('toroam.com error: GPX File read - not valid GPX file') # raise exception here return -1 logging.info("toroam.com: GPX file received with version %s", gpxversion) gpxcreator = root.get('creator') uquery = db.Query(ToroamUsers) uquery.filter('userid =', user) dbuser = uquery.get() #TODO check return of query that it is 1 n = GPXheader(creator=gpxcreator, owner=dbuser, version=str(gpxversion), status=utils.status_draft) n.privacy = utils.privacy_private n.authoremail = dbuser.userid n.put() # go through elements here notrks = 0 nowpts = 0 nortes = 0 for xelement in root: logging.info("toroam.com: childs %s %s", xelement.tag, xelement.attrib) if xelement.tag == utils.gpxtrk_elementname: notrks += 1 self.gpxtrk(n, xelement, notrks) elif xelement.tag == utils.gpxrte_elementname: nortes += 1 self.gpxrte(n, xelement, nortes) elif xelement.tag == utils.gpxwpt_elementname: nowpts += 1 self.gpxwpt(n, xelement, nowpts) elif xelement.tag == utils.gpxmeta_elementname: self.gpxmeta(n, xelement) else: #set extensions logging.info("toroam.com: found extensions at root level") n.put() return n.key().id()
def post(self): cuser = UserMgmt() user = cuser.get() n = GPXheader(creator=self.request.get('creator'), title=self.request.get('title'), description=self.request.get('description'), owner=user, priority=self.request.get('priority')) n.status = utils.status_draft n.version = utils.version_new n.privacy = utils.privacy_private n.put() logging.info('toroam.com: GPX created with id %s', n.key().id()) return webapp2.redirect('/edit/%s' % n.key().id())