Unify email terminology

Closes #13463
This commit is contained in:
Cédric Krier
2024-08-22 09:52:06 +02:00
parent 34d429558b
commit 8f96e4af72
40 changed files with 104 additions and 104 deletions
+1 -1
View File
@@ -14,5 +14,5 @@ Marketing
:doc:`Campaign <marketing_campaign:index>`
Manage campaign.
:doc:`E-mail <marketing_email:index>`
:doc:`Email <marketing_email:index>`
Manage mailing lists.
+2 -2
View File
@@ -20,7 +20,7 @@ class Configuration(metaclass=PoolMeta):
domain=[
('email', '!=', None),
],
help="User notified when no e-mail is found to send the dunning")
help="User notified when no email is found to send the dunning")
class DunningLevel(metaclass=PoolMeta):
@@ -47,7 +47,7 @@ class DunningLevel(metaclass=PoolMeta):
states={
'invisible': ~Eval('send_email'),
},
help="Define which e-mail to use from the party's contact mechanisms")
help="Define which email to use from the party's contact mechanisms")
@classmethod
def default_email_template(cls):
@@ -5,7 +5,7 @@ this repository contains the full copyright notices and license terms. -->
<xpath expr="/form/field[@name='print_on_letter']" position="after">
<label name="send_email"/>
<field name="send_email"/>
<separator string="E-mail" id="email" colspan="4"/>
<separator string="Email" id="email" colspan="4"/>
<label name="email_template"/>
<field name="email_template"/>
<newline/>
+1 -1
View File
@@ -77,7 +77,7 @@ this repository contains the full copyright notices and license terms. -->
</record>
<record model="ir.action.act_window" id="act_inbound_email_form_relate">
<field name="name">E-mails</field>
<field name="name">Emails</field>
<field name="res_model">inbound.email</field>
<field name="domain" eval="[('inbox', 'in', Eval('active_ids', []))]" pyson="1"/>
</record>
+3 -3
View File
@@ -45,10 +45,10 @@ Actions
The available actions are:
Send E-Mail
^^^^^^^^^^^
Send EMail
^^^^^^^^^^
The E-mail is composed using an HTML `Genshi <https://genshi.edgewall.org/>`_
The email is composed using an HTML `Genshi <https://genshi.edgewall.org/>`_
template with ``record`` in the evaluation context.
All ``<a>`` elements have their ``href`` replaced by a shortened version used
to trigger children activities.
+1 -1
View File
@@ -10,7 +10,7 @@ this repository contains the full copyright notices and license terms. -->
</record>
<record model="ir.action.act_window" id="act_ir_email_form_relate_activity">
<field name="name">E-mails</field>
<field name="name">Emails</field>
<field name="res_model">ir.email</field>
<field name="domain"
eval="[('marketing_automation_activity', 'in', Eval('active_ids'))]"
@@ -341,8 +341,8 @@ class Activity(
event = fields.Selection([
(None, ""),
('email_opened', "E-Mail Opened"),
('email_clicked', "E-Mail Clicked"),
('email_opened', "Email Opened"),
('email_clicked', "Email Clicked"),
], "Event") # domain set by _parent_action_events
negative = fields.Boolean("Negative",
states={
@@ -352,10 +352,10 @@ class Activity(
"if the event has not happened by the end of the delay.")
on = fields.Function(fields.Selection([
(None, ""),
('email_opened', "E-Mail Opened"),
('email_opened_not', "E-Mail Not Opened"),
('email_clicked', "E-Mail Clicked"),
('email_clicked_not', "E-Mail Not Clicked"),
('email_opened', "Email Opened"),
('email_opened_not', "Email Not Opened"),
('email_clicked', "Email Clicked"),
('email_clicked_not', "Email Not Clicked"),
], "On"), # domain set by _parent_action_events
'get_on', setter='set_on')
condition = fields.Char("Condition",
@@ -376,17 +376,17 @@ class Activity(
action = fields.Selection([
(None, ''),
('send_email', "Send E-Mail"),
('send_email', "Send email"),
], "Action")
# Send E-mail
# Send email
email_from = fields.Char("From", translate=True,
states={
'invisible': Eval('action') != 'send_email',
},
help="Leave empty to use the value defined in the configuration file.")
email_title = fields.Char(
"E-Mail Title",
"Email Title",
translate=True,
states={
'invisible': Eval('action') != 'send_email',
@@ -396,13 +396,13 @@ class Activity(
"The Genshi syntax can be used "
"with 'record' in the evaluation context.")
email_template = fields.Text(
"E-Mail Template",
"Email Template",
translate=True,
states={
'invisible': Eval('action') != 'send_email',
'required': Eval('action') == 'send_email',
},
help="The HTML content of the E-mail.\n"
help="The HTML content of the email.\n"
"The Genshi syntax can be used "
"with 'record' in the evaluation context.")
@@ -410,13 +410,13 @@ class Activity(
fields.Integer("Records"), 'get_record_count')
email_opened = fields.Function(
fields.Integer(
"E-Mails Opened",
"Emails Opened",
states={
'invisible': Eval('action') != 'send_email',
}), 'get_record_count')
email_clicked = fields.Function(
fields.Integer(
"E-Mails Clicked",
"Emails Clicked",
states={
'invisible': Eval('action') != 'send_email',
}),
@@ -424,42 +424,42 @@ class Activity(
email_open_rate = fields.Function(
fields.Float(
"E-mail Open Rate",
"Email Open Rate",
states={
'invisible': Eval('action') != 'send_email',
}),
'get_rate')
email_open_rate_trend = fields.Function(
fields.Char(
"E-mail Open Rate Trend",
"Email Open Rate Trend",
states={
'invisible': Eval('action') != 'send_email',
}),
'get_trend')
email_click_rate = fields.Function(
fields.Float(
"E-mail Click Rate",
"Email Click Rate",
states={
'invisible': Eval('action') != 'send_email',
}),
'get_rate')
email_click_rate_trend = fields.Function(
fields.Char(
"E-mail Click Rate Trend",
"Email Click Rate Trend",
states={
'invisible': Eval('action') != 'send_email',
}),
'get_trend')
email_click_through_rate = fields.Function(
fields.Float(
"E-mail Click-Through Rate",
"Email Click-Through Rate",
states={
'invisible': Eval('action') != 'send_email',
}),
'get_rate')
email_click_through_rate_trend = fields.Function(
fields.Char(
"E-mail Click-Through Rate Trend",
"Email Click-Through Rate Trend",
states={
'invisible': Eval('action') != 'send_email',
}),
@@ -892,12 +892,12 @@ class RecordActivity(Workflow, ModelSQL, ModelView):
'required': Eval('state') == 'done',
})
email_opened = fields.Boolean(
"E-Mail Opened",
"Email Opened",
states={
'invisible': Eval('activity_action') != 'send_email',
})
email_clicked = fields.Boolean(
"E-Mail Clicked",
"Email Clicked",
states={
'invisible': Eval('activity_action') != 'send_email',
})
@@ -293,12 +293,12 @@ this repository contains the full copyright notices and license terms. -->
<record model="ir.model.button" id="record_activity_on_email_opened_button">
<field name="model">marketing.automation.record.activity</field>
<field name="name">on_email_opened</field>
<field name="string">E-Mail Opened</field>
<field name="string">Email Opened</field>
</record>
<record model="ir.model.button" id="record_activity_on_email_clicked_button">
<field name="model">marketing.automation.record.activity</field>
<field name="name">on_email_clicked</field>
<field name="string">E-Mail Clicked</field>
<field name="string">Email Clicked</field>
</record>
<record model="ir.action.report" id="report_unsubscribe">
@@ -161,27 +161,27 @@ class Activity(Abstract):
'on_change_with_activity_action')
record_count = fields.Integer("Records")
email_opened = fields.Integer(
"E-Mails Opened",
"Emails Opened",
states={
'invisible': Eval('activity_action') != 'send_email',
})
email_clicked = fields.Integer(
"E-Mails Clicked",
"Emails Clicked",
states={
'invisible': Eval('activity_action') != 'send_email',
})
email_open_rate = fields.Float(
"E-mail Open Rate",
"Email Open Rate",
states={
'invisible': Eval('activity_action') != 'send_email',
})
email_click_rate = fields.Float(
"E-mail Click Rate",
"Email Click Rate",
states={
'invisible': Eval('activity_action') != 'send_email',
})
email_click_through_rate = fields.Float(
"E-mail Click-Through Rate",
"Email Click-Through Rate",
states={
'invisible': Eval('activity_action') != 'send_email',
})
+2 -2
View File
@@ -10,10 +10,10 @@ this repository contains the full copyright notices and license terms. -->
<field name="text">Invalid condition "%(condition)s" in activity "%(activity)s" with exception "%(exception)s".</field>
</record>
<record model="ir.message" id="msg_activity_invalid_email_template">
<field name="text">Invalid e-mail template in activity "%(activity)s" with exception "%(exception)s".</field>
<field name="text">Invalid email template in activity "%(activity)s" with exception "%(exception)s".</field>
</record>
<record model="ir.message" id="msg_activity_invalid_email_title">
<field name="text">Invalid e-mail title in activity "%(activity)s" with exception "%(exception)s".</field>
<field name="text">Invalid email title in activity "%(activity)s" with exception "%(exception)s".</field>
</record>
<record model="ir.message" id="msg_activity_record_unique">
<field name="text">Record Activity must be unique by record and activity.</field>
@@ -50,7 +50,7 @@ Create the running scenario::
>>> scenario.save()
>>> root_activity = Activity()
>>> root_activity.name = "First E-Mail"
>>> root_activity.name = "First email"
>>> root_activity.parent = scenario
>>> root_activity.action = 'send_email'
>>> root_activity.email_title = "Hello"
@@ -61,26 +61,26 @@ Create the running scenario::
>>> root_activity.save()
>>> email_opened = Activity()
>>> email_opened.name = "E-Mail Opened"
>>> email_opened.name = "Email Opened"
>>> email_opened.parent = root_activity
>>> email_opened.on = 'email_opened'
>>> email_opened.save()
>>> email_clicked = Activity()
>>> email_clicked.name = "E-Mail Clicked"
>>> email_clicked.name = "Email Clicked"
>>> email_clicked.parent = root_activity
>>> email_clicked.on = 'email_clicked'
>>> email_clicked.save()
>>> email_not_clicked = Activity()
>>> email_not_clicked.name = "E-Mail no clicked"
>>> email_not_clicked.name = "Email no clicked"
>>> email_not_clicked.parent = root_activity
>>> email_not_clicked.on = 'email_clicked_not'
>>> email_not_clicked.delay = datetime.timedelta(days=2)
>>> email_not_clicked.save()
>>> email_reminder = Activity()
>>> email_reminder.name = "E-Mail Reminder"
>>> email_reminder.name = "Email Reminder"
>>> email_reminder.parent = root_activity
>>> email_reminder.action = 'send_email'
>>> email_reminder.email_title = "Reminder"
@@ -65,7 +65,7 @@ Create the running scenario::
>>> scenario.save()
>>> activity = scenario.activities.new()
>>> activity.name = "First E-Mail"
>>> activity.name = "First email"
>>> activity.action = 'send_email'
>>> activity.email_title = "Pending Sale"
>>> activity.condition = PYSONEncoder().encode(
+7 -7
View File
@@ -16,17 +16,17 @@ web user.
Two actions are available:
- *Request Subscribe* which sends an e-mail to confirm the subscription to a
- *Request Subscribe* which sends an email to confirm the subscription to a
list.
- *Request Unsubscribe* which sends an e-mail to confirm the unsubscription of
- *Request Unsubscribe* which sends an email to confirm the unsubscription of
an email address from the list.
Message
*******
It stores a message to send to all e-mails addresses on a list. A message is
defined by:
It stores a message to send to all emails addresses on a list.
A message is defined by:
* From: the address from which the message is sent.
* List: the list of addresses to send the message to.
@@ -38,7 +38,7 @@ defined by:
* Sending
* Sent
A wizard is available that sends a message to a unique e-mail address from the
A wizard is available that sends a message to a unique email address from the
list for test purposes.
Configuration
@@ -48,12 +48,12 @@ The marketing_email module uses parameters from the section:
- ``[marketing]``:
- ``email_from``: The default ``From`` for the e-mails that get sent.
- ``email_from``: The default ``From`` for the emails that get sent.
- ``email_subscribe_url``: the URL to confirm the subscription to which the
parameter ``token`` will be added.
- ``email_unsubscribe_url``: the URL to unsubscribe an e-mail address to
- ``email_unsubscribe_url``: the URL to unsubscribe an email address to
which the parameter ``token`` will be added.
- ``email_spy_pixel``: A boolean to activate spy pixel. Disable by default.
+7 -7
View File
@@ -57,13 +57,13 @@ def _extract_params(url):
class Email(DeactivableMixin, ModelSQL, ModelView):
"Marketing E-mail"
"Marketing Email"
__name__ = 'marketing.email'
_rec_name = 'email'
email = fields.Char("E-mail", required=True)
email = fields.Char("Email", required=True)
list_ = fields.Many2One('marketing.email.list', "List", required=True)
email_token = fields.Char("E-mail Token", required=True)
email_token = fields.Char("Email Token", required=True)
web_user = fields.Function(
fields.Many2One('web.user', "Web User"), 'get_web_user')
party = fields.Function(
@@ -339,7 +339,7 @@ class EmailList(DeactivableMixin, ModelSQL, ModelView):
class Message(Workflow, ModelSQL, ModelView):
"Marketing E-mail Message"
"Marketing Email Message"
__name__ = 'marketing.email.message'
_rec_name = 'title'
@@ -529,7 +529,7 @@ class Message(Workflow, ModelSQL, ModelView):
class SendTest(Wizard):
"Send Test E-mail"
"Send Test Email"
__name__ = 'marketing.email.send_test'
start = StateView(
'marketing.email.send_test',
@@ -557,7 +557,7 @@ class SendTest(Wizard):
class SendTestView(ModelView):
"Send Test E-mail"
"Send Test Email"
__name__ = 'marketing.email.send_test'
list_ = fields.Many2One(
@@ -565,7 +565,7 @@ class SendTestView(ModelView):
message = fields.Many2One(
'marketing.email.message', "Message", readonly=True)
email = fields.Many2One(
'marketing.email', "E-Mail", required=True,
'marketing.email', "Email", required=True,
domain=[
('list_', '=', Eval('list_')),
])
+1 -1
View File
@@ -21,7 +21,7 @@ this repository contains the full copyright notices and license terms. -->
</record>
<record model="ir.action.act_window" id="act_email_relate_list">
<field name="name">E-mails</field>
<field name="name">Emails</field>
<field name="res_model">marketing.email</field>
<field name="domain" eval="[('list_', '=', Eval('active_id'))]" pyson="1"/>
</record>
+1 -1
View File
@@ -16,7 +16,7 @@ this repository contains the full copyright notices and license terms. -->
</record>
<record model="ir.action.act_window" id="act_ir_email_form_relate_notification">
<field name="name">E-mails</field>
<field name="name">Emails</field>
<field name="res_model">ir.email</field>
<field name="domain"
eval="[('notification_email', 'in', Eval('active_ids'))]"
+1 -1
View File
@@ -4,7 +4,7 @@ this repository contains the full copyright notices and license terms. -->
<tryton>
<data grouped="1">
<record model="ir.message" id="msg_notification_invalid_subject">
<field name="text">Invalid e-mail subject in notification "%(notification)s" with exception "%(exception)s".</field>
<field name="text">Invalid email subject in notification "%(notification)s" with exception "%(exception)s".</field>
</record>
</data>
</tryton>
+3 -3
View File
@@ -44,7 +44,7 @@ class Email(ModelSQL, ModelView):
states={
'invisible': ~Eval('recipients'),
},
help="User notified when no recipients e-mail is found")
help="User notified when no recipients email is found.")
recipients_secondary = fields.Many2One(
'ir.model.field', "Secondary Recipients",
domain=[
@@ -59,7 +59,7 @@ class Email(ModelSQL, ModelView):
states={
'invisible': ~Eval('recipients_secondary'),
},
help="User notified when no secondary recipients e-mail is found")
help="User notified when no secondary recipients email is found.")
recipients_hidden = fields.Many2One(
'ir.model.field', "Hidden Recipients",
domain=[
@@ -74,7 +74,7 @@ class Email(ModelSQL, ModelView):
states={
'invisible': ~Eval('recipients_hidden'),
},
help="User notified when no hidden recipients e-mail is found")
help="User notified when no hidden recipients email is found.")
contact_mechanism = fields.Selection(
'get_contact_mechanisms', "Contact Mechanism",
+2 -2
View File
@@ -24,7 +24,7 @@ _TYPES = [
('phone', 'Phone'),
('mobile', 'Mobile'),
('fax', 'Fax'),
('email', 'E-Mail'),
('email', 'Email'),
('website', 'Website'),
('skype', 'Skype'),
('sip', 'SIP'),
@@ -96,7 +96,7 @@ class ContactMechanism(
"Leave empty for the party language."))
languages = fields.One2Many(
'party.contact_mechanism.language', 'contact_mechanism', "Languages")
email = fields.Function(fields.Char('E-Mail', states={
email = fields.Function(fields.Char('Email', states={
'invisible': Eval('type') != 'email',
'required': Eval('type') == 'email',
}, depends={'value'}),
+1 -1
View File
@@ -84,7 +84,7 @@ class Party(
fields.Char("Fax", states=_contact_mechanism_states),
'get_contact_mechanism', setter='set_contact_mechanism')
email = fields.Function(
fields.Char("E-Mail", states=_contact_mechanism_states),
fields.Char("Email", states=_contact_mechanism_states),
'get_contact_mechanism', setter='set_contact_mechanism')
website = fields.Function(
fields.Char("Website", states=_contact_mechanism_states),
@@ -109,7 +109,7 @@ class Carrier(metaclass=PoolMeta):
dpd_notification = fields.Selection([
(None, ""),
('email', "E-Mail"),
('email', "Email"),
('sms', "SMS"),
], "Notification",
states={
+1 -1
View File
@@ -11,7 +11,7 @@ Web User
The *Web User* concept stores the details of user accounts for people who
interact with Tryton from a website.
Each user is identified by their e-mail address which must be unique.
Each user is identified by their email address which must be unique.
The email address is used when logging a user in, along with other
authentication information, such as their password.
+1 -1
View File
@@ -4,7 +4,7 @@ this repository contains the full copyright notices and license terms. -->
<tryton>
<data grouped="1">
<record model="ir.message" id="msg_user_email_unique">
<field name="text">E-mail of active web user must be unique.</field>
<field name="text">Email of active web user must be unique.</field>
</record>
<record model="ir.message" id="msg_user_session_key_unique">
<field name="text">Web user session key must be unique.</field>
+3 -3
View File
@@ -73,12 +73,12 @@ class User(avatar_mixin(100), DeactivableMixin, ModelSQL, ModelView):
_rec_name = 'email'
email = fields.Char(
"E-mail",
"Email",
states={
'required': Eval('active', True),
})
email_valid = fields.Boolean('E-mail Valid')
email_token = fields.Char("E-mail Token", strip=False)
email_valid = fields.Boolean('Email Valid')
email_token = fields.Char("Email Token", strip=False)
password_hash = fields.Char('Password Hash')
password = fields.Function(
fields.Char('Password'), 'get_password', setter='set_password')
+1 -1
View File
@@ -78,7 +78,7 @@ this repository contains the full copyright notices and license terms. -->
<record model="ir.model.button" id="user_validate_email_button">
<field name="model">web.user</field>
<field name="name">validate_email</field>
<field name="string">Validate E-mail</field>
<field name="string">Validate Email</field>
</record>
<record model="ir.model.button" id="user_reset_password_button">
+1 -1
View File
@@ -7,6 +7,6 @@ this repository contains the full copyright notices and license terms. -->
</field>
<field name="email_valid"/>
<field name="party" expand="2"/>
<button name="validate_email" string="Validate E-mail"/>
<button name="validate_email" string="Validate Email"/>
<button name="reset_password" string="Reset Password"/>
</tree>
+1 -1
View File
@@ -100,7 +100,7 @@ Version 5.8.0 - 2020-11-02
* Set treeview footer sticky on bottom
* Add get, in_ and contains methods to PYSON
* Manage deletable and writable state
* Support e-mail template
* Support email template
* Always encode CSV export in UTF-8
* Use tempusdominus and Popper for date time picker
* Support PYSON comparison of date and datetime
+1 -1
View File
@@ -1175,7 +1175,7 @@ var Sao = {
id: 'print',
}, {
shortcut: 'ctrl+shift+e',
label: Sao.i18n.gettext('E-Mail'),
label: Sao.i18n.gettext('Email'),
id: 'email',
}, {
shortcut: 'alt+shift+tab',
+2 -2
View File
@@ -99,8 +99,8 @@
}, {
id: 'email',
icon: 'tryton-email',
label: Sao.i18n.gettext('E-Mail...'),
tooltip: Sao.i18n.gettext('Send an e-mail using the record'),
label: Sao.i18n.gettext('Email...'),
tooltip: Sao.i18n.gettext('Send an email using the record'),
}, null, {
id: 'export',
icon: 'tryton-export',
+1 -1
View File
@@ -2412,7 +2412,7 @@
init: function(name, record, prints, template) {
this.record = record;
this.dialog = new Sao.Dialog(
Sao.i18n.gettext('E-mail %1', name), 'email', 'lg');
Sao.i18n.gettext('Email %1', name), 'email', 'lg');
this.el = this.dialog.modal;
this.dialog.content.addClass('form-horizontal');
+2 -2
View File
@@ -107,8 +107,8 @@ Version 5.8.0 - 2020-11-02
* Manage symbol widget
* Fallback to model name as title
* Manage deletable and writable state
* Support e-mail template
* Send e-mail via the server
* Support email template
* Send email via the server
* Support PYSON comparison of date and datetime
* Position copied records based on order
* Allow configuration of default colors for graph and calendar
+1 -1
View File
@@ -323,7 +323,7 @@ Report...:
.. _Toolbar-Email:
E-Mail...:
Email...:
Open an editor to send an email related to the actual record.
.. _Toolbar-Print:
+1 -1
View File
@@ -146,7 +146,7 @@ def populate(menu, model, record, title='', field=None, context=None):
item.connect('activate', activate, action, atype)
menu.show_all()
email_item = Gtk.MenuItem(label=_('E-Mail...'))
email_item = Gtk.MenuItem(label=_('Email...'))
action_menu.append(email_item)
email_item.connect('activate', email, toolbar)
menu.show_all()
+1 -1
View File
@@ -106,7 +106,7 @@ class Email(NoModal):
self.dialog.set_default_size(*self.default_size())
self.dialog.connect('response', self.response)
self.dialog.set_title(_('E-mail %s') % name)
self.dialog.set_title(_('Email %s') % name)
grid = Gtk.Grid(
column_spacing=3, row_spacing=3,
+2 -2
View File
@@ -141,8 +141,8 @@ class TabContent(InfoBar):
accel_path='<tryton>/Form/Print'),
ToolbarItem(
id='email',
label=_("_E-Mail..."),
tooltip=_("Send an e-mail using the record"),
label=_("_Email..."),
tooltip=_("Send an email using the record"),
icon_name='tryton-email',
accel_path='<tryton>/Form/Email'),
None,
+2 -2
View File
@@ -285,8 +285,8 @@ Version 5.8.0 - 2020-11-02
* Add record name in report filename
* Add deletable and writable state from ir.rule to read
* Add language attribute to data tag
* Add e-mail template
* Send e-mail on behalf of user
* Add email template
* Send email on behalf of user
* Register mixins to generic Report class
* Cache in memory the report template instances
* Support Genshi's MsgDirective in report
+6 -6
View File
@@ -10,12 +10,12 @@ a copy of the emails sent from a :class:`~trytond.model.ModelStorage` record.
Emails are found by opening the main menu item:
|Administration --> Models --> E-mails|__
|Administration --> Models --> Emails|__
.. |Administration --> Models --> E-mails| replace:: :menuselection:`Administration --> Models --> E-mails`
.. |Administration --> Models --> Emails| replace:: :menuselection:`Administration --> Models --> Emails`
__ https://demo.tryton.org/model/ir.email
The emails related to a record are found by opening the :guilabel:`E-mails
The emails related to a record are found by opening the :guilabel:`Emails
Archives` menu item from the relate toolbar.
.. _model-ir.email.template:
@@ -24,13 +24,13 @@ Email Template
==============
The *Email Template* stores templates per `Model <model-ir.model>` and is used
to fill in the client's E-mail form.
to fill in the client's Email form.
.. seealso::
Email Templates are found by opening the main menu item:
|Administration --> User Interface --> Actions --> E-mail Templates|__
|Administration --> User Interface --> Actions --> Email Templates|__
.. |Administration --> User Interface --> Actions --> E-mail Templates| replace:: :menuselection:`Administration --> User Interface --> Actions --> E-mail Templates`
.. |Administration --> User Interface --> Actions --> Email Templates| replace:: :menuselection:`Administration --> User Interface --> Actions --> Email Templates`
__ https://demo.tryton.org/model/ir.email.template
+3 -3
View File
@@ -15,7 +15,7 @@ this repository contains the full copyright notices and license terms. -->
</record>
<record model="ir.action.act_window" id="act_email_form">
<field name="name">E-mails</field>
<field name="name">Emails</field>
<field name="res_model">ir.email</field>
</record>
<record model="ir.action.act_window.view" id="act_email_form_view1">
@@ -43,7 +43,7 @@ this repository contains the full copyright notices and license terms. -->
</record>
<record model="ir.action.act_window" id="act_email_form_relate">
<field name="name">E-mail Archives</field>
<field name="name">Email Archives</field>
<field name="res_model">ir.email</field>
<field
name="domain"
@@ -77,7 +77,7 @@ this repository contains the full copyright notices and license terms. -->
</record>
<record model="ir.action.act_window" id="act_email_template_form">
<field name="name">E-mail Templates</field>
<field name="name">Email Templates</field>
<field name="res_model">ir.email.template</field>
</record>
<record model="ir.action.act_window.view" id="act_email_template_form_view1">
+1 -1
View File
@@ -234,7 +234,7 @@ class EmailAddress(ModelSQL):
__name__ = 'ir.email.address'
email = fields.Many2One(
'ir.email', "E-mail", required=True, ondelete='CASCADE')
'ir.email', "Email", required=True, ondelete='CASCADE')
address = fields.Char("Address", required=True)
+4 -4
View File
@@ -379,16 +379,16 @@ this repository contains the full copyright notices and license terms. -->
<field name="text">You are not allowed to execute wizard "%(wizard)s" on "%(model)s".</field>
</record>
<record model="ir.message" id="msg_email_template_invalid_subject">
<field name="text">Invalid subject in e-mail template "%(template)s" with exception "%(exception)s".</field>
<field name="text">Invalid subject in email template "%(template)s" with exception "%(exception)s".</field>
</record>
<record model="ir.message" id="msg_email_template_invalid_body">
<field name="text">Invalid body in e-mail template "%(template)s" with exception "%(exception)s".</field>
<field name="text">Invalid body in email template "%(template)s" with exception "%(exception)s".</field>
</record>
<record model="ir.message" id="msg_email_template_invalid_field_pyson">
<field name="text">Invalid PYSON %(field)s in e-mail template "%(template)s" with exception "%(exception)s".</field>
<field name="text">Invalid PYSON %(field)s in email template "%(template)s" with exception "%(exception)s".</field>
</record>
<record model="ir.message" id="msg_email_template_invalid_field_pyson_type">
<field name="text">The PYSON %(field)s in e-mail template "%(template)s" must generate a list.</field>
<field name="text">The PYSON %(field)s in email template "%(template)s" must generate a list.</field>
</record>
<record model="ir.message" id="msg_avatar_resource_unique">
<field name="text">Only one avatar is allowed per resource.</field>