2 ''' |
2 ''' |
3 Created on Jun 10, 2013 |
3 Created on Jun 10, 2013 |
4 |
4 |
5 @author: ymh |
5 @author: ymh |
6 ''' |
6 ''' |
7 from .models import Term |
7 from .models import TermLabel |
8 from .rdf_models import graph |
|
9 from dateutil import parser |
8 from dateutil import parser |
10 import re |
9 import re |
11 |
10 |
12 class ImportProcessor(object): |
11 class ImportProcessor(object): |
13 |
12 |
47 self.re_sub = re.compile(re_sub) if re_sub else None |
46 self.re_sub = re.compile(re_sub) if re_sub else None |
48 self.context = context |
47 self.context = context |
49 self.notice_term_klass = notice_term_klass |
48 self.notice_term_klass = notice_term_klass |
50 |
49 |
51 def build_notice_term(self, token, obj): |
50 def build_notice_term(self, token, obj): |
52 uri = graph.get_uri_for_term(token, context=self.context) |
51 |
53 if not uri: |
52 termlabels = list(TermLabel.objects.filter(label=token, term__thesaurus__uri=self.context).select_related()) |
54 return None |
53 if termlabels: |
55 term_obj = Term.objects.get(uri=uri) |
54 term_obj = termlabels[0].term |
56 if not self.notice_term_klass.objects.filter(notice=obj,term=term_obj).exists(): |
55 if not self.notice_term_klass.objects.filter(notice=obj,term=term_obj).exists(): |
57 return self.notice_term_klass(notice=obj,term=term_obj) |
56 return self.notice_term_klass(notice=obj,term=term_obj) |
|
57 else: |
|
58 return None |
|
59 else: |
|
60 return None |
58 |
61 |
59 def process(self, obj, value): |
62 def process(self, obj, value): |
60 res = {} |
63 res = {} |
61 #remove everything between () |
64 #remove everything between () |
62 value = getattr(obj, self.field) |
65 value = getattr(obj, self.field) |