diff --git a/frappe/__init__.py b/frappe/__init__.py index 28c56f541d..ed6b10cef4 100644 --- a/frappe/__init__.py +++ b/frappe/__init__.py @@ -618,3 +618,11 @@ def get_template(path): def get_website_sitemap(doctype, name): return conn.get_value("Website Sitemap", {"ref_doctype": doctype, "docname": name}) + +def add_version(doclist): + bean({ + "doctype": "Version", + "ref_doctype": doclist[0].get("doctype"), + "docname": doclist[0].get("name"), + "doclist_json": json.dumps([d.fields for d in doclist]) + }).insert() diff --git a/frappe/core/doctype/version/__init__.py b/frappe/core/doctype/version/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/frappe/core/doctype/version/version.py b/frappe/core/doctype/version/version.py new file mode 100644 index 0000000000..88d6a28a28 --- /dev/null +++ b/frappe/core/doctype/version/version.py @@ -0,0 +1,12 @@ +# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors +# MIT License. See license.txt + +# For license information, please see license.txt + +from __future__ import unicode_literals +import frappe, json + +class DocType: + def __init__(self, d, dl): + self.doc, self.doclist = d, dl + \ No newline at end of file diff --git a/frappe/core/doctype/version/version.txt b/frappe/core/doctype/version/version.txt new file mode 100644 index 0000000000..f7a1a046dc --- /dev/null +++ b/frappe/core/doctype/version/version.txt @@ -0,0 +1,63 @@ +[ + { + "creation": "2014-02-20 17:22:37", + "docstatus": 0, + "modified": "2014-02-20 17:22:38", + "modified_by": "Administrator", + "owner": "Administrator" + }, + { + "autoname": "_VER.######", + "doctype": "DocType", + "document_type": "Master", + "module": "Core", + "name": "__common__" + }, + { + "doctype": "DocField", + "name": "__common__", + "parent": "Version", + "parentfield": "fields", + "parenttype": "DocType", + "permlevel": 0, + "reqd": 1 + }, + { + "doctype": "DocPerm", + "export": 1, + "name": "__common__", + "parent": "Version", + "parentfield": "permissions", + "parenttype": "DocType", + "permlevel": 0, + "read": 1, + "report": 1, + "role": "System Manager" + }, + { + "doctype": "DocType", + "name": "Version" + }, + { + "doctype": "DocField", + "fieldname": "ref_doctype", + "fieldtype": "Link", + "label": "Ref DocType", + "options": "DocType" + }, + { + "doctype": "DocField", + "fieldname": "docname", + "fieldtype": "Data", + "label": "Docname" + }, + { + "doctype": "DocField", + "fieldname": "doclist_json", + "fieldtype": "Code", + "label": "Doclist JSON" + }, + { + "doctype": "DocPerm" + } +] \ No newline at end of file diff --git a/frappe/model/rename_doc.py b/frappe/model/rename_doc.py index 4c2663ecfa..0cede070a9 100644 --- a/frappe/model/rename_doc.py +++ b/frappe/model/rename_doc.py @@ -45,6 +45,8 @@ def rename_doc(doctype, old, new, force=False, merge=False, ignore_permissions=F # call after_rename frappe.bean(doctype, new).run_method("after_rename", old, new, merge) + rename_versions(doctype, old, new) + # update restrictions frappe.conn.sql("""update tabDefaultValue set defvalue=%s where parenttype='Restriction' and defkey=%s and defvalue=%s""", (new, doctype, old)) @@ -60,6 +62,10 @@ def update_attachments(doctype, old, new): if e.args[0]!=1054: # in patch? raise +def rename_versions(doctype, old, new): + frappe.conn.sql("""update tabVersion set docname=%s where doctype=%s and docname=%s""", + (new, doctype, old)) + def rename_parent_and_child(doctype, old, new, doclist): # rename the doc frappe.conn.sql("update `tab%s` set name=%s where name=%s" \ diff --git a/frappe/templates/includes/footer.html b/frappe/templates/includes/footer.html index b08c8f0ff5..525e9ae6fd 100644 --- a/frappe/templates/includes/footer.html +++ b/frappe/templates/includes/footer.html @@ -13,7 +13,7 @@