degal/templates.py
changeset 78 d580323b4bfa
parent 77 2a53c5ade434
child 80 f4b637ae775c
--- a/degal/templates.py	Fri Jun 05 23:59:14 2009 +0300
+++ b/degal/templates.py	Wed Jun 10 21:59:49 2009 +0300
@@ -5,21 +5,21 @@
 import html
 from html import tags
 
-def link_from (from_page, to_page) :
+def link_from (source, target) :
     """
         Returns a partial a tag linking from the given page to the given page
 
         XXX: URLEncode unicode -> str!
     """
 
-    return tags.a(href=to_page.path_from(from_page))
+    return tags.a(href=source.path_to(target))
 
-def image_link (from_page, image, image_html) :
+def image_link (from_page, image, target) :
     """
         Link to the given image
     """
 
-    return link_from(from_page, image_html)(
+    return link_from(from_page, target)(
         tags.img(src=image.path_from(from_page))
     )
 
@@ -28,7 +28,7 @@
         The per-image view
     """
 
-    return [
+    return html.container(
         tags.div(id_='image')(
             # title
             tags.h1(image.title) if image.title else None,
@@ -50,10 +50,10 @@
         ),
 
         # extended info, metadata
-        tags.div(id_='info')(
-            tags.p("%s: " % name, value) for name, value in image.metadata
-        ),
-    ]
+        tags.div(id_='info')(*(
+            tags.p(("%s: " % name), value) for name, value in image.metadata.iteritems()
+        )),
+    )
 
 def folder_link (from_page, folder, page=0) :
     """
@@ -82,7 +82,7 @@
                     if cur_page > 0 else
                 tags.li(tags.span(html.raw("« Prev"))),
                 
-                ((
+                html.container((
                     # page link
                     tags.li(folder_page_link(folder, page)(page + 1))
                         if page != cur_page else
@@ -104,7 +104,7 @@
     # render the paginate-view once
     paginate = folder_paginate(folder, cur_page)
 
-    return [
+    return html.container(
         # title
         tags.h1(folder.title) if folder.title else None,
 
@@ -121,9 +121,9 @@
         paginate,
 
         # image thumbnails
-        ((
+        html.container(*((
             image_link(folder, image, image.html)
-        ) for image in folder.images),
+        ) for image in folder.images)),
 
         # lower paginate
         paginate,
@@ -132,7 +132,7 @@
         tags.p(id='description')(folder.description) if folder.description else None,
 
         # shorturl
-    ]
+    )
 
 def breadcrumb_trail (gallery, page) :
     """
@@ -150,7 +150,8 @@
             yield html.raw("»")
 
         # link from this page to sub-page
-        yield link_from(page, segment)(segment.title)
+        # XXX: title
+        yield link_from(page, segment)(segment.name.title())
 
 
 def breadcrumb (gallery, page) :
@@ -159,7 +160,7 @@
     """
 
     return tags.div(id='breadcrumb')(
-        breadcrumb_trail(gallery, page)
+        *breadcrumb_trail(gallery, page)
     )
 
 def master (gallery, title, page, body) :
@@ -168,14 +169,14 @@
     """
 
     return html.XHTMLDocument(
-        head=[
+        head=html.container(
             tags.title(title),
             
             # stylesheet
             tags.link(rel='Stylesheet', type='text/css', href=gallery.stylesheet.path_from(page))
-        ],
+        ),
 
-        body=[
+        body=html.container(
             # top-of-page breadcrumb nav
             breadcrumb(gallery, page),
             
@@ -184,6 +185,6 @@
             
             # footer
             tags.p(id='about')(tags.a(href='http://projects.qmsk.net/degal')('Degal'), gallery.version)
-        ],
+        ),
     )