def render_page(self, template_values, in_action=None, in_tab=None): """Renders a page using provided template values.""" template_values['header_title'] = template_values['page_title'] template_values['page_headers'] = [ hook(self) for hook in self.PAGE_HEADER_HOOKS ] template_values['course_picker'] = self.get_course_picker() template_values['course_title'] = self.app_context.get_title() template_values['top_nav'] = self._get_top_nav(in_action, in_tab) template_values['gcb_course_base'] = self.get_base_href(self) template_values['user_nav'] = safe_dom.NodeList().append( safe_dom.Text('%s | ' % users.get_current_user().email())).append( safe_dom.Element('a', href=users.create_logout_url( self.request.uri)).add_text('Logout')) template_values[ 'page_footer'] = 'Page created on: %s' % datetime.datetime.now() template_values['coursebuilder_version'] = ( os.environ['GCB_PRODUCT_VERSION']) template_values['application_id'] = app_identity.get_application_id() template_values['application_version'] = ( os.environ['CURRENT_VERSION_ID']) template_values[ 'can_highlight_code'] = oeditor.CAN_HIGHLIGHT_CODE.value template_values['extra_css_href_list'] = self.EXTRA_CSS_HREF_LIST template_values['extra_js_href_list'] = self.EXTRA_JS_HREF_LIST if not template_values.get('sections'): template_values['sections'] = [] self.response.write( self.get_template('view.html', []).render(template_values))
def render_page(self, template_values, in_action=None): page_title = template_values['page_title'] template_values['header_title'] = page_title template_values['page_headers'] = [ hook(self) for hook in self.PAGE_HEADER_HOOKS] template_values['breadcrumbs'] = page_title current_action = (in_action or self.request.get('action') or self.default_action_for_current_permissions()) current_menu_item = self.actions_to_menu_items.get(current_action) template_values['root_menu_group'] = self.root_menu_group template_values['current_menu_item'] = current_menu_item template_values['is_global_admin'] = True template_values['course_app_contexts'] = dashboard.get_visible_courses() template_values['gcb_course_base'] = '/' template_values['user_nav'] = safe_dom.NodeList().append( safe_dom.Text('%s | ' % users.get_current_user().email()) ).append( safe_dom.Element( 'a', href=users.create_logout_url(self.request.uri) ).add_text('Logout')) template_values[ 'page_footer'] = 'Page created on: %s' % datetime.datetime.now() template_values['coursebuilder_version'] = ( os.environ['GCB_PRODUCT_VERSION']) template_values['application_id'] = app.get_application_id() template_values['application_version'] = ( os.environ['CURRENT_VERSION_ID']) if not template_values.get('sections'): template_values['sections'] = [] self.response.write( self.get_template('view.html', []).render(template_values))
def personalize_page_and_get_user(self): """If the user exists, add personalized fields to the navbar.""" user = self.get_user() PageInitializerService.get().initialize(self.template_value) if hasattr(self, 'app_context'): self.template_value['can_register'] = self.app_context.get_environ( )['reg_form']['can_register'] if user: email = user.email() self.template_value['email_no_domain_name'] = ( email[:email.find('@')] if '@' in email else email) self.template_value['email'] = email self.template_value['logoutUrl'] = ( users.create_logout_url(self.request.uri)) self.template_value['transient_student'] = False # configure page events self.template_value['record_tag_events'] = ( CAN_PERSIST_TAG_EVENTS.value) self.template_value['record_page_events'] = ( CAN_PERSIST_PAGE_EVENTS.value) self.template_value['record_events'] = ( CAN_PERSIST_ACTIVITY_EVENTS.value) self.template_value['event_xsrf_token'] = ( XsrfTokenManager.create_xsrf_token('event-post')) else: self.template_value['loginUrl'] = users.create_login_url( self.request.uri) self.template_value['transient_student'] = True return None return user
def render_page(self, template_values, in_action=None): page_title = template_values['page_title'] template_values['header_title'] = page_title template_values['page_headers'] = [ hook(self) for hook in self.PAGE_HEADER_HOOKS] template_values['breadcrumbs'] = page_title current_action = (in_action or self.request.get('action') or self.default_action_for_current_permissions()) current_menu_item = self.actions_to_menu_items.get(current_action) template_values['root_menu_group'] = self.root_menu_group template_values['current_menu_item'] = current_menu_item template_values['is_global_admin'] = True template_values['course_app_contexts'] = dashboard.get_visible_courses() template_values['gcb_course_base'] = '/' template_values['user_nav'] = safe_dom.NodeList().append( safe_dom.Text('%s | ' % users.get_current_user().email()) ).append( safe_dom.Element( 'a', href=users.create_logout_url(self.request.uri) ).add_text('Logout')) template_values[ 'page_footer'] = 'Page created on: %s' % datetime.datetime.now() template_values['coursebuilder_version'] = ( os.environ['GCB_PRODUCT_VERSION']) template_values['application_id'] = app.get_application_id() template_values['application_version'] = ( os.environ['CURRENT_VERSION_ID']) template_values['can_highlight_code'] = oeditor.CAN_HIGHLIGHT_CODE.value if not template_values.get('sections'): template_values['sections'] = [] self.response.write( self.get_template('view.html', []).render(template_values))
def test_create_logout_url_falls_back_to_gae_if_not_enabled(self): self.runtime_config.enabled = False gitkit.Runtime.set_current_runtime_config(self.runtime_config) self.assertEquals(('https://www.google.com/accounts/Logout?' 'continue=http%3A//foo%3Fbar%3Db%20az'), users.create_logout_url('http://foo?bar=b az'))
def test_create_logout_url_with_dest_url(self): self.runtime_config.enabled = True gitkit.Runtime.set_current_runtime_config(self.runtime_config) self.assertEquals(('/modules/gitkit/signout?' 'dest_url=http%3A%2F%2Ffoo%3Fbar%3Db+az'), users.create_logout_url('http://foo?bar=b az'))
def render_page(self, template_values, in_action=None, in_tab=None): page_title = template_values['page_title'] template_values['header_title'] = page_title template_values['page_headers'] = [ hook(self) for hook in self.PAGE_HEADER_HOOKS] template_values['breadcrumbs'] = page_title template_values['top_nav'] = self._get_top_nav(in_action, in_tab) template_values['gcb_course_base'] = '/' template_values['user_nav'] = safe_dom.NodeList().append( safe_dom.Text('%s | ' % users.get_current_user().email()) ).append( safe_dom.Element( 'a', href=users.create_logout_url(self.request.uri) ).add_text('Logout')) template_values[ 'page_footer'] = 'Page created on: %s' % datetime.datetime.now() template_values['coursebuilder_version'] = ( os.environ['GCB_PRODUCT_VERSION']) template_values['application_id'] = app.get_application_id() template_values['application_version'] = ( os.environ['CURRENT_VERSION_ID']) template_values['can_highlight_code'] = oeditor.CAN_HIGHLIGHT_CODE.value if not template_values.get('sections'): template_values['sections'] = [] self.response.write( self.get_template('view.html', []).render(template_values))
def jinja2_config(self): # Configure global context/filters/settings for Jinja2 DATE_FORMAT = '%d/%m/%Y' DATETIME_FORMAT = '%d/%m/%Y %H:%M:%S' return { 'globals': { 'base_url': self.request.host_url, 'uri_for': uri_for, 'logout_url': users.create_logout_url, 'logoutUrl': users.create_logout_url('/'), 'date_format': DATE_FORMAT, 'datetime_format': DATETIME_FORMAT, '_': gettext, 'ngettext': ngettext, 'analytics_code': secrets.SecretManager.analytics_code(), 'nonce_token': self._get_nonce_token(), 'to_json': json.dumps, }, 'filters': { 'format_timestamp': datetime_helper.format_timestamp, 'nl2br': string_helper.nl2br, 'var_replace': string_helper.var_replace, 'sanitize': custom_filters.sanitize, }, }
def render_page(self, template_values, in_action=None, in_tab=None): page_title = template_values['page_title'] template_values['header_title'] = page_title template_values['page_headers'] = [ hook(self) for hook in self.PAGE_HEADER_HOOKS ] template_values['breadcrumbs'] = page_title template_values['top_nav'] = self._get_top_nav(in_action, in_tab) template_values['gcb_course_base'] = '/' template_values['user_nav'] = safe_dom.NodeList().append( safe_dom.Text('%s | ' % users.get_current_user().email())).append( safe_dom.Element('a', href=users.create_logout_url( self.request.uri)).add_text('Logout')) template_values[ 'page_footer'] = 'Page created on: %s' % datetime.datetime.now() template_values['coursebuilder_version'] = ( os.environ['GCB_PRODUCT_VERSION']) template_values['application_id'] = app.get_application_id() template_values['application_version'] = ( os.environ['CURRENT_VERSION_ID']) template_values[ 'can_highlight_code'] = oeditor.CAN_HIGHLIGHT_CODE.value if not template_values.get('sections'): template_values['sections'] = [] self.response.write( self.get_template('view.html', []).render(template_values))
def personalize_page_and_get_user(self): """If the user exists, add personalized fields to the navbar.""" user = self.get_user() PageInitializerService.get().initialize(self.template_value) if hasattr(self, "app_context"): self.template_value["can_register"] = self.app_context.get_environ()["reg_form"]["can_register"] if user: email = user.email() self.template_value["email_no_domain_name"] = email[: email.find("@")] if "@" in email else email self.template_value["email"] = email self.template_value["logoutUrl"] = users.create_logout_url(self.request.uri) self.template_value["transient_student"] = False # configure page events self.template_value["record_tag_events"] = CAN_PERSIST_TAG_EVENTS.value self.template_value["record_page_events"] = CAN_PERSIST_PAGE_EVENTS.value self.template_value["record_events"] = CAN_PERSIST_ACTIVITY_EVENTS.value self.template_value["event_xsrf_token"] = XsrfTokenManager.create_xsrf_token("event-post") else: self.template_value["loginUrl"] = users.create_login_url(self.request.uri) self.template_value["transient_student"] = True return None return user
def render_page(self, template_values, in_action=None, in_tab=None): """Renders a page using provided template values.""" template_values['header_title'] = template_values['page_title'] template_values['page_headers'] = [ hook(self) for hook in self.PAGE_HEADER_HOOKS] template_values['course_picker'] = self.get_course_picker() template_values['course_title'] = self.app_context.get_title() template_values['top_nav'] = self._get_top_nav(in_action, in_tab) template_values['gcb_course_base'] = self.get_base_href(self) template_values['user_nav'] = safe_dom.NodeList().append( safe_dom.Text('%s | ' % users.get_current_user().email()) ).append( safe_dom.Element( 'a', href=users.create_logout_url(self.request.uri) ).add_text('Logout')) template_values[ 'page_footer'] = 'Page created on: %s' % datetime.datetime.now() template_values['coursebuilder_version'] = ( os.environ['GCB_PRODUCT_VERSION']) template_values['application_id'] = app_identity.get_application_id() template_values['application_version'] = ( os.environ['CURRENT_VERSION_ID']) template_values['can_highlight_code'] = oeditor.CAN_HIGHLIGHT_CODE.value template_values['extra_css_href_list'] = self.EXTRA_CSS_HREF_LIST template_values['extra_js_href_list'] = self.EXTRA_JS_HREF_LIST if not template_values.get('sections'): template_values['sections'] = [] self.response.write( self.get_template('view.html', []).render(template_values))
def test_create_logout_url_falls_back_to_gae_if_not_enabled(self): self.runtime_config.enabled = False gitkit.Runtime.set_current_runtime_config(self.runtime_config) self.assertEquals( ('https://www.google.com/accounts/Logout?' 'continue=http%3A//foo%3Fbar%3Db%20az'), users.create_logout_url('http://foo?bar=b az'))
def test_create_logout_url_with_dest_url(self): self.runtime_config.enabled = True gitkit.Runtime.set_current_runtime_config(self.runtime_config) self.assertEquals( ('/modules/gitkit/signout?' 'dest_url=http%3A%2F%2Ffoo%3Fbar%3Db+az'), users.create_logout_url('http://foo?bar=b az'))
def initialize_page_and_get_user(self): """Add basic fields to template and return user.""" self.template_values['course_info'] = Courses.COURSE_TEMPLATE_DICT self.template_values['course_info']['course'] = { 'locale': self.get_locale_for_user()} user = users.get_current_user() if not user: self.template_values['loginUrl'] = users.create_login_url('/') else: self.template_values['email'] = user.email() self.template_values['is_super_admin'] = Roles.is_super_admin() self.template_values['logoutUrl'] = users.create_logout_url('/') return user
def render_page(self, template_values, in_action=None): """Render page contents and write them into the response. NOTE: The resulting contents are *not* sent to the client (user's browser) as a result of calling render_page(). webapp2 does not forward the response and its contents to the client until the handler itself completes. """ page_title = template_values['page_title'] template_values['header_title'] = page_title template_values['page_headers'] = [ hook(self) for hook in self.PAGE_HEADER_HOOKS] template_values['breadcrumbs'] = page_title # menu current_action = (in_action or self.request.get('action') or self.default_action_for_current_permissions()) template_values['current_menu_item'] = self.actions_to_menu_items\ .get(current_action) template_values['courses_menu_item'] = self.actions_to_menu_items.get( 'courses') template_values['root_menu_group'] = self.root_menu_group template_values['course_app_contexts'] = dashboard.get_visible_courses() template_values['gcb_course_base'] = self.BASE_URL template_values['user_nav'] = safe_dom.NodeList().append( safe_dom.Text('%s | ' % users.get_current_user().email()) ).append( safe_dom.Element( 'a', href=users.create_logout_url(self.request.uri) ).add_text('Logout')) template_values[ 'page_footer'] = 'Page created on: %s' % datetime.datetime.now() template_values['coursebuilder_version'] = ( os.environ['GCB_PRODUCT_VERSION']) template_values['application_id'] = app.get_application_id() version = os.environ['CURRENT_VERSION_ID'] if '.' not in version or not appengine_config.PRODUCTION_MODE: template_values['application_version'] = version else: version, deployed_at = version.split('.', 1) template_values['application_version'] = version template_values['deployed_at'] = datetime.datetime.utcfromtimestamp( int(deployed_at) >> 28) # Yes, really. if not template_values.get('sections'): template_values['sections'] = [] if not appengine_config.PRODUCTION_MODE: template_values['page_uuid'] = str(uuid.uuid1()) self.response.write( self.get_template('view.html').render(template_values))
def render_page(self, template_values, in_action=None): """Renders a page using provided template values.""" template_values['header_title'] = template_values['page_title'] template_values['page_headers'] = [ hook(self) for hook in self.PAGE_HEADER_HOOKS ] template_values['course_title'] = self.app_context.get_title() current_action = in_action or self._get_current_menu_action() template_values['current_menu_item'] = self.actions_to_menu_items.get( current_action) template_values['courses_menu_item'] = self.actions_to_menu_items.get( 'courses') template_values['root_menu_group'] = self.root_menu_group template_values['course_app_contexts'] = get_visible_courses() template_values['app_context'] = self.app_context template_values['current_course'] = self.get_course() template_values['gcb_course_base'] = self.get_base_href(self) template_values['user_nav'] = safe_dom.NodeList().append( safe_dom.Text('%s | ' % users.get_current_user().email())).append( safe_dom.Element('a', href=users.create_logout_url( self.request.uri)).add_text('Logout')) template_values[ 'page_footer'] = 'Page created on: %s' % datetime.datetime.now() template_values['coursebuilder_version'] = ( os.environ['GCB_PRODUCT_VERSION']) template_values['application_id'] = app_identity.get_application_id() version = os.environ['CURRENT_VERSION_ID'] if '.' not in version or not appengine_config.PRODUCTION_MODE: template_values['application_version'] = version else: version, deployed_at = version.split('.', 1) template_values['application_version'] = version template_values[ 'deployed_at'] = datetime.datetime.utcfromtimestamp( int(deployed_at) >> 28) # Yes, really. template_values['extra_css_href_list'] = self.EXTRA_CSS_HREF_LIST template_values['extra_js_href_list'] = self.EXTRA_JS_HREF_LIST template_values['powered_by_url'] = services.help_urls.get( 'dashboard:powered_by') if not template_values.get('sections'): template_values['sections'] = [] if not appengine_config.PRODUCTION_MODE: template_values['page_uuid'] = str(uuid.uuid1()) self.response.write( self.get_template('view.html').render(template_values))
def initialize_page_and_get_user(self): """Add basic fields to template and return user.""" self.template_values['course_info'] = Courses.COURSE_TEMPLATE_DICT self.template_values['course_info']['course'] = { 'locale': self.get_locale_for_user() } user = users.get_current_user() if not user: self.template_values['loginUrl'] = users.create_login_url('/') else: self.template_values['email'] = user.email() self.template_values['is_super_admin'] = Roles.is_super_admin() self.template_values['logoutUrl'] = users.create_logout_url('/') return user
def render_page(self, template_values, in_action=None): """Renders a page using provided template values.""" template_values['header_title'] = template_values['page_title'] template_values['page_headers'] = [ hook(self) for hook in self.PAGE_HEADER_HOOKS] template_values['course_title'] = self.app_context.get_title() current_action = in_action or self._get_current_menu_action() template_values['current_menu_item'] = self.actions_to_menu_items.get( current_action) template_values['courses_menu_item'] = self.actions_to_menu_items.get( 'courses') template_values['root_menu_group'] = self.root_menu_group template_values['course_app_contexts'] = get_visible_courses() template_values['app_context'] = self.app_context template_values['current_course'] = self.get_course() template_values['gcb_course_base'] = self.get_base_href(self) template_values['user_nav'] = safe_dom.NodeList().append( safe_dom.Text('%s | ' % users.get_current_user().email()) ).append( safe_dom.Element( 'a', href=users.create_logout_url(self.request.uri) ).add_text('Logout')) template_values[ 'page_footer'] = 'Page created on: %s' % datetime.datetime.now() template_values['coursebuilder_version'] = ( os.environ['GCB_PRODUCT_VERSION']) template_values['application_id'] = app_identity.get_application_id() version = os.environ['CURRENT_VERSION_ID'] if '.' not in version or not appengine_config.PRODUCTION_MODE: template_values['application_version'] = version else: version, deployed_at = version.split('.', 1) template_values['application_version'] = version template_values['deployed_at'] = datetime.datetime.utcfromtimestamp( int(deployed_at) >> 28) # Yes, really. template_values['extra_css_href_list'] = self.EXTRA_CSS_HREF_LIST template_values['extra_js_href_list'] = self.EXTRA_JS_HREF_LIST template_values['powered_by_url'] = services.help_urls.get( 'dashboard:powered_by') if not template_values.get('sections'): template_values['sections'] = [] if not appengine_config.PRODUCTION_MODE: template_values['page_uuid'] = str(uuid.uuid1()) self.response.write( self.get_template('view.html').render(template_values))
def render_page(self, template_values, in_action=None): page_title = template_values['page_title'] template_values['header_title'] = page_title template_values['page_headers'] = [ hook(self) for hook in self.PAGE_HEADER_HOOKS] template_values['breadcrumbs'] = page_title # menu current_action = (in_action or self.request.get('action') or self.default_action_for_current_permissions()) template_values['current_menu_item'] = self.actions_to_menu_items\ .get(current_action) template_values['courses_menu_item'] = self.actions_to_menu_items.get( 'courses') template_values['root_menu_group'] = self.root_menu_group template_values['course_app_contexts'] = dashboard.get_visible_courses() template_values['gcb_course_base'] = self.BASE_URL template_values['user_nav'] = safe_dom.NodeList().append( safe_dom.Text('%s | ' % users.get_current_user().email()) ).append( safe_dom.Element( 'a', href=users.create_logout_url(self.request.uri) ).add_text('Logout')) template_values[ 'page_footer'] = 'Page created on: %s' % datetime.datetime.now() template_values['coursebuilder_version'] = ( os.environ['GCB_PRODUCT_VERSION']) template_values['application_id'] = app.get_application_id() template_values['application_version'] = ( os.environ['CURRENT_VERSION_ID']) if not template_values.get('sections'): template_values['sections'] = [] if not appengine_config.PRODUCTION_MODE: template_values['page_uuid'] = str(uuid.uuid1()) self.response.write( self.get_template('view.html').render(template_values))
def render_page(self, template_values, in_action=None): """Renders a page using provided template values.""" template_values['header_title'] = template_values['page_title'] template_values['page_headers'] = [ hook(self) for hook in self.PAGE_HEADER_HOOKS ] template_values['course_title'] = self.app_context.get_title() current_action = (in_action or self.request.get('action') or self.default_action_for_current_permissions()) current_menu_item = self.actions_to_menu_items.get(current_action) template_values['root_menu_group'] = self.root_menu_group template_values['current_menu_item'] = current_menu_item template_values['app_context'] = self.app_context template_values['course_app_contexts'] = get_visible_courses() template_values['current_course'] = self.get_course() template_values['gcb_course_base'] = self.get_base_href(self) template_values['user_nav'] = safe_dom.NodeList().append( safe_dom.Text('%s | ' % users.get_current_user().email())).append( safe_dom.Element('a', href=users.create_logout_url( self.request.uri)).add_text('Logout')) template_values[ 'page_footer'] = 'Page created on: %s' % datetime.datetime.now() template_values['coursebuilder_version'] = ( os.environ['GCB_PRODUCT_VERSION']) template_values['application_id'] = app_identity.get_application_id() template_values['application_version'] = ( os.environ['CURRENT_VERSION_ID']) template_values['extra_css_href_list'] = self.EXTRA_CSS_HREF_LIST template_values['extra_js_href_list'] = self.EXTRA_JS_HREF_LIST if not template_values.get('sections'): template_values['sections'] = [] self.response.write( self.get_template('view.html', []).render(template_values))
def render_page(self, template_values, in_action=None): """Renders a page using provided template values.""" template_values['header_title'] = template_values['page_title'] template_values['page_headers'] = [ hook(self) for hook in self.PAGE_HEADER_HOOKS] template_values['course_title'] = self.app_context.get_title() current_action = (in_action or self.request.get('action') or self.default_action_for_current_permissions()) current_menu_item = self.actions_to_menu_items.get(current_action) template_values['root_menu_group'] = self.root_menu_group template_values['current_menu_item'] = current_menu_item template_values['app_context'] = self.app_context template_values['course_app_contexts'] = get_visible_courses() template_values['current_course'] = self.get_course() template_values['gcb_course_base'] = self.get_base_href(self) template_values['user_nav'] = safe_dom.NodeList().append( safe_dom.Text('%s | ' % users.get_current_user().email()) ).append( safe_dom.Element( 'a', href=users.create_logout_url(self.request.uri) ).add_text('Logout')) template_values[ 'page_footer'] = 'Page created on: %s' % datetime.datetime.now() template_values['coursebuilder_version'] = ( os.environ['GCB_PRODUCT_VERSION']) template_values['application_id'] = app_identity.get_application_id() template_values['application_version'] = ( os.environ['CURRENT_VERSION_ID']) template_values['extra_css_href_list'] = self.EXTRA_CSS_HREF_LIST template_values['extra_js_href_list'] = self.EXTRA_JS_HREF_LIST if not template_values.get('sections'): template_values['sections'] = [] self.response.write( self.get_template('view.html', []).render(template_values))
def test_create_logout_url_falls_back_to_gae_if_no_runtime_config(self): self.assertEquals( ('https://www.google.com/accounts/Logout?' 'continue=http%3A//foo%3Fbar%3Db%20az'), users.create_logout_url('http://foo?bar=b az'))
def resolve_logout_url(self, args, info): return users.create_logout_url(dest_url=args['dest_url'])
def test_create_logout_url_delegates_to_gae_users_service(self): users_result = users.create_logout_url('destination') gae_users_result = gae_users.create_logout_url('destination') self.assert_service_results_equal_and_not_none( users_result, gae_users_result)
def test_create_logout_url_delegates_to_gae_users_service(self): users_result = users.create_logout_url('destination') gae_users_result = gae_users.create_logout_url('destination') self.assert_service_results_equal_and_not_none(users_result, gae_users_result)
def test_create_logout_url_falls_back_to_gae_if_no_runtime_config(self): self.assertEquals(('https://www.google.com/accounts/Logout?' 'continue=http%3A//foo%3Fbar%3Db%20az'), users.create_logout_url('http://foo?bar=b az'))