<% if not defined('rolecolor'): rolecolor = '#EEE' end try: language = chelf.request.chlang except: language = 'en' end try: pagename = chelf.request.pagename except: pagename = 'message' end try: user = chelf.request.user except: user = None end try: chuery = chelf.request.query_string except: chuery = '' end try: key_ownd_path = chdb.key_ownd_path(chelf.request.student,user) except: key_ownd_path = [] end addqs = lambda x: chelf.request.query_string+'&'+x if chelf.request.query_string else x if 'bare' in chelf.request.params: def header(): pass end def footer(): pass end end %> % 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:

{{ chdb.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 {{chutil.translate(key2prnt.kind())}}
%if not user and 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(): % wp = pagename == 'contents' and chuery and '&&' not in chuery
%for lng in chlangs: {{!chutil.newlang(lng)}}   %end
% if wp:
%end % end % end % if not defined('title'): % def title(): % if user: {{chdb.user_name(user)}} % else: chcko % end % end % end % if not defined('rolemenu'): % def rolemenu(): %if not user: % return %end
% for key_ownd_list in chdb.userroles(user): % studentkey = key_ownd_list[-1][0] % urlstr = chdb.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('chripts'): for n,js in sorted(chripts.items()): js() end end %> % title()
    % header() % rolemenu()
    {{!base}}
    % footer()