Beispiel #1
0
 def assemble(self):
     self.define_page(HTML5Page).use_layout(
         PageLayout(
             contents_layout=ColumnLayout('main').with_slots()))
     self.define_user_interface('/a_ui',
                                UIWithSlots, {'text': 'main'},
                                name='myui')
Beispiel #2
0
 def assemble(self):
     self.define_page(HTML5Page).use_layout(
         PageLayout(contents_layout=ColumnLayout('main').with_slots()))
     home = self.define_view('/', title='Hello')
     home.set_slot('main', P.factory(text='Hello world'))
     home.set_slot('nonexistantslotname',
                   P.factory(text='I am breaking'))
Beispiel #3
0
def test_page_layout_only_meant_for_html5page(web_fixture):
    """When an attempting to use a PageLayout on something other than an HTML5Page, a useful exception is raised."""

    fixture = web_fixture

    with expected(IsInstance):
        Div(fixture.view).use_layout(PageLayout())
Beispiel #4
0
    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)))
Beispiel #5
0
 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'))
Beispiel #6
0
 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
Beispiel #7
0
 def assemble(self):
     home = self.define_view('/', title='Hello')
     home.set_page(HTML5Page.factory().use_layout(
         PageLayout(
             contents_layout=ColumnLayout('main').with_slots())))
     home.set_slot('main', P.factory(text='Hello world'))
     home.set_slot('footer', P.factory(text='I am the footer'))
Beispiel #8
0
 def assemble(self):
     self.define_page(HTML5Page).use_layout(
         PageLayout(contents_layout=ColumnLayout(
             *view_slots.keys()).with_slots()))
     self.define_view('/',
                      title='Home page',
                      slot_definitions=view_slots)
Beispiel #9
0
 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())
Beispiel #10
0
 def assemble(self):
     self.define_page(HTML5Page).use_layout(
         PageLayout(contents_layout=ColumnLayout(
             'main', 'secondary').with_slots()))
     home = self.define_view('/', title='Home page')
     home.set_slot('main', Form.factory('myform'))
     home.set_slot('secondary', Form.factory('myform'))
Beispiel #11
0
 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)
Beispiel #12
0
def page_layout_content_layout(fixture):
    """A PageLayout can be given a Layout it should use to lay out its contents Div."""

    contents_layout = Layout()
    widget = HTML5Page(fixture.view).use_layout(
        PageLayout(contents_layout=contents_layout))

    vassert(widget.layout.contents.layout is contents_layout)
Beispiel #13
0
 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())
Beispiel #14
0
 def assemble(self):
     self.define_page(HTML5Page).use_layout(
         PageLayout(
             contents_layout=ColumnLayout('main').with_slots()))
     home = self.define_view('/a_view',
                             'Title',
                             write_check=disallowed)
     home.set_slot('main', MyForm.factory())
Beispiel #15
0
 def assemble(self):
     self.define_page(HTML5Page).use_layout(
         PageLayout(contents_layout=ColumnLayout('main').with_slots()))
     home = self.define_view('/', title='Home page')
     other_view = self.define_view('/page2', title='Page 2')
     home.set_slot('main', MyForm.factory('myform'))
     self.define_transition(model_object.events.an_event, home,
                            other_view)
Beispiel #16
0
 def assemble(self):
     self.define_page(HTML5Page).use_layout(
         PageLayout(
             contents_layout=ColumnLayout('main').with_slots()))
     self.define_user_interface('/a_ui',
                                UIWithParameterisedUserInterfaces,
                                IdentityDictionary(),
                                name='myui')
Beispiel #17
0
 def assemble(self):
     self.define_page(HTML5Page).use_layout(
         PageLayout(
             contents_layout=ColumnLayout('main').with_slots()))
     self.define_user_interface('/a_ui',
                                UIWithDetour,
                                IdentityDictionary(),
                                name='test_ui')
Beispiel #18
0
 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)
Beispiel #19
0
 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))
Beispiel #20
0
 def assemble(self):
     self.define_page(HTML5Page).use_layout(
         PageLayout(
             contents_layout=ColumnLayout('main').with_slots()))
     self.define_user_interface('/dhtml_ui',
                                DhtmlUI, {'main_slot': 'main'},
                                name='test_ui',
                                static_div_name='astatic')
Beispiel #21
0
 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())
Beispiel #22
0
 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())
Beispiel #23
0
def header_and_footer_slots(fixture):
    """PageLayout adds a Slot for Header and Footer."""

    page = HTML5Page(fixture.view).use_layout(PageLayout())

    header, contents_div, footer = page.layout.document.children

    vassert('header' in header.available_slots)
    vassert('footer' in footer.available_slots)
Beispiel #24
0
 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())
Beispiel #25
0
 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())
Beispiel #26
0
 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())
Beispiel #27
0
 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'})
Beispiel #28
0
def test_page_layout_content_layout(web_fixture):
    """A PageLayout can be given a Layout it should use to lay out its contents Div."""

    fixture = web_fixture

    contents_layout = Layout()
    widget = HTML5Page(fixture.view).use_layout(
        PageLayout(contents_layout=contents_layout))

    assert widget.layout.contents.layout is contents_layout
Beispiel #29
0
    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)
Beispiel #30
0
def test_header_and_footer_slots(web_fixture):
    """PageLayout adds a Slot for Header and Footer."""

    fixture = web_fixture

    page = HTML5Page(fixture.view).use_layout(PageLayout())

    header, contents_div, footer = page.layout.document.children

    assert 'header' in header.available_slots
    assert 'footer' in footer.available_slots