def query_from_form(org, event, form, projection=None, distinct=None): # start query based on admin type if org.is_global_admin: query = Query(Site, projection=projection, distinct=distinct) elif org.is_local_admin: if projection is not None or distinct is not None: raise Exception("Not currently supported for local admin") query = Query(Site).filter('event in', [ incident.key() for incident in org.incidents ]) else: raise Exception("Not an admin") # if a local admin, filter to logged in event if org.is_local_admin: query.filter('event', event.key()) # apply filters if set if form.event.data: query.filter('event', Key(form.event.data)) if form.reporting_org.data: query.filter('reported_by', Key(form.reporting_org.data)) if form.claiming_org.data: query.filter('claimed_by', Key(form.claiming_org.data)) if form.work_type.data: query.filter('work_type', form.work_type.data) if form.status.data: query.filter('status', form.status.data) # apply order if form.order.data: query.order(form.order.data) return query
def get(self): # List Cities citylist = {} cities = City.all() for city in cities: citylist[city.Name] = {0:abs(hash(city.Name)),1:[]} for station in city.station_set: data = {'Name':station.Name} query = Query(AQIData) query.filter('Station =', station.Code) query.order('-Date') query.run() aqi = query.get() data['AQI'] = aqi.AQI data['Level'] = aqi.AQILevel data['Assess'] = aqi.AQIAssess data['Majority'] = aqi.Majority data['Date'] = aqi.Date citylist[city.Name][1].append(data) # logging.info(str(citylist)) #----generate parameter list---------------------------------------------------------------------- template_values = { 'citylist' : citylist, } path = os.path.join(os.path.dirname(__file__), './/template//citylist.html') #----end------------------------------------------------------------------------------------------ self.response.out.write(template.render(path,template_values))
def get(self): MEMCACHE_KEY = "yw4ct7ntqzh93ioqaxif" path_info = self.request.path_info.split("/") debug("PATH_INFO = %s" % path_info) client = memcache.Client() LIMIT = 100 if len(self.request.get("clear")) != 0: client.delete(MEMCACHE_KEY) template_values = {} template_values["all_raw_data"] = [] old_key_list = client.get(MEMCACHE_KEY) if old_key_list is None: old_key_list = [] query = Query(RawData, keys_only=True) query.order("-rawDataId") new_key_list = [] count = 0 for key_in_query in query: count += 1 if count >= LIMIT: break if key_in_query in old_key_list: break new_key_list.append(key_in_query) all_key_list = new_key_list + old_key_list all_key_list = all_key_list[:LIMIT] client.set(MEMCACHE_KEY, all_key_list, 15) else: all_key_list = old_key_list for key_in_list in all_key_list: raw_data = client.get(str(key_in_list)) if not isinstance(raw_data, RawData): raw_data_list = RawData.get([key_in_list]) if len(raw_data_list) != 1: continue raw_data = raw_data_list[0] if not isinstance(raw_data, RawData): continue client.set(str(key_in_list), raw_data) if not isinstance(raw_data, RawData): continue raw_data_dict = { "rawDataId": raw_data.rawDataId, "path": raw_data.path, "parameters": raw_data.parameters, "query": raw_data.query, "fragment": raw_data.fragment, "body": raw_data.body } #logging.info(raw_data_dict) template_values["all_raw_data"].append(raw_data_dict) self.writeWithTemplate(template_values, "RawData")
def get(self): MEMCACHE_KEY = "yw4ct7ntqzh93ioqaxif" path_info = self.request.path_info.split("/") debug("PATH_INFO = %s" % path_info) client = memcache.Client() LIMIT = 100 if len(self.request.get("clear")) != 0: client.delete(MEMCACHE_KEY) template_values = {} template_values["all_raw_data"] = [] old_key_list = client.get(MEMCACHE_KEY) if old_key_list is None: old_key_list = [] query = Query(RawData, keys_only=True) query.order("-rawDataId") new_key_list = [] count = 0 for key_in_query in query: count += 1 if count >= LIMIT: break if key_in_query in old_key_list: break new_key_list.append(key_in_query) all_key_list = new_key_list + old_key_list all_key_list = all_key_list[:LIMIT] client.set(MEMCACHE_KEY, all_key_list, 15) else: all_key_list = old_key_list for key_in_list in all_key_list: raw_data = client.get(str(key_in_list)) if not isinstance(raw_data, RawData): raw_data_list = RawData.get([key_in_list]) if len(raw_data_list) != 1: continue raw_data = raw_data_list[0] if not isinstance(raw_data, RawData): continue client.set(str(key_in_list), raw_data) if not isinstance(raw_data, RawData): continue raw_data_dict = {"rawDataId": raw_data.rawDataId, "path":raw_data.path, "parameters": raw_data.parameters, "query": raw_data.query, "fragment":raw_data.fragment, "body": raw_data.body } #logging.info(raw_data_dict) template_values["all_raw_data"].append(raw_data_dict) self.writeWithTemplate(template_values, "RawData")
def get(self): # get city id city_id = self.request.get('city','') try: city_id = int(city_id) except: city_id = 0 if city_id == 0: # no city? --> show city list citylist = {} cities = City.all() for city in cities: citylist[city.Name] = [city.Code,abs(hash(city.Name))] #----generate parameter list---------------------------------------------------------------------- template_values = { 'citylist' : citylist, 'stationlist' : None } path = os.path.join(os.path.dirname(__file__), './/template//citylist_all.html') #----end------------------------------------------------------------------------------------------ self.response.out.write(template.render(path,template_values)) else: # show station plots stationlist = {} query = Query(City) query.filter('Code =', city_id) query.run() city = query.get() for station in city.station_set: data = [] query = Query(AQIData) query.filter('Station =', station.Code) query.order('-Date') query.run() aqi = query.fetch(None) for entry in aqi: data.append("['%s',%d]" % (str(entry.Date),entry.AQI)) stationlist[station.Name] = ','.join(data) #----generate parameter list---------------------------------------------------------------------- template_values = { 'citylist' : None, 'stationlist' : stationlist } path = os.path.join(os.path.dirname(__file__), './/template//citylist_all.html') #----end------------------------------------------------------------------------------------------ self.response.out.write(template.render(path,template_values))