server/repository.py
branchstable
changeset 3689 deb13e88e037
parent 3606 8326aceecb46
child 3694 33dbb1da1db9
equal deleted inserted replaced
3688:421fb447ecb2 3689:deb13e88e037
  1020         if source.should_call_hooks:
  1020         if source.should_call_hooks:
  1021             self.hm.call_hooks('before_add_entity', etype, session, entity)
  1021             self.hm.call_hooks('before_add_entity', etype, session, entity)
  1022         # XXX use entity.keys here since edited_attributes is not updated for
  1022         # XXX use entity.keys here since edited_attributes is not updated for
  1023         # inline relations
  1023         # inline relations
  1024         for attr in entity.keys():
  1024         for attr in entity.keys():
  1025             rschema = eschema.subject_relation(attr)
  1025             rschema = eschema.subjrels[attr]
  1026             if not rschema.is_final(): # inlined relation
  1026             if not rschema.final: # inlined relation
  1027                 relations.append((attr, entity[attr]))
  1027                 relations.append((attr, entity[attr]))
  1028         entity.set_defaults()
  1028         entity.set_defaults()
  1029         entity.check(creation=True)
  1029         entity.check(creation=True)
  1030         source.add_entity(session, entity)
  1030         source.add_entity(session, entity)
  1031         if source.uri != 'system':
  1031         if source.uri != 'system':
  1039         session.set_entity_cache(entity)
  1039         session.set_entity_cache(entity)
  1040         for rschema in eschema.subject_relations():
  1040         for rschema in eschema.subject_relations():
  1041             rtype = str(rschema)
  1041             rtype = str(rschema)
  1042             if rtype in VIRTUAL_RTYPES:
  1042             if rtype in VIRTUAL_RTYPES:
  1043                 continue
  1043                 continue
  1044             if rschema.is_final():
  1044             if rschema.final:
  1045                 entity.setdefault(rtype, None)
  1045                 entity.setdefault(rtype, None)
  1046             else:
  1046             else:
  1047                 entity.set_related_cache(rtype, 'subject', session.empty_rset())
  1047                 entity.set_related_cache(rtype, 'subject', session.empty_rset())
  1048         for rschema in eschema.object_relations():
  1048         for rschema in eschema.object_relations():
  1049             rtype = str(rschema)
  1049             rtype = str(rschema)
  1079         only_inline_rels, need_fti_update = True, False
  1079         only_inline_rels, need_fti_update = True, False
  1080         relations = []
  1080         relations = []
  1081         for attr in edited_attributes:
  1081         for attr in edited_attributes:
  1082             if attr == 'eid':
  1082             if attr == 'eid':
  1083                 continue
  1083                 continue
  1084             rschema = eschema.subject_relation(attr)
  1084             rschema = eschema.subjrels[attr]
  1085             if rschema.is_final():
  1085             if rschema.final:
  1086                 if eschema.rproperty(attr, 'fulltextindexed'):
  1086                 if eschema.rproperty(attr, 'fulltextindexed'):
  1087                     need_fti_update = True
  1087                     need_fti_update = True
  1088                 only_inline_rels = False
  1088                 only_inline_rels = False
  1089             else:
  1089             else:
  1090                 # inlined relation
  1090                 # inlined relation