[fix] export_json
This commit is contained in:
parent
7cad548270
commit
3bdd69fa61
9 changed files with 38 additions and 39 deletions
|
|
@ -744,6 +744,7 @@ def copy_doc(doc, ignore_no_copy=True):
|
|||
d = doc
|
||||
|
||||
newdoc = get_doc(copy.deepcopy(d))
|
||||
|
||||
newdoc.name = None
|
||||
newdoc.set("__islocal", 1)
|
||||
newdoc.owner = None
|
||||
|
|
|
|||
|
|
@ -271,7 +271,7 @@ def setup_utilities(parser):
|
|||
|
||||
# import/export
|
||||
parser.add_argument("--export_doc", nargs=2, metavar=('"DOCTYPE"', '"DOCNAME"'))
|
||||
parser.add_argument("--export_doclist", nargs=3, metavar=("DOCTYPE", "NAME", "PATH"),
|
||||
parser.add_argument("--export_json", nargs=3, metavar=("DOCTYPE", "NAME", "PATH"),
|
||||
help="""Export doclist as json to the given path, use '-' as name for Singles.""")
|
||||
parser.add_argument("--export_csv", nargs=2, metavar=("DOCTYPE", "PATH"),
|
||||
help="""Dump DocType as csv""")
|
||||
|
|
@ -699,7 +699,7 @@ def export_doc(doctype, docname):
|
|||
frappe.destroy()
|
||||
|
||||
@cmd
|
||||
def export_doclist(doctype, name, path):
|
||||
def export_json(doctype, name, path):
|
||||
from frappe.core.page.data_import_tool import data_import_tool
|
||||
frappe.connect()
|
||||
data_import_tool.export_json(doctype, name, path)
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@
|
|||
{
|
||||
"fieldname": "label_and_type",
|
||||
"fieldtype": "Section Break",
|
||||
"label": "Label and Type",
|
||||
"label": "",
|
||||
"permlevel": 0
|
||||
},
|
||||
{
|
||||
|
|
@ -314,7 +314,7 @@
|
|||
"in_dialog": 1,
|
||||
"issingle": 0,
|
||||
"istable": 1,
|
||||
"modified": "2015-02-19 01:06:59.836515",
|
||||
"modified": "2015-02-22 11:31:07.467882",
|
||||
"modified_by": "Administrator",
|
||||
"module": "Core",
|
||||
"name": "DocField",
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
import frappe
|
||||
import unittest
|
||||
|
||||
test_records = frappe.get_test_records('{doctype}')
|
||||
# test_records = frappe.get_test_records('{doctype}')
|
||||
|
||||
class Test{classname}(unittest.TestCase):
|
||||
pass
|
||||
|
|
|
|||
|
|
@ -1,6 +0,0 @@
|
|||
[
|
||||
{{
|
||||
"doctype": "{doctype}",
|
||||
"name": "_Test {doctype} 1"
|
||||
}}
|
||||
]
|
||||
|
|
@ -43,23 +43,23 @@ def export_csv(doctype, path):
|
|||
get_template(doctype=doctype, all_doctypes="Yes", with_data="Yes")
|
||||
csvfile.write(frappe.response.result.encode("utf-8"))
|
||||
|
||||
def export_json(doctype, name, path):
|
||||
def export_json(doctype, path):
|
||||
from frappe.utils.response import json_handler
|
||||
docs = frappe.get_list(doctype, fields=["*"], limit_page_length=None)
|
||||
for doc in docs:
|
||||
doc['doctype'] = doctype
|
||||
out = []
|
||||
for doc in frappe.get_all(doctype, fields=["name"], limit_page_length=None):
|
||||
out.append(frappe.get_doc(doctype.doc.name).as_dict())
|
||||
with open(path, "w") as outfile:
|
||||
outfile.write(json.dumps(docs, default=json_handler, indent=1, sort_keys=True))
|
||||
outfile.write(json.dumps(out, default=json_handler, indent=1, sort_keys=True))
|
||||
|
||||
@frappe.whitelist()
|
||||
def export_fixture(doctype, name, app):
|
||||
def export_fixture(doctype, app):
|
||||
if frappe.session.user != "Administrator":
|
||||
raise frappe.PermissionError
|
||||
|
||||
if not os.path.exists(frappe.get_app_path(app, "fixtures")):
|
||||
os.mkdir(frappe.get_app_path(app, "fixtures"))
|
||||
|
||||
export_json(doctype, name, frappe.get_app_path(app, "fixtures", frappe.scrub(name) + ".json"))
|
||||
export_json(doctype, frappe.get_app_path(app, "fixtures", frappe.scrub(doctype) + ".json"))
|
||||
|
||||
|
||||
def import_doc(path, overwrite=False, ignore_links=False, ignore_insert=False, insert=False, submit=False):
|
||||
|
|
|
|||
|
|
@ -405,6 +405,9 @@ class Document(BaseDocument):
|
|||
for fieldname, msg in missing:
|
||||
msgprint(msg)
|
||||
|
||||
if frappe.flags.print_messages:
|
||||
print self.as_dict()
|
||||
|
||||
raise frappe.MandatoryError(", ".join((each[0] for each in missing)))
|
||||
|
||||
def _validate_links(self):
|
||||
|
|
|
|||
|
|
@ -22,14 +22,13 @@ def main(app=None, module=None, doctype=None, verbose=False, tests=(), force=Fal
|
|||
|
||||
# workaround! since there is no separate test db
|
||||
frappe.clear_cache()
|
||||
set_test_email_config()
|
||||
|
||||
if verbose:
|
||||
print 'Running "before_tests" hooks'
|
||||
for fn in frappe.get_hooks("before_tests", app_name=app):
|
||||
frappe.get_attr(fn)()
|
||||
|
||||
set_test_email_config()
|
||||
|
||||
if doctype:
|
||||
ret = run_tests_for_doctype(doctype, verbose=verbose, tests=tests, force=force)
|
||||
elif module:
|
||||
|
|
@ -209,6 +208,7 @@ def make_test_objects(doctype, test_records, verbose=None):
|
|||
doc["doctype"] = doctype
|
||||
|
||||
d = frappe.copy_doc(doc)
|
||||
|
||||
if doc.get('name'):
|
||||
d.name = doc.get('name')
|
||||
|
||||
|
|
@ -224,6 +224,8 @@ def make_test_objects(doctype, test_records, verbose=None):
|
|||
docstatus = d.docstatus
|
||||
|
||||
d.docstatus = 0
|
||||
d.run_method("before_test_insert")
|
||||
|
||||
try:
|
||||
d.insert()
|
||||
|
||||
|
|
|
|||
|
|
@ -3,25 +3,24 @@
|
|||
|
||||
// update parent select
|
||||
|
||||
frappe.ui.form.on("Website Settings", "refresh", function(frm) {
|
||||
if(user==="Administrator") {
|
||||
frm.add_custom_button("Export to Fixtures", function() {
|
||||
frappe.prompt({fieldname:"app", fieldtype:"Data", label:__("App Name"), reqd:1}, function(data) {
|
||||
frappe.call({
|
||||
method: "frappe.core.page.data_import_tool.data_import_tool.export_fixture",
|
||||
args: {
|
||||
app: data.app,
|
||||
doctype:"Website Settings",
|
||||
name:"Website Settings",
|
||||
},
|
||||
callback: function(r) {
|
||||
if(!r.exc) { msgprint(__("Exported")); }
|
||||
}
|
||||
})
|
||||
})
|
||||
}, null, "btn-default")
|
||||
}
|
||||
})
|
||||
// frappe.ui.form.on("Website Settings", "refresh", function(frm) {
|
||||
// if(user==="Administrator") {
|
||||
// frm.add_custom_button("Export to Fixtures", function() {
|
||||
// frappe.prompt({fieldname:"app", fieldtype:"Data", label:__("App Name"), reqd:1}, function(data) {
|
||||
// frappe.call({
|
||||
// method: "frappe.core.page.data_import_tool.data_import_tool.export_fixture",
|
||||
// args: {
|
||||
// app: data.app,
|
||||
// doctype:"Website Settings"
|
||||
// },
|
||||
// callback: function(r) {
|
||||
// if(!r.exc) { msgprint(__("Exported")); }
|
||||
// }
|
||||
// })
|
||||
// })
|
||||
// }, null, "btn-default")
|
||||
// }
|
||||
// })
|
||||
|
||||
$.extend(cur_frm.cscript, {
|
||||
refresh: function(doc) {
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue