Ejemplo n.º 1
0
 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()
Ejemplo n.º 2
0
 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())