fix
[wolnelektury.git] / src / picture / models.py
index 7ccd97c..b2f1f9e 100644 (file)
@@ -22,7 +22,7 @@ import re
 
 from PIL import Image
 
-from django.utils.translation import ugettext_lazy as _
+from django.utils.translation import gettext_lazy as _
 from newtagging import managers
 from os import path
 
@@ -57,19 +57,6 @@ class PictureArea(models.Model):
     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):
     """
@@ -136,6 +123,15 @@ class Picture(models.Model):
     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:
@@ -171,7 +167,7 @@ class Picture(models.Model):
             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
@@ -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)
-            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()
@@ -356,30 +350,9 @@ class Picture(models.Model):
             '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)
-        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