From 68b1fe780b6e56f41d91e23d24d20d2adca4d8ed Mon Sep 17 00:00:00 2001 From: Rushabh Mehta Date: Thu, 4 Aug 2011 10:39:38 +0530 Subject: [PATCH] updated import to take options from property setter --- cgi-bin/webnotes/model/doctype.py | 18 ++++++++++++++++++ cgi-bin/webnotes/model/import_docs.py | 6 ++++-- 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/cgi-bin/webnotes/model/doctype.py b/cgi-bin/webnotes/model/doctype.py index 6f3f3327bb..27eee1dae3 100644 --- a/cgi-bin/webnotes/model/doctype.py +++ b/cgi-bin/webnotes/model/doctype.py @@ -294,6 +294,24 @@ def get_property(dt, property): else: return webnotes.conn.get_value('DocType', dt, property) +def get_field_property(dt, fieldname, property): + """ + get a field property, override it from property setter if specified + """ + field = webnotes.conn.sql(""" + select name, `%s` + from tabDocField + where parent=%s and fieldname=%s""" % (property, '%s', '%s'), (dt, fieldname)) + + prop = webnotes.conn.sql(""" + select value + from `tabProperty Setter` + where doc_type=%s and doc_name=%s and property=%s""", (dt, field[0][0], property)) + if prop: + return prop[0][0] + else: + return field[0][1] + def get(dt): """ Load "DocType" - called by form builder, report buider and from code.py (when there is no cache) diff --git a/cgi-bin/webnotes/model/import_docs.py b/cgi-bin/webnotes/model/import_docs.py index 44c872c920..524462c35b 100644 --- a/cgi-bin/webnotes/model/import_docs.py +++ b/cgi-bin/webnotes/model/import_docs.py @@ -197,11 +197,13 @@ class CSVImport: return out def check_select_link_data(self, r, c, f, d, s = '', l = ''): + from webnotes.model.doctype import get_field_property options = '' try: if d and f: - dt = sql("select options, label from `tabDocField` where fieldname ='%s' and parent = '%s' " % (f, self.dt_list[0])) - dt, lbl = (dt and dt[0][0] and dt[0][0].strip() or None), dt and dt[0][1].strip() + dt = get_field_property(self.dt_list[0], f, 'options') + lbl = get_field_property(self.dt_list[0], f, 'label') + if dt: options = l and dt and [n[0] for n in sql("select name from `tab%s` " % (('link:' in dt and dt[5:]) or dt))] or s and dt.split('\n') or '' if options and d not in options :