[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#3139

X-original-commit: a52a9eef2d
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 882123671b
commit 10bf041900
18 changed files with 183 additions and 115 deletions

View File

@ -404,8 +404,9 @@ def _generate_alternate_urls(app, pagename, templatename, context, doctree):
The entry 'language' is added by Sphinx in the rendering context.
"""
_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_code'] = _current_lang
# 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 []

View File

@ -13,102 +13,3 @@ Legal
legal/cla
legal/licenses
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: 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: odoo_enterprise_agreement_fr.pdf
- |missing_txt| |missing_pdf|
- .. image:: legal/img/txt.svg
:alt: View Odoo Enterprise Agreement (DE)
:target: legal/terms/i18n/enterprise_de.html
.. image:: legal/img/pdf.svg
:alt: Download Odoo Enterprise Agreement (DE)
:target: odoo_enterprise_agreement_de.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: 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: 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: 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: 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,6 +4,10 @@
Odoo Enterprise Subscription Agreement
======================================
.. only:: html
`Download PDF <odoo_enterprise_agreement.pdf>`_
.. note:: Version 10a - 2022-10-27
.. v6: add "App" definition + update pricing per-App

View File

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

View File

@ -5,6 +5,9 @@
Acuerdo de suscripción de Odoo Enterprise
=========================================
.. only:: html
`Download PDF <odoo_enterprise_agreement_es.pdf>`_
.. warning::
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

View File

@ -4,6 +4,9 @@
Odoo Enterprise Subscription Agreement (FR)
===========================================
.. only:: html
`Download PDF <odoo_enterprise_agreement_fr.pdf>`_
.. warning::
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

View File

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

View File

@ -4,6 +4,9 @@
Odoo Partnership Agreement (ES)
===============================
.. only:: html
`Download PDF <odoo_partnership_agreement_es.pdf>`_
.. warning::
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,

View File

@ -4,6 +4,9 @@
Odoo Partnership Agreement (FR)
===============================
.. only:: html
`Download PDF <odoo_partnership_agreement_fr.pdf>`_
.. warning::
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

View File

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

View File

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

View File

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

View File

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

View File

@ -15,7 +15,7 @@
{%- endif %}
<ul class="dropdown-menu" aria-labelledby="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 %}
</ul>
</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 %}
<ul class="dropdown-menu dropdown-menu-end" aria-labelledby="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 %}
</ul>
</div>

View File

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

View File

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