mirror of
https://github.com/frappe/erpnext.git
synced 2026-08-15 07:28:39 +00:00
fix: link UTM Campaign to the Campaign's document name, not campaign_name
This commit is contained in:
@@ -26,23 +26,21 @@ class Campaign(Document):
|
||||
# end: auto-generated types
|
||||
|
||||
def after_insert(self):
|
||||
try:
|
||||
mc = frappe.get_doc("UTM Campaign", self.campaign_name)
|
||||
except frappe.DoesNotExistError:
|
||||
mc = frappe.new_doc("UTM Campaign")
|
||||
mc.name = self.campaign_name
|
||||
mc.campaign_description = self.description
|
||||
mc.crm_campaign = self.campaign_name
|
||||
mc.save(ignore_permissions=True)
|
||||
self.sync_utm_campaign()
|
||||
|
||||
def on_change(self):
|
||||
self.sync_utm_campaign()
|
||||
|
||||
def sync_utm_campaign(self):
|
||||
try:
|
||||
mc = frappe.get_doc("UTM Campaign", self.campaign_name)
|
||||
except frappe.DoesNotExistError:
|
||||
mc = frappe.new_doc("UTM Campaign")
|
||||
mc.name = self.campaign_name
|
||||
mc.campaign_description = self.description
|
||||
mc.crm_campaign = self.campaign_name
|
||||
# link to this Campaign by its document name, which differs from campaign_name
|
||||
# when a naming series is used
|
||||
mc.crm_campaign = self.name
|
||||
mc.save(ignore_permissions=True)
|
||||
|
||||
def autoname(self):
|
||||
|
||||
@@ -23,9 +23,22 @@ class TestCampaign(ERPNextTestSuite):
|
||||
campaign = self.make_campaign(campaign_name="_Test Campaign Named")
|
||||
self.assertEqual(campaign.name, "_Test Campaign Named")
|
||||
|
||||
def test_autoname_uses_naming_series_when_configured(self):
|
||||
# regression: with a naming series the document name differs from campaign_name,
|
||||
# and the UTM sync must still link back to a valid Campaign (self.name)
|
||||
original = frappe.defaults.get_global_default("campaign_naming_by")
|
||||
frappe.defaults.set_global_default("campaign_naming_by", "Naming Series")
|
||||
try:
|
||||
campaign = self.make_campaign(naming_series="SAL-CAM-.YYYY.-")
|
||||
self.assertTrue(campaign.name.startswith("SAL-CAM-"))
|
||||
utm = frappe.get_doc("UTM Campaign", campaign.campaign_name)
|
||||
self.assertEqual(utm.crm_campaign, campaign.name)
|
||||
finally:
|
||||
frappe.defaults.set_global_default("campaign_naming_by", original or "")
|
||||
|
||||
def test_inserting_mirrors_into_a_utm_campaign(self):
|
||||
campaign = self.make_campaign(campaign_name="_Test Campaign UTM", description="Spring push")
|
||||
self.assertTrue(frappe.db.exists("UTM Campaign", campaign.campaign_name))
|
||||
utm = frappe.get_doc("UTM Campaign", campaign.campaign_name)
|
||||
self.assertEqual(utm.campaign_description, "Spring push")
|
||||
self.assertEqual(utm.crm_campaign, campaign.campaign_name)
|
||||
self.assertEqual(utm.crm_campaign, campaign.name)
|
||||
|
||||
Reference in New Issue
Block a user