Browse Source

add bulk update to client

version-14
Pratik Vyas 11 years ago
parent
commit
68b367e677
2 changed files with 24 additions and 0 deletions
  1. +20
    -0
      webnotes/client.py
  2. +4
    -0
      webnotes/model/doc.py

+ 20
- 0
webnotes/client.py View File

@@ -5,6 +5,7 @@ from __future__ import unicode_literals
import webnotes
from webnotes import _
import webnotes.model
import webnotes.utils
import json

@webnotes.whitelist()
@@ -94,3 +95,22 @@ def make_width_property_setter():
bean = webnotes.bean(doclist)
bean.ignore_permissions = True
bean.insert()

@webnotes.whitelist()
def bulk_update(docs):
docs = json.loads(docs)
failed_docs = []
for doc in docs:
try:
ddoc = {key: val for key, val in doc.iteritems() if key not in ['doctype', 'docname']}
doctype = doc['doctype']
docname = doc['docname']
bean = webnotes.bean(doctype, docname)
bean.doc.update(ddoc)
bean.save()
except:
failed_docs.append({
'doc': doc,
'exc': webnotes.utils.getTraceback()
})
return {'failed_docs': failed_docs}

+ 4
- 0
webnotes/model/doc.py View File

@@ -181,6 +181,10 @@ class Document:
def get(self, name, value=None):
return self.fields.get(name, value)

def update(self, d):
self.fields.update(d)
return self

def insert(self):
self.fields['__islocal'] = 1
self.save()


Loading…
Cancel
Save