def add_alert_for_domain_exception(self, exception, form=None, unique_name='', severity='danger'): """Adds a formatted error message to the Form. :param exception: The Exception that should be displayed. :keyword form: The Form to which this exception relates (default is this Layout's .widget). :keyword unique_name: If more than one alert is added to the same Form, unique_name distinguishes between them. :keyword severity: (See :class:`~reahl.web.bootstrap.ui.Alert`). .. versionadded:: 5.0 """ form = form or self.widget alert = self.widget.add_child( Alert(self.widget.view, exception.as_user_message(), severity)) alert.add_child(Hr(self.widget.view)) if exception.detail_messages: ul = alert.add_child(Ul(self.widget.view)) for detail_message in exception.detail_messages: ul.add_child(Li(self.widget.view)).add_child( TextNode(self.widget.view, detail_message)) reset_form = alert.add_child( NestedForm(self.widget.view, 'reset_%s%s' % (form.channel_name, unique_name))) reset_form.form.define_event_handler(form.events.reset) reset_form.add_child(Button(reset_form.form, form.events.reset)).use_layout( ButtonLayout(style='primary'))
def __init__(self, view, css_id, show_indicators=True, interval=5000, pause='hover', wrap=True, keyboard=True, min_height=None): super(Carousel, self).__init__(view) self.carousel_panel = self.add_child(Div(view, css_id=css_id)) self.carousel_panel.append_class('carousel') self.carousel_panel.append_class('slide') self.carousel_panel.set_attribute('data-ride', 'carousel') self.carousel_panel.set_attribute('data-interval', six.text_type(interval)) pause_option = HTMLAttributeValueOption(pause or 'false', True, constrain_value_to=['hover', 'false']) self.carousel_panel.set_attribute('data-pause', pause_option.as_html_snippet()) self.carousel_panel.set_attribute('data-wrap', 'true' if wrap else 'false') self.carousel_panel.set_attribute('data-keyboard', 'true' if keyboard else 'false') if min_height: style = self.carousel_panel.add_child(HTMLElement(self.view, 'style', children_allowed=True)) css_id = self.carousel_panel.css_id style.add_child(TextNode(self.view, '#%s .carousel-item { min-height: %sem; }' % (css_id, min_height))) self.show_indicators = show_indicators if self.show_indicators: self.indicator_list = self.carousel_panel.add_child(self.create_indicator_list()) self.inner = self.carousel_panel.add_child(self.create_inner()) self.slides = [] self.add_control(previous=True) self.add_control()
def __init__(self, view): super().__init__(view) self.body.use_layout(Container()) layout = ResponsiveLayout('md', colour_theme='dark', bg_scheme='primary') navbar = Navbar(view, css_id='my_nav').use_layout(layout) navbar.layout.set_brand_text('Address book') navbar.layout.add(TextNode(view, 'All your addresses in one place')) self.body.add_child(navbar) self.body.add_child(AddressBookPanel(view))
def __init__(self, view): super(__class__, self).__init__(view) self.body.use_layout(Container()) layout = ResponsiveLayout('md', colour_theme='dark', bg_scheme='primary') navbar = Navbar(view, css_id='my_nav').use_layout(layout) navbar.layout.set_brand_text('Simple TR') navbar.layout.add(TextNode(view, 'Translate from this to that.')) self.body.add_child(navbar) self.body.add_child(MyPanel(view))
def __init__(self, view, target_widget, text=None, hide_for_size=None): text = text or '☰' super(CollapseToggle, self).__init__(view, 'button', children_allowed=True) self.set_attribute('type', 'button') self.target_widget = target_widget self.append_class('navbar-toggler') self.set_attribute('data-toggle', 'collapse') self.set_attribute('data-target', '#%s' % target_widget.css_id) if hide_for_size: self.append_class('hidden-%s-up' % hide_for_size.class_label) self.add_child(TextNode(view, text))
def __init__(self, view, target_widget, text=None): super().__init__(view, 'button', children_allowed=True) self.set_attribute('type', 'button') self.target_widget = target_widget self.append_class('navbar-toggler') self.set_attribute('data-toggle', 'collapse') self.set_attribute('data-target', '#%s' % target_widget.css_id) self.set_attribute('aria-controls', '%s' % target_widget.css_id) self.set_attribute('aria-label', _('Toggle navigation')) if text is None: collapse_toggle_widget = Span(self.view) collapse_toggle_widget.append_class('navbar-toggler-icon') else: collapse_toggle_widget = TextNode(view, text) self.add_child(collapse_toggle_widget)
def new_textnode(self): return TextNode(self.web_fixture.view, 'mytext')
def make_total(view, item): return TextNode(view, str(item.total_rows))
def make_column_value(funding_item, view, row): return TextNode(view, str(row.qualifies_for_amount(funding_item)))
def make_score_column_value(criterion, view, row): return TextNode(view, str(row.value_for(criterion)))
def make_column_value(criterion, view, row): return TextNode( view, ('yes' if row.does_criterion_apply(criterion) else 'no'))