Esempio n. 1
0
 def post(self, trailId = None):
     
     if(trailId is None):
         try:
             uploadedFiles = self.get_uploads('file')  # 'file' is file upload field in the form
             blobInfo = uploadedFiles[0]
             blobReader = blobInfo.open()
             
             parser = KmlParser()
             trailInfo = parser.parseKml(blobReader)
             logging.debug(trailInfo)
             blobInfo.delete()
             
             #parse tags, if any. It is assumed that they are separated by commas.
             tags = self.request.get('tags').split(',')
                 
             #store entry
             entry = Trail(title = self.request.get('title'),
                             militaryMap = self.request.get('militaryMap'),
                             nearestCity = self.request.get('nearestCity'),
                             timeDurationHours = self.request.get('timeDurationHours'),
                             extension = trailInfo['extension'],
                             slope = trailInfo['slope'],
                             startPoint = trailInfo['startPoint'],
                             points = simplejson.dumps(trailInfo['points']))
             entry.put()
             self.redirect('/trails')
         except:
             logging.exception("Unexpected creating trail: %s", sys.exc_info()[0])
             self.error(500)
     
     else:
         self._updateTrail(trailId)
Esempio n. 2
0
 def get(self):
     #Get the latest N trails
     numTrails = self.request.get("n") if self.request.get("n") else self.defaultNum
     trails = Trail.query().order(Trail.creationDate)
     
     if(self.request.get("remote") and self.request.get("callback")):
         #JSONP request. Render the content as json and wrap it in a function call
         trails = map(self._jsonEncoder, trails)
         jsonpContent = self.request.get("callback") + "(" + simplejson.dumps(trails) + ")"
         self.response.headers["Content-Type"] = "text/javascript"
         self.response.out.write(jsonpContent)    		
     elif(self.request.headers['accept'] in ["application/json", "text/json"]):
         #Ajax request. Dump the list as json
         trails = map(self._jsonEncoder, trails)
         self.response.headers["Content-Type"] = "application/json"
         self.response.out.write(trails)
     else:
         #render the default view
         path = os.path.join('default/', 'trails.html')
         uploadUrl = blobstore.create_upload_url('/trail')
         logging.warning("Upload url: " + self.request.get('link'))
         context = {'trails': trails, 'uploadUrl': uploadUrl, 'logoutUrl': users.create_logout_url("/"), 'dialogId': "newTrailDialog", 'formId': "newTrailForm" }
         self.render_template(path, **context)