def AuthenticatedGet(self, org, event): site_proj = db.Query(Site, projection=('county', 'state'), distinct=True).filter('event', event) counties_and_states = { site.county_and_state: (site.county, site.state) for site in site_proj } Form = create_site_filter_form(counties_and_states) form = Form(self.request.GET) if not form.validate(): form = Form() # => use defaults # construct query query = Site.all().filter('event', event.key()) if form.county_and_state.data: county, state = counties_and_states[form.county_and_state.data] query = query.filter('county', county).filter('state', state) if form.order.data: query = query.order(form.order.data) # run query sites = list( query.run(offset=form.page.data * self.SITES_PER_PAGE, limit=self.SITES_PER_PAGE)) self.response.out.write( template.render( dict( page_db.get_page_block_dict(), **{ "form": form, "sites": sites, "sites_per_page": self.SITES_PER_PAGE, })))
def AuthenticatedGet(self, org, event): site_proj = db.Query( Site, projection=('county', 'state'), distinct=True ).filter('event', event) counties_and_states = { site.county_and_state : (site.county, site.state) for site in site_proj } Form = create_site_filter_form(counties_and_states) form = Form(self.request.GET) if not form.validate(): form = Form() # => use defaults # construct query query = Site.all().filter('event', event.key()) if form.county_and_state.data: county, state = counties_and_states[form.county_and_state.data] query = query.filter('county', county).filter('state', state) if form.order.data: query = query.order(form.order.data) # run query sites = list(query.run( offset=form.page.data * self.SITES_PER_PAGE, limit=self.SITES_PER_PAGE )) self.response.out.write(template.render(dict( page_db.get_page_block_dict(), **{ "form": form, "sites": sites, "sites_per_page": self.SITES_PER_PAGE, })))
def get_base_query(self): query = Site.all() if self.filtering_event_key: query.filter('event', Event.get(self.filtering_event_key)) return query