Today, Odoo is really tricky to use without seeing the screen, it must be improved to be usable. This PR forbid to use labels without a "for" attribute, add some title, rule and aria attributes in HTML. With that, Odoo will be fully usable with a screen reader. * [IMP] Labels must have a for attribute. Improve accessibility. * [IMP] Better error message when trying to read a missing cached value * [FIX] Add some aria-label and title attributes for screen readers. * [FIX] Template name is not included in the error message in case of SyntaxError in QWeb * [FIX] Improve the Tour failed at step error message to be more explicit. * [IMP] Add aria-labels * [FIX] Add missing aria-label on failing test * [IMP] aria-hidden means hidden. Fix all bad aria-hidden and hide aria-hidden for all. * [IMP] Color names on kanban views and many2many tags * [IMP] Add some checks on views for accessibility. * [IMP] Add `alt` attribute on `img` tags. * [IMP] Add aria-label and title on non-described icons * [IMP] Add button role to widgets with btn class * [IMP] Translate aria and formatted attributes. * [IMP] Remove wrong aria-labelledby * [IMP] Add menu role on dropdowns * [IMP] Buttons must be focusable * [IMP] Add aria attributes on progress bars * [IMP] Improve accessibility of basic widgets * [IMP] Change main layout to more semantic tags * [IMP] Add menuitem role when missing * [IMP] Remove wrong role='presentation' * [IMP] Improve accessibility of tab panels * [IMP] Add aria-invalid on invalid fields * [IMP] Add aria-sort on ordered columns * [IMP] Add role on alerts * [IMP] Use dialog role, header, main and footer tags for modals * [IMP] Add labels on o_status * [IMP] Improve accessibility of kanban view with feeds and articles * [IMP] Add alerts in case of new messages * [IMP] Add widget, navigation or img role to aria-labelled items
205 lines
12 KiB
XML
205 lines
12 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
||
<odoo>
|
||
<data noupdate="1">
|
||
<!-- notify to admin of module installation -->
|
||
<record id="mail_template_data_module_install_project" model="mail.template">
|
||
<field name="name">Project: Spam admin after install</field>
|
||
<field name="subject">Your Odoo Project application</field>
|
||
<field name="email_from">help@odoo.com</field>
|
||
<field name="email_to">${user.email|safe}</field>
|
||
<field name="lang">${user.lang}</field>
|
||
<field name="model_id" ref="base.model_ir_module_module"/>
|
||
<field name="auto_delete" eval="True"/>
|
||
<field name="scheduled_date">${(datetime.datetime.now() + relativedelta(days=3)).strftime('%Y-%m-%d %H:%M')}</field>
|
||
<field name="body_html" ><![CDATA[
|
||
<div style="margin: 10px auto;">
|
||
% set last_created_project = user.env['project.project'].search([('alias_id','!=',False)], order="create_date desc")[0]
|
||
<table cellspacing="0" cellpadding="0" style="width:100%;">
|
||
<tbody>
|
||
<tr>
|
||
<td style="padding:2px;width:30%;">
|
||
<img src="web/static/src/img/logo.png" alt="Logo"/>
|
||
</td>
|
||
<td style="vertical-align: top; padding: 8px 10px;text-align: left;font-size: 14px;">
|
||
<a href="web/login" style="float:right ;margin:15px auto;background: #875A7B;border-radius: 5px;color: #ffffff;font-size: 16px;padding: 10px 20px 10px 20px;text-decoration: none;">Auto Login</a>
|
||
</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<table style="width:100%;text-align:justify;margin:0 auto;border-collapse:collapse;border-top:1px solid lightgray"">
|
||
<tbody>
|
||
<tr>
|
||
<td style="padding:15px 10px;font-size:20px">
|
||
<p dir="ltr" style="font-size:15px;margin-top:0pt;margin-bottom:0pt;">
|
||
<span>Your Odoo Project application is up and running</span></p><br>
|
||
<p dir="ltr" style="margin-top:0pt;margin-bottom:8pt;">
|
||
<span style="font-size:13px;font-weight:bold;">What’s next?</span></p>
|
||
<ul style="margin-top:0pt;margin-bottom:0pt;font-size:13px;list-style-type:disc;">
|
||
% if last_created_project:
|
||
<li dir="ltr">
|
||
<p dir="ltr" style="margin-top:0pt;margin-bottom:0pt;">
|
||
<span>Try creating a task by sending an email to </span>
|
||
<a href="mailto:${last_created_project.alias_id.name_get()[0][1] if last_created_project.alias_id.alias_domain else user.company_id.email}">
|
||
<span style="font-weight:bold; text-decoration:underline;">${last_created_project.alias_id.name_get()[0][1] if last_created_project.alias_id.alias_domain else user.company_id.email}</span>
|
||
</a>
|
||
</p>
|
||
</li>
|
||
% endif
|
||
<li dir="ltr">
|
||
<p dir="ltr" style="margin-top:0pt;margin-bottom:8pt;">
|
||
<span><a href="/web#view_type=list&model=res.users&action=base.action_res_users">
|
||
<span style="font-weight:bold; text-decoration:underline;">Invite new users</span></a></span>
|
||
<span>to collaborate</span>
|
||
</p>
|
||
</li>
|
||
</ul> <br>
|
||
<ul style="margin-top:0pt;margin-bottom:0pt;font-size:13px;list-style-type:disc;">
|
||
<li dir="ltr">
|
||
<p dir="ltr" style="margin-top:0pt;margin-bottom:0pt;">
|
||
<span>Track hours with timesheets,</span>
|
||
</p>
|
||
</li>
|
||
<li dir="ltr">
|
||
<p dir="ltr" style="margin-top:0pt;margin-bottom:0pt;">
|
||
<span>Plan tasks and resources with forecasts,</span>
|
||
</p>
|
||
</li>
|
||
<li dir="ltr">
|
||
<p dir="ltr" style="margin-top:0pt;margin-bottom:0pt;">
|
||
<span>Get smart reporting and accurate dashboards,</span>
|
||
</p>
|
||
</li>
|
||
<li dir="ltr">
|
||
<p dir="ltr" style="margin-top:0pt;margin-bottom:0pt;">
|
||
<span>Bill time on tasks or issues,</span>
|
||
</p>
|
||
</li>
|
||
<li dir="ltr">
|
||
<p dir="ltr" style="margin-top:0pt;margin-bottom:8pt;">
|
||
<span>And much more...</span>
|
||
</p>
|
||
</li>
|
||
</ul>
|
||
<br>
|
||
<p dir="ltr" style="font-size:13px;line-height:1.3;margin-top:0pt;margin-bottom:8pt;">
|
||
<span style="font-weight:bold;">Need Help?</span>
|
||
<span style="font-style:italic;">You’re not alone</span>
|
||
</p>
|
||
<p dir="ltr" style="font-size:13px;margin-top:0pt;margin-bottom:8pt;">
|
||
<span>We would be delighted to assist you along the way. Contact us through our
|
||
<a href="https://www.odoo.com/help">support form</a> if you have any question.
|
||
You can also discover how to get the best out of Odoo Project with our </span>
|
||
<a target="_blank" href="https://www.odoo.com/documentation/user/11.0/project.html">
|
||
<span style="text-decoration:underline;">User Documentation</span></a>
|
||
</span><span> or with our </span>
|
||
<a target="_blank" href="https://www.odoo.com/documentation">
|
||
<span style="text-decoration:underline;">API Documentation</span></a>
|
||
</p>
|
||
<br>
|
||
<p dir="ltr" style="font-size:13px;margin-top:0pt;margin-bottom:8pt;"><span>Enjoy your Odoo experience,</span></p>
|
||
</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<div dir="ltr" style="font-size:13px;margin-top:0pt;margin-bottom:8pt;color:grey">
|
||
<span><br/>-- <br/>The Odoo Team<br/>PS: People love Odoo, check </span><a target="_blank" href="https://twitter.com/odoo/favorites"><span style="text-decoration:underline;">what they say about it.</span></a></span>
|
||
</div>
|
||
</div>]]></field>
|
||
</record>
|
||
|
||
<function
|
||
id="mail_template_function_module_install_project"
|
||
model="mail.template"
|
||
name="send_mail"
|
||
eval="[ref('mail_template_data_module_install_project'), ref('base.module_project')]"/>
|
||
|
||
<!-- Sample stage-related template -->
|
||
<record id="mail_template_data_project_task" model="mail.template">
|
||
<field name="name">Task: Reception Acknowledgment</field>
|
||
<field name="model_id" ref="project.model_project_task"/>
|
||
<field name="subject">Reception of ${object.name}</field>
|
||
<field name="use_default_to" eval="True"/>
|
||
<field name="body_html" type="html">
|
||
<div>
|
||
Dear ${object.partner_id.name or 'customer'},<br/>
|
||
Thank you for your enquiry.<br />
|
||
If you have any questions, please let us know.
|
||
<br/><br/>
|
||
Thank you,
|
||
<br/>
|
||
</div>
|
||
</field>
|
||
<field name="auto_delete" eval="True"/>
|
||
<field name="user_signature" eval="True"/>
|
||
</record>
|
||
|
||
<!-- Mail sent to request a rating for a task -->
|
||
<record id="rating_project_request_email_template" model="mail.template">
|
||
<field name="name">Task: Rating Request</field>
|
||
<field name="model_id" ref="project.model_project_task"/>
|
||
<field name="subject">${object.project_id.company_id.name}: Satisfaction Survey</field>
|
||
<field name="email_from">${('"%s" <%s>' % (object.rating_get_rated_partner_id().name, object.rating_get_rated_partner_id().email) if object.rating_get_rated_partner_id().email else '') | safe}</field>
|
||
<field name="partner_to" >${object.rating_get_partner_id().id}</field>
|
||
<field name="body_html" type="html">
|
||
<div>
|
||
% set access_token = object.rating_get_access_token()
|
||
% set partner = object.rating_get_partner_id()
|
||
<table border="0" cellpadding="0" cellspacing="0" width="590" style="width:100%; margin:0px auto;">
|
||
<tbody>
|
||
<tr><td valign="top" style="font-size: 14px;">
|
||
Hello ${partner.name},<br/>
|
||
Please take a moment to rate our services related to the task "<strong>${object.name}</strong>"
|
||
% if object.rating_get_rated_partner_id().name:
|
||
assigned to <strong>${object.rating_get_rated_partner_id().name}</strong>.<br/>
|
||
% else:
|
||
.<br/>
|
||
% endif
|
||
</td></tr>
|
||
<tr><td style="text-align: center;">
|
||
<table border="0" cellpadding="0" cellspacing="0" width="590" summary="o_mail_notification" style="width:100%; margin: 32px 0px 32px 0px;">
|
||
<tr><td style="font-size: 14px;">
|
||
<strong>Tell us how you feel about our service</strong><br/>
|
||
<span style="text-color: #888888">(click on one of these smileys)</span>
|
||
</td></tr>
|
||
<tr><td style="font-size: 14px;">
|
||
<table style="width:100%;text-align:center;">
|
||
<tr>
|
||
<td>
|
||
<a href="/rating/${access_token}/10">
|
||
<img alt="Satisfied" src="/rating/static/src/img/rating_10.png" title="Satisfied"/>
|
||
</a>
|
||
</td>
|
||
<td>
|
||
<a href="/rating/${access_token}/5">
|
||
<img alt="Not satisfied" src="/rating/static/src/img/rating_5.png" title="Not satisfied"/>
|
||
</a>
|
||
</td>
|
||
<td>
|
||
<a href="/rating/${access_token}/1">
|
||
<img alt="Highly Dissatisfied" src="/rating/static/src/img/rating_1.png" title="Highly Dissatisfied"/>
|
||
</a>
|
||
</td>
|
||
</tr>
|
||
</table>
|
||
</td></tr>
|
||
</table>
|
||
</td></tr>
|
||
<tr><td valign="top" style="font-size: 14px;">
|
||
We appreciate your feedback. It helps us to improve continuously.
|
||
% if object.project_id.rating_status == 'stage':
|
||
<br/><span style="margin: 0px 0px 0px 0px; font-size: 12px; opacity: 0.5; color: #454748;">This customer survey has been sent because your task has been moved to the stage <b>${object.stage_id.name}</b></span>
|
||
% endif
|
||
% if object.project_id.rating_status == 'periodic':
|
||
<br/><span style="margin: 0px 0px 0px 0px; font-size: 12px; opacity: 0.5; color: #454748;">This customer survey is sent <b>${object.project_id.rating_status_period}</b> as long as the task is in the <b>${object.stage_id.name}</b> stage.</span>
|
||
% endif
|
||
</td></tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
</field>
|
||
<field name="auto_delete" eval="True"/>
|
||
<field name="user_signature" eval="False"/>
|
||
</record>
|
||
</data>
|
||
</odoo>
|