improved item display; added item-metadata page
authorgfawcett <gfawcett@6d9bc8c9-1ec2-4278-b937-99fde70a366f>
Thu, 27 Nov 2008 00:59:44 +0000 (00:59 +0000)
committergfawcett <gfawcett@6d9bc8c9-1ec2-4278-b937-99fde70a366f>
Thu, 27 Nov 2008 00:59:44 +0000 (00:59 +0000)
git-svn-id: svn://svn.open-ils.org/ILS-Contrib/servres/trunk@59 6d9bc8c9-1ec2-4278-b937-99fde70a366f

conifer/static/main.css
conifer/syrup/urls.py
conifer/syrup/views.py
conifer/templates/course_detail.xhtml
conifer/templates/item_metadata.xhtml [new file with mode: 0644]

index 235c02a..e23b7f8 100644 (file)
@@ -63,3 +63,7 @@ a:hover {  text-decoration: underline;  }
     background-color: #F8F8F8;
 }
 .pagetable thead th { font-size: smaller; text-align: left; padding: 2 8; }
+
+.metalinks { padding-left: 12; color: gray; }
+.metalinks a { color: navy; }
+.metalinks { position: absolute; left: 300; }
\ No newline at end of file
index 912a58d..255e67a 100644 (file)
@@ -7,4 +7,6 @@ urlpatterns = patterns('conifer.syrup.views',
     (r'^join/$', 'join_course'),
     (r'^instructors/$', 'instructors'),
     (r'^course/(?P<course_id>\d+)/$', 'course_detail'),
+    (r'^course/(?P<course_id>\d+)/item/(?P<item_id>\d+)/$', 'item_detail'),
+    (r'^course/(?P<course_id>\d+)/item/(?P<item_id>\d+)/meta$', 'item_metadata'),
 )
index a43d4af..aeecf22 100644 (file)
@@ -73,3 +73,20 @@ def course_detail(request, course_id):
         #allowed to access. We need to set up a permissions model.
         return login_required(lambda *args: None)(request)
     return g.render('course_detail.xhtml', course=course)
+
+def item_detail(request, course_id, item_id):
+    """Display an item (however that makes sense).""" 
+    # really, displaying an item will vary based on what type of item
+    # it is -- e.g. a URL item would redirect to the target URL. I'd
+    # like this URL to be the generic dispatcher, but for now let's
+    # just display some metadata about the item.
+    return item_metadata(request, course_id, item_id)
+
+def item_metadata(request, course_id, item_id):
+    """Display a metadata page for the item."""
+    course = get_object_or_404(models.Course, pk=course_id)
+    item = get_object_or_404(models.Item, pk=item_id)
+    assert item.course == course, 'Item not in course'
+    return g.render('item_metadata.xhtml', course=course,
+                    item=item)
+    
index 79c4415..a367880 100644 (file)
@@ -17,28 +17,21 @@ items = course.items()
       There are no items associated with this course yet.
     </p>
     <div py:if="items">
-      <table class="pagetable">
-       <thead>
-         <tr><th>Title</th><th>Type</th></tr>
-       </thead>
-       <tbody>
-         <tr py:for="item in items">
-           <td><a href="item/${item.id}/">${item.title}</a></td>
-           <td>${item.item_type}</td>
-           <td>${item.parent_heading}</td>
-         </tr>
-       </tbody>
-      </table>
 
-      <h2>Show-as-tree test</h2>
-
-      <ol py:def="show_tree(tree)" py:if="tree">
+      <ul py:def="show_tree(tree)" py:if="tree">
        <li py:for="item, subs in tree">
-         ${item}
+         <a href="item/${item.id}/">${item}</a> 
+         <span class="metalinks">
+           [<a href="item/${item.id}/meta">about</a>
+           &bull; <a href="/admin/syrup/item/${item.id}/">edit</a>
+           ]
+         </span>
          ${show_tree(subs)}
        </li>
-      </ol>
+      </ul>
       ${show_tree(course.item_tree())}
+    
+
     </div>
   </body>
 </html>
diff --git a/conifer/templates/item_metadata.xhtml b/conifer/templates/item_metadata.xhtml
new file mode 100644 (file)
index 0000000..327f46d
--- /dev/null
@@ -0,0 +1,22 @@
+<?python
+course_title = '%s: %s (%s)' % (course.title, course.title, course.term)
+title = item.title
+?>
+<html xmlns="http://www.w3.org/1999/xhtml"
+      xmlns:xi="http://www.w3.org/2001/XInclude"
+      xmlns:py="http://genshi.edgewall.org/">
+  <xi:include href="master.xhtml"/>
+  <head>
+    <title>${title}</title>
+  </head>
+  <body>
+    <h1>${title}</h1>
+    <p><a href="../../">${course_title}</a></p>
+    <p>${course.department}</p>
+
+    <p>Title: ${item.title}</p>
+    <p>Type: ${item.item_type}</p>
+    <p>Author: ${item.author}</p>
+    <p py:if="item.url">URL: <a href="${item.url}">${item.url}</a></p>
+  </body>
+</html>