src/jocondelab/views.py
changeset 61 0048668779c0
parent 57 a82c3913c1fc
child 62 33fd91a414cc
--- a/src/jocondelab/views.py	Wed Jul 10 18:16:59 2013 +0200
+++ b/src/jocondelab/views.py	Thu Jul 04 17:57:26 2013 +0200
@@ -60,7 +60,7 @@
 
 class TermEditView(DetailView, MultipleObjectMixin):
     
-    queryset = Term.objects.select_related()
+    queryset = Term.objects.select_related()  # @UndefinedVariable
     pk_url_kwarg = "term_id"
     context_object_name = "term"
     template_name = "jocondelab/term_edit.html"
@@ -106,6 +106,7 @@
         context = DetailView.get_context_data(self, **kwargs)
         
         context['notices'] = self.object.notices.select_related().all().prefetch_related('images')[:10]
+        context['ancestors'] = self.object.get_ancestors(ascending=True)
                  
         context['filter_form'] = self.get_filter_form()
         context['link_semantic_level_choice'] = TERM_WK_LINK_SEMANTIC_LEVEL_CHOICES
@@ -143,21 +144,24 @@
         
         
         object_list_ids = [obj.id for obj in list(page.object_list)]
-        current_index = object_list_ids.index(self.object.id)
+        
+        if self.object.id in object_list_ids:
+            current_index = object_list_ids.index(self.object.id)
 
-        if current_index > 0:
-            prev_id = object_list_ids[current_index-1]
-            prev_page = page.number
-        elif page.has_previous():
-            prev_page = page.previous_page_number()
-            prev_id = page.paginator.object_list[page.start_index() - 2].id
-
-        if current_index < (len(page)-1):
-            next_id = object_list_ids[current_index+1]
-            next_page = page.number
-        elif page.has_next():
-            next_page = page.next_page_number()
-            next_id = page.paginator.object_list[page.end_index()].id
+            if current_index > 0:
+                prev_id = object_list_ids[current_index-1]
+                prev_page = page.number
+            elif page.has_previous():
+                prev_page = page.previous_page_number()
+                prev_id = page.paginator.object_list[page.start_index() - 2].id
+    
+            if current_index < (len(page)-1):
+                next_id = object_list_ids[current_index+1]
+                next_page = page.number
+            elif page.has_next():
+                next_page = page.next_page_number()
+                next_id = page.paginator.object_list[page.end_index()].id
+        
 
         context.update({
             'prev_id': prev_id,
@@ -165,6 +169,7 @@
             'next_id': next_id,
             'next_page': next_page
         })
+                
 
         return context 
         
@@ -189,8 +194,8 @@
         self.form_values = self.form.cleaned_data
         
         try:
-            self.term = Term.objects.get(id=self.form_values['term_id'])
-        except Term.DoesNotExist:
+            self.term = Term.objects.get(id=self.form_values['term_id'])  # @UndefinedVariable
+        except Term.DoesNotExist:  # @UndefinedVariable
             return HttpResponse("Term %d not found" % self.form_values['term_id'],status=404)
 
         return self.process_term(request)