<% if not defined('rolecolor'): rolecolor = '#EEE' end if not defined('social_logins'): social_logins = {} end try: language = self.request.lang except: language = 'en' end try: pagename = self.request.pagename except: pagename = 'message' end try: user = self.request.user except: user = None end try: key_ownd_path = db.key_ownd_path(self.request.student,user) except: key_ownd_path = [] end addqs = lambda x: self.request.query_string+'&'+x if self.request.query_string else x %> % if not defined('header'): % def header():

☰ {{ language }}

%for page, txt in [('org',torg),('contents',tcontents),('done',tdone),('todo',ttodo),(None,None)]:
%if page and txt:

{{txt}}

%else: %if user:

{{ db.user_name(user) }} ☰

%else:

{{ tlogin }} ☰

%end %end
%end
%for level, (key2prnt,is_users) in enumerate(key_ownd_path):
%if user and key2prnt.kind()=='Role': %end {{util.translate(key2prnt.kind())}}
%if key2prnt.kind()=='Role': {{key2prnt.string_id()}} %elif pagename in ['done','todo'] and level<4: {{key2prnt.string_id()}} %elif not is_users: {{key2prnt.string_id()}} %else: {{key2prnt.string_id()}} %end
%end
 
% end % end % if not defined('footer'): % def footer():
%for lng in langs: {{!util.newlang(lng)}}   %end
% end % end % if not defined('title'): % def title(): % if user: {{db.user_name(user)}} % else: chcko % end % end % end % if not defined('rolemenu'): % def rolemenu(): %if not user: % return %end
% for key_ownd_list in db.userroles(user): % studentkey = key_ownd_list[-1][0] % urlstr = db.urlstring(studentkey) % student = studentkey.get() % goto = [f"/{language}/{x}?{urlstr}" for x in "org contents done todo".split()]+[pagename+'?'+addqs(urlstr)]
  • % for i,(an,ownd) in enumerate(key_ownd_list): % levelstr = an.string_id() if ownd else ''+an.string_id()+'' % end
  • % end
    %end %end <% if defined('scripts'): for n,js in sorted(scripts.items()): js() end end %> % title()
    % header() % rolemenu()
    {{!base}}
    % footer()