fix breadcrumb/title stuff
authorTero Marttila <terom@fixme.fi>
Sun, 14 Jun 2009 22:59:29 +0300
changeset 119 e7855eefb4c7
parent 118 60b126ff0b74
child 120 55cb7fc9c8fb
fix breadcrumb/title stuff
degal/commands/main.py
degal/folder.py
degal/templates.py
--- a/degal/commands/main.py	Sun Jun 14 22:52:07 2009 +0300
+++ b/degal/commands/main.py	Sun Jun 14 22:59:29 2009 +0300
@@ -10,7 +10,7 @@
     ctx.log_debug("%s", image.html)
 
     # render output
-    tpl = templates.master(ctx.gallery, image.title, image.html, 
+    tpl = templates.master(ctx.gallery, image, 
         templates.image_page(image)
     )
     
@@ -65,17 +65,17 @@
     # render each page separately
     for page in xrange(folder.page_count) :
         # output .html page
-        html_file = folder.html_file(page)
+        html = folder.html_page(page)
     
-        ctx.log_debug("%s", html_file)
+        ctx.log_debug("%s", html)
         
         # render template
-        tpl = templates.master(ctx.gallery, folder.title, html_file,
+        tpl = templates.master(ctx.gallery, folder,
             templates.folder_page(folder, page)
         )
 
         # write output
-        tpl.render_file(html_file)
+        tpl.render_file(html)
 
 def render_folder (ctx, folder) :
     """
--- a/degal/folder.py	Sun Jun 14 22:52:07 2009 +0300
+++ b/degal/folder.py	Sun Jun 14 22:59:29 2009 +0300
@@ -150,8 +150,16 @@
         
         # slice
         return self.images[offset : offset + self.config.images_per_page]
+    
+    @property
+    def html (self) :
+        """
+            Path to default page
+        """
 
-    def html_file (self, page=0) :
+        return self.html_page()
+    
+    def html_page (self, page=0) :
         """
             Returns the File representing the .html for the given page
         """
--- a/degal/templates.py	Sun Jun 14 22:52:07 2009 +0300
+++ b/degal/templates.py	Sun Jun 14 22:59:29 2009 +0300
@@ -60,14 +60,14 @@
         Returns a link to the given folder from the given page
     """
 
-    return link_from(from_page, folder.html_file(page))(folder.title)
+    return link_from(from_page, folder.html_page(page))(folder.title)
 
 def folder_page_link (folder, page) :
     """
         Returns a partial a tag from the folder itself to the given page number
     """
 
-    return link_from(folder, folder.html_file(page))
+    return link_from(folder, folder.html_page(page))
 
 def folder_paginate (folder, cur_page) :
     """
@@ -134,14 +134,14 @@
         # shorturl
     ]
 
-def breadcrumb_trail (gallery, page) :
+def breadcrumb_trail (gallery, cur_page) :
     """
         Yield the breadcrumb elements
     """
 
     is_first = True
     
-    for segment in gallery.path_to(page) :
+    for page in gallery.path_to(cur_page) :
         # spacers
         if is_first :
             is_first = False
@@ -150,9 +150,7 @@
             yield html.raw("&raquo;")
 
         # link from this page to sub-page
-        # XXX: title
-        yield link_from(page, segment)(segment.name.title())
-
+        yield link_from(cur_page, page.html)(page.title)
 
 def breadcrumb (gallery, page) :
     """
@@ -163,17 +161,17 @@
         breadcrumb_trail(gallery, page)
     )
 
-def master (gallery, title, page, body) :
+def master (gallery, page, body) :
     """
         Render the full-page HTML layout for the given page with title and body
     """
 
     return html.XHTMLDocument(
         head=[
-            tags.title(title),
+            tags.title(page.title),
             
             # stylesheet
-            tags.link(rel='Stylesheet', type='text/css', href=gallery.stylesheet.path_from(page))
+            tags.link(rel='Stylesheet', type='text/css', href=gallery.stylesheet.path_from(page.html))
         ],
 
         body=[