def post(self): user = users.get_current_user() user_prefs = UserPrefs.all().filter('google_account =', user).get() if user_prefs is None: return self.error(404) mode = self.request.get('mode') if mode == 'add': name = self.request.get('name') icon = self.request.get('icon') marker_icon = MarkerIcon() marker_icon.name = name marker_icon.icon = db.Blob(icon) marker_icon.user_prefs = user_prefs.key() marker_icon.visible = True marker_icon.put() elif mode == 'delete': id = self.request.get('id') marker_icon = MarkerIcon.get_by_id(int(id)) if marker_icon is not None: marker_icon.visible = False marker_icon.put() self.redirect('/user/icon')
def post(self, map_id): user = users.get_current_user() if user is None: return self.redirect(users.create_login_url(self.request.uri)) user_prefs = UserPrefs.all().filter('google_account =', user).get() if user_prefs is None: return self.redirect('/map/%s' % map_id) user_maps = UserMaps.all().filter('map_id =', map_id).filter('visible =', True).filter('user_prefs =', user_prefs.key()).get() if user_maps is None: return self.redirect('/map/%s' % map_id) mode = self.request.get('mode') if mode == 'set_home': lat = self.request.get('lat') lng = self.request.get('lng') user_maps.home_geo = db.GeoPt(lat, lon=lng) user_maps.put() elif mode == 'set_marker': name = self.request.get('name') tags = self.request.get('tags') icon = self.request.get('icon') marker_icon = None if icon != '': marker_icon = MarkerIcon.get_by_id(int(icon)) tags = tags.replace(u'、', ',').replace(' ', ',').replace(u' ', ',') lat = self.request.get('lat') lng = self.request.get('lng') user_activity = UserActivity() user_activity.name = name user_activity.tags = tags user_activity.geo = db.GeoPt(lat, lon=lng) user_activity.user_prefs = user_prefs.key() user_activity.user_maps = user_maps.key() if marker_icon is not None: user_activity.icon = marker_icon.key() user_activity.put() try: taskqueue.add(url='/task/build_tag_index', params={'map_id': map_id}) except: logging.error('Taskqueue add failed.') elif mode == 'delete': user_maps.visible = False user_maps.put() return self.redirect('/user/home') return self.redirect('/map/%s' % map_id)
def post(self, map_id): user_maps = UserMaps.all().filter('visible =', True).filter('map_id =', map_id).get() if user_maps is None: return self.error(404) marker_id = self.request.get('marker_id') user = users.get_current_user() user_activity = UserActivity.get_by_id(int(marker_id)) if user_activity is None: return self.error(404) if user_activity.user_prefs.google_account != user: return self.redirect('/map/%s' % map_id) name = self.request.get('name') tags = self.request.get('tags') icon = self.request.get('icon') marker_icon = None if icon != '': marker_icon = MarkerIcon.get_by_id(int(icon)) tags = tags.replace(u'、', ',').replace(' ', ',').replace(u' ', ',') lat = self.request.get('lat') lng = self.request.get('lng') user_activity.name = name user_activity.tags = tags user_activity.geo = db.GeoPt(lat, lon=lng) if marker_icon is not None: user_activity.icon = marker_icon.key() user_activity.put() memcache.delete('marker_data_%s' % marker_id) self.redirect('/map/%s' % map_id)
def get(self): image_key = self.request.get('id') logging.info('image_key: %s' % image_key) if image_key == '': return self.error(404) thumbnail = memcache.get('cached_icon_%s' % image_key) if thumbnail is None: marker_icon = MarkerIcon.get_by_id(int(image_key)) if marker_icon is None: return self.error(404) thumbnail = marker_icon.icon memcache.add('cached_icon_%s' % image_key, thumbnail, 3600) logging.info('Image from DB. image_key: %s' % image_key) else: logging.info('Image from memcache. image_key: %s' % image_key) self.response.headers['Content-Type'] = 'image/png' self.response.out.write(thumbnail)