post message in chatter
This commit is contained in:
parent
70f4a02db9
commit
7b21d9d612
3 changed files with 68 additions and 0 deletions
24
hub/services/migrations/0011_lead_plan.py
Normal file
24
hub/services/migrations/0011_lead_plan.py
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
# Generated by Django 5.1.5 on 2025-01-28 09:48
|
||||||
|
|
||||||
|
import django.db.models.deletion
|
||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
("services", "0010_remove_service_price"),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AddField(
|
||||||
|
model_name="lead",
|
||||||
|
name="plan",
|
||||||
|
field=models.ForeignKey(
|
||||||
|
blank=True,
|
||||||
|
null=True,
|
||||||
|
on_delete=django.db.models.deletion.SET_NULL,
|
||||||
|
to="services.plan",
|
||||||
|
),
|
||||||
|
),
|
||||||
|
]
|
|
@ -195,6 +195,7 @@ class Service(models.Model):
|
||||||
|
|
||||||
class Lead(models.Model):
|
class Lead(models.Model):
|
||||||
service = models.ForeignKey(Service, on_delete=models.CASCADE)
|
service = models.ForeignKey(Service, on_delete=models.CASCADE)
|
||||||
|
plan = models.ForeignKey(Plan, on_delete=models.SET_NULL, null=True, blank=True)
|
||||||
name = models.CharField(max_length=200)
|
name = models.CharField(max_length=200)
|
||||||
company = models.CharField(max_length=200)
|
company = models.CharField(max_length=200)
|
||||||
email = models.EmailField()
|
email = models.EmailField()
|
||||||
|
|
|
@ -93,6 +93,49 @@ class OdooAPI:
|
||||||
odoo_lead_id = Lead.create(lead_data)
|
odoo_lead_id = Lead.create(lead_data)
|
||||||
logger.info(f"Successfully created lead in Odoo with ID: {odoo_lead_id}")
|
logger.info(f"Successfully created lead in Odoo with ID: {odoo_lead_id}")
|
||||||
|
|
||||||
|
# Post message in chatter
|
||||||
|
message_data = {
|
||||||
|
"body": f"""
|
||||||
|
<p>Thank you for your interest in the service <strong>{lead.service.name}</strong>. We recorded the following information and will get back to you soon.</p>
|
||||||
|
|
||||||
|
<h3>Contact Details:</h3>
|
||||||
|
<ul>
|
||||||
|
<li><strong>Name:</strong> {lead.name}</li>
|
||||||
|
<li><strong>Company:</strong> {lead.company}</li>
|
||||||
|
<li><strong>Email:</strong> {lead.email}</li>
|
||||||
|
<li><strong>Phone:</strong> {lead.phone}</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<h3>Service Details:</h3>
|
||||||
|
<ul>
|
||||||
|
<li><strong>Service:</strong> {lead.service.name}</li>
|
||||||
|
<li><strong>Provider:</strong> {lead.service.cloud_provider.name}</li>
|
||||||
|
<li><strong>Plan:</strong> {lead.plan.name if lead.plan else 'Not specified'}</li>
|
||||||
|
<li><strong>Categories:</strong> {', '.join(cat.name for cat in lead.service.categories.all())}</li>
|
||||||
|
</ul>
|
||||||
|
""",
|
||||||
|
"message_type": "comment",
|
||||||
|
"subtype_xmlid": "mail.mt_comment",
|
||||||
|
}
|
||||||
|
|
||||||
|
# Get context for message posting
|
||||||
|
context = {
|
||||||
|
"mail_post_autofollow": True,
|
||||||
|
"lang": "en_US",
|
||||||
|
"tz": "UTC",
|
||||||
|
"uid": self.odoo.env.uid,
|
||||||
|
"allowed_company_ids": [1], # Default company ID
|
||||||
|
}
|
||||||
|
|
||||||
|
# Post the message using the message_post method
|
||||||
|
self.odoo.env["crm.lead"].browse(odoo_lead_id).message_post(
|
||||||
|
body=message_data["body"],
|
||||||
|
message_type=message_data["message_type"],
|
||||||
|
subtype_xmlid=message_data["subtype_xmlid"],
|
||||||
|
)
|
||||||
|
|
||||||
|
logger.info(f"Successfully posted message to lead {odoo_lead_id}")
|
||||||
|
|
||||||
return odoo_lead_id
|
return odoo_lead_id
|
||||||
|
|
||||||
except odoorpc.error.RPCError as e:
|
except odoorpc.error.RPCError as e:
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue