degal/templates.py
changeset 119 e7855eefb4c7
parent 100 0a093efd410d
child 120 55cb7fc9c8fb
equal deleted inserted replaced
118:60b126ff0b74 119:e7855eefb4c7
    58 def folder_link (from_page, folder, page=0) :
    58 def folder_link (from_page, folder, page=0) :
    59     """
    59     """
    60         Returns a link to the given folder from the given page
    60         Returns a link to the given folder from the given page
    61     """
    61     """
    62 
    62 
    63     return link_from(from_page, folder.html_file(page))(folder.title)
    63     return link_from(from_page, folder.html_page(page))(folder.title)
    64 
    64 
    65 def folder_page_link (folder, page) :
    65 def folder_page_link (folder, page) :
    66     """
    66     """
    67         Returns a partial a tag from the folder itself to the given page number
    67         Returns a partial a tag from the folder itself to the given page number
    68     """
    68     """
    69 
    69 
    70     return link_from(folder, folder.html_file(page))
    70     return link_from(folder, folder.html_page(page))
    71 
    71 
    72 def folder_paginate (folder, cur_page) :
    72 def folder_paginate (folder, cur_page) :
    73     """
    73     """
    74         Render the pagination view for a folder, if needed
    74         Render the pagination view for a folder, if needed
    75     """
    75     """
   132         tags.p(id='description')(folder.description) if folder.description else None,
   132         tags.p(id='description')(folder.description) if folder.description else None,
   133 
   133 
   134         # shorturl
   134         # shorturl
   135     ]
   135     ]
   136 
   136 
   137 def breadcrumb_trail (gallery, page) :
   137 def breadcrumb_trail (gallery, cur_page) :
   138     """
   138     """
   139         Yield the breadcrumb elements
   139         Yield the breadcrumb elements
   140     """
   140     """
   141 
   141 
   142     is_first = True
   142     is_first = True
   143     
   143     
   144     for segment in gallery.path_to(page) :
   144     for page in gallery.path_to(cur_page) :
   145         # spacers
   145         # spacers
   146         if is_first :
   146         if is_first :
   147             is_first = False
   147             is_first = False
   148 
   148 
   149         else :
   149         else :
   150             yield html.raw("»")
   150             yield html.raw("»")
   151 
   151 
   152         # link from this page to sub-page
   152         # link from this page to sub-page
   153         # XXX: title
   153         yield link_from(cur_page, page.html)(page.title)
   154         yield link_from(page, segment)(segment.name.title())
       
   155 
       
   156 
   154 
   157 def breadcrumb (gallery, page) :
   155 def breadcrumb (gallery, page) :
   158     """
   156     """
   159         Build a breadcrumb trail from the gallery root to the given object
   157         Build a breadcrumb trail from the gallery root to the given object
   160     """
   158     """
   161 
   159 
   162     return tags.div(id='breadcrumb')(
   160     return tags.div(id='breadcrumb')(
   163         breadcrumb_trail(gallery, page)
   161         breadcrumb_trail(gallery, page)
   164     )
   162     )
   165 
   163 
   166 def master (gallery, title, page, body) :
   164 def master (gallery, page, body) :
   167     """
   165     """
   168         Render the full-page HTML layout for the given page with title and body
   166         Render the full-page HTML layout for the given page with title and body
   169     """
   167     """
   170 
   168 
   171     return html.XHTMLDocument(
   169     return html.XHTMLDocument(
   172         head=[
   170         head=[
   173             tags.title(title),
   171             tags.title(page.title),
   174             
   172             
   175             # stylesheet
   173             # stylesheet
   176             tags.link(rel='Stylesheet', type='text/css', href=gallery.stylesheet.path_from(page))
   174             tags.link(rel='Stylesheet', type='text/css', href=gallery.stylesheet.path_from(page.html))
   177         ],
   175         ],
   178 
   176 
   179         body=[
   177         body=[
   180             # top-of-page breadcrumb nav
   178             # top-of-page breadcrumb nav
   181             breadcrumb(gallery, page),
   179             breadcrumb(gallery, page),