[IMP] documentation: legal page design

Prior to this commit, the terms and conditions were displayed in a table
with all the languages and it was not practical for the futur, with many
more languages.

task-3073198

closes odoo/documentation#3124

X-original-commit: b7bc34a197
Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com>
This commit is contained in:
Morgane (morm) 2022-11-28 13:49:53 +00:00 committed by Antoine Vandevenne (anv)
parent 5dbd338dcc
commit d7b69d802a
18 changed files with 184 additions and 111 deletions

View File

@ -402,8 +402,9 @@ def _generate_alternate_urls(app, pagename, templatename, context, doctree):
The entry 'language' is added by Sphinx in the rendering context. The entry 'language' is added by Sphinx in the rendering context.
""" """
_current_lang = app.config.language or 'en' _current_lang = app.config.language or 'en'
# Replace the context value by its translated description ("Français" instead of "french") # Replace the context value by its upper-cased value ("FR" instead of "fr")
context['language'] = languages_names.get(_current_lang) context['language'] = languages_names.get(_current_lang)
context['language_code'] = _current_lang
# If the list of languages is not set, assume that the project has no alternate language # If the list of languages is not set, assume that the project has no alternate language
_provided_languages = app.config.languages and app.config.languages.split(',') or [] _provided_languages = app.config.languages and app.config.languages.split(',') or []

View File

@ -13,97 +13,3 @@ Legal
legal/cla legal/cla
legal/licenses legal/licenses
legal/terms legal/terms
Licenses
========
- :ref:`licenses`
Terms and Conditions
====================
.. list-table::
:header-rows: 1
* -
- English
- Français
- Nederlands
- Deutsch
- Español
* - Odoo Enterprise Agreement [#]_
- .. image:: legal/img/txt.svg
:alt: View Odoo Enterprise Agreement
:target: legal/terms/enterprise.html
.. image:: legal/img/pdf.svg
:alt: Download Odoo Enterprise Agreement
:target: https://www.odoo.com/documentation/14.0/odoo_enterprise_agreement.pdf
- .. image:: legal/img/txt.svg
:alt: View Odoo Enterprise Agreement (FR)
:target: legal/terms/i18n/enterprise_fr.html
.. image:: legal/img/pdf.svg
:alt: Download Odoo Enterprise Agreement (FR)
:target: https://www.odoo.com/documentation/14.0/odoo_enterprise_agreement_fr.pdf
- |missing_txt| |missing_pdf|
- |missing_txt| |missing_pdf|
- .. image:: legal/img/txt.svg
:alt: View Odoo Enterprise Agreement (ES)
:target: legal/terms/i18n/enterprise_es.html
.. image:: legal/img/pdf.svg
:alt: Download Odoo Enterprise Agreement (ES)
:target: https://www.odoo.com/documentation/14.0/odoo_enterprise_agreement_es.pdf
* - Odoo Partnership Agreement
- .. image:: legal/img/txt.svg
:alt: View Odoo Partnership Agreement
:target: legal/terms/partnership.html
.. image:: legal/img/pdf.svg
:alt: Download Odoo Partnership Agreement
:target: https://www.odoo.com/documentation/14.0/odoo_partnership_agreement.pdf
- .. image:: legal/img/txt.svg
:alt: View Odoo Partnership Agreement (FR)
:target: legal/terms/i18n/partnership_fr.html
.. image:: legal/img/pdf.svg
:alt: Download Odoo Partnership Agreement (FR)
:target: https://www.odoo.com/documentation/14.0/odoo_partnership_agreement_fr.pdf
- |missing_txt| |missing_pdf|
- |missing_txt| |missing_pdf|
- |missing_txt| |missing_pdf|
* - Terms of Sale
- .. image:: legal/img/txt.svg
:alt: View Terms of Sale
:target: legal/terms/terms_of_sale.html
.. image:: legal/img/pdf.svg
:alt: Download Odoo Terms of Sale
:target: terms_of_sale.pdf
- .. image:: legal/img/txt.svg
:alt: View Terms of Sale (FR)
:target: legal/terms/i18n/terms_of_sale_fr.html
.. image:: legal/img/pdf.svg
:alt: Download Odoo Terms of Sale (FR)
:target: https://www.odoo.com/documentation/14.0/terms_of_sale_fr.pdf
-
-
-
.. [#] Applies to self-hosting, Odoo.SH and Odoo Cloud.
.. |missing_pdf| image:: legal/img/pdf_missing.svg
:alt: Document not yet available
:class: o-no-modal
.. |missing_txt| image:: legal/img/txt_missing.svg
:alt: Document not yet available
:class: o-no-modal
.. seealso::
`Archive of older agreements <https://drive.google.com/open?id=1skSTsdAPOBlaIWi_hUkL3tfaoi8Qdspu>`_
Other legal references
======================
- `Odoo Cloud Service Level Agreement (SLA) <https://www.odoo.com/cloud-sla>`_
- `Odoo Cloud Acceptable Use Policy <https://www.odoo.com/acceptable-use>`_
- `Odoo SA's Privacy Policy <https://www.odoo.com/privacy>`_
- `Odoo SA's GDPR Compliance Guide <https://www.odoo.com/gdpr>`_
- :ref:`cla`
- :ref:`germany/gobd`

View File

@ -4,7 +4,11 @@
Odoo Enterprise Subscription Agreement Odoo Enterprise Subscription Agreement
====================================== ======================================
.. note:: Version 9c - 2020-06-15 .. only:: html
`Download PDF <odoo_enterprise_agreement.pdf>`_
.. note:: Version 10a - 2022-10-27
.. v6: add "App" definition + update pricing per-App .. v6: add "App" definition + update pricing per-App
.. v7: remove possibility of price change at renewal after prior notice .. v7: remove possibility of price change at renewal after prior notice

View File

@ -5,6 +5,9 @@
Odoo Enterprise Subscription Agreement (DE) Odoo Enterprise Subscription Agreement (DE)
=========================================== ===========================================
.. only:: html
`Download PDF <odoo_enterprise_agreement_de.pdf>`_
.. warning:: .. warning::
Dies ist eine deutsche Übersetzung des "Odoo Enterprise Subscription Agreement". Dies ist eine deutsche Übersetzung des "Odoo Enterprise Subscription Agreement".
Diese Übersetzung soll das Verständnis erleichtern, hat aber keinen rechtlichen Wert. Diese Übersetzung soll das Verständnis erleichtern, hat aber keinen rechtlichen Wert.

View File

@ -5,6 +5,9 @@
Acuerdo de suscripción de Odoo Enterprise Acuerdo de suscripción de Odoo Enterprise
========================================= =========================================
.. only:: html
`Download PDF <odoo_enterprise_agreement_es.pdf>`_
.. warning:: .. warning::
Esta es una traducción al español del "Odoo Enterprise Subscription Agreement". Esta es una traducción al español del "Odoo Enterprise Subscription Agreement".
Esta traducción se proporciona con la esperanza de que facilite la comprensión, pero no tiene Esta traducción se proporciona con la esperanza de que facilite la comprensión, pero no tiene

View File

@ -4,6 +4,9 @@
Odoo Enterprise Subscription Agreement (FR) Odoo Enterprise Subscription Agreement (FR)
=========================================== ===========================================
.. only:: html
`Download PDF <odoo_enterprise_agreement_fr.pdf>`_
.. warning:: .. warning::
Ceci est une traduction en français du contrat “Odoo Enterprise Subscription Agreement”. Ceci est une traduction en français du contrat “Odoo Enterprise Subscription Agreement”.
Cette traduction est fournie dans lespoir quelle facilitera sa compréhension, mais elle Cette traduction est fournie dans lespoir quelle facilitera sa compréhension, mais elle

View File

@ -5,6 +5,9 @@
Odoo Enterprise Subscription Agreement (NL) Odoo Enterprise Subscription Agreement (NL)
=========================================== ===========================================
.. only:: html
`Download PDF <odoo_enterprise_agreement_nl.pdf>`_
.. warning:: .. warning::
Dit is een Nederlandse vertaling van de "Odoo Enterprise Subscription Agreement". Dit is een Nederlandse vertaling van de "Odoo Enterprise Subscription Agreement".
Deze vertaling wordt verstrekt in de hoop dat deze het begrip zal vergemakkelijken, Deze vertaling wordt verstrekt in de hoop dat deze het begrip zal vergemakkelijken,

View File

@ -4,6 +4,9 @@
Odoo Partnership Agreement (ES) Odoo Partnership Agreement (ES)
=============================== ===============================
.. only:: html
`Download PDF <odoo_partnership_agreement_es.pdf>`_
.. warning:: .. warning::
Esta es una traducción al español del "Odoo Partnership Agreement". Esta es una traducción al español del "Odoo Partnership Agreement".
Esta traducción se proporciona con la esperanza de que facilitará la comprensión, Esta traducción se proporciona con la esperanza de que facilitará la comprensión,

View File

@ -4,6 +4,9 @@
Odoo Partnership Agreement (FR) Odoo Partnership Agreement (FR)
=============================== ===============================
.. only:: html
`Download PDF <odoo_partnership_agreement_fr.pdf>`_
.. warning:: .. warning::
Ceci est une traduction en français du contrat “Odoo Partnership Agreement”. Ceci est une traduction en français du contrat “Odoo Partnership Agreement”.
Cette traduction est fournie dans lespoir quelle facilitera sa compréhension, mais elle Cette traduction est fournie dans lespoir quelle facilitera sa compréhension, mais elle

View File

@ -4,6 +4,9 @@
Conditions Générales de Vente Conditions Générales de Vente
============================= =============================
.. only:: html
`Download PDF <terms_of_sale_fr.pdf>`_
.. note:: Dernière modification: 20 octobre 2021. .. note:: Dernière modification: 20 octobre 2021.
Ces conditions régissent la vente de produits et services entre Ces conditions régissent la vente de produits et services entre

View File

@ -4,6 +4,9 @@
Odoo Partnership Agreement Odoo Partnership Agreement
========================== ==========================
.. only:: html
`Download PDF <odoo_partnership_agreement.pdf>`_
.. v6a: typo in section 4.4 .. v6a: typo in section 4.4
.. v7: introduce "Learning Partners" and a few related changes .. v7: introduce "Learning Partners" and a few related changes
.. v8: simplified parts, clarified others, added trademark use restrictions, updated benefits .. v8: simplified parts, clarified others, added trademark use restrictions, updated benefits

View File

@ -4,6 +4,9 @@
General Terms of Sale General Terms of Sale
===================== =====================
.. only:: html
`Download PDF <terms_of_sale.pdf>`_
.. note:: Last revision: October 20, 2021. .. note:: Last revision: October 20, 2021.
These General Terms of Sale govern the sale of products and services by These General Terms of Sale govern the sale of products and services by

View File

@ -108,6 +108,8 @@
{%- if pagename == master_doc %} {%- if pagename == master_doc %}
{# Custom landing page on the root of the documentation #} {# Custom landing page on the root of the documentation #}
{%- include "layout_templates/homepage.html" %} {%- include "layout_templates/homepage.html" %}
{%- elif pagename == 'legal' %}
{%- include "layout_templates/legal.html" %}
{%- else %} {%- else %}
<article id="o_content" class="doc-body"> <article id="o_content" class="doc-body">
<div role="main"> {# Beacon used by the Sphinx search to know where to look for a string #} <div role="main"> {# Beacon used by the Sphinx search to know where to look for a string #}

View File

@ -15,7 +15,7 @@
{%- endif %} {%- endif %}
<ul class="dropdown-menu" aria-labelledby="languages"> <ul class="dropdown-menu" aria-labelledby="languages">
{%- for alternate_language, language_code, url in alternate_languages %} {%- for alternate_language, language_code, url in alternate_languages %}
<li><a class="dropdown-item" href="{{ url }}">{{ alternate_language }}</a></li> <li><a class="o_switcher_item dropdown-item" href="{{ url }}">{{ alternate_language }}</a></li>
{%- endfor %} {%- endfor %}
</ul> </ul>
</div> </div>

View File

@ -0,0 +1,139 @@
<article id="o_content" class="doc-body o_legal">
<section id="legal">
<h1>
{{ _("Legal") }}
<a class="headerlink" href="#legal" title="Permalink to this headline"></a>
</h1>
</section>
<section id="licenses">
<h2>
{{ _("Licenses") }}
<a class="headerlink" href="#licenses" title="Permalink to this headline"></a>
</h2>
<ul class="simple">
<li>
<p>
<a class="reference internal" href="legal/licenses.html#licenses">
<span class="std std-ref">{{ _("Licenses") }}</span>
</a>
</p>
</li>
</ul>
</section>
<section id="terms-and-conditions">
<h2>
{{ _("Terms and Conditions") }}
<a class="headerlink" href="#terms-and-conditions" title="Permalink to this headline"></a>
</h2>
<div class="row flex-wrap g-3 mb-3">
<div class="col-sm-4">
<div class="card h-100">
<div class="card-body d-flex flex-column justify-content-between">
<div class="d-flex align-items-center mb-2">
<i class="i-article"></i>
<h5 class="card-title mb-0 d-flex flex-wrap gap-2">{{ _("Odoo Enterprise Agreement") }}</h5>
</div>
<p>{{ _("Applies to self-hosting, Odoo.SH and Odoo Cloud.") }}</p>
<div>
{%- set enterprise_agreement_path_en = 'legal/terms/enterprise.html' %}
{%- if language_code == 'en' %}
<a class="btn btn-primary" href="{{ enterprise_agreement_path_en }}" role="button">{{ _("Read") }}</a>
{%- else %}
<a class="btn btn-primary" href="{{ 'legal/terms/i18n/enterprise_%s.html' % language_code }}" role="button">{{ _("Read") }}</a>
<a class="btn btn-light text-primary" href="{{ enterprise_agreement_path_en }}">{{ _("English") }}</a>
{%- endif %}
</div>
</div>
</div>
</div>
<div class="col-sm-4">
<div class="card h-100">
<div class="card-body d-flex flex-column justify-content-between">
<div class="d-flex align-items-center mb-3">
<i class="i-article"></i>
<h5 class="card-title mb-0">{{ _("Odoo Partnership Agreement") }}</h5>
</div>
<div>
{%- set partnership_agreement_path_en = 'legal/terms/partnership.html' %}
{%- if language_code == 'en' %}
<a class="btn btn-primary" href="{{ partnership_agreement_path_en }}" role="button">{{ _("Read") }}</a>
{%- else %}
<a class="btn btn-primary" href="{{ 'legal/terms/i18n/partnership_%s.html' % language_code }}" role="button">{{ _("Read") }}</a>
<a class="btn btn-light text-primary" href="{{ partnership_agreement_path_en }}">{{ _("English") }}</a>
{%- endif %}
</div>
</div>
</div>
</div>
<div class="col-sm-4">
<div class="card h-100">
<div class="card-body d-flex flex-column justify-content-between">
<div class="d-flex align-items-center mb-3">
<i class="i-article"></i>
<h5 class="card-title mb-0">{{ _("Terms Of Sale") }}</h5>
</div>
<div>
{%- set terms_of_sale_agreement_path_en = 'legal/terms/terms_of_sale.html' %}
{%- if language_code == 'en' %}
<a class="btn btn-primary" href="{{ terms_of_sale_agreement_path_en }}" role="button">{{ _("Read") }}</a>
{%- else %}
<a class="btn btn-primary" href="{{ 'legal/terms/i18n/terms_of_sale_%s.html' % language_code }}" role="button">{{ _("Read") }}</a>
<a class="btn btn-light text-primary" href="{{ terms_of_sale_agreement_path_en }}">{{ _("English") }}</a>
{%- endif %}
</div>
</div>
</div>
</div>
</div>
<div class="alert alert-go_to">
<p class="alert-title">
{{ _("See also") }}
</p>
<p>
<a class="reference external" href="https://drive.google.com/open?id=1skSTsdAPOBlaIWi_hUkL3tfaoi8Qdspu" target="_blank">{{ _("Archive of older agreements") }}</a>
</p>
</div>
</section>
<section id="other-legal-references">
<h2>
{{ _("Other legal references") }}
<a class="headerlink" href="#other-legal-references" title="Permalink to this headline"></a>
</h2>
<ul class="simple">
<li>
<p>
<a class="reference external" href="https://www.odoo.com/cloud-sla" target="_blank">{{ _("Odoo Cloud Service Level Agreement (SLA)") }}</a>
</p>
</li>
<li>
<p>
<a class="reference external" href="https://www.odoo.com/acceptable-use" target="_blank">{{ _("Odoo Cloud Acceptable Use Policy") }}</a>
</p>
</li>
<li>
<p>
<a class="reference external" href="https://www.odoo.com/privacy" target="_blank">{{ _("Odoo SAs Privacy Policy") }}</a>
</p>
</li>
<li>
<p>
<a class="reference external" href="https://www.odoo.com/gdpr" target="_blank">{{ _("Odoo SAs GDPR Compliance Guide") }}</a>
</p>
</li>
<li>
<p>
<a class="reference internal" href="legal/cla.html#cla">
<span class="std std-ref">{{ _("Contributor License Agreement") }}</span>
</a>
</p>
</li>
<li>
<p>
<a class="reference internal" href="applications/finance/accounting/fiscal_localizations/localizations/germany.html#germany-gobd">
<span class="std std-ref">{{ _("German Tax Accounting Standards: Odoos guide to GoBD Compliance") }}</span>
</a>
</p>
</li>
</ul>
</section>
</article>

View File

@ -15,7 +15,7 @@
{%- endif %} {%- endif %}
<ul class="dropdown-menu dropdown-menu-end" aria-labelledby="versions"> <ul class="dropdown-menu dropdown-menu-end" aria-labelledby="versions">
{%- for alternate_version, url in alternate_versions %} {%- for alternate_version, url in alternate_versions %}
<li><a class="dropdown-item" href="{{ url }}">{{ alternate_version }}</a></li> <li><a class="o_switcher_item dropdown-item" href="{{ url }}">{{ alternate_version }}</a></li>
{%- endfor %} {%- endfor %}
</ul> </ul>
</div> </div>

View File

@ -12,7 +12,7 @@
* original target URL) that is available. * original target URL) that is available.
*/ */
const _prepareSwitchersFallbacks = () => { const _prepareSwitchersFallbacks = () => {
document.querySelectorAll('a[class="dropdown-item"]').forEach(element => { document.querySelectorAll('a[class="o_switcher_item"]').forEach(element => {
element.addEventListener('click', async event => { element.addEventListener('click', async event => {
if (element.hasAttribute('href')) { if (element.hasAttribute('href')) {
const targetUrl = element.getAttribute('href'); const targetUrl = element.getAttribute('href');

View File

@ -1,14 +1,8 @@
section#terms-and-conditions table td { .o_legal .i-article {
/* make sure icons and links aren't wrapped */ font-size: 1.5rem;
white-space: nowrap; color: #d5d5d5;
} font-weight: 400;
vertical-align: middle;
section#terms-and-conditions table img.img-fluid { margin: 0 0.2rem 0 0;
margin: 0px;
}
section#terms-and-conditions table td:nth-child(2),
section#terms-and-conditions table th:nth-child(2) {
background-color: #f3f3f3;
} }