web/ldt/text/models.py
changeset 21 1a061f244254
parent 17 683ce4109c28
child 24 9e19b7ae3780
--- a/web/ldt/text/models.py	Fri Nov 19 18:14:02 2010 +0100
+++ b/web/ldt/text/models.py	Tue Nov 23 17:54:36 2010 +0100
@@ -9,6 +9,9 @@
 import os.path
 import uuid
 import lxml
+import lucene
+from ldt.ldt_utils import STORE, ANALYZER
+from annotindexer import AnnotIndexer
 #from django.core.management.validation import max_length
 
 def Property(func):
@@ -120,6 +123,31 @@
     def create_annotation(external_id, uri=None, tags=None, title=None, description=None, text=None, color=None, creator=None, contributor=None, creation_date=None, update_date=None):
         annotation = Annotation(external_id=external_id, uri=uri, tags=tags, title=title, description=description, text=text, color=color, creator=creator, contributor=contributor, creation_date=creation_date, update_date=update_date)
         annotation.save()
+        annotation.index_annot()
         
         return annotation
 
+
+    def delete(self):
+        super(Annotation, self).delete()
+        lucene.getVMEnv().attachCurrentThread()
+        writer = lucene.IndexWriter(STORE, ANALYZER, True, lucene.IndexWriter.MaxFieldLength.UNLIMITED)
+        writer.deleteDocuments(lucene.Term("external_id", self.external_id))
+        writer.close()
+
+    def index_annot(self):
+        lucene.getVMEnv().attachCurrentThread()
+        writer = lucene.IndexWriter(STORE, ANALYZER, True, lucene.IndexWriter.MaxFieldLength.UNLIMITED)
+        annotl = [self,]
+        indexer = AnnotIndexer(annotl,writer)
+        indexer.index_all()
+        writer.close()
+
+    def update_index(self):
+        lucene.getVMEnv().attachCurrentThread()
+        writer = lucene.IndexWriter(STORE, ANALYZER, True, lucene.IndexWriter.MaxFieldLength.UNLIMITED)
+        writer.deleteDocuments(lucene.Term("external_id", self.external_id))
+        writer.close()
+        self.index_annot()
+        
+        
\ No newline at end of file