Changed rendering of fragment lists.
authorMarek Stępniowski <marek@stepniowski.com>
Wed, 3 Sep 2008 22:49:59 +0000 (00:49 +0200)
committerMarek Stępniowski <marek@stepniowski.com>
Wed, 3 Sep 2008 22:49:59 +0000 (00:49 +0200)
catalogue/views.py
templates/catalogue/main_page.html
templates/catalogue/tagged_book_list.html

index 49f4196..98d3f94 100644 (file)
@@ -75,6 +75,8 @@ def main_page(request):
     else:
         extra_where = 'NOT catalogue_tag.category = "set"'
     tags = models.Tag.objects.usage_for_model(models.Book, counts=True, extra={'where': [extra_where]})
     else:
         extra_where = 'NOT catalogue_tag.category = "set"'
     tags = models.Tag.objects.usage_for_model(models.Book, counts=True, extra={'where': [extra_where]})
+    fragment_tags = models.Tag.objects.usage_for_model(models.Fragment, counts=True,
+        extra={'where': ['catalogue_tag.category = "theme"']})
     categories = split_tags(tags)
     
     form = forms.SearchForm()
     categories = split_tags(tags)
     
     form = forms.SearchForm()
@@ -99,12 +101,17 @@ def tagged_book_list(request, tags=''):
         tags = models.Tag.get_tag_list(tags)
     except models.Tag.DoesNotExist:
         raise Http404
         tags = models.Tag.get_tag_list(tags)
     except models.Tag.DoesNotExist:
         raise Http404
-        
+    
+    model = models.Book
+    theme_is_set = any(tag.category == 'theme' for tag in tags)
+    if theme_is_set:
+        model = models.Fragment
+    
     if request.user.is_authenticated():
         extra_where = '(NOT catalogue_tag.category = "set" OR catalogue_tag.user_id = %d)' % request.user.id
     else:
         extra_where = 'NOT catalogue_tag.category = "set"'
     if request.user.is_authenticated():
         extra_where = '(NOT catalogue_tag.category = "set" OR catalogue_tag.user_id = %d)' % request.user.id
     else:
         extra_where = 'NOT catalogue_tag.category = "set"'
-    related_tags = models.Tag.objects.related_for_model(tags, models.Book, counts=True, extra={'where': [extra_where]})
+    related_tags = models.Tag.objects.related_for_model(tags, model, counts=True, extra={'where': [extra_where]})
     categories = split_tags(related_tags)
 
     return tagged_object_list(
     categories = split_tags(related_tags)
 
     return tagged_object_list(
index db7c95d..221595f 100644 (file)
@@ -72,7 +72,7 @@
             {% if categories.theme %}
                 <h2>Motywy</h2>
                 <ul>
             {% if categories.theme %}
                 <h2>Motywy</h2>
                 <ul>
-                {% for theme in categories.theme %}
+                {% for theme in fragment_tags %}
                     <li><a href="{% catalogue_url theme %}">{{ theme }}&nbsp;({{ theme.count }})</a></li>
                 {% endfor %}
                 </ul>                
                     <li><a href="{% catalogue_url theme %}">{{ theme }}&nbsp;({{ theme.count }})</a></li>
                 {% endfor %}
                 </ul>                
index 329b4df..cca0e56 100644 (file)
@@ -68,7 +68,7 @@
         {% endwith %}
         <ol>
         {% for book in object_list %}
         {% endwith %}
         <ol>
         {% for book in object_list %}
-            <li>{% include "catalogue/_book.html" %}</li>
+            <li>{% book book %}</li>
         {% endfor %}
         </ol>
         {% paginate %}
         {% endfor %}
         </ol>
         {% paginate %}