diff --git a/content/_index.md b/content/_index.md
index 9c99f3b..c98877a 100644
--- a/content/_index.md
+++ b/content/_index.md
@@ -18,7 +18,7 @@ title = "Librezo"
MontreuilNantesParisPauRennesRohanneToulouse
-Vos données personnelles devraient le rester
+
Reprenez le contrôle
@@ -33,10 +33,10 @@ title = "Librezo"
{{ square_box(title="Proximité", text="On vient l’installer chez vous") }}
{{ square_box(title="Écologie", text="On sauve des pandas") }}
{{ square_box(title="Savoir-faire", text="Vous êtes au contact des experts") }}
-{{ square_box(title="Solidarité", text="Nous reversons une partie de nos revenus au développement des logiciels utilisés") }}
+{{ square_box(title="Solidarité", text="15% de nos bénéfices sont reversés au développement des logiciels utilisés") }}
-
Pour qui ?
+
Pour qui ?
PME, Associations, Tout type de structure, Collectifs
@@ -51,7 +51,7 @@ PME, Associations, Tout type de structure, Collectifs
{{ process_box(number="4", title="Acquisition", description="Votre serveur GNU/Linux est prêt et 100% entre vos mains. Tests.") }}
-
Formations optionnelles
+
Accompagnements optionnels
{{ process_box(number="5", title="Accompagnement utilisateur", description="Apprenez en quelques heures à utiliser vos outils.") }}
diff --git a/content/contact.md b/content/contact.md
index 257e6e6..0438c8d 100644
--- a/content/contact.md
+++ b/content/contact.md
@@ -10,7 +10,7 @@ Pour un devis, pour rejoindre notre collectif ou pour toute question relative à
{% map() %}
[[43.3879, 6.0785], "Brignoles", [["Francis Drubigny"]]],
-//[[42.6998, 9.4518], "Bastia", [["Fred"]]],
+[[42.6998, 9.4518], "Bastia", [["Fred Romboni"]]],
[[44.4742, 1.8296], "Cajarc", [["Sylvestre Mignot"]]],
[[50.1718, 3.2305], "Cambrai", [["Tobias Ollive"]]],
[[43.6578, 6.9228], "Grasse", [["Ismaël Bouya"], ["Vincent Dubois"]]],
diff --git a/content/qui-sommes-nous.md b/content/qui-sommes-nous.md
index 7de8540..d81b381 100644
--- a/content/qui-sommes-nous.md
+++ b/content/qui-sommes-nous.md
@@ -1,5 +1,7 @@
+++
title = "Qui sommes-nous ?"
+[extra]
+carousel = true
+++
Librezo est un collectif décentralisé, né de la rencontre d'ami·es libristes désirant partager leur passion et leur savoir-faire dans le domaine des réseaux et du logiciel libre.
@@ -182,4 +184,29 @@ Librezo est un collectif décentralisé, né de la rencontre d'ami·es libristes
## Nos prestataires ont travaillé pour...
-Edf, Air-France, Airbus, CNES, Météo France, La Poste, la Ruche qui dit Oui, solucom, Tera
+{% carousel(id="carousel-prestaworkedfor") %}
+{{ carousel_item(msg='') }}
+{{ carousel_item(msg='') }}
+{{ carousel_item(msg='') }}
+{{ carousel_item(msg='') }}
+{{ carousel_item(msg='') }}
+{{ carousel_item(msg='') }}
+{{ carousel_item(msg='') }}
+{{ carousel_item(msg='') }}
+{{ carousel_item(msg='') }}
+{{ carousel_item(msg='') }}
+{{ carousel_item(msg='') }}
+{{ carousel_item(msg='') }}
+{{ carousel_item(msg='') }}
+{{ carousel_item(msg='') }}
+{{ carousel_item(msg='') }}
+{{ carousel_item(msg='') }}
+{{ carousel_item(msg='') }}
+{{ carousel_item(msg='') }}
+{{ carousel_item(msg='') }}
+{{ carousel_item(msg='') }}
+{{ carousel_item(msg='') }}
+{{ carousel_item(msg='') }}
+{% end %}
+
+(Les membres de Librezo ont travaillé pour ces structures hors du cadre de Librezo.)
diff --git a/sass/css/base.scss b/sass/css/base.scss
index dbd87bc..c8bb796 100644
--- a/sass/css/base.scss
+++ b/sass/css/base.scss
@@ -1,5 +1,6 @@
@import "defs";
+@import "carousel";
@import "clients";
@import "footer";
@import "header";
diff --git a/sass/css/carousel.scss b/sass/css/carousel.scss
new file mode 100644
index 0000000..55d019b
--- /dev/null
+++ b/sass/css/carousel.scss
@@ -0,0 +1,33 @@
+.carousel {
+ width: 100%;
+ display: flex;
+ gap: 16px;
+ align-content: center;
+ align-items: center;
+ justify-content: space-evenly;
+}
+
+// Zola generates noisy empty paragraphs
+.carousel p {
+ display: none;
+}
+
+.carousel-item {
+ display: inline-block;
+}
+
+.carousel-hidden {
+ display: none;
+}
+
+// Carousel: prestas worked for...
+
+.carousel-prestaworkedfor {
+ min-height: 128px;
+}
+
+.prestaworkedfor {
+ max-width: 128px;
+ max-height: 128px;
+ margin: auto;
+}
diff --git a/sass/css/square_box.scss b/sass/css/square_box.scss
index 2911275..70e9722 100644
--- a/sass/css/square_box.scss
+++ b/sass/css/square_box.scss
@@ -12,8 +12,9 @@
}
.square_box {
- width: 256px;
- height: 256px;
+ width: 200px;
+ min-height: 200px;
+ padding: 8px;
background: linear-gradient(-0.125turn, $blue, $violet);
}
diff --git a/static/img/drawings/404.png b/static/img/drawings/404.png
new file mode 100644
index 0000000..d1392bd
Binary files /dev/null and b/static/img/drawings/404.png differ
diff --git a/static/img/drawings/contact.png b/static/img/drawings/contact.png
new file mode 100644
index 0000000..b3baa63
Binary files /dev/null and b/static/img/drawings/contact.png differ
diff --git a/static/img/drawings/qui.png b/static/img/drawings/qui.png
new file mode 100644
index 0000000..dec9048
Binary files /dev/null and b/static/img/drawings/qui.png differ
diff --git a/static/img/prestasworkedfor/airbus.svg b/static/img/prestasworkedfor/airbus.svg
new file mode 100644
index 0000000..25d0d7f
--- /dev/null
+++ b/static/img/prestasworkedfor/airbus.svg
@@ -0,0 +1,6 @@
+
+
\ No newline at end of file
diff --git a/static/img/prestasworkedfor/airfrance.png b/static/img/prestasworkedfor/airfrance.png
new file mode 100644
index 0000000..c85dbea
Binary files /dev/null and b/static/img/prestasworkedfor/airfrance.png differ
diff --git a/static/img/prestasworkedfor/astrium.jpg b/static/img/prestasworkedfor/astrium.jpg
new file mode 100644
index 0000000..9636b1b
Binary files /dev/null and b/static/img/prestasworkedfor/astrium.jpg differ
diff --git a/static/img/prestasworkedfor/axiom.png b/static/img/prestasworkedfor/axiom.png
new file mode 100644
index 0000000..0ce50d2
Binary files /dev/null and b/static/img/prestasworkedfor/axiom.png differ
diff --git a/static/img/prestasworkedfor/cnes.png b/static/img/prestasworkedfor/cnes.png
new file mode 100644
index 0000000..e950b2c
Binary files /dev/null and b/static/img/prestasworkedfor/cnes.png differ
diff --git a/static/img/prestasworkedfor/edf.svg b/static/img/prestasworkedfor/edf.svg
new file mode 100644
index 0000000..32b9390
--- /dev/null
+++ b/static/img/prestasworkedfor/edf.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/static/img/prestasworkedfor/elsysdesign.svg b/static/img/prestasworkedfor/elsysdesign.svg
new file mode 100644
index 0000000..8d67136
--- /dev/null
+++ b/static/img/prestasworkedfor/elsysdesign.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/static/img/prestasworkedfor/fretlink.png b/static/img/prestasworkedfor/fretlink.png
new file mode 100644
index 0000000..d13cf8f
Binary files /dev/null and b/static/img/prestasworkedfor/fretlink.png differ
diff --git a/static/img/prestasworkedfor/hologic.webp b/static/img/prestasworkedfor/hologic.webp
new file mode 100644
index 0000000..e75bda1
Binary files /dev/null and b/static/img/prestasworkedfor/hologic.webp differ
diff --git a/static/img/prestasworkedfor/laposte.svg b/static/img/prestasworkedfor/laposte.svg
new file mode 100644
index 0000000..a2268dc
--- /dev/null
+++ b/static/img/prestasworkedfor/laposte.svg
@@ -0,0 +1,36 @@
+
\ No newline at end of file
diff --git a/static/img/prestasworkedfor/laruchequiditoui.svg b/static/img/prestasworkedfor/laruchequiditoui.svg
new file mode 100644
index 0000000..3fcec55
--- /dev/null
+++ b/static/img/prestasworkedfor/laruchequiditoui.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/static/img/prestasworkedfor/lyceejptimbaud.png b/static/img/prestasworkedfor/lyceejptimbaud.png
new file mode 100644
index 0000000..b62ad3b
Binary files /dev/null and b/static/img/prestasworkedfor/lyceejptimbaud.png differ
diff --git a/static/img/prestasworkedfor/meteofrance.png b/static/img/prestasworkedfor/meteofrance.png
new file mode 100644
index 0000000..cbf74af
Binary files /dev/null and b/static/img/prestasworkedfor/meteofrance.png differ
diff --git a/static/img/prestasworkedfor/novadiscovery.png b/static/img/prestasworkedfor/novadiscovery.png
new file mode 100644
index 0000000..8d6ff36
Binary files /dev/null and b/static/img/prestasworkedfor/novadiscovery.png differ
diff --git a/static/img/prestasworkedfor/open.global.png b/static/img/prestasworkedfor/open.global.png
new file mode 100644
index 0000000..1fc07ec
Binary files /dev/null and b/static/img/prestasworkedfor/open.global.png differ
diff --git a/static/img/prestasworkedfor/orange.svg b/static/img/prestasworkedfor/orange.svg
new file mode 100644
index 0000000..2f7a667
--- /dev/null
+++ b/static/img/prestasworkedfor/orange.svg
@@ -0,0 +1,19 @@
+
+
+
+
\ No newline at end of file
diff --git a/static/img/prestasworkedfor/philips.svg b/static/img/prestasworkedfor/philips.svg
new file mode 100644
index 0000000..a755a0f
--- /dev/null
+++ b/static/img/prestasworkedfor/philips.svg
@@ -0,0 +1,18 @@
+
+
+
\ No newline at end of file
diff --git a/static/img/prestasworkedfor/sagem.png b/static/img/prestasworkedfor/sagem.png
new file mode 100644
index 0000000..0d59358
Binary files /dev/null and b/static/img/prestasworkedfor/sagem.png differ
diff --git a/static/img/prestasworkedfor/solucom.webp b/static/img/prestasworkedfor/solucom.webp
new file mode 100644
index 0000000..843dbd8
Binary files /dev/null and b/static/img/prestasworkedfor/solucom.webp differ
diff --git a/static/img/prestasworkedfor/tera.png b/static/img/prestasworkedfor/tera.png
new file mode 100644
index 0000000..2e40ecc
Binary files /dev/null and b/static/img/prestasworkedfor/tera.png differ
diff --git a/static/img/prestasworkedfor/thales.svg b/static/img/prestasworkedfor/thales.svg
new file mode 100644
index 0000000..86e9a80
--- /dev/null
+++ b/static/img/prestasworkedfor/thales.svg
@@ -0,0 +1,13 @@
+
+
\ No newline at end of file
diff --git a/static/img/prestasworkedfor/trainline.svg b/static/img/prestasworkedfor/trainline.svg
new file mode 100644
index 0000000..4dc03ed
--- /dev/null
+++ b/static/img/prestasworkedfor/trainline.svg
@@ -0,0 +1,3 @@
+
diff --git a/static/js/carousel.js b/static/js/carousel.js
new file mode 100644
index 0000000..fb0a2b4
--- /dev/null
+++ b/static/js/carousel.js
@@ -0,0 +1,51 @@
+var carousels = [];
+
+class Carousel {
+ constructor(obj) {
+ this.obj = obj;
+ this.current = 0;
+ this.items = [];
+ this.items_widths = [];
+ for(var i = 0; i < this.obj.children.length; i ++) {
+ var item = this.obj.children[i];
+ if(item.classList.contains("carousel-item")) {
+ this.items.push(item);
+ this.items_widths.push(Math.min(item.offsetWidth, 128));
+ }
+ }
+ }
+ step() {
+ this.current = (this.current+1) % this.items.length;
+ var max_width = this.obj.offsetWidth;
+ var width = 16*this.items.length;
+ for(var i = 0; i < this.items.length; i ++) {
+ var j = (i + this.current) % this.items.length;
+ var item = this.items[j];
+ if(!item.classList.contains("carousel-hidden")) {
+ // Update width
+ this.items_widths[j] = Math.min(item.offsetWidth, 128);
+ }
+ width += this.items_widths[j];
+ if(width > max_width) {
+ item.classList.add("carousel-hidden");
+ } else {
+ this.obj.appendChild(item);
+ item.classList.remove("carousel-hidden");
+ }
+ }
+ }
+}
+
+function step_carousels() {
+ for(carousel of carousels) {
+ carousel.step();
+ }
+}
+
+window.onload = function() {
+ for(obj of document.getElementsByClassName("carousel")) {
+ carousels.push(new Carousel(obj))
+ }
+ step_carousels();
+ setInterval(step_carousels, 2000);
+};
diff --git a/templates/base.html b/templates/base.html
index 29f40bf..e03668a 100644
--- a/templates/base.html
+++ b/templates/base.html
@@ -63,5 +63,6 @@
+ {% if page.extra.carousel or section.extra.carousel %}{% endif %}