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 |