Changeset 1398

Show
Ignore:
Timestamp:
09/08/08 18:32:03 (2 months ago)
Author:
sgillies
Message:

Use a object modified subscriber instead of attribute setter hacks, test the subscribers

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • PleiadesEntity/trunk/content/Name.py

    r1395 r1398  
    117117 
    118118    meta_type = 'Name' 
    119     _at_rename_after_creation = True 
     119    #_at_rename_after_creation = True 
    120120 
    121121    schema = Name_schema 
     
    134134        """ 
    135135        return [t.getId() for t in self.getTemporalAttestations()] 
    136  
    137     security.declarePublic('setNameTransliterated') 
    138     def setNameTransliterated(self,value): 
    139         """ 
    140         """ 
    141         if len(value) == 0: 
    142             REQUEST = self.REQUEST 
    143             tNameLanguage = REQUEST.get('nameLanguage', None) 
    144             tNameAttested = REQUEST.get('nameAttested', None) 
    145             if tNameLanguage and tNameAttested: 
    146                 t = transliterate_name(tNameLanguage, tNameAttested) 
    147             else: 
    148                 t = '' 
    149         else: 
    150             t = value 
    151         if t: 
    152             self.getField('nameTransliterated').set(self, t) 
    153             self.getField('title').set(self, t) 
    154  
    155     security.declarePublic('setNameAttested') 
    156     def setNameAttested(self,value): 
    157         """ 
    158         """ 
    159         self.getField('nameAttested').set(self, value) 
    160         self.setNameTransliterated('') 
    161136 
    162137    security.declareProtected(View, 'getTemporalAttestations') 
  • PleiadesEntity/trunk/event.py

    r1393 r1398  
    44from Products.PleiadesEntity.content.interfaces import ITemporalAttestation \ 
    55    , ILocation, IName, IFeature, IPlace 
     6from Products.PleiadesEntity.Extensions.ws_transliteration import transliterate_name 
    67 
    78 
     
    1213        ob = aq_parent(child) 
    1314        if ILocation.providedBy(ob): 
    14             ob.reindexObject() 
    1515            locationChangeSubscriber(ob, event) 
    1616        elif IName.providedBy(ob): 
    17             ob.reindexObject() 
    1817            nameChangeSubscriber(ob, event) 
    1918        elif IFeature.providedBy(ob): 
    20             ob.reindexObject() 
    2119            featureChangeSubscriber(ob, event) 
    2220        elif IPlace.providedBy(ob): 
     
    2826@adapter(IName, IObjectModifiedEvent) 
    2927def nameChangeSubscriber(obj, event): 
     28    nameAttested = obj.getNameAttested() 
     29    nameLanguage = obj.getNameLanguage() 
     30    if nameAttested and nameLanguage: 
     31        t = transliterate_name(nameLanguage, nameAttested) 
     32        obj.getField('nameTransliterated').set(obj, t) 
     33    obj.getField('title').set(obj, obj.getNameTransliterated()) 
     34    obj.reindexObject() 
    3035    for f in obj.getBRefs('hasName'): 
    31         f.reindexObject() 
    3236        featureChangeSubscriber(f, event) 
    33         #for p in f.getBRefs('hasFeature'): 
    34         #    p.reindexObject() 
    3537 
    3638@adapter(ILocation, IObjectModifiedEvent) 
    3739def locationChangeSubscriber(obj, event): 
     40    obj.reindexObject() 
    3841    for f in obj.getBRefs('hasLocation'): 
    39         f.reindexObject() 
    4042        featureChangeSubscriber(f, event) 
    41         #for p in f.getBRefs('hasFeature'): 
    42         #    p.reindexObject() 
    4343 
    4444@adapter(IFeature, IObjectModifiedEvent) 
    4545def featureChangeSubscriber(obj, event): 
     46    obj.reindexObject() 
    4647    for p in obj.getBRefs('hasFeature'): 
    4748        p.reindexObject() 
     49 
     50 
  • PleiadesEntity/trunk/tests/Entities.txt

    r1356 r1398  
    1111Add entities 
    1212 
    13     >>> nid = names.invokeFactory('Name', title=u'Civitas Non', nameTransliterated=u'Civitas Non', nameAttested=u'Civitas Non', nameLanguage='la', nameType='geographic') 
     13    >>> nid = names.invokeFactory('Name', nameAttested=u'\u1f08\u03c6\u03c1\u03bf\u03b4\u03b9\u03c3\u03b9\u1f71\u03c2', nameLanguage='grc', nameType='geographic') 
    1414    >>> lid = locations.invokeFactory('Location') 
    1515    >>> pid = places.invokeFactory('Place') 
     
    3333 
    3434    >>> p.Title() 
    35     'Civitas Non
     35    'Aphrodisias
    3636 
    3737Test the geo adapters 
  • PleiadesEntity/trunk/tests/test_docfiles.py

    r1356 r1398  
    4545    'WSTransliteration.txt', 
    4646    'WSValidation.txt', 
     47    'subscribers.txt', 
    4748    'LoadEntity.txt', 
    4849    'BatchLoad.txt'