diff options
author | Aleksey Lim <alsroot@sugarlabs.org> | 2014-04-29 06:35:16 (GMT) |
---|---|---|
committer | Aleksey Lim <alsroot@sugarlabs.org> | 2014-04-29 06:35:16 (GMT) |
commit | fe07c5f9f1da79059f8fcd5e33e0f043b7cc6814 (patch) | |
tree | 241c22d3d947ae05bf16c53505be9cdabc99d70e /sugar_network | |
parent | 8ed5799f7d891b8d09ffdc298368f93382ddea5b (diff) |
While patching, place all props into Resource object
Diffstat (limited to 'sugar_network')
-rw-r--r-- | sugar_network/db/directory.py | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/sugar_network/db/directory.py b/sugar_network/db/directory.py index 79e7332..73aac90 100644 --- a/sugar_network/db/directory.py +++ b/sugar_network/db/directory.py @@ -231,20 +231,23 @@ class Directory(object): def patch(self, guid, patch, seqno=False): """Apply changes for documents.""" doc = self.resource(guid, self._storage.get(guid)) - merged = False + merge = [] for prop, meta in patch.items(): orig_meta = doc.meta(prop) if orig_meta and orig_meta['mtime'] >= meta['mtime']: continue + doc.posts[prop] = meta['value'] + merge.append((prop, meta)) + + for prop, meta in merge: if doc.post_seqno is None and seqno is not False: if not seqno: seqno = self._seqno.next() doc.post_seqno = seqno doc.post(prop, **meta) - merged = True - if merged and doc.exists: + if merge and doc.exists: # No need in after-merge event, further commit event # is enough to avoid increasing events flow self._index.store(guid, doc.posts, self._preindex) |