From 31c6ea975dd6579236cbfac6177724a618e9fa56 Mon Sep 17 00:00:00 2001
From: Soncrits
Date: Fri, 5 Jul 2024 17:05:33 +0700
Subject: [PATCH 1/4] [UPG] viin_brand_mail: upgrade version 17.0
---
viin_brand_mail/__init__.py | 1 +
viin_brand_mail/__manifest__.py | 28 +++++------
viin_brand_mail/data/discuss_channel_data.xml | 5 ++
viin_brand_mail/data/discuss_channel_demo.xml | 18 +++++++
viin_brand_mail/data/mail_channel_data.xml | 7 ---
viin_brand_mail/data/mail_channel_demo.xml | 13 -----
viin_brand_mail/data/mail_groups.xml | 7 +++
.../mail_templates_email_layouts.xml} | 11 ++--
viin_brand_mail/data/res_partner_data.xml | 1 -
viin_brand_mail/models/__init__.py | 7 +++
viin_brand_mail/models/mail_alias.py | 5 ++
viin_brand_mail/models/mail_alias_domain.py | 7 +++
.../models/mail_gateway_allowed.py | 28 +++++++++++
viin_brand_mail/models/mail_mail.py | 8 +++
viin_brand_mail/models/mail_template.py | 8 +++
viin_brand_mail/models/mail_thread.py | 11 ++++
viin_brand_mail/models/partner_devices.py | 10 ++++
viin_brand_mail/models/res_config_settings.py | 8 +++
.../static/img/viindoo app icon.png | Bin 0 -> 5265 bytes
.../components/chat_window/chat_window.scss | 9 ----
.../chat_window_header.scss | 4 --
.../chatter_topbar/chatter_topbar.scss | 5 --
.../src/components/composer/composer.scss | 15 ------
.../discuss_sidebar/discuss_sidebar.scss | 3 --
.../discuss_sidebar_category_item.scss | 18 -------
.../src/components/message/message.scss | 47 ------------------
.../static/src/components/message/message.xml | 9 ----
.../notification_alert/notification_alert.xml | 8 ---
.../partner_im_status_icon.scss | 25 ----------
.../components/thread_icon/thread_icon.scss | 3 --
.../components/thread_view/thread_view.scss | 8 ---
.../thread_view_topbar.scss | 7 ---
.../static/src/core/common/chat_window.scss | 3 ++
.../static/src/core/common/core.scss | 6 +++
.../static/src/core/common/im_status.scss | 13 +++++
.../static/src/core/web/discuss_sidebar.scss | 3 ++
.../core/web/discuss_sidebar_categories.scss | 6 +++
.../views/discuss_public_templates.xml | 2 +-
.../views/res_config_settings_views.xml | 29 +++++------
viin_brand_mail/wizard/__init__.py | 1 +
.../wizard/mail_compose_message.py | 8 +++
.../wizard/mail_compose_message_views.xml | 12 +++++
42 files changed, 205 insertions(+), 222 deletions(-)
create mode 100644 viin_brand_mail/data/discuss_channel_data.xml
create mode 100644 viin_brand_mail/data/discuss_channel_demo.xml
delete mode 100644 viin_brand_mail/data/mail_channel_data.xml
delete mode 100644 viin_brand_mail/data/mail_channel_demo.xml
create mode 100644 viin_brand_mail/data/mail_groups.xml
rename viin_brand_mail/{views/mail_data.xml => data/mail_templates_email_layouts.xml} (60%)
create mode 100644 viin_brand_mail/models/mail_alias_domain.py
create mode 100644 viin_brand_mail/models/mail_gateway_allowed.py
create mode 100644 viin_brand_mail/models/mail_mail.py
create mode 100644 viin_brand_mail/models/mail_template.py
create mode 100644 viin_brand_mail/models/mail_thread.py
create mode 100644 viin_brand_mail/models/partner_devices.py
create mode 100644 viin_brand_mail/models/res_config_settings.py
create mode 100644 viin_brand_mail/static/img/viindoo app icon.png
delete mode 100644 viin_brand_mail/static/src/components/chat_window/chat_window.scss
delete mode 100644 viin_brand_mail/static/src/components/chat_window_header/chat_window_header.scss
delete mode 100644 viin_brand_mail/static/src/components/chatter_topbar/chatter_topbar.scss
delete mode 100644 viin_brand_mail/static/src/components/composer/composer.scss
delete mode 100644 viin_brand_mail/static/src/components/discuss_sidebar/discuss_sidebar.scss
delete mode 100644 viin_brand_mail/static/src/components/discuss_sidebar_category_item/discuss_sidebar_category_item.scss
delete mode 100644 viin_brand_mail/static/src/components/message/message.scss
delete mode 100644 viin_brand_mail/static/src/components/message/message.xml
delete mode 100644 viin_brand_mail/static/src/components/notification_alert/notification_alert.xml
delete mode 100644 viin_brand_mail/static/src/components/partner_im_status_icon/partner_im_status_icon.scss
delete mode 100644 viin_brand_mail/static/src/components/thread_icon/thread_icon.scss
delete mode 100644 viin_brand_mail/static/src/components/thread_view/thread_view.scss
delete mode 100644 viin_brand_mail/static/src/components/thread_view_topbar/thread_view_topbar.scss
create mode 100644 viin_brand_mail/static/src/core/common/chat_window.scss
create mode 100644 viin_brand_mail/static/src/core/common/core.scss
create mode 100644 viin_brand_mail/static/src/core/common/im_status.scss
create mode 100644 viin_brand_mail/static/src/core/web/discuss_sidebar.scss
create mode 100644 viin_brand_mail/static/src/discuss/core/web/discuss_sidebar_categories.scss
create mode 100644 viin_brand_mail/wizard/__init__.py
create mode 100644 viin_brand_mail/wizard/mail_compose_message.py
create mode 100644 viin_brand_mail/wizard/mail_compose_message_views.xml
diff --git a/viin_brand_mail/__init__.py b/viin_brand_mail/__init__.py
index 0650744f..9b429614 100644
--- a/viin_brand_mail/__init__.py
+++ b/viin_brand_mail/__init__.py
@@ -1 +1,2 @@
from . import models
+from . import wizard
diff --git a/viin_brand_mail/__manifest__.py b/viin_brand_mail/__manifest__.py
index a138edca..0ea28226 100644
--- a/viin_brand_mail/__manifest__.py
+++ b/viin_brand_mail/__manifest__.py
@@ -42,32 +42,28 @@
# always loaded
'data': [
'data/res_partner_data.xml',
- 'data/mail_channel_data.xml',
- 'views/mail_data.xml',
+ 'data/discuss_channel_data.xml',
+ 'data/mail_templates_email_layouts.xml',
+ 'data/mail_groups.xml',
'views/res_config_settings_views.xml',
'views/discuss_public_templates.xml',
+ 'wizard/mail_compose_message_views.xml',
],
'demo': [
- 'data/mail_channel_demo.xml',
+ 'data/discuss_channel_demo.xml',
],
'assets': {
'web.assets_backend': [
# mail branding
- ('after', 'mail/static/src/components/chat_window/chat_window.scss', 'viin_brand_mail/static/src/components/chat_window/chat_window.scss'),
- ('after', 'mail/static/src/components/chat_window_header/chat_window_header.scss', 'viin_brand_mail/static/src/components/chat_window_header/chat_window_header.scss'),
- ('after', 'mail/static/src/components/discuss_sidebar/discuss_sidebar.scss', 'viin_brand_mail/static/src/components/discuss_sidebar/discuss_sidebar.scss'),
- ('after', 'mail/static/src/components/discuss_sidebar_category_item/discuss_sidebar_category_item.scss', 'viin_brand_mail/static/src/components/discuss_sidebar_category_item/discuss_sidebar_category_item.scss'),
- ('after', 'mail/static/src/components/message/message.scss', 'viin_brand_mail/static/src/components/message/message.scss'),
- ('after', 'mail/static/src/components/message/message.xml', 'viin_brand_mail/static/src/components/message/message.xml'),
- ('after', 'mail/static/src/components/persona_im_status_icon/persona_im_status_icon.scss', 'viin_brand_mail/static/src/components/partner_im_status_icon/partner_im_status_icon.scss'),
- ('after', 'mail/static/src/components/thread_view/thread_view.scss', 'viin_brand_mail/static/src/components/thread_view/thread_view.scss'),
- ('after', 'mail/static/src/components/thread_icon/thread_icon.scss', 'viin_brand_mail/static/src/components/thread_icon/thread_icon.scss'),
- ('after', 'mail/static/src/components/chatter_topbar/chatter_topbar.scss', 'viin_brand_mail/static/src/components/chatter_topbar/chatter_topbar.scss'),
- ('after', 'mail/static/src/components/composer/composer.scss', 'viin_brand_mail/static/src/components/composer/composer.scss'),
- ('after', 'mail/static/src/components/thread_view_topbar/thread_view_topbar.scss', 'viin_brand_mail/static/src/components/thread_view_topbar/thread_view_topbar.scss'),
+ ('after', 'mail/static/src/core/common/chat_window.scss', 'viin_brand_mail/static/src/core/common/chat_window.scss'),
+ ('after', 'mail/static/src/core/common/core.scss', 'viin_brand_mail/static/src/core/common/core.scss'),
+ ('after', 'mail/static/src/core/common/im_status.scss', 'viin_brand_mail/static/src/core/common/im_status.scss'),
+ ('after', 'mail/static/src/core/web/discuss_sidebar.scss', 'viin_brand_mail/static/src/core/web/discuss_sidebar.scss'),
+ ('after', 'mail/static/src/discuss/core/web/discuss_sidebar_categories.scss', 'viin_brand_mail/static/src/discuss/core/web/discuss_sidebar_categories.scss'),
],
},
- 'installable': False, # set auto_install True after upgrading for v17 after upgrading for v17
+ 'installable': True,
+ 'auto_install': True,
'price': 9.9,
'currency': 'EUR',
'license': 'OPL-1',
diff --git a/viin_brand_mail/data/discuss_channel_data.xml b/viin_brand_mail/data/discuss_channel_data.xml
new file mode 100644
index 00000000..2452d7a0
--- /dev/null
+++ b/viin_brand_mail/data/discuss_channel_data.xml
@@ -0,0 +1,5 @@
+
+
+ Welcome to Viindoo!
+
+
diff --git a/viin_brand_mail/data/discuss_channel_demo.xml b/viin_brand_mail/data/discuss_channel_demo.xml
new file mode 100644
index 00000000..236365f4
--- /dev/null
+++ b/viin_brand_mail/data/discuss_channel_demo.xml
@@ -0,0 +1,18 @@
+
+
+
+
+ Great news!
+ Our company has received the Deloitte Fast 50 award. We are the fastest
+ growing company of the country, with a growth of 1549% over the past 5
+ years. You can get more information on our blog.
+
+ ]]>
+
+
+
+
+ When I have too much opportunities in the pipe, I start communicating with prospects more by email than phonecalls.I send an email to create a sense of emergency, like "can I call you this week about our quote?" and I call only those that answer this email.
You can use the email template feature of Viindoo to automate email composition.
]]>
+
+
diff --git a/viin_brand_mail/data/mail_channel_data.xml b/viin_brand_mail/data/mail_channel_data.xml
deleted file mode 100644
index de458c6c..00000000
--- a/viin_brand_mail/data/mail_channel_data.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
- Welcome to Viindoo!
-
-
diff --git a/viin_brand_mail/data/mail_channel_demo.xml b/viin_brand_mail/data/mail_channel_demo.xml
deleted file mode 100644
index 2b028568..00000000
--- a/viin_brand_mail/data/mail_channel_demo.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
- Great news!
- Our company has received the Deloitte Fast 50 award. We are the fastest
- growing company of the country, with a growth of 1549% over the past 5
- years. You can get more information on our blog.
-
-]]>
-
-
diff --git a/viin_brand_mail/data/mail_groups.xml b/viin_brand_mail/data/mail_groups.xml
new file mode 100644
index 00000000..36e836b5
--- /dev/null
+++ b/viin_brand_mail/data/mail_groups.xml
@@ -0,0 +1,7 @@
+
+
+
+ Receive notifications in Viindoo
+
+
+
diff --git a/viin_brand_mail/views/mail_data.xml b/viin_brand_mail/data/mail_templates_email_layouts.xml
similarity index 60%
rename from viin_brand_mail/views/mail_data.xml
rename to viin_brand_mail/data/mail_templates_email_layouts.xml
index 042f8f50..8ff6ca0d 100644
--- a/viin_brand_mail/views/mail_data.xml
+++ b/viin_brand_mail/data/mail_templates_email_layouts.xml
@@ -1,21 +1,20 @@
-
Viindoo
- color: #66C8D3;
- https://viindoo.com?utm_source=db&utm_medium=email
+ https://viindoo.com?utm_source=db&utm_medium=email
+ 'color: ' + (company.email_secondary_color or '#66C8D3') + ';'
- Viindoo
+ Viindoo
- color: #66C8D3;
- https://viindoo.com?utm_source=db&utm_medium=email
+ https://viindoo.com?utm_source=db&utm_medium=email
+ 'color: ' + (company.email_secondary_color or '#66C8D3') + ';'
diff --git a/viin_brand_mail/data/res_partner_data.xml b/viin_brand_mail/data/res_partner_data.xml
index 8b788d25..1cf20c37 100644
--- a/viin_brand_mail/data/res_partner_data.xml
+++ b/viin_brand_mail/data/res_partner_data.xml
@@ -1,4 +1,3 @@
-
ViindooBot
diff --git a/viin_brand_mail/models/__init__.py b/viin_brand_mail/models/__init__.py
index f38f8b93..ff3e6565 100644
--- a/viin_brand_mail/models/__init__.py
+++ b/viin_brand_mail/models/__init__.py
@@ -1,3 +1,10 @@
from . import ir_http
+from . import mail_alias_domain
from . import mail_alias
+from . import mail_gateway_allowed
+from . import mail_mail
+from . import mail_template
+from . import mail_thread
+from . import partner_devices
+from . import res_config_settings
from . import res_users
diff --git a/viin_brand_mail/models/mail_alias.py b/viin_brand_mail/models/mail_alias.py
index 8e6ac068..3837fc57 100644
--- a/viin_brand_mail/models/mail_alias.py
+++ b/viin_brand_mail/models/mail_alias.py
@@ -5,3 +5,8 @@ class Alias(models.Model):
_inherit = 'mail.alias'
alias_name = fields.Char(help="The name of the email alias, e.g. 'jobs' if you want to catch emails for ")
+ alias_model_id = fields.Many2one(help="The model (Viindoo Document Kind) to which this alias "
+ "corresponds. Any incoming email that does not reply to an "
+ "existing record will cause the creation of a new record "
+ "of this model (e.g. a Project Task)",
+ )
diff --git a/viin_brand_mail/models/mail_alias_domain.py b/viin_brand_mail/models/mail_alias_domain.py
new file mode 100644
index 00000000..e08577e8
--- /dev/null
+++ b/viin_brand_mail/models/mail_alias_domain.py
@@ -0,0 +1,7 @@
+from odoo import fields, models
+
+
+class AliasDomain(models.Model):
+ _inherit = 'mail.alias.domain'
+
+ name = fields.Char(help="Email domain e.g. 'example.com' in 'viindoo@example.com'")
diff --git a/viin_brand_mail/models/mail_gateway_allowed.py b/viin_brand_mail/models/mail_gateway_allowed.py
new file mode 100644
index 00000000..cfed8c59
--- /dev/null
+++ b/viin_brand_mail/models/mail_gateway_allowed.py
@@ -0,0 +1,28 @@
+from markupsafe import Markup
+from odoo import _, api, models
+
+
+class MailGatewayAllowed(models.Model):
+ _inherit = 'mail.gateway.allowed'
+
+ @api.model
+ def get_empty_list_help(self, help_message):
+ """
+ Completely overwrite
+ """
+ get_param = self.env['ir.config_parameter'].sudo().get_param
+ LOOP_MINUTES = int(get_param('mail.gateway.loop.minutes', 120))
+ LOOP_THRESHOLD = int(get_param('mail.gateway.loop.threshold', 20))
+
+ return Markup(_('''
+
+ Add addresses to the Allowed List
+
+ To protect you from spam and reply loops, Viindoo automatically blocks emails
+ coming to your gateway past a threshold of %(threshold)i emails every %(minutes)i
+ minutes. If there are some addresses from which you need to receive very frequent
+ updates, you can however add them below and Viindoo will let them go through.
+
''')) % {
+ 'threshold': LOOP_THRESHOLD,
+ 'minutes': LOOP_MINUTES,
+ }
diff --git a/viin_brand_mail/models/mail_mail.py b/viin_brand_mail/models/mail_mail.py
new file mode 100644
index 00000000..5b7b76cd
--- /dev/null
+++ b/viin_brand_mail/models/mail_mail.py
@@ -0,0 +1,8 @@
+from odoo import fields, models
+
+
+class MailMail(models.Model):
+ _inherit = 'mail.mail'
+
+ auto_delete = fields.Boolean(help="This option permanently removes any track of email after it's been sent, "
+ "including from the Technical menu in the Settings, in order to preserve storage space of your Viindoo database.")
diff --git a/viin_brand_mail/models/mail_template.py b/viin_brand_mail/models/mail_template.py
new file mode 100644
index 00000000..40588e97
--- /dev/null
+++ b/viin_brand_mail/models/mail_template.py
@@ -0,0 +1,8 @@
+from odoo import fields, models
+
+
+class MailTemplate(models.Model):
+ _inherit = "mail.template"
+
+ auto_delete = fields.Boolean(help="This option permanently removes any track of email after it's been sent, "
+ "including from the Technical menu in the Settings, in order to preserve storage space of your Viindoo database.")
diff --git a/viin_brand_mail/models/mail_thread.py b/viin_brand_mail/models/mail_thread.py
new file mode 100644
index 00000000..d547e2ba
--- /dev/null
+++ b/viin_brand_mail/models/mail_thread.py
@@ -0,0 +1,11 @@
+from odoo import models
+
+
+class MailThread(models.AbstractModel):
+ _inherit = 'mail.thread'
+
+ def _notify_by_web_push_prepare_payload(self, message, msg_vals=False):
+ payload = super()._notify_by_web_push_prepare_payload(message, msg_vals)
+ if 'options' in payload and 'icon' in payload['options'] and 'odoo-icon-192x192.png' in payload['options']['icon']:
+ payload['options']['icon'] = '/viin_brand_mail/static/img/viindoo_app_icon.png'
+ return payload
diff --git a/viin_brand_mail/models/partner_devices.py b/viin_brand_mail/models/partner_devices.py
new file mode 100644
index 00000000..d458097a
--- /dev/null
+++ b/viin_brand_mail/models/partner_devices.py
@@ -0,0 +1,10 @@
+from odoo import fields, models
+
+
+class PartnerDevice(models.Model):
+ _inherit = 'mail.partner.device'
+
+ keys = fields.Char(help=("It's refer to browser keys used by the notification: \n"
+ "- p256dh: It's the subscription public key generated by the browser. The browser will \n"
+ " keep the private key secret and use it for decrypting the payload\n"
+ "- auth: The auth value should be treated as a secret and not shared outside of Viindoo"))
diff --git a/viin_brand_mail/models/res_config_settings.py b/viin_brand_mail/models/res_config_settings.py
new file mode 100644
index 00000000..949a1fb6
--- /dev/null
+++ b/viin_brand_mail/models/res_config_settings.py
@@ -0,0 +1,8 @@
+from odoo import fields, models
+
+
+class ResConfigSettings(models.TransientModel):
+ _inherit = 'res.config.settings'
+
+ alias_domain_id = fields.Many2one(help="If you have setup a catch-all email domain redirected to the Viindoo server,"
+ " enter the domain name here.")
diff --git a/viin_brand_mail/static/img/viindoo app icon.png b/viin_brand_mail/static/img/viindoo app icon.png
new file mode 100644
index 0000000000000000000000000000000000000000..73bc5347c68f9975dc3fadd4c075ffe7c078e396
GIT binary patch
literal 5265
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
XsA7OnbzvYP00000NkvXXu0mjfHywm)
literal 0
HcmV?d00001
diff --git a/viin_brand_mail/static/src/components/chat_window/chat_window.scss b/viin_brand_mail/static/src/components/chat_window/chat_window.scss
deleted file mode 100644
index 186127c3..00000000
--- a/viin_brand_mail/static/src/components/chat_window/chat_window.scss
+++ /dev/null
@@ -1,9 +0,0 @@
-// ------------------------------------------------------------------
-// Style
-// ------------------------------------------------------------------
-
-.o_ChatWindow_thread {
- .o_ThreadView_messageList {
- font-size: inherit;
- }
-}
diff --git a/viin_brand_mail/static/src/components/chat_window_header/chat_window_header.scss b/viin_brand_mail/static/src/components/chat_window_header/chat_window_header.scss
deleted file mode 100644
index c619cf52..00000000
--- a/viin_brand_mail/static/src/components/chat_window_header/chat_window_header.scss
+++ /dev/null
@@ -1,4 +0,0 @@
-.o_ChatWindowHeader {
- background-color: $brand-primary-dark;
-}
-
diff --git a/viin_brand_mail/static/src/components/chatter_topbar/chatter_topbar.scss b/viin_brand_mail/static/src/components/chatter_topbar/chatter_topbar.scss
deleted file mode 100644
index c71e42bf..00000000
--- a/viin_brand_mail/static/src/components/chatter_topbar/chatter_topbar.scss
+++ /dev/null
@@ -1,5 +0,0 @@
-.o_ChatterTopbar_button {
- &.o-active {
- background-color: $light;
- }
-}
diff --git a/viin_brand_mail/static/src/components/composer/composer.scss b/viin_brand_mail/static/src/components/composer/composer.scss
deleted file mode 100644
index de50d83f..00000000
--- a/viin_brand_mail/static/src/components/composer/composer.scss
+++ /dev/null
@@ -1,15 +0,0 @@
-.o_Composer_textInput {
- &.o-has-current-partner-avatar.o-composer-is-compact {
- border-radius: inherit;
- }
-}
-
-.o_Composer_coreMain:not(.o-composer-is-compact) {
- border-radius: inherit;
-}
-
-.o_Composer {
- &:not(.o-messaging-in-editing) {
- background-color: $light;
- }
-}
diff --git a/viin_brand_mail/static/src/components/discuss_sidebar/discuss_sidebar.scss b/viin_brand_mail/static/src/components/discuss_sidebar/discuss_sidebar.scss
deleted file mode 100644
index bfe15861..00000000
--- a/viin_brand_mail/static/src/components/discuss_sidebar/discuss_sidebar.scss
+++ /dev/null
@@ -1,3 +0,0 @@
-.o_DiscussSidebar {
- border-right-color: $gray-500 !important;
-}
\ No newline at end of file
diff --git a/viin_brand_mail/static/src/components/discuss_sidebar_category_item/discuss_sidebar_category_item.scss b/viin_brand_mail/static/src/components/discuss_sidebar_category_item/discuss_sidebar_category_item.scss
deleted file mode 100644
index 6f343f78..00000000
--- a/viin_brand_mail/static/src/components/discuss_sidebar_category_item/discuss_sidebar_category_item.scss
+++ /dev/null
@@ -1,18 +0,0 @@
-.o_DiscussSidebarCategoryItem_name {
- &.o-item-unread {
- font-weight: 900;
- }
-}
-.o_DiscussSidebarCategoryItem {
- .o_DiscussSidebarCategoryItem_threadIcon {
- width: 0.8rem;
- height: 0.8rem;
- }
-}
-.o_DiscussSidebarMailbox_counter {
- &.o_DiscussSidebarMailbox_item {
- &.bg-400 {
- background-color: #6c757d !important;
- }
- }
-}
diff --git a/viin_brand_mail/static/src/components/message/message.scss b/viin_brand_mail/static/src/components/message/message.scss
deleted file mode 100644
index 8420b478..00000000
--- a/viin_brand_mail/static/src/components/message/message.scss
+++ /dev/null
@@ -1,47 +0,0 @@
-// ------------------------------------------------------------------
-// Layout
-// ------------------------------------------------------------------
-.o_Message {
- padding-top: 0 !important;
- padding-bottom: 0;
- transition: background-color .2s ease-out;
- &.o_Message_active {
- background-color: $light;
- }
- &.o-not-discussion {
- background-color: $light;
- }
-}
-.o_Message_sidebarItem {
- font-size: 0.9em;
-}
-.o_Message_sidebar {
- max-width: 43px;
- flex: 0 0 43px;
- margin-inline-end: 0.3rem;
- &.o-message-squashed{
- align-items: baseline;
- }
-}
-.o_MessageList_separator{
- font-size: 1rem;
- color: $text-muted;
-}
-.o_Message_authorName{
- font-size: 1rem;
-}
-.o_Message_prettyBody {
- a {
- &.o_mail_redirect{
- padding: inherit;
- background: inherit;
- }
- }
-}
-.o_Message_content {
- *:not(li):not(li div) {
- // Avoid vertical scroll caused by the following code in Odoo 14:
- // https://github.com/odoo/odoo/blob/3e598a8014966e1a07a08d53bf85050b458e05a6/addons/mail/static/src/components/message/message.scss#L56
- overflow-x: inherit;
- }
-}
\ No newline at end of file
diff --git a/viin_brand_mail/static/src/components/message/message.xml b/viin_brand_mail/static/src/components/message/message.xml
deleted file mode 100644
index daf722f5..00000000
--- a/viin_brand_mail/static/src/components/message/message.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
-
-
-
-
-
-
diff --git a/viin_brand_mail/static/src/components/notification_alert/notification_alert.xml b/viin_brand_mail/static/src/components/notification_alert/notification_alert.xml
deleted file mode 100644
index 36c1dcea..00000000
--- a/viin_brand_mail/static/src/components/notification_alert/notification_alert.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
- Viindoo Push notifications have been blocked. Go to your browser settings to allow them.
-
-
-
diff --git a/viin_brand_mail/static/src/components/partner_im_status_icon/partner_im_status_icon.scss b/viin_brand_mail/static/src/components/partner_im_status_icon/partner_im_status_icon.scss
deleted file mode 100644
index c61f634d..00000000
--- a/viin_brand_mail/static/src/components/partner_im_status_icon/partner_im_status_icon.scss
+++ /dev/null
@@ -1,25 +0,0 @@
-.o_PersonaImStatusIcon_icon {
- &.o-offline {
- color: $gray-500 !important;
- }
-
- &.text-primary {
- color: $brand-primary !important;
- }
-}
-.o_PartnerImStatusIcon_icon {
- &.o-bot {
- color: $brand-primary;
- }
-
- &.o-offline {
- color: $gray-500;
- }
-
- &.o-online {
- color: $brand-primary;
- }
-}
-.o_ThreadIcon_offline {
- color: $gray-500;
-}
diff --git a/viin_brand_mail/static/src/components/thread_icon/thread_icon.scss b/viin_brand_mail/static/src/components/thread_icon/thread_icon.scss
deleted file mode 100644
index d0f09ae8..00000000
--- a/viin_brand_mail/static/src/components/thread_icon/thread_icon.scss
+++ /dev/null
@@ -1,3 +0,0 @@
-.o_ThreadIcon_online {
- color: $brand-primary;
-}
diff --git a/viin_brand_mail/static/src/components/thread_view/thread_view.scss b/viin_brand_mail/static/src/components/thread_view/thread_view.scss
deleted file mode 100644
index 8bd005e4..00000000
--- a/viin_brand_mail/static/src/components/thread_view/thread_view.scss
+++ /dev/null
@@ -1,8 +0,0 @@
-.o_ThreadView {
- &.o_Discuss_thread {
- color: $gray-700;
- }
- &.o_Chatter_thread {
- color: $gray-700;
- }
-}
diff --git a/viin_brand_mail/static/src/components/thread_view_topbar/thread_view_topbar.scss b/viin_brand_mail/static/src/components/thread_view_topbar/thread_view_topbar.scss
deleted file mode 100644
index 0b902d2f..00000000
--- a/viin_brand_mail/static/src/components/thread_view_topbar/thread_view_topbar.scss
+++ /dev/null
@@ -1,7 +0,0 @@
-// ------------------------------------------------------------------
-// Style
-// ------------------------------------------------------------------
-
-.o_ThreadViewTopbar {
- background-color: $light;
-}
diff --git a/viin_brand_mail/static/src/core/common/chat_window.scss b/viin_brand_mail/static/src/core/common/chat_window.scss
new file mode 100644
index 00000000..8987c541
--- /dev/null
+++ b/viin_brand_mail/static/src/core/common/chat_window.scss
@@ -0,0 +1,3 @@
+.o-mail-ChatWindow-header {
+ background-color: $brand-primary-dark !important;
+}
diff --git a/viin_brand_mail/static/src/core/common/core.scss b/viin_brand_mail/static/src/core/common/core.scss
new file mode 100644
index 00000000..9e7657fe
--- /dev/null
+++ b/viin_brand_mail/static/src/core/common/core.scss
@@ -0,0 +1,6 @@
+o-discuss-badge {
+ --o-discuss-badge-bg: $o-brand-primary
+}
+.o-discuss-badge.o-muted {
+ --o-discuss-badge-bg: #6c757d;
+}
diff --git a/viin_brand_mail/static/src/core/common/im_status.scss b/viin_brand_mail/static/src/core/common/im_status.scss
new file mode 100644
index 00000000..7bba95bd
--- /dev/null
+++ b/viin_brand_mail/static/src/core/common/im_status.scss
@@ -0,0 +1,13 @@
+.o-mail-ImStatus {
+ &.-primary.text-success {
+ color: $brand-primary !important;
+ }
+
+ &.o-offline {
+ color: $gray-500 !important;
+ }
+
+ &.o-bot {
+ color: $brand-primary !important;
+ }
+}
diff --git a/viin_brand_mail/static/src/core/web/discuss_sidebar.scss b/viin_brand_mail/static/src/core/web/discuss_sidebar.scss
new file mode 100644
index 00000000..d4f93468
--- /dev/null
+++ b/viin_brand_mail/static/src/core/web/discuss_sidebar.scss
@@ -0,0 +1,3 @@
+.o-mail-DiscussSidebar {
+ border-right-color: $gray-500 !important;
+}
diff --git a/viin_brand_mail/static/src/discuss/core/web/discuss_sidebar_categories.scss b/viin_brand_mail/static/src/discuss/core/web/discuss_sidebar_categories.scss
new file mode 100644
index 00000000..f09eae90
--- /dev/null
+++ b/viin_brand_mail/static/src/discuss/core/web/discuss_sidebar_categories.scss
@@ -0,0 +1,6 @@
+.o-mail-DiscussSidebar-item {
+ .o-mail-ThreadIcon {
+ width: 0.8rem;
+ height: 0.8rem;
+ }
+}
diff --git a/viin_brand_mail/views/discuss_public_templates.xml b/viin_brand_mail/views/discuss_public_templates.xml
index 7a878cb3..b0163fdd 100644
--- a/viin_brand_mail/views/discuss_public_templates.xml
+++ b/viin_brand_mail/views/discuss_public_templates.xml
@@ -1,5 +1,5 @@
-
+
title or 'Viindoo'
diff --git a/viin_brand_mail/views/res_config_settings_views.xml b/viin_brand_mail/views/res_config_settings_views.xml
index f9d4c385..4615331c 100644
--- a/viin_brand_mail/views/res_config_settings_views.xml
+++ b/viin_brand_mail/views/res_config_settings_views.xml
@@ -1,19 +1,14 @@
-
-
- res.config.settings.view.form
- res.config.settings
-
-
-
- Using your own email server is required to send/receive emails in Community and Enterprise versions. Online users already benefit from a ready-to-use email server (@mycompany.viindoo.com).
-
-
- mycompany.viindoo.com
-
-
- https://viindoo.com/documentation/16.0/applications/getting-started/system-settings/how-to-set-mail-server-for-sending-receiving-emails-in-viindoo.html
-
-
-
+
+ res.config.settings.view.form
+ res.config.settings
+
+
+
+
+ Using your own email server is required to send/receive emails in Community and Enterprise versions. Online users already benefit from a ready-to-use email server (@mycompany.viindoo.com).
+
+
+
+
diff --git a/viin_brand_mail/wizard/__init__.py b/viin_brand_mail/wizard/__init__.py
new file mode 100644
index 00000000..b528d997
--- /dev/null
+++ b/viin_brand_mail/wizard/__init__.py
@@ -0,0 +1 @@
+from . import mail_compose_message
diff --git a/viin_brand_mail/wizard/mail_compose_message.py b/viin_brand_mail/wizard/mail_compose_message.py
new file mode 100644
index 00000000..cbcda830
--- /dev/null
+++ b/viin_brand_mail/wizard/mail_compose_message.py
@@ -0,0 +1,8 @@
+from odoo import fields, models
+
+
+class MailComposer(models.TransientModel):
+ _inherit = 'mail.compose.message'
+
+ auto_delete = fields.Boolean(help="This option permanently removes any track of email after it\'s been sent,"
+ "including from the Technical menu in the Settings, in order to preserve storage space of your Viindoo database.")
diff --git a/viin_brand_mail/wizard/mail_compose_message_views.xml b/viin_brand_mail/wizard/mail_compose_message_views.xml
new file mode 100644
index 00000000..311e0917
--- /dev/null
+++ b/viin_brand_mail/wizard/mail_compose_message_views.xml
@@ -0,0 +1,12 @@
+
+
+ mail.compose.message.form
+ mail.compose.message
+
+
+
+ e.g: "info@mycompany.viindoo.com"
+
+
+
+
From 56a557923300ec9c66242411b53d5e9900bc92e3 Mon Sep 17 00:00:00 2001
From: Soncrits
Date: Mon, 8 Jul 2024 16:15:38 +0700
Subject: [PATCH 2/4] [I18N] viin_brand_mail: export translate file
---
viin_brand_mail/i18n/vi_VN.po | 177 ++++++++++++++++++++++-
viin_brand_mail/i18n/viin_brand_mail.pot | 154 ++++++++++++++++++--
2 files changed, 314 insertions(+), 17 deletions(-)
diff --git a/viin_brand_mail/i18n/vi_VN.po b/viin_brand_mail/i18n/vi_VN.po
index 08df04d2..f3c964f7 100644
--- a/viin_brand_mail/i18n/vi_VN.po
+++ b/viin_brand_mail/i18n/vi_VN.po
@@ -4,10 +4,10 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: Odoo Server 16.0\n"
+"Project-Id-Version: Odoo Server 17.0\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-05-31 01:50+0000\n"
-"PO-Revision-Date: 2022-04-24 09:44+0000\n"
+"POT-Creation-Date: 2024-07-08 09:05+0000\n"
+"PO-Revision-Date: 2024-07-08 09:05+0000\n"
"Last-Translator: \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
@@ -15,16 +15,98 @@ msgstr ""
"Content-Transfer-Encoding: \n"
"Plural-Forms: \n"
+#. module: viin_brand_mail
+#. odoo-python
+#: code:addons/viin_brand_mail/models/mail_gateway_allowed.py:0
+#, python-format
+msgid ""
+"\n"
+" \n"
+" Add addresses to the Allowed List\n"
+"
\n"
+" To protect you from spam and reply loops, Viindoo automatically blocks emails\n"
+" coming to your gateway past a threshold of %(threshold)i emails every %(minutes)i\n"
+" minutes. If there are some addresses from which you need to receive very frequent\n"
+" updates, you can however add them below and Viindoo will let them go through.\n"
+"
"
+msgstr ""
+"\n"
+" \n"
+" Thêm địa chỉ vào Danh sách Cho phép\n"
+"
\n"
+" Để bảo vệ bạn khỏi thư rác và vòng lặp trả lời, Viindoo tự động chặn thư\n"
+" đến cổng của bạn sau khoảng %(threshold)i thư mỗi %(minutes)i\n"
+" phút. Nếu có một số địa chỉ mà bạn cần nhận cập nhật rất thường xuyên\n"
+" bạn có thể thêm chúng dưới đây và Viindoo sẽ cho phép chúng đi qua.\n"
+"
"
+
+#. module: viin_brand_mail
+#: model:ir.model.fields,field_description:viin_brand_mail.field_res_config_settings__alias_domain_id
+msgid "Alias Domain"
+msgstr ""
+
#. module: viin_brand_mail
#: model:ir.model.fields,field_description:viin_brand_mail.field_mail_alias__alias_name
+#: model:ir.model.fields,field_description:viin_brand_mail.field_mail_alias_mixin__alias_name
msgid "Alias Name"
msgstr "Tên bí danh"
+#. module: viin_brand_mail
+#: model:ir.model.fields,field_description:viin_brand_mail.field_mail_alias__alias_model_id
+msgid "Aliased Model"
+msgstr ""
+
+#. module: viin_brand_mail
+#: model:ir.model.fields,field_description:viin_brand_mail.field_mail_mail__auto_delete
+#: model:ir.model.fields,field_description:viin_brand_mail.field_mail_template__auto_delete
+msgid "Auto Delete"
+msgstr ""
+
+#. module: viin_brand_mail
+#: model:ir.model.fields,field_description:viin_brand_mail.field_mail_partner_device__keys
+msgid "Browser keys"
+msgstr ""
+
+#. module: viin_brand_mail
+#: model:ir.model,name:viin_brand_mail.model_res_config_settings
+msgid "Config Settings"
+msgstr ""
+
+#. module: viin_brand_mail
+#: model:ir.model.fields,field_description:viin_brand_mail.field_mail_compose_message__auto_delete
+msgid "Delete Emails"
+msgstr ""
+
#. module: viin_brand_mail
#: model:ir.model,name:viin_brand_mail.model_mail_alias
msgid "Email Aliases"
msgstr "Bí danh Email"
+#. module: viin_brand_mail
+#: model:ir.model,name:viin_brand_mail.model_mail_alias_domain
+msgid "Email Domain"
+msgstr "Miền email"
+
+#. module: viin_brand_mail
+#: model:ir.model,name:viin_brand_mail.model_mail_template
+msgid "Email Templates"
+msgstr "Mẫu Email"
+
+#. module: viin_brand_mail
+#: model:ir.model,name:viin_brand_mail.model_mail_thread
+msgid "Email Thread"
+msgstr "Luồng Email"
+
+#. module: viin_brand_mail
+#: model:ir.model,name:viin_brand_mail.model_mail_compose_message
+msgid "Email composition wizard"
+msgstr "Đồ thuật soạn thảo email"
+
+#. module: viin_brand_mail
+#: model:ir.model.fields,help:viin_brand_mail.field_mail_alias_domain__name
+msgid "Email domain e.g. 'example.com' in 'viindoo@example.com'"
+msgstr "Miền email ví dụ: 'example.com' trong 'viindoo@example.com'"
+
#. module: viin_brand_mail
#: model:ir.model,name:viin_brand_mail.model_ir_http
msgid "HTTP Routing"
@@ -35,11 +117,53 @@ msgstr "Định tuyến HTTP"
msgid "Handle in Viindoo"
msgstr "Xử lý trong hệ thống"
+#. module: viin_brand_mail
+#: model:ir.model.fields,help:viin_brand_mail.field_res_config_settings__alias_domain_id
+msgid ""
+"If you have setup a catch-all email domain redirected to the Viindoo server,"
+" enter the domain name here."
+msgstr ""
+"Nếu bạn đã thiết lập một miền email catch-all được chuyển hướng đến máy chủ "
+"Viindoo, hãy nhập tên miền ở đây."
+
+#. module: viin_brand_mail
+#: model:ir.model.fields,help:viin_brand_mail.field_mail_partner_device__keys
+msgid ""
+"It's refer to browser keys used by the notification: \n"
+"- p256dh: It's the subscription public key generated by the browser. The browser will \n"
+" keep the private key secret and use it for decrypting the payload\n"
+"- auth: The auth value should be treated as a secret and not shared outside of Viindoo"
+msgstr ""
+"Nó liên quan đến các khóa trình duyệt được sử dụng bởi thông báo: \n"
+"- p256dh: Đây là khóa công khai đăng ký được trình duyệt tạo ra. Trình duyệt sẽ \n"
+" giữ bí mật khóa riêng và sử dụng nó để giải mã dữ liệu\n"
+"- auth: Giá trị auth nên được xem xét như một bí mật và không được chia sẻ bên ngoài Viindoo"
+
+#. module: viin_brand_mail
+#: model:ir.model,name:viin_brand_mail.model_mail_gateway_allowed
+msgid "Mail Gateway Allowed"
+msgstr "Cổng email được cho phép"
+
+#. module: viin_brand_mail
+#: model:ir.model.fields,field_description:viin_brand_mail.field_mail_alias_domain__name
+msgid "Name"
+msgstr ""
+
#. module: viin_brand_mail
#: model:ir.model.fields,field_description:viin_brand_mail.field_res_users__notification_type
msgid "Notification"
msgstr "Thông báo"
+#. module: viin_brand_mail
+#: model:ir.model,name:viin_brand_mail.model_mail_mail
+msgid "Outgoing Mails"
+msgstr "Thư gửi đi"
+
+#. module: viin_brand_mail
+#: model:ir.model,name:viin_brand_mail.model_mail_partner_device
+msgid "Partner Web Push Device"
+msgstr "Thiết bị đẩy web đối tác"
+
#. module: viin_brand_mail
#: model:ir.model.fields,help:viin_brand_mail.field_res_users__notification_type
msgid ""
@@ -51,8 +175,20 @@ msgstr ""
"- Xử lý bằng Email: các thông báo sẽ xuất hiện trong hộp thư đến của hệ thống và đồng thời được gửi đến địa chỉ email của bạn\n"
"- Xử lý trong Hệ thống: các thông báo xuất hiện trong Hộp thư đến trong hệ thống"
+#. module: viin_brand_mail
+#: model:ir.model.fields,help:viin_brand_mail.field_mail_alias__alias_model_id
+msgid ""
+"The model (Viindoo Document Kind) to which this alias corresponds. Any "
+"incoming email that does not reply to an existing record will cause the "
+"creation of a new record of this model (e.g. a Project Task)"
+msgstr ""
+"Mô hình (Loại tài liệu Viindoo) mà tương ứng với bí danh này. Bất kỳ email đến "
+"nào không trả lời một bản ghi hiện có sẽ tạo ra một bản ghi mới "
+"của mô hình này (vd: một Nhiệm vụ)"
+
#. module: viin_brand_mail
#: model:ir.model.fields,help:viin_brand_mail.field_mail_alias__alias_name
+#: model:ir.model.fields,help:viin_brand_mail.field_mail_alias_mixin__alias_name
msgid ""
"The name of the email alias, e.g. 'jobs' if you want to catch emails for "
""
@@ -60,10 +196,33 @@ msgstr ""
"Tên của bí danh email, vd 'vieclam' nếu bạn muốn bắt thông điệp gửi đến địa "
"chỉ email "
+#. module: viin_brand_mail
+#: model:ir.model.fields,help:viin_brand_mail.field_mail_mail__auto_delete
+#: model:ir.model.fields,help:viin_brand_mail.field_mail_template__auto_delete
+msgid ""
+"This option permanently removes any track of email after it's been sent, "
+"including from the Technical menu in the Settings, in order to preserve "
+"storage space of your Viindoo database."
+msgstr ""
+"Lựa chọn này sẽ xóa vĩnh viễn mọi dấu vết của email sau khi nó được gửi, "
+"bao gồm cả từ menu Kỹ thuật trong Cài đặt, để bảo quản không gian lưu trữ "
+"của cơ sở dữ liệu Viindoo của bạn."
+
+#. module: viin_brand_mail
+#: model:ir.model.fields,help:viin_brand_mail.field_mail_compose_message__auto_delete
+msgid ""
+"This option permanently removes any track of email after it's been "
+"sent,including from the Technical menu in the Settings, in order to preserve"
+" storage space of your Viindoo database."
+msgstr ""
+"Lựa chọn này sẽ xóa vĩnh viễn mọi dấu vết của email sau khi nó được gửi, "
+"bao gồm cả từ menu Kỹ thuật trong Cài đặt, để bảo quản không gian lưu trữ "
+"của cơ sở dữ liệu Viindoo của bạn."
+
#. module: viin_brand_mail
#: model:ir.model,name:viin_brand_mail.model_res_users
msgid "User"
-msgstr "Người dùng"
+msgstr ""
#. module: viin_brand_mail
#: model_terms:ir.ui.view,arch_db:viin_brand_mail.res_config_settings_view_form
@@ -94,6 +253,12 @@ msgstr ""
"duyệt để kích hoạt."
#. module: viin_brand_mail
-#: model_terms:ir.ui.view,arch_db:viin_brand_mail.res_config_settings_view_form
-msgid "mycompany.viindoo.com"
+#: model_terms:ir.ui.view,arch_db:viin_brand_mail.email_compose_message_wizard_form
+msgid "e.g: \"info@mycompany.viindoo.com\""
+msgstr ""
+
+#. module: viin_brand_mail
+#: model_terms:ir.ui.view,arch_db:viin_brand_mail.mail_notification_layout
+#: model_terms:ir.ui.view,arch_db:viin_brand_mail.mail_notification_light
+msgid "https://viindoo.com?utm_source=db&utm_medium=email"
msgstr ""
diff --git a/viin_brand_mail/i18n/viin_brand_mail.pot b/viin_brand_mail/i18n/viin_brand_mail.pot
index a0e5eaac..91f709b9 100644
--- a/viin_brand_mail/i18n/viin_brand_mail.pot
+++ b/viin_brand_mail/i18n/viin_brand_mail.pot
@@ -4,10 +4,10 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: Odoo Server 16.0\n"
+"Project-Id-Version: Odoo Server 17.0\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-05-31 01:50+0000\n"
-"POT-Creation-Date: 2021-05-31 01:50+0000\n"
+"POT-Creation-Date: 2024-07-08 09:05+0000\n"
+"PO-Revision-Date: 2024-07-08 09:05+0000\n"
"Last-Translator: \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
@@ -15,16 +15,89 @@ msgstr ""
"Content-Transfer-Encoding: \n"
"Plural-Forms: \n"
+#. module: viin_brand_mail
+#. odoo-python
+#: code:addons/viin_brand_mail/models/mail_gateway_allowed.py:0
+#, python-format
+msgid ""
+"\n"
+" \n"
+" Add addresses to the Allowed List\n"
+"
\n"
+" To protect you from spam and reply loops, Viindoo automatically blocks emails\n"
+" coming to your gateway past a threshold of %(threshold)i emails every %(minutes)i\n"
+" minutes. If there are some addresses from which you need to receive very frequent\n"
+" updates, you can however add them below and Viindoo will let them go through.\n"
+"
"
+msgstr ""
+
+#. module: viin_brand_mail
+#: model:ir.model.fields,field_description:viin_brand_mail.field_res_config_settings__alias_domain_id
+msgid "Alias Domain"
+msgstr ""
+
#. module: viin_brand_mail
#: model:ir.model.fields,field_description:viin_brand_mail.field_mail_alias__alias_name
+#: model:ir.model.fields,field_description:viin_brand_mail.field_mail_alias_mixin__alias_name
msgid "Alias Name"
msgstr ""
+#. module: viin_brand_mail
+#: model:ir.model.fields,field_description:viin_brand_mail.field_mail_alias__alias_model_id
+msgid "Aliased Model"
+msgstr ""
+
+#. module: viin_brand_mail
+#: model:ir.model.fields,field_description:viin_brand_mail.field_mail_mail__auto_delete
+#: model:ir.model.fields,field_description:viin_brand_mail.field_mail_template__auto_delete
+msgid "Auto Delete"
+msgstr ""
+
+#. module: viin_brand_mail
+#: model:ir.model.fields,field_description:viin_brand_mail.field_mail_partner_device__keys
+msgid "Browser keys"
+msgstr ""
+
+#. module: viin_brand_mail
+#: model:ir.model,name:viin_brand_mail.model_res_config_settings
+msgid "Config Settings"
+msgstr ""
+
+#. module: viin_brand_mail
+#: model:ir.model.fields,field_description:viin_brand_mail.field_mail_compose_message__auto_delete
+msgid "Delete Emails"
+msgstr ""
+
#. module: viin_brand_mail
#: model:ir.model,name:viin_brand_mail.model_mail_alias
msgid "Email Aliases"
msgstr ""
+#. module: viin_brand_mail
+#: model:ir.model,name:viin_brand_mail.model_mail_alias_domain
+msgid "Email Domain"
+msgstr ""
+
+#. module: viin_brand_mail
+#: model:ir.model,name:viin_brand_mail.model_mail_template
+msgid "Email Templates"
+msgstr ""
+
+#. module: viin_brand_mail
+#: model:ir.model,name:viin_brand_mail.model_mail_thread
+msgid "Email Thread"
+msgstr ""
+
+#. module: viin_brand_mail
+#: model:ir.model,name:viin_brand_mail.model_mail_compose_message
+msgid "Email composition wizard"
+msgstr ""
+
+#. module: viin_brand_mail
+#: model:ir.model.fields,help:viin_brand_mail.field_mail_alias_domain__name
+msgid "Email domain e.g. 'example.com' in 'viindoo@example.com'"
+msgstr ""
+
#. module: viin_brand_mail
#: model:ir.model,name:viin_brand_mail.model_ir_http
msgid "HTTP Routing"
@@ -35,11 +108,47 @@ msgstr ""
msgid "Handle in Viindoo"
msgstr ""
+#. module: viin_brand_mail
+#: model:ir.model.fields,help:viin_brand_mail.field_res_config_settings__alias_domain_id
+msgid ""
+"If you have setup a catch-all email domain redirected to the Viindoo server,"
+" enter the domain name here."
+msgstr ""
+
+#. module: viin_brand_mail
+#: model:ir.model.fields,help:viin_brand_mail.field_mail_partner_device__keys
+msgid ""
+"It's refer to browser keys used by the notification: \n"
+"- p256dh: It's the subscription public key generated by the browser. The browser will \n"
+" keep the private key secret and use it for decrypting the payload\n"
+"- auth: The auth value should be treated as a secret and not shared outside of Viindoo"
+msgstr ""
+
+#. module: viin_brand_mail
+#: model:ir.model,name:viin_brand_mail.model_mail_gateway_allowed
+msgid "Mail Gateway Allowed"
+msgstr ""
+
+#. module: viin_brand_mail
+#: model:ir.model.fields,field_description:viin_brand_mail.field_mail_alias_domain__name
+msgid "Name"
+msgstr ""
+
#. module: viin_brand_mail
#: model:ir.model.fields,field_description:viin_brand_mail.field_res_users__notification_type
msgid "Notification"
msgstr ""
+#. module: viin_brand_mail
+#: model:ir.model,name:viin_brand_mail.model_mail_mail
+msgid "Outgoing Mails"
+msgstr ""
+
+#. module: viin_brand_mail
+#: model:ir.model,name:viin_brand_mail.model_mail_partner_device
+msgid "Partner Web Push Device"
+msgstr ""
+
#. module: viin_brand_mail
#: model:ir.model.fields,help:viin_brand_mail.field_res_users__notification_type
msgid ""
@@ -48,13 +157,39 @@ msgid ""
"- Handle in Viindoo: notifications appear in your Viindoo Inbox"
msgstr ""
+#. module: viin_brand_mail
+#: model:ir.model.fields,help:viin_brand_mail.field_mail_alias__alias_model_id
+msgid ""
+"The model (Viindoo Document Kind) to which this alias corresponds. Any "
+"incoming email that does not reply to an existing record will cause the "
+"creation of a new record of this model (e.g. a Project Task)"
+msgstr ""
+
#. module: viin_brand_mail
#: model:ir.model.fields,help:viin_brand_mail.field_mail_alias__alias_name
+#: model:ir.model.fields,help:viin_brand_mail.field_mail_alias_mixin__alias_name
msgid ""
"The name of the email alias, e.g. 'jobs' if you want to catch emails for "
""
msgstr ""
+#. module: viin_brand_mail
+#: model:ir.model.fields,help:viin_brand_mail.field_mail_mail__auto_delete
+#: model:ir.model.fields,help:viin_brand_mail.field_mail_template__auto_delete
+msgid ""
+"This option permanently removes any track of email after it's been sent, "
+"including from the Technical menu in the Settings, in order to preserve "
+"storage space of your Viindoo database."
+msgstr ""
+
+#. module: viin_brand_mail
+#: model:ir.model.fields,help:viin_brand_mail.field_mail_compose_message__auto_delete
+msgid ""
+"This option permanently removes any track of email after it's been "
+"sent,including from the Technical menu in the Settings, in order to preserve"
+" storage space of your Viindoo database."
+msgstr ""
+
#. module: viin_brand_mail
#: model:ir.model,name:viin_brand_mail.model_res_users
msgid "User"
@@ -75,15 +210,12 @@ msgid "Viindoo"
msgstr ""
#. module: viin_brand_mail
-#. odoo-javascript
-#: code:addons/viin_brand_mail/static/src/components/notification_alert/notification_alert.xml:0
-#, python-format
-msgid ""
-"Viindoo Push notifications have been blocked. Go to your browser settings to"
-" allow them."
+#: model_terms:ir.ui.view,arch_db:viin_brand_mail.email_compose_message_wizard_form
+msgid "e.g: \"info@mycompany.viindoo.com\""
msgstr ""
#. module: viin_brand_mail
-#: model_terms:ir.ui.view,arch_db:viin_brand_mail.res_config_settings_view_form
-msgid "mycompany.viindoo.com"
+#: model_terms:ir.ui.view,arch_db:viin_brand_mail.mail_notification_layout
+#: model_terms:ir.ui.view,arch_db:viin_brand_mail.mail_notification_light
+msgid "https://viindoo.com?utm_source=db&utm_medium=email"
msgstr ""
From f28a1d0ae35eb188705cef9472edfa15e81f9743 Mon Sep 17 00:00:00 2001
From: Soncrits
Date: Wed, 10 Jul 2024 10:17:39 +0700
Subject: [PATCH 3/4] [FIX] viin_brand_mail: fix runbot when debranding odoo
bot
---
viin_brand_mail/__init__.py | 23 +++++++++++++++++++++++
viin_brand_mail/__manifest__.py | 1 +
2 files changed, 24 insertions(+)
diff --git a/viin_brand_mail/__init__.py b/viin_brand_mail/__init__.py
index 9b429614..a3d7805b 100644
--- a/viin_brand_mail/__init__.py
+++ b/viin_brand_mail/__init__.py
@@ -1,2 +1,25 @@
from . import models
from . import wizard
+from odoo.tests.common import TransactionCase
+setupTransactionCase = TransactionCase.setUp
+
+
+def _setupTransactionCase_plus(self):
+ """Odoo has some test cases to check the return value when the Odoo bot performs an action
+ Some tests like:
+ - test_manual_revaluation_statement
+ Therefore, it is necessary to check if the Odoo bot is being rebranded as the Viindoo bot
+ Change the name and email of the Odoo bot if necessary
+ """
+ res = setupTransactionCase(self)
+ bot = self.env.ref('base.partner_root', raise_if_not_found=False)
+ if bot.name == 'ViindooBot' or bot.email == 'viindoobot@example.viindoo.com':
+ bot.write({
+ 'name': 'OdooBot',
+ 'email': 'odoobot@example.com'
+ })
+ return res
+
+
+def _post_init_hook(env):
+ TransactionCase.setUp = _setupTransactionCase_plus
diff --git a/viin_brand_mail/__manifest__.py b/viin_brand_mail/__manifest__.py
index 0ea28226..a881e2f1 100644
--- a/viin_brand_mail/__manifest__.py
+++ b/viin_brand_mail/__manifest__.py
@@ -64,6 +64,7 @@
},
'installable': True,
'auto_install': True,
+ 'post_init_hook': '_post_init_hook',
'price': 9.9,
'currency': 'EUR',
'license': 'OPL-1',
From 165f19a6c78a8315eae9be21e0449b3949e16666 Mon Sep 17 00:00:00 2001
From: Soncrits
Date: Mon, 8 Jul 2024 08:43:00 +0700
Subject: [PATCH 4/4] [IMP] viin_brand_mail: de branding res partner email
---
viin_brand_mail/data/res_partner_data.xml | 1 +
viin_brand_mail/i18n/vi_VN.po | 2 +-
2 files changed, 2 insertions(+), 1 deletion(-)
diff --git a/viin_brand_mail/data/res_partner_data.xml b/viin_brand_mail/data/res_partner_data.xml
index 1cf20c37..83aca98b 100644
--- a/viin_brand_mail/data/res_partner_data.xml
+++ b/viin_brand_mail/data/res_partner_data.xml
@@ -2,5 +2,6 @@
ViindooBot
+ viindoobot@example.viindoo.com
diff --git a/viin_brand_mail/i18n/vi_VN.po b/viin_brand_mail/i18n/vi_VN.po
index f3c964f7..17a73a4e 100644
--- a/viin_brand_mail/i18n/vi_VN.po
+++ b/viin_brand_mail/i18n/vi_VN.po
@@ -222,7 +222,7 @@ msgstr ""
#. module: viin_brand_mail
#: model:ir.model,name:viin_brand_mail.model_res_users
msgid "User"
-msgstr ""
+msgstr "Người dùng"
#. module: viin_brand_mail
#: model_terms:ir.ui.view,arch_db:viin_brand_mail.res_config_settings_view_form