Skip to content

Commit 84e9617

Browse files
committed
[IMP] gmail: remove the enrichment feature from the addon
Purpose ======= Then enrichment feature of the addon made it slow and hard to use in practice, so we simplify it, and we keep only the core feature, which is logging the email on the records and viewing information about the contact. If a conversation contains many contacts, before it took the first one. We can now choose the contact we want to open. Allow searching any records, not only partners. We fixed some UI issues than were introduced by update of the Gmail API. Task-4727609
1 parent ef529cd commit 84e9617

38 files changed

+784
-1184
lines changed

gmail/appsscript.json

Lines changed: 68 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -22,13 +22,21 @@
2222
"https://*.odoo.com/mail_plugin/get_translations",
2323
"https://*.odoo.com/mail_plugin/partner/get",
2424
"https://*.odoo.com/mail_plugin/log_mail_content",
25-
"https://*.odoo.com/mail_plugin/partner/search",
25+
"https://*.odoo.com/mail_plugin/search_records/res.partner",
26+
"https://*.odoo.com/mail_plugin/redirect_to_record/res.partner",
2627
"https://*.odoo.com/mail_plugin/partner/create",
2728
"https://*.odoo.com/mail_plugin/partner/enrich_and_create_company",
2829
"https://*.odoo.com/mail_plugin/partner/enrich_and_update_company",
30+
"https://*.odoo.com/mail_plugin/search_records/crm.lead",
31+
"https://*.odoo.com/mail_plugin/redirect_to_record/crm.lead",
2932
"https://*.odoo.com/mail_plugin/lead/create",
33+
"https://*.odoo.com/mail_plugin/search_records/helpdesk.ticket",
34+
"https://*.odoo.com/mail_plugin/redirect_to_record/helpdesk.ticket",
3035
"https://*.odoo.com/mail_plugin/ticket/create",
31-
"https://*.odoo.com/mail_plugin/project/search",
36+
"https://*.odoo.com/mail_plugin/search_records/project.task",
37+
"https://*.odoo.com/mail_plugin/redirect_to_record/project.task",
38+
"https://*.odoo.com/mail_plugin/search_records/project.project",
39+
"https://*.odoo.com/mail_plugin/redirect_to_record/project.project",
3240
"https://*.odoo.com/mail_plugin/project/create",
3341
"https://*.odoo.com/mail_plugin/task/create",
3442
"https://*.odoo.com/web/login",
@@ -37,18 +45,72 @@
3745
"https://odoo.com/mail_plugin/get_translations",
3846
"https://odoo.com/mail_plugin/partner/get",
3947
"https://odoo.com/mail_plugin/log_mail_content",
40-
"https://odoo.com/mail_plugin/partner/search",
48+
"https://odoo.com/mail_plugin/search_records/res.partner",
49+
"https://odoo.com/mail_plugin/redirect_to_record/res.partner",
4150
"https://odoo.com/mail_plugin/partner/create",
4251
"https://odoo.com/mail_plugin/partner/enrich_and_create_company",
4352
"https://odoo.com/mail_plugin/partner/enrich_and_update_company",
53+
"https://odoo.com/mail_plugin/search_records/crm.lead",
54+
"https://odoo.com/mail_plugin/redirect_to_record/crm.lead",
55+
"https://odoo.com/mail_plugin/search_records/helpdesk.ticket",
56+
"https://odoo.com/mail_plugin/redirect_to_record/helpdesk.ticket",
4457
"https://odoo.com/mail_plugin/lead/create",
4558
"https://odoo.com/mail_plugin/ticket/create",
46-
"https://odoo.com/mail_plugin/project/search",
59+
"https://odoo.com/mail_plugin/search_records/project.task",
60+
"https://odoo.com/mail_plugin/redirect_to_record/project.task",
61+
"https://odoo.com/mail_plugin/search_records/project.project",
62+
"https://odoo.com/mail_plugin/redirect_to_record/project.project",
4763
"https://odoo.com/mail_plugin/project/create",
4864
"https://odoo.com/mail_plugin/task/create",
4965
"https://odoo.com/web/login",
5066
"https://odoo.com/mail_plugin/auth",
5167
"https://odoo.com/mail_plugin/auth/access_token",
52-
"https://iap-services.odoo.com/iap/mail_extension/enrich"
53-
]
68+
"https://687ed26ddce1.ngrok-free.app/mail_plugin/get_translations",
69+
"https://687ed26ddce1.ngrok-free.app/mail_plugin/partner/get",
70+
"https://687ed26ddce1.ngrok-free.app/mail_plugin/log_mail_content",
71+
"https://687ed26ddce1.ngrok-free.app/mail_plugin/search_records/res.partner",
72+
"https://687ed26ddce1.ngrok-free.app/mail_plugin/redirect_to_record/res.partner",
73+
"https://687ed26ddce1.ngrok-free.app/mail_plugin/partner/create",
74+
"https://687ed26ddce1.ngrok-free.app/mail_plugin/partner/enrich_and_create_company",
75+
"https://687ed26ddce1.ngrok-free.app/mail_plugin/search_records/crm.lead",
76+
"https://687ed26ddce1.ngrok-free.app/mail_plugin/redirect_to_record/crm.lead",
77+
"https://687ed26ddce1.ngrok-free.app/mail_plugin/partner/enrich_and_update_company",
78+
"https://687ed26ddce1.ngrok-free.app/mail_plugin/search_records/helpdesk.ticket",
79+
"https://687ed26ddce1.ngrok-free.app/mail_plugin/redirect_to_record/helpdesk.ticket",
80+
"https://687ed26ddce1.ngrok-free.app/mail_plugin/lead/create",
81+
"https://687ed26ddce1.ngrok-free.app/mail_plugin/ticket/create",
82+
"https://687ed26ddce1.ngrok-free.app/mail_plugin/search_records/project.task",
83+
"https://687ed26ddce1.ngrok-free.app/mail_plugin/redirect_to_record/project.task",
84+
"https://687ed26ddce1.ngrok-free.app/mail_plugin/search_records/project.project",
85+
"https://687ed26ddce1.ngrok-free.app/mail_plugin/redirect_to_record/project.project",
86+
"https://687ed26ddce1.ngrok-free.app/mail_plugin/project/create",
87+
"https://687ed26ddce1.ngrok-free.app/mail_plugin/task/create",
88+
"https://687ed26ddce1.ngrok-free.app/web/login",
89+
"https://687ed26ddce1.ngrok-free.app/mail_plugin/auth",
90+
"https://687ed26ddce1.ngrok-free.app/mail_plugin/auth/access_token",
91+
"https://88233650-master-all.runbot240.odoo.com/mail_plugin/get_translations",
92+
"https://88233650-master-all.runbot240.odoo.com/mail_plugin/partner/get",
93+
"https://88233650-master-all.runbot240.odoo.com/mail_plugin/log_mail_content",
94+
"https://88233650-master-all.runbot240.odoo.com/mail_plugin/search_records/res.partner",
95+
"https://88233650-master-all.runbot240.odoo.com/mail_plugin/redirect_to_record/res.partner",
96+
"https://88233650-master-all.runbot240.odoo.com/mail_plugin/partner/create",
97+
"https://88233650-master-all.runbot240.odoo.com/mail_plugin/partner/enrich_and_create_company",
98+
"https://88233650-master-all.runbot240.odoo.com/mail_plugin/search_records/crm.lead",
99+
"https://88233650-master-all.runbot240.odoo.com/mail_plugin/redirect_to_record/crm.lead",
100+
"https://88233650-master-all.runbot240.odoo.com/mail_plugin/partner/enrich_and_update_company",
101+
"https://88233650-master-all.runbot240.odoo.com/mail_plugin/search_records/helpdesk.ticket",
102+
"https://88233650-master-all.runbot240.odoo.com/mail_plugin/redirect_to_record/helpdesk.ticket",
103+
"https://88233650-master-all.runbot240.odoo.com/mail_plugin/lead/create",
104+
"https://88233650-master-all.runbot240.odoo.com/mail_plugin/ticket/create",
105+
"https://88233650-master-all.runbot240.odoo.com/mail_plugin/search_records/project.task",
106+
"https://88233650-master-all.runbot240.odoo.com/mail_plugin/redirect_to_record/project.task",
107+
"https://88233650-master-all.runbot240.odoo.com/mail_plugin/search_records/project.project",
108+
"https://88233650-master-all.runbot240.odoo.com/mail_plugin/redirect_to_record/project.project",
109+
"https://88233650-master-all.runbot240.odoo.com/mail_plugin/project/create",
110+
"https://88233650-master-all.runbot240.odoo.com/mail_plugin/task/create",
111+
"https://88233650-master-all.runbot240.odoo.com/web/login",
112+
"https://88233650-master-all.runbot240.odoo.com/mail_plugin/auth",
113+
"https://88233650-master-all.runbot240.odoo.com/mail_plugin/auth/access_token"
114+
],
115+
"runtimeVersion": "V8"
54116
}

gmail/package-lock.json

Lines changed: 0 additions & 17 deletions
This file was deleted.

gmail/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"devDependencies": {
33
"@rollup/plugin-node-resolve": "^15.0.2",
44
"@rollup/plugin-typescript": "^11.1.1",
5-
"@types/google-apps-script": "^1.0.64",
5+
"@types/google-apps-script": "^2.0.1",
66
"prettier": "^2.2.1",
77
"rollup": "^3.22.0",
88
"tslib": "^2.5.3"

gmail/src/const.ts

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,19 @@
11
export const URLS: Record<string, string> = {
22
GET_TRANSLATIONS: "/mail_plugin/get_translations",
33
LOG_EMAIL: "/mail_plugin/log_mail_content",
4+
SEARCH_RECORDS: "/mail_plugin/search_records",
45
// Partner
56
GET_PARTNER: "/mail_plugin/partner/get",
6-
SEARCH_PARTNER: "/mail_plugin/partner/search",
7+
SEARCH_PARTNER: "/mail_plugin/search_records/res.partner",
78
PARTNER_CREATE: "/mail_plugin/partner/create",
8-
CREATE_COMPANY: "/mail_plugin/partner/enrich_and_create_company",
9-
ENRICH_COMPANY: "/mail_plugin/partner/enrich_and_update_company",
109
// CRM Lead
1110
CREATE_LEAD: "/mail_plugin/lead/create",
1211
// HELPDESK Ticket
1312
CREATE_TICKET: "/mail_plugin/ticket/create",
1413
// Project
15-
SEARCH_PROJECT: "/mail_plugin/project/search",
14+
SEARCH_PROJECT: "/mail_plugin/search_records/project.project",
1615
CREATE_PROJECT: "/mail_plugin/project/create",
1716
CREATE_TASK: "/mail_plugin/task/create",
18-
// IAP
19-
IAP_COMPANY_ENRICHMENT: "https://iap-services.odoo.com/iap/mail_extension/enrich",
2017
};
2118

2219
export const ODOO_AUTH_URLS: Record<string, string> = {

gmail/src/main.ts

Lines changed: 27 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import { Email } from "./models/email";
33
import { State } from "./models/state";
44
import { Partner } from "./models/partner";
55
import { _t } from "./services/translation";
6+
import { buildLoginMainView } from "./views/login";
67

78
/**
89
* Entry point of the application, executed when an email is open.
@@ -17,26 +18,34 @@ function onGmailMessageOpen(event) {
1718
GmailApp.setCurrentMessageAccessToken(event.messageMetadata.accessToken);
1819
const currentEmail = new Email(event.gmail.messageId, event.gmail.accessToken);
1920

20-
const [partner, odooUserCompanies, canCreatePartner, canCreateProject, error] = Partner.enrichPartner(
21-
currentEmail.contactEmail,
22-
currentEmail.contactName
23-
);
21+
let state = null;
22+
if (currentEmail.contacts.length > 1) {
23+
// More than one contact, we will need to choose the right one
24+
const [searchedPartners, error] = Partner.searchPartner(currentEmail.contacts.map((c) => c.email));
25+
if (error.code) {
26+
return buildLoginMainView();
27+
}
28+
const existingPartnersEmails = searchedPartners.map((p) => p.email);
2429

25-
if (!partner) {
26-
// Should at least use the FROM headers to generate the partner
27-
throw new Error(_t("Error during enrichment"));
28-
}
30+
for (const contact of currentEmail.contacts) {
31+
if (existingPartnersEmails.includes(contact.email)) {
32+
continue;
33+
}
34+
searchedPartners.push(Partner.fromJson({ name: contact.name, email: contact.email }));
35+
}
36+
37+
state = new State(null, false, currentEmail, [], searchedPartners, null, false);
38+
} else {
39+
const [partner, odooUserCompanies, canCreatePartner, canCreateProject, error] = Partner.getPartner(
40+
currentEmail.contacts[0].name,
41+
currentEmail.contacts[0].email,
42+
);
43+
if (error.code) {
44+
return buildLoginMainView();
45+
}
2946

30-
const state = new State(
31-
partner,
32-
canCreatePartner,
33-
currentEmail,
34-
odooUserCompanies,
35-
null,
36-
null,
37-
canCreateProject,
38-
error
39-
);
47+
state = new State(partner, canCreatePartner, currentEmail, odooUserCompanies, null, null, canCreateProject);
48+
}
4049

4150
return [buildView(state)];
4251
}

gmail/src/models/company.ts

Lines changed: 0 additions & 152 deletions
This file was deleted.

0 commit comments

Comments
 (0)