def show(self, id, format='html'): c.tag = get_entity_or_abort(model.Tag, id) require.tag.show(c.tag) require.proposal.index() require.page.index() if format == 'json': return render_json(c.tag) entities = libsearch.query.run(u'tag:' + c.tag.name, instance=c.instance) entities = [e for e in entities if (isinstance(e, model.Proposal) or isinstance(e, model.Page))] c.entities_pager = NamedPager( 'entities', entities, tiles.dispatch_row, sorts={_("oldest"): sorting.entity_oldest, _("newest"): sorting.entity_newest, _("alphabetically"): sorting.delegateable_title, _("relevance"): sorting.entity_stable}, default_sort=sorting.entity_stable, q=c.query) tags = model.Tag.similar_tags(c.tag, limit=50) c.cloud_tags = sorted(h.tag.tag_cloud_normalize(tags), key=lambda (k, c, v): k.name) if format == 'overlay': return render("/tag/show.html", overlay=True) else: return render("/tag/show.html")
def watchlist(self, id, format='html'): require.watch.index() c.active_global_nav = 'watchlist' c.page_user = get_entity_or_abort(model.User, id, instance_filter=False) require.user.show(c.page_user) watches = model.Watch.all_by_user(c.page_user) entities = [w.entity for w in watches if (w.entity is not None) \ and (not isinstance(w.entity, unicode))] c.entities_pager = NamedPager('watches', entities, tiles.dispatch_row_with_comments, sorts={ _("oldest"): sorting.entity_oldest, _("newest"): sorting.entity_newest }, default_sort=sorting.entity_newest) if format == 'json': return render_json(c.entities_pager) self._common_metadata(c.page_user, member='watchlist') return render("/user/watchlist.html")
def all(self): query = model.meta.Session.query(model.Event) query = query.order_by(model.Event.time.desc()) query = query.limit(50) c.event_pager = NamedPager('events', query.all(), tiles.event.row, count=50) return render('/event/all.html')
def history(self, id, format='html'): c.comment = get_entity_or_abort(model.Comment, id) require.comment.show(c.comment) c.revisions_pager = NamedPager( 'revisions', c.comment.revisions, tiles.revision.row, count=10, sorts={_("oldest"): sorting.entity_oldest, _("newest"): sorting.entity_newest}, default_sort=sorting.entity_newest) if format == 'json': return render_json(c.revisions_pager) return render('/comment/history.html')
def index(self, format='html'): require.comment.index() comments = model.Comment.all() c.comments_pager = NamedPager( 'comments', comments, tiles.comment.row, count=10, sorts={_("oldest"): sorting.entity_oldest, _("newest"): sorting.entity_newest}, default_sort=sorting.entity_newest) if format == 'json': return render_json(c.comments_pager) return self.not_implemented(format=format)
def _query_pager(self): instance = c.instance if c.instance else None c.entities = libsearch.query.run(c.query, instance=instance) entity_filter = lambda e: not isinstance(e, Comment) c.entities = filter(entity_filter, c.entities) c.entities_pager = NamedPager( 'serp', c.entities, tiles.dispatch_row, sorts={_("oldest"): sorting.entity_oldest, _("newest"): sorting.entity_newest, _("relevance"): sorting.entity_stable}, default_sort=sorting.entity_stable, q=c.query)
def _query_pager(self): instance = c.instance if c.instance else None c.entities = libsearch.query.run(c.query, instance=instance, excluded_entity_types=set([Comment])) c.entities_pager = NamedPager('serp', c.entities, tiles.dispatch_row, sorts={ _("oldest"): sorting.entity_oldest, _("newest"): sorting.entity_newest, _("relevance"): sorting.entity_stable }, default_sort=sorting.entity_stable, q=c.query)
def all(self, format='html'): query = model.meta.Session.query(model.Event) query = query.order_by(model.Event.time.desc()) query = query.limit(50) if format == 'rss': events = query.all() return event.rss_feed(events, _('%s News' % h.site.name()), h.base_url(instance=None), _("News from %s") % h.site.name()) c.event_pager = NamedPager('events', query.all(), tiles.event.row, count=50) return render('/event/all.html')
def dashboard(self, id): '''Render a personalized dashboard for users''' if 'logged_in' in session: c.fresh_logged_in = True c.suppress_attention_getter = True del session['logged_in'] if 'came_from' in session: c.came_from = session.get('came_from') del session['came_from'] if isinstance(c.came_from, str): c.came_from = unicode(c.came_from, 'utf-8') session.save() #user object c.page_user = get_entity_or_abort(model.User, id, instance_filter=False) require.user.show(c.page_user) #instances instances = c.page_user.instances #proposals proposals = [model.Proposal.all(instance=i) for i in instances] proposals = proposals and reduce(lambda x, y: x + y, proposals) c.proposals = proposals c.proposals_pager = pager.proposals(proposals, size=4, default_sort=sorting.entity_newest, enable_pages=False, enable_sorts=False) #polls polls = [p.adopt_poll for p in proposals if p.is_adopt_polling()] polls = filter(lambda p: p.has_ended() != True and p.is_deleted() != True, polls) c.polls = polls c.polls_pager = pager.polls(polls, size=20, default_sort=sorting.entity_newest, enable_pages=False, enable_sorts=False,) #pages require.page.index() pages = [model.Page.all(instance=i, functions=model.Page.LISTED) for i in instances] pages = pages and reduce(lambda x, y: x + y, pages) c.pages = pages c.pages_pager = pager.pages(pages, size=3, default_sort=sorting.entity_newest, enable_pages=False, enable_sorts=False) #watchlist require.watch.index() c.active_global_nav = 'user' watches = model.Watch.all_by_user(c.page_user) entities = [w.entity for w in watches if (w.entity is not None) and (not isinstance(w.entity, unicode))] c.watchlist_pager = NamedPager( 'watches', entities, tiles.dispatch_row_with_comments, size=3, enable_pages=False, enable_sorts=False, default_sort=sorting.entity_newest) #render result c.tutorial = 'user_dashboard' c.tutorial_intro = _('tutorial_dashboard_title') return render('/user/dashboard.html')