- Congratulations
!
- You just received badge
!
+ Congratulations
!
+ You just received badge
!
@@ -340,7 +340,7 @@
You just reached a new rank : Newbie
- Continue your work to become a Student !
+ Continue your work to become a Student !
diff --git a/addons/gamification/views/gamification_karma_rank_views.xml b/addons/gamification/views/gamification_karma_rank_views.xml
index 7d3a6844d51..736d1353681 100644
--- a/addons/gamification/views/gamification_karma_rank_views.xml
+++ b/addons/gamification/views/gamification_karma_rank_views.xml
@@ -74,7 +74,7 @@
-
+
diff --git a/addons/google_account/models/google_service.py b/addons/google_account/models/google_service.py
index c03bbf031cf..ab3e582dd7b 100644
--- a/addons/google_account/models/google_service.py
+++ b/addons/google_account/models/google_service.py
@@ -112,7 +112,7 @@ class GoogleService(models.AbstractModel):
if _log_params.get('client_secret'):
_log_params['client_secret'] = _log_params['client_secret'][0:4] + 'x' * 12
- _logger.debug("Uri: %s - Type : %s - Headers: %s - Params : %s !", uri, method, headers, _log_params)
+ _logger.debug("Uri: %s - Type : %s - Headers: %s - Params : %s!", uri, method, headers, _log_params)
ask_time = fields.Datetime.now()
try:
@@ -139,6 +139,6 @@ class GoogleService(models.AbstractModel):
status = error.response.status_code
response = ""
else:
- _logger.exception("Bad google request : %s !", error.response.content)
+ _logger.exception("Bad google request : %s!", error.response.content)
raise error
return (status, response, ask_time)
diff --git a/addons/google_calendar/models/res_users.py b/addons/google_calendar/models/res_users.py
index ab4cf3c4c6b..d1e55d1b636 100644
--- a/addons/google_calendar/models/res_users.py
+++ b/addons/google_calendar/models/res_users.py
@@ -91,7 +91,7 @@ class User(models.Model):
user.with_user(user).sudo()._sync_google_calendar(google)
self.env.cr.commit()
except Exception as e:
- _logger.exception("[%s] Calendar Synchro - Exception : %s !", user, exception_to_unicode(e))
+ _logger.exception("[%s] Calendar Synchro - Exception : %s!", user, exception_to_unicode(e))
self.env.cr.rollback()
def stop_google_synchronization(self):
diff --git a/addons/hr/data/hr_demo.xml b/addons/hr/data/hr_demo.xml
index 5721cb6f592..29ef4265bbb 100644
--- a/addons/hr/data/hr_demo.xml
+++ b/addons/hr/data/hr_demo.xml
@@ -71,7 +71,7 @@ Excellent analytical skills, ability to think logically and "out of the box"
Chief Technical Officer
-
You will take part in the consulting services we provide to our partners and customers : design, analysis, development, testing, project management, support/coaching. You will work autonomously as well as coordinate and supervise small distributed development teams for some projects. Optionally, you will deliver Odoo training sessions to partners and customers (8-10 people/session). You will report to the Head of Professional Services and work closely with all developers and consultants.
+ You will take part in the consulting services we provide to our partners and customers: design, analysis, development, testing, project management, support/coaching. You will work autonomously as well as coordinate and supervise small distributed development teams for some projects. Optionally, you will deliver Odoo training sessions to partners and customers (8-10 people/session). You will report to the Head of Professional Services and work closely with all developers and consultants.
The job is located in Grand-Rosière (1367), Belgium (between Louvain-La-Neuve and Namur).
Bachelor, master or engineering degree in Computer Science or equivalent by experience
diff --git a/addons/hr/models/hr_employee_category.py b/addons/hr/models/hr_employee_category.py
index 41f8bedfbe4..eaabfedb618 100644
--- a/addons/hr/models/hr_employee_category.py
+++ b/addons/hr/models/hr_employee_category.py
@@ -19,5 +19,5 @@ class EmployeeCategory(models.Model):
employee_ids = fields.Many2many('hr.employee', 'employee_category_rel', 'category_id', 'emp_id', string='Employees')
_sql_constraints = [
- ('name_uniq', 'unique (name)', "Tag name already exists !"),
+ ('name_uniq', 'unique (name)', "Tag name already exists!"),
]
diff --git a/addons/hr/security/hr_security.xml b/addons/hr/security/hr_security.xml
index d8ac61cc9bd..e553dd6745a 100644
--- a/addons/hr/security/hr_security.xml
+++ b/addons/hr/security/hr_security.xml
@@ -6,7 +6,7 @@
- Officer : Manage all employees
+ Officer: Manage all employees
The user will be able to approve document created by employees.
diff --git a/addons/hr/views/hr_job_views.xml b/addons/hr/views/hr_job_views.xml
index 9338492674d..68b7215ddf6 100644
--- a/addons/hr/views/hr_job_views.xml
+++ b/addons/hr/views/hr_job_views.xml
@@ -79,7 +79,7 @@
- Vacancies :
+ Vacancies:
diff --git a/addons/hr_attendance/security/hr_attendance_security.xml b/addons/hr_attendance/security/hr_attendance_security.xml
index 7023f752318..7cad995c86f 100644
--- a/addons/hr_attendance/security/hr_attendance_security.xml
+++ b/addons/hr_attendance/security/hr_attendance_security.xml
@@ -5,7 +5,7 @@
- User : Only kiosk mode
+ User: Only kiosk mode
The user will be able to open the kiosk mode and validate the employee PIN.
@@ -22,7 +22,7 @@
- Officer : Manage all attendances
+ Officer: Manage all attendances
diff --git a/addons/hr_attendance/static/src/client_action/my_attendances/my_attendances.xml b/addons/hr_attendance/static/src/client_action/my_attendances/my_attendances.xml
index 79d5962181a..ee0cce32caa 100644
--- a/addons/hr_attendance/static/src/client_action/my_attendances/my_attendances.xml
+++ b/addons/hr_attendance/static/src/client_action/my_attendances/my_attendances.xml
@@ -18,7 +18,7 @@
- Warning : Your user should be linked to an employee to use attendance. Please contact your administrator.
+ Warning : Your user should be linked to an employee to use attendance. Please contact your administrator.
diff --git a/addons/hr_contract/static/src/widgets/tooltip_warning_widget.js b/addons/hr_contract/static/src/widgets/tooltip_warning_widget.js
index c79a932f4a8..04a77f763d7 100644
--- a/addons/hr_contract/static/src/widgets/tooltip_warning_widget.js
+++ b/addons/hr_contract/static/src/widgets/tooltip_warning_widget.js
@@ -8,7 +8,7 @@ const { Component } = owl;
export class ContractWarningTooltip extends Component {
get tooltipInfo() {
return JSON.stringify({
- "text" : _t("Calendar Mismatch : The employee's calendar does not match this contract's calendar. This could lead to unexpected behaviors."),
+ "text" : _t("Calendar Mismatch: The employee's calendar does not match this contract's calendar. This could lead to unexpected behaviors."),
})
}
}
diff --git a/addons/hr_expense/data/mail_templates.xml b/addons/hr_expense/data/mail_templates.xml
index 38c6d4030bc..bf39d13774f 100644
--- a/addons/hr_expense/data/mail_templates.xml
+++ b/addons/hr_expense/data/mail_templates.xml
@@ -4,7 +4,7 @@
Your Expense Report has been refused
diff --git a/addons/hr_holidays/models/hr_leave.py b/addons/hr_holidays/models/hr_leave.py
index 6c8321e3f9b..37b75e533ae 100644
--- a/addons/hr_holidays/models/hr_leave.py
+++ b/addons/hr_holidays/models/hr_leave.py
@@ -806,11 +806,11 @@ class HolidaysRequest(models.Model):
if leave.leave_type_request_unit == 'hour':
res.append((
leave.id,
- _("%s : %.2f hours") % (short_leave_name, leave.number_of_hours_display)))
+ _("%s: %.2f hours") % (short_leave_name, leave.number_of_hours_display)))
else:
res.append((
leave.id,
- _("%s : %.2f days") % (short_leave_name, leave.number_of_days)))
+ _("%s: %.2f days") % (short_leave_name, leave.number_of_days)))
else:
if leave.holiday_type == 'company':
target = leave.mode_company_id.name
@@ -1129,9 +1129,9 @@ class HolidaysRequest(models.Model):
calendar = holiday.employee_id.resource_calendar_id or company_calendar
user = holiday.user_id
if holiday.leave_type_request_unit == 'hour':
- meeting_name = _("%s on Time Off : %.2f hour(s)") % (holiday.employee_id.name or holiday.category_id.name, holiday.number_of_hours_display)
+ meeting_name = _("%s on Time Off: %.2f hour(s)") % (holiday.employee_id.name or holiday.category_id.name, holiday.number_of_hours_display)
else:
- meeting_name = _("%s on Time Off : %.2f day(s)") % (holiday.employee_id.name or holiday.category_id.name, holiday.number_of_days)
+ meeting_name = _("%s on Time Off: %.2f day(s)") % (holiday.employee_id.name or holiday.category_id.name, holiday.number_of_days)
meeting_values = {
'name': meeting_name,
'duration': holiday.number_of_days * (calendar.hours_per_day or HOURS_PER_DAY),
diff --git a/addons/hr_holidays/models/hr_leave_allocation.py b/addons/hr_holidays/models/hr_leave_allocation.py
index d6911b2dc38..02c49da9514 100644
--- a/addons/hr_holidays/models/hr_leave_allocation.py
+++ b/addons/hr_holidays/models/hr_leave_allocation.py
@@ -535,7 +535,7 @@ class HolidaysAllocation(models.Model):
res.append(
(allocation.id,
- _("Allocation of %(allocation_name)s : %(duration).2f %(duration_type)s to %(person)s",
+ _("Allocation of %(allocation_name)s: %(duration).2f %(duration_type)s to %(person)s",
allocation_name=allocation.holiday_status_id.sudo().name,
duration=allocation.number_of_hours_display if allocation.type_request_unit == 'hour' else allocation.number_of_days,
duration_type=_('hours') if allocation.type_request_unit == 'hour' else _('days'),
diff --git a/addons/hr_holidays/security/hr_holidays_security.xml b/addons/hr_holidays/security/hr_holidays_security.xml
index e774ee3b640..e3b10ecbec7 100644
--- a/addons/hr_holidays/security/hr_holidays_security.xml
+++ b/addons/hr_holidays/security/hr_holidays_security.xml
@@ -12,7 +12,7 @@
- Officer : Manage all requests
+ Officer: Manage all requests
@@ -197,7 +197,7 @@
- Allocations: holiday user : create/write
+ Allocations: holiday user: create/write
[
('holiday_type', '=', 'employee'),
diff --git a/addons/hr_holidays/static/src/views/calendar/calendar_controller.js b/addons/hr_holidays/static/src/views/calendar/calendar_controller.js
index 4729b54c646..a205d743514 100644
--- a/addons/hr_holidays/static/src/views/calendar/calendar_controller.js
+++ b/addons/hr_holidays/static/src/views/calendar/calendar_controller.js
@@ -71,7 +71,7 @@ export class TimeOffCalendarController extends CalendarController {
if (!record.can_cancel) {
this.displayDialog(ConfirmationDialog, {
title: this.env._t("Confirmation"),
- body: this.env._t("Are you sure you want to delete this record ?"),
+ body: this.env._t("Are you sure you want to delete this record?"),
confirm: async () => {
await this.model.unlinkRecord(record.id);
this.env.timeOffBus.trigger('update_dashboard');
diff --git a/addons/hr_recruitment/models/hr_applicant_category.py b/addons/hr_recruitment/models/hr_applicant_category.py
index 408041c823a..7d372256182 100644
--- a/addons/hr_recruitment/models/hr_applicant_category.py
+++ b/addons/hr_recruitment/models/hr_applicant_category.py
@@ -16,5 +16,5 @@ class ApplicantCategory(models.Model):
color = fields.Integer(string='Color Index', default=_get_default_color)
_sql_constraints = [
- ('name_uniq', 'unique (name)', "Tag name already exists !"),
+ ('name_uniq', 'unique (name)', "Tag name already exists!"),
]
diff --git a/addons/hr_recruitment/security/hr_recruitment_security.xml b/addons/hr_recruitment/security/hr_recruitment_security.xml
index 112cb764449..17099c3c87c 100644
--- a/addons/hr_recruitment/security/hr_recruitment_security.xml
+++ b/addons/hr_recruitment/security/hr_recruitment_security.xml
@@ -20,7 +20,7 @@
- Officer : Manage all applicants
+ Officer: Manage all applicants
diff --git a/addons/hr_recruitment/static/src/js/tours/hr_recruitment.js b/addons/hr_recruitment/static/src/js/tours/hr_recruitment.js
index a04d372d9fd..b2a1d26c6cc 100644
--- a/addons/hr_recruitment/static/src/js/tours/hr_recruitment.js
+++ b/addons/hr_recruitment/static/src/js/tours/hr_recruitment.js
@@ -102,7 +102,7 @@ registry.category("web_tour.tours").add('hr_recruitment_tour',{
}, {
trigger: ".o_form_button_save",
extra_trigger: ".o_employee_form",
- content: _t("Save it !"),
+ content: _t("Save it!"),
position: "bottom",
width: 80
}]});
diff --git a/addons/hr_recruitment_survey/data/survey_demo.xml b/addons/hr_recruitment_survey/data/survey_demo.xml
index 515ee74ccd5..057177a6a29 100644
--- a/addons/hr_recruitment_survey/data/survey_demo.xml
+++ b/addons/hr_recruitment_survey/data/survey_demo.xml
@@ -28,13 +28,13 @@
2
- Which country are you from ?
+ Which country are you from?
char_box
3
- From which university did or will you graduate ?
+ From which university did or will you graduate?
char_box
@@ -65,7 +65,7 @@
6
Knowledge
-What are your main knowledge regarding the job you are applying to ?
+What are your main knowledge regarding the job you are applying to?
text_box
@@ -80,7 +80,7 @@
8
- What is important for you ?
+ What is important for you?
matrix
simple
diff --git a/addons/hr_recruitment_survey/models/hr_job.py b/addons/hr_recruitment_survey/models/hr_job.py
index 897ad502d99..7bbe077206b 100644
--- a/addons/hr_recruitment_survey/models/hr_job.py
+++ b/addons/hr_recruitment_survey/models/hr_job.py
@@ -17,7 +17,7 @@ class Job(models.Model):
def action_new_survey(self):
self.ensure_one()
survey = self.env['survey.survey'].create({
- 'title': _("Interview Form : %s") % self.name,
+ 'title': _("Interview Form: %s") % self.name,
})
self.write({'survey_id': survey.id})
diff --git a/addons/hr_recruitment_survey/tests/test_recruitment_survey.py b/addons/hr_recruitment_survey/tests/test_recruitment_survey.py
index 49203869426..16e965ad928 100644
--- a/addons/hr_recruitment_survey/tests/test_recruitment_survey.py
+++ b/addons/hr_recruitment_survey/tests/test_recruitment_survey.py
@@ -31,7 +31,7 @@ class TestRecruitmentSurvey(common.SingleTransactionCase):
'partner_name': 'Jane Doe',
'email_from': 'customer@example.com',
'department_id': cls.department_admins.id,
- 'description': 'A nice Sys Admin job offer !',
+ 'description': 'A nice Sys Admin job offer!',
'job_id': cls.job.id,
})
diff --git a/addons/hr_timesheet/tests/test_timesheet.py b/addons/hr_timesheet/tests/test_timesheet.py
index 575fbee3c1b..131d9cd2b30 100644
--- a/addons/hr_timesheet/tests/test_timesheet.py
+++ b/addons/hr_timesheet/tests/test_timesheet.py
@@ -122,7 +122,7 @@ class TestTimesheet(TestCommonTimesheet):
rule.active = False
def test_log_timesheet(self):
- """ Test when log timesheet : check analytic account, user and employee are correctly set. """
+ """ Test when log timesheet: check analytic account, user and employee are correctly set. """
Timesheet = self.env['account.analytic.line']
timesheet_uom = self.project_customer.analytic_account_id.company_id.project_time_mode_id
# employee 1 log some timesheet on task 1
@@ -167,7 +167,7 @@ class TestTimesheet(TestCommonTimesheet):
self.assertEqual(timesheet4.partner_id, self.project_customer.partner_id, 'Customer of new timesheet should be the same of the one set project (since no task on timesheet)')
def test_log_access_rights(self):
- """ Test access rights : user can update its own timesheets only, and manager can change all """
+ """ Test access rights: user can update its own timesheets only, and manager can change all """
# employee 1 log some timesheet on task 1
Timesheet = self.env['account.analytic.line']
timesheet1 = Timesheet.with_user(self.user_employee).create({
diff --git a/addons/hr_work_entry_holidays/tests/common.py b/addons/hr_work_entry_holidays/tests/common.py
index 0419daa6196..8604744d6b7 100644
--- a/addons/hr_work_entry_holidays/tests/common.py
+++ b/addons/hr_work_entry_holidays/tests/common.py
@@ -86,7 +86,7 @@ class TestWorkEntryHolidaysBase(TestWorkEntryBase):
date_from = date_from or Datetime.today()
date_to = date_to or Datetime.today() + relativedelta(days=1)
return cls.env['hr.leave'].create({
- 'name': 'Holiday !!!',
+ 'name': 'Holiday!!!',
'employee_id': cls.richard_emp.id,
'holiday_status_id': cls.leave_type.id,
'date_to': date_to,
diff --git a/addons/hr_work_entry_holidays/tests/test_leave.py b/addons/hr_work_entry_holidays/tests/test_leave.py
index e22ea53491a..1b0fb8f2766 100644
--- a/addons/hr_work_entry_holidays/tests/test_leave.py
+++ b/addons/hr_work_entry_holidays/tests/test_leave.py
@@ -188,7 +188,7 @@ class TestWorkEntryLeave(TestWorkEntryHolidaysBase):
])
self.assertEqual(len(work_entries.work_entry_type_id), 1)
leave = self.env['hr.leave'].create({
- 'name': 'Holiday !!!',
+ 'name': 'Holiday!!!',
'holiday_type': 'company',
'mode_company_id': self.env.company.id,
'holiday_status_id': self.leave_type.id,
diff --git a/addons/im_livechat/data/im_livechat_chatbot_data.xml b/addons/im_livechat/data/im_livechat_chatbot_data.xml
index 80746742fcd..4f576c62784 100644
--- a/addons/im_livechat/data/im_livechat_chatbot_data.xml
+++ b/addons/im_livechat/data/im_livechat_chatbot_data.xml
@@ -13,7 +13,7 @@
- Welcome to CompanyName ! 👋
+ Welcome to CompanyName! 👋
1
text
diff --git a/addons/im_livechat/static/src/legacy/widgets/feedback/feedback.xml b/addons/im_livechat/static/src/legacy/widgets/feedback/feedback.xml
index f02cc1c649a..dcc97a5973f 100644
--- a/addons/im_livechat/static/src/legacy/widgets/feedback/feedback.xml
+++ b/addons/im_livechat/static/src/legacy/widgets/feedback/feedback.xml
@@ -6,7 +6,7 @@
- Did we correctly answer your question ?
+ Did we correctly answer your question?
diff --git a/addons/mail/models/fetchmail.py b/addons/mail/models/fetchmail.py
index 430f14f0565..25a11b1a940 100644
--- a/addons/mail/models/fetchmail.py
+++ b/addons/mail/models/fetchmail.py
@@ -157,7 +157,7 @@ odoo_mailgate: "|/path/to/odoo-mailgate.py --host=localhost -u %(uid)d -p PASSWO
connection = server.connect(allow_archived=True)
server.write({'state': 'done'})
except UnicodeError as e:
- raise UserError(_("Invalid server name !\n %s", tools.ustr(e)))
+ raise UserError(_("Invalid server name!\n %s", tools.ustr(e)))
except (gaierror, timeout, IMAP4.abort) as e:
raise UserError(_("No response received. Check server information.\n %s", tools.ustr(e)))
except (IMAP4.error, poplib.error_proto) as err:
diff --git a/addons/mail_group/data/mail_group_demo.xml b/addons/mail_group/data/mail_group_demo.xml
index 35acfdd8593..97331cfe863 100644
--- a/addons/mail_group/data/mail_group_demo.xml
+++ b/addons/mail_group/data/mail_group_demo.xml
@@ -61,7 +61,7 @@
Re: Important Announce
- Can I come with my dog ?
+ Can I come with my dog?
joel.willis63@example.com
accepted
diff --git a/addons/mass_mailing/views/mailing_mailing_views.xml b/addons/mass_mailing/views/mailing_mailing_views.xml
index 5318d742c71..cba8755af9a 100644
--- a/addons/mass_mailing/views/mailing_mailing_views.xml
+++ b/addons/mass_mailing/views/mailing_mailing_views.xml
@@ -61,7 +61,7 @@
Lead Recall
- We want to hear from you !
+ We want to hear from you!
draft
diff --git a/addons/mass_mailing_sale/data/mass_mailing_demo.xml b/addons/mass_mailing_sale/data/mass_mailing_demo.xml
index 88aaf14fa0b..e668af6d774 100644
--- a/addons/mass_mailing_sale/data/mass_mailing_demo.xml
+++ b/addons/mass_mailing_sale/data/mass_mailing_demo.xml
@@ -3,7 +3,7 @@
Sale Promotion 1
- Our last promotions, just for you !
+ Our last promotions, just for you!
draft
diff --git a/addons/mass_mailing_sms/data/mailing_demo.xml b/addons/mass_mailing_sms/data/mailing_demo.xml
index bb2e0dab9d3..aaeaef0f5f3 100644
--- a/addons/mass_mailing_sms/data/mailing_demo.xml
+++ b/addons/mass_mailing_sms/data/mailing_demo.xml
@@ -10,7 +10,7 @@
- This week-end, incredible promotion for XMas ! See http://sms.example.com !
+ This week-end, incredible promotion for XMas! See http://sms.example.com!
@@ -134,7 +134,7 @@
- Extra promotion for you !
+ Extra promotion for you!
diff --git a/addons/mass_mailing_sms/views/mailing_mailing_views.xml b/addons/mass_mailing_sms/views/mailing_mailing_views.xml
index b5cc0c20905..94458436b8c 100644
--- a/addons/mass_mailing_sms/views/mailing_mailing_views.xml
+++ b/addons/mass_mailing_sms/views/mailing_mailing_views.xml
@@ -28,11 +28,11 @@
+ confirm="This will send SMS to all recipients. Do you still want to proceed?"/>
+ confirm="This will send SMS to all recipients now. Do you still want to proceed?"/>
diff --git a/addons/membership/models/product.py b/addons/membership/models/product.py
index b766df1240f..3abed3f7a75 100644
--- a/addons/membership/models/product.py
+++ b/addons/membership/models/product.py
@@ -14,7 +14,7 @@ class Product(models.Model):
help='Date until which membership remains active.')
_sql_constraints = [
- ('membership_date_greater', 'check(membership_date_to >= membership_date_from)', 'Error ! Ending Date cannot be set before Beginning Date.')
+ ('membership_date_greater', 'check(membership_date_to >= membership_date_from)', 'Error! Ending Date cannot be set before Beginning Date.')
]
@api.model
diff --git a/addons/microsoft_account/models/microsoft_service.py b/addons/microsoft_account/models/microsoft_service.py
index 38a7b9452a8..14fd2650fb4 100644
--- a/addons/microsoft_account/models/microsoft_service.py
+++ b/addons/microsoft_account/models/microsoft_service.py
@@ -165,6 +165,6 @@ class MicrosoftService(models.AbstractModel):
status = error.response.status_code
response = ""
else:
- _logger.exception("Bad microsoft request : %s !", error.response.content)
+ _logger.exception("Bad microsoft request: %s!", error.response.content)
raise error
return (status, response, ask_time)
diff --git a/addons/microsoft_calendar/models/res_users.py b/addons/microsoft_calendar/models/res_users.py
index 1bca89bb0b4..9169f6ad290 100644
--- a/addons/microsoft_calendar/models/res_users.py
+++ b/addons/microsoft_calendar/models/res_users.py
@@ -126,7 +126,7 @@ class User(models.Model):
user.with_user(user).sudo()._sync_microsoft_calendar()
self.env.cr.commit()
except Exception as e:
- _logger.exception("[%s] Calendar Synchro - Exception : %s !", user, exception_to_unicode(e))
+ _logger.exception("[%s] Calendar Synchro - Exception : %s!", user, exception_to_unicode(e))
self.env.cr.rollback()
def stop_microsoft_synchronization(self):
diff --git a/addons/mrp/models/mrp_bom.py b/addons/mrp/models/mrp_bom.py
index c0ea486f000..1ca8bee00f3 100644
--- a/addons/mrp/models/mrp_bom.py
+++ b/addons/mrp/models/mrp_bom.py
@@ -428,7 +428,7 @@ class MrpBomLine(models.Model):
_sql_constraints = [
('bom_qty_zero', 'CHECK (product_qty>=0)', 'All product quantities must be greater or equal to 0.\n'
'Lines with 0 quantities can be used as optional lines. \n'
- 'You should install the mrp_byproduct module if you want to manage extra products on BoMs !'),
+ 'You should install the mrp_byproduct module if you want to manage extra products on BoMs!'),
]
@api.depends('product_id', 'tracking', 'operation_id')
diff --git a/addons/mrp/views/mrp_production_views.xml b/addons/mrp/views/mrp_production_views.xml
index 7f4cdd7fd51..414e49ead63 100644
--- a/addons/mrp/views/mrp_production_views.xml
+++ b/addons/mrp/views/mrp_production_views.xml
@@ -133,7 +133,7 @@
attrs="{'invisible': ['|', '|', ('id', '=', False), ('state', 'in', ('done', 'cancel')), ('confirm_cancel', '=', True)]}"/>
+ confirm="Some product moves have already been confirmed, this manufacturing order can't be completely cancelled. Are you still sure you want to process?"/>
diff --git a/addons/mrp_product_expiry/wizard/confirm_expiry.py b/addons/mrp_product_expiry/wizard/confirm_expiry.py
index 056656770ed..d3dabe27ec4 100644
--- a/addons/mrp_product_expiry/wizard/confirm_expiry.py
+++ b/addons/mrp_product_expiry/wizard/confirm_expiry.py
@@ -19,13 +19,13 @@ class ConfirmExpiry(models.TransientModel):
# For multiple expired lots, they are listed in the wizard view.
self.description = _(
"You are going to use some expired components."
- "\nDo you confirm you want to proceed ?"
+ "\nDo you confirm you want to proceed?"
)
else:
# For one expired lot, its name is written in the wizard message.
self.description = _(
"You are going to use the component %(product_name)s, %(lot_name)s which is expired."
- "\nDo you confirm you want to proceed ?",
+ "\nDo you confirm you want to proceed?",
product_name=self.lot_ids.product_id.display_name,
lot_name=self.lot_ids.name,
)
diff --git a/addons/note/data/note_demo.xml b/addons/note/data/note_demo.xml
index f395ad6bd96..a86ee27ac7e 100644
--- a/addons/note/data/note_demo.xml
+++ b/addons/note/data/note_demo.xml
@@ -56,11 +56,11 @@
Motherboard according to processor
Processor need to decide
- Graphic card with great performance for games !
+ Graphic card with great performance for games!
Hard drive big, for lot of internet backups
Tower silent, better when watching films
- Blueray drive ? is it interesting yet ?
- Screen a big one, full of pixels, of course !
+ Blueray drive ? is it interesting yet?
+ Screen a big one, full of pixels, of course!
]]>
diff --git a/addons/note/models/note.py b/addons/note/models/note.py
index 819520ade93..1bcc8212751 100644
--- a/addons/note/models/note.py
+++ b/addons/note/models/note.py
@@ -35,7 +35,7 @@ class Tag(models.Model):
color = fields.Integer('Color Index', default=_get_default_color)
_sql_constraints = [
- ('name_uniq', 'unique (name)', "Tag name already exists !"),
+ ('name_uniq', 'unique (name)', "Tag name already exists!"),
]
diff --git a/addons/point_of_sale/models/pos_category.py b/addons/point_of_sale/models/pos_category.py
index 2d0dfc52320..c2b1fb8a8eb 100644
--- a/addons/point_of_sale/models/pos_category.py
+++ b/addons/point_of_sale/models/pos_category.py
@@ -12,7 +12,7 @@ class PosCategory(models.Model):
@api.constrains('parent_id')
def _check_category_recursion(self):
if not self._check_recursion():
- raise ValidationError(_('Error ! You cannot create recursive categories.'))
+ raise ValidationError(_('Error! You cannot create recursive categories.'))
name = fields.Char(string='Category Name', required=True, translate=True)
parent_id = fields.Many2one('pos.category', string='Parent Category', index=True)
diff --git a/addons/point_of_sale/models/pos_session.py b/addons/point_of_sale/models/pos_session.py
index 9cd526bb013..32a06d87f19 100644
--- a/addons/point_of_sale/models/pos_session.py
+++ b/addons/point_of_sale/models/pos_session.py
@@ -96,7 +96,7 @@ class PosSession(models.Model):
update_stock_at_closing = fields.Boolean('Stock should be updated at closing')
bank_payment_ids = fields.One2many('account.payment', 'pos_session_id', 'Bank Payments', help='Account payments representing aggregated and bank split payments.')
- _sql_constraints = [('uniq_name', 'unique(name)', "The name of this POS Session must be unique !")]
+ _sql_constraints = [('uniq_name', 'unique(name)', "The name of this POS Session must be unique!")]
@api.depends('currency_id', 'company_id.currency_id')
def _compute_is_in_company_currency(self):
diff --git a/addons/point_of_sale/static/src/app/debug/debug_widget.js b/addons/point_of_sale/static/src/app/debug/debug_widget.js
index ea1bf8140a2..c2b3a0bfa32 100644
--- a/addons/point_of_sale/static/src/app/debug/debug_widget.js
+++ b/addons/point_of_sale/static/src/app/debug/debug_widget.js
@@ -98,7 +98,7 @@ export class DebugWidget extends Component {
}
async deleteOrders() {
const { confirmed } = await this.popup.add(ConfirmPopup, {
- title: this.env._t("Delete Paid Orders ?"),
+ title: this.env._t("Delete Paid Orders?"),
body: this.env._t(
"This operation will permanently destroy all paid orders from the local storage. You will lose all the data. This operation cannot be undone."
),
@@ -110,7 +110,7 @@ export class DebugWidget extends Component {
}
async deleteUnpaidOrders() {
const { confirmed } = await this.popup.add(ConfirmPopup, {
- title: this.env._t("Delete Unpaid Orders ?"),
+ title: this.env._t("Delete Unpaid Orders?"),
body: this.env._t(
"This operation will destroy all unpaid orders in the browser. You will lose all the unsaved data and exit the point of sale. This operation cannot be undone."
),
diff --git a/addons/point_of_sale/static/src/js/Popups/ConfirmPopup.js b/addons/point_of_sale/static/src/js/Popups/ConfirmPopup.js
index fb9147f2548..ab143b7e21d 100644
--- a/addons/point_of_sale/static/src/js/Popups/ConfirmPopup.js
+++ b/addons/point_of_sale/static/src/js/Popups/ConfirmPopup.js
@@ -8,7 +8,7 @@ export class ConfirmPopup extends AbstractAwaitablePopup {
static defaultProps = {
confirmText: _lt("Ok"),
cancelText: _lt("Cancel"),
- title: _lt("Confirm ?"),
+ title: _lt("Confirm?"),
body: "",
};
}
diff --git a/addons/point_of_sale/static/src/js/Popups/NumberPopup.js b/addons/point_of_sale/static/src/js/Popups/NumberPopup.js
index ae90a7d006d..7ffdbe02bde 100644
--- a/addons/point_of_sale/static/src/js/Popups/NumberPopup.js
+++ b/addons/point_of_sale/static/src/js/Popups/NumberPopup.js
@@ -11,7 +11,7 @@ export class NumberPopup extends AbstractAwaitablePopup {
static defaultProps = {
confirmText: _t("Confirm"),
cancelText: _t("Discard"),
- title: _t("Confirm ?"),
+ title: _t("Confirm?"),
body: "",
cheap: false,
startingValue: null,
diff --git a/addons/point_of_sale/static/src/js/Screens/TicketScreen/TicketScreen.js b/addons/point_of_sale/static/src/js/Screens/TicketScreen/TicketScreen.js
index 7fc6911cf64..7320c4332ed 100644
--- a/addons/point_of_sale/static/src/js/Screens/TicketScreen/TicketScreen.js
+++ b/addons/point_of_sale/static/src/js/Screens/TicketScreen/TicketScreen.js
@@ -128,7 +128,7 @@ export class TicketScreen extends IndependentToOrderScreen {
title: this.env._t("Existing orderlines"),
body: _.str.sprintf(
this.env._t(
- "%s has a total amount of %s, are you sure you want to delete this order ?"
+ "%s has a total amount of %s, are you sure you want to delete this order?"
),
order.name,
this.getTotal(order)
diff --git a/addons/pos_hr/static/src/js/SelectCashierMixin.js b/addons/pos_hr/static/src/js/SelectCashierMixin.js
index 58c2b70f777..12345867e9a 100644
--- a/addons/pos_hr/static/src/js/SelectCashierMixin.js
+++ b/addons/pos_hr/static/src/js/SelectCashierMixin.js
@@ -38,7 +38,7 @@ export function useCashierSelector({ onCashierChanged } = { onCashierChanged: ()
async function checkPin(employee) {
const { confirmed, payload: inputPin } = await popup.add(NumberPopup, {
isPassword: true,
- title: _t("Password ?"),
+ title: _t("Password?"),
});
if (!confirmed) {
diff --git a/addons/pos_restaurant/static/src/app/floor_screen/floor_screen.js b/addons/pos_restaurant/static/src/app/floor_screen/floor_screen.js
index 9d0b607798b..c35b6655e9b 100644
--- a/addons/pos_restaurant/static/src/app/floor_screen/floor_screen.js
+++ b/addons/pos_restaurant/static/src/app/floor_screen/floor_screen.js
@@ -329,7 +329,7 @@ export class FloorScreen extends Component {
}
const { confirmed, payload: newName } = await this.popup.add(TextInputPopup, {
startingValue: selectedTable.name,
- title: this.env._t("Table Name ?"),
+ title: this.env._t("Table Name?"),
});
if (!confirmed) {
return;
@@ -347,7 +347,7 @@ export class FloorScreen extends Component {
const { confirmed, payload: inputNumber } = await this.popup.add(NumberPopup, {
startingValue: selectedTable.seats,
cheap: true,
- title: this.env._t("Number of Seats ?"),
+ title: this.env._t("Number of Seats?"),
isInputSelected: true,
});
if (!confirmed) {
@@ -384,7 +384,7 @@ export class FloorScreen extends Component {
return;
}
const { confirmed } = await this.popup.add(ConfirmPopup, {
- title: this.env._t("Are you sure ?"),
+ title: this.env._t("Are you sure?"),
body: this.env._t("Removing a table cannot be undone"),
});
if (!confirmed) {
diff --git a/addons/pos_restaurant/static/src/js/Screens/ProductScreen/ControlButtons/TableGuestsButton.js b/addons/pos_restaurant/static/src/js/Screens/ProductScreen/ControlButtons/TableGuestsButton.js
index f0d994b296e..b67b4fe59fe 100644
--- a/addons/pos_restaurant/static/src/js/Screens/ProductScreen/ControlButtons/TableGuestsButton.js
+++ b/addons/pos_restaurant/static/src/js/Screens/ProductScreen/ControlButtons/TableGuestsButton.js
@@ -23,7 +23,7 @@ export class TableGuestsButton extends Component {
const { confirmed, payload: inputNumber } = await this.popup.add(NumberPopup, {
startingValue: this.nGuests,
cheap: true,
- title: this.env._t("Guests ?"),
+ title: this.env._t("Guests?"),
isInputSelected: true,
});
diff --git a/addons/privacy_lookup/wizard/privacy_lookup_wizard_views.xml b/addons/privacy_lookup/wizard/privacy_lookup_wizard_views.xml
index e147f80178c..334a3bb81da 100644
--- a/addons/privacy_lookup/wizard/privacy_lookup_wizard_views.xml
+++ b/addons/privacy_lookup/wizard/privacy_lookup_wizard_views.xml
@@ -56,7 +56,7 @@
-
+
diff --git a/addons/product/models/product_tag.py b/addons/product/models/product_tag.py
index d37123bc0a5..278c26b73d3 100644
--- a/addons/product/models/product_tag.py
+++ b/addons/product/models/product_tag.py
@@ -23,7 +23,7 @@ class ProductTag(models.Model):
)
_sql_constraints = [
- ('name_uniq', 'unique (name)', "Tag name already exists !"),
+ ('name_uniq', 'unique (name)', "Tag name already exists!"),
]
@api.depends('product_template_ids', 'product_product_ids')
diff --git a/addons/product_expiry/wizard/confirm_expiry.py b/addons/product_expiry/wizard/confirm_expiry.py
index eb2c2d8d34a..f1cebfd689e 100644
--- a/addons/product_expiry/wizard/confirm_expiry.py
+++ b/addons/product_expiry/wizard/confirm_expiry.py
@@ -21,13 +21,13 @@ class ConfirmExpiry(models.TransientModel):
# For multiple expired lots, they are listed in the wizard view.
self.description = _(
"You are going to deliver some product expired lots."
- "\nDo you confirm you want to proceed ?"
+ "\nDo you confirm you want to proceed?"
)
else:
# For one expired lot, its name is written in the wizard message.
self.description = _(
"You are going to deliver the product %(product_name)s, %(lot_name)s which is expired."
- "\nDo you confirm you want to proceed ?",
+ "\nDo you confirm you want to proceed?",
product_name=self.lot_ids.product_id.display_name,
lot_name=self.lot_ids.name
)
diff --git a/addons/resource/views/resource_calendar_views.xml b/addons/resource/views/resource_calendar_views.xml
index 2c918523153..41ea09b15ff 100644
--- a/addons/resource/views/resource_calendar_views.xml
+++ b/addons/resource/views/resource_calendar_views.xml
@@ -20,8 +20,8 @@
- Where do you want to send the products ?
+ Where do you want to send the products?
diff --git a/addons/survey/data/mail_template_data.xml b/addons/survey/data/mail_template_data.xml
index 49ed3995a48..559ce33b261 100644
--- a/addons/survey/data/mail_template_data.xml
+++ b/addons/survey/data/mail_template_data.xml
@@ -73,7 +73,7 @@
Furniture Creation
certification
-
Congratulations for passing the test with a score of % !
+
Congratulations for passing the test with a score of %!
diff --git a/addons/survey/data/survey_demo_certification.xml b/addons/survey/data/survey_demo_certification.xml
index 73f634f56aa..e958470bcd4 100644
--- a/addons/survey/data/survey_demo_certification.xml
+++ b/addons/survey/data/survey_demo_certification.xml
@@ -336,7 +336,7 @@
2021-01-07 00:00:01
1.0
-
Beware of leap years !
+
Beware of leap years!
diff --git a/addons/survey/data/survey_demo_conditional.xml b/addons/survey/data/survey_demo_conditional.xml
index 138bd5d01d3..5e02aedef5d 100644
--- a/addons/survey/data/survey_demo_conditional.xml
+++ b/addons/survey/data/survey_demo_conditional.xml
@@ -13,7 +13,7 @@
10.0
page_per_question
- Choose your favourite subject and show how good you are. Ready ?
+ Choose your favourite subject and show how good you are. Ready?
@@ -93,7 +93,7 @@
120
- What is the biggest city in the world ?
+ What is the biggest city in the world?
simple_choice
@@ -126,7 +126,7 @@
130
- Which is the highest volcano in Europe ?
+ Which is the highest volcano in Europe?
simple_choice
@@ -167,7 +167,7 @@
210
- When did Genghis Khan die ?
+ When did Genghis Khan die?
simple_choice
@@ -195,7 +195,7 @@
220
- Who is the architect of the Great Pyramid of Giza ?
+ Who is the architect of the Great Pyramid of Giza?
simple_choice
@@ -228,7 +228,7 @@
230
- How many years did the 100 years war last ?
+ How many years did the 100 years war last?
simple_choice
@@ -269,7 +269,7 @@
310
- Who received a Nobel prize in Physics for the discovery of neutrino oscillations, which shows that neutrinos have mass ?
+ Who received a Nobel prize in Physics for the discovery of neutrino oscillations, which shows that neutrinos have mass?
multiple_choice
@@ -304,7 +304,7 @@
320
- What is, approximately, the critical mass of plutonium-239 ?
+ What is, approximately, the critical mass of plutonium-239?
simple_choice
@@ -337,7 +337,7 @@
330
- Can Humans ever directly see a photon ?
+ Can Humans ever directly see a photon?
simple_choice
@@ -368,7 +368,7 @@
410
- Which Musician is not in the 27th Club ?
+ Which Musician is not in the 27th Club?
multiple_choice
@@ -403,7 +403,7 @@
420
- Which painting/drawing was not made by Pablo Picasso ?
+ Which painting/drawing was not made by Pablo Picasso?
simple_choice
@@ -462,7 +462,7 @@
3
- I've been noticing gravity since I was very young !
+ I've been noticing gravity since I was very young!
diff --git a/addons/survey/data/survey_demo_feedback.xml b/addons/survey/data/survey_demo_feedback.xml
index 02be961a0d8..2fe9071e3bd 100644
--- a/addons/survey/data/survey_demo_feedback.xml
+++ b/addons/survey/data/survey_demo_feedback.xml
@@ -26,7 +26,7 @@
2
- Where do you live ?
+ Where do you live?
char_box
Brussels
@@ -34,14 +34,14 @@
3
- When is your date of birth ?
+ When is your date of birth?
date
4
- How frequently do you buy products online ?
+ How frequently do you buy products online?
simple_choice
@@ -70,7 +70,7 @@
5
- How many times did you order products on our website ?
+ How many times did you order products on our website?
numerical_box
@@ -88,7 +88,7 @@
7
- Which of the following words would you use to describe our products ?
+ Which of the following words would you use to describe our products?
multiple_choice
@@ -137,7 +137,7 @@
8
- What do you think about our new eCommerce ?
+ What do you think about our new eCommerce?
matrix
multiple
@@ -190,7 +190,7 @@
9
- Do you have any other comments, questions, or concerns ?
+ Do you have any other comments, questions, or concerns?
text_box
diff --git a/addons/survey/data/survey_demo_feedback_user_input_line.xml b/addons/survey/data/survey_demo_feedback_user_input_line.xml
index ebd96fd5285..43ea9b388db 100644
--- a/addons/survey/data/survey_demo_feedback_user_input_line.xml
+++ b/addons/survey/data/survey_demo_feedback_user_input_line.xml
@@ -240,7 +240,7 @@
text_box
- The customizable desk received is not the one I ordered on your website and the quality is very poor ! Really disappointed.
+ The customizable desk received is not the one I ordered on your website and the quality is very poor! Really disappointed.
diff --git a/addons/survey/data/survey_demo_quiz.xml b/addons/survey/data/survey_demo_quiz.xml
index 6bcc86a8389..665d9c0ecf6 100644
--- a/addons/survey/data/survey_demo_quiz.xml
+++ b/addons/survey/data/survey_demo_quiz.xml
@@ -11,13 +11,13 @@
55
page_per_question
-This small quiz will test your knowledge about our Company. Be prepared !
+This small quiz will test your knowledge about our Company. Be prepared!
- Who are you ?
+ Who are you?
1
@@ -28,7 +28,7 @@
2
- What is your email ?
+ What is your email?
char_box
@@ -38,7 +38,7 @@
3
- What is your nickname ?
+ What is your nickname?
char_box
Don't be shy, be wild!
@@ -47,7 +47,7 @@
4
- Where are you from ?
+ Where are you from?
char_box
Brussels, Belgium
@@ -55,7 +55,7 @@
5
- How old are you ?
+ How old are you?
Just to categorize your answers, don't worry.
numerical_box
@@ -74,15 +74,15 @@
11
- When is Mitchell Admin born ?
- Our famous Leader !
+ When is Mitchell Admin born?
+ Our famous Leader!
date
12
- When did precisely Marc Demo crop its first apple tree ?
+ When did precisely Marc Demo crop its first apple tree?
datetime
@@ -165,7 +165,7 @@
23
Select trees that made more than 20K sales this year
- Our sales people have an advantage, but you can do it !
+ Our sales people have an advantage, but you can do it!
multiple_choice
@@ -326,7 +326,7 @@
- Dogwood is from which family of trees ?
+ Dogwood is from which family of trees?
31
simple_choice
@@ -360,7 +360,7 @@
- In which country did the bonsai technique develop ?
+ In which country did the bonsai technique develop?
32
simple_choice
@@ -394,7 +394,7 @@
- Is the wood of a coniferous hard or soft ?
+ Is the wood of a coniferous hard or soft?
33
simple_choice
@@ -420,7 +420,7 @@
- From which continent is native the Scots pine (pinus sylvestris) ?
+ From which continent is native the Scots pine (pinus sylvestris)?
34
simple_choice
@@ -500,7 +500,7 @@
- After watching this video, will you swear that you are not going to procrastinate to trim your hedge this year ?
+ After watching this video, will you swear that you are not going to procrastinate to trim your hedge this year?
36
simple_choice
@@ -546,7 +546,7 @@
41
- What do you think about this survey ?
+ What do you think about this survey?
If you don't like us, please try to be as objective as possible.
simple_choice
diff --git a/addons/survey/data/survey_demo_quiz_user_input_line.xml b/addons/survey/data/survey_demo_quiz_user_input_line.xml
index 1024d0b7385..222d069f25d 100644
--- a/addons/survey/data/survey_demo_quiz_user_input_line.xml
+++ b/addons/survey/data/survey_demo_quiz_user_input_line.xml
@@ -65,7 +65,7 @@
char_box
- Mooses ?? Really ?
+ Mooses?? Really?
@@ -243,7 +243,7 @@
char_box
- Mooses are best pollinators of the world !
+ Mooses are best pollinators of the world!
diff --git a/addons/survey/models/survey_survey_template.py b/addons/survey/models/survey_survey_template.py
index a4f98a646e3..bba69e017d9 100644
--- a/addons/survey/models/survey_survey_template.py
+++ b/addons/survey/models/survey_survey_template.py
@@ -24,7 +24,7 @@ class SurveyTemplate(models.Model):
_('Please complete this very short survey to let us know how satisfied your are with our products.'),
_('Your responses will help us improve our product range to serve you even better.')
]),
- 'description_done': _('Thank you very much for your feedback. We highly value your opinion !'),
+ 'description_done': _('Thank you very much for your feedback. We highly value your opinion!'),
'progression_mode': 'number',
'questions_layout': 'page_per_question',
'question_and_page_ids': [
diff --git a/addons/survey/static/src/js/survey_session_manage.js b/addons/survey/static/src/js/survey_session_manage.js
index 4f0b43b48b4..449ff7c90c1 100644
--- a/addons/survey/static/src/js/survey_session_manage.js
+++ b/addons/survey/static/src/js/survey_session_manage.js
@@ -93,7 +93,7 @@ publicWidget.registry.SurveySessionManage = publicWidget.Widget.extend(SurveyPre
container: 'body',
offset: '0, 3',
content: function () {
- return _t("Copied !");
+ return _t("Copied!");
}
});
diff --git a/addons/survey/static/tests/tours/survey_prefill.js b/addons/survey/static/tests/tours/survey_prefill.js
index f6d84eb2eed..e6b6d5c0a4a 100644
--- a/addons/survey/static/tests/tours/survey_prefill.js
+++ b/addons/survey/static/tests/tours/survey_prefill.js
@@ -8,23 +8,23 @@ registry.category("web_tour.tours").add('test_survey_prefill', {
url: '/survey/start/b137640d-14d4-4748-9ef6-344caaaaaae',
steps: [{ // Page-1
trigger: 'button.btn.btn-primary.btn-lg:contains("Start Survey")',
- }, { // Question: Where do you live ?
- trigger: 'div.js_question-wrapper:contains("Where do you live ?") input',
+ }, { // Question: Where do you live?
+ trigger: 'div.js_question-wrapper:contains("Where do you live?") input',
run: 'text Grand-Rosiere',
- }, { // Question: When is your date of birth ?
- trigger: 'div.js_question-wrapper:contains("When is your date of birth ?") input',
+ }, { // Question: When is your date of birth?
+ trigger: 'div.js_question-wrapper:contains("When is your date of birth?") input',
run: 'text 05/05/1980',
- }, { // Question: How frequently do you buy products online ?
- trigger: 'div.js_question-wrapper:contains("How frequently do you buy products online ?") label:contains("Once a week")',
- }, { // Question: How many times did you order products on our website ?
- trigger: 'div.js_question-wrapper:contains("How many times did you order products on our website ?") input',
+ }, { // Question: How frequently do you buy products online?
+ trigger: 'div.js_question-wrapper:contains("How frequently do you buy products online?") label:contains("Once a week")',
+ }, { // Question: How many times did you order products on our website?
+ trigger: 'div.js_question-wrapper:contains("How many times did you order products on our website?") input',
run: 'text 42',
}, {
content: 'Click on Next Page',
trigger: 'button[value="next"]',
},
// Page-2
- { // Question: Which of the following words would you use to describe our products ?
+ { // Question: Which of the following words would you use to describe our products?
content: 'Answer Which of the following words would you use to describe our products (High Quality)',
trigger: 'div.js_question-wrapper:contains("Which of the following words would you use to describe our products") label:contains("High quality")',
}, {
@@ -54,9 +54,9 @@ registry.category("web_tour.tours").add('test_survey_prefill', {
content: 'Click on the previous page name in the breadcrumb',
trigger: 'ol.breadcrumb a:first',
}, {
- trigger: 'div.js_question-wrapper:contains("How many times did you order products on our website ?") input',
+ trigger: 'div.js_question-wrapper:contains("How many times did you order products on our website?") input',
run: function () {
- var $inputQ3 = $('div.js_question-wrapper:contains("How many times did you order products on our website ?") input');
+ var $inputQ3 = $('div.js_question-wrapper:contains("How many times did you order products on our website?") input');
if ($inputQ3.val() === '42.0') {
$('.o_survey_title').addClass('prefilled');
}
@@ -65,22 +65,22 @@ registry.category("web_tour.tours").add('test_survey_prefill', {
trigger: '.o_survey_title.prefilled',
run: function () {
// check that all the answers are prefilled in Page 1
- var $inputQ1 = $('div.js_question-wrapper:contains("Where do you live ?") input');
+ var $inputQ1 = $('div.js_question-wrapper:contains("Where do you live?") input');
if ($inputQ1.val() !== 'Grand-Rosiere') {
return;
}
- var $inputQ2 = $('div.js_question-wrapper:contains("When is your date of birth ?") input');
+ var $inputQ2 = $('div.js_question-wrapper:contains("When is your date of birth?") input');
if ($inputQ2.val() !== '05/05/1980') {
return;
}
- var $inputQ3 = $('div.js_question-wrapper:contains("How frequently do you buy products online ?") label:contains("Once a week") input');
+ var $inputQ3 = $('div.js_question-wrapper:contains("How frequently do you buy products online?") label:contains("Once a week") input');
if (!$inputQ3.is(':checked')) {
return;
}
- var $inputQ4 = $('div.js_question-wrapper:contains("How many times did you order products on our website ?") input');
+ var $inputQ4 = $('div.js_question-wrapper:contains("How many times did you order products on our website?") input');
if ($inputQ4.val() !== '42.0') {
return;
}
diff --git a/addons/survey/tests/test_certification_badge.py b/addons/survey/tests/test_certification_badge.py
index f2103f04758..d06268bc53a 100644
--- a/addons/survey/tests/test_certification_badge.py
+++ b/addons/survey/tests/test_certification_badge.py
@@ -144,9 +144,9 @@ class TestCertificationBadge(common.TestSurveyCommon):
with self.assertRaises(AccessError):
self.certification_badge.with_user(self.user_emp).write({'description': "I'm a dude who think that has every right on the Iron Throne"})
with self.assertRaises(AccessError):
- self.certification_badge.with_user(self.user_portal).write({'description': "Guy, you just can't do that !"})
+ self.certification_badge.with_user(self.user_portal).write({'description': "Guy, you just can't do that!"})
with self.assertRaises(AccessError):
- self.certification_badge.with_user(self.user_public).write({'description': "What did you expect ? Schwepps !"})
+ self.certification_badge.with_user(self.user_public).write({'description': "What did you expect ? Schwepps!"})
def test_badge_configuration_multi(self):
vals = {
diff --git a/addons/survey/tests/test_survey.py b/addons/survey/tests/test_survey.py
index 39103b204aa..de2fef2cd55 100644
--- a/addons/survey/tests/test_survey.py
+++ b/addons/survey/tests/test_survey.py
@@ -100,7 +100,7 @@ class TestSurveyInternals(common.TestSurveyCommon):
validation_min_date='2015-03-20', validation_max_date='2015-03-25', validation_error_msg='ValidationError')
self.assertEqual(
- question.validate_question('Is Alfred an answer ?'),
+ question.validate_question('Is Alfred an answer?'),
{question.id: _('This is not a date')}
)
@@ -126,7 +126,7 @@ class TestSurveyInternals(common.TestSurveyCommon):
validation_min_float_value=2.2, validation_max_float_value=3.3, validation_error_msg='ValidationError')
self.assertEqual(
- question.validate_question('Is Alfred an answer ?'),
+ question.validate_question('Is Alfred an answer?'),
{question.id: _('This is not a number')}
)
@@ -246,7 +246,7 @@ class TestSurveyInternals(common.TestSurveyCommon):
return survey.question_ids.filtered(lambda q: q.title == title)[0]
# Create the survey questions (! texts of the questions must be unique as they are used to query them)
- q_is_vegetarian_text = 'Are you vegetarian ?'
+ q_is_vegetarian_text = 'Are you vegetarian?'
q_is_vegetarian = self._add_question(
self.page_0, q_is_vegetarian_text, 'multiple_choice', survey_id=self.survey.id,
sequence=100, labels=[{'value': 'Yes'}, {'value': 'No'}])
@@ -300,7 +300,7 @@ class TestSurveyInternals(common.TestSurveyCommon):
@users('survey_manager')
def test_unlink_triggers(self):
# Create the survey questions
- q_is_vegetarian_text = 'Are you vegetarian ?'
+ q_is_vegetarian_text = 'Are you vegetarian?'
q_is_vegetarian = self._add_question(
self.page_0, q_is_vegetarian_text, 'multiple_choice', survey_id=self.survey.id,
sequence=100, labels=[{'value': 'Yes'}, {'value': 'No'}])
diff --git a/addons/survey/tests/test_survey_ui_feedback.py b/addons/survey/tests/test_survey_ui_feedback.py
index 0ae38f8b967..28b1b0f59c1 100644
--- a/addons/survey/tests/test_survey_ui_feedback.py
+++ b/addons/survey/tests/test_survey_ui_feedback.py
@@ -26,17 +26,17 @@ class TestUiFeedback(HttpCaseWithUserDemo):
'is_page': True,
'description': """This section is about general information about you. Answering them helps qualifying your answers.
""",
}), (0, 0, {
- 'title': 'Where do you live ?',
+ 'title': 'Where do you live?',
'sequence': 2,
'question_type': 'char_box',
'constr_mandatory': False,
}), (0, 0, {
- 'title': 'When is your date of birth ?',
+ 'title': 'When is your date of birth?',
'sequence': 3,
'question_type': 'date',
'description': False,
}), (0, 0, {
- 'title': 'How frequently do you buy products online ?',
+ 'title': 'How frequently do you buy products online?',
'sequence': 4,
'question_type': 'simple_choice',
'comments_allowed': True,
@@ -60,7 +60,7 @@ class TestUiFeedback(HttpCaseWithUserDemo):
'sequence': 5,
})],
}), (0, 0, {
- 'title': 'How many times did you order products on our website ?',
+ 'title': 'How many times did you order products on our website?',
'sequence': 5,
'question_type': 'numerical_box',
'constr_mandatory': True,
@@ -71,7 +71,7 @@ class TestUiFeedback(HttpCaseWithUserDemo):
'question_type': False,
'description': """This section is about our eCommerce experience itself.
""",
}), (0, 0, {
- 'title': 'Which of the following words would you use to describe our products ?',
+ 'title': 'Which of the following words would you use to describe our products?',
'sequence': 7,
'question_type': 'multiple_choice',
'constr_mandatory': True,
@@ -107,7 +107,7 @@ class TestUiFeedback(HttpCaseWithUserDemo):
'sequence': 9,
})],
}), (0, 0, {
- 'title': 'What do your think about our new eCommerce ?',
+ 'title': 'What do your think about our new eCommerce?',
'sequence': 8,
'question_type': 'matrix',
'matrix_subtype': 'multiple',
@@ -142,7 +142,7 @@ class TestUiFeedback(HttpCaseWithUserDemo):
'sequence': 5,
})],
}), (0, 0, {
- 'title': 'Do you have any other comments, questions, or concerns ?',
+ 'title': 'Do you have any other comments, questions, or concerns?',
'sequence': 9,
'question_type': 'text_box',
'constr_mandatory': False,
diff --git a/addons/survey/views/survey_templates_management.xml b/addons/survey/views/survey_templates_management.xml
index 18754a4ac08..99b820863ca 100644
--- a/addons/survey/views/survey_templates_management.xml
+++ b/addons/survey/views/survey_templates_management.xml
@@ -66,7 +66,7 @@
survey expired
-
This survey is now closed. Thank you for your interest !
+
This survey is now closed. Thank you for your interest!
diff --git a/addons/test_event_full/static/src/js/tours/wevent_register_tour.js b/addons/test_event_full/static/src/js/tours/wevent_register_tour.js
index c8367521231..6462204278c 100644
--- a/addons/test_event_full/static/src/js/tours/wevent_register_tour.js
+++ b/addons/test_event_full/static/src/js/tours/wevent_register_tour.js
@@ -164,7 +164,7 @@ registry.category("web_tour.tours").add('wevent_register', {
browseTalksSteps,
discoverTalkSteps('Live Testimonial', false, false, false),
browseTalksSteps,
- discoverTalkSteps('Our Last Day Together !', true, false, true),
+ discoverTalkSteps('Our Last Day Together!', true, false, true),
browseMeetSteps,
discoverRoomSteps('Best wood for furniture'),
registerSteps,
diff --git a/addons/test_event_full/tests/common.py b/addons/test_event_full/tests/common.py
index 3b748164c19..d3bf3aa5eac 100644
--- a/addons/test_event_full/tests/common.py
+++ b/addons/test_event_full/tests/common.py
@@ -433,7 +433,7 @@ class TestWEventCommon(HttpCaseWithUserDemo, HttpCaseWithUserPortal, MockVisitor
'partner_id': self.event_speaker.id,
})
self.track_2 = self.env['event.track'].create({
- 'name': 'Our Last Day Together !',
+ 'name': 'Our Last Day Together!',
'event_id': self.event.id,
'stage_id': self.env.ref('website_event_track.event_track_stage3').id,
'date': self.reference_now + timedelta(days=1),
diff --git a/addons/test_mass_mailing/data/mail_test_data.py b/addons/test_mass_mailing/data/mail_test_data.py
index 92183d04ffc..6e50d93375e 100644
--- a/addons/test_mass_mailing/data/mail_test_data.py
+++ b/addons/test_mass_mailing/data/mail_test_data.py
@@ -16,7 +16,7 @@ Message-ID: {msg_id}
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
-I would gladly answer to your mass mailing !
+I would gladly answer to your mass mailing!
--
Your Dear Customer
@@ -31,7 +31,7 @@ Content-Transfer-Encoding: quoted-printable
=20
=20
- I would gladly answer to your mass mailing !
+ I would gladly answer to your mass mailing!
--
Your Dear Customer
diff --git a/addons/utm/models/utm_tag.py b/addons/utm/models/utm_tag.py
index 6a3b5abaed3..ba0516872d6 100644
--- a/addons/utm/models/utm_tag.py
+++ b/addons/utm/models/utm_tag.py
@@ -22,5 +22,5 @@ class UtmTag(models.Model):
help='Tag color. No color means no display in kanban to distinguish internal tags from public categorization tags.')
_sql_constraints = [
- ('name_uniq', 'unique (name)', "Tag name already exists !"),
+ ('name_uniq', 'unique (name)', "Tag name already exists!"),
]
diff --git a/addons/web/static/lib/qweb/qweb-benchmark.xml b/addons/web/static/lib/qweb/qweb-benchmark.xml
index a499b4f13c5..ee977608dfc 100644
--- a/addons/web/static/lib/qweb/qweb-benchmark.xml
+++ b/addons/web/static/lib/qweb/qweb-benchmark.xml
@@ -32,7 +32,7 @@
* :
Ok this is good !
- Hi there !
+ Hi there!
[ ]
diff --git a/addons/web/static/src/views/calendar/calendar_controller.js b/addons/web/static/src/views/calendar/calendar_controller.js
index a85ea4399bd..c0e655cd1dc 100644
--- a/addons/web/static/src/views/calendar/calendar_controller.js
+++ b/addons/web/static/src/views/calendar/calendar_controller.js
@@ -199,7 +199,7 @@ export class CalendarController extends Component {
deleteRecord(record) {
this.displayDialog(ConfirmationDialog, {
title: this.env._t("Confirmation"),
- body: this.env._t("Are you sure you want to delete this record ?"),
+ body: this.env._t("Are you sure you want to delete this record?"),
confirm: () => {
this.model.unlinkRecord(record.id);
},
diff --git a/addons/web/static/src/views/fields/many2one/many2one_field.js b/addons/web/static/src/views/fields/many2one/many2one_field.js
index e73f0fc6cf5..55479b9d582 100644
--- a/addons/web/static/src/views/fields/many2one/many2one_field.js
+++ b/addons/web/static/src/views/fields/many2one/many2one_field.js
@@ -253,7 +253,7 @@ export class Many2OneField extends Component {
browser.navigator.vibrate(100);
}
} else {
- this.notification.add(this.env._t("Please, scan again !"), {
+ this.notification.add(this.env._t("Please, scan again!"), {
type: "warning",
});
}
diff --git a/addons/web/static/tests/views/form/form_view_tests.js b/addons/web/static/tests/views/form/form_view_tests.js
index d330ffc762e..0f586a1cbf3 100644
--- a/addons/web/static/tests/views/form/form_view_tests.js
+++ b/addons/web/static/tests/views/form/form_view_tests.js
@@ -13316,5 +13316,4 @@ QUnit.module("Views", (hooks) => {
assert.verifySteps(['danger:Please click on the "save" button first']);
}
);
-
});
diff --git a/addons/web_editor/static/src/components/media_dialog/file_selector.js b/addons/web_editor/static/src/components/media_dialog/file_selector.js
index 61e8bdafd49..15a9d065c37 100644
--- a/addons/web_editor/static/src/components/media_dialog/file_selector.js
+++ b/addons/web_editor/static/src/components/media_dialog/file_selector.js
@@ -60,7 +60,7 @@ export class Attachment extends Component {
remove() {
this.dialogs.add(ConfirmationDialog, {
- body: this.env._t("Are you sure you want to delete this file ?"),
+ body: this.env._t("Are you sure you want to delete this file?"),
confirm: async () => {
const prevented = await this.rpc('/web_editor/attachment/remove', {
ids: [this.props.id],
diff --git a/addons/web_editor/static/src/js/editor/snippets.editor.js b/addons/web_editor/static/src/js/editor/snippets.editor.js
index d6392b5eb37..e28d53de3c3 100644
--- a/addons/web_editor/static/src/js/editor/snippets.editor.js
+++ b/addons/web_editor/static/src/js/editor/snippets.editor.js
@@ -3791,7 +3791,7 @@ var SnippetsMenu = Widget.extend({
new Dialog(this, {
size: 'medium',
title: _t('Confirmation'),
- $content: $('' + _.str.sprintf(_t("Are you sure you want to delete the snippet: %s ?"), $snippet.attr('name')) + '
'),
+ $content: $('' + _.str.sprintf(_t("Are you sure you want to delete the snippet: %s?"), $snippet.attr('name')) + '
'),
buttons: [{
text: _t("Yes"),
close: true,
diff --git a/addons/website/models/website_visitor.py b/addons/website/models/website_visitor.py
index 27c61d775ac..5056f813c45 100644
--- a/addons/website/models/website_visitor.py
+++ b/addons/website/models/website_visitor.py
@@ -75,7 +75,7 @@ class WebsiteVisitor(models.Model):
create_date = fields.Datetime('First Connection', readonly=True)
last_connection_datetime = fields.Datetime('Last Connection', default=fields.Datetime.now, help="Last page view date", readonly=True)
time_since_last_action = fields.Char('Last action', compute="_compute_time_statistics", help='Time since last page view. E.g.: 2 minutes ago')
- is_connected = fields.Boolean('Is connected ?', compute='_compute_time_statistics', help='A visitor is considered as connected if his last page view was within the last 5 minutes.')
+ is_connected = fields.Boolean('Is connected?', compute='_compute_time_statistics', help='A visitor is considered as connected if his last page view was within the last 5 minutes.')
_sql_constraints = [
('access_token_unique', 'unique(access_token)', 'Access token should be unique.'),
diff --git a/addons/website/static/src/components/dialog/page_properties.xml b/addons/website/static/src/components/dialog/page_properties.xml
index ef54d19ef43..16b351bd37d 100644
--- a/addons/website/static/src/components/dialog/page_properties.xml
+++ b/addons/website/static/src/components/dialog/page_properties.xml
@@ -61,8 +61,8 @@
- Are you sure you want to delete those pages ?
- Are you sure you want to delete this page ?
+ Are you sure you want to delete those pages?
+ Are you sure you want to delete this page?
Don't forget to update all links referring to it.
diff --git a/addons/website/static/src/js/editor/snippets.options.js b/addons/website/static/src/js/editor/snippets.options.js
index a2ff423d40e..8df8c26b71c 100644
--- a/addons/website/static/src/js/editor/snippets.options.js
+++ b/addons/website/static/src/js/editor/snippets.options.js
@@ -1642,7 +1642,7 @@ options.registry.company_data = options.Class.extend({
var self = this;
var proto = options.registry.company_data.prototype;
- Dialog.confirm(this, _t("Do you want to edit the company data ?"), {
+ Dialog.confirm(this, _t("Do you want to edit the company data?"), {
confirm_callback: function () {
self.trigger_up('request_save', {
reload: false,
diff --git a/addons/website/static/src/js/utils.js b/addons/website/static/src/js/utils.js
index 2eaec0c490b..1e69f4f15c5 100644
--- a/addons/website/static/src/js/utils.js
+++ b/addons/website/static/src/js/utils.js
@@ -149,7 +149,7 @@ function prompt(options, _qweb) {
*
* Usage Ex:
*
- * website.prompt("What... is your quest ?").then(function (answer) {
+ * website.prompt("What... is your quest?").then(function (answer) {
* arthur.reply(answer || "To seek the Holy Grail.");
* });
*
diff --git a/addons/website/static/src/xml/website_form_editor.xml b/addons/website/static/src/xml/website_form_editor.xml
index e56a0fff30d..f5a5ef57eb7 100644
--- a/addons/website/static/src/xml/website_form_editor.xml
+++ b/addons/website/static/src/xml/website_form_editor.xml
@@ -256,7 +256,7 @@
t-att-name="field.name"
t-att-value="undefined"
t-att-required="field.required || field.modelRequired || None"
- placeholder="No matching record !"
+ placeholder="No matching record!"
disabled=""
/>
@@ -331,7 +331,7 @@
t-att-name="field.name"
t-att-value="undefined"
t-att-required="field.required || field.modelRequired || None"
- placeholder="No matching record !"
+ placeholder="No matching record!"
disabled=""
/>
diff --git a/addons/website/views/snippets/s_mega_menu_menus_logos.xml b/addons/website/views/snippets/s_mega_menu_menus_logos.xml
index ffc1b95c9a8..38c94498469 100644
--- a/addons/website/views/snippets/s_mega_menu_menus_logos.xml
+++ b/addons/website/views/snippets/s_mega_menu_menus_logos.xml
@@ -61,7 +61,7 @@
diff --git a/addons/website_blog/models/website_blog.py b/addons/website_blog/models/website_blog.py
index 624515f5aa6..b4808804bb0 100644
--- a/addons/website_blog/models/website_blog.py
+++ b/addons/website_blog/models/website_blog.py
@@ -130,7 +130,7 @@ class BlogTagCategory(models.Model):
tag_ids = fields.One2many('blog.tag', 'category_id', string='Tags')
_sql_constraints = [
- ('name_uniq', 'unique (name)', "Tag category already exists !"),
+ ('name_uniq', 'unique (name)', "Tag category already exists!"),
]
@@ -145,7 +145,7 @@ class BlogTag(models.Model):
post_ids = fields.Many2many('blog.post', string='Posts')
_sql_constraints = [
- ('name_uniq', 'unique (name)', "Tag name already exists !"),
+ ('name_uniq', 'unique (name)', "Tag name already exists!"),
]
diff --git a/addons/website_crm_partner_assign/models/crm_lead.py b/addons/website_crm_partner_assign/models/crm_lead.py
index 09bc5227bdd..232b07328be 100644
--- a/addons/website_crm_partner_assign/models/crm_lead.py
+++ b/addons/website_crm_partner_assign/models/crm_lead.py
@@ -267,7 +267,7 @@ class CrmLead(models.Model):
self = self.sudo()
if not (values['contact_name'] and values['description'] and values['title']):
return {
- 'errors': _('All fields are required !')
+ 'errors': _('All fields are required!')
}
tag_own = self.env.ref('website_crm_partner_assign.tag_portal_lead_own_opp', False)
values = {
diff --git a/addons/website_event/data/event_demo.xml b/addons/website_event/data/event_demo.xml
index 7c9c529b938..5468167445b 100644
--- a/addons/website_event/data/event_demo.xml
+++ b/addons/website_event/data/event_demo.xml
@@ -46,14 +46,14 @@
{"background-image": "url('/website_event/static/src/img/event_cover_1.jpg')", "resize_class": "o_record_has_cover o_half_screen_height", "opacity": "0.4"}
-
Join us for the greatest ballon race of all times !
+
Join us for the greatest ballon race of all times!
The best aeronauts of the world will gather on this event to offer you the most spectacular show.
Around one hundred ballons will simultaneously take flight and turn the sky into a beautiful canvas of colours.
-
This is the perfect place for spending a nice day with your family, we guarantee you will be leaving with beautiful everlasting memories !
+
This is the perfect place for spending a nice day with your family, we guarantee you will be leaving with beautiful everlasting memories!
For any additional information, please contact us at events@yourcompany.com .
We reserve the right to cancel, re-name or re-locate the event or change the dates on which it is held in case the weather fails us.
-
The safety of our attendees and our aeronauts comes first !
+
The safety of our attendees and our aeronauts comes first!
@@ -107,7 +107,7 @@
{"background-image": "url('/website_event/static/src/img/event_cover_3.jpg')", "resize_class": "o_record_has_cover o_half_screen_height", "opacity": "0.4"}
-
Here it is, the 12th edition of our Live Musical Festival !
+
Here it is, the 12th edition of our Live Musical Festival!
Once again we assembled the most legendary bands in Rock history.
Bands like Bar Fighters, Led Slippers and Link Floyd will offer you the show of the century during our three day event.
This is the perfect place for spending a nice time with your friends while listening to some of the most iconic rock songs of all times!
@@ -131,10 +131,10 @@
{"background-image": "url('/website_event/static/src/img/event_cover_5.jpg')", "resize_class": "o_record_has_cover o_half_screen_height", "opacity": "0.4"}
-
Seasoned Hockey Fans and curious people, this tournament is for you !
+
Seasoned Hockey Fans and curious people, this tournament is for you!
The best Hockey teams of the country will compete for the national Hockey trophy.
If you don't know anything about Hockey, this is a great introduction to this wonderful sport as you will will be able to see some training process and also have some time
- to chat with experienced players and trainers once the tournament is over !
+ to chat with experienced players and trainers once the tournament is over!
For any additional information, please contact us at events@yourcompany.com .
diff --git a/addons/website_event/data/res_partner_demo.xml b/addons/website_event/data/res_partner_demo.xml
index c6bae7b287e..b33c390c4fc 100644
--- a/addons/website_event/data/res_partner_demo.xml
+++ b/addons/website_event/data/res_partner_demo.xml
@@ -13,7 +13,7 @@
Happy to be Sponsor
As a team, we are happy to contribute to this event.
-
Come see us live, we hope to meet you !
+
Come see us live, we hope to meet you!
Discover more
@@ -34,7 +34,7 @@
Happy to be Sponsor
As a team, we are happy to contribute to this event.
-
Come see us live, we hope to meet you !
+
Come see us live, we hope to meet you!
Discover more
@@ -55,7 +55,7 @@
Happy to be Sponsor
As a team, we are happy to contribute to this event.
-
Come see us live, we hope to meet you !
+
Come see us live, we hope to meet you!
Discover more
@@ -76,7 +76,7 @@
Happy to be Sponsor
As a team, we are happy to contribute to this event.
-
Come see us live, we hope to meet you !
+
Come see us live, we hope to meet you!
Discover more
@@ -97,7 +97,7 @@
Happy to be Sponsor
As a team, we are happy to contribute to this event.
-
Come see us live, we hope to meet you !
+
Come see us live, we hope to meet you!
Discover more
@@ -118,7 +118,7 @@
Happy to be Sponsor
As a team, we are happy to contribute to this event.
-
Come see us live, we hope to meet you !
+
Come see us live, we hope to meet you!
Discover more
@@ -139,7 +139,7 @@
Happy to be Sponsor
As a team, we are happy to contribute to this event.
-
Come see us live, we hope to meet you !
+
Come see us live, we hope to meet you!
Discover more
@@ -160,7 +160,7 @@
Happy to be Sponsor
As a team, we are happy to contribute to this event.
-
Come see us live, we hope to meet you !
+
Come see us live, we hope to meet you!
Discover more
@@ -181,7 +181,7 @@
Happy to be Sponsor
As a team, we are happy to contribute to this event.
-
Come see us live, we hope to meet you !
+
Come see us live, we hope to meet you!
Discover more
@@ -202,7 +202,7 @@
Happy to be Sponsor
As a team, we are happy to contribute to this event.
-
Come see us live, we hope to meet you !
+
Come see us live, we hope to meet you!
Discover more
diff --git a/addons/website_event_exhibitor/controllers/website_event_main.py b/addons/website_event_exhibitor/controllers/website_event_main.py
index f94e21d934a..e182089dde2 100644
--- a/addons/website_event_exhibitor/controllers/website_event_main.py
+++ b/addons/website_event_exhibitor/controllers/website_event_main.py
@@ -18,7 +18,7 @@ class WebsiteEventController(main.WebsiteEventController):
date_begin = format_datetime(event.date_begin, format="medium", tzinfo=event.date_tz)
values["toast_message"] = (
- _('The event %s starts on %s (%s). \nJoin us there to meet %s !')
+ _('The event %s starts on %s (%s). \nJoin us there to meet %s!')
% (event.name, date_begin, event.date_tz, sponsor.partner_name)
)
diff --git a/addons/website_event_exhibitor/data/event_sponsor_demo.xml b/addons/website_event_exhibitor/data/event_sponsor_demo.xml
index 6bb840446eb..288d755bf52 100644
--- a/addons/website_event_exhibitor/data/event_sponsor_demo.xml
+++ b/addons/website_event_exhibitor/data/event_sponsor_demo.xml
@@ -30,7 +30,7 @@
http://www.wood-corner.example.com
- Catchy sentence !
+ Catchy sentence!
sponsor
- Reducing the ecological footprint with wood ?
+ Reducing the ecological footprint with wood?
Share your tips to reduce your ecological footprint using wood.
ecologist(s)
diff --git a/addons/website_event_meet/static/src/js/website_event_meeting_room.js b/addons/website_event_meet/static/src/js/website_event_meeting_room.js
index 39c11728415..bcbe141354a 100644
--- a/addons/website_event_meet/static/src/js/website_event_meeting_room.js
+++ b/addons/website_event_meet/static/src/js/website_event_meeting_room.js
@@ -34,7 +34,7 @@ publicWidget.registry.websiteEventMeetingRoom = publicWidget.Widget.extend({
Dialog.confirm(
this,
- _t("Are you sure you want to close this room ?"),
+ _t("Are you sure you want to close this room?"),
{
confirm_callback: async () => {
await this._rpc({
@@ -61,7 +61,7 @@ publicWidget.registry.websiteEventMeetingRoom = publicWidget.Widget.extend({
event.stopPropagation();
Dialog.confirm(
this,
- _t("Are you sure you want to duplicate this room ?"),
+ _t("Are you sure you want to duplicate this room?"),
{
confirm_callback: async () => {
await this._rpc({
diff --git a/addons/website_event_meet/views/event_meet_templates_list.xml b/addons/website_event_meet/views/event_meet_templates_list.xml
index 4b0ed69c46c..7f624873af7 100644
--- a/addons/website_event_meet/views/event_meet_templates_list.xml
+++ b/addons/website_event_meet/views/event_meet_templates_list.xml
@@ -167,7 +167,7 @@
Start a topic
-
Want to create your own discussion room ?
+
Want to create your own discussion room?
(
).
-
Join us there to chat about !
+
Join us there to chat about !
- Oops! This room is full ! Come back later to have a chat with us!
+ Oops! This room is full! Come back later to have a chat with us!
diff --git a/addons/website_event_questions/data/event_question_demo.xml b/addons/website_event_questions/data/event_question_demo.xml
index 620c1c900ac..91fbb6e44c2 100644
--- a/addons/website_event_questions/data/event_question_demo.xml
+++ b/addons/website_event_questions/data/event_question_demo.xml
@@ -147,7 +147,7 @@
- How did you hear about us ?
+ How did you hear about us?
text_box
diff --git a/addons/website_event_track/data/event_track_demo.xml b/addons/website_event_track/data/event_track_demo.xml
index 0840525a015..4e015dd8c14 100644
--- a/addons/website_event_track/data/event_track_demo.xml
+++ b/addons/website_event_track/data/event_track_demo.xml
@@ -478,7 +478,7 @@
- Who's OpenWood anyway ?
+ Who's OpenWood anyway?
0
@@ -663,7 +663,7 @@
- Our Last Day Together !
+ Our Last Day Together!
1
diff --git a/addons/website_event_track/models/event_track_tag.py b/addons/website_event_track/models/event_track_tag.py
index 6efcba1e138..5358cff2082 100644
--- a/addons/website_event_track/models/event_track_tag.py
+++ b/addons/website_event_track/models/event_track_tag.py
@@ -23,5 +23,5 @@ class TrackTag(models.Model):
category_id = fields.Many2one('event.track.tag.category', string="Category", ondelete="set null")
_sql_constraints = [
- ('name_uniq', 'unique (name)', "Tag name already exists !"),
+ ('name_uniq', 'unique (name)', "Tag name already exists!"),
]
diff --git a/addons/website_event_track/views/event_track_views.xml b/addons/website_event_track/views/event_track_views.xml
index 9795ce65c64..b25e2c99fc3 100644
--- a/addons/website_event_track/views/event_track_views.xml
+++ b/addons/website_event_track/views/event_track_views.xml
@@ -220,7 +220,7 @@
-
- What will we talk about during this event ?
+ What will we talk about during this event?
1
@@ -16,7 +16,7 @@
1
1
- You're really smart !
+ You're really smart!
@@ -32,19 +32,19 @@
- Where does lumber comes from ?
+ Where does lumber comes from?
2
- Trees !
+ Trees!
1
1
- Stores !
+ Stores!
2
Lumbers need first to be cut from trees!
@@ -75,7 +75,7 @@
- What kind of tool are needed to secure your lumber ?
+ What kind of tool are needed to secure your lumber?
2
@@ -105,7 +105,7 @@
- What kind of wall is transformed here ?
+ What kind of wall is transformed here?
1
diff --git a/addons/website_event_track_quiz/static/src/js/event_quiz.js b/addons/website_event_track_quiz/static/src/js/event_quiz.js
index bee0cd44715..e87fdbe2a23 100644
--- a/addons/website_event_track_quiz/static/src/js/event_quiz.js
+++ b/addons/website_event_track_quiz/static/src/js/event_quiz.js
@@ -84,7 +84,7 @@ var Quiz = publicWidget.Widget.extend({
_alertShow: function (alertCode) {
var message = _t('There was an error validating this quiz.');
if (alertCode === 'quiz_incomplete') {
- message = _t('All questions must be answered !');
+ message = _t('All questions must be answered!');
} else if (alertCode === 'quiz_done') {
message = _t('This quiz is already done. Retaking it is not possible.');
}
diff --git a/addons/website_forum/models/forum.py b/addons/website_forum/models/forum.py
index 8f255debcb2..1fd226b19ea 100644
--- a/addons/website_forum/models/forum.py
+++ b/addons/website_forum/models/forum.py
@@ -1083,7 +1083,7 @@ class Vote(models.Model):
recipient_id = fields.Many2one('res.users', string='To', related="post_id.create_uid", store=True, readonly=False)
_sql_constraints = [
- ('vote_uniq', 'unique (post_id, user_id)', "Vote already exists !"),
+ ('vote_uniq', 'unique (post_id, user_id)', "Vote already exists!"),
]
def _get_karma_value(self, old_vote, new_vote, up_karma, down_karma):
@@ -1191,7 +1191,7 @@ class Tags(models.Model):
posts_count = fields.Integer('Number of Posts', compute='_get_posts_count', store=True)
_sql_constraints = [
- ('name_uniq', 'unique (name, forum_id)', "Tag name already exists !"),
+ ('name_uniq', 'unique (name, forum_id)', "Tag name already exists!"),
]
@api.depends("post_ids.tag_ids", "post_ids.state")
diff --git a/addons/website_forum/static/src/xml/public_templates.xml b/addons/website_forum/static/src/xml/public_templates.xml
index 8ff9f41855a..95458e9a303 100644
--- a/addons/website_forum/static/src/xml/public_templates.xml
+++ b/addons/website_forum/static/src/xml/public_templates.xml
@@ -42,7 +42,7 @@
On average, 45% of questions shared on social networks get an answer within
5 hours. Questions shared on two social networks have 65% more chance to get an
- answer !
+ answer!
You can share your question once it has been validated
diff --git a/addons/website_forum/views/website_forum.xml b/addons/website_forum/views/website_forum.xml
index b63a09939b6..26aba760824 100644
--- a/addons/website_forum/views/website_forum.xml
+++ b/addons/website_forum/views/website_forum.xml
@@ -1047,7 +1047,7 @@
This post is currently awaiting moderation and it's not published yet.
- Do you want Accept or Reject this post ?
+ Do you want
Accept or
Reject this post?
Accept
diff --git a/addons/website_mass_mailing/views/snippets_templates.xml b/addons/website_mass_mailing/views/snippets_templates.xml
index 9e375cfa615..14552219114 100644
--- a/addons/website_mass_mailing/views/snippets_templates.xml
+++ b/addons/website_mass_mailing/views/snippets_templates.xml
@@ -131,7 +131,7 @@
- Thank you for subscribing !
+ Thank you for subscribing!
You will now be informed about the latest news.
diff --git a/addons/website_partner/data/website_partner_demo.xml b/addons/website_partner/data/website_partner_demo.xml
index 42dab020d9f..25974237da0 100644
--- a/addons/website_partner/data/website_partner_demo.xml
+++ b/addons/website_partner/data/website_partner_demo.xml
@@ -149,7 +149,7 @@ Firstly, you have a software specialist, secondly, a hardware and performance sp
… Your individual requirements are mapped into the standard software
… professional design of the optimal sizing for your system landscape
… Understanding of commercial and logistical processes in your business and engaging your staff and efficient use of resources.
-Above all, you need reliable and professional advisors who will listen to your challenges seriously and implement adapted solutions. Welcome to Federal !]]>
+Above all, you need reliable and professional advisors who will listen to your challenges seriously and implement adapted solutions. Welcome to Federal!]]>
diff --git a/addons/website_sale/models/product_public_category.py b/addons/website_sale/models/product_public_category.py
index 4511c1e00fe..b32eef093d1 100644
--- a/addons/website_sale/models/product_public_category.py
+++ b/addons/website_sale/models/product_public_category.py
@@ -35,7 +35,7 @@ class ProductPublicCategory(models.Model):
@api.constrains('parent_id')
def check_parent_id(self):
if not self._check_recursion():
- raise ValueError(_('Error ! You cannot create recursive categories.'))
+ raise ValueError(_('Error! You cannot create recursive categories.'))
def name_get(self):
res = []
diff --git a/addons/website_sale/static/src/js/website_sale.editor.js b/addons/website_sale/static/src/js/website_sale.editor.js
index 33b491745ee..47b58a678da 100644
--- a/addons/website_sale/static/src/js/website_sale.editor.js
+++ b/addons/website_sale/static/src/js/website_sale.editor.js
@@ -388,7 +388,7 @@ options.registry.WebsiteSaleProductsItem = options.Class.extend({
*/
async deleteRibbon(previewMode, widgetValue, params) {
const save = await new Promise(resolve => {
- Dialog.confirm(this, _t('Are you sure you want to delete this badge ?'), {
+ Dialog.confirm(this, _t('Are you sure you want to delete this badge?'), {
confirm_callback: () => resolve(true),
cancel_callback: () => resolve(false),
});
diff --git a/addons/website_slides/data/mail_templates.xml b/addons/website_slides/data/mail_templates.xml
index 5e620461a61..4d7c2413c72 100644
--- a/addons/website_slides/data/mail_templates.xml
+++ b/addons/website_slides/data/mail_templates.xml
@@ -35,7 +35,7 @@
- Enjoy this exclusive content !
+ Enjoy this exclusive content!
diff --git a/addons/website_slides/data/slide_channel_demo.xml b/addons/website_slides/data/slide_channel_demo.xml
index 8f83af21ff8..78bf078a86e 100644
--- a/addons/website_slides/data/slide_channel_demo.xml
+++ b/addons/website_slides/data/slide_channel_demo.xml
@@ -16,7 +16,7 @@
(4, ref('website_slides.slide_channel_tag_other_0')),
(4, ref('website_slides.slide_channel_tag_other_2'))]"/>
-
Learn the basics of gardening !
+
Learn the basics of gardening!
@@ -59,7 +59,7 @@
- Choose your wood !
+ Choose your wood!
public
training
diff --git a/addons/website_slides/data/slide_slide_demo.xml b/addons/website_slides/data/slide_slide_demo.xml
index 1eea9658457..572f1f9eee5 100644
--- a/addons/website_slides/data/slide_slide_demo.xml
+++ b/addons/website_slides/data/slide_slide_demo.xml
@@ -37,7 +37,7 @@
5
1
- Interesting information about home gardening. Keep it close !
+ Interesting information about home gardening. Keep it close!
Mighty Carrots
@@ -79,10 +79,10 @@
0
1
- Show your newly mastered knowledge !
+ Show your newly mastered knowledge!
- What is a strawberry ?
+ What is a strawberry?
1
@@ -90,25 +90,25 @@
A fruit
1
-
Correct ! A strawberry is a fruit because it's the product of a tree.
+
Correct! A strawberry is a fruit because it's the product of a tree.
A vegetable
2
- Incorrect ! A strawberry is not a vegetable.
+ Incorrect! A strawberry is not a vegetable.
A table
3
- Incorrect ! A table is a piece of furniture.
+ Incorrect! A table is a piece of furniture.
- What is the best tool to dig a hole for your plants ?
+ What is the best tool to dig a hole for your plants?
2
@@ -116,14 +116,14 @@
A shovel
1
-
Correct ! A shovel is the perfect tool to dig a hole.
+
Correct! A shovel is the perfect tool to dig a hole.
A spoon
2
- Incorrect ! Good luck digging a hole with a spoon...
+ Incorrect! Good luck digging a hole with a spoon...
@@ -264,7 +264,7 @@
5
1
-
We had a little chat with Harry Potted, sure he had interesting things to say !
+
We had a little chat with Harry Potted, sure he had interesting things to say!
url
@@ -279,7 +279,7 @@
- Do you think Harry Potted has a good name ?
+ Do you think Harry Potted has a good name?
1
@@ -287,18 +287,18 @@
Yes
1
-
Correct !
+
Correct!
No
2
- Incorrect !
+ Incorrect!
- Did you read the whole article ?
+ Did you read the whole article?
2
@@ -306,21 +306,21 @@
Yes
1
-
Correct ! Congratulations you have time to loose
+
Correct! Congratulations you have time to loose
No
2
- Incorrect ! You really should read it.
+ Incorrect! You really should read it.
- What was the question again ?
+ What was the question again?
3
- Incorrect ! Seriously ?
+ Incorrect! Seriously?
@@ -414,7 +414,7 @@
- Do you make beams out of lemon trees ?
+ Do you make beams out of lemon trees?
1
@@ -422,18 +422,18 @@
Yes
1
-
Incorrect !
+
Incorrect!
No
2
- Correct !
+ Correct!
- Do you make lemons out of beams ?
+ Do you make lemons out of beams?
2
@@ -441,21 +441,21 @@
Yes
1
-
Incorrect !
+
Incorrect!
No
2
- Correct !
+ Correct!
And also bananas
3
- Incorrect ! of course not ...
+ Incorrect! of course not ...
@@ -542,7 +542,7 @@
-
+
@@ -658,7 +658,7 @@
0
0.5
-
Which wood type is best for my solid wood furniture? That's the question we help you answer in this video !
+
Which wood type is best for my solid wood furniture? That's the question we help you answer in this video!
@@ -717,7 +717,7 @@
- Hand on !
+ Hand on!
3
@@ -787,7 +787,7 @@
From a piece of wood to a fully functional furniture, step by step.
- Test your knowledge !
+ Test your knowledge!
6
quiz
@@ -797,10 +797,10 @@
0
0.5
- Test your knowledge !
+ Test your knowledge!
- Do you want to reply correctly ?
+ Do you want to reply correctly?
1
@@ -808,14 +808,14 @@
Yes
1
-
Correct ! You did it !
+
Correct! You did it!
No
2
- Incorrect ! You better think twice...
+ Incorrect! You better think twice...
diff --git a/addons/website_slides/data/slide_user_demo.xml b/addons/website_slides/data/slide_user_demo.xml
index cc8b45a6219..2c12cb64073 100644
--- a/addons/website_slides/data/slide_user_demo.xml
+++ b/addons/website_slides/data/slide_user_demo.xml
@@ -53,14 +53,14 @@
comment
-
I fear beginners could be lost... Isn't it a bit harsh for a "basics" course ?
+
I fear beginners could be lost... Isn't it a bit harsh for a "basics" course?
- I fear beginners could be lost... Isn't it a bit harsh for a "basics" course ?
+ I fear beginners could be lost... Isn't it a bit harsh for a "basics" course?
3
@@ -70,7 +70,7 @@
comment
-
Back to basics and interesting. Just WOW !
+
Back to basics and interesting. Just WOW!
@@ -78,7 +78,7 @@
5
- Back to basics and interesting. Just WOW !
+ Back to basics and interesting. Just WOW!
@@ -167,7 +167,7 @@
comment
-
Interesting !
+
Interesting!
@@ -175,7 +175,7 @@
4
- Interesting !
+ Interesting!
diff --git a/addons/website_slides/static/src/js/slides_course_enroll_email.js b/addons/website_slides/static/src/js/slides_course_enroll_email.js
index 93438d7589b..077cf58ec94 100644
--- a/addons/website_slides/static/src/js/slides_course_enroll_email.js
+++ b/addons/website_slides/static/src/js/slides_course_enroll_email.js
@@ -35,7 +35,7 @@ var SlideEnrollDialog = Dialog.extend({
if (result.error) {
self.$element.replaceWith('' + result.error + '
');
} else if (result.done) {
- self.$element.replaceWith('' + _t('Request sent !') + '
');
+ self.$element.replaceWith('' + _t('Request sent!') + '
');
} else {
self.$element.replaceWith('' + _t('Unknown error, try again.') + '
');
}
diff --git a/addons/website_slides/static/src/js/slides_course_fullscreen_player.js b/addons/website_slides/static/src/js/slides_course_fullscreen_player.js
index 6850aee1bd3..708b52e5613 100644
--- a/addons/website_slides/static/src/js/slides_course_fullscreen_player.js
+++ b/addons/website_slides/static/src/js/slides_course_fullscreen_player.js
@@ -439,7 +439,7 @@
_onShareLinkCopy: function (ev) {
ev.preventDefault();
var $clipboardBtn = this.$('.o_clipboard_button');
- $clipboardBtn.tooltip({title: "Copied !", trigger: "manual", placement: "bottom"});
+ $clipboardBtn.tooltip({title: "Copied!", trigger: "manual", placement: "bottom"});
var self = this;
var clipboard = new ClipboardJS('.o_clipboard_button', {
target: function () {
diff --git a/addons/website_slides/static/src/js/slides_course_quiz.js b/addons/website_slides/static/src/js/slides_course_quiz.js
index d6f83524540..f37bdeab1ee 100644
--- a/addons/website_slides/static/src/js/slides_course_quiz.js
+++ b/addons/website_slides/static/src/js/slides_course_quiz.js
@@ -114,7 +114,7 @@
_showErrorMessage: function (errorCode) {
var message = _t('There was an error validating this quiz.');
if (errorCode === 'slide_quiz_incomplete') {
- message = _t('All questions must be answered !');
+ message = _t('All questions must be answered!');
} else if (errorCode === 'slide_quiz_done') {
message = _t('This quiz is already done. Retaking it is not possible.');
} else if (errorCode === 'public_user') {
diff --git a/addons/website_slides/static/src/js/slides_share.js b/addons/website_slides/static/src/js/slides_share.js
index 80ca5361e07..d961accd446 100644
--- a/addons/website_slides/static/src/js/slides_share.js
+++ b/addons/website_slides/static/src/js/slides_share.js
@@ -109,7 +109,7 @@ publicWidget.registry.websiteSlidesShare = publicWidget.Widget.extend({
_onShareLinkCopy: function (ev) {
ev.preventDefault();
var $clipboardBtn = $(ev.currentTarget);
- $clipboardBtn.tooltip({title: "Copied !", trigger: "manual", placement: "bottom"});
+ $clipboardBtn.tooltip({title: "Copied!", trigger: "manual", placement: "bottom"});
var self = this;
var clipboard = new ClipboardJS('#' + $clipboardBtn[0].id, {
target: function () {
@@ -141,7 +141,7 @@ publicWidget.registry.websiteSlidesEmbedShare = publicWidget.Widget.extend({
_onShareLinkCopy: function (ev) {
ev.preventDefault();
const $clipboardBtn = $(ev.currentTarget);
- $clipboardBtn.tooltip({title: "Copied !", trigger: "manual", placement: "bottom"});
+ $clipboardBtn.tooltip({title: "Copied!", trigger: "manual", placement: "bottom"});
const clipboard = new ClipboardJS('#' + $clipboardBtn[0].id, {
target: () => {
const share_embed_el = this.$('#wslides_share_embed_id_' + $clipboardBtn[0].id.split('id_')[1]);
diff --git a/addons/website_slides/static/src/xml/slide_course_join.xml b/addons/website_slides/static/src/xml/slide_course_join.xml
index 701eaba285c..9e1ee19e15b 100644
--- a/addons/website_slides/static/src/xml/slide_course_join.xml
+++ b/addons/website_slides/static/src/xml/slide_course_join.xml
@@ -13,7 +13,7 @@
-
Do you want to request access to this course ?
+
Do you want to request access to this course?
diff --git a/addons/website_slides/static/src/xml/slide_management.xml b/addons/website_slides/static/src/xml/slide_management.xml
index b3ab288ab61..199ae3cbe3b 100644
--- a/addons/website_slides/static/src/xml/slide_management.xml
+++ b/addons/website_slides/static/src/xml/slide_management.xml
@@ -3,13 +3,13 @@
-
Are you sure you want to archive this content ?
+
Are you sure you want to archive this content?
-
Are you sure you want to delete this category ?
+
Are you sure you want to delete this category?
diff --git a/addons/website_slides/static/src/xml/slide_quiz.xml b/addons/website_slides/static/src/xml/slide_quiz.xml
index ff5d2304219..033b88e7f3f 100644
--- a/addons/website_slides/static/src/xml/slide_quiz.xml
+++ b/addons/website_slides/static/src/xml/slide_quiz.xml
@@ -91,15 +91,15 @@
- Don't have an account ?
- Sign Up !
+ Don't have an account?
+ Sign Up!
Check your answers
-
Done !
+
Done!
+ XP
@@ -134,7 +134,7 @@
- You gained XP !
+ You gained XP !
You did it!
diff --git a/addons/website_slides/static/src/xml/slide_quiz_create.xml b/addons/website_slides/static/src/xml/slide_quiz_create.xml
index d6cae2fddcc..be134fc7da0 100644
--- a/addons/website_slides/static/src/xml/slide_quiz_create.xml
+++ b/addons/website_slides/static/src/xml/slide_quiz_create.xml
@@ -88,7 +88,7 @@
- Are you sure you want to delete this question : ?
+ Are you sure you want to delete this question: ?
diff --git a/addons/website_slides/static/src/xml/website_slides_upload.xml b/addons/website_slides/static/src/xml/website_slides_upload.xml
index a9790d8589e..fe9ec99cf9f 100644
--- a/addons/website_slides/static/src/xml/website_slides_upload.xml
+++ b/addons/website_slides/static/src/xml/website_slides_upload.xml
@@ -248,7 +248,7 @@
-
How to upload your videos ?
+
How to upload your videos?
On YouTube
First, upload your videos on YouTube and mark them as unlisted . This way, they will be secured.
What does unlisted means? The YouTube "unlisted" means it is a video which can be viewed only by the users with the link to it. Your video will never come up in the search results nor on your channel.
diff --git a/addons/website_slides/static/tests/tours/slides_course_member.js b/addons/website_slides/static/tests/tours/slides_course_member.js
index 3750fe3ca76..9a207399e9f 100644
--- a/addons/website_slides/static/tests/tours/slides_course_member.js
+++ b/addons/website_slides/static/tests/tours/slides_course_member.js
@@ -110,7 +110,7 @@ registry.category("web_tour.tours").add('course_member', {
trigger: '.o_wslides_js_lesson_quiz_submit'
}, {
// check that we have a properly motivational message to motivate us!
- trigger: '.o_wslides_quiz_modal_rank_motivational > div > div:contains("Reach the next rank and gain a very nice mug !")'
+ trigger: '.o_wslides_quiz_modal_rank_motivational > div > div:contains("Reach the next rank and gain a very nice mug!")'
}, {
trigger: 'a:contains("End course")'
},
diff --git a/addons/website_slides/views/slide_question_views.xml b/addons/website_slides/views/slide_question_views.xml
index d63255aa4bc..59d6d49b03d 100644
--- a/addons/website_slides/views/slide_question_views.xml
+++ b/addons/website_slides/views/slide_question_views.xml
@@ -8,7 +8,7 @@
-
+
diff --git a/addons/website_slides_forum/data/slide_channel_demo.xml b/addons/website_slides_forum/data/slide_channel_demo.xml
index 709ee614f66..21330d9cb71 100644
--- a/addons/website_slides_forum/data/slide_channel_demo.xml
+++ b/addons/website_slides_forum/data/slide_channel_demo.xml
@@ -16,7 +16,7 @@
- What is the best fertilizer for tulips ?
+ What is the best fertilizer for tulips?
2
@@ -25,7 +25,7 @@
- Re: What is the best fertilizer for tulips ?
+ Re: What is the best fertilizer for tulips?
You can use loam for tulips.
@@ -38,7 +38,7 @@
I have an oak in my garden since 1997 and I was wondering about the growth of this type of tree ?
- Is there a way to accelerate the process ?
+ Is there a way to accelerate the process?
diff --git a/odoo/addons/base/models/ir_mail_server.py b/odoo/addons/base/models/ir_mail_server.py
index be9d021a668..2f85bba85ef 100644
--- a/odoo/addons/base/models/ir_mail_server.py
+++ b/odoo/addons/base/models/ir_mail_server.py
@@ -244,7 +244,7 @@ class IrMailServer(models.Model):
# let UserErrors (messages) bubble up
raise e
except (UnicodeError, idna.core.InvalidCodepoint) as e:
- raise UserError(_("Invalid server name !\n %s", ustr(e)))
+ raise UserError(_("Invalid server name!\n %s", ustr(e)))
except (gaierror, timeout) as e:
raise UserError(_("No response received. Check server address and port number.\n %s", ustr(e)))
except smtplib.SMTPServerDisconnected as e:
diff --git a/odoo/addons/base/models/ir_model.py b/odoo/addons/base/models/ir_model.py
index a91b605f3be..f4ce7a2cf03 100644
--- a/odoo/addons/base/models/ir_model.py
+++ b/odoo/addons/base/models/ir_model.py
@@ -582,7 +582,7 @@ class IrModelFields(models.Model):
def _check_name(self):
for field in self:
if field.state == 'manual' and not field.name.startswith('x_'):
- raise ValidationError(_("Custom fields must have a name that starts with 'x_' !"))
+ raise ValidationError(_("Custom fields must have a name that starts with 'x_'!"))
try:
models.check_pg_name(field.name)
except ValidationError:
diff --git a/odoo/addons/base/models/ir_module.py b/odoo/addons/base/models/ir_module.py
index e8e2b9763bd..a05f4d50406 100644
--- a/odoo/addons/base/models/ir_module.py
+++ b/odoo/addons/base/models/ir_module.py
@@ -363,7 +363,7 @@ class Module(models.Model):
def _state_update(self, newstate, states_to_update, level=100):
if level < 1:
- raise UserError(_('Recursion error in modules dependencies !'))
+ raise UserError(_('Recursion error in modules dependencies!'))
# whether some modules are installed with demo data
demo = False
@@ -839,7 +839,7 @@ class Module(models.Model):
def _check(self):
for module in self:
if not module.description_html:
- _logger.warning('module %s: description is empty !', module.name)
+ _logger.warning('module %s: description is empty!', module.name)
def _get(self, name):
""" Return the (sudoed) `ir.module.module` record with the given name.
diff --git a/odoo/addons/base/models/ir_rule.py b/odoo/addons/base/models/ir_rule.py
index f98acd36ded..4d713e35712 100644
--- a/odoo/addons/base/models/ir_rule.py
+++ b/odoo/addons/base/models/ir_rule.py
@@ -29,7 +29,7 @@ class IrRule(models.Model):
_sql_constraints = [
('no_access_rights',
'CHECK (perm_read!=False or perm_write!=False or perm_create!=False or perm_unlink!=False)',
- 'Rule must have at least one checked access right !'),
+ 'Rule must have at least one checked access right!'),
]
@api.model
diff --git a/odoo/addons/base/models/ir_ui_view.py b/odoo/addons/base/models/ir_ui_view.py
index 67d48ab45b0..cd5a7e8462b 100644
--- a/odoo/addons/base/models/ir_ui_view.py
+++ b/odoo/addons/base/models/ir_ui_view.py
@@ -2613,7 +2613,7 @@ class Model(models.AbstractModel):
try:
arch = getattr(self, '_get_default_%s_view' % view_type)()
except AttributeError:
- raise UserError(_("No default view of type '%s' could be found !", view_type))
+ raise UserError(_("No default view of type '%s' could be found!", view_type))
return arch, view
@api.model
diff --git a/odoo/addons/base/models/report_paperformat.py b/odoo/addons/base/models/report_paperformat.py
index 3bdce5171ef..01dfaabd463 100644
--- a/odoo/addons/base/models/report_paperformat.py
+++ b/odoo/addons/base/models/report_paperformat.py
@@ -168,7 +168,7 @@ class report_paperformat(models.Model):
_description = "Paper Format Config"
name = fields.Char('Name', required=True)
- default = fields.Boolean('Default paper format ?')
+ default = fields.Boolean('Default paper format?')
format = fields.Selection([(ps['key'], ps['description']) for ps in PAPER_SIZES], 'Paper size', default='A4', help="Select Proper Paper size")
margin_top = fields.Float('Top Margin (mm)', default=40)
margin_bottom = fields.Float('Bottom Margin (mm)', default=20)
diff --git a/odoo/addons/base/models/res_company.py b/odoo/addons/base/models/res_company.py
index 48d94258ad6..2b9008d82ea 100644
--- a/odoo/addons/base/models/res_company.py
+++ b/odoo/addons/base/models/res_company.py
@@ -98,7 +98,7 @@ class Company(models.Model):
layout_background = fields.Selection([('Blank', 'Blank'), ('Geometric', 'Geometric'), ('Custom', 'Custom')], default="Blank", required=True)
layout_background_image = fields.Binary("Background Image")
_sql_constraints = [
- ('name_uniq', 'unique (name)', 'The company name must be unique !')
+ ('name_uniq', 'unique (name)', 'The company name must be unique!')
]
def init(self):
diff --git a/odoo/addons/base/models/res_country.py b/odoo/addons/base/models/res_country.py
index 02f9a517225..38212b4b9e2 100644
--- a/odoo/addons/base/models/res_country.py
+++ b/odoo/addons/base/models/res_country.py
@@ -77,9 +77,9 @@ class Country(models.Model):
_sql_constraints = [
('name_uniq', 'unique (name)',
- 'The name of the country must be unique !'),
+ 'The name of the country must be unique!'),
('code_uniq', 'unique (code)',
- 'The code of the country must be unique !')
+ 'The code of the country must be unique!')
]
def _name_search(self, name, domain=None, operator='ilike', limit=None, order=None, name_get_uid=None):
@@ -165,7 +165,7 @@ class CountryState(models.Model):
code = fields.Char(string='State Code', help='The state code.', required=True)
_sql_constraints = [
- ('name_code_uniq', 'unique(country_id, code)', 'The code of the state must be unique by country !')
+ ('name_code_uniq', 'unique(country_id, code)', 'The code of the state must be unique by country!')
]
@api.model
diff --git a/odoo/addons/base/models/res_currency.py b/odoo/addons/base/models/res_currency.py
index 4c06324d383..d00fbe3abdf 100644
--- a/odoo/addons/base/models/res_currency.py
+++ b/odoo/addons/base/models/res_currency.py
@@ -419,7 +419,7 @@ class CurrencyRate(models.Model):
'title': _("Warning for %s", self.currency_id.name),
'message': _(
"The new rate is quite far from the previous rate.\n"
- "Incorrect currency rates may cause critical problems, make sure the rate is correct !"
+ "Incorrect currency rates may cause critical problems, make sure the rate is correct!"
)
}
}
diff --git a/odoo/addons/base/models/res_lang.py b/odoo/addons/base/models/res_lang.py
index fcc48476a49..86b2ed9e308 100644
--- a/odoo/addons/base/models/res_lang.py
+++ b/odoo/addons/base/models/res_lang.py
@@ -60,9 +60,9 @@ class Lang(models.Model):
flag_image_url = fields.Char(compute=_compute_field_flag_image_url)
_sql_constraints = [
- ('name_uniq', 'unique(name)', 'The name of the language must be unique !'),
- ('code_uniq', 'unique(code)', 'The code of the language must be unique !'),
- ('url_code_uniq', 'unique(url_code)', 'The URL code of the language must be unique !'),
+ ('name_uniq', 'unique(name)', 'The name of the language must be unique!'),
+ ('code_uniq', 'unique(code)', 'The code of the language must be unique!'),
+ ('url_code_uniq', 'unique(url_code)', 'The URL code of the language must be unique!'),
]
@api.constrains('active')
diff --git a/odoo/addons/base/models/res_users.py b/odoo/addons/base/models/res_users.py
index f34c2e403da..ee8a6d60457 100644
--- a/odoo/addons/base/models/res_users.py
+++ b/odoo/addons/base/models/res_users.py
@@ -338,7 +338,7 @@ class Users(models.Model):
compute='_compute_accesses_count', compute_sudo=True)
_sql_constraints = [
- ('login_key', 'UNIQUE (login)', 'You can not have two users with the same login !')
+ ('login_key', 'UNIQUE (login)', 'You can not have two users with the same login!')
]
def init(self):
diff --git a/odoo/addons/base/tests/test_mail_examples.py b/odoo/addons/base/tests/test_mail_examples.py
index 4dce512c6ee..178f93cff9a 100644
--- a/odoo/addons/base/tests/test_mail_examples.py
+++ b/odoo/addons/base/tests/test_mail_examples.py
@@ -235,7 +235,7 @@ QUOTE_THUNDERBIRD_1 = u"""On 11/08/2012 05:29 PM,
9.45 AM: summary
10 AM: meeting with Fabien to present our app
- Is everything ok for you ?
+ Is everything ok for you?
--
Administrator
@@ -246,7 +246,7 @@ QUOTE_THUNDERBIRD_1 = u"""
On 11/08/2012 05:29 PM,
Ok for me. I am replying directly below your mail, using Thunderbird, with a signature.
- Did you receive my email about my new laptop, by the way ?
+ Did you receive my email about my new laptop, by the way?
Raoul.
--
Raoul Grosbedonnée
"""
@@ -300,7 +300,7 @@ TEXT_1 = u"""I contact you about our meeting tomorrow. Here is the schedule I pr
9 AM: brainstorming about our new amazing business app
9.45 AM: summary
10 AM: meeting with Ignasse to present our app
-Is everything ok for you ?
+Is everything ok for you?
--
MySignature"""
@@ -308,7 +308,7 @@ TEXT_1_IN = [u"""I contact you about our meeting tomorrow. Here is the schedule
9 AM: brainstorming about our new amazing business app
9.45 AM: summary
10 AM: meeting with Ignasse to present our app
-Is everything ok for you ?"""]
+Is everything ok for you?"""]
TEXT_1_OUT = [u"""
--
MySignature"""]
@@ -358,7 +358,7 @@ TEXT_2_OUT = [u"""
# MISC
GMAIL_1 = u"""Hello,
Ok for me. I am replying directly in gmail, without signature.
Kind regards,
Demo.
On Thu, Nov 8, 2012 at 5:29 PM,
<dummy@example.com > wrote:
I contact you about our meeting for tomorrow. Here is the schedule I propose:
9 AM: brainstorming about our new amazing business app</span></li>
-9.45 AM: summary 10 AM: meeting with Fabien to present our app Is everything ok for you ?
+9.45 AM: summary 10 AM: meeting with Fabien to present our app Is everything ok for you?
@@ -383,7 +383,7 @@ HOTMAIL_1 = u"""
You indicated that you wish to use OpenERP in your own company.
We would like to know more about your your business needs and requirements, and see how
- we can help you. When would you be available to discuss your project ?
+ we can help you. When would you be available to discuss your project?
Best regards,
http://openerp.com
diff --git a/odoo/addons/base/wizard/base_module_upgrade_views.xml b/odoo/addons/base/wizard/base_module_upgrade_views.xml
index ada816e17f4..cd6b945c8f5 100644
--- a/odoo/addons/base/wizard/base_module_upgrade_views.xml
+++ b/odoo/addons/base/wizard/base_module_upgrade_views.xml
@@ -41,7 +41,7 @@
- The selected modules have been updated / installed !
+ The selected modules have been updated/installed!
We suggest to reload the menu tab to see the new menus (Ctrl+T then Ctrl+R)."
diff --git a/odoo/addons/base/wizard/base_partner_merge_views.xml b/odoo/addons/base/wizard/base_partner_merge_views.xml
index 98e9f248484..c752d107570 100644
--- a/odoo/addons/base/wizard/base_partner_merge_views.xml
+++ b/odoo/addons/base/wizard/base_partner_merge_views.xml
@@ -88,12 +88,12 @@
diff --git a/odoo/addons/test_new_api/models/test_new_api.py b/odoo/addons/test_new_api/models/test_new_api.py
index c9be9f79cb4..7afe6062c18 100644
--- a/odoo/addons/test_new_api/models/test_new_api.py
+++ b/odoo/addons/test_new_api/models/test_new_api.py
@@ -29,7 +29,7 @@ class Category(models.Model):
'category', 'discussion')
_sql_constraints = [
- ('positive_color', 'CHECK(color >= 0)', 'The color code must be positive !')
+ ('positive_color', 'CHECK(color >= 0)', 'The color code must be positive!')
]
@api.depends('name', 'parent.display_name') # this definition is recursive
diff --git a/odoo/addons/test_new_api/static/tests/tours/constraint.js b/odoo/addons/test_new_api/static/tests/tours/constraint.js
index 31bb7b701a6..9982b1bd534 100644
--- a/odoo/addons/test_new_api/static/tests/tours/constraint.js
+++ b/odoo/addons/test_new_api/static/tests/tours/constraint.js
@@ -27,7 +27,7 @@ odoo.define('web.test.constraint', function (require) {
trigger: 'button.o_form_button_save',
}, { // check popup content
content: "check notification box",
- trigger: '.o_error_dialog:contains(The color code must be positive !)',
+ trigger: '.o_error_dialog:contains(The color code must be positive!)',
run() {}
}, {
content: "close notification box",
diff --git a/odoo/api.py b/odoo/api.py
index 123f575af41..eff497c43be 100644
--- a/odoo/api.py
+++ b/odoo/api.py
@@ -610,7 +610,7 @@ class Environment(Mapping):
.. warning::
- No sanity checks applied in sudo mode !
+ No sanity checks applied in sudo mode!
When in sudo mode, a user can access any company,
even if not in his allowed companies.
diff --git a/odoo/service/model.py b/odoo/service/model.py
index 46774552642..e368d5bfcf1 100644
--- a/odoo/service/model.py
+++ b/odoo/service/model.py
@@ -64,7 +64,7 @@ def execute(db, uid, obj, method, *args, **kw):
check_method_name(method)
res = execute_cr(cr, uid, obj, method, *args, **kw)
if res is None:
- _logger.info('The method %s of the object %s can not return `None` !', method, obj)
+ _logger.info('The method %s of the object %s can not return `None`!', method, obj)
return res
diff --git a/odoo/tools/convert.py b/odoo/tools/convert.py
index cf66ba0e083..90488a40a20 100644
--- a/odoo/tools/convert.py
+++ b/odoo/tools/convert.py
@@ -400,7 +400,7 @@ form: module.record_id""" % (xml_id,)
if f_search:
idref2 = _get_idref(self, env, f_model, self.idref)
q = safe_eval(f_search, idref2)
- assert f_model, 'Define an attribute model="..." in your .XML file !'
+ assert f_model, 'Define an attribute model="..." in your .XML file!'
# browse the objects searched
s = env[f_model].search(q)
# column definitions of the "local" object
@@ -660,7 +660,7 @@ def convert_xml_import(env, module, xmlfile, idref=None, mode='init', noupdate=F
try:
relaxng.assert_(doc)
except Exception:
- _logger.exception("The XML file '%s' does not fit the required schema !", xmlfile.name)
+ _logger.exception("The XML file '%s' does not fit the required schema!", xmlfile.name)
if jingtrang:
p = subprocess.run(['pyjing', schema, xmlfile.name], stdout=subprocess.PIPE)
_logger.warning(p.stdout.decode())