From 2b2ef3b5034fd725715ea38cc995bb1c0ff55d51 Mon Sep 17 00:00:00 2001 From: Rushabh Mehta Date: Thu, 20 Feb 2014 17:43:49 +0530 Subject: [PATCH] added versions 0.1 #429 --- frappe/__init__.py | 8 +++ frappe/core/doctype/version/__init__.py | 0 frappe/core/doctype/version/version.py | 12 ++++ frappe/core/doctype/version/version.txt | 63 +++++++++++++++++++++ frappe/model/rename_doc.py | 6 ++ frappe/templates/includes/footer.html | 2 +- frappe/website/doctype/web_page/web_page.py | 2 +- frappe/website/website_generator.py | 1 + 8 files changed, 92 insertions(+), 2 deletions(-) create mode 100644 frappe/core/doctype/version/__init__.py create mode 100644 frappe/core/doctype/version/version.py create mode 100644 frappe/core/doctype/version/version.txt 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 @@
- {% if copyright %}{% endif %} + {% if copyright %}{% endif %} {% if footer_address %}{{ footer_address }}{% endif %}
diff --git a/frappe/website/doctype/web_page/web_page.py b/frappe/website/doctype/web_page/web_page.py index c2be5bda92..2549db9673 100644 --- a/frappe/website/doctype/web_page/web_page.py +++ b/frappe/website/doctype/web_page/web_page.py @@ -23,7 +23,7 @@ class DocType(WebsiteGenerator): if self.doclist.get({"parentfield": "toc"}): from frappe.website.render import clear_cache clear_cache() - + def on_trash(self): # delete entry from Table of Contents of other pages WebsiteGenerator.on_trash(self) diff --git a/frappe/website/website_generator.py b/frappe/website/website_generator.py index a79f7ba2e5..f9703f1722 100644 --- a/frappe/website/website_generator.py +++ b/frappe/website/website_generator.py @@ -35,6 +35,7 @@ class WebsiteGenerator(DocListController): def on_update(self): self.update_sitemap() + frappe.add_version(self.doclist) def after_rename(self, olddn, newdn, merge): frappe.conn.sql("""update `tabWebsite Sitemap`