From 53f04414cf938986afdee65c598d57eb457370bc Mon Sep 17 00:00:00 2001 From: Anand Doshi Date: Thu, 19 Jun 2014 15:55:47 +0530 Subject: [PATCH] Validate Select field values Conflicts: frappe/model/base_document.py frappe/model/meta.py --- frappe/model/base_document.py | 7 ++++--- frappe/model/meta.py | 3 ++- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/frappe/model/base_document.py b/frappe/model/base_document.py index 39b9ad7a96..b2dbd6332b 100644 --- a/frappe/model/base_document.py +++ b/frappe/model/base_document.py @@ -292,16 +292,17 @@ class BaseDocument(object): continue # strip and set - self.set(df.fieldname, self.get(df.fieldname).strip()) + self.set(df.fieldname, cstr(self.get(df.fieldname)).strip()) + value = self.get(df.fieldname) - if self.get(df.fieldname) not in options: + if value not in options and not (frappe.flags.in_test and value.startswith("_T-")): # show an elaborate message prefix = _("Row #{0}:").format(self.idx) if self.get("parentfield") else "" label = _(self.meta.get_label(df.fieldname)) comma_options = '", "'.join(_(each) for each in options) frappe.throw(_('{0} {1} cannot be "{2}". It should be one of "{3}"').format(prefix, label, - self.get(df.fieldname), comma_options)) + value, comma_options)) def _validate_constants(self): if frappe.flags.in_import: diff --git a/frappe/model/meta.py b/frappe/model/meta.py index 4531c85545..c0986a8952 100644 --- a/frappe/model/meta.py +++ b/frappe/model/meta.py @@ -62,7 +62,8 @@ class Meta(Document): return self.get("fields", {"fieldtype": "Link", "options":["!=", "[Select]"]}) def get_select_fields(self): - return self.get("fields", {"fieldtype": "Select", "options":["not in", ["[Select]", "Loading..."]]}) + return self.get("fields", {"fieldtype": "Select", "options":["not in", + ["[Select]", "Loading...", "attach_files:"]]}) def get_table_fields(self): if not hasattr(self, "_table_fields"):