fix
[wolnelektury.git] / src / picture / models.py
index 5f5fe4c..b2f1f9e 100644 (file)
@@ -57,19 +57,6 @@ class PictureArea(models.Model):
     def get_area_json(self):
         return json.loads(self.area)
 
     def get_area_json(self):
         return json.loads(self.area)
 
-    @cached_render('picture/picturearea_short.html')
-    def midi_box(self):
-        themes = self.tags.filter(category='theme')
-        things = self.tags.filter(category='thing')
-        return {
-            'area': self,
-            'theme': themes[0] if themes else None,
-            'thing': things[0] if things else None,
-        }
-
-    def clear_cache(self):
-        clear_cached_renders(self.midi_box)
-
 
 class Picture(models.Model):
     """
 
 class Picture(models.Model):
     """
@@ -136,6 +123,15 @@ class Picture(models.Model):
     def authors(self):
         return self.tags.filter(category='author')
 
     def authors(self):
         return self.tags.filter(category='author')
 
+    def epochs(self):
+        return self.tags.filter(category='epoch')
+
+    def genres(self):
+        return self.tags.filter(category='genre')
+
+    def kinds(self):
+        return self.tags.filter(category='kind')
+
     def tag_unicode(self, category):
         relations = prefetched_relations(self, category)
         if relations:
     def tag_unicode(self, category):
         relations = prefetched_relations(self, category)
         if relations:
@@ -171,7 +167,7 @@ class Picture(models.Model):
             return None
 
     @classmethod
             return None
 
     @classmethod
-    def from_xml_file(cls, xml_file, image_file=None, image_store=None, overwrite=False, search_index=True):
+    def from_xml_file(cls, xml_file, image_file=None, image_store=None, overwrite=False):
         """
         Import xml and it's accompanying image file.
         If image file is missing, it will be fetched by librarian.picture.ImageStore
         """
         Import xml and it's accompanying image file.
         If image file is missing, it will be fetched by librarian.picture.ImageStore
@@ -296,8 +292,6 @@ class Picture(models.Model):
             picture.xml_file.save("%s.xml" % picture.slug, File(xml_file))
             picture.save()
             tasks.generate_picture_html(picture.id)
             picture.xml_file.save("%s.xml" % picture.slug, File(xml_file))
             picture.save()
             tasks.generate_picture_html(picture.id)
-            if not settings.NO_SEARCH_INDEX and search_index:
-                tasks.index_picture.delay(picture.id, picture_info=picture_xml.picture_info)
 
         if close_xml_file:
             xml_file.close()
 
         if close_xml_file:
             xml_file.close()
@@ -356,30 +350,9 @@ class Picture(models.Model):
             'picture': self,
         }
 
             'picture': self,
         }
 
-    @cached_render('picture/picture_short.html')
-    def midi_box(self):
-        return {
-            'picture': self,
-        }
-
     def related_themes(self):
         return catalogue.models.Tag.objects.usage_for_queryset(
             self.areas.all(), counts=True).filter(category__in=('theme', 'thing'))
 
     def clear_cache(self):
         clear_cached_renders(self.mini_box)
     def related_themes(self):
         return catalogue.models.Tag.objects.usage_for_queryset(
             self.areas.all(), counts=True).filter(category__in=('theme', 'thing'))
 
     def clear_cache(self):
         clear_cached_renders(self.mini_box)
-        clear_cached_renders(self.midi_box)
-
-    def search_index(self, picture_info=None, index=None, index_tags=True, commit=True):
-        if index is None:
-            from search.index import Index
-            index = Index()
-        try:
-            index.index_picture(self, picture_info)
-            if index_tags:
-                index.index_tags()
-            if commit:
-                index.index.commit()
-        except Exception as e:
-            index.index.rollback()
-            raise e