def test_containers(web_fixture): """There are two types of Bootstrap containers: a full width container, and a responsive (fluid) container.""" widget = Div(web_fixture.view).use_layout(Container()) tester = WidgetTester(widget) css_class = tester.xpath('//div')[0].attrib['class'] assert 'container' == css_class widget = Div(web_fixture.view).use_layout(Container(fluid=True)) tester = WidgetTester(widget) css_class = tester.xpath('//div')[0].attrib['class'] assert 'container-fluid' == css_class
def assemble(self): self.define_page(HTML5Page).use_layout( PageLayout(document_layout=Container(), contents_layout=ColumnLayout( ('main', ResponsiveSize(lg=6))).with_slots())) home = self.define_view('/', title='File upload demo') home.set_slot('main', CommentPostPanel.factory())
def customise_widget(self): self.container = self.widget.add_child(Div(self.view)) self.container.use_layout(Container(fluid=False)) self.centre = self.container.add_child(Div(self.view)) column_layout = ColumnLayout(('left', ResponsiveSize(md=4)), ('right', ResponsiveSize(md=8))) self.centre.use_layout(column_layout)
def assemble(self): contents_layout = ColumnLayout( ('main', ResponsiveSize(lg=6))).with_slots() page_layout = PageLayout(contents_layout=contents_layout, document_layout=Container()) self.define_page(HTML5Page).use_layout(page_layout) comment = Comment() home = self.define_view('/', title='Page flow demo') home.set_slot('main', CommentForm.factory(comment)) thanks = self.define_view('/thanks', title='Thank you!') thanks_text = 'Thanks for submitting your comment' thanks.set_slot('main', P.factory(text=thanks_text)) none_submitted = self.define_view('/none', title='Nothing to say?') none_text = 'Mmm, you submitted an empty comment??' none_submitted.set_slot('main', P.factory(text=none_text)) self.define_transition(comment.events.submit, home, thanks, guard=Action(comment.contains_text)) self.define_transition(comment.events.submit, home, none_submitted, guard=Not(Action(comment.contains_text)))
def assemble(self): self.define_page(HTML5Page).use_layout( PageLayout(document_layout=Container(), contents_layout=ColumnLayout( ('main', ResponsiveSize(lg=6))).with_slots())) home = self.define_view('/', title='Basic HTML Inputs demo') home.set_slot('main', ExampleForm.factory('myform'))
def __init__(self, view, main_bookmarks): super().__init__(view) self.use_layout(PageLayout(document_layout=Container())) contents_layout = ColumnLayout(ColumnOptions('main', ResponsiveSize(lg=6))).with_slots() self.layout.contents.use_layout(contents_layout) menu = Nav(view).use_layout(TabLayout()).with_bookmarks(main_bookmarks) self.layout.header.add_child(menu)
def __init__(self, view): super(GridBasicsPage, self).__init__(view) self.body.use_layout(Container()) self.add_four() self.add_twelve()
def assemble(self): page_layout = PageLayout(document_layout=Container(), contents_layout=ColumnLayout(('main', ResponsiveSize(lg=6))).with_slots()) self.define_page(HTML5Page).use_layout(page_layout) account_user_interface_factory = self.define_user_interface('/a_ui', AccountUI, {'main_slot': 'main'}, name='test_ui', bookmarks=fixture.bookmarks) fixture.account_user_interface_factory = account_user_interface_factory
def assemble(self): self.define_page(HTML5Page).use_layout(PageLayout(document_layout=Container(), contents_layout=ColumnLayout(ColumnOptions('main', size=ResponsiveSize(lg=6))).with_slots())) accounts = self.define_user_interface('/accounts', AccountUI, {'main_slot': 'main'}, name='test_ui', bookmarks=fixture.account_bookmarks) login_bookmark = accounts.get_bookmark(relative_path='/login') self.define_user_interface('/inbox', InboxUI, {'main_slot': 'main'}, name='test_ui', login_bookmark=login_bookmark, get_queues=get_queues)
def assemble(self): page_layout = PageLayout(document_layout=Container(), contents_layout=ColumnLayout( ('main', ResponsiveSize(lg=6))).with_slots()) self.define_page(HTML5Page).use_layout(page_layout) find = self.define_view('/', title='Refreshing widget') find.set_slot('main', HomePanel.factory())
def assemble(self): page_layout = PageLayout( document_layout=Container(), contents_layout=ColumnLayout( ColumnOptions('main', size=ResponsiveSize(lg=6))).with_slots()) self.define_page(HTML5Page).use_layout(page_layout) find = self.define_view('/', title='Addresses') find.set_slot('main', AddressBookPanel.factory())
def __init__(self, view): super(AddressBookPage, self).__init__(view) self.use_layout(PageLayout(document_layout=Container())) contents_layout = ColumnLayout(('secondary', ResponsiveSize(md=3)), ('main', ResponsiveSize(md=9))).with_slots() self.layout.contents.use_layout(contents_layout) nav = Nav(view).use_layout(PillLayout(stacked=True)) contents_layout.columns['secondary'].add_child(nav.with_languages())
def __init__(self, view, main_bookmarks): super(MenuPage, self).__init__(view) self.use_layout(PageLayout(document_layout=Container())) contents_layout = ColumnLayout( ('main', ResponsiveSize(md=4))).with_slots() self.layout.contents.use_layout(contents_layout) self.layout.header.add_child( Nav(view).use_layout(TabLayout()).with_bookmarks(main_bookmarks))
def assemble(self): self.define_page(HTML5Page).use_layout( PageLayout( document_layout=Container(), contents_layout=ColumnLayout( ColumnOptions('main', size=ResponsiveSize(lg=6))).with_slots())) home = self.define_view('/', title='Responsive disclosure demo') home.set_slot('main', NewInvestmentForm.factory())
def assemble(self): self.define_page(HTML5Page).use_layout( PageLayout( document_layout=Container(), contents_layout=ColumnLayout( ColumnOptions('main', size=ResponsiveSize(lg=6))).with_slots())) home = self.define_view('/', title='Dynamic content demo') home.set_slot('main', AllocationDetailForm.factory())
def __init__(self, view): super(ContainerPage, self).__init__(view) page_layout = PageLayout(contents_layout=CenteredLayout(), header_layout=Container(fluid=True), footer_layout=Container(fluid=True)) self.use_layout(page_layout) self.layout.header.add_child(P(view, text='The header')) self.layout.footer.add_child(P(view, text='The footer')) columns = page_layout.contents_layout.columns left = columns['left'] left.add_child(P(view, text='To the left')) right = columns['right'] right.add_child(P(view, text='To the right'))
def assemble(self): self.define_page(HTML5Page).use_layout( PageLayout( document_layout=Container(), contents_layout=ColumnLayout( ColumnOptions('main', size=ResponsiveSize(lg=6))).with_slots())) home = self.define_view('/', title='Themed example') home.set_slot('main', SomeWidget.factory())
def __init__(self, view, bookmarks): super(MyCustomPage, self).__init__(view) self.use_layout(PageLayout(document_layout=Container())) contents_layout = ColumnLayout(ColumnOptions('secondary', size=ResponsiveSize(md=3)), ColumnOptions('main', size=ResponsiveSize(md=9))).with_slots() self.layout.contents.use_layout(contents_layout) menu = Nav(view).use_layout(TabLayout()).with_bookmarks(bookmarks) self.layout.header.add_child(menu)
def assemble(self): contents_layout = ColumnLayout( ColumnOptions('main', ResponsiveSize(lg=6))).with_slots() page_layout = PageLayout(contents_layout=contents_layout, document_layout=Container()) self.define_page(HTML5Page).use_layout(page_layout) self.define_user_interface('/', PageFlowExampleUI, name='pageflow', slot_map={'main': 'main'})
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().__init__(view) self.use_layout( PageLayout( document_layout=Container(), contents_layout=ColumnLayout( ColumnOptions('main', size=ResponsiveSize(lg=6))).with_slots())) navbar = Navbar(view).use_layout(NavbarLayout()) navbar.layout.set_brand_text('My Site') self.layout.header.add_child(navbar)
def __init__(self, view, bookmarks): super(AddressBookPage, 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('Address book') navbar.layout.add(Nav(view).with_bookmarks(bookmarks)) self.body.add_child(navbar)
def __init__(self, view, bookmarks): super().__init__(view) self.use_layout(PageLayout(document_layout=Container())) contents_layout = ColumnLayout(ColumnOptions('main', size=ResponsiveSize())).with_slots() self.layout.contents.use_layout(contents_layout) 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(Nav(view).with_bookmarks(bookmarks)) self.layout.header.add_child(navbar)
def __init__(self, view): super(MyPage, self).__init__(view) self.body.use_layout(Container()) carousel = Carousel(view, 'my_example_carousel_id', show_indicators=True) self.body.add_child(carousel) carousel.add_slide(PlaceholderImage(view, 900, 500, text='Slide 1', alt='Slide 1 was here'), caption_widget=P(view, text='a paragraph with text')) carousel.add_slide(PlaceholderImage(view, 900, 500, text='Slide 2', alt='Slide 2 was here'), caption_widget=P(view, text='a different paragraph'))
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, home_bookmark): super(AddressAppPage, self).__init__(view) self.use_layout(PageLayout(document_layout=Container())) contents_layout = ColumnLayout(('main', ResponsiveSize(lg=6))).with_slots() self.layout.contents.use_layout(contents_layout) login_session = LoginSession.for_current_session() if login_session.is_logged_in(): logged_in_as = login_session.account.email else: logged_in_as = 'Not logged in' self.layout.header.add_child(P(view, text=logged_in_as)) self.layout.header.add_child(Nav(view).use_layout(TabLayout()).with_bookmarks([home_bookmark]))
def customise_widget(self): super().customise_widget() if self.center_contents: centering_div = self.nav.add_child(Div(self.view).use_layout(Container())) self.contents_container = centering_div else: self.contents_container = self.nav self.main_container = self.contents_container if self.fixed.is_set: self.widget.append_class(self.fixed.as_html_snippet()) for option in [self.colour_theme, self.bg_scheme]: if option.is_set: self.nav.append_class(option.as_html_snippet())
def __init__(self, view, accounts): super(LoginFirst, self).__init__(view) self.use_layout(Container()) self.accounts = accounts self.add_child( P(view, text= 'You are not logged in. Please log into your account to apply for, or check the status of your financial aid.' )) self.add_child( Nav(view).with_bookmarks([ accounts.get_bookmark(relative_path='/login'), accounts.get_bookmark(relative_path='/register') ]))
def __init__(self, view): super(PageLayoutPage, self).__init__(view) self.body.use_layout(Container()) column_layout = ColumnLayout( ColumnOptions('left', ResponsiveSize(md=4)), ColumnOptions('right', ResponsiveSize(md=8))) self.use_layout(PageLayout(contents_layout=column_layout)) self.layout.header.add_child(P(view, text='The header')) self.layout.footer.add_child(P(view, text='The footer')) left = column_layout.columns['left'] left.add_child(P(view, text='To the left')) right = column_layout.columns['right'] right.add_child(P(view, text='To the right'))
def assemble(self): contents_layout = ColumnLayout(ColumnOptions('main', ResponsiveSize())).with_slots() self.define_page(HTML5Page).use_layout(PageLayout(document_layout=Container(), contents_layout=contents_layout)) home = self.define_view('/', title='Layout demo') home.set_slot('main', CommentForm.factory()) header_text = lots_of('This text is located in the header,' 'which is added by the PageLayout. ') home.set_slot('header', P.factory(text=header_text)) footer_text = lots_of('The footer spans the bottom of all the ' 'columns on a PageLayout ') home.set_slot('footer', P.factory(text=footer_text))