@@ -144,7 +144,7 @@ class DocType: | |||||
def post(self): | def post(self): | ||||
""" | """ | ||||
Save diff between Customize Form ModelWrapper and DocType ModelWrapper as property setter entries | |||||
Save diff between Customize Form Bean and DocType Bean as property setter entries | |||||
""" | """ | ||||
if self.doc.doc_type: | if self.doc.doc_type: | ||||
from webnotes.model import doc | from webnotes.model import doc | ||||
@@ -26,7 +26,7 @@ import webnotes | |||||
from webnotes.utils import cint, cstr, default_fields, flt | from webnotes.utils import cint, cstr, default_fields, flt | ||||
from webnotes.model import db_exists, default_fields | from webnotes.model import db_exists, default_fields | ||||
from webnotes.model.doc import Document, addchild, make_autoname | from webnotes.model.doc import Document, addchild, make_autoname | ||||
from webnotes.model.wrapper import getlist | |||||
from webnotes.model.bean import getlist | |||||
from webnotes import msgprint | from webnotes import msgprint | ||||
from webnotes.model.doctype import get | from webnotes.model.doctype import get | ||||
@@ -37,7 +37,7 @@ class DocType: | |||||
"fieldname":self.doc.workflow_state_field})): | "fieldname":self.doc.workflow_state_field})): | ||||
# create custom field | # create custom field | ||||
webnotes.model_wrapper([{ | |||||
webnotes.bean([{ | |||||
"doctype":"Custom Field", | "doctype":"Custom Field", | ||||
"dt": self.doc.document_type, | "dt": self.doc.document_type, | ||||
"__islocal": 1, | "__islocal": 1, | ||||
@@ -282,21 +282,21 @@ def delete_child_rows(rows, doctype): | |||||
def import_doc(d, doctype, overwrite, row_idx): | def import_doc(d, doctype, overwrite, row_idx): | ||||
"""import main (non child) document""" | """import main (non child) document""" | ||||
from webnotes.model.wrapper import ModelWrapper | |||||
from webnotes.model.bean import Bean | |||||
if webnotes.conn.exists(doctype, d['name']): | if webnotes.conn.exists(doctype, d['name']): | ||||
if overwrite: | if overwrite: | ||||
doclist = webnotes.model.doc.get(doctype, d['name']) | doclist = webnotes.model.doc.get(doctype, d['name']) | ||||
doclist[0].fields.update(d) | doclist[0].fields.update(d) | ||||
model_wrapper = ModelWrapper(doclist) | |||||
model_wrapper.save() | |||||
bean = Bean(doclist) | |||||
bean.save() | |||||
return 'Updated row (#%d) %s' % (row_idx, getlink(doctype, d['name'])) | return 'Updated row (#%d) %s' % (row_idx, getlink(doctype, d['name'])) | ||||
else: | else: | ||||
return 'Ignored row (#%d) %s (exists)' % (row_idx, | return 'Ignored row (#%d) %s (exists)' % (row_idx, | ||||
getlink(doctype, d['name'])) | getlink(doctype, d['name'])) | ||||
else: | else: | ||||
d['__islocal'] = 1 | d['__islocal'] = 1 | ||||
dl = ModelWrapper([webnotes.model.doc.Document(fielddata = d)]) | |||||
dl = Bean([webnotes.model.doc.Document(fielddata = d)]) | |||||
dl.save() | dl.save() | ||||
return 'Inserted row (#%d) %s' % (row_idx, getlink(doctype, | return 'Inserted row (#%d) %s' % (row_idx, getlink(doctype, | ||||
dl.doc.fields['name'])) | dl.doc.fields['name'])) |
@@ -1,5 +1,6 @@ | |||||
from __future__ import unicode_literals | from __future__ import unicode_literals | ||||
import webnotes | import webnotes | ||||
import webnotes.defaults | |||||
@webnotes.whitelist(allow_roles=["System Manager", "Administrator"]) | @webnotes.whitelist(allow_roles=["System Manager", "Administrator"]) | ||||
def get_users_and_links(): | def get_users_and_links(): | ||||
@@ -41,7 +42,8 @@ def get_properties(user=None, key=None): | |||||
def remove(user, name): | def remove(user, name): | ||||
webnotes.conn.sql("""delete from tabDefaultValue where name=%s""", name) | webnotes.conn.sql("""delete from tabDefaultValue where name=%s""", name) | ||||
webnotes.clear_cache(user=user) | webnotes.clear_cache(user=user) | ||||
webnotes.defaults(user=user) | |||||
@webnotes.whitelist(allow_roles=["System Manager", "Administrator"]) | @webnotes.whitelist(allow_roles=["System Manager", "Administrator"]) | ||||
def add(parent, defkey, defvalue): | def add(parent, defkey, defvalue): | ||||
webnotes.conn.add_default(defkey, defvalue, parent) | |||||
webnotes.defaults.add_user_default(defkey, defvalue, parent) |
@@ -312,12 +312,15 @@ def doclist(lst=None): | |||||
from webnotes.model.doclist import DocList | from webnotes.model.doclist import DocList | ||||
return DocList(lst) | return DocList(lst) | ||||
def model_wrapper(doctype=None, name=None): | |||||
from webnotes.model.wrapper import ModelWrapper | |||||
return ModelWrapper(doctype, name) | |||||
def bean(doctype=None, name=None, copy=None): | |||||
from webnotes.model.bean import Bean | |||||
if copy: | |||||
return Bean(copy_doclist(copy)) | |||||
else: | |||||
return Bean(doctype, name) | |||||
def get_doclist(doctype, name=None): | def get_doclist(doctype, name=None): | ||||
return model_wrapper(doctype, name).doclist | |||||
return bean(doctype, name).doclist | |||||
def get_doctype(doctype, processed=False): | def get_doctype(doctype, processed=False): | ||||
import webnotes.model.doctype | import webnotes.model.doctype | ||||
@@ -357,7 +360,7 @@ def get_method(method_string): | |||||
def make_property_setter(args): | def make_property_setter(args): | ||||
args = _dict(args) | args = _dict(args) | ||||
model_wrapper([{ | |||||
bean([{ | |||||
'doctype': "Property Setter", | 'doctype': "Property Setter", | ||||
'doctype_or_field': args.doctype_or_field or "DocField", | 'doctype_or_field': args.doctype_or_field or "DocField", | ||||
'doc_type': args.doctype, | 'doc_type': args.doctype, | ||||
@@ -30,7 +30,7 @@ def get(doctype, name=None, filters=None): | |||||
name = webnotes.conn.get_value(doctype, json.loads(filters)) | name = webnotes.conn.get_value(doctype, json.loads(filters)) | ||||
if not name: | if not name: | ||||
raise Exception, "No document found for given filters" | raise Exception, "No document found for given filters" | ||||
return [d.fields for d in webnotes.model_wrapper(doctype, name).doclist] | |||||
return [d.fields for d in webnotes.bean(doctype, name).doclist] | |||||
@webnotes.whitelist() | @webnotes.whitelist() | ||||
def insert(doclist): | def insert(doclist): | ||||
@@ -45,7 +45,7 @@ def save(doclist): | |||||
if isinstance(doclist, basestring): | if isinstance(doclist, basestring): | ||||
doclist = json.loads(doclist) | doclist = json.loads(doclist) | ||||
doclistobj = webnotes.model_wrapper(doclist) | |||||
doclistobj = webnotes.bean(doclist) | |||||
doclistobj.save() | doclistobj.save() | ||||
return [d.fields for d in doclist] | return [d.fields for d in doclist] | ||||
@@ -55,14 +55,14 @@ def submit(doclist): | |||||
if isinstance(doclist, basestring): | if isinstance(doclist, basestring): | ||||
doclist = json.loads(doclist) | doclist = json.loads(doclist) | ||||
doclistobj = webnotes.model_wrapper(doclist) | |||||
doclistobj = webnotes.bean(doclist) | |||||
doclistobj.submit() | doclistobj.submit() | ||||
return [d.fields for d in doclist] | return [d.fields for d in doclist] | ||||
@webnotes.whitelist() | @webnotes.whitelist() | ||||
def cancel(doctype, name): | def cancel(doctype, name): | ||||
wrapper = webnotes.model_wrapper(doctype, name) | |||||
wrapper = webnotes.bean(doctype, name) | |||||
wrapper.cancel() | wrapper.cancel() | ||||
return [d.fields for d in wrapper.doclist] | return [d.fields for d in wrapper.doclist] | ||||
@@ -77,4 +77,4 @@ def set_default(key, value, parent=None): | |||||
def make_width_property_setter(): | def make_width_property_setter(): | ||||
doclist = json.loads(webnotes.form_dict.doclist) | doclist = json.loads(webnotes.form_dict.doclist) | ||||
if doclist[0]["doctype"]=="Property Setter" and doclist[0]["property"]=="width": | if doclist[0]["doctype"]=="Property Setter" and doclist[0]["property"]=="width": | ||||
webnotes.model_wrapper(doclist).save() | |||||
webnotes.bean(doclist).save() |
@@ -299,15 +299,10 @@ class Database: | |||||
doc.fields[field] = val | doc.fields[field] = val | ||||
def set_global(self, key, val, user='__global'): | def set_global(self, key, val, user='__global'): | ||||
res = self.sql('select defkey from `tabDefaultValue` where defkey=%s and parent=%s', (key, user)) | |||||
if res: | |||||
self.sql('update `tabDefaultValue` set defvalue=%s where parent=%s and defkey=%s', (str(val), user, key)) | |||||
else: | |||||
self.sql('insert into `tabDefaultValue` (name, defkey, defvalue, parent) values (%s,%s,%s,%s)', (user+'_'+key, key, str(val), user)) | |||||
self.set_default(key, val, user) | |||||
def get_global(self, key, user='__global'): | def get_global(self, key, user='__global'): | ||||
g = self.sql("select defvalue from tabDefaultValue where defkey=%s and parent=%s", (key, user)) | |||||
return g and g[0][0] or None | |||||
return self.get_default(key, val, user) | |||||
def get_globals_like(self, key): | def get_globals_like(self, key): | ||||
return [g[0] for g in self.sql("""select defvalue from tabDefaultValue | return [g[0] for g in self.sql("""select defvalue from tabDefaultValue | ||||
@@ -315,56 +310,31 @@ class Database: | |||||
def set_default(self, key, val, parent="Control Panel"): | def set_default(self, key, val, parent="Control Panel"): | ||||
"""set control panel default (tabDefaultVal)""" | """set control panel default (tabDefaultVal)""" | ||||
if self.sql("""select defkey from `tabDefaultValue` where | |||||
defkey=%s and parent=%s """, (key, parent)): | |||||
# update | |||||
self.sql("""update `tabDefaultValue` set defvalue=%s | |||||
where parent=%s and defkey=%s""", (val, parent, key)) | |||||
webnotes.clear_cache() | |||||
else: | |||||
self.add_default(key, val, parent) | |||||
import webnotes.defaults | |||||
webnotes.defaults.set_default(key, val, parent) | |||||
def add_default(self, key, val, parent="Control Panel"): | def add_default(self, key, val, parent="Control Panel"): | ||||
d = webnotes.doc('DefaultValue') | |||||
d.parent = parent | |||||
d.parenttype = 'Control Panel' # does not matter | |||||
d.parentfield = 'system_defaults' | |||||
d.defkey = key | |||||
d.defvalue = val | |||||
d.save(1) | |||||
webnotes.clear_cache() | |||||
import webnotes.defaults | |||||
webnotes.defaults.add_default(key, val, parent) | |||||
def get_default(self, key, parent="Control Panel"): | def get_default(self, key, parent="Control Panel"): | ||||
"""get default value""" | """get default value""" | ||||
ret = self.get_defaults_as_list(key, parent) | |||||
return ret and ret[0] or None | |||||
import webnotes.defaults | |||||
d = webnotes.defaults.get_default(key, val, parent) | |||||
return isinstance(d, list) and d[0] or d | |||||
def get_defaults_as_list(self, key, parent="Control Panel"): | def get_defaults_as_list(self, key, parent="Control Panel"): | ||||
ret = [r[0] for r in self.sql("""select defvalue from \ | |||||
tabDefaultValue where defkey=%s and parent=%s""", (key, parent))] | |||||
if key in ["owner", "user"] and webnotes.session: | |||||
ret.append(webnotes.session.user) | |||||
return ret | |||||
import webnotes.defaults | |||||
d = webnotes.defaults.get_default(key, val, parent) | |||||
return isinstance(d, basestring) and [d] or d | |||||
def get_defaults(self, key=None, parent="Control Panel"): | def get_defaults(self, key=None, parent="Control Panel"): | ||||
"""get all defaults""" | """get all defaults""" | ||||
import webnotes.defaults | |||||
if key: | if key: | ||||
return self.get_default(key, parent) | |||||
return webnotes.defaults.get_defaults(parent).get(key) | |||||
else: | else: | ||||
res = self.sql("""select defkey, defvalue from `tabDefaultValue` | |||||
where parent = %s""", parent, as_dict=1) | |||||
defaults = webnotes._dict({}) | |||||
for d in res: | |||||
if d.defkey in defaults: | |||||
# listify | |||||
if isinstance(defaults[d.defkey], basestring): | |||||
defaults[d.defkey] = [defaults[d.defkey]] | |||||
defaults[d.defkey].append(d.defvalue) | |||||
else: | |||||
defaults[d.defkey] = d.defvalue | |||||
return defaults | |||||
return webnotes.defaults.get_defaults(parent) | |||||
def begin(self): | def begin(self): | ||||
return # not required | return # not required | ||||
@@ -0,0 +1,107 @@ | |||||
from __future__ import unicode_literals | |||||
import webnotes | |||||
import memc | |||||
# User | |||||
def set_user_default(key, value, user=None): | |||||
set_default(key, value, user or webnotes.session.user) | |||||
def add_user_default(key, value, user=None): | |||||
add_default(key, value, user or webnotes.session.user) | |||||
def get_user_default(key, user=None): | |||||
d = get_defaults(user or webnotes.session.user).get(key, None) | |||||
if d is None: | |||||
d = get_global_default(key) | |||||
return isinstance(d, list) and d[0] or d | |||||
def get_user_defaults(key, user=None): | |||||
d = get_defaults(user or webnotes.session.user).get(key, None) | |||||
if d is None: | |||||
d = get_global_defaults(key) | |||||
return isinstance(d, basestring) and [d] or d | |||||
def get_all_user_defaults(user=None): | |||||
userd = get_defaults(user or webnotes.session.user) | |||||
globald = get_defaults() | |||||
globald.update(userd) | |||||
return globald | |||||
def clear_user_default(key, user=None): | |||||
clear_default(key, user or webnotes.session.user) | |||||
# Global | |||||
def set_global_default(key, value): | |||||
set_default(key, value, "Control Panel") | |||||
def add_global_default(key, value): | |||||
add_default(key, value, "Control Panel") | |||||
def get_global_default(key): | |||||
d = get_defaults().get(key, None) | |||||
return isinstance(d, list) and d[0] or d | |||||
def get_global_defaults(key): | |||||
d = get_defaults().get(key, None) | |||||
return isinstance(d, basestring) and [d] or d | |||||
# Common | |||||
def set_default(key, value, parent): | |||||
if webnotes.conn.sql("""select defkey from `tabDefaultValue` where | |||||
defkey=%s and parent=%s """, (key, parent)): | |||||
# update | |||||
webnotes.conn.sql("""update `tabDefaultValue` set defvalue=%s | |||||
where parent=%s and defkey=%s""", (value, parent, key)) | |||||
clear_cache(parent) | |||||
else: | |||||
add_default(key, value, parent) | |||||
def add_default(key, value, parent): | |||||
d = webnotes.doc({ | |||||
"doctype": "DefaultValue", | |||||
"parent": parent, | |||||
"parenttype": "Control Panel", | |||||
"parentfield": "system_defaults", | |||||
"defkey": key, | |||||
"defvalue": value | |||||
}) | |||||
d.insert() | |||||
clear_cache(parent) | |||||
def clear_default(key, parent="Control Panel"): | |||||
webnotes.conn.sql("""delete from tabDefaultValue where defkey=%s and parent=%s""", (key, parent)) | |||||
clear_cache(parent) | |||||
def get_defaults(parent="Control Panel"): | |||||
"""get all defaults""" | |||||
defaults = webnotes.cache().get_value("__defaults:" + parent) | |||||
if not defaults: | |||||
if parent=="Control Panel": | |||||
res = webnotes.conn.sql("""select defkey, defvalue from `tabDefaultValue` | |||||
where parent = %s order by creation""", parent, as_dict=1) | |||||
else: | |||||
roles = webnotes.get_roles() | |||||
res = webnotes.conn.sql("""select defkey, defvalue from `tabDefaultValue` | |||||
where parent in ('%s') order by creation""" % ("', '".join(roles)), as_dict=1) | |||||
defaults = webnotes._dict({}) | |||||
for d in res: | |||||
if d.defkey in defaults: | |||||
# listify | |||||
if isinstance(defaults[d.defkey], basestring): | |||||
defaults[d.defkey] = [defaults[d.defkey]] | |||||
defaults[d.defkey].append(d.defvalue) | |||||
else: | |||||
defaults[d.defkey] = d.defvalue | |||||
webnotes.cache().set_value("__defaults:" + parent, defaults) | |||||
return defaults | |||||
def clear_cache(parent): | |||||
webnotes.cache().delete_value("__defaults:" + parent) | |||||
webnotes.clear_cache() |
@@ -73,7 +73,7 @@ def dt_map(): | |||||
import webnotes.model.utils | import webnotes.model.utils | ||||
from webnotes.model.code import get_obj | from webnotes.model.code import get_obj | ||||
from webnotes.model.doc import Document | from webnotes.model.doc import Document | ||||
from webnotes.model.wrapper import ModelWrapper | |||||
from webnotes.model.bean import Bean | |||||
form_dict = webnotes.form_dict | form_dict = webnotes.form_dict | ||||
@@ -84,7 +84,7 @@ def dt_map(): | |||||
from_to_list = form_dict.get('from_to_list') | from_to_list = form_dict.get('from_to_list') | ||||
dm = get_obj('DocType Mapper', from_doctype +'-' + to_doctype) | dm = get_obj('DocType Mapper', from_doctype +'-' + to_doctype) | ||||
dl = dm.dt_map(from_doctype, to_doctype, from_docname, Document(fielddata = dt_list[0]), (len(dt_list) > 1) and ModelWrapper(dt_list).doclist or [], from_to_list) | |||||
dl = dm.dt_map(from_doctype, to_doctype, from_docname, Document(fielddata = dt_list[0]), (len(dt_list) > 1) and Bean(dt_list).doclist or [], from_to_list) | |||||
webnotes.response['docs'] = dl | webnotes.response['docs'] = dl | ||||
@@ -37,7 +37,7 @@ def insert(doclist): | |||||
else: | else: | ||||
d.fields["__islocal"] = 1 | d.fields["__islocal"] = 1 | ||||
wrapper = webnotes.model_wrapper(doclist) | |||||
wrapper = webnotes.bean(doclist) | |||||
wrapper.save() | wrapper.save() | ||||
return wrapper | return wrapper | ||||
@@ -22,7 +22,7 @@ | |||||
from __future__ import unicode_literals | from __future__ import unicode_literals | ||||
""" | """ | ||||
Transactions are defined as collection of classes, a ModelWrapper represents collection of Document | |||||
Transactions are defined as collection of classes, a Bean represents collection of Document | |||||
objects for a transaction with main and children. | objects for a transaction with main and children. | ||||
Group actions like save, etc are performed on doclists | Group actions like save, etc are performed on doclists | ||||
@@ -33,7 +33,7 @@ from webnotes import _ | |||||
from webnotes.utils import cint | from webnotes.utils import cint | ||||
from webnotes.model.doc import Document | from webnotes.model.doc import Document | ||||
class ModelWrapper: | |||||
class Bean: | |||||
""" | """ | ||||
Collection of Documents with one parent and multiple children | Collection of Documents with one parent and multiple children | ||||
""" | """ | ||||
@@ -306,9 +306,9 @@ class ModelWrapper: | |||||
def clone(source_wrapper): | def clone(source_wrapper): | ||||
""" Copy previous invoice and change dates""" | """ Copy previous invoice and change dates""" | ||||
if isinstance(source_wrapper, list): | if isinstance(source_wrapper, list): | ||||
source_wrapper = ModelWrapper(source_wrapper) | |||||
source_wrapper = Bean(source_wrapper) | |||||
new_wrapper = ModelWrapper(source_wrapper.doclist.copy()) | |||||
new_wrapper = Bean(source_wrapper.doclist.copy()) | |||||
new_wrapper.doc.fields.update({ | new_wrapper.doc.fields.update({ | ||||
"amended_from": None, | "amended_from": None, | ||||
"amendment_date": None, | "amendment_date": None, |
@@ -32,7 +32,7 @@ methods in following modules are imported for backward compatibility | |||||
* webnotes.* | * webnotes.* | ||||
* webnotes.utils.* | * webnotes.utils.* | ||||
* webnotes.model.doc.* | * webnotes.model.doc.* | ||||
* webnotes.model.wrapper.* | |||||
* webnotes.model.bean.* | |||||
""" | """ | ||||
custom_class = ''' | custom_class = ''' | ||||
import webnotes | import webnotes | ||||
@@ -60,7 +60,7 @@ def sync_doctype(module_name, docname, force=0): | |||||
def merge_doctype(doclist, force=False): | def merge_doctype(doclist, force=False): | ||||
modified = doclist[0]['modified'] | modified = doclist[0]['modified'] | ||||
if not doclist: | if not doclist: | ||||
raise Exception('ModelWrapper could not be evaluated') | |||||
raise Exception('Bean could not be evaluated') | |||||
db_modified = str(webnotes.conn.get_value(doclist[0].get('doctype'), | db_modified = str(webnotes.conn.get_value(doclist[0].get('doctype'), | ||||
doclist[0].get('name'), 'modified')) | doclist[0].get('name'), 'modified')) | ||||
@@ -208,7 +208,7 @@ def get_system_managers(): | |||||
return [p[0] for p in system_managers] | return [p[0] for p in system_managers] | ||||
def add_role(profile, role): | def add_role(profile, role): | ||||
profile_wrapper = webnotes.model_wrapper("Profile", profile) | |||||
profile_wrapper = webnotes.bean("Profile", profile) | |||||
profile_wrapper.doclist.append({ | profile_wrapper.doclist.append({ | ||||
"doctype": "UserRole", | "doctype": "UserRole", | ||||
"parentfield": "user_roles", | "parentfield": "user_roles", | ||||
@@ -53,7 +53,7 @@ def clear_cache(user=None): | |||||
for sess in webnotes.conn.sql("""select user, sid from tabSessions""", as_dict=1): | for sess in webnotes.conn.sql("""select user, sid from tabSessions""", as_dict=1): | ||||
cache.delete_value("sesssion:" + sess.sid) | cache.delete_value("sesssion:" + sess.sid) | ||||
cache.delete_value("bootinfo:" + sess.user) | cache.delete_value("bootinfo:" + sess.user) | ||||
def clear_sessions(user=None, keep_current=False): | def clear_sessions(user=None, keep_current=False): | ||||
if not user: | if not user: | ||||
user = webnotes.session.user | user = webnotes.session.user | ||||
@@ -69,7 +69,7 @@ def make_test_objects(doctype, test_records): | |||||
for doclist in test_records: | for doclist in test_records: | ||||
if not "doctype" in doclist[0]: | if not "doctype" in doclist[0]: | ||||
doclist[0]["doctype"] = doctype | doclist[0]["doctype"] = doctype | ||||
d = webnotes.model_wrapper((webnotes.doclist(doclist)).copy()) | |||||
d = webnotes.bean((webnotes.doclist(doclist)).copy()) | |||||
if webnotes.test_objects.get(d.doc.doctype): | if webnotes.test_objects.get(d.doc.doctype): | ||||
# do not create test records, if already exists | # do not create test records, if already exists | ||||
return [] | return [] | ||||
@@ -100,7 +100,7 @@ def export_doc(doctype, docname): | |||||
make_test_records(doctype) | make_test_records(doctype) | ||||
meta = webnotes.get_doctype(doctype) | meta = webnotes.get_doctype(doctype) | ||||
for d in webnotes.model_wrapper(doctype, docname): | |||||
for d in webnotes.bean(doctype, docname): | |||||
new_doc = {} | new_doc = {} | ||||
for key, val in d.fields.iteritems(): | for key, val in d.fields.iteritems(): | ||||
if val and key not in ignore_list: | if val and key not in ignore_list: | ||||
@@ -157,6 +157,7 @@ if __name__=="__main__": | |||||
parser.add_argument('-v', '--verbose', default=False, action="store_true") | parser.add_argument('-v', '--verbose', default=False, action="store_true") | ||||
parser.add_argument('-e', '--export', nargs=2, metavar="DOCTYPE DOCNAME") | parser.add_argument('-e', '--export', nargs=2, metavar="DOCTYPE DOCNAME") | ||||
parser.add_argument('-a', '--all', default=False, action="store_true") | parser.add_argument('-a', '--all', default=False, action="store_true") | ||||
parser.add_argument('-m', '--module', default=1, metavar="MODULE") | |||||
args = parser.parse_args() | args = parser.parse_args() | ||||
webnotes.print_messages = args.verbose | webnotes.print_messages = args.verbose | ||||
@@ -170,5 +171,10 @@ if __name__=="__main__": | |||||
run_all_tests(args.verbose) | run_all_tests(args.verbose) | ||||
elif args.export: | elif args.export: | ||||
export_doc(args.export[0], args.export[1]) | export_doc(args.export[0], args.export[1]) | ||||
elif args.module: | |||||
test_suite = unittest.TestSuite() | |||||
__import__(args.module) | |||||
test_suite.addTest(unittest.TestLoader().loadTestsFromModule(sys.modules[args.module])) | |||||
unittest.TextTestRunner(verbosity=1+(args.verbose and 1 or 0)).run(test_suite) | |||||
@@ -0,0 +1,37 @@ | |||||
import webnotes, unittest | |||||
from webnotes.defaults import * | |||||
class TestDefaults(unittest.TestCase): | |||||
def test_global(self): | |||||
set_global_default("key1", "value1") | |||||
self.assertEquals(get_global_default("key1"), "value1") | |||||
set_global_default("key1", "value2") | |||||
self.assertEquals(get_global_default("key1"), "value2") | |||||
add_global_default("key1", "value3") | |||||
self.assertEquals(get_global_default("key1"), "value2") | |||||
self.assertEquals(get_global_defaults("key1"), ["value2", "value3"]) | |||||
def test_user(self): | |||||
set_user_default("key1", "2value1") | |||||
self.assertEquals(get_user_default("key1"), "2value1") | |||||
set_user_default("key1", "2value2") | |||||
self.assertEquals(get_user_default("key1"), "2value2") | |||||
add_user_default("key1", "3value3") | |||||
self.assertEquals(get_user_default("key1"), "2value2") | |||||
self.assertEquals(get_user_defaults("key1"), ["2value2", "3value3"]) | |||||
def test_global_if_not_user(self): | |||||
set_global_default("key4", "value4") | |||||
self.assertEquals(get_user_default("key4"), "value4") | |||||
def test_clear(self): | |||||
set_user_default("key5", "value5") | |||||
self.assertEquals(get_user_default("key5"), "value5") | |||||
clear_user_default("key5") | |||||
self.assertEquals(get_user_default("key5"), None) | |||||
@@ -109,7 +109,7 @@ def build_for_doc_from_database(fields): | |||||
for item in webnotes.conn.sql("""select name from `tab%s`""" % fields.doctype, as_dict=1): | for item in webnotes.conn.sql("""select name from `tab%s`""" % fields.doctype, as_dict=1): | ||||
messages = [] | messages = [] | ||||
doclist = webnotes.model_wrapper(fields.doctype, item.name).doclist | |||||
doclist = webnotes.bean(fields.doctype, item.name).doclist | |||||
for doc in doclist: | for doc in doclist: | ||||
if doc.doctype in fields: | if doc.doctype in fields: | ||||
@@ -33,7 +33,7 @@ from __future__ import unicode_literals | |||||
import webnotes, unittest | import webnotes, unittest | ||||
from webnotes import msgprint | from webnotes import msgprint | ||||
from webnotes.model.wrapper import ModelWrapper | |||||
from webnotes.model.bean import Bean | |||||
from webnotes.model.doc import Document | from webnotes.model.doc import Document | ||||
class TestNSM(unittest.TestCase): | class TestNSM(unittest.TestCase): | ||||
@@ -53,7 +53,7 @@ class TestNSM(unittest.TestCase): | |||||
] | ] | ||||
for d in self.data: | for d in self.data: | ||||
self.__dict__[d[0]] = ModelWrapper([Document(fielddata = { | |||||
self.__dict__[d[0]] = Bean([Document(fielddata = { | |||||
"doctype": "Item Group", "item_group_name": d[0], "parent_item_group": d[1], | "doctype": "Item Group", "item_group_name": d[0], "parent_item_group": d[1], | ||||
"__islocal": 1 | "__islocal": 1 | ||||
})]) | })]) | ||||
@@ -30,7 +30,7 @@ def update_event(args, field_map): | |||||
args = webnotes._dict(json.loads(args)) | args = webnotes._dict(json.loads(args)) | ||||
field_map = webnotes._dict(json.loads(field_map)) | field_map = webnotes._dict(json.loads(field_map)) | ||||
w = webnotes.model_wrapper(args.doctype, args.name) | |||||
w = webnotes.bean(args.doctype, args.name) | |||||
w.doc.fields[field_map.start] = args[field_map.start] | w.doc.fields[field_map.start] = args[field_map.start] | ||||
w.doc.fields[field_map.end] = args[field_map.end] | w.doc.fields[field_map.end] = args[field_map.end] | ||||
w.save() | w.save() | ||||
@@ -92,7 +92,7 @@ def load_single_doc(dt, dn, user): | |||||
return None | return None | ||||
try: | try: | ||||
dl = webnotes.model_wrapper(dt, dn).doclist | |||||
dl = webnotes.bean(dt, dn).doclist | |||||
except Exception, e: | except Exception, e: | ||||
webnotes.errprint(webnotes.utils.getTraceback()) | webnotes.errprint(webnotes.utils.getTraceback()) | ||||
webnotes.msgprint('Error in script while loading') | webnotes.msgprint('Error in script while loading') | ||||
@@ -30,7 +30,7 @@ def runserverobj(): | |||||
Run server objects | Run server objects | ||||
""" | """ | ||||
import webnotes.model.code | import webnotes.model.code | ||||
from webnotes.model.wrapper import ModelWrapper | |||||
from webnotes.model.bean import Bean | |||||
from webnotes.utils import cint | from webnotes.utils import cint | ||||
wrapper = None | wrapper = None | ||||
@@ -44,7 +44,7 @@ def runserverobj(): | |||||
so = webnotes.model.code.get_obj(dt, dn) | so = webnotes.model.code.get_obj(dt, dn) | ||||
else: | else: | ||||
wrapper = ModelWrapper() | |||||
wrapper = Bean() | |||||
wrapper.from_compressed(webnotes.form_dict.get('docs'), dn) | wrapper.from_compressed(webnotes.form_dict.get('docs'), dn) | ||||
if not wrapper.has_read_perm(): | if not wrapper.has_read_perm(): | ||||
webnotes.msgprint(_("No Permission"), raise_exception = True) | webnotes.msgprint(_("No Permission"), raise_exception = True) | ||||
@@ -27,7 +27,7 @@ import webnotes | |||||
def savedocs(): | def savedocs(): | ||||
"""save / submit / update doclist""" | """save / submit / update doclist""" | ||||
try: | try: | ||||
wrapper = webnotes.model_wrapper() | |||||
wrapper = webnotes.bean() | |||||
wrapper.from_compressed(webnotes.form_dict.docs, webnotes.form_dict.docname) | wrapper.from_compressed(webnotes.form_dict.docs, webnotes.form_dict.docname) | ||||
# action | # action | ||||
@@ -48,7 +48,7 @@ def savedocs(): | |||||
def cancel(doctype=None, name=None): | def cancel(doctype=None, name=None): | ||||
"""cancel a doclist""" | """cancel a doclist""" | ||||
try: | try: | ||||
wrapper = webnotes.model_wrapper(doctype, name) | |||||
wrapper = webnotes.bean(doctype, name) | |||||
wrapper.cancel() | wrapper.cancel() | ||||
send_updated_docs(wrapper) | send_updated_docs(wrapper) | ||||
@@ -243,7 +243,7 @@ def save_report(): | |||||
d.ref_doctype = data['doctype'] | d.ref_doctype = data['doctype'] | ||||
d.json = data['json'] | d.json = data['json'] | ||||
webnotes.model_wrapper([d]).save() | |||||
webnotes.bean([d]).save() | |||||
webnotes.msgprint("%s saved." % d.name) | webnotes.msgprint("%s saved." % d.name) | ||||
return d.name | return d.name | ||||