Bladeren bron

Merge pull request #633 from anandpdoshi/anand-wip

Save naming series in property setter before reload
version-14
Nabin Hait 11 jaren geleden
bovenliggende
commit
18325f565f
4 gewijzigde bestanden met toevoegingen van 38 en 1 verwijderingen
  1. +24
    -0
      frappe/core/doctype/doctype/doctype.py
  2. +3
    -0
      frappe/database.py
  3. +10
    -1
      frappe/model/delete_doc.py
  4. +1
    -0
      frappe/patches.txt

+ 24
- 0
frappe/core/doctype/doctype/doctype.py Bestand weergeven

@@ -11,6 +11,7 @@ from frappe.utils import now, cint
from frappe.model import no_value_fields from frappe.model import no_value_fields
from frappe.model.document import Document from frappe.model.document import Document
from frappe.model.db_schema import type_map from frappe.model.db_schema import type_map
from frappe.core.doctype.property_setter.property_setter import make_property_setter


class DocType(Document): class DocType(Document):
def validate(self): def validate(self):
@@ -106,6 +107,29 @@ class DocType(Document):
else: else:
frappe.db.sql("rename table `tab%s` to `tab%s`" % (old, new)) frappe.db.sql("rename table `tab%s` to `tab%s`" % (old, new))


def before_reload(self):
if not (self.issingle and self.istable):
self.preserve_naming_series_options_in_property_setter()

def preserve_naming_series_options_in_property_setter(self):
"""preserve naming_series as property setter if it does not exist"""
naming_series = self.get("fields", {"fieldname": "naming_series"})

if not naming_series:
return

# check if atleast 1 record exists
if not (frappe.db.table_exists("tab" + self.name) and frappe.db.sql("select name from `tab{}` limit 1".format(self.name))):
return

existing_property_setter = frappe.db.get_value("Property Setter", {"doc_type": self.name,
"property": "options", "field_name": "naming_series"})

if not existing_property_setter:
make_property_setter(self.name, "naming_series", "options", naming_series[0].options, "Text")
if naming_series[0].default:
make_property_setter(self.name, "naming_series", "default", naming_series[0].default, "Text")

def export_doc(self): def export_doc(self):
from frappe.modules.export_file import export_to_files from frappe.modules.export_file import export_to_files
export_to_files(record_list=[['DocType', self.name]]) export_to_files(record_list=[['DocType', self.name]])


+ 3
- 0
frappe/database.py Bestand weergeven

@@ -485,6 +485,9 @@ class Database:
def table_exists(self, tablename): def table_exists(self, tablename):
return tablename in [d[0] for d in self.sql("show tables")] return tablename in [d[0] for d in self.sql("show tables")]


def a_row_exists(self, doctype):
return self.sql("select name from `tab{doctype}` limit 1".format(doctype=doctype))

def exists(self, dt, dn=None): def exists(self, dt, dn=None):
if isinstance(dt, basestring): if isinstance(dt, basestring):
if dt!="DocType" and dt==dn: if dt!="DocType" and dt==dn:


+ 10
- 1
frappe/model/delete_doc.py Bestand weergeven

@@ -31,7 +31,16 @@ def delete_doc(doctype=None, name=None, force=0, ignore_doctypes=None, for_reloa
remove_all(doctype, name) remove_all(doctype, name)


if doctype=="DocType": if doctype=="DocType":
if not for_reload:
if for_reload:

try:
doc = frappe.get_doc(doctype, name)
except frappe.DoesNotExistError:
pass
else:
doc.run_method("before_reload")

else:
frappe.db.sql("delete from `tabCustom Field` where dt = %s", name) frappe.db.sql("delete from `tabCustom Field` where dt = %s", name)
frappe.db.sql("delete from `tabCustom Script` where dt = %s", name) frappe.db.sql("delete from `tabCustom Script` where dt = %s", name)
frappe.db.sql("delete from `tabProperty Setter` where doc_type = %s", name) frappe.db.sql("delete from `tabProperty Setter` where doc_type = %s", name)


+ 1
- 0
frappe/patches.txt Bestand weergeven

@@ -41,3 +41,4 @@ frappe.patches.v4_0.fix_attach_field_file_url
execute:frappe.reset_perms("User") #2014-06-13 execute:frappe.reset_perms("User") #2014-06-13
execute:frappe.db.sql("""delete from `tabUserRole` where ifnull(parentfield, '')=''""") #2014-06-17 execute:frappe.db.sql("""delete from `tabUserRole` where ifnull(parentfield, '')=''""") #2014-06-17
frappe.patches.v4_0.remove_user_owner_custom_field frappe.patches.v4_0.remove_user_owner_custom_field
execute:frappe.db.sql("""update `tabProperty Setter` set property_type='Text' where property in ('options', 'default')""") #2014-06-20

Laden…
Annuleren
Opslaan