From 0829f4aa8f05c3d7ce7c65fda527308d57fc3e21 Mon Sep 17 00:00:00 2001 From: Rushabh Mehta Date: Mon, 26 Nov 2012 11:58:22 +0530 Subject: [PATCH] commonified naming_series --- core/doctype/doctype/doctype.py | 9 +- core/doctype/doctype/doctype.txt | 917 ++++++++++++++----------------- webnotes/__init__.py | 2 +- webnotes/model/doc.py | 17 +- webnotes/model/wrapper.py | 8 +- webnotes/modules/import_file.py | 6 +- 6 files changed, 436 insertions(+), 523 deletions(-) diff --git a/core/doctype/doctype/doctype.py b/core/doctype/doctype/doctype.py index 5fa9e98461..db349a671b 100644 --- a/core/doctype/doctype/doctype.py +++ b/core/doctype/doctype/doctype.py @@ -54,15 +54,16 @@ class DocType: def set_version(self): self.doc.version = cint(self.doc.version) + 1 - # - # check if this series is not used elsewhere - # def validate_series(self, autoname=None, name=None): sql = webnotes.conn.sql if not autoname: autoname = self.doc.autoname if not name: name = self.doc.name - if autoname and (not autoname.startswith('field:')) and (not autoname.startswith('eval:')) and (not autoname=='Prompt'): + if not autoname and self.doclist.get({"fieldname":"naming_series"}): + self.doc.autoname = "naming_series:" + + if autoname and (not autoname.startswith('field:')) and (not autoname.startswith('eval:')) \ + and (not autoname=='Prompt') and (not autoname.startswith('naming_series:')): prefix = autoname.split('.')[0] used_in = sql('select name from tabDocType where substring_index(autoname, ".", 1) = %s and name!=%s', (prefix, name)) if used_in: diff --git a/core/doctype/doctype/doctype.txt b/core/doctype/doctype/doctype.txt index 38650a38c1..e5461e8389 100644 --- a/core/doctype/doctype/doctype.txt +++ b/core/doctype/doctype/doctype.txt @@ -1,508 +1,413 @@ -# DocType, DocType [ - - # These values are common in all dictionaries - { - u'creation': '2012-10-15 17:50:35', - u'docstatus': 0, - u'modified': '2012-11-16 12:14:02', - u'modified_by': u'Administrator', - u'owner': u'Administrator' - }, - - # These values are common for all DocType - { - 'allow_attach': 0, - 'allow_copy': 0, - 'allow_email': 0, - 'allow_print': 0, - 'autoname': u'Prompt', - 'colour': u'White:FFF', - 'description': u'The basic building block of wnframework is a **DocType**. A DocType represents both a table in the database and a form from which a user can enter data. Actions are also embedded in the DocType. Hence it is the Model, View and Controller.\n\nDocTypes can be single tables or groups. For example, Quotation has a \u201cQuotation\u201d DocType and a \u201cQuotation Item\u201d doctype for the Items table, among others. DocTypes contain a collection of fields called DocFields that form the basis of the columns in the database and the layout of the form.', - u'doctype': u'DocType', - 'hide_heading': 0, - 'hide_toolbar': 0, - 'issingle': 0, - 'istable': 0, - 'module': u'Core', - u'name': u'__common__', - 'print_outline': u'Yes', - 'read_only': 0, - 'search_fields': u'autoname', - 'section_style': u'Simple', - 'server_code_error': u' ', - 'show_in_menu': 0, - 'version': 1 - }, - - # These values are common for all DocField - { - u'doctype': u'DocField', - u'name': u'__common__', - 'parent': u'DocType', - 'parentfield': u'fields', - 'parenttype': u'DocType', - 'permlevel': 0 - }, - - # These values are common for all DocPerm - { - u'doctype': u'DocPerm', - u'name': u'__common__', - 'parent': u'DocType', - 'parentfield': u'permissions', - 'parenttype': u'DocType', - 'read': 1 - }, - - # DocType, DocType - { - u'doctype': u'DocType', - u'name': u'DocType' - }, - - # DocField - { - u'doctype': u'DocField', - 'fieldname': u'sb0', - 'fieldtype': u'Section Break', - 'hidden': 0, - 'label': u'DocType Details', - 'oldfieldtype': u'Section Break', - 'reqd': 0, - 'search_index': 0 - }, - - # DocField - { - u'doctype': u'DocField', - 'fieldname': u'module', - 'fieldtype': u'Link', - 'label': u'Module', - 'oldfieldname': u'module', - 'oldfieldtype': u'Link', - 'options': u'Module Def', - 'reqd': 1 - }, - - # DocField - { - u'doctype': u'DocField', - 'fieldname': u'cb01', - 'fieldtype': u'Column Break' - }, - - # DocField - { - u'doctype': u'DocField', - 'fieldname': u'document_type', - 'fieldtype': u'Select', - 'label': u'Document Type', - 'oldfieldname': u'document_type', - 'oldfieldtype': u'Select', - 'options': u'\nMaster\nTransaction\nSystem\nOther' - }, - - # DocField - { - 'colour': u'White:FFF', - 'description': u'Is it a Custom DocType created by you?', - u'doctype': u'DocField', - 'fieldname': u'custom', - 'fieldtype': u'Check', - 'label': u'Custom?', - 'no_copy': 0 - }, - - # DocField - { - u'doctype': u'DocField', - 'fieldname': u'sb0_5', - 'fieldtype': u'Section Break' - }, - - # DocField - { - u'doctype': u'DocField', - 'fieldname': u'description', - 'fieldtype': u'Text', - 'hidden': 0, - 'label': u'Description', - 'oldfieldname': u'description', - 'oldfieldtype': u'Text', - 'reqd': 0, - 'search_index': 0, - 'width': u'300px' - }, - - # DocField - { - u'doctype': u'DocField', - 'fieldname': u'fields_section_break', - 'fieldtype': u'Section Break', - 'hidden': 0, - 'label': u'Fields', - 'oldfieldtype': u'Section Break', - 'reqd': 0, - 'search_index': 0 - }, - - # DocField - { - u'doctype': u'DocField', - 'fieldname': u'fields', - 'fieldtype': u'Table', - 'hidden': 0, - 'label': u'Fields', - 'oldfieldname': u'fields', - 'oldfieldtype': u'Table', - 'options': u'DocField', - 'reqd': 0, - 'search_index': 0 - }, - - # DocField - { - u'doctype': u'DocField', - 'fieldname': u'sb1', - 'fieldtype': u'Section Break' - }, - - # DocField - { - u'doctype': u'DocField', - 'fieldname': u'cb10', - 'fieldtype': u'Column Break', - 'label': u'Database' - }, - - # DocField - { - u'doctype': u'DocField', - 'fieldname': u'issingle', - 'fieldtype': u'Check', - 'hidden': 0, - 'label': u'Is Single', - 'oldfieldname': u'issingle', - 'oldfieldtype': u'Check', - 'reqd': 0, - 'search_index': 0, - 'trigger': u'Client' - }, - - # DocField - { - u'doctype': u'DocField', - 'fieldname': u'istable', - 'fieldtype': u'Check', - 'hidden': 0, - 'label': u'Is Table', - 'oldfieldname': u'istable', - 'oldfieldtype': u'Check', - 'reqd': 0, - 'search_index': 0 - }, - - # DocField - { - u'doctype': u'DocField', - 'fieldname': u'cb11', - 'fieldtype': u'Column Break', - 'label': u'Naming', - 'oldfieldtype': u'Column Break', - 'width': u'50%' - }, - - # DocField - { - u'doctype': u'DocField', - 'fieldname': u'autoname', - 'fieldtype': u'Data', - 'hidden': 0, - 'label': u'Auto Name', - 'oldfieldname': u'autoname', - 'oldfieldtype': u'Data', - 'reqd': 0, - 'search_index': 0 - }, - - # DocField - { - u'doctype': u'DocField', - 'fieldname': u'name_case', - 'fieldtype': u'Select', - 'label': u'Name Case', - 'oldfieldname': u'name_case', - 'oldfieldtype': u'Select', - 'options': u'\nTitle Case\nUPPER CASE' - }, - - # DocField - { - u'doctype': u'DocField', - 'fieldname': u'search_fields', - 'fieldtype': u'Data', - 'hidden': 0, - 'label': u'Search Fields', - 'oldfieldname': u'search_fields', - 'oldfieldtype': u'Data', - 'reqd': 0, - 'search_index': 0 - }, - - # DocField - { - u'doctype': u'DocField', - 'fieldname': u'sb2', - 'fieldtype': u'Section Break', - 'label': u'Permission Rules' - }, - - # DocField - { - 'colour': u'White:FFF', - u'doctype': u'DocField', - 'fieldname': u'permissions', - 'fieldtype': u'Table', - 'hidden': 0, - 'label': u'Permissions', - 'oldfieldname': u'permissions', - 'oldfieldtype': u'Table', - 'options': u'DocPerm', - 'reqd': 0, - 'search_index': 0 - }, - - # DocField - { - u'doctype': u'DocField', - 'fieldname': u'sb3', - 'fieldtype': u'Section Break' - }, - - # DocField - { - u'doctype': u'DocField', - 'fieldname': u'cb30', - 'fieldtype': u'Column Break', - 'label': u'Permissions Settings' - }, - - # DocField - { - u'doctype': u'DocField', - 'fieldname': u'in_create', - 'fieldtype': u'Check', - 'label': u'User Cannot Create', - 'oldfieldname': u'in_create', - 'oldfieldtype': u'Check' - }, - - # DocField - { - u'doctype': u'DocField', - 'fieldname': u'read_only', - 'fieldtype': u'Check', - 'hidden': 0, - 'label': u'User Cannot Search', - 'oldfieldname': u'read_only', - 'oldfieldtype': u'Check', - 'reqd': 0, - 'search_index': 0 - }, - - # DocField - { - u'doctype': u'DocField', - 'fieldname': u'is_submittable', - 'fieldtype': u'Check', - 'label': u'Is Submittable' - }, - - # DocField - { - u'doctype': u'DocField', - 'fieldname': u'allow_rename', - 'fieldtype': u'Check', - 'label': u'Allow Rename', - 'oldfieldname': u'allow_rename', - 'oldfieldtype': u'Check' - }, - - # DocField - { - u'doctype': u'DocField', - 'fieldname': u'cb31', - 'fieldtype': u'Column Break', - 'label': u'Hide Actions' - }, - - # DocField - { - u'doctype': u'DocField', - 'fieldname': u'hide_heading', - 'fieldtype': u'Check', - 'hidden': 0, - 'label': u'Hide Heading', - 'oldfieldname': u'hide_heading', - 'oldfieldtype': u'Check', - 'reqd': 0, - 'search_index': 0 - }, - - # DocField - { - u'doctype': u'DocField', - 'fieldname': u'hide_toolbar', - 'fieldtype': u'Check', - 'hidden': 0, - 'label': u'Hide Toolbar', - 'oldfieldname': u'hide_toolbar', - 'oldfieldtype': u'Check', - 'reqd': 0, - 'search_index': 0 - }, - - # DocField - { - u'doctype': u'DocField', - 'fieldname': u'allow_print', - 'fieldtype': u'Check', - 'hidden': 0, - 'label': u'Hide Print', - 'oldfieldname': u'allow_print', - 'oldfieldtype': u'Check', - 'reqd': 0, - 'search_index': 0 - }, - - # DocField - { - u'doctype': u'DocField', - 'fieldname': u'allow_email', - 'fieldtype': u'Check', - 'hidden': 0, - 'label': u'Hide Email', - 'oldfieldname': u'allow_email', - 'oldfieldtype': u'Check', - 'reqd': 0, - 'search_index': 0 - }, - - # DocField - { - u'doctype': u'DocField', - 'fieldname': u'allow_copy', - 'fieldtype': u'Check', - 'hidden': 0, - 'label': u'Hide Copy', - 'oldfieldname': u'allow_copy', - 'oldfieldtype': u'Check', - 'reqd': 0, - 'search_index': 0 - }, - - # DocField - { - u'doctype': u'DocField', - 'fieldname': u'sb4', - 'fieldtype': u'Section Break', - 'hidden': 0, - 'oldfieldtype': u'Column Break', - 'reqd': 0, - 'search_index': 0, - 'width': u'50%' - }, - - # DocField - { - u'doctype': u'DocField', - 'fieldname': u'cb41', - 'fieldtype': u'Column Break', - 'label': u'Display' - }, - - # DocField - { - u'doctype': u'DocField', - 'fieldname': u'default_print_format', - 'fieldtype': u'Data', - 'label': u'Default Print Format' - }, - - # DocField - { - u'doctype': u'DocField', - 'fieldname': u'read_only_onload', - 'fieldtype': u'Check', - 'label': u'Show Print First', - 'oldfieldname': u'read_only_onload', - 'oldfieldtype': u'Check' - }, - - # DocField - { - u'doctype': u'DocField', - 'fieldname': u'in_dialog', - 'fieldtype': u'Check', - 'label': u'In Dialog', - 'oldfieldname': u'in_dialog', - 'oldfieldtype': u'Check' - }, - - # DocField - { - u'doctype': u'DocField', - 'fieldname': u'cb42', - 'fieldtype': u'Column Break', - 'label': u'Attachments' - }, - - # DocField - { - u'doctype': u'DocField', - 'fieldname': u'allow_attach', - 'fieldtype': u'Check', - 'label': u'Allow Attach', - 'oldfieldname': u'allow_attach', - 'oldfieldtype': u'Check', - 'trigger': u'Client' - }, - - # DocField - { - u'doctype': u'DocField', - 'fieldname': u'max_attachments', - 'fieldtype': u'Int', - 'hidden': 1, - 'label': u'Max Attachments', - 'oldfieldname': u'max_attachments', - 'oldfieldtype': u'Int' - }, - - # DocPerm - { - u'doctype': u'DocPerm', - 'permlevel': 0, - 'role': u'System Manager' - }, - - # DocPerm - { - 'cancel': 0, - 'create': 1, - u'doctype': u'DocPerm', - 'execute': 0, - 'permlevel': 0, - 'role': u'Administrator', - 'submit': 0, - 'write': 1 - }, - - # DocPerm - { - u'doctype': u'DocPerm', - 'permlevel': 1, - 'role': u'Administrator' - } + { + "owner": "Administrator", + "docstatus": 0, + "creation": "2012-11-24 17:21:41", + "modified_by": "Administrator", + "modified": "2012-11-26 11:49:33" + }, + { + "istable": 0, + "allow_attach": 0, + "allow_print": 0, + "search_fields": "autoname", + "module": "Core", + "autoname": "Prompt", + "description": "The basic building block of wnframework is a **DocType**. A DocType represents both a table in the database and a form from which a user can enter data. Actions are also embedded in the DocType. Hence it is the Model, View and Controller.\n\nDocTypes can be single tables or groups. For example, Quotation has a \u201cQuotation\u201d DocType and a \u201cQuotation Item\u201d doctype for the Items table, among others. DocTypes contain a collection of fields called DocFields that form the basis of the columns in the database and the layout of the form.", + "read_only": 0, + "allow_email": 0, + "hide_heading": 0, + "issingle": 0, + "name": "__common__", + "doctype": "DocType", + "hide_toolbar": 0, + "allow_copy": 0 + }, + { + "name": "__common__", + "parent": "DocType", + "doctype": "DocField", + "parenttype": "DocType", + "permlevel": 0, + "parentfield": "fields" + }, + { + "name": "__common__", + "parent": "DocType", + "read": 1, + "doctype": "DocPerm", + "parenttype": "DocType", + "parentfield": "permissions" + }, + { + "name": "DocType", + "doctype": "DocType" + }, + { + "oldfieldtype": "Section Break", + "doctype": "DocField", + "label": "DocType Details", + "fieldname": "sb0", + "fieldtype": "Section Break", + "search_index": 0, + "reqd": 0, + "hidden": 0 + }, + { + "oldfieldtype": "Link", + "doctype": "DocField", + "label": "Module", + "oldfieldname": "module", + "fieldname": "module", + "fieldtype": "Link", + "reqd": 1, + "options": "Module Def" + }, + { + "doctype": "DocField", + "fieldname": "cb01", + "fieldtype": "Column Break" + }, + { + "oldfieldtype": "Select", + "doctype": "DocField", + "label": "Document Type", + "oldfieldname": "document_type", + "fieldname": "document_type", + "fieldtype": "Select", + "options": "\nMaster\nTransaction\nSystem\nOther" + }, + { + "description": "Is it a Custom DocType created by you?", + "no_copy": 0, + "colour": "White:FFF", + "doctype": "DocField", + "label": "Custom?", + "fieldname": "custom", + "fieldtype": "Check" + }, + { + "doctype": "DocField", + "fieldname": "sb0_5", + "fieldtype": "Section Break" + }, + { + "oldfieldtype": "Text", + "doctype": "DocField", + "label": "Description", + "oldfieldname": "description", + "width": "300px", + "fieldname": "description", + "fieldtype": "Text", + "search_index": 0, + "reqd": 0, + "hidden": 0 + }, + { + "oldfieldtype": "Section Break", + "doctype": "DocField", + "label": "Fields", + "fieldname": "fields_section_break", + "fieldtype": "Section Break", + "search_index": 0, + "reqd": 0, + "hidden": 0 + }, + { + "oldfieldtype": "Table", + "doctype": "DocField", + "label": "Fields", + "oldfieldname": "fields", + "fieldname": "fields", + "fieldtype": "Table", + "search_index": 0, + "reqd": 0, + "hidden": 0, + "options": "DocField" + }, + { + "doctype": "DocField", + "fieldname": "sb1", + "fieldtype": "Section Break" + }, + { + "doctype": "DocField", + "label": "Database", + "fieldname": "cb10", + "fieldtype": "Column Break" + }, + { + "oldfieldtype": "Check", + "doctype": "DocField", + "label": "Is Single", + "oldfieldname": "issingle", + "trigger": "Client", + "fieldname": "issingle", + "fieldtype": "Check", + "search_index": 0, + "reqd": 0, + "hidden": 0 + }, + { + "oldfieldtype": "Check", + "doctype": "DocField", + "label": "Is Table", + "oldfieldname": "istable", + "fieldname": "istable", + "fieldtype": "Check", + "search_index": 0, + "reqd": 0, + "hidden": 0 + }, + { + "oldfieldtype": "Column Break", + "doctype": "DocField", + "label": "Naming", + "width": "50%", + "fieldname": "cb11", + "fieldtype": "Column Break" + }, + { + "description": "\\\n
  • field:[fieldname] - By Field\\\n
  • naming_series: - By Naming Series (field called naming_series must be present\\\n
  • eval:[expression] - Evaluate an expression in python (self is doc)\\\n
  • Prompt - Prompt user for a name\\\n
  • [series] - Series by prefix (separated by a dot); for example PRE.#####\\\n')\">Naming Options", + "oldfieldtype": "Data", + "colour": "White:FFF", + "doctype": "DocField", + "label": "Auto Name", + "oldfieldname": "autoname", + "fieldname": "autoname", + "fieldtype": "Data", + "search_index": 0, + "reqd": 0, + "hidden": 0 + }, + { + "oldfieldtype": "Select", + "doctype": "DocField", + "label": "Name Case", + "oldfieldname": "name_case", + "fieldname": "name_case", + "fieldtype": "Select", + "options": "\nTitle Case\nUPPER CASE" + }, + { + "oldfieldtype": "Data", + "doctype": "DocField", + "label": "Search Fields", + "oldfieldname": "search_fields", + "fieldname": "search_fields", + "fieldtype": "Data", + "search_index": 0, + "reqd": 0, + "hidden": 0 + }, + { + "doctype": "DocField", + "label": "Permission Rules", + "fieldname": "sb2", + "fieldtype": "Section Break" + }, + { + "oldfieldtype": "Table", + "colour": "White:FFF", + "doctype": "DocField", + "label": "Permissions", + "oldfieldname": "permissions", + "fieldname": "permissions", + "fieldtype": "Table", + "search_index": 0, + "reqd": 0, + "hidden": 0, + "options": "DocPerm" + }, + { + "doctype": "DocField", + "fieldname": "sb3", + "fieldtype": "Section Break" + }, + { + "doctype": "DocField", + "label": "Permissions Settings", + "fieldname": "cb30", + "fieldtype": "Column Break" + }, + { + "oldfieldtype": "Check", + "doctype": "DocField", + "label": "User Cannot Create", + "oldfieldname": "in_create", + "fieldname": "in_create", + "fieldtype": "Check" + }, + { + "oldfieldtype": "Check", + "doctype": "DocField", + "label": "User Cannot Search", + "oldfieldname": "read_only", + "fieldname": "read_only", + "fieldtype": "Check", + "search_index": 0, + "reqd": 0, + "hidden": 0 + }, + { + "doctype": "DocField", + "label": "Is Submittable", + "fieldname": "is_submittable", + "fieldtype": "Check" + }, + { + "oldfieldtype": "Check", + "doctype": "DocField", + "label": "Allow Rename", + "oldfieldname": "allow_rename", + "fieldname": "allow_rename", + "fieldtype": "Check" + }, + { + "doctype": "DocField", + "label": "Hide Actions", + "fieldname": "cb31", + "fieldtype": "Column Break" + }, + { + "oldfieldtype": "Check", + "doctype": "DocField", + "label": "Hide Heading", + "oldfieldname": "hide_heading", + "fieldname": "hide_heading", + "fieldtype": "Check", + "search_index": 0, + "reqd": 0, + "hidden": 0 + }, + { + "oldfieldtype": "Check", + "doctype": "DocField", + "label": "Hide Toolbar", + "oldfieldname": "hide_toolbar", + "fieldname": "hide_toolbar", + "fieldtype": "Check", + "search_index": 0, + "reqd": 0, + "hidden": 0 + }, + { + "oldfieldtype": "Check", + "doctype": "DocField", + "label": "Hide Print", + "oldfieldname": "allow_print", + "fieldname": "allow_print", + "fieldtype": "Check", + "search_index": 0, + "reqd": 0, + "hidden": 0 + }, + { + "oldfieldtype": "Check", + "doctype": "DocField", + "label": "Hide Email", + "oldfieldname": "allow_email", + "fieldname": "allow_email", + "fieldtype": "Check", + "search_index": 0, + "reqd": 0, + "hidden": 0 + }, + { + "oldfieldtype": "Check", + "doctype": "DocField", + "label": "Hide Copy", + "oldfieldname": "allow_copy", + "fieldname": "allow_copy", + "fieldtype": "Check", + "search_index": 0, + "reqd": 0, + "hidden": 0 + }, + { + "oldfieldtype": "Column Break", + "doctype": "DocField", + "width": "50%", + "fieldname": "sb4", + "fieldtype": "Section Break", + "search_index": 0, + "reqd": 0, + "hidden": 0 + }, + { + "doctype": "DocField", + "label": "Display", + "fieldname": "cb41", + "fieldtype": "Column Break" + }, + { + "doctype": "DocField", + "label": "Default Print Format", + "fieldname": "default_print_format", + "fieldtype": "Data" + }, + { + "oldfieldtype": "Check", + "doctype": "DocField", + "label": "Show Print First", + "oldfieldname": "read_only_onload", + "fieldname": "read_only_onload", + "fieldtype": "Check" + }, + { + "oldfieldtype": "Check", + "doctype": "DocField", + "label": "In Dialog", + "oldfieldname": "in_dialog", + "fieldname": "in_dialog", + "fieldtype": "Check" + }, + { + "doctype": "DocField", + "label": "Attachments", + "fieldname": "cb42", + "fieldtype": "Column Break" + }, + { + "oldfieldtype": "Check", + "doctype": "DocField", + "label": "Allow Attach", + "oldfieldname": "allow_attach", + "trigger": "Client", + "fieldname": "allow_attach", + "fieldtype": "Check" + }, + { + "oldfieldtype": "Int", + "doctype": "DocField", + "label": "Max Attachments", + "oldfieldname": "max_attachments", + "fieldname": "max_attachments", + "fieldtype": "Int", + "hidden": 1 + }, + { + "doctype": "DocPerm", + "role": "System Manager", + "permlevel": 0 + }, + { + "doctype": "DocPerm", + "role": "System Manager", + "permlevel": 0 + }, + { + "create": 1, + "doctype": "DocPerm", + "submit": 0, + "write": 1, + "role": "Administrator", + "cancel": 0, + "permlevel": 0 + }, + { + "doctype": "DocPerm", + "role": "Administrator", + "permlevel": 1 + } ] \ No newline at end of file diff --git a/webnotes/__init__.py b/webnotes/__init__.py index 793dec2a99..d0827c78dd 100644 --- a/webnotes/__init__.py +++ b/webnotes/__init__.py @@ -279,4 +279,4 @@ def delete_doc(doctype=None, name=None, doclist = None, force=0): def reload_doc(module, dt=None, dn=None): import webnotes.modules - webnotes.modules.reload_doc(module, dt, dn) \ No newline at end of file + return webnotes.modules.reload_doc(module, dt, dn) \ No newline at end of file diff --git a/webnotes/model/doc.py b/webnotes/model/doc.py index 417cc3cdad..8063ebfd6e 100755 --- a/webnotes/model/doc.py +++ b/webnotes/model/doc.py @@ -216,7 +216,15 @@ class Document: if not n: raise Exception, 'Name is required' self.name = n.strip() - + + elif autoname and autoname.startswith("naming_series:"): + if not self.naming_series: + # pick default naming series + from webnotes.model.doctype import get_property + self.naming_series = get_property(self.doctype, "options", "naming_series").split("\n") + self.naming_series = self.naming_series[0] or self.naming_series[1] + self.name = make_autoname(self.naming_series+'.#####') + # based on expression elif autoname and autoname.startswith('eval:'): doc = self # for setting @@ -237,12 +245,11 @@ class Document: # unable to determine a name, use a serial number! if not self.name: self.name = make_autoname('#########', self.doctype) - + # Validate Name # --------------------------------------------------------------------------- def _validate_name(self, case): - if webnotes.conn.sql('select name from `tab%s` where name=%s' % (self.doctype,'%s'), self.name): raise NameError, 'Name %s already exists' % self.name @@ -251,7 +258,7 @@ class Document: # new.. if self.name.startswith('New '+self.doctype): - return 'There were some errors setting the name, please contact the administrator' + raise NameError, 'There were some errors setting the name, please contact the administrator' if case=='Title Case': self.name = self.name.title() if case=='UPPER CASE': self.name = self.name.upper() @@ -262,7 +269,7 @@ class Document: for f in forbidden: if f in self.name: webnotes.msgprint('%s not allowed in ID (name)' % f, raise_exception =1) - + # Insert # --------------------------------------------------------------------------- diff --git a/webnotes/model/wrapper.py b/webnotes/model/wrapper.py index a6af29bfcb..0983913f23 100644 --- a/webnotes/model/wrapper.py +++ b/webnotes/model/wrapper.py @@ -50,7 +50,7 @@ class ModelWrapper: Load doclist from dt """ from webnotes.model.doc import Document, getchildren - from webnotes.model.doclist import DocList + if not dt: dt = self.doc.doctype if not dn: dn = self.doc.name @@ -60,7 +60,7 @@ class ModelWrapper: tablefields = webnotes.model.meta.get_table_fields(dt) # load chilren - doclist = DocList([doc,]) + doclist = webnotes.doclist([doc,]) for t in tablefields: doclist += getchildren(doc.name, t[0], t[1], dt, prefix=prefix) @@ -85,8 +85,8 @@ class ModelWrapper: if isinstance(d, dict): docs[i] = Document(fielddata=d) - self.docs = self.doclist = docs - self.doc, self.children = docs[0], docs[1:] + self.docs = self.doclist = webnotes.doclist(docs) + self.doc, self.children = docs[0], webnotes.doclist(docs[1:]) if self.obj: self.obj.doclist = self.doclist self.obj.doc = self.doc diff --git a/webnotes/modules/import_file.py b/webnotes/modules/import_file.py index b920d8ffe0..790b5b00ec 100644 --- a/webnotes/modules/import_file.py +++ b/webnotes/modules/import_file.py @@ -28,9 +28,9 @@ from webnotes.modules import scrub, get_module_path, scrub_dt_dn def import_files(module, dt=None, dn=None): if type(module) is list: for m in module: - import_file(m[0], m[1], m[2]) + return import_file(m[0], m[1], m[2]) else: - import_file(module, dt, dn) + return import_file(module, dt, dn) def import_file(module, dt, dn, force=False): """Sync a file from txt if modifed, return false if not updated""" @@ -42,7 +42,7 @@ def import_file(module, dt, dn, force=False): path = os.path.join(get_module_path(module), os.path.join(dt, dn, dn + '.txt')) - import_file_by_path(path, force) + return import_file_by_path(path, force) def import_file_by_path(path, force=False): if os.path.exists(path):