def assemble(self, login_bookmark=None, get_queues=None): self.get_queues = get_queues self.web_session = ExecutionContext.get_context().session self.first_log_in = ViewPreCondition( LoginSession.for_current_session().is_logged_in, exception=Detour(login_bookmark)) self.workflow_interface = WorkflowInterface() self.inbox = Inbox(self.get_queues()) inbox_view_factory = self.define_view('/', title=_('Inbox')) inbox_view_factory.set_slot('main_slot', InboxWidget.factory(self.inbox)) task_view_factory = self.define_view('/task', view_class=TaskView, task=PersistedField( Task, required=True)) task_view_factory.add_precondition(self.first_log_in) inbox_view_factory.add_precondition(self.first_log_in) self.define_transition(self.workflow_interface.events.take_task, inbox_view_factory, task_view_factory) self.define_transition(self.workflow_interface.events.go_to_task, inbox_view_factory, task_view_factory) self.define_transition(self.workflow_interface.events.defer_task, task_view_factory, inbox_view_factory) self.define_transition(self.workflow_interface.events.release_task, task_view_factory, inbox_view_factory)
def __init__(self, view, address_book_ui): super(HomePageWidget, self).__init__(view) accounts = AccountManagementInterface.for_current_session() login_session = LoginSession.for_current_session() if login_session.is_logged_in(): self.add_child(AddressBookList(view, address_book_ui)) self.add_child(LogoutForm(view, accounts)) else: self.add_child(LoginForm(view, accounts))
def __init__(self, view, address_book_ui): super(AddressBookList, self).__init__(view) current_account = LoginSession.for_current_session().account address_books = [book for book in AddressBook.address_books_visible_to(current_account)] bookmarks = [address_book_ui.get_address_book_bookmark(address_book, description=address_book.display_name) for address_book in address_books] for bookmark in bookmarks: p = self.add_child(P(view)) p.add_child(A.from_bookmark(view, bookmark))
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 assemble(self): login_session = LoginSession.for_current_session() if login_session.account: logged_in_as = login_session.account.email else: logged_in_as = 'Guest' home = self.define_view('/', title='Home') home.set_slot('main', P.factory(text='Welcome %s' % logged_in_as)) login_page = self.define_view('/login', title='Log in') login_page.set_slot('main', LoginForm.factory()) bookmarks = [i.as_bookmark(self) for i in [home, login_page]] self.define_page(MenuPage, bookmarks)
def assemble(self): login_session = LoginSession.for_current_session() if login_session.account: logged_in_as = login_session.account.email else: logged_in_as = 'Guest' home = self.define_view('/', title='Home') home.set_slot('main', P.factory(text='Welcome %s' % logged_in_as)) terms_of_service = self.define_view('/terms_of_service', title='Terms of service') terms_of_service.set_slot( 'main', LegalNotice.factory('The terms of services defined as ...', 'terms')) privacy_policy = self.define_view('/privacy_policy', title='Privacy policy') privacy_policy.set_slot( 'main', LegalNotice.factory('You have the right to remain silent ...', 'privacypolicy')) disclaimer = self.define_view('/disclaimer', title='Disclaimer') disclaimer.set_slot( 'main', LegalNotice.factory('Disclaim ourselves from negligence ...', 'disclaimer')) class LegalBookmarks: terms_bookmark = terms_of_service.as_bookmark(self) privacy_bookmark = privacy_policy.as_bookmark(self) disclaimer_bookmark = disclaimer.as_bookmark(self) accounts = self.define_user_interface('/accounts', AccountUI, {'main_slot': 'main'}, name='accounts', bookmarks=LegalBookmarks) account_bookmarks = [ accounts.get_bookmark(relative_path=relative_path) for relative_path in ['/login', '/register', '/registerHelp', '/verify'] ] bookmarks = [home.as_bookmark(self)] + account_bookmarks self.define_page(MenuPage, bookmarks)
def __init__(self, view, bookmarks): super(FundingRequestPage, self).__init__(view) self.head.add_css(Url('/css/pyconza2019.css')) 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('PyConZA 2019 Financial Aid') navbar.layout.add(Nav(view).with_bookmarks(bookmarks)) if LoginSession.for_current_session().is_logged_in(): navbar.layout.add(LogoutForm(view)) self.layout.header.add_child(navbar)
def is_reserved_for_current_party(self): from reahl.domain.systemaccountmodel import LoginSession # To prevent circular dependency with systemaccountmodel current_account = LoginSession.for_current_session().account return current_account and self.is_reserved_for(current_account.owner)
def can_be_added(self): current_account = LoginSession.for_current_session().account return self.address_book.can_be_added_to_by(current_account)
def is_visible(self): account = LoginSession.for_current_session().account return self.is_visible_to(account)
def collaborators_can_be_added(self): account = LoginSession.for_current_session().account return self.collaborators_can_be_added_by(account)
def can_be_added_to(self): account = LoginSession.for_current_session().account return self.can_be_added_to_by(account)
def save(self): login_session = LoginSession.for_current_session() self.account = login_session.account Session.add(self)
def __init__(self): self.login_session = LoginSession.for_current_session()