Example #1
0
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)
Example #2
0
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)
Example #3
0
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)
Example #5
0
 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()
Example #6
0
 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()