src/core/import_processor.py
changeset 33 61c3ffd94f11
parent 28 5918a9d353d0
child 34 b1fd0e0197c8
equal deleted inserted replaced
32:ac5270714d2c 33:61c3ffd94f11
     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)