class diseaseList(AppRequestHandler): """Present a unique list of diseases, each disease linking to a page listing the studies reporting on those diseases""" def __init__(self, *args, **kwargs): super(diseaseList, self).__init__(*args, **kwargs) self._template = "baserender.html" self.diseasequery = PagedQuery(Disease.all(), 30) self.count = self.diseasequery.page_count() def get(self): # if we need to myfilter later on.. myfilter = self.request.get("filter", "") # returns name of disease to myfilter on if myfilter != "": diseases = Disease.search_todict('"'+myfilter+'"') return self.out(rendered = self.render("diseaselistrender.html", diseases = diseases, filter=myfilter)) # snp = self.request.get("filter") # returns name of disease to myfilter on # get number of pages # get page number # if not specified => pagenr = 1 page = self.request.get("page", "") pagenr = None if page == "": pagenr = 1 else: try: pagenr = int(page) except: pagenr = 1 # get pagenumber from diseasequery diseases = self.diseasequery.fetch_page(pagenr) # generate only the bare-bones list of diseases, ignore everything from base.html etc. rendered = self.render("diseaselistrender.html", diseases=diseases, page=pagenr, count=self.count) # # add to memchache # if not memcache.set('diseaselist_0:50', rendered): # logging.error("Memcache set failed for 'diseaselist_0:50'") # use cached data to render page with user-date etc. intact. self.out(rendered = rendered)
class studyList(AppRequestHandler): """Show a list of studies""" def __init__(self, *args, **kwargs): super(studyList, self).__init__(*args, **kwargs) self._template = 'baserender.html' self.studyquery = PagedQuery(Study.all(), 10) self.count = self.studyquery.page_count() def get(self): # check memcache for main myfilter = self.request.get("filter", "") # returns name of disease to filter on if myfilter != "" and myfilter is not None: studies = Study.search_todict('"'+myfilter+'"') return self.out(rendered = self.render("studylistrender.html", studies = studies, filter=myfilter)) page = self.request.get("page", "") pagenr = None if page == "": pagenr = 1 else: try: pagenr = int(page) except: pagenr = 1 # get pagenumber from diseasequery studies = self.studyquery.fetch_page(pagenr) # rendered = memcache.get("studylist_0:50") # if rendered is None: # make large query, to check for speed when cached # studies = Study.all().fetch(100) rendered = self.render("studylistrender.html",studies=studies, myfilter=myfilter, page=pagenr, count=self.count) # logging.debug(rendered ) # add to memchache # if not memcache.add('studylist_0:50', rendered): # logging.error("Memcache set failed.") self.out(rendered=rendered)
def main(current_page=1): query = LieModel.all().filter('status = ', 'approved') """Add some logic later to figure out if we have a new page""" pagedQuery = PagedQuery(query, 10) pagedQuery.order('-timestamp') lies = pagedQuery.fetch_page(current_page) page_count = pagedQuery.page_count() lieLinks = PageLinks(page=current_page, page_count=pagedQuery.page_count(), url_root="/", page_field='page', page_range=5) navigation_links = lieLinks.get_links() return render_template('list_lies.html', lies=lies, navigation_links=navigation_links)
def test_compatible_with_PagedQuery(self): from he3.db.tower.paging import PagedQuery pq = PagedQuery(self.prefetchingQuery, 2) post_page = pq.fetch_page(1)
def __init__(self, *args, **kwargs): super(studyList, self).__init__(*args, **kwargs) self._template = 'baserender.html' self.studyquery = PagedQuery(Study.all(), 10) self.count = self.studyquery.page_count()
def __init__(self, *args, **kwargs): super(diseaseList, self).__init__(*args, **kwargs) self._template = "baserender.html" self.diseasequery = PagedQuery(Disease.all(), 30) self.count = self.diseasequery.page_count()