changeset ee3db5afe81d in www.tryton.org:default
details: https://hg.tryton.org/www.tryton.org?cmd=changeset&node=ee3db5afe81d
description:
        Update to Bootstrap 5 and remove jQuery

        issue11150
        review355931002
diffstat:

 gulpfile.js                                                    |   3 +-
 js/lazy.js                                                     |  11 +++-
 package.json                                                   |   4 +-
 sass/bootstrap/_override.scss                                  |  22 +++++++-
 sass/footer/_footer.scss                                       |   2 +-
 templates/contribute.html                                      |  14 ++--
 templates/donate.html                                          |   2 +-
 templates/donate_cancel.html                                   |   4 +-
 templates/donate_thanks.html                                   |   4 +-
 templates/download.html                                        |  16 ++--
 templates/events/layout.html                                   |   8 +-
 templates/guidelines/documentation.html                        |  30 +++++-----
 templates/guidelines/help.html                                 |  20 +++---
 templates/index.html                                           |  22 +++---
 templates/layout-toc.html                                      |   4 +-
 templates/layout.html                                          |  28 ++++----
 templates/service_providers.html                               |   2 +-
 templates/service_providers_start.html                         |   8 +-
 templates/success_stories/advocate-consulting-legal-group.html |   2 +-
 templates/success_stories/ammeba.html                          |   2 +-
 templates/success_stories/camir.html                           |   4 +-
 templates/success_stories/grufesa.html                         |   2 +-
 templates/success_stories/koolvet.html                         |   4 +-
 templates/success_stories/mifarma.html                         |   2 +-
 templates/success_stories/revelle.html                         |   2 +-
 templates/success_stories/wenger-energie.html                  |   2 +-
 templates/utils.html                                           |   4 +-
 27 files changed, 126 insertions(+), 102 deletions(-)

diffs (813 lines):

diff -r e21d651dc807 -r ee3db5afe81d gulpfile.js
--- a/gulpfile.js       Sun Jul 24 12:09:32 2022 +0200
+++ b/gulpfile.js       Sun Aug 07 16:43:23 2022 +0200
@@ -11,8 +11,7 @@
 
 gulp.task('main-js', function() {
     return gulp.src([
-        'node_modules/jquery/dist/jquery.slim.js',
-        'node_modules/popper.js/dist/umd/popper.js',
+        'node_modules/@popperjs/core/dist/umd/popper.js',
         'node_modules/bootstrap/dist/js/bootstrap.js',
         
'node_modules/loading-attribute-polyfill/dist/loading-attribute-polyfill.umd.js',
         'js/highlight.pack.js',
diff -r e21d651dc807 -r ee3db5afe81d js/lazy.js
--- a/js/lazy.js        Sun Jul 24 12:09:32 2022 +0200
+++ b/js/lazy.js        Sun Aug 07 16:43:23 2022 +0200
@@ -1,4 +1,4 @@
-$(document).ready(function() {
+var lazy_callback = function() {
     if ("IntersectionObserver" in window) {
         lazyElements = document.querySelectorAll(".lazy");
         var lazyObserver = new IntersectionObserver(function(entries, 
observer) {
@@ -15,4 +15,11 @@
             lazyObserver.observe(element);
         });
     }
-});
+};
+
+if (document.readyState === "complete" ||
+    (document.readyState !== "loading" && !document.documentElement.doScroll)) 
{
+    lazy_callback();
+} else {
+    document.addEventListener("DOMContentLoaded", callback);
+}
diff -r e21d651dc807 -r ee3db5afe81d package.json
--- a/package.json      Sun Jul 24 12:09:32 2022 +0200
+++ b/package.json      Sun Aug 07 16:43:23 2022 +0200
@@ -5,7 +5,7 @@
   "description": "NPM Tryton",
   "author": "Pierre Gomba",
   "dependencies": {
-    "bootstrap": "^4.5.0",
+    "bootstrap": "^5.1.3",
     "gulp": "^4.0.2",
     "gulp-autoprefixer": "^8.0.0",
     "gulp-clean-css": "^4.3.0",
@@ -20,7 +20,7 @@
     "loading-attribute-polyfill": "^2.0.1",
     "material-icons": "^1.10.6",
     "node-sass-package-importer": "^5.3.2",
-    "popper.js": "^1.16.1"
+    "@popperjs/core": "^2.11.2"
   },
   "devDependencies": {
     "sass": "^1.48.0",
diff -r e21d651dc807 -r ee3db5afe81d sass/bootstrap/_override.scss
--- a/sass/bootstrap/_override.scss     Sun Jul 24 12:09:32 2022 +0200
+++ b/sass/bootstrap/_override.scss     Sun Aug 07 16:43:23 2022 +0200
@@ -14,7 +14,15 @@
 $dark: $tryton-color-dark;
 $body-color: $tryton-color-body;
 $theme-colors: (
-  'white': #fff,
+  "primary":    $primary,
+  "secondary":  $secondary,
+  "success":    $success,
+  "info":       $info,
+  "warning":    $warning,
+  "danger":     $danger,
+  "light":      $light,
+  "dark":       $dark,
+  'white':      #fff,
 );
 
 // Text
@@ -37,10 +45,15 @@
 $navbar-light-color: rgba($black, .6) !default;
 $dropdown-bg: $dark;
 $dropdown-link-color: #fff;
+$dropdown-link-hover-color: $dark;
 $dropdown-spacer: 0;
 $dropdown-border-width: 0;
 $dropdown-border-radius: 0;
 
+// LINKS
+$link-decoration:       none;
+$link-hover-decoration: underline;
+
 // BUTTONS
 $btn-focus-width: 0;
 
@@ -51,7 +64,14 @@
 $grid-gutter-width: 30px;
 
 // SPACERS
+$spacer: 1rem !default;
 $spacers: (
+  0: 0,
+  1: $spacer * .25,
+  2: $spacer * .5,
+  3: $spacer,
+  4: $spacer * 1.5,
+  5: $spacer * 3,
   'gutter': $grid-gutter-width,
   'gutter-half': math.div($grid-gutter-width, 2),
   );
diff -r e21d651dc807 -r ee3db5afe81d sass/footer/_footer.scss
--- a/sass/footer/_footer.scss  Sun Jul 24 12:09:32 2022 +0200
+++ b/sass/footer/_footer.scss  Sun Aug 07 16:43:23 2022 +0200
@@ -31,7 +31,7 @@
       border-color: $tryton-color-gray;
     }
 
-    .footer-right {
+    .footer-end {
       @include media-breakpoint-down(md) {
         margin-top: 2rem;
       }
diff -r e21d651dc807 -r ee3db5afe81d templates/contribute.html
--- a/templates/contribute.html Sun Jul 24 12:09:32 2022 +0200
+++ b/templates/contribute.html Sun Aug 07 16:43:23 2022 +0200
@@ -31,7 +31,7 @@
 
 <div class="card mb-5 shadow w-100">
     <div class="card-body d-inline-flex">
-        <div class="picto-container mr-3 d-none d-sm-flex">
+        <div class="picto-container me-3 d-none d-sm-flex">
             <div class="picto bg-dark text-white">
                 <span class="material-icons md-48">monetization_on</span>
             </div>
@@ -49,7 +49,7 @@
 
 <div class="card mb-5 shadow w-100">
     <div class="card-body d-inline-flex">
-        <div class="picto-container mr-3 d-none d-sm-flex">
+        <div class="picto-container me-3 d-none d-sm-flex">
             <div class="picto bg-dark text-white">
                 <span class="material-icons md-48">live_help</span>
             </div>
@@ -69,7 +69,7 @@
 
 <div class="card mb-5 shadow w-100">
     <div class="card-body d-inline-flex">
-        <div class="picto-container mr-3 d-none d-sm-flex">
+        <div class="picto-container me-3 d-none d-sm-flex">
             <div class="picto bg-dark text-white">
                 <span class="material-icons md-48">share</span>
             </div>
@@ -99,7 +99,7 @@
 
 <div class="card mb-5 shadow w-100">
     <div class="card-body d-inline-flex">
-        <div class="picto-container mr-3 d-none d-sm-flex">
+        <div class="picto-container me-3 d-none d-sm-flex">
             <div class="picto bg-dark text-white">
                 <span class="material-icons md-48">bug_report</span>
             </div>
@@ -122,7 +122,7 @@
 
 <div class="card mb-5 shadow w-100">
     <div class="card-body d-inline-flex">
-        <div class="picto-container mr-3 d-none d-sm-flex">
+        <div class="picto-container me-3 d-none d-sm-flex">
             <div class="picto bg-dark text-white">
                 <span class="material-icons md-48">build</span>
             </div>
@@ -141,7 +141,7 @@
 
 <div class="card mb-5 shadow w-100">
     <div class="card-body d-inline-flex">
-        <div class="picto-container mr-3 d-none d-sm-flex">
+        <div class="picto-container me-3 d-none d-sm-flex">
             <div class="picto bg-dark text-white">
                 <span class="material-icons md-48">translate</span>
             </div>
@@ -163,7 +163,7 @@
 
 <div class="card mb-5 shadow w-100">
     <div class="card-body d-inline-flex">
-        <div class="picto-container mr-3 d-none d-sm-flex">
+        <div class="picto-container me-3 d-none d-sm-flex">
             <div class="picto bg-dark text-white">
                 <span class="material-icons md-48">description</span>
             </div>
diff -r e21d651dc807 -r ee3db5afe81d templates/donate.html
--- a/templates/donate.html     Sun Jul 24 12:09:32 2022 +0200
+++ b/templates/donate.html     Sun Aug 07 16:43:23 2022 +0200
@@ -42,7 +42,7 @@
             </div>
             <div class="col-md-6">
                 <h2 class="text-center" id="donations-yearly">Yearly 
Donations</h2>
-                <table class="table table-striped text-right">
+                <table class="table table-striped text-end">
                     <thead>
                         <tr>
                             <th scope="col">Year</th>
diff -r e21d651dc807 -r ee3db5afe81d templates/donate_cancel.html
--- a/templates/donate_cancel.html      Sun Jul 24 12:09:32 2022 +0200
+++ b/templates/donate_cancel.html      Sun Aug 07 16:43:23 2022 +0200
@@ -5,7 +5,7 @@
 <div class="section bg-light">
     <div class="container">
         <section class="section-header text-center bg-light mb1">
-            <h1 class="pl-3 pr-3">Donation Cancelled</h1>
+            <h1 class="ps-3 pe-3">Donation Cancelled</h1>
         </section>
     </div>
 </div>
@@ -18,7 +18,7 @@
                 <span class="material-icons">sentiment_dissatisfied</span>
                 We're sorry that you choose not to contribute to Tryton today.
                 </p>
-                <p class="text-right">
+                <p class="text-end">
                 <small>
                     Did you have any problems or have concerns? Please let us 
know by sending an email to <a 
href="foundat...@tryton.org">foundat...@tryton.org</a>.
                 </small>
diff -r e21d651dc807 -r ee3db5afe81d templates/donate_thanks.html
--- a/templates/donate_thanks.html      Sun Jul 24 12:09:32 2022 +0200
+++ b/templates/donate_thanks.html      Sun Aug 07 16:43:23 2022 +0200
@@ -5,7 +5,7 @@
 <div class="section bg-light">
     <div class="container">
         <section class="section-header text-center bg-light mb1">
-            <h1 class="pl-3 pr-3">{{ heart | safe }}Thanks You!</h1>
+            <h1 class="ps-3 pe-3">{{ heart | safe }}Thanks You!</h1>
         </section>
     </div>
 </div>
@@ -18,7 +18,7 @@
                 <span class="material-icons">sentiment_very_satisfied</span>
                 On behalf of the Tryton Community, we thank you for your 
support!
                 </p>
-                <p class="text-right">
+                <p class="text-end">
                 <small>
                     If you have any questions regarding your donations, please 
send us an email to <a href="foundat...@tryton.org">foundat...@tryton.org</a>.
                 </small>
diff -r e21d651dc807 -r ee3db5afe81d templates/download.html
--- a/templates/download.html   Sun Jul 24 12:09:32 2022 +0200
+++ b/templates/download.html   Sun Aug 07 16:43:23 2022 +0200
@@ -40,36 +40,36 @@
     <div class="row">
         <div class="col-xl-6 order-xl-2">
             <table class="table table-sm">
-                <thead class="thead-light">
+                <thead>
                     <tr>
                         <td></td>
-                        <th scope="col">User name</th>
-                        <th scope="col">Password</th>
+                        <th class="table-light" scope="col">User name</th>
+                        <th class="table-light" scope="col">Password</th>
                     </tr>
                 </thead>
                 <tbody>
                     <tr>
-                        <th scope="row">English</th>
+                        <th class="table-light" scope="row">English</th>
                         <td>demo</td>
                         <td>demo</td>
                     </tr>
                     <tr>
-                        <th scope="row">Español</th>
+                        <th class="table-light" scope="row">Español</th>
                         <td>demo_es</td>
                         <td>demo</td>
                     </tr>
                     <tr>
-                        <th scope="row">Français</th>
+                        <th class="table-light" scope="row">Français</th>
                         <td>demo_fr</td>
                         <td>demo</td>
                     </tr>
                     <tr>
-                        <th scope="row">Deutsch</th>
+                        <th class="table-light" scope="row">Deutsch</th>
                         <td>demo_de</td>
                         <td>demo</td>
                     </tr>
                     <tr>
-                        <th scope="row">Administrator</th>
+                        <th class="table-light" scope="row">Administrator</th>
                         <td>admin</td>
                         <td>admin</td>
                     </tr>
diff -r e21d651dc807 -r ee3db5afe81d templates/events/layout.html
--- a/templates/events/layout.html      Sun Jul 24 12:09:32 2022 +0200
+++ b/templates/events/layout.html      Sun Aug 07 16:43:23 2022 +0200
@@ -31,7 +31,7 @@
 <section class="section" id="schedule">
     <div class="container">
         <div class="section-header bg-white text-primary text-center">
-            <h2 class="pl-3 pr-3 text-uppercase"><span 
class="material-icons">timer</span> Schedule</h2>
+            <h2 class="ps-3 pe-3 text-uppercase"><span 
class="material-icons">timer</span> Schedule</h2>
         </div>
         {% block schedule %}
         <div class="mx-auto" style="max-width: 600px;">
@@ -90,7 +90,7 @@
 <section class="section bg-light" id="register">
     <div class="container">
         <div class="section-header bg-light">
-            <h2 class="pl-3 pr-3 text-uppercase">Register</h2>
+            <h2 class="ps-3 pe-3 text-uppercase">Register</h2>
         </div>
         {% block register %}
         {% endblock register %}
@@ -99,7 +99,7 @@
 <section class="section" id="venue">
     <div class="container">
         <div class="section-header bg-white">
-            <h2 class="pl-3 pr-3 text-uppercase">Venue <span 
class="material-icons">place</span></h2>
+            <h2 class="ps-3 pe-3 text-uppercase">Venue <span 
class="material-icons">place</span></h2>
         </div>
         {% block venue %}
         {% endblock venue %}
@@ -108,7 +108,7 @@
 <section class="section bg-light" id="accommodations">
     <div class="container">
         <div class="section-header bg-light">
-            <h2 class="pl-3 pr-3 text-uppercase">Accommodations <span 
class="material-icons">hotel</span></h2>
+            <h2 class="ps-3 pe-3 text-uppercase">Accommodations <span 
class="material-icons">hotel</span></h2>
         </div>
         {% block accommodations %}
         {% endblock accommodations %}
diff -r e21d651dc807 -r ee3db5afe81d templates/guidelines/documentation.html
--- a/templates/guidelines/documentation.html   Sun Jul 24 12:09:32 2022 +0200
+++ b/templates/guidelines/documentation.html   Sun Aug 07 16:43:23 2022 +0200
@@ -88,7 +88,7 @@
     <p>To ensure consistency for certain words and terms always use:</p>
     <dl class="bg-light p-2">
         <dt>Tryton</dt>
-        <dd class="pl-4">This is always capitalised, unless referring to the 
<span class="text-monospace">tryton</span> command for the desktop client.</dd>
+        <dd class="ps-4">This is always capitalised, unless referring to the 
<span class="text-monospace">tryton</span> command for the desktop client.</dd>
     </dl>
     <p>
     Also avoid using the word ERP after Tryton.
@@ -143,20 +143,20 @@
     <p>A few useful examples of standard roles include:</p>
     <dl>
         <dt><code>:abbr:`TST (Test Sphinx Thing)`</code></dt>
-        <dd class="pl-4">Used to define abbreviations.
+        <dd class="ps-4">Used to define abbreviations.
             The abbreviation definition can be given inside brackets and is 
only shown as a tooltip.</dd>
         <dt><code>:command:`trytond_import_countries`</code></dt>
-        <dd class="pl-4">Used for the name of commands or scripts.</dd>
+        <dd class="ps-4">Used for the name of commands or scripts.</dd>
         <dt><code>:doc:`Style Guide &lt;style&gt;`</code></dt>
-        <dd class="pl-4">Used to link to a documentation file.</dd>
+        <dd class="ps-4">Used to link to a documentation file.</dd>
         <dt><code>:file:`modules/{module_name}/doc/index.rst`</code></dt>
-        <dd class="pl-4">Used for filenames.
+        <dd class="ps-4">Used for filenames.
             Parts that may vary can be included with <mark>{variable}</mark> 
syntax, these are displayed differently to indicate that they should be 
replaced by the correct value when used.</dd>
         <dt><code>:guilabel:`Open related records`</code></dt>
-        <dd class="pl-4">Used for any element in the <abbr title="Graphical 
User Interface">GUI</abbr>.
+        <dd class="ps-4">Used for any element in the <abbr title="Graphical 
User Interface">GUI</abbr>.
             This includes button labels, window titles, menu names, and so 
on.</dd>
         <dt><code>:menuselection:`Administration --> Users --> 
Users`</code></dt>
-        <dd class="pl-4">Used for menu items.
+        <dd class="ps-4">Used for menu items.
             Each level is separated using <code>--></code>.
             <p>
             To create a <code>:menuselection:</code> item that is also a link 
you need to use substitutions:</p>
@@ -171,7 +171,7 @@
             Where possible try and put <code>:menuselection:</code> items in 
an indented paragraph of their own so they won't break across lines.
             If this is not possible then enclose them in <code>[</code>square 
brackets<code>]</code> to help make them easier to read.</p></dd>
         <dt><code>:rfc:`2324`</code></dt>
-        <dd class="pl-4">Used for links to Internet Request for Comments.
+        <dd class="ps-4">Used for links to Internet Request for Comments.
             Just use the RFC's number.</dd>
     </dl>
 </div>
@@ -183,11 +183,11 @@
     Depending on what the module does, and how it is structured you may need 
some, or all, of the following files:</p>
     <dl>
         <dt class="text-monospace">conf.py</dt>
-        <dd class="pl-4"><p>
+        <dd class="ps-4"><p>
             This file is required, and is the Sphinx configuration file.
             It must be kept exactly the same as the <span 
class="text-monospace">conf.py</span> files in the all the other 
modules.</p></dd>
         <dt class="text-monospace">index.rst</dt>
-        <dd class="pl-4"><p>
+        <dd class="ps-4"><p>
             This file is also required and should include a basic description 
of the module and a table of contents (<code>toctree</code> directive) that 
links to the other files with a <code>maxdepth</code> of 2.</p>
             <p class="bg-warning rounded p-2">
             <span class="material-icons">warning</span>
@@ -198,24 +198,24 @@
             <p>
             The reason it is okay to use a <code>toctree</code> directive is 
because the build process knows about these and automatically strips them out 
when building the distribution file.</p></dd>
         <dt class="text-monospace">setup.rst</dt>
-        <dd class="pl-4"><p>
+        <dd class="ps-4"><p>
             The aim of this file is to describe any setup that needs to be 
done once a module has been activated.
             Often this setup will need to be done by the user before the 
module can be used properly.</p>
             <p>
             Add sections to this file that describe the setup that is required 
and how it is done, for example <mark>"Doing a specific module setup 
task"</mark>, or <mark>"Setting up the thing to do something"</mark>.</p></dd>
         <dt class="text-monospace">usage.rst</dt>
-        <dd class="pl-4"><p>
+        <dd class="ps-4"><p>
             The contents of this file are intended for users of the system.
             So it should talk to these readers directly and you can refer to 
them in the second person.
             This means you can use sentences like <mark>"Your system ... then 
you need to ..."</mark>.</p>
             <p>
             It should contain sections that provide instructions or guidance 
on using a feature of the module, for example <mark>"Using the main feature in 
the module"</mark>, or <mark>"Working with a specific part of the 
module"</mark>.</p></dd>
         <dt class="text-monospace">configuration.rst</dt>
-        <dd class="pl-4"><p>
+        <dd class="ps-4"><p>
             This file should contain each of the server configuration settings 
that the module provides.
             Each configuration option should be described mentioning what it 
is for, or what it does.</p></dd>
         <dt class="text-monospace">design.rst</dt>
-        <dd class="pl-4"><p>
+        <dd class="ps-4"><p>
             The design and structure of the module is described in this file.
             Try and focus on the concepts that the module introduces or 
extends.
             Often these concepts are implemented in Tryton as models, but it 
is the concepts and how they fit together that are important.</p>
@@ -225,7 +225,7 @@
             Wizards and reports should be documented in sections beneath the 
concepts that they relate to.
             If they are used with several different models then document them 
as part of either the primary, or first, model that they relate to, and then 
link to them from any other models that use them.</p></dd>
         <dt class="text-monospace">reference.rst</dt>
-        <dd class="pl-4"><p>
+        <dd class="ps-4"><p>
             This file is used to provide reference information for people who 
are developing or working on the module.
             It includes sections that document any APIs or routes the module 
provides, as well as documentation on how to build or update parts of the 
module.</p></dd>
     </dl>
diff -r e21d651dc807 -r ee3db5afe81d templates/guidelines/help.html
--- a/templates/guidelines/help.html    Sun Jul 24 12:09:32 2022 +0200
+++ b/templates/guidelines/help.html    Sun Aug 07 16:43:23 2022 +0200
@@ -106,25 +106,25 @@
     To keep things consistent use one of the standard help text values for 
these:</p>
     <dl>
         <dt>Name <span class="small">(name)</span>:</dt>
-        <dd class="pl-4 text-info">This should be pretty obvious and so no 
help text is normally required.</dd>
+        <dd class="ps-4 text-info">This should be pretty obvious and so no 
help text is normally required.</dd>
         <dt>Name <span class="small">(rec_name)</span>:</dt>
-        <dd class="pl-4">The main identifier for the 
<mark>MODEL-NAME</mark>.</dd>
+        <dd class="ps-4">The main identifier for the 
<mark>MODEL-NAME</mark>.</dd>
         <dt>Parent:</dt>
-        <dd class="pl-4">Used to add structure above the 
<mark>MODEL-NAME</mark>.</dd>
+        <dd class="ps-4">Used to add structure above the 
<mark>MODEL-NAME</mark>.</dd>
         <dt>Children:</dt>
-        <dd class="pl-4">Used to add structure below the 
<mark>MODEL-NAME</mark>.</dd>
+        <dd class="ps-4">Used to add structure below the 
<mark>MODEL-NAME</mark>.</dd>
         <dt>Number:</dt>
-        <dd class="pl-4">The main identifier for the 
<mark>MODEL-NAME</mark>.</dd>
+        <dd class="ps-4">The main identifier for the 
<mark>MODEL-NAME</mark>.</dd>
         <dt>Code:</dt>
-        <dd class="pl-4">The internal identifier for the 
<mark>MODEL-NAME</mark>.</dd>
+        <dd class="ps-4">The internal identifier for the 
<mark>MODEL-NAME</mark>.</dd>
         <dt>Reference:</dt>
-        <dd class="pl-4">The external identifier for the 
<mark>MODEL-NAME</mark>.</dd>
+        <dd class="ps-4">The external identifier for the 
<mark>MODEL-NAME</mark>.</dd>
         <dt>Origin:</dt>
-        <dd class="pl-4">The source of the <mark>MODEL-NAME</mark>.</dd>
+        <dd class="ps-4">The source of the <mark>MODEL-NAME</mark>.</dd>
         <dt>Company:</dt>
-        <dd class="pl-4">The company that the <mark>MODEL-NAME</mark> is 
associated with.</dd>
+        <dd class="ps-4">The company that the <mark>MODEL-NAME</mark> is 
associated with.</dd>
         <dt>State:</dt>
-        <dd class="pl-4">The current state of the <mark>MODEL-NAME</mark>.</dd>
+        <dd class="ps-4">The current state of the <mark>MODEL-NAME</mark>.</dd>
     </dl>
 </div>
 {% endblock main %}
diff -r e21d651dc807 -r ee3db5afe81d templates/index.html
--- a/templates/index.html      Sun Jul 24 12:09:32 2022 +0200
+++ b/templates/index.html      Sun Aug 07 16:43:23 2022 +0200
@@ -12,24 +12,24 @@
 {% endblock head %}
 {% block header %}
 {{ super() }}
-<div id="carousel-header" class="carousel slide carousel-fade" 
data-ride="carousel">
+<div id="carousel-header" class="carousel slide carousel-fade" 
data-bs-ride="carousel">
     <ol class="carousel-indicators">
-        <li data-target="#carousel-header" data-slide-to="0" class="active">
+        <li data-bs-target="#carousel-header" data-bs-slide-to="0" 
class="active">
             <noscript>
                 <label for="carousel-0"> </label>
             </noscript>
         </li>
-        <li data-target="#carousel-header" data-slide-to="1">
+        <li data-bs-target="#carousel-header" data-bs-slide-to="1">
             <noscript>
                 <label for="carousel-1"> </label>
             </noscript>
         </li>
-        <li data-target="#carousel-header" data-slide-to="2">
+        <li data-bs-target="#carousel-header" data-bs-slide-to="2">
             <noscript>
                 <label for="carousel-2"> </label>
             </noscript>
         </li>
-        <li data-target="#carousel-header" data-slide-to="3">
+        <li data-bs-target="#carousel-header" data-bs-slide-to="3">
             <noscript>
                 <label for="carousel-3"> </label>
             </noscript>
@@ -113,7 +113,7 @@
 <section class="section bg-light text-center" id="features">
     <div class="container">
         <section class="section-header bg-light text-primary">
-            <h2 class="pl-3 pr-3 text-uppercase">All you need to run your 
business</h2>
+            <h2 class="ps-3 pe-3 text-uppercase">All you need to run your 
business</h2>
         </section>
         <h3 class="lead">
             {% include 'tryton-tm.html' %} includes all these features 
<strong>fully integrated</strong>
@@ -246,7 +246,7 @@
 <section class="section" id="news">
     <div class="container">
         <section class="section-header bg-white">
-            <h3 class="pr-3 text-uppercase"><a href="{{ url_for('news') 
}}">News</a></h3>
+            <h3 class="pe-3 text-uppercase"><a href="{{ url_for('news') 
}}">News</a></h3>
         </section>
         <div class="row">
             {% for item in news[:3] %}
@@ -256,7 +256,7 @@
                 {{ item.description|news_text|truncate(240) }}
                 </p>
                 <div class="d-flex">
-                    <a class="btn btn-primary ml-auto" href="{{ item.link 
}}">More<span class="sr-only">on "{{ item.title }}"</span></a>
+                    <a class="btn btn-primary ms-auto" href="{{ item.link 
}}">More<span class="visually-hidden">on "{{ item.title }}"</span></a>
                 </div>
             </div>
             {% endfor %}
@@ -283,7 +283,7 @@
                             If you are organizing an event around Tryton and 
want to be listed here, please send us an email
                             </p>
                             <div class="d-flex">
-                                <a class="btn btn-dark ml-auto" 
href="mailto:foundat...@tryton.org";>Send</a>
+                                <a class="btn btn-dark ms-auto" 
href="mailto:foundat...@tryton.org";>Send</a>
                             </div>
                         </div>
                     </div>
@@ -304,8 +304,8 @@
                             </dl>
                         </div>
                         <div class="col-lg-2 d-flex flex-column 
justify-content-between">
-                            <a class="btn btn-outline-secondary" href="{{ 
url_for('events-ics') }}">Add<span class="sr-only"> to calendar</span></a>
-                            <a class="btn btn-secondary" href="{{ 
url_for('events') }}">More<span class="sr-only"> events</span></a>
+                            <a class="btn btn-outline-secondary" href="{{ 
url_for('events-ics') }}">Add<span class="visually-hidden"> to 
calendar</span></a>
+                            <a class="btn btn-secondary" href="{{ 
url_for('events') }}">More<span class="visually-hidden"> events</span></a>
                         </div>
                     </div>
                 </div>
diff -r e21d651dc807 -r ee3db5afe81d templates/layout-toc.html
--- a/templates/layout-toc.html Sun Jul 24 12:09:32 2022 +0200
+++ b/templates/layout-toc.html Sun Aug 07 16:43:23 2022 +0200
@@ -3,7 +3,7 @@
 <ul class="{{ klass }}">
     {% for name, anchor, sub in toc %}
     <li class="nav-item">
-        <a class="nav-link pl-3 py-1" href="#{{ anchor }}">{{ name }}</a>
+        <a class="nav-link ps-3 py-1" href="#{{ anchor }}">{{ name }}</a>
         {% if sub %}
         {{ nav(sub) }}
         {% endif %}
@@ -18,7 +18,7 @@
             {{ super() }}
             {% block toc %}
             <div class="d-none d-md-block col-md-2 order-2 sticky-top" 
style="top: 1rem; height: 100%;">
-                {{ nav(toc, "nav flex-column border-left") }}
+                {{ nav(toc, "nav flex-column border-start") }}
             </div>
             {% endblock toc %}
             <main class="col-sm-12 col-md-8 offset-md-2 order-1">
diff -r e21d651dc807 -r ee3db5afe81d templates/layout.html
--- a/templates/layout.html     Sun Jul 24 12:09:32 2022 +0200
+++ b/templates/layout.html     Sun Aug 07 16:43:23 2022 +0200
@@ -65,8 +65,8 @@
                     <a class="navbar-brand" href="{{ url_for('index') }}">
                         <img class="img-fluid" src="{{ url_for('static', 
filename='images/tryton-black.png') }}" width="110" height="32" alt="Tryton 
Home"/>
                     </a>
-                    <a href="#content" class="sr-only sr-only-focusable">Skip 
to main content</a>
-                    <button class="navbar-toggler" type="button" 
data-toggle="collapse" data-target="#navbarText" aria-controls="navbarText" 
aria-expanded="false" aria-label="Toggle navigation">
+                    <a href="#content" class="visually-hidden 
visually-hidden-focusable">Skip to main content</a>
+                    <button class="navbar-toggler" type="button" 
data-bs-toggle="collapse" data-bs-target="#navbarText" 
aria-controls="navbarText" aria-expanded="false" aria-label="Toggle navigation">
                         <span class="navbar-toggler-icon"></span>
                     </button>
                     <noscript>
@@ -76,11 +76,11 @@
                     </noscript>
                     <input id="navbarButton" class="navbar-toggler d-none" 
aria-controls="navbarText" role="button" type="checkbox"/>
                     <div class="collapse navbar-collapse" id="navbarText">
-                        <ul class="navbar-nav ml-auto">
+                        <ul class="navbar-nav ms-auto">
                             {% for title, items in menu.items() %}
                             <li class="nav-item dropdown">
-                                <a class="nav-link dropdown-toggle" href="#" 
data-toggle="dropdown" aria-haspopup="true">{{ title }}</a>
-                                <div class="dropdown-menu dropdown-menu-right 
text-lg-right">
+                                <a class="nav-link dropdown-toggle" href="#" 
data-bs-toggle="dropdown" aria-haspopup="true">{{ title }}</a>
+                                <div class="dropdown-menu dropdown-menu-end 
text-lg-end">
                                     {% for item, url in items %}
                                     <a class="dropdown-item" href="{{ url 
}}">{{ item|safe }}</a>
                                     {% endfor %}
@@ -147,7 +147,7 @@
                             </div>
                         </div>
                         <div class="offset-lg-1 col-md-5 col-lg-4">
-                            <div class="footer-right">
+                            <div class="footer-end">
                                 <noscript class="loading-lazy">
                                     <img class="img-fluid" src="{{ 
url_for('static', filename='images/tryton-white.png') }}" width="110" 
height="32" alt="Tryton" loading="lazy"/>
                                 </noscript>
@@ -158,13 +158,13 @@
                                 </p>
                                 <div class="socials">
                                     <h2>Follow us</h2>
-                                    <a href="{{ url_for('news_rss') }}" 
class="mr-3">{{ icon('rss-box', 36) }}<span class="sr-only">RSS</span></a>
-                                    <a 
href="https://twitter.com/TrytonSoftware"; target="_blank" rel="noopener" 
class="mr-3">{{ icon('twitter-box', 36) }}<span 
class="sr-only">Twitter</span></a>
-                                    <a href="https://fosstodon.org/@tryton"; 
target="_blank" rel="noopener" class="mr-3">{{ icon('mastodon', 36) }}<span 
class="sr-only">Mastodon</span></a>
-                                    <a 
href="https://www.facebook.com/TrytonSoftware/"; target="_blank" rel="noopener" 
class="mr-3">{{ icon('facebook-box', 36) }}<span 
class="sr-only">Facebook</span></a>
-                                    <a 
href="https://www.linkedin.com/groups/1313967"; target="_blank" rel="noopener" 
class="mr-3">{{ icon('linkedin-box', 36) }}<span 
class="sr-only">LinkedIn</span></a>
-                                    <a 
href="https://www.youtube.com/c/TrytonSoftware"; target="_blank" rel="noopener" 
class="mr-3">{{ icon('youtube', 36) }}<span class="sr-only">YouTube</span></a>
-                                    <a href="https://vimeo.com/groups/tryton"; 
target="_blank" rel="noopener" class="mr-3">{{ icon('vimeo', 36) }}<span 
class="sr-only">Vimeo</span></a>
+                                    <a href="{{ url_for('news_rss') }}" 
class="me-3">{{ icon('rss-box', 36) }}<span 
class="visually-hidden">RSS</span></a>
+                                    <a 
href="https://twitter.com/TrytonSoftware"; target="_blank" rel="noopener" 
class="me-3">{{ icon('twitter-box', 36) }}<span 
class="visually-hidden">Twitter</span></a>
+                                    <a href="https://fosstodon.org/@tryton"; 
target="_blank" rel="noopener" class="me-3">{{ icon('mastodon', 36) }}<span 
class="visually-hidden">Mastodon</span></a>
+                                    <a 
href="https://www.facebook.com/TrytonSoftware/"; target="_blank" rel="noopener" 
class="me-3">{{ icon('facebook-box', 36) }}<span 
class="visually-hidden">Facebook</span></a>
+                                    <a 
href="https://www.linkedin.com/groups/1313967"; target="_blank" rel="noopener" 
class="me-3">{{ icon('linkedin-box', 36) }}<span 
class="visually-hidden">LinkedIn</span></a>
+                                    <a 
href="https://www.youtube.com/c/TrytonSoftware"; target="_blank" rel="noopener" 
class="me-3">{{ icon('youtube', 36) }}<span 
class="visually-hidden">YouTube</span></a>
+                                    <a href="https://vimeo.com/groups/tryton"; 
target="_blank" rel="noopener" class="me-3">{{ icon('vimeo', 36) }}<span 
class="visually-hidden">Vimeo</span></a>
                                 </div>
                             </div>
                         </div>
@@ -175,7 +175,7 @@
                 <div class="container">
                     <div class="row">
                         <div class="col col-12 col-md-6">Contents © {{ 
copyright_dates }} Tryton <a 
href="https://creativecommons.org/licenses/by-sa/3.0/";>CC BY-SA 3.0</a></div>
-                        <div class="col col-12 col-md-6 text-md-right">Made 
with <a target="_blank" rel="noopener" 
href="https://www.palletsprojects.com/p/flask/";>Flask</a> and delivered through 
<a target="_blank" rel="noopener" 
href="https://www.keycdn.com/?a=69381";>KeyCDN</a></div>
+                        <div class="col col-12 col-md-6 text-md-end">Made with 
<a target="_blank" rel="noopener" 
href="https://www.palletsprojects.com/p/flask/";>Flask</a> and delivered through 
<a target="_blank" rel="noopener" 
href="https://www.keycdn.com/?a=69381";>KeyCDN</a></div>
                     </div>
                 </div>
             </div>
diff -r e21d651dc807 -r ee3db5afe81d templates/service_providers.html
--- a/templates/service_providers.html  Sun Jul 24 12:09:32 2022 +0200
+++ b/templates/service_providers.html  Sun Aug 07 16:43:23 2022 +0200
@@ -7,7 +7,7 @@
 <div class="section bg-primary">
     <div class="container">
         <section class="section-header text-center text-white bg-primary mb1">
-            <h1 class="pl-3 pr-3">{{ title }}</h1>
+            <h1 class="ps-3 pe-3">{{ title }}</h1>
         </section>
         <div id="map-card" class="d-none d-sm-block mx-auto col-md-6 card">
             <div class="card-body">
diff -r e21d651dc807 -r ee3db5afe81d templates/service_providers_start.html
--- a/templates/service_providers_start.html    Sun Jul 24 12:09:32 2022 +0200
+++ b/templates/service_providers_start.html    Sun Aug 07 16:43:23 2022 +0200
@@ -37,7 +37,7 @@
 
 <div class="card mb-5 shadow w-100">
     <div class="card-body d-inline-flex">
-        <div class="picto-container mr-3 d-none d-sm-flex">
+        <div class="picto-container me-3 d-none d-sm-flex">
             <div class="picto bg-dark text-white">
                 <span class="material-icons md-48">build</span>
             </div>
@@ -54,7 +54,7 @@
 
 <div class="card mb-5 shadow w-100">
     <div class="card-body d-inline-flex">
-        <div class="picto-container mr-3 d-none d-sm-flex">
+        <div class="picto-container me-3 d-none d-sm-flex">
             <div class="picto bg-dark text-white">
                 <span class="material-icons md-48">send</span>
             </div>
@@ -71,7 +71,7 @@
 
 <div class="card mb-5 shadow w-100">
     <div class="card-body d-inline-flex">
-        <div class="picto-container mr-3 d-none d-sm-flex">
+        <div class="picto-container me-3 d-none d-sm-flex">
             <div class="picto bg-dark text-white">
                 <span class="material-icons md-48">create</span>
             </div>
@@ -88,7 +88,7 @@
 
 <div class="card mb-5 shadow w-100">
     <div class="card-body d-inline-flex">
-        <div class="picto-container mr-3 d-none d-sm-flex">
+        <div class="picto-container me-3 d-none d-sm-flex">
             <div class="picto bg-dark text-white">
                 <span class="material-icons md-48">update</span>
             </div>
diff -r e21d651dc807 -r ee3db5afe81d 
templates/success_stories/advocate-consulting-legal-group.html
--- a/templates/success_stories/advocate-consulting-legal-group.html    Sun Jul 
24 12:09:32 2022 +0200
+++ b/templates/success_stories/advocate-consulting-legal-group.html    Sun Aug 
07 16:43:23 2022 +0200
@@ -7,7 +7,7 @@
 {% block customer %}
 {{ super() }}
 <noscript class="loading-lazy">
-    <img src="{{ url_for('static', 
filename='images/success-stories/advocate-consulting-legal-group/advocate-consulting.jpg')
 }}" class="mx-4 float-left" alt="Advocate Consulting" loading="lazy">
+    <img src="{{ url_for('static', 
filename='images/success-stories/advocate-consulting-legal-group/advocate-consulting.jpg')
 }}" class="mx-4 float-start" alt="Advocate Consulting" loading="lazy">
 </noscript>
 <p class="lead"><a href="https://www.advocatetax.com/";>Advocate Consulting 
Legal Group, PLLC</a>is a US-based law and accounting firm that services the 
general aviation industry.
 Advocate’s product goes by the slogan, "Aviation TLC," standing for "tax, 
legal, and compliance," which are areas of service that map onto the needs of 
customers in this unique industry.</p>
diff -r e21d651dc807 -r ee3db5afe81d templates/success_stories/ammeba.html
--- a/templates/success_stories/ammeba.html     Sun Jul 24 12:09:32 2022 +0200
+++ b/templates/success_stories/ammeba.html     Sun Aug 07 16:43:23 2022 +0200
@@ -8,7 +8,7 @@
 {{ super() }}
 <p class="lead">
 <noscript class="loading-lazy">
-    <img src="{{ url_for('static', 
filename='images/success-stories/ammeba/logo.jpg') }}" class="mr-2 float-left" 
alt="Ammeba logo" loading="lazy">
+    <img src="{{ url_for('static', 
filename='images/success-stories/ammeba/logo.jpg') }}" class="me-2 float-start" 
alt="Ammeba logo" loading="lazy">
 </noscript>
 <a href="http://ammeba.femeba.org.ar/";>FEMEBA</a> is the Buenos Aires Medical 
Mutual Society.
 It's one of the largest medical groups in the country. They use an e-commerce 
platform to deliver services to their associates.</p>
diff -r e21d651dc807 -r ee3db5afe81d templates/success_stories/camir.html
--- a/templates/success_stories/camir.html      Sun Jul 24 12:09:32 2022 +0200
+++ b/templates/success_stories/camir.html      Sun Aug 07 16:43:23 2022 +0200
@@ -8,7 +8,7 @@
 {{ super() }}
 <p class="lead">
 <noscript class="loading-lazy">
-    <img src="{{ url_for('static', 
filename='images/success-stories/camir/warehouse1.jpg') }}" class="mx-auto my-4 
d-block mx-md-4 my-md-0 float-md-left" alt="Zone C of CAMIR's warehouse" 
loading="lazy">
+    <img src="{{ url_for('static', 
filename='images/success-stories/camir/warehouse1.jpg') }}" class="mx-auto my-4 
d-block mx-md-4 my-md-0 float-md-start" alt="Zone C of CAMIR's warehouse" 
loading="lazy">
 </noscript>
 <a href="https://www.camirperu.com/";>CAMIR</a>, is a company whose main 
activities are the commercialization of industrial products and the manufacture 
of metal parts at the business to business level, one of its main clients is 
the largest brewery factory in Peru.</p>
 <p>It started operations in 1991 and is located in the JR. HELIO NRO. 5624 
URB. INDUSTRIAL INFANTAS - LOS OLIVOS - LIMA - PERU.</p>
@@ -35,7 +35,7 @@
 From this we were able to work out what Tryton modules were needed to support 
all of the businesses processes.</p>
 <p>
 <noscript class="loading-lazy">
-    <img src="{{ url_for('static', 
filename='images/success-stories/camir/warehouse2.jpg') }}" class="mx-auto my-4 
d-block mx-md-4 my-md-0 float-md-right" alt="Zone B of CAMIR's warehouse" 
loading="lazy">
+    <img src="{{ url_for('static', 
filename='images/success-stories/camir/warehouse2.jpg') }}" class="mx-auto my-4 
d-block mx-md-4 my-md-0 float-md-end" alt="Zone B of CAMIR's warehouse" 
loading="lazy">
 </noscript>
 The modules that were needed were the following:</p>
 <ul>
diff -r e21d651dc807 -r ee3db5afe81d templates/success_stories/grufesa.html
--- a/templates/success_stories/grufesa.html    Sun Jul 24 12:09:32 2022 +0200
+++ b/templates/success_stories/grufesa.html    Sun Aug 07 16:43:23 2022 +0200
@@ -8,7 +8,7 @@
 {{ super() }}
 <p class="lead">
 <noscript class="loading-lazy">
-    <img src="{{ url_for('static', 
filename='images/success-stories/grufesa/grufesa.jpg') }}" class="mx-4 
float-right" alt="strawberries" loading="lazy">
+    <img src="{{ url_for('static', 
filename='images/success-stories/grufesa/grufesa.jpg') }}" class="mx-4 
float-end" alt="strawberries" loading="lazy">
 </noscript>
 <a href="http://grufesa.com/";>Grufesa SAT</a> is one of the biggest berry 
exporters in Europe.
 Over the last 35 years millions of people from across Europe, Russia and 
America have consumed strawberries they have produced.
diff -r e21d651dc807 -r ee3db5afe81d templates/success_stories/koolvet.html
--- a/templates/success_stories/koolvet.html    Sun Jul 24 12:09:32 2022 +0200
+++ b/templates/success_stories/koolvet.html    Sun Aug 07 16:43:23 2022 +0200
@@ -8,7 +8,7 @@
 {{ super() }}
 <p class="lead">
 <noscript class="loading-lazy">
-    <img src="{{ url_for('static', 
filename='images/success-stories/koolvet/cat.jpg') }}" class="mx-4 float-right" 
alt="cat with veterinary" loading="lazy">
+    <img src="{{ url_for('static', 
filename='images/success-stories/koolvet/cat.jpg') }}" class="mx-4 float-end" 
alt="cat with veterinary" loading="lazy">
 </noscript>
 <a href="https://www.koolvet.com/";>Koolvet</a> is a young company based in 
Spain but expanding to South America.
 It offers veterinary software for the management of clinics, veterinary 
offices, universities and ambulant veterinarians.
@@ -63,7 +63,7 @@
 {{ super() }}
 <p>
 <noscript class="loading-lazy">
-    <img src="{{ url_for('static', 
filename='images/success-stories/koolvet/results.jpg') }}" class="mx-4 
float-left" alt="computer with koolvet software" loading="lazy">
+    <img src="{{ url_for('static', 
filename='images/success-stories/koolvet/results.jpg') }}" class="mx-4 
float-start" alt="computer with koolvet software" loading="lazy">
 </noscript>
 Our customers are extremely happy with koolvet: They can access their 
information from anywhere using any device.
 All the team members always have easy access to information that is always up 
to date, and their processes have been streamlined making them simpler and less 
error prone.
diff -r e21d651dc807 -r ee3db5afe81d templates/success_stories/mifarma.html
--- a/templates/success_stories/mifarma.html    Sun Jul 24 12:09:32 2022 +0200
+++ b/templates/success_stories/mifarma.html    Sun Aug 07 16:43:23 2022 +0200
@@ -8,7 +8,7 @@
 {{ super() }}
 <p class="lead">
     <noscript class="loading-lazy">
-        <img src="{{ url_for('static', 
filename='images/success-stories/mifarma/mifarma.jpg') }}" class="mx-4 
float-right" alt="online-parapharmacy" loading="lazy">
+        <img src="{{ url_for('static', 
filename='images/success-stories/mifarma/mifarma.jpg') }}" class="mx-4 
float-end" alt="online-parapharmacy" loading="lazy">
     </noscript>
     <a href="https://www.mifarma.es/";>Mifarma</a> is one of the most important 
parapharmacies in Europe and currently is the market leader in Spain.
     It is part of the Atida Group and it also has a presence in other 
countries such as Portugal, Italy, France, the United Kingdom, Germany and the 
Netherlands.
diff -r e21d651dc807 -r ee3db5afe81d templates/success_stories/revelle.html
--- a/templates/success_stories/revelle.html    Sun Jul 24 12:09:32 2022 +0200
+++ b/templates/success_stories/revelle.html    Sun Aug 07 16:43:23 2022 +0200
@@ -8,7 +8,7 @@
 {{ super() }}
 <p class="lead">
 <noscript class="loading-lazy">
-    <img src="{{ url_for('static', 
filename='images/success-stories/revelle/office.jpg') }}" class="ml-2 
float-right" alt="Revelle's office" loading="lazy">
+    <img src="{{ url_for('static', 
filename='images/success-stories/revelle/office.jpg') }}" class="ms-2 
float-end" alt="Revelle's office" loading="lazy">
 </noscript>
 <a href="http://www.revellegroup.com/";>Revelle Group</a> is a Belgium-based 
consulting company working in developing countries and emerging economies in 
three key sectors: energy and climate change; environment; and sustainable 
economic and social development.</p>
 {% endblock customer %}
diff -r e21d651dc807 -r ee3db5afe81d 
templates/success_stories/wenger-energie.html
--- a/templates/success_stories/wenger-energie.html     Sun Jul 24 12:09:32 
2022 +0200
+++ b/templates/success_stories/wenger-energie.html     Sun Aug 07 16:43:23 
2022 +0200
@@ -46,7 +46,7 @@
 {% block results %}
 {{ super() }}
 <noscript class="loading-lazy">
-    <img src="{{ url_for('static', 
filename='images/success-stories/wenger-energie/system.jpg') }}" class="mx-4 
float-right" alt="Employee with thumb up" loading="lazy">
+    <img src="{{ url_for('static', 
filename='images/success-stories/wenger-energie/system.jpg') }}" class="mx-4 
float-end" alt="Employee with thumb up" loading="lazy">
 </noscript>
 <p>Two years after implementation the big question to the employees was</p>
 <blockquote class="blockquote">
diff -r e21d651dc807 -r ee3db5afe81d templates/utils.html
--- a/templates/utils.html      Sun Jul 24 12:09:32 2022 +0200
+++ b/templates/utils.html      Sun Aug 07 16:43:23 2022 +0200
@@ -48,9 +48,7 @@
         <h2 class="h5 card-title">{{ case.title }}</h2>
         <p class="card-text">{{ case.description }}</p>
     </div>
-    <div class="card-footer text-center">
-        <a href="{{ case.url }}" class="btn btn-primary btn-block {{ 
'disabled' if not case.url else '' }}" {% if not case.url 
%}aria-disabled="true"{% endif %}>More<span class="sr-only">on {{ case.title 
}}</span></a>
-    </div>
+    <a href="{{ case.url }}" class="card-footer btn stretched-link {{ 
'disabled' if not case.url else '' }}" {% if not case.url 
%}aria-disabled="true"{% endif %}>More<span class="visually-hidden">on {{ 
case.title }}</span></a>
 </div>
 {% endmacro %}
 

Reply via email to