web/ldt/ldt_utils/models.py
changeset 54 24397932219d
parent 16 b3692a42ac79
child 57 3a3c15c462f8
equal deleted inserted replaced
53:1fcf0bd88ba3 54:24397932219d
     1 from django.db import models
     1 from django.db import models
     2 from django.conf import settings
     2 from django.conf import settings
     3 from ldt.core.models import Document, Owner
     3 from ldt.core.models import Document, Owner
     4 from django.utils.translation import ugettext_lazy as _
     4 from django.utils.translation import ugettext_lazy as _
     5 from utils import create_ldt, copy_ldt, create_empty_iri
     5 from utils import create_ldt, copy_ldt, create_empty_iri, update_iri
     6 import os
       
     7 import os.path
     6 import os.path
     8 import uuid
     7 import uuid
     9 import xml
     8 import xml
    10 
     9 
    11 class Author(models.Model):
    10 class Author(models.Model):
    46         super(Content, self).delete()
    45         super(Content, self).delete()
    47         writer = lucene.IndexWriter(STORE, ANALYZER, True, lucene.IndexWriter.MaxFieldLength.UNLIMITED)
    46         writer = lucene.IndexWriter(STORE, ANALYZER, True, lucene.IndexWriter.MaxFieldLength.UNLIMITED)
    48         writer.deleteDocuments(lucene.Term("iri_id", self.iri_id))
    47         writer.deleteDocuments(lucene.Term("iri_id", self.iri_id))
    49         writer.commit()
    48         writer.commit()
    50         
    49         
       
    50     #TODO: better manage the change in .iri name and error scenario (save in temp file + rename
    51     def save(self):
    51     def save(self):
    52         # create iri file if needed
    52         # create iri file if needed
       
    53         created = False
    53         try:
    54         try:
    54             iri_file_path = self.iri_file_path()
    55             iri_file_path = self.iri_file_path()
    55             if not os.path.exists(iri_file_path):
    56             if not os.path.exists(iri_file_path):
    56                 dir = os.path.dirname(iri_file_path)
    57                 dir = os.path.dirname(iri_file_path)
    57                 if not os.path.exists(dir):
    58                 if not os.path.exists(dir):
    58                     os.makedirs(dir)
    59                     os.makedirs(dir)
       
    60                 created = True
    59                 file = open(iri_file_path,"w")
    61                 file = open(iri_file_path,"w")
    60                 create_empty_iri(file, self, "IRI")
    62                 create_empty_iri(file, self, "IRI")
       
    63             else:
       
    64                 created = False
       
    65                 update_iri(iri_file_path, self, "IRI")
       
    66                 
    61         except Exception, e:
    67         except Exception, e:
    62             if os.path.exists(iri_file_path):
    68             if created:
    63                 os.remove(iri_file_path)
    69                 if os.path.exists(iri_file_path):
    64                 raise e
    70                     os.remove(iri_file_path)
       
    71             raise e
    65         # update it 
    72         # update it 
    66         super(Content, self).save()
    73         super(Content, self).save()
    67     
    74     
    68     def __unicode__(self):
    75     def __unicode__(self):
    69         return str(self.id) + ": " + self.iri_id
    76         return str(self.id) + ": " + self.iri_id