def __init__(self, parent, query, batch_size=10, container=None): super(IdeaPager, self).__init__(query, batch_size) self.container = container if parent: self.bind_parent(parent) self.content = component.Component(None) self.challenge_excerpt = component.Component(None) self.display_date = 'publication_date' self.filters = self.get_default_filters() self.filters_by_name = dict((f.name, f) for f in self.filters) self.sort_criteria = self.get_default_sort_criteria() self._filter_state = None self._filter_period = None self._filter_challenge = None self._filter_domain = None self._order = None self._transform = None self.menu_items = [ (_(u"Last published"), 'last_published', None, '', self.last_published), (_(u"Progressing"), 'progressing_ideas', None, '', self.progressing_ideas), (_(u"Most viewed"), 'most_viewed', None, '', self.most_viewed), (_(u"Launched ideas"), 'launched_ideas', None, '', self.launched_ideas), ] self.menu = component.Component(Menu(self.menu_items), model='tab_renderer') self.menu.on_answer(self.select_tab) self.select_tab(0)
def __init__(self, idea): super(WorkflowSection, self).__init__() self.idea_id = idea if is_integer(idea) else idea.id self.switching_menu = component.Component( WorkflowMenu(self.idea_id, switching_actions)) event_management._register_listener(self, self.switching_menu()) recommendation_legend = _L( u'After my appraisal i can propose two kinds of suggestion:') self.recommendation_menu = component.Component( WorkflowMenu(self.idea_id, recommendation_actions, recommendation_legend)) event_management._register_listener(self, self.recommendation_menu()) self.evaluation_menu = component.Component(EvaluationMenu( self.idea_id)) self.tabs = (('switching', _L(u'My actions'), self.switching_menu), ('evaluation', _L(u"My evaluation"), self.evaluation_menu), ('recommendation', _L(u"My recommendation"), self.recommendation_menu)) self.selected_tab = editor.Property('switching') self.menu_items = [(label, name, None, '', None) for name, label, action in self.filtered_tabs] self.menu = component.Component(Menu([], self.filter_menu), model='tab_renderer') self.menu.on_answer(self.select_tab) if self.menu_items: self.select_tab(0)
def __init__(self, items=None): self.items = items self.menu = component.Component(Menu(self.items), model='slider') self.menu.on_answer(self.select_slide) self.content = component.Component(None) self.select_slide(0)
def __init__(self, tabs=None, default_tab=0): super(TabContainer, self).__init__() self.tabs = tabs or [] self.content = component.Component(Empty(), model='tab_bar') self.menu = component.Component(Menu([e[0] for e in self.tabs])) self.menu.on_answer(self.select_tab) self.select_tab(default_tab)
def __init__(self, parent, batch_size=10): super(SuggestionsPager, self).__init__(self._query, batch_size) event_management._register_listener(parent, self) self.selected_tab = var.Var('all') self.menu_items = [(_(u'All suggestions'), 'all', _(u'Show all suggestions'), '', None), (_(u'Processed and deployed'), 'treated', _(u'Show processed and deployed suggestions'), '', None), (_(u'In progress'), 'running', _(u'Show suggestions in progress'), '', None), (_(u'Rejected'), 'rejected', _(u'Show the rejected suggestions'), '', None), ] self.menu = component.Component(Menu(self.menu_items), model='tab_renderer') self.menu.on_answer(self.select_tab) self.select_tab(0)
def __init__(self, idea): self.idea = idea self.message = _('Report idea #%s as duplicated') % self.idea.id self.choices = [(DuplicateIdeaEditor, _('This idea is already submitted')), (DirectionIdeaEditor, _('This idea is already carried on by a direction'))] self.report = component.Component(self, model='report') self.menu = component.Component(Menu([elt[1] for elt in self.choices])) self.menu.on_answer(self.show_form) self.form = component.Component(None)
def __init__(self, parent, idea): event_management._register_listener(parent, self) self.id = idea if is_integer(idea) else idea.id self.display_date = 'publication_date' self.comment_pager = component.Component(CommentPager(self)) self.comment_creator = component.Component( CommentCreator(self, self.id)) self.comment_creator.on_answer(lambda a: self.comments_updated()) self.wf_context = component.Component(IdeaWFContext(self.id)) event_management._register_listener(self, self.wf_context()) self.workflow_section = component.Component(WorkflowSection(self.id)) event_management._register_listener(self, self.workflow_section()) self.selected_tab = var.Var('') self.menu_items = [] if self.has_comments(): nb_comments = self.get_nb_comments() self.menu_items.append( (_N(u"Comment (%d)", u"Comments (%d)", nb_comments) % nb_comments, 'comments', None, '', None)) if self.has_challenge(): self.menu_items.append( (_(u"Challenge"), 'challenge', None, '', None)) if self.has_tags(): self.menu_items.append((_(u"Tags"), 'tags', None, '', None)) self.menu = component.Component(Menu(self.menu_items), model='tab_renderer') self.menu.on_answer(self.select_tab) self.select_default_tab() self._navigate_to_element = None self._comment_submit_id = generate_id('comment-submit') self.display_full_description = var.Var(False)
def __init__(self, pager, model=None, title=None, ok_button=None, css_class=None, menu_items=None): super(PagerBox, self).__init__(pager, model, title, 'pagerBox ' + (css_class or '')) self.ok_button = ok_button self.menu = component.Component(None) if menu_items: self.items = menu_items self.menu.becomes(Menu([label for label, action in self.items]), model='challenges') self.menu.on_answer(self.select_item) self.select_item(0)
def __init__(self, parent, configuration): self.parent = parent self.configuration = configuration self.models_by_tab = { 'ideas': configuration['tabs']['ideas'], 'users': configuration['tabs']['users'] } event_management._register_listener(self.parent, self) self.active_tab = var.Var('') self.ideas_progress = component.Component(IdeasProgress(self.parent)) self.ideas_on_alert = component.Component(IdeasOnAlert(self.parent)) self.menu_items = [ (_(u'Ideas Stats'), 'ideas', None, '', None), (_(u'Users Stats'), 'users', None, '', None), ] self.menu = component.Component(Menu(self.menu_items), model='tab_renderer') self.menu.on_answer(self.select_tab) self.select_tab(0)
def initial_setup(self): poll = get_all_enabled_polls().first() if poll: self.poll = component.Component(Poll(poll.id)) else: self.poll = component.Component(None) self.locale_box.becomes(LocaleChoice()) self.idea_submit.becomes(SubmitIdeaBox(self)) self.search.becomes(SearchBlock(self)) self.idea_chart.becomes(IdeaBarChart(self)) self.welcome.becomes(Welcome(self)) self.online_shop.becomes(OnlineShop(self)) self.faq.becomes(FAQ(self)) self.terms_of_use.becomes(TermsOfUse(self)) self.login_box.becomes(Login()) # Note: setup done here because we need to access the current user and check the # permissions in order to setup the component but they are not available when # the Portal component is created. # password change modal dialog current_user = get_current_user() if current_user and current_user.should_change_password(): self.show_password_editor(current_user) current_user = get_current_user() if current_user: self.login_box.becomes(User(self, current_user), model='login_status') self.menu_items = [ (_(u'home'), _(u"Go to the home page"), 'home', self.show_home), (_(u'news'), None, 'news', self.show_articles_by_type), (_(u'challenge'), _(u"View, comment and vote for challenge ideas"), 'challenges', self.show_challenge_ideas), (_(u'ideas'), _(u"View, comment and vote for ideas"), 'ideas', self.show_ideas), ] self.menu_items.extend([ (_(u"discover eurêka"), None, 'welcome', self.show_welcome), (_(u'gifts'), None, 'shop', self.show_shop), (_(u'help'), None, 'help', self.show_help), (_(u'contact us'), None, 'contact_us', self.show_contact) ]) self.menu.becomes(Menu(self.menu_items), model='list') self.footer_menu_items = [ (_(u'Help'), None, 'help', self.show_help), (_(u'Suggestions'), None, 'improvements', self.show_suggestions), (_(u'Terms of use'), None, 'terms_of_use', self.show_terms_of_use), ] self.footer_menu.becomes(Menu(self.footer_menu_items), model='links') # initial the content if necessary (that is, when no presentation.init_for rule was # called) if not self.content(): self.select_tab(0)