diff --git a/frappe/events_streaming/doctype/event_consumer/event_consumer.json b/frappe/events_streaming/doctype/event_consumer/event_consumer.json index 573fae454e..14ab6b2f70 100644 --- a/frappe/events_streaming/doctype/event_consumer/event_consumer.json +++ b/frappe/events_streaming/doctype/event_consumer/event_consumer.json @@ -1,11 +1,12 @@ { + "actions": [], "autoname": "field:callback_url", "creation": "2019-08-26 17:45:15.479530", "doctype": "DocType", "editable_grid": 1, "engine": "InnoDB", "field_order": [ - "subscribed_doctypes", + "consumer_doctypes", "callback_url", "section_break_3", "api_key", @@ -24,13 +25,6 @@ "reqd": 1, "unique": 1 }, - { - "fieldname": "subscribed_doctypes", - "fieldtype": "Table", - "label": "Subscribed Document Types", - "options": "Event Subscribed Document Type", - "reqd": 1 - }, { "fieldname": "api_key", "fieldtype": "Data", @@ -73,10 +67,18 @@ "hidden": 1, "label": "In Test", "read_only": 1 + }, + { + "fieldname": "consumer_doctypes", + "fieldtype": "Table", + "label": "Event Consumer Document Types", + "options": "Event Consumer Document Type", + "reqd": 1 } ], "in_create": 1, - "modified": "2019-11-29 00:40:32.875022", + "links": [], + "modified": "2019-12-26 13:05:08.020129", "modified_by": "Administrator", "module": "Events Streaming", "name": "Event Consumer", diff --git a/frappe/events_streaming/doctype/event_consumer/event_consumer.py b/frappe/events_streaming/doctype/event_consumer/event_consumer.py index b2aaf50929..84f92596b0 100644 --- a/frappe/events_streaming/doctype/event_consumer/event_consumer.py +++ b/frappe/events_streaming/doctype/event_consumer/event_consumer.py @@ -15,7 +15,7 @@ from frappe.utils.background_jobs import get_jobs class EventConsumer(Document): def validate(self): if self.in_test: - for entry in self.subscribed_doctypes: + for entry in self.consumer_doctypes: entry.status = 'Approved' self.in_test = False @@ -28,17 +28,17 @@ class EventConsumer(Document): def update_consumer_status(self): consumer_site = get_consumer_site(self.callback_url) event_producer = consumer_site.get_doc('Event Producer', get_current_node()) - config = event_producer.event_configuration - event_producer.event_configuration = [] + config = event_producer.producer_doctypes + 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') else: ref_doctype = entry.get('ref_doctype') - entry['status'] = frappe.db.get_value('Event Subscribed Document Type', {'parent': self.name, 'ref_doctype': ref_doctype}, 'status') + entry['status'] = frappe.db.get_value('Event Consumer Document Type', {'parent': self.name, 'ref_doctype': ref_doctype}, 'status') - event_producer.event_configuration = config + event_producer.producer_doctypes = config # when producer doc is updated it updates the consumer doc, set flag to avoid deadlock event_producer.incoming_change = True consumer_site.update(event_producer) @@ -56,10 +56,10 @@ def register_consumer(data): consumer.callback_url = data['event_consumer'] consumer.user = data['user'] consumer.incoming_change = True - subscribed_doctypes = json.loads(data['subscribed_doctypes']) + consumer_doctypes = json.loads(data['consumer_doctypes']) - for entry in subscribed_doctypes: - consumer.append('subscribed_doctypes', { + for entry in consumer_doctypes: + consumer.append('consumer_doctypes', { 'ref_doctype': entry, 'status': 'Pending' }) @@ -94,7 +94,7 @@ def get_last_update(): @frappe.whitelist() def notify_event_consumers(doctype): - event_consumers = frappe.get_all('Event Subscribed Document Type', ['parent'], {'ref_doctype': doctype, 'status': 'Approved'}) + event_consumers = frappe.get_all('Event Consumer Document Type', ['parent'], {'ref_doctype': doctype, 'status': 'Approved'}) for entry in event_consumers: consumer = frappe.get_doc('Event Consumer', entry.parent) consumer.flags.notified = False diff --git a/frappe/events_streaming/doctype/event_configuration/__init__.py b/frappe/events_streaming/doctype/event_consumer_document_type/__init__.py similarity index 100% rename from frappe/events_streaming/doctype/event_configuration/__init__.py rename to frappe/events_streaming/doctype/event_consumer_document_type/__init__.py diff --git a/frappe/events_streaming/doctype/event_subscribed_document_type/event_subscribed_document_type.json b/frappe/events_streaming/doctype/event_consumer_document_type/event_consumer_document_type.json similarity index 94% rename from frappe/events_streaming/doctype/event_subscribed_document_type/event_subscribed_document_type.json rename to frappe/events_streaming/doctype/event_consumer_document_type/event_consumer_document_type.json index 3249b45e18..210106bdec 100644 --- a/frappe/events_streaming/doctype/event_subscribed_document_type/event_subscribed_document_type.json +++ b/frappe/events_streaming/doctype/event_consumer_document_type/event_consumer_document_type.json @@ -30,7 +30,7 @@ "modified": "2019-10-29 15:26:32.436528", "modified_by": "Administrator", "module": "Events Streaming", - "name": "Event Subscribed Document Type", + "name": "Event Consumer Document Type", "owner": "Administrator", "permissions": [], "quick_entry": 1, diff --git a/frappe/events_streaming/doctype/event_configuration/event_configuration.py b/frappe/events_streaming/doctype/event_consumer_document_type/event_consumer_document_type.py similarity index 84% rename from frappe/events_streaming/doctype/event_configuration/event_configuration.py rename to frappe/events_streaming/doctype/event_consumer_document_type/event_consumer_document_type.py index abc401eda8..6ff6aa3dcc 100644 --- a/frappe/events_streaming/doctype/event_configuration/event_configuration.py +++ b/frappe/events_streaming/doctype/event_consumer_document_type/event_consumer_document_type.py @@ -6,5 +6,5 @@ from __future__ import unicode_literals # import frappe from frappe.model.document import Document -class EventConfiguration(Document): +class EventConsumerDocumentType(Document): pass diff --git a/frappe/events_streaming/doctype/event_producer/event_producer.js b/frappe/events_streaming/doctype/event_producer/event_producer.js index 2dbf27cf44..c2c3389e92 100644 --- a/frappe/events_streaming/doctype/event_producer/event_producer.js +++ b/frappe/events_streaming/doctype/event_producer/event_producer.js @@ -3,7 +3,7 @@ frappe.ui.form.on('Event Producer', { refresh: function(frm) { - frm.set_query('ref_doctype', 'event_configuration', function() { + frm.set_query('ref_doctype', 'producer_doctypes', function() { return { filters: { issingle: 0, diff --git a/frappe/events_streaming/doctype/event_producer/event_producer.json b/frappe/events_streaming/doctype/event_producer/event_producer.json index 8da2d39c8b..2e3fbed455 100644 --- a/frappe/events_streaming/doctype/event_producer/event_producer.json +++ b/frappe/events_streaming/doctype/event_producer/event_producer.json @@ -1,4 +1,5 @@ { + "actions": [], "autoname": "field:producer_url", "creation": "2019-08-26 19:17:24.919196", "doctype": "DocType", @@ -6,7 +7,7 @@ "engine": "InnoDB", "field_order": [ "producer_url", - "event_configuration", + "producer_doctypes", "section_break_3", "api_key", "api_secret", @@ -49,13 +50,6 @@ "options": "User", "reqd": 1 }, - { - "fieldname": "event_configuration", - "fieldtype": "Table", - "label": "Event Configuration", - "options": "Event Configuration", - "reqd": 1 - }, { "fieldname": "column_break_6", "fieldtype": "Column Break" @@ -70,9 +64,17 @@ "fieldtype": "Check", "hidden": 1, "label": "Incoming Change" + }, + { + "fieldname": "producer_doctypes", + "fieldtype": "Table", + "label": "Event Producer Document Types", + "options": "Event Producer Document Type", + "reqd": 1 } ], - "modified": "2019-10-29 14:56:30.854731", + "links": [], + "modified": "2019-12-26 13:04:11.438349", "modified_by": "Administrator", "module": "Events Streaming", "name": "Event Producer", diff --git a/frappe/events_streaming/doctype/event_producer/event_producer.py b/frappe/events_streaming/doctype/event_producer/event_producer.py index 82a373427d..3480474901 100644 --- a/frappe/events_streaming/doctype/event_producer/event_producer.py +++ b/frappe/events_streaming/doctype/event_producer/event_producer.py @@ -21,7 +21,7 @@ class EventProducer(Document): def validate(self): if frappe.flags.in_test: - for entry in self.event_configuration: + for entry in self.producer_doctypes: entry.status = 'Approved' def on_update(self): @@ -46,24 +46,24 @@ class EventProducer(Document): self.last_update = response['last_update'] def get_request_data(self): - subscribed_doctypes = [] - for entry in self.event_configuration: + consumer_doctypes = [] + for entry in self.producer_doctypes: if entry.has_mapping: #if it has mapping then on event consumer's site it should subscribe to remote doctype - subscribed_doctypes.append(frappe.db.get_value('Document Type Mapping', entry.mapping, 'remote_doctype')) + consumer_doctypes.append(frappe.db.get_value('Document Type Mapping', entry.mapping, 'remote_doctype')) else: - subscribed_doctypes.append(entry.ref_doctype) + consumer_doctypes.append(entry.ref_doctype) return { 'event_consumer': get_current_node(), - 'subscribed_doctypes': json.dumps(subscribed_doctypes), + 'consumer_doctypes': json.dumps(consumer_doctypes), 'user': self.user, 'in_test': frappe.flags.in_test } def create_custom_fields(self): '''create custom field to store remote docname and remote site url''' - for entry in self.event_configuration: + for entry in self.producer_doctypes: if not entry.use_same_name: if not frappe.db.exists('Custom Field', {'fieldname': 'remote_docname', 'dt': entry.ref_doctype}): df = dict(fieldname='remote_docname', label='Remote Document Name', fieldtype='Data', read_only=1, print_hide=1) @@ -77,16 +77,16 @@ class EventProducer(Document): producer_site = get_producer_site(self.producer_url) event_consumer = producer_site.get_doc('Event Consumer', get_current_node()) if event_consumer: - config = event_consumer.subscribed_doctypes - event_consumer.subscribed_doctypes = [] - for entry in self.event_configuration: + config = event_consumer.consumer_doctypes + event_consumer.consumer_doctypes = [] + for entry in self.producer_doctypes: if entry.has_mapping: #if it has mapping then on event consumer's site it should subscribe to remote doctype ref_doctype = frappe.db.get_value('Document Type Mapping', entry.mapping, 'remote_doctype') else: ref_doctype = entry.ref_doctype - event_consumer.subscribed_doctypes.append({ + event_consumer.consumer_doctypes.append({ 'ref_doctype': ref_doctype, 'status': get_approval_status(config, ref_doctype) }) @@ -146,7 +146,7 @@ def pull_from_node(event_producer): producer_site = get_producer_site(event_producer.producer_url) last_update = event_producer.last_update - (doctypes, mapping_config, naming_config) = get_config(event_producer.event_configuration) + (doctypes, mapping_config, naming_config) = get_config(event_producer.producer_doctypes) updates = get_updates(producer_site, last_update, doctypes) diff --git a/frappe/events_streaming/doctype/event_producer/test_event_producer.py b/frappe/events_streaming/doctype/event_producer/test_event_producer.py index 8566c591a1..4bf194f194 100644 --- a/frappe/events_streaming/doctype/event_producer/test_event_producer.py +++ b/frappe/events_streaming/doctype/event_producer/test_event_producer.py @@ -12,11 +12,11 @@ from frappe.events_streaming.doctype.event_producer.event_producer import pull_f def create_event_producer(producer_url): event_producer = frappe.new_doc('Event Producer') event_producer.producer_url = producer_url - event_producer.append('event_configuration', { + event_producer.append('producer_doctypes', { 'ref_doctype': 'ToDo', 'use_same_name': 1 }) - event_producer.append('event_configuration', { + event_producer.append('producer_doctypes', { 'ref_doctype': 'Note', 'use_same_name': 1 }) @@ -117,8 +117,8 @@ class TestEventProducer(unittest.TestCase): def test_dynamic_link_dependencies_synced(self): #unsubscribe for Note to check whether dependency is fulfilled event_producer = frappe.get_doc('Event Producer', self.producer_url) - event_producer.event_configuration = [] - event_producer.append('event_configuration', { + event_producer.producer_doctypes = [] + event_producer.append('producer_doctypes', { 'ref_doctype': 'ToDo', 'use_same_name': 1 }) @@ -142,7 +142,7 @@ class TestEventProducer(unittest.TestCase): #subscribe again event_producer = frappe.get_doc('Event Producer', self.producer_url) - event_producer.append('event_configuration', { + event_producer.append('producer_doctypes', { 'ref_doctype': 'Note', 'use_same_name': 1 }) @@ -151,8 +151,8 @@ class TestEventProducer(unittest.TestCase): def test_naming_configuration(self): #test with use_same_name = 0 event_producer = frappe.get_doc('Event Producer', self.producer_url) - event_producer.event_configuration = [] - event_producer.append('event_configuration', { + event_producer.producer_doctypes = [] + event_producer.append('producer_doctypes', { 'ref_doctype': 'ToDo', 'use_same_name': 0 }) @@ -164,9 +164,9 @@ class TestEventProducer(unittest.TestCase): self.assertTrue(frappe.db.exists('ToDo', {'remote_docname': producer_doc.name, 'remote_site_name': self.producer_url})) event_producer = frappe.get_doc('Event Producer', self.producer_url) - event_producer.event_configuration = [] + event_producer.producer_doctypes = [] #set use_same_name back to 1 - event_producer.append('event_configuration', { + event_producer.append('producer_doctypes', { 'ref_doctype': 'ToDo', 'use_same_name': 1 }) diff --git a/frappe/events_streaming/doctype/event_subscribed_document_type/__init__.py b/frappe/events_streaming/doctype/event_producer_document_type/__init__.py similarity index 100% rename from frappe/events_streaming/doctype/event_subscribed_document_type/__init__.py rename to frappe/events_streaming/doctype/event_producer_document_type/__init__.py diff --git a/frappe/events_streaming/doctype/event_configuration/event_configuration.json b/frappe/events_streaming/doctype/event_producer_document_type/event_producer_document_type.json similarity index 97% rename from frappe/events_streaming/doctype/event_configuration/event_configuration.json rename to frappe/events_streaming/doctype/event_producer_document_type/event_producer_document_type.json index 9dae3f3b0c..3651c6865c 100644 --- a/frappe/events_streaming/doctype/event_configuration/event_configuration.json +++ b/frappe/events_streaming/doctype/event_producer_document_type/event_producer_document_type.json @@ -55,7 +55,7 @@ "modified": "2019-10-29 15:12:53.962591", "modified_by": "Administrator", "module": "Events Streaming", - "name": "Event Configuration", + "name": "Event Producer Document Type", "owner": "Administrator", "permissions": [], "quick_entry": 1, diff --git a/frappe/events_streaming/doctype/event_subscribed_document_type/event_subscribed_document_type.py b/frappe/events_streaming/doctype/event_producer_document_type/event_producer_document_type.py similarity index 84% rename from frappe/events_streaming/doctype/event_subscribed_document_type/event_subscribed_document_type.py rename to frappe/events_streaming/doctype/event_producer_document_type/event_producer_document_type.py index 03414c27d6..eba1213fec 100644 --- a/frappe/events_streaming/doctype/event_subscribed_document_type/event_subscribed_document_type.py +++ b/frappe/events_streaming/doctype/event_producer_document_type/event_producer_document_type.py @@ -6,5 +6,5 @@ from __future__ import unicode_literals # import frappe from frappe.model.document import Document -class EventSubscribedDocumentType(Document): +class EventProducerDocumentType(Document): pass diff --git a/frappe/model/document.py b/frappe/model/document.py index 32090b145d..f8ec784db3 100644 --- a/frappe/model/document.py +++ b/frappe/model/document.py @@ -1305,7 +1305,7 @@ def check_doctype_has_consumers(doctype): event_consumers = frappe.get_all('Event Consumer') for event_consumer in event_consumers: consumer = frappe.get_doc('Event Consumer', event_consumer.name) - for entry in consumer.subscribed_doctypes: + for entry in consumer.consumer_doctypes: if doctype == entry.ref_doctype and entry.status == 'Approved': return True return False \ No newline at end of file