Explorar el Código

add bulk update to client

version-14
Pratik Vyas hace 11 años
padre
commit
68b367e677
Se han modificado 2 ficheros con 24 adiciones y 0 borrados
  1. +20
    -0
      webnotes/client.py
  2. +4
    -0
      webnotes/model/doc.py

+ 20
- 0
webnotes/client.py Ver fichero

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


@webnotes.whitelist() @webnotes.whitelist()
@@ -94,3 +95,22 @@ def make_width_property_setter():
bean = webnotes.bean(doclist) bean = webnotes.bean(doclist)
bean.ignore_permissions = True bean.ignore_permissions = True
bean.insert() 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 Ver fichero

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


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

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


Cargando…
Cancelar
Guardar