odoo-addon-mail-gateway-whatsapp 17.0.1.0.1__py3-none-any.whl → 17.0.1.1.0.1__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- odoo/addons/mail_gateway_whatsapp/README.rst +1 -1
- odoo/addons/mail_gateway_whatsapp/__manifest__.py +1 -1
- odoo/addons/mail_gateway_whatsapp/i18n/es.po +273 -12
- odoo/addons/mail_gateway_whatsapp/i18n/it.po +273 -12
- odoo/addons/mail_gateway_whatsapp/i18n/mail_gateway_whatsapp.pot +267 -0
- odoo/addons/mail_gateway_whatsapp/models/mail_gateway_whatsapp.py +1 -0
- odoo/addons/mail_gateway_whatsapp/models/mail_whatsapp_template.py +539 -17
- odoo/addons/mail_gateway_whatsapp/security/ir.model.access.csv +4 -0
- odoo/addons/mail_gateway_whatsapp/static/description/index.html +1 -1
- odoo/addons/mail_gateway_whatsapp/tests/test_mail_gateway_whatsapp.py +160 -0
- odoo/addons/mail_gateway_whatsapp/tests/test_mail_whatsapp_template.py +72 -2
- odoo/addons/mail_gateway_whatsapp/tools/const.py +2 -0
- odoo/addons/mail_gateway_whatsapp/views/mail_whatsapp_template_views.xml +54 -0
- odoo/addons/mail_gateway_whatsapp/wizards/mail_compose_gateway_message.py +9 -3
- odoo/addons/mail_gateway_whatsapp/wizards/whatsapp_composer.py +3 -2
- {odoo_addon_mail_gateway_whatsapp-17.0.1.0.1.dist-info → odoo_addon_mail_gateway_whatsapp-17.0.1.1.0.1.dist-info}/METADATA +2 -2
- {odoo_addon_mail_gateway_whatsapp-17.0.1.0.1.dist-info → odoo_addon_mail_gateway_whatsapp-17.0.1.1.0.1.dist-info}/RECORD +19 -19
- {odoo_addon_mail_gateway_whatsapp-17.0.1.0.1.dist-info → odoo_addon_mail_gateway_whatsapp-17.0.1.1.0.1.dist-info}/WHEEL +0 -0
- {odoo_addon_mail_gateway_whatsapp-17.0.1.0.1.dist-info → odoo_addon_mail_gateway_whatsapp-17.0.1.1.0.1.dist-info}/top_level.txt +0 -0
|
@@ -8,6 +8,7 @@ from unittest.mock import MagicMock, patch
|
|
|
8
8
|
|
|
9
9
|
from markupsafe import Markup
|
|
10
10
|
|
|
11
|
+
from odoo import Command
|
|
11
12
|
from odoo.exceptions import UserError
|
|
12
13
|
from odoo.tests import Form, RecordCapturer
|
|
13
14
|
from odoo.tests.common import tagged
|
|
@@ -382,3 +383,162 @@ class TestMailGatewayWhatsApp(MailGatewayTestCase):
|
|
|
382
383
|
post_mock.assert_called()
|
|
383
384
|
channel.invalidate_recordset()
|
|
384
385
|
self.assertTrue(channel.message_ids)
|
|
386
|
+
|
|
387
|
+
def test_send_message_with_variable(self):
|
|
388
|
+
ctx = {
|
|
389
|
+
"default_res_model": self.partner._name,
|
|
390
|
+
"default_res_id": self.partner.id,
|
|
391
|
+
"default_number_field_name": "mobile",
|
|
392
|
+
"default_composition_mode": "comment",
|
|
393
|
+
"default_gateway_id": self.gateway.id,
|
|
394
|
+
}
|
|
395
|
+
tmpl_with_vars = self.env["mail.whatsapp.template"].create(
|
|
396
|
+
{
|
|
397
|
+
"name": "Partner Vars",
|
|
398
|
+
"category": "utility",
|
|
399
|
+
"language": "es",
|
|
400
|
+
"header": "Hi {{1}}",
|
|
401
|
+
"body": "Name: {{1}} · Tel: {{2}}",
|
|
402
|
+
"gateway_id": self.gateway.id,
|
|
403
|
+
"variable_ids": [Command.clear()],
|
|
404
|
+
"state": "approved",
|
|
405
|
+
"is_supported": True,
|
|
406
|
+
"model_id": self.env["ir.model"]._get("res.partner").id,
|
|
407
|
+
}
|
|
408
|
+
)
|
|
409
|
+
self.env["mail.whatsapp.template.variable"].create(
|
|
410
|
+
{
|
|
411
|
+
"name": "{{1}}",
|
|
412
|
+
"line_type": "header",
|
|
413
|
+
"template_id": tmpl_with_vars.id,
|
|
414
|
+
"field_name": "name",
|
|
415
|
+
}
|
|
416
|
+
)
|
|
417
|
+
self.env["mail.whatsapp.template.variable"].create(
|
|
418
|
+
{
|
|
419
|
+
"name": "{{1}}",
|
|
420
|
+
"line_type": "body",
|
|
421
|
+
"template_id": tmpl_with_vars.id,
|
|
422
|
+
"field_name": "name",
|
|
423
|
+
}
|
|
424
|
+
)
|
|
425
|
+
self.env["mail.whatsapp.template.variable"].create(
|
|
426
|
+
{
|
|
427
|
+
"name": "{{2}}",
|
|
428
|
+
"line_type": "body",
|
|
429
|
+
"template_id": tmpl_with_vars.id,
|
|
430
|
+
"field_name": "mobile",
|
|
431
|
+
}
|
|
432
|
+
)
|
|
433
|
+
self.env["mail.whatsapp.template.button"].create(
|
|
434
|
+
{
|
|
435
|
+
"name": "mobile",
|
|
436
|
+
"button_type": "phone_number",
|
|
437
|
+
"template_id": tmpl_with_vars.id,
|
|
438
|
+
"call_number": "+34666555444",
|
|
439
|
+
}
|
|
440
|
+
)
|
|
441
|
+
self.assertEqual(len(tmpl_with_vars.variable_ids), 3)
|
|
442
|
+
self.assertEqual(len(tmpl_with_vars.button_ids), 1)
|
|
443
|
+
self.gateway.whatsapp_account_id = "123456"
|
|
444
|
+
form_composer = Form(self.env["whatsapp.composer"].with_context(**ctx))
|
|
445
|
+
form_composer.template_id = tmpl_with_vars
|
|
446
|
+
self.assertTrue(form_composer.is_required_template)
|
|
447
|
+
self.assertTrue(form_composer._get_modifier("template_id", "required"))
|
|
448
|
+
composer = form_composer.save()
|
|
449
|
+
channel = self.partner._whatsapp_get_channel(
|
|
450
|
+
composer.number_field_name, composer.gateway_id
|
|
451
|
+
)
|
|
452
|
+
message_domain = [
|
|
453
|
+
("gateway_type", "=", "whatsapp"),
|
|
454
|
+
("model", "=", channel._name),
|
|
455
|
+
("res_id", "=", channel.id),
|
|
456
|
+
]
|
|
457
|
+
with RecordCapturer(self.env["mail.message"], message_domain) as capture, patch(
|
|
458
|
+
"requests.post"
|
|
459
|
+
) as post_mock:
|
|
460
|
+
post_mock.return_value = MagicMock()
|
|
461
|
+
composer.action_send_whatsapp()
|
|
462
|
+
# Assertions
|
|
463
|
+
self.assertEqual(len(capture.records), 1)
|
|
464
|
+
channel.invalidate_recordset()
|
|
465
|
+
self.assertTrue(channel.message_ids)
|
|
466
|
+
|
|
467
|
+
def test_send_message_with_dynamic_button(self):
|
|
468
|
+
ctx = {
|
|
469
|
+
"default_res_model": self.partner._name,
|
|
470
|
+
"default_res_id": self.partner.id,
|
|
471
|
+
"default_number_field_name": "mobile",
|
|
472
|
+
"default_composition_mode": "comment",
|
|
473
|
+
"default_gateway_id": self.gateway.id,
|
|
474
|
+
}
|
|
475
|
+
tmpl_with_vars_dynamic = self.env["mail.whatsapp.template"].create(
|
|
476
|
+
{
|
|
477
|
+
"name": "Dynamic Button",
|
|
478
|
+
"category": "utility",
|
|
479
|
+
"language": "es",
|
|
480
|
+
"body": "Name: {{1}} · Tel: {{2}}",
|
|
481
|
+
"gateway_id": self.gateway.id,
|
|
482
|
+
"variable_ids": [Command.clear()],
|
|
483
|
+
"state": "approved",
|
|
484
|
+
"is_supported": True,
|
|
485
|
+
"model_id": self.env["ir.model"]._get("res.partner").id,
|
|
486
|
+
}
|
|
487
|
+
)
|
|
488
|
+
self.assertEqual(len(tmpl_with_vars_dynamic.variable_ids), 0)
|
|
489
|
+
self.env["mail.whatsapp.template.variable"].create(
|
|
490
|
+
{
|
|
491
|
+
"name": "{{1}}",
|
|
492
|
+
"line_type": "body",
|
|
493
|
+
"template_id": tmpl_with_vars_dynamic.id,
|
|
494
|
+
"field_name": "name",
|
|
495
|
+
}
|
|
496
|
+
)
|
|
497
|
+
self.env["mail.whatsapp.template.variable"].create(
|
|
498
|
+
{
|
|
499
|
+
"name": "{{2}}",
|
|
500
|
+
"line_type": "body",
|
|
501
|
+
"template_id": tmpl_with_vars_dynamic.id,
|
|
502
|
+
"field_name": "mobile",
|
|
503
|
+
}
|
|
504
|
+
)
|
|
505
|
+
self.env["mail.whatsapp.template.button"].create(
|
|
506
|
+
{
|
|
507
|
+
"name": "1",
|
|
508
|
+
"button_type": "url",
|
|
509
|
+
"url_type": "dynamic",
|
|
510
|
+
"template_id": tmpl_with_vars_dynamic.id,
|
|
511
|
+
"website_url": "https://www.odoo.com",
|
|
512
|
+
}
|
|
513
|
+
)
|
|
514
|
+
self.assertEqual(len(tmpl_with_vars_dynamic.variable_ids), 3)
|
|
515
|
+
button = tmpl_with_vars_dynamic.variable_ids.search(
|
|
516
|
+
[
|
|
517
|
+
("line_type", "=", "button"),
|
|
518
|
+
("template_id", "=", tmpl_with_vars_dynamic.id),
|
|
519
|
+
]
|
|
520
|
+
)
|
|
521
|
+
button.field_name = "name"
|
|
522
|
+
self.gateway.whatsapp_account_id = "123456"
|
|
523
|
+
form_composer = Form(self.env["whatsapp.composer"].with_context(**ctx))
|
|
524
|
+
form_composer.template_id = tmpl_with_vars_dynamic
|
|
525
|
+
self.assertTrue(form_composer.is_required_template)
|
|
526
|
+
self.assertTrue(form_composer._get_modifier("template_id", "required"))
|
|
527
|
+
composer = form_composer.save()
|
|
528
|
+
channel = self.partner._whatsapp_get_channel(
|
|
529
|
+
composer.number_field_name, composer.gateway_id
|
|
530
|
+
)
|
|
531
|
+
message_domain = [
|
|
532
|
+
("gateway_type", "=", "whatsapp"),
|
|
533
|
+
("model", "=", channel._name),
|
|
534
|
+
("res_id", "=", channel.id),
|
|
535
|
+
]
|
|
536
|
+
with RecordCapturer(self.env["mail.message"], message_domain) as capture, patch(
|
|
537
|
+
"requests.post"
|
|
538
|
+
) as post_mock:
|
|
539
|
+
post_mock.return_value = MagicMock()
|
|
540
|
+
composer.action_send_whatsapp()
|
|
541
|
+
# Assertions
|
|
542
|
+
self.assertEqual(len(capture.records), 1)
|
|
543
|
+
channel.invalidate_recordset()
|
|
544
|
+
self.assertTrue(channel.message_ids)
|
|
@@ -6,6 +6,7 @@ from unittest.mock import patch
|
|
|
6
6
|
|
|
7
7
|
import requests
|
|
8
8
|
|
|
9
|
+
from odoo import Command
|
|
9
10
|
from odoo.exceptions import UserError
|
|
10
11
|
from odoo.tests.common import tagged
|
|
11
12
|
|
|
@@ -121,7 +122,7 @@ class TestMailWhatsAppTemplate(MailGatewayTestCase):
|
|
|
121
122
|
template_2 = self.gateway.whatsapp_template_ids.filtered(
|
|
122
123
|
lambda t: t.template_uid == "0987654321"
|
|
123
124
|
)
|
|
124
|
-
self.
|
|
125
|
+
self.assertTrue(template_2.is_supported)
|
|
125
126
|
self.assertEqual(template_2.template_name, "test_with_buttons")
|
|
126
127
|
self.assertEqual(template_2.category, "marketing")
|
|
127
128
|
self.assertEqual(template_2.language, "es")
|
|
@@ -129,7 +130,6 @@ class TestMailWhatsAppTemplate(MailGatewayTestCase):
|
|
|
129
130
|
self.assertEqual(template_2.header, "Header 2")
|
|
130
131
|
self.assertEqual(template_2.body, "Body 2")
|
|
131
132
|
self.assertFalse(template_2.footer)
|
|
132
|
-
self.assertFalse(template_2.is_supported)
|
|
133
133
|
|
|
134
134
|
def test_export_template(self):
|
|
135
135
|
def _patch_request_post(url, *args, **kwargs):
|
|
@@ -168,3 +168,73 @@ class TestMailWhatsAppTemplate(MailGatewayTestCase):
|
|
|
168
168
|
with patch.object(requests, "get", _patch_request_get):
|
|
169
169
|
new_template.button_sync_template()
|
|
170
170
|
self.assertEqual(new_template.footer, "Footer changed")
|
|
171
|
+
|
|
172
|
+
def test_prepare_values_template_send(self):
|
|
173
|
+
partner = self.env["res.partner"].create(
|
|
174
|
+
{
|
|
175
|
+
"name": "Ada Lovelace",
|
|
176
|
+
"mobile": "+34900111222",
|
|
177
|
+
}
|
|
178
|
+
)
|
|
179
|
+
ctx = {
|
|
180
|
+
"default_res_model": partner._name,
|
|
181
|
+
"default_res_id": partner.id,
|
|
182
|
+
}
|
|
183
|
+
tmpl = self.env["mail.whatsapp.template"].create(
|
|
184
|
+
{
|
|
185
|
+
"name": "Test Render",
|
|
186
|
+
"category": "utility",
|
|
187
|
+
"language": "es",
|
|
188
|
+
"header": "Hi {{1}}",
|
|
189
|
+
"body": "Name: {{1}} · Tel: {{2}}",
|
|
190
|
+
"gateway_id": self.gateway.id,
|
|
191
|
+
"variable_ids": [Command.clear()],
|
|
192
|
+
"state": "approved",
|
|
193
|
+
"is_supported": True,
|
|
194
|
+
"model_id": self.env["ir.model"]._get("res.partner").id,
|
|
195
|
+
}
|
|
196
|
+
)
|
|
197
|
+
self.env["mail.whatsapp.template.variable"].create(
|
|
198
|
+
{
|
|
199
|
+
"name": "{{1}}",
|
|
200
|
+
"line_type": "header",
|
|
201
|
+
"template_id": tmpl.id,
|
|
202
|
+
"field_name": "name",
|
|
203
|
+
}
|
|
204
|
+
)
|
|
205
|
+
self.env["mail.whatsapp.template.variable"].create(
|
|
206
|
+
{
|
|
207
|
+
"name": "{{1}}",
|
|
208
|
+
"line_type": "body",
|
|
209
|
+
"template_id": tmpl.id,
|
|
210
|
+
"field_name": "name",
|
|
211
|
+
}
|
|
212
|
+
)
|
|
213
|
+
self.env["mail.whatsapp.template.variable"].create(
|
|
214
|
+
{
|
|
215
|
+
"name": "{{2}}",
|
|
216
|
+
"line_type": "body",
|
|
217
|
+
"template_id": tmpl.id,
|
|
218
|
+
"field_name": "mobile",
|
|
219
|
+
}
|
|
220
|
+
)
|
|
221
|
+
self.env["mail.whatsapp.template.button"].create(
|
|
222
|
+
{
|
|
223
|
+
"name": "mobile",
|
|
224
|
+
"button_type": "phone_number",
|
|
225
|
+
"template_id": tmpl.id,
|
|
226
|
+
"call_number": "+34666555444",
|
|
227
|
+
}
|
|
228
|
+
)
|
|
229
|
+
components = tmpl.with_context(**ctx).prepare_value_to_send()
|
|
230
|
+
|
|
231
|
+
header = next(c for c in components if c["type"].upper() == "HEADER")
|
|
232
|
+
self.assertEqual([p["type"] for p in header.get("parameters", [])], ["text"])
|
|
233
|
+
self.assertEqual(header["parameters"][0]["text"], partner.name)
|
|
234
|
+
|
|
235
|
+
body = next(c for c in components if c["type"].upper() == "BODY")
|
|
236
|
+
self.assertEqual(
|
|
237
|
+
[p["type"] for p in body.get("parameters", [])], ["text", "text"]
|
|
238
|
+
)
|
|
239
|
+
self.assertEqual(body["parameters"][0]["text"], partner.name)
|
|
240
|
+
self.assertEqual(body["parameters"][1]["text"], partner.mobile or "")
|
|
@@ -85,6 +85,7 @@
|
|
|
85
85
|
readonly="state != 'draft'"
|
|
86
86
|
options="{'no_create': True}"
|
|
87
87
|
/>
|
|
88
|
+
<field name="model_id" />
|
|
88
89
|
<field name="category" readonly="state != 'draft'" />
|
|
89
90
|
<field name="language" readonly="state != 'draft'" />
|
|
90
91
|
</group>
|
|
@@ -105,6 +106,59 @@
|
|
|
105
106
|
<page name="body" string="Body">
|
|
106
107
|
<field name="body" readonly="state != 'draft'" />
|
|
107
108
|
</page>
|
|
109
|
+
<page name="buttons" string="Buttons">
|
|
110
|
+
<field name="button_ids" readonly="state != 'draft'">
|
|
111
|
+
<tree editable="bottom">
|
|
112
|
+
<field name="sequence" widget="handle" />
|
|
113
|
+
<field name="button_type" />
|
|
114
|
+
<field
|
|
115
|
+
name="url_type"
|
|
116
|
+
readonly="button_type != 'url'"
|
|
117
|
+
required="button_type == 'url'"
|
|
118
|
+
invisible="button_type != 'url'"
|
|
119
|
+
/>
|
|
120
|
+
<field name="name" required="1" />
|
|
121
|
+
<field
|
|
122
|
+
name="website_url"
|
|
123
|
+
readonly="button_type != 'url'"
|
|
124
|
+
required="button_type == 'url'"
|
|
125
|
+
invisible="button_type != 'url'"
|
|
126
|
+
placeholder="e.g. https://www.example.com"
|
|
127
|
+
/>
|
|
128
|
+
<field
|
|
129
|
+
name="call_number"
|
|
130
|
+
readonly="button_type != 'phone_number'"
|
|
131
|
+
required="button_type == 'phone_number'"
|
|
132
|
+
invisible="button_type != 'phone_number'"
|
|
133
|
+
/>
|
|
134
|
+
</tree>
|
|
135
|
+
</field>
|
|
136
|
+
</page>
|
|
137
|
+
<page name="variables" string="Variables">
|
|
138
|
+
<field name="variable_ids">
|
|
139
|
+
<tree editable="bottom" create="0" delete="0">
|
|
140
|
+
<field name="display_name" string="Name" />
|
|
141
|
+
<field name="sample_value" required="1" />
|
|
142
|
+
<field
|
|
143
|
+
name="field_name"
|
|
144
|
+
widget="DynamicModelFieldSelectorChar"
|
|
145
|
+
required="1"
|
|
146
|
+
options="{'model': 'model'}"
|
|
147
|
+
/>
|
|
148
|
+
<field name="model" column_invisible="True" />
|
|
149
|
+
<field
|
|
150
|
+
name="line_type"
|
|
151
|
+
column_invisible="True"
|
|
152
|
+
force_save="1"
|
|
153
|
+
/>
|
|
154
|
+
<field
|
|
155
|
+
name="name"
|
|
156
|
+
column_invisible="True"
|
|
157
|
+
force_save="1"
|
|
158
|
+
/>
|
|
159
|
+
</tree>
|
|
160
|
+
</field>
|
|
161
|
+
</page>
|
|
108
162
|
</notebook>
|
|
109
163
|
</sheet>
|
|
110
164
|
</form>
|
|
@@ -13,16 +13,22 @@ class MailComposeGatewayMessage(models.TransientModel):
|
|
|
13
13
|
"mail.whatsapp.template",
|
|
14
14
|
domain="""[
|
|
15
15
|
('state', '=', 'approved'),
|
|
16
|
-
('is_supported', '=', True)
|
|
16
|
+
('is_supported', '=', True),
|
|
17
|
+
('model', '=', model)
|
|
17
18
|
]""",
|
|
18
19
|
)
|
|
19
20
|
|
|
20
21
|
@api.onchange("whatsapp_template_id")
|
|
21
22
|
def onchange_whatsapp_template_id(self):
|
|
22
23
|
if self.whatsapp_template_id:
|
|
23
|
-
self.body = markupsafe.Markup(
|
|
24
|
+
self.body = markupsafe.Markup(
|
|
25
|
+
self.whatsapp_template_id.render_body_message()
|
|
26
|
+
)
|
|
24
27
|
|
|
25
28
|
def _action_send_mail(self, auto_commit=False):
|
|
26
29
|
if self.whatsapp_template_id:
|
|
27
|
-
self = self.with_context(
|
|
30
|
+
self = self.with_context(
|
|
31
|
+
whatsapp_template_id=self.whatsapp_template_id.id,
|
|
32
|
+
res_id=int(self.res_ids.strip("[]")),
|
|
33
|
+
)
|
|
28
34
|
return super()._action_send_mail(auto_commit=auto_commit)
|
|
@@ -23,7 +23,8 @@ class WhatsappComposer(models.TransientModel):
|
|
|
23
23
|
domain="""[
|
|
24
24
|
('gateway_id', '=', gateway_id),
|
|
25
25
|
('state', '=', 'approved'),
|
|
26
|
-
('is_supported', '=', True)
|
|
26
|
+
('is_supported', '=', True),
|
|
27
|
+
('model', '=', res_model)
|
|
27
28
|
]""",
|
|
28
29
|
)
|
|
29
30
|
body = fields.Text("Message")
|
|
@@ -68,7 +69,7 @@ class WhatsappComposer(models.TransientModel):
|
|
|
68
69
|
@api.onchange("template_id")
|
|
69
70
|
def onchange_template_id(self):
|
|
70
71
|
if self.template_id:
|
|
71
|
-
self.body = self.template_id.
|
|
72
|
+
self.body = self.template_id.render_body_message()
|
|
72
73
|
|
|
73
74
|
@api.model
|
|
74
75
|
def default_get(self, fields):
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: odoo-addon-mail_gateway_whatsapp
|
|
3
|
-
Version: 17.0.1.0.1
|
|
3
|
+
Version: 17.0.1.1.0.1
|
|
4
4
|
Requires-Python: >=3.10
|
|
5
5
|
Requires-Dist: odoo-addon-mail_gateway>=17.0dev,<17.1dev
|
|
6
6
|
Requires-Dist: odoo>=17.0a,<17.1dev
|
|
@@ -29,7 +29,7 @@ Mail Whatsapp Gateway
|
|
|
29
29
|
!! This file is generated by oca-gen-addon-readme !!
|
|
30
30
|
!! changes will be overwritten. !!
|
|
31
31
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
32
|
-
!! source digest: sha256:
|
|
32
|
+
!! source digest: sha256:2330f1752351311f792b205805bb8a22e000deb1c18c25801bb5675d1aef5f3f
|
|
33
33
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
34
34
|
|
|
35
35
|
.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
odoo/addons/mail_gateway_whatsapp/README.rst,sha256=
|
|
1
|
+
odoo/addons/mail_gateway_whatsapp/README.rst,sha256=DEEdtReYPv33iljaGILVNgBPYnNv7ioC778j2urmdfc,5870
|
|
2
2
|
odoo/addons/mail_gateway_whatsapp/__init__.py,sha256=nvfA9GKuRiECF2yYH_cxpaYQAfFwzN9Xf_FEO5-UwXY,89
|
|
3
|
-
odoo/addons/mail_gateway_whatsapp/__manifest__.py,sha256=
|
|
4
|
-
odoo/addons/mail_gateway_whatsapp/i18n/es.po,sha256=
|
|
5
|
-
odoo/addons/mail_gateway_whatsapp/i18n/it.po,sha256=
|
|
6
|
-
odoo/addons/mail_gateway_whatsapp/i18n/mail_gateway_whatsapp.pot,sha256=
|
|
3
|
+
odoo/addons/mail_gateway_whatsapp/__manifest__.py,sha256=_L-Fibea6AWDpSR-uZP_FgS480lMKkHl9GXbrAmnpAw,884
|
|
4
|
+
odoo/addons/mail_gateway_whatsapp/i18n/es.po,sha256=Lun-i6Kyt80-zwwxe53Lwt-Aw8JO0CXAGcRFds5E2Zo,53448
|
|
5
|
+
odoo/addons/mail_gateway_whatsapp/i18n/it.po,sha256=qgQhZRtvJxNWz-1jlPEz_U4C9iGsDPNbcTa1fL6b7_4,54611
|
|
6
|
+
odoo/addons/mail_gateway_whatsapp/i18n/mail_gateway_whatsapp.pot,sha256=RMLUCyOGFa5kEGaInOf_IkkXXp7WIDCLV0H6I1g0vmw,48722
|
|
7
7
|
odoo/addons/mail_gateway_whatsapp/models/__init__.py,sha256=cftJNsyYPQ5Hqur9FJ3_koNRFpILwxfuMy664E5ymFw,182
|
|
8
8
|
odoo/addons/mail_gateway_whatsapp/models/discuss_channel.py,sha256=xiLdJSg7vTlMNmEJJazCciFkMgwfJkFCauSZG-U6xig,735
|
|
9
9
|
odoo/addons/mail_gateway_whatsapp/models/mail_gateway.py,sha256=OMasVQMXd30wuLea7MQMrKpcoYp0ZYnZ6telkgi1NS8,2888
|
|
10
|
-
odoo/addons/mail_gateway_whatsapp/models/mail_gateway_whatsapp.py,sha256=
|
|
10
|
+
odoo/addons/mail_gateway_whatsapp/models/mail_gateway_whatsapp.py,sha256=1uhpC8wEHTIfWFrI46w2Cw8YbThVwSqCDqCTDUIgCc8,16960
|
|
11
11
|
odoo/addons/mail_gateway_whatsapp/models/mail_thread.py,sha256=KXn2d2KdjcDB8sK9cwjSAglk1dtn7X0HJnpVXKs1U8w,2087
|
|
12
|
-
odoo/addons/mail_gateway_whatsapp/models/mail_whatsapp_template.py,sha256=
|
|
12
|
+
odoo/addons/mail_gateway_whatsapp/models/mail_whatsapp_template.py,sha256=pwAWqORyURzXTV2jLyNx4Hwy8be_SOcWv5HualGinmI,27690
|
|
13
13
|
odoo/addons/mail_gateway_whatsapp/models/res_partner.py,sha256=13PzX2XuMt-N5_eTROpWvDYxBwS7C3MB4Wh6v3aQPm0,581
|
|
14
14
|
odoo/addons/mail_gateway_whatsapp/readme/CONFIGURE.md,sha256=AWxWl-gqguSf3daJO2vziR50hjhzdgD57P_2XI5mUZI,2230
|
|
15
15
|
odoo/addons/mail_gateway_whatsapp/readme/CONTRIBUTORS.md,sha256=U-c-k1a944uMXJNeZhKUqY8KCbiSL6teO2BOWA6X9-Q,153
|
|
@@ -17,11 +17,11 @@ odoo/addons/mail_gateway_whatsapp/readme/CREDITS.md,sha256=TFIkDK3yIG_ruXF1_vEyq
|
|
|
17
17
|
odoo/addons/mail_gateway_whatsapp/readme/DESCRIPTION.md,sha256=5Go0eui8hXPhesmerBs7_1Kql01A11UPKFQRuGMfSBA,147
|
|
18
18
|
odoo/addons/mail_gateway_whatsapp/readme/ROADMAP.md,sha256=FW67Joq8bp67pBR3UAkW-eRtEdmSbbCWvlmxzd9ArUo,78
|
|
19
19
|
odoo/addons/mail_gateway_whatsapp/readme/USAGE.md,sha256=EyTDqTtaKzGhUWx6h9KmPv3lM3gC_UxowBskjvy_nQg,138
|
|
20
|
-
odoo/addons/mail_gateway_whatsapp/security/ir.model.access.csv,sha256=
|
|
20
|
+
odoo/addons/mail_gateway_whatsapp/security/ir.model.access.csv,sha256=mcS5M0hACui-Aez2rDwO2S1ZHeilLFBIuGt3wBNXWAw,1085
|
|
21
21
|
odoo/addons/mail_gateway_whatsapp/security/security.xml,sha256=YgBnlz-e_2lIfo-G5qS9bap3fl4Il8QBQM5b4qj3e2g,369
|
|
22
22
|
odoo/addons/mail_gateway_whatsapp/static/description/icon.png,sha256=dM-E8278XoHzXWSyvYJ4Bvo-X59cr8fCPSdTg2UEkLs,7839
|
|
23
23
|
odoo/addons/mail_gateway_whatsapp/static/description/icon.svg,sha256=X7vJai5T8i69jefVGPLEuYhQHkhLBnrqWBj8ykhFmCc,3138
|
|
24
|
-
odoo/addons/mail_gateway_whatsapp/static/description/index.html,sha256=
|
|
24
|
+
odoo/addons/mail_gateway_whatsapp/static/description/index.html,sha256=qxq67t0CHv3yBmR0PJCOCVmAWb8SVBVQq6tj0GhwSyI,17112
|
|
25
25
|
odoo/addons/mail_gateway_whatsapp/static/src/components/message/message.xml,sha256=qK4qYbmQuaDW0cXmWpz4xwyQNbGaRyq_tPloc-PJKME,408
|
|
26
26
|
odoo/addons/mail_gateway_whatsapp/static/src/components/message/message_patch.esm.js,sha256=kyfa7ep_yMiUfDS9aKBietKK8Bwnf-En_-yLuAus51M,548
|
|
27
27
|
odoo/addons/mail_gateway_whatsapp/static/src/components/phone_field/phone_field.esm.js,sha256=bZnNVh1NPE9BBo1sR21Plvam0DIPHQwGnpjN59VuNNk,717
|
|
@@ -29,18 +29,18 @@ odoo/addons/mail_gateway_whatsapp/static/src/components/phone_field/phone_field.
|
|
|
29
29
|
odoo/addons/mail_gateway_whatsapp/static/src/components/send_whatsapp_button/send_whatsapp_button.esm.js,sha256=UxD-RxQmvOO2aXkmGhEUR3IGALY47G6DbfF52FPXfAo,1491
|
|
30
30
|
odoo/addons/mail_gateway_whatsapp/static/src/components/send_whatsapp_button/send_whatsapp_button.xml,sha256=0Mcp7D2nSCp00cOvedTnmXXbuc27CpuyrxjnDv1jS7A,454
|
|
31
31
|
odoo/addons/mail_gateway_whatsapp/tests/__init__.py,sha256=TTACmULMe4Mvu0uWghdSSAegApspdHtqXza4jrd2n-0,83
|
|
32
|
-
odoo/addons/mail_gateway_whatsapp/tests/test_mail_gateway_whatsapp.py,sha256=
|
|
33
|
-
odoo/addons/mail_gateway_whatsapp/tests/test_mail_whatsapp_template.py,sha256=
|
|
32
|
+
odoo/addons/mail_gateway_whatsapp/tests/test_mail_gateway_whatsapp.py,sha256=Mw7c6HftDZW_8ekClhJGllwQyGOy6PDny4uatTj-LxE,21023
|
|
33
|
+
odoo/addons/mail_gateway_whatsapp/tests/test_mail_whatsapp_template.py,sha256=ksJg7doJnPxNcTsU-ZYGUC39xJsB_K_WZAa93xtsDm4,9282
|
|
34
34
|
odoo/addons/mail_gateway_whatsapp/tools/__init__.py,sha256=f71PzpiR0poMZalkQTskkdgjjsWKqDpjl7ciOb6qmxA,20
|
|
35
|
-
odoo/addons/mail_gateway_whatsapp/tools/const.py,sha256=
|
|
35
|
+
odoo/addons/mail_gateway_whatsapp/tools/const.py,sha256=Ps29EY3sO9rLskjhgc3Ma2F-7il6GJuhiIM95KTddgA,1995
|
|
36
36
|
odoo/addons/mail_gateway_whatsapp/views/mail_gateway.xml,sha256=b6eCID2rdCDZxzG6cGGb4WbD9UW1QyYftLqZEirmUIU,6884
|
|
37
|
-
odoo/addons/mail_gateway_whatsapp/views/mail_whatsapp_template_views.xml,sha256=
|
|
37
|
+
odoo/addons/mail_gateway_whatsapp/views/mail_whatsapp_template_views.xml,sha256=eO86BPgPcVRfDJDV-ZSLrz6PKYWwFu0XTfb7KBe3Phc,8895
|
|
38
38
|
odoo/addons/mail_gateway_whatsapp/wizards/__init__.py,sha256=ujgEsupJZt2p7nskv3elzof7SrCHPwtRr6ELlroBcC4,75
|
|
39
|
-
odoo/addons/mail_gateway_whatsapp/wizards/mail_compose_gateway_message.py,sha256=
|
|
39
|
+
odoo/addons/mail_gateway_whatsapp/wizards/mail_compose_gateway_message.py,sha256=ZjLCVsoLdjKw0Ttf-kla-7fzVUfZGpUBuDqYLBV8oYk,1080
|
|
40
40
|
odoo/addons/mail_gateway_whatsapp/wizards/mail_compose_gateway_message.xml,sha256=i7GfngKhVG53GPw6Ho10w6AYGMXTjNxyX83Xs0-04UM,1124
|
|
41
|
-
odoo/addons/mail_gateway_whatsapp/wizards/whatsapp_composer.py,sha256=
|
|
41
|
+
odoo/addons/mail_gateway_whatsapp/wizards/whatsapp_composer.py,sha256=tjwVoNdLgQoG_va-oHTxC4cz-vlj7tA-eDmBLDX4YtM,4079
|
|
42
42
|
odoo/addons/mail_gateway_whatsapp/wizards/whatsapp_composer.xml,sha256=W8yWalJNJtvoOmXQjEhezfL8H0hJn5PtvDt0lantfAg,2171
|
|
43
|
-
odoo_addon_mail_gateway_whatsapp-17.0.1.0.1.dist-info/METADATA,sha256=
|
|
44
|
-
odoo_addon_mail_gateway_whatsapp-17.0.1.0.1.dist-info/WHEEL,sha256=ZhOvUsYhy81Dx67gN3TV0RchQWBIIzutDZaJODDg2Vo,81
|
|
45
|
-
odoo_addon_mail_gateway_whatsapp-17.0.1.0.1.dist-info/top_level.txt,sha256=QE6RBQ0QX5f4eFuUcGgU5Kbq1A_qJcDs-e_vpr6pmfU,4
|
|
46
|
-
odoo_addon_mail_gateway_whatsapp-17.0.1.0.1.dist-info/RECORD,,
|
|
43
|
+
odoo_addon_mail_gateway_whatsapp-17.0.1.1.0.1.dist-info/METADATA,sha256=qjYEQieg9_GlcOgOsAXm8ncfdEVxUcIBBopjGsO4wbs,6524
|
|
44
|
+
odoo_addon_mail_gateway_whatsapp-17.0.1.1.0.1.dist-info/WHEEL,sha256=ZhOvUsYhy81Dx67gN3TV0RchQWBIIzutDZaJODDg2Vo,81
|
|
45
|
+
odoo_addon_mail_gateway_whatsapp-17.0.1.1.0.1.dist-info/top_level.txt,sha256=QE6RBQ0QX5f4eFuUcGgU5Kbq1A_qJcDs-e_vpr6pmfU,4
|
|
46
|
+
odoo_addon_mail_gateway_whatsapp-17.0.1.1.0.1.dist-info/RECORD,,
|
|
File without changes
|