From d23b6b4e67640090c767686f7e0a42f0abc2e688 Mon Sep 17 00:00:00 2001 From: Rucha Mahabal Date: Mon, 16 Mar 2020 13:56:39 +0530 Subject: [PATCH] feat: mechanism to set default value in mapping instead of remote fieldname --- .../document_type_field_mapping.json | 28 +++++++++++++++++-- .../document_type_mapping.py | 3 ++ .../doctype/event_consumer/event_consumer.py | 2 +- 3 files changed, 29 insertions(+), 4 deletions(-) diff --git a/frappe/event_streaming/doctype/document_type_field_mapping/document_type_field_mapping.json b/frappe/event_streaming/doctype/document_type_field_mapping/document_type_field_mapping.json index bc36aa6dfc..a20ab76b0b 100644 --- a/frappe/event_streaming/doctype/document_type_field_mapping/document_type_field_mapping.json +++ b/frappe/event_streaming/doctype/document_type_field_mapping/document_type_field_mapping.json @@ -1,4 +1,5 @@ { + "actions": [], "creation": "2019-09-27 12:46:50.165135", "doctype": "DocType", "editable_grid": 1, @@ -6,16 +7,19 @@ "field_order": [ "local_fieldname", "remote_fieldname", + "has_default_value", + "default_value", + "column_break_5", "is_child_table", "child_table_mapping" ], "fields": [ { + "depends_on": "eval:!doc.has_default_value;", "fieldname": "remote_fieldname", "fieldtype": "Data", "in_list_view": 1, - "label": "Remote Fieldname", - "reqd": 1 + "label": "Remote Fieldname" }, { "fieldname": "local_fieldname", @@ -36,10 +40,28 @@ "fieldtype": "Link", "label": "Child Table Mapping", "options": "Document Type Mapping" + }, + { + "fieldname": "column_break_5", + "fieldtype": "Column Break" + }, + { + "default": "0", + "description": "Check this If the value of the field is a default value and not to be fetched from the remote DocType's field", + "fieldname": "has_default_value", + "fieldtype": "Check", + "label": "Has Default Value" + }, + { + "depends_on": "eval:doc.has_default_value;", + "fieldname": "default_value", + "fieldtype": "Data", + "label": "Default Value" } ], "istable": 1, - "modified": "2019-10-09 08:26:06.457122", + "links": [], + "modified": "2020-03-16 13:42:41.104161", "modified_by": "Administrator", "module": "Event Streaming", "name": "Document Type Field Mapping", diff --git a/frappe/event_streaming/doctype/document_type_mapping/document_type_mapping.py b/frappe/event_streaming/doctype/document_type_mapping/document_type_mapping.py index 2b7163c559..1de7955497 100644 --- a/frappe/event_streaming/doctype/document_type_mapping/document_type_mapping.py +++ b/frappe/event_streaming/doctype/document_type_mapping/document_type_mapping.py @@ -21,6 +21,9 @@ class DocumentTypeMapping(Document): doc[mapping.local_fieldname] = doc[mapping.remote_fieldname] doc.pop(mapping.remote_fieldname, None) + elif mapping.has_default_value: + doc[mapping.local_fieldname] = mapping.default_value + doc['doctype'] = self.local_doctype return frappe.as_json(doc) diff --git a/frappe/event_streaming/doctype/event_consumer/event_consumer.py b/frappe/event_streaming/doctype/event_consumer/event_consumer.py index 2610d9d425..9e7b542ae0 100644 --- a/frappe/event_streaming/doctype/event_consumer/event_consumer.py +++ b/frappe/event_streaming/doctype/event_consumer/event_consumer.py @@ -32,7 +32,7 @@ class EventConsumer(Document): event_producer.producer_doctypes = [] for entry in config: if entry.get('has_mapping'): - ref_doctype = consumer_site.get_value('Document Type Mapping', entry.get('mapping'), 'remote_doctype') + ref_doctype = consumer_site.get_value('Document Type Mapping', 'remote_doctype', entry.get('mapping')).get('remote_doctype') else: ref_doctype = entry.get('ref_doctype')