def doget(self, page): try: page = int(page) max_page = (self.blog.entrycount - 1) / self.blog.posts_per_page if max_page < 0: max_page = 0 if page < 0 or page > max_page: return self.error(404) query = Entry.gql("WHERE entrytype = 'post' AND published = TRUE ORDER BY date DESC") entries = query.fetch(self.blog.posts_per_page, page * self.blog.posts_per_page) show_prev = entries and not page == 0 show_next = entries and not page == max_page logging.info("generated main page") return self.render('index', { 'entries': entries, 'show_prev': show_prev, 'show_next': show_next, 'pageindex': page, 'ishome': True, }) except: logging.error(traceback.format_exc()) return self.error(404)
def initialize(self, request, response): try: BaseRequestHandler.initialize(self, request, response) m_pages = ( Entry.all() .filter("entrytype =", "page") .filter("published =", True) .filter("entry_parent =", 0) .order("menu_order") ) blogroll = Link.all().filter("linktype =", "blogroll") query = Entry.gql("WHERE entrytype = 'post' AND published = TRUE ORDER BY date") entries = query.fetch(1) start_date = end_date = None if entries: start_date = entries[0].date query = Entry.gql("WHERE entrytype = 'post' AND published = TRUE ORDER BY date DESC") entries = query.fetch(1) if entries: end_date = entries[0].date end_year = 0 if end_date: end_year = end_date.year self.template_vals.update( { "dates": self.build_dates(start_date, end_date), "end_year": end_year, "menu_pages": m_pages, "tags": Tag.all().order("tag"), "blogroll": blogroll, "recent_comments": Comment.all().order("-date").fetch(5), } ) logging.info("base public page initialized") except: logging.error(traceback.format_exc()) return self.error(404)
def get(self, year, month): gql = "WHERE date > DATETIME(%s, %s, 1, 0, 0, 0) AND date < DATETIME(%s, %s, %d, 23, 59, 59) ORDER BY date DESC" % (year, month, year, month, self.last_day_of_month(year, month)) query = Entry.gql(gql) entries = query.fetch(1000) show_prev = False show_next = False return self.render('index', { 'entries': entries, 'show_prev': show_prev, 'show_next': show_next, 'pageindex': 0, 'ishome': True, 'end_year': int(year), })