Compare commits

...

62 Commits

Author SHA1 Message Date
Florent Le Saout 352faad8ad Mise à jour package 2024-05-09 09:59:38 +02:00
Florent Le Saout 540b187710 Merge pull request 'Ajout Sylvain Lepoutre' (#91) from vincent.genieux/SiteWebAstrolabe:sylvain-lepoutre into master
Reviewed-on: AstrolabeCAE/SiteWebAstrolabe#91
2024-05-09 09:21:28 +02:00
Vincent Genieux bd0f251967 Ajout Sylvain Lepoutre 2024-05-06 15:04:52 +02:00
Florent Le Saout d0e855eaf6 Merge pull request 'Ajout profil Annabelle Palmisano' (#90) from vincent.genieux/SiteWebAstrolabe:annabelle-palmisano into master
Reviewed-on: AstrolabeCAE/SiteWebAstrolabe#90
2024-04-30 09:30:57 +02:00
Vincent Genieux f50857add2 ajout Annabelle Palmisano 2024-04-29 16:49:10 +02:00
Florent Le Saout 28c0b957cc Mise à jour réseaux sociaux : ajout chaine youtube 2024-04-24 15:23:16 +02:00
Florent Le Saout c985e79ad1 Mise à jour réseaux sociaux 2024-04-24 00:10:06 +02:00
Florent Le Saout 32770082ef Merge pull request 'modification du profil de claire' (#88) from vincent.genieux/SiteWebAstrolabe:claire into master
Reviewed-on: AstrolabeCAE/SiteWebAstrolabe#88
2024-04-17 21:24:51 +02:00
Florent Le Saout 730c70fac7 Merge branch 'master' into claire 2024-04-17 21:24:35 +02:00
Florent Le Saout fb4bc56c9c Merge pull request 'Modification du profil d'Antoine Naudy' (#87) from vincent.genieux/SiteWebAstrolabe:antoine into master
Reviewed-on: AstrolabeCAE/SiteWebAstrolabe#87
2024-04-17 21:24:20 +02:00
Vincent Genieux 3b516471a7 modif claire
https://ticket.astrolabe.coop/#ticket/zoom/56
2024-04-17 20:03:42 +02:00
Vincent Genieux e420012cd9 modification profil antoine 2024-04-12 16:23:04 +02:00
Florent Le Saout 10fbe4cc1b Merge pull request 'nouvelle image pour le poisson' (#86) from astro-stop-pv-final into master
Reviewed-on: AstrolabeCAE/SiteWebAstrolabe#86
2024-04-01 01:29:54 +02:00
Florent Le Saout 46b80318a6 Fix typo 2024-04-01 01:29:16 +02:00
Yannick Le Duc 6af43c3236 nouvelle image pour le poisson 2024-03-31 22:18:01 +02:00
Florent Le Saout e24979f2d1 Merge pull request 'Astro-stop-pv : blague du 1er avril' (#85) from astro-stop-pv into master
Reviewed-on: AstrolabeCAE/SiteWebAstrolabe#85
Reviewed-by: Florent Le Saout <florent.lesaout@astrolabe.coop>
2024-03-29 11:13:49 +01:00
Yannick Le Duc f1944ddfc7 changements mineurs dans l'astroblague 2024 en incluant les retours (je n'ai pas mis la partie GPS car elle me semblait surcharger la lecture déjà bien dense)
J'en ai profité pour nettoyer les noms et emplacements des fichiers pages/images des 2 poissons d'avril 2023 et 2024

J'ai rajouté aussi l'image/illustration de Guijaune pour la révélation du poisson, histoire de l'utiliser quand même.
2024-03-28 22:26:21 +01:00
Yannick Le Duc 0a2dcc18ee enleve "c'est top"... 2024-03-26 17:21:49 +01:00
Yannick Le Duc bde004fb83 change l'image de astro-stop-pv (prise photo du jour par moi même) 2024-03-26 17:20:10 +01:00
Yannick Le Duc e009ecc36c Merge branch 'astro-stop-pv' of ssh://git.astrolabe.coop:2106/AstrolabeCAE/SiteWebAstrolabe into astro-stop-pv 2024-03-26 17:15:59 +01:00
Yannick Le Duc 674df2bb5f simplification et allégement du texte de parties facultatives 2024-03-26 09:54:38 +01:00
Yannick Le Duc 9728cbd8b3 creation astroblague poisson avril 2024 2024-03-26 09:54:38 +01:00
Yannick Le Duc a6956a9b1c simplification et allégement du texte de parties facultatives 2024-03-26 08:34:32 +01:00
Yannick Le Duc 8503bd57a5 creation astroblague poisson avril 2024 2024-03-25 11:21:01 +01:00
Yannick Le Duc bc7572f902 Merge branch 'master' of ssh://git.astrolabe.coop:2106/AstrolabeCAE/SiteWebAstrolabe 2024-03-25 09:36:44 +01:00
Florent Le Saout 66c074eced Merge pull request 'fix(contactForm): append question in subject' (#84) from fix/contact-set-object into master
Reviewed-on: AstrolabeCAE/SiteWebAstrolabe#84
2024-03-21 17:36:48 +01:00
Jérémy Dufraisse 91186e6644 fix(contactForm): append question in subject 2024-03-21 12:49:00 +01:00
Florent Le Saout 71dd25ca44 Merge pull request 'fix(member): use right guess for email Address' (#83) from fix/member-contact-instead-of-main-contact2 into master
Reviewed-on: AstrolabeCAE/SiteWebAstrolabe#83
2024-03-20 15:19:18 +01:00
Jérémy Dufraisse f94f98b8da fix(member): use right guess for email Address 2024-03-20 15:13:31 +01:00
Florent Le Saout 21a1efbf7c Merge pull request 'fix(contactForm): use member contact when on member's page' (#82) from fix/member-contact-instead-of-main-contact into master
Reviewed-on: AstrolabeCAE/SiteWebAstrolabe#82
2024-03-20 15:04:23 +01:00
Jérémy Dufraisse 6f4eb9a844 fix(contactForm): use member contact when on member's page 2024-03-20 14:32:52 +01:00
Florent Le Saout 9fd1712328 Merge pull request 'feat/send-mail-to-member' (#81) from feat/send-mail-to-member into master
Reviewed-on: AstrolabeCAE/SiteWebAstrolabe#81
2024-03-20 14:04:38 +01:00
Jérémy Dufraisse 9690867817 fix(member-contact): prettier form 2024-03-20 13:10:28 +01:00
Jérémy Dufraisse 4380a086db fix(contact-form-handler-php): capture wantedContact and sanitize it rigthly 2024-03-20 13:10:28 +01:00
Jérémy Dufraisse b3b5ee6377 fix(htaccess): check if module activated 2024-03-20 13:10:28 +01:00
Jérémy Dufraisse 0806f09b4c fix(contactTo): define emailSlug if needed 2024-03-20 13:10:28 +01:00
Jérémy Dufraisse 0ad9951d77 refactor(_members.scss): eslint 2024-03-20 13:10:28 +01:00
Jérémy Dufraisse 63ccebb452 feat(contact-form): adapt to member 2024-03-20 13:10:28 +01:00
Jérémy Dufraisse 08fcc19e53 feat(members): create link to email form 2024-03-20 13:10:28 +01:00
Jérémy Dufraisse 2afe8ce4ba feat(members/contact): create pages 2024-03-20 13:10:28 +01:00
Jérémy Dufraisse 0b6c22c7a3 feat(contact-handler.php): manager other e-mails from POST 2024-03-20 13:10:28 +01:00
Jérémy Dufraisse 1dd30c2f75 refactor(contact-handler.php): PSR2 autoformat 2024-03-20 13:10:28 +01:00
Florent Le Saout b58b2357c0 Merge pull request 'SEO Optims' (#80) from seo-optims into master
Reviewed-on: AstrolabeCAE/SiteWebAstrolabe#80
2024-03-18 15:07:08 +01:00
kevin 80f8f7f5a1 fix(gautier): remove 404 2024-03-18 13:29:44 +01:00
kevin d72316cf86 feat(seo): add sitemap 2024-03-18 13:12:37 +01:00
kevin cbe1ce6626 fix(seo): avoid redirect to uncrawl pages without trailing slash 2024-03-18 13:10:30 +01:00
Florent Le Saout 7194cb5710 Mise à jour Profil Raphael 2024-03-15 15:09:14 +01:00
Florent Le Saout 4713f39579 Merge pull request 'fix(gps): for Loana P' (#79) from fix/right-gps-coordinates-for-loana-p into master
Reviewed-on: AstrolabeCAE/SiteWebAstrolabe#79
2024-03-13 10:19:38 +01:00
Jérémy Dufraisse afa68f0c75 fix(gps): for Loana P 2024-03-13 09:06:38 +01:00
Florent Le Saout 1e02057350 Ajout de la validation propriétaires 2024-03-05 00:26:22 +01:00
Florent Le Saout 4884d95433 Merge pull request 'Modification profil de francois bonningues' (#78) from francois-bonningues into master
Reviewed-on: AstrolabeCAE/SiteWebAstrolabe#78
2024-02-19 23:25:21 +01:00
Francois Bonningues f5b2c38328 [script][mail] Ajout script qui reconstitue l'adresse mail 2024-02-19 12:10:50 +01:00
Florent Le Saout 8a30e683c6 Merge branch 'master' into francois-bonningues 2024-02-18 15:27:05 +01:00
Florent Le Saout 0421c40e98 Merge pull request 'fix(footer): adjust margin for social icons' (#77) from fix-a11y into master
Reviewed-on: AstrolabeCAE/SiteWebAstrolabe#77
2024-02-18 15:26:26 +01:00
Francois Bonningues 7b9fd60563 Modification profil de francois bonningues 2024-02-18 10:54:11 +01:00
kevin 00f92a3989 fix(footer): adjust margin for social icons 2024-02-16 21:44:05 +01:00
Florent Le Saout e253083786 Mise à jour des libs 2024-02-16 15:26:26 +01:00
Florent Le Saout 41bdea4579 Merge pull request 'Ajout profile Oriane' (#76) from vincent.genieux/SiteWebAstrolabe:oriane into master
Reviewed-on: AstrolabeCAE/SiteWebAstrolabe#76
2024-02-16 15:24:15 +01:00
Florent Le Saout b6d4168e8c Merge pull request 'Ajout profil Hugo Moubèche' (#75) from vincent.genieux/SiteWebAstrolabe:hugo into master
Reviewed-on: AstrolabeCAE/SiteWebAstrolabe#75
2024-02-16 15:24:03 +01:00
Vincent Genieux 3cf91fbf9b Ajout profile Oriane 2024-02-15 11:56:39 +01:00
Vincent Genieux d30c2355d3 Ajout profil Hugo Moubèche 2024-02-14 12:13:29 +01:00
Yannick Le Duc a4fc862ac7 Test git 2023-02-17 14:50:39 +01:00
56 changed files with 2653 additions and 7470 deletions

9353
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -4,7 +4,7 @@
"description": "Site web de la coopérative Astrolabe CAE",
"main": "index.js",
"dependencies": {
"@11ty/eleventy": "^2.0.0",
"@11ty/eleventy": "^2.0.1",
"@11ty/eleventy-plugin-rss": "^1.0.7",
"@11ty/eleventy-plugin-syntaxhighlight": "^2.0.3",
"@tbranyen/jsdom": "^13.0.0",

View File

@ -1,12 +1,16 @@
# Prevent viewing of htaccess file.
<Files .htaccess>
order allow,deny
deny from all
<IfModule mod_access_compat.c>
Order Allow,Deny
Deny from all
</IfModule>
</Files>
# Prevent directory listings
Options All -Indexes
ErrorDocument 404 /404.html
RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} !https [OR]
RewriteCond %{HTTP_HOST} ^astrolabe\.coop [NC]
RewriteRule ^ https://www.astrolabe.coop%{REQUEST_URI} [L,NE,R=301]
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} !https [OR]
RewriteCond %{HTTP_HOST} ^astrolabe\.coop [NC]
RewriteRule ^ https://www.astrolabe.coop%{REQUEST_URI} [L,NE,R=301]
</IfModule>

View File

@ -12,8 +12,9 @@
"mastodon": "https://framapiaf.org/@AstrolabeCAE",
"twitter": "https://twitter.com/AstrolabeCae",
"linkedin": "https://www.linkedin.com/company/astrolabe-cae/",
"meetup": "https://www.meetup.com/fr-FR/Astrolabe-CAE/",
"mobilizon": "https://mobilizon.fr/@discussion_astrolabe_cae"
"facebook": "https://www.facebook.com/profile.php?id=61558600207926",
"instagram": "https://www.instagram.com/astrolabecae/",
"youtube" : "https://www.youtube.com/channel/UCdxBGpXwL_A5rOcGbN_Xiag"
},
"designerName": "Yves Gatesoupe",
"designerHandle": "/members/yves-gatesoupe/",

View File

@ -3,6 +3,7 @@
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="google-site-verification" content="-haql21y-2aWWdYUVglG0kBA4yjCcyG6y8mAzTrZ-Eg" />
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<link rel="icon" href="{{ site.faviconPath }}" type="image/png" />
{% include "partials/global/meta-info.njk" %}

View File

@ -21,6 +21,7 @@
</p>
{% endif %}
<ul class="social-links">
<li><a href="{{ [url , "/contact/"] | join | url }}" title="Écrire à {{ name }}" class="member-contact-at"><span>@</span></a></li>
{% if socialMastodon %}
<li><a href="{{ socialMastodon }}" title="mastodon"><svg width="24" height="24" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M16.956 18.293c3.007-.36 5.625-2.212 5.954-3.905.519-2.667.476-6.508.476-6.508 0-5.207-3.411-6.733-3.411-6.733C18.255.357 15.302.025 12.233 0h-.075c-3.068.025-6.02.357-7.74 1.147 0 0-3.41 1.526-3.41 6.733 0 .315-.003.647-.004.993-.005.96-.01 2.024.018 3.136.123 5.091.933 10.11 5.64 11.355 2.171.575 4.035.695 5.535.613 2.722-.151 4.25-.972 4.25-.972l-.09-1.974s-1.945.613-4.13.538c-2.163-.074-4.448-.233-4.798-2.89a5.448 5.448 0 01-.048-.745s2.124.519 4.816.642c1.647.076 3.19-.096 4.759-.283zm2.406-3.705V8.283c0-1.288-.328-2.312-.987-3.07-.68-.757-1.57-1.145-2.674-1.145-1.278 0-2.246.491-2.885 1.474l-.623 1.043-.622-1.043c-.64-.983-1.608-1.474-2.886-1.474-1.104 0-1.994.388-2.674 1.146-.659.757-.987 1.781-.987 3.07v6.303h2.498V8.47c0-1.29.543-1.945 1.628-1.945 1.2 0 1.802.777 1.802 2.312v3.35h2.483v-3.35c0-1.535.601-2.312 1.801-2.312 1.086 0 1.629.655 1.629 1.945v6.119h2.497z"/></svg></a></li>
{% endif %}
@ -42,7 +43,7 @@
<ul class="tag-list mt-3">
{% for item in tags %}
<li class="tag-item">
<a href="/equipe/{{ item }}">{{ item }}</a>
<a href="/equipe/{{ item }}/">{{ item }}</a>
</li>
{% endfor %}
</ul>
@ -50,8 +51,14 @@
</div>
</div>
</article>
<a class="return-link" href="/equipe">Voir tous les membres</a>
<a class="return-link" href="/equipe/">Voir tous les membres</a>
</section>
{% if emailSlug %}
{% set contactMember = emailSlug %}
{% elif url %}
{% set contactMember = url | replace("/members/","") | replace("-",".") %}
{% endif %}
{% set contactTitle = ["Écrire à ",name] | join %}
{% include "partials/components/contact-form.njk" %}
</main>
{% endblock %}

View File

@ -12,7 +12,7 @@
<img class="post-pic" src="{{ illustration }}" alt="illustration de l'article">
{% endif %}
{{ content | safe }}
<a class="return-link" href="/posts">Voir toute l'actualité</a>
<a class="return-link" href="/posts/">Voir toute l'actualité</a>
</div>
</article>
{% include "partials/components/contact-form.njk" %}

View File

@ -8,13 +8,13 @@
<h1 class="[ member-list__heading ]">{{ pageHeading }}</h1>
<ul class="post-filter">
<li>
<a href="/posts">Tout</a>
<a href="/posts/">Tout</a>
</li>
<li>
<a href="/posts-news">Actualités</a>
<a href="/posts-news/">Actualités</a>
</li>
<li class="active">
<a href="/posts-events">Évènements</a>
<a href="/posts-events/">Évènements</a>
</li>
</ul>
</div>

View File

@ -8,13 +8,13 @@
<h1 class="[ member-list__heading ]">{{ pageHeading }}</h1>
<ul class="post-filter">
<li>
<a href="/posts">Tout</a>
<a href="/posts/">Tout</a>
</li>
<li class="active">
<a href="/posts-news">Actualités</a>
<a href="/posts-news/">Actualités</a>
</li>
<li>
<a href="/posts-events">Évènements</a>
<a href="/posts-events/">Évènements</a>
</li>
</ul>
</div>

View File

@ -8,13 +8,13 @@
<h1 class="[ member-list__heading ]">{{ pageHeading }}</h1>
<ul class="post-filter">
<li class="active">
<a href="/posts">Tout</a>
<a href="/posts/">Tout</a>
</li>
<li>
<a href="/posts-news">Actualités</a>
<a href="/posts-news/">Actualités</a>
</li>
<li>
<a href="/posts-events">Évènements</a>
<a href="/posts-events/">Évènements</a>
</li>
</ul>
</div>

View File

@ -13,7 +13,7 @@
</div>
<ul class="tag-list mt-3" id="tagList">
{% for skill in collections.skillsList %}
<li class="tag-item visually-hidden"><a href="/equipe/{{ skill }}">{{ skill }}</a></li>
<li class="tag-item visually-hidden"><a href="/equipe/{{ skill }}/">{{ skill }}</a></li>
{% endfor %}
</ul>
</div>

View File

@ -1,9 +1,15 @@
{% from "macros/form.njk" import label, field, select, option, textarea, checkboxes, button %}
{% from "macros/form.njk" import label, field, select, option, textarea, checkboxes, button, hidden_field %}
<section class="[ form-container ]">
<svg aria-hidden="true" viewBox="0 0 1440 131" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill="#fff" d="M0 0h1440v131H0z"/><path d="M0 4.643l40-2.326c40-2.5 120-6.888 200 11.67 80 18.735 160 60.854 240 74.894 80 14.04 160 0 240-16.365 80-16.54 160-34.968 240-28.08 80 7.152 160 39.619 240 39.75 80-.131 160-32.598 200-49.139l40-16.365V131H0V4.643z" fill="#D6F253"/></svg>
{% if not removeWave %}
<svg aria-hidden="true" viewBox="0 0 1440 131" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill="#fff" d="M0 0h1440v131H0z"/><path d="M0 4.643l40-2.326c40-2.5 120-6.888 200 11.67 80 18.735 160 60.854 240 74.894 80 14.04 160 0 240-16.365 80-16.54 160-34.968 240-28.08 80 7.152 160 39.619 240 39.75 80-.131 160-32.598 200-49.139l40-16.365V131H0V4.643z" fill="#D6F253"/></svg>
{% endif %}
<div class="[ inner-wrapper ]">
<h2 id="contact-form" class="[ contact-heading ]">Nous contacter</h2>
{% if not contactMember %}
<h2 id="contact-form" class="[ contact-heading ]">Nous contacter</h2>
{% elif contactTitle %}
<h2 id="contact-form" class="[ contact-heading ]">{{ contactTitle }}</h2>
{% endif %}
<form name="contact" method="POST" action="/form/contact-form-handler.php">
<ol class="[ field-list ]">
<li class="[ field-list__field-group ]">
@ -16,20 +22,31 @@
</li>
<li class="[ field-list__field-group ] [ full-width ]">
{{ label("Je vous contacte pour :", "select") }}
{{ select( "select", [
{label: "Obtenir un rendez-vous (décrivez votre projet en quelques lignes)", value: "option 1"},
{label: "Obtenir des précisions sur le statut dentrepreneur salarié", value: "option 2"},
{label: "Proposer une mission à un coopérateur", value: "option 3"},
{label: "Proposer un partenariat", value: "option 4"}
], { required: true, options_before: [""], options_after: ["Autre demande"] } ) }}
{% if contactMember %}
{{ select( "select", [
{label: "Obtenir un rendez-vous (décrivez votre projet en quelques lignes)", value: "option 1"},
{label: "Proposer une mission à un coopérateur", value: "option 3"}
], { required: true, options_before: [""], options_after: ["Autre demande"] } ) }}
{% else %}
{{ select( "select", [
{label: "Obtenir un rendez-vous (décrivez votre projet en quelques lignes)", value: "option 1"},
{label: "Obtenir des précisions sur le statut dentrepreneur salarié", value: "option 2"},
{label: "Proposer une mission à un coopérateur", value: "option 3"},
{label: "Proposer un partenariat", value: "option 4"}
], { required: true, options_before: [""], options_after: ["Autre demande"] } ) }}
{% endif %}
</li>
<li class="[ field-list__field-group ] [ full-width ]">
{{ label("Votre message", "message") }}
{{ textarea( "message", { required: true, autocapitalize: "sentences", spellcheck: "true" } ) }}
</li>
<li class="[ field-list__field-group ] [ full-width ]">
{{ checkboxes("", "subscribe", [ "Je souhaite être tenu au courant de lactualité Astrolabe"], { description: "" } ) }}
</li>
{% if contactMember %}
{{ hidden_field('subscribe', '') }}
{% else %}
<li class="[ field-list__field-group ] [ full-width ]">
{{ checkboxes("", "subscribe", [ "Je souhaite être tenu au courant de lactualité Astrolabe"], { description: "" } ) }}
</li>
{% endif %}
<!-- H o n e y p o t -->
<li aria-hidden="true">
<label class="ohnohoney" for="name"></label>
@ -40,6 +57,9 @@
<input tabindex="-1" class="ohnohoney" autocomplete="off" type="email" id="email" name="email" placeholder="Your e-mail here">
</li>
</ol>
{% if contactMember %}
{{ hidden_field('contactTo', contactMember) }}
{% endif %}
{{ button("Envoyer") }}
</form>
</div>

View File

@ -3,11 +3,11 @@
<h1 class="[ intro__heading ]">{{ brandHeading }}</h1>
<svg viewBox="0 0 127 237" width="100%" height="100%" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M116.77 20.74c-.472-1.843-2.433-5.326-6.48-5.326h-4.283C105.395 6.814 98.249 0 89.533 0c-9.116 0-16.534 7.448-16.534 16.605v20.597L10.073 61.124a2.422 2.422 0 00-1.403 3.124c6.302 16.578 22.13 26.795 38.897 26.795 2.778 0 5.582-.315 8.375-.895 2.026.425 4.09.704 6.169.824v21.449a2.422 2.422 0 104.842 0V90.962a41.398 41.398 0 006.046-.8v22.259a2.422 2.422 0 104.843 0v-23.59c16.39-5.573 28.22-21.102 28.22-39.352V20.256h4.228c1.262 0 1.737 1.513 1.793 1.708a2.425 2.425 0 002.94 1.723 2.424 2.424 0 001.747-2.948zM32.478 82.973c-8.206-3.684-14.61-10.117-18.31-18.225l62.113-23.615c.013-.004.023-.013.034-.017.09-.036.173-.083.257-.128.058-.032.119-.058.174-.093.066-.044.124-.096.186-.146.06-.05.127-.095.184-.151.05-.05.092-.109.138-.162.054-.063.112-.124.159-.192.043-.065.077-.136.116-.203.037-.067.079-.131.11-.202.03-.07.05-.146.074-.22.024-.076.053-.15.07-.229.015-.065.019-.132.028-.199.013-.093.028-.187.03-.282l.003-.039V16.605c0-6.485 5.245-11.762 11.69-11.762 6.416 0 11.637 5.226 11.687 11.667v30.547H86.663a2.421 2.421 0 00-2.422 2.422c0 .023.007.043.007.068-.033 15.12-9.538 28.88-23.678 34.255-9.166 3.483-19.144 3.192-28.092-.828zm34.639 3.12c12.614-6.78 21.023-19.79 21.88-34.194h12.133c-1.194 18.255-15.785 32.903-34.013 34.195z" fill="#1E1E1E"/><path d="M89.53 20.256h4.464a2.421 2.421 0 100-4.842h-4.463a2.421 2.421 0 100 4.842zM123.897 194.561h-4.496V114.15a2.241 2.241 0 00-2.248-2.233H6.994c-1.24 0-2.248 1-2.248 2.233v80.411H2.498a2.242 2.242 0 00-2.248 2.234v37.971A2.242 2.242 0 002.498 237h121.399a2.243 2.243 0 002.249-2.234v-37.971a2.243 2.243 0 00-2.249-2.234zM9.243 116.384h105.662v78.177H9.243v-78.177zm112.406 116.149H4.746v-33.505H121.65v33.505z" fill="#1E1E1E"/><path d="M103.663 125.318h-83.18a2.242 2.242 0 00-2.249 2.234v55.841a2.241 2.241 0 002.248 2.233h83.181c1.241 0 2.248-1 2.248-2.233v-55.841a2.242 2.242 0 00-2.248-2.234zm-2.248 55.841H22.73v-51.373h78.685v51.373zM114.904 206.846h-13.488a2.242 2.242 0 00-2.248 2.234v13.401a2.242 2.242 0 002.248 2.234h13.488a2.243 2.243 0 002.249-2.234V209.08a2.243 2.243 0 00-2.249-2.234zm-2.248 13.402h-8.992v-8.935h8.992v8.935zM92.423 206.846h-13.49a2.242 2.242 0 00-2.247 2.234v13.401a2.242 2.242 0 002.248 2.234h13.489a2.242 2.242 0 002.248-2.234V209.08a2.242 2.242 0 00-2.248-2.234zm-2.248 13.402h-8.993v-8.935h8.993v8.935z" fill="#1E1E1E"/><path d="M78.934 134.253H27.227v4.467h51.707v-4.467zM63.197 143.187h-35.97v4.468h35.97v-4.468zM45.212 152.122H27.227v4.467h17.985v-4.467zM58.7 152.122h-8.993v4.467h8.992v-4.467z" fill="#111"/></svg>
<div class="btn-grp">
<a role="button" href="/comprendre-la-cae" class="btn btn-secondary">Une CAE c'est quoi ?</a>
<a role="button" href="/nous-rejoindre" class="btn btn-primary">Nous rejoindre
<a role="button" href="/comprendre-la-cae/" class="btn btn-secondary">Une CAE c'est quoi ?</a>
<a role="button" href="/nous-rejoindre/" class="btn btn-primary">Nous rejoindre
<svg width="18" height="14" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M17.602 5.823L12.05.376a1.357 1.357 0 00-1.875 0 1.295 1.295 0 000 1.84l3.278 3.235H1.326C.587 5.451 0 6.027 0 6.752s.587 1.302 1.326 1.302h12.127l-3.278 3.215a1.295 1.295 0 000 1.84 1.349 1.349 0 001.894 0l5.533-5.427c.246-.242.398-.576.398-.93 0-.353-.133-.687-.398-.93z" fill="#111"/></svg>
</a>
<a role="button" href="/posts/flyer-2023" class="btn btn-secondary">Notre flyer 📄</a>
<a role="button" href="/posts/flyer-2023/" class="btn btn-secondary">Notre flyer 📄</a>
</div>
</div>
</header>

View File

@ -30,7 +30,7 @@
var members = {{ collections.membersLocations | dump | safe }};
var markerGroup = members.map( member => {
return new L.marker(member.location, {icon: iconMarker}).bindPopup('<a href="'+member.url+'">'+member.name+'</a>');
return new L.marker(member.location, {icon: iconMarker}).bindPopup('<a href="'+member.url+'/">'+member.name+'</a>');
});
var markerSiege = L.marker([48.10494125597395, -1.6795760019626425], {icon: iconMarkerAlt}).bindPopup('Siège Astrolabe CAE')

View File

@ -4,7 +4,7 @@
<ol class="[ member-list__items ]" reversed>
{% for item in teamListItems %}
<li class="member-list__item">
<a href="{{ item.data.url }}" class="">
<a href="{{ item.data.url }}/" class="">
<img src=" {{ item.data.profile }}" alt="photo de {{ item.data.name }}">
<span class="member-name btn btn-primary">{{ item.data.name }}</span>
</a>

View File

@ -4,7 +4,7 @@
<ol class="[ member-list__items ]" reversed>
{% for item in teamListItems %}
<li class="member-list__item">
<a href="{{ item.data.url }}" class="">
<a href="{{ item.data.url }}/" class="">
<img src=" {{ item.data.profile }}" alt="photo de {{ item.data.name }}">
<span class="member-name btn btn-primary">{{ item.data.name }}</span>
</a>
@ -16,7 +16,7 @@
{% endfor %}
<li class="member-list__item info">
<p>Vous êtes porteur dun projet entrepreneurial en numérique et nouvelles technologies ?</p>
<a role="button" href="/nous-rejoindre" class="btn btn-secondary">Rejoignez-nous</a>
<a role="button" href="/nous-rejoindre/" class="btn btn-secondary">Rejoignez-nous</a>
</li>
</ol>
{% endif %}

View File

@ -4,7 +4,7 @@
<div class="news-list__inner">
<h2 class="[ news-list__heading ]">{{ newsListHeading }}</h2>
{% include "partials/components/posts-list.njk" %}
<a href="/posts" class="return-link">Voir tout</a>
<a href="/posts/" class="return-link">Voir tout</a>
</div>
</div>
</section>

View File

@ -14,7 +14,7 @@
{# <figure> #}
<img src="/images/crew-join.svg" alt="équipage astrolabe" loading="lazy" style="width: 22rem;">
{# </figure> #}
<a role="button" href="/nous-rejoindre" class="btn btn-primary">Nous rejoindre
<a role="button" href="/nous-rejoindre/" class="btn btn-primary">Nous rejoindre
<svg width="18" height="14" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M17.602 5.823L12.05.376a1.357 1.357 0 00-1.875 0 1.295 1.295 0 000 1.84l3.278 3.235H1.326C.587 5.451 0 6.027 0 6.752s.587 1.302 1.326 1.302h12.127l-3.278 3.215a1.295 1.295 0 000 1.84 1.349 1.349 0 001.894 0l5.533-5.427c.246-.242.398-.576.398-.93 0-.353-.133-.687-.398-.93z" fill="#111"></path></svg>
</a>
</div>
@ -47,13 +47,13 @@
<ul class="profile-preview">
{% for profile in profilePics %}
<li>
<a href="{{ profile.data.url }}" title="{{ profile.data.name }}">
<a href="{{ profile.data.url }}/" title="{{ profile.data.name }}">
<img src="{{ profile.data.profile }}" alt="photo de {{ profile.data.name }}">
</a>
</li>
{% endfor %}
</ul>
<a role="button" href="/equipe" class="btn btn-primary">Voir l'équipe</a>
<a role="button" href="/equipe/" class="btn btn-primary">Voir l'équipe</a>
</div>
</article>
</div>

View File

@ -10,18 +10,19 @@
</p>
</div>
<div class="">
<h3><a class="footer-link" href="{{site.url}}/mentions-legales" title="Mentions légales">Mentions légales</a></h3>
<p><a class="footer-link" href="{{site.url}}/rgpd" title="Protection des données">Protection des données</a></p>
<h3><a class="footer-link" href="{{site.url}}/mentions-legales/" title="Mentions légales">Mentions légales</a></h3>
<p><a class="footer-link" href="{{site.url}}/rgpd/" title="Protection des données">Protection des données</a></p>
</div>
<div class="">
<h3>Contact</h3>
<p>{{site.authorName}}</p>
<p>{{site.authorAddress}}<br>{{site.authorCity}}</p>
<a href="{{site.authorSocial.mastodon}}" class="social" title="mastodon"><svg width="24" height="24" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M16.956 18.293c3.007-.36 5.625-2.212 5.954-3.905.519-2.667.476-6.508.476-6.508 0-5.207-3.411-6.733-3.411-6.733C18.255.357 15.302.025 12.233 0h-.075c-3.068.025-6.02.357-7.74 1.147 0 0-3.41 1.526-3.41 6.733 0 .315-.003.647-.004.993-.005.96-.01 2.024.018 3.136.123 5.091.933 10.11 5.64 11.355 2.171.575 4.035.695 5.535.613 2.722-.151 4.25-.972 4.25-.972l-.09-1.974s-1.945.613-4.13.538c-2.163-.074-4.448-.233-4.798-2.89a5.448 5.448 0 01-.048-.745s2.124.519 4.816.642c1.647.076 3.19-.096 4.759-.283zm2.406-3.705V8.283c0-1.288-.328-2.312-.987-3.07-.68-.757-1.57-1.145-2.674-1.145-1.278 0-2.246.491-2.885 1.474l-.623 1.043-.622-1.043c-.64-.983-1.608-1.474-2.886-1.474-1.104 0-1.994.388-2.674 1.146-.659.757-.987 1.781-.987 3.07v6.303h2.498V8.47c0-1.29.543-1.945 1.628-1.945 1.2 0 1.802.777 1.802 2.312v3.35h2.483v-3.35c0-1.535.601-2.312 1.801-2.312 1.086 0 1.629.655 1.629 1.945v6.119h2.497z" fill="#fff"/></svg></a>
<a href="{{site.authorSocial.twitter}}" class="social" title="twitter"><svg width="24" height="24" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M24 4.309a9.83 9.83 0 01-2.828.775 4.932 4.932 0 002.165-2.724 9.864 9.864 0 01-3.127 1.195A4.916 4.916 0 0016.616 2c-3.179 0-5.515 2.966-4.797 6.045A13.978 13.978 0 011.671 2.901a4.93 4.93 0 001.523 6.574 4.903 4.903 0 01-2.229-.616c-.054 2.281 1.581 4.415 3.949 4.89a4.935 4.935 0 01-2.224.084 4.928 4.928 0 004.6 3.419A9.9 9.9 0 010 19.292a13.94 13.94 0 007.548 2.212c9.142 0 14.307-7.721 13.995-14.646A10.025 10.025 0 0024 4.309z" fill="#fff"/></svg></a>
<a href="{{site.authorSocial.linkedin}}" class="social" title="linkedin"><svg width="24" height="24" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M4.98 2.5A2.49 2.49 0 012.5 5 2.49 2.49 0 01.02 2.5C.02 1.12 1.13 0 2.5 0a2.49 2.49 0 012.48 2.5zM5 7H0v16h5V7zm7.982 0H8.014v16h4.969v-8.399c0-4.67 6.029-5.052 6.029 0V23H24V12.869c0-7.88-8.922-7.593-11.018-3.714V7z" fill="#fff"/></svg></a>
<a href="{{site.authorSocial.meetup}}" class="social" title="meetup"><svg width="24" height="24" xmlns="http://www.w3.org/2000/svg"><path d="M16.001 17.372c.002 1.856 1.194 3.497 2.884 4.055.847.28 1.721.412 2.608.451.633.028 1.265-.016 1.85-.308.46-.23.676-.609.656-1.114-.021-.509-.249-.89-.736-1.092a2.458 2.458 0 00-.52-.159c-.537-.096-1.076-.176-1.61-.282-.882-.176-1.251-.642-1.263-1.534-.01-.788.203-1.532.446-2.268.444-1.346 1.042-2.63 1.616-3.924.553-1.25 1.133-2.489 1.524-3.805.216-.723.319-1.448.123-2.196-.298-1.134-.978-1.895-2.151-2.113-1.073-.2-2.141-.223-3.112.417-.323.212-.633.162-.913-.086-.214-.188-.418-.387-.627-.58-.991-.914-2.3-.959-3.363-.124-.429.337-.79.755-1.255 1.047-.417.262-.837.336-1.298.09-.439-.234-.893-.44-1.347-.646-.459-.207-.904-.464-1.422-.507-1.635-.14-3.347.833-4.068 2.31a20.107 20.107 0 00-.83 2.017c-1.144 3.16-2.077 6.389-3.041 9.606-.433 1.44.077 2.857 1.297 3.634.951.606 1.992.756 3.071.432.873-.263 1.352-.966 1.686-1.756 1.111-2.62 2.112-5.285 3.171-7.927.291-.726.574-1.456.883-2.175.312-.726 1.209-.974 1.741-.492.325.294.411.685.379 1.103-.035.447-.208.86-.371 1.27-.689 1.743-1.391 3.48-2.083 5.221-.14.352-.292.701-.353 1.079-.106.649.151 1.224.681 1.453.542.233 1.104.272 1.665.069.653-.237 1.044-.748 1.344-1.339 1.034-2.029 2.059-4.063 3.091-6.092.477-.938.963-1.871 1.45-2.803.181-.345.393-.672.731-.887a.882.882 0 01.947-.032c.306.171.326.484.313.792a1.42 1.42 0 01-.117.482c-.134.321-.259.646-.407.961-.859 1.806-1.731 3.606-2.582 5.416-.359.765-.732 1.532-.688 2.336z" fill="#fff"/></svg></a>
<a href="{{site.authorSocial.mobilizon}}" class="social" title="mobilizon"><svg width="24" height="24" xmlns="http://www.w3.org/2000/svg"><path d="M19.42 15.192c0-2.985-.795-5.279-2.384-6.883A6.831 6.831 0 0012 6.395a6.831 6.831 0 00-5.036 1.914C5.375 9.898 4.58 12.192 4.58 15.192c0 2.999.791 5.295 2.373 6.888a6.83 6.83 0 005.036 1.914 6.831 6.831 0 005.036-1.914c1.597-1.593 2.395-3.889 2.395-6.888zm-7.414 5.64c-2.116 0-3.173-1.88-3.173-5.64 0-3.761 1.057-5.641 3.173-5.641 2.115 0 3.172 1.88 3.172 5.641 0 3.76-1.057 5.64-3.172 5.64zm-1.953-17a4.123 4.123 0 01-.336-1.679 4.135 4.135 0 01.336-1.678 4.51 4.51 0 012.165-.47 3.939 3.939 0 012.065.47c.228.53.343 1.101.336 1.678a4.14 4.14 0 01-.336 1.679 4.174 4.174 0 01-2.165.47 3.633 3.633 0 01-2.065-.47z" fill="#fff"/></svg></a>
<a href="{{site.authorSocial.mastodon}}" class="social" title="Mastodon"><svg width="24" height="24" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M16.956 18.293c3.007-.36 5.625-2.212 5.954-3.905.519-2.667.476-6.508.476-6.508 0-5.207-3.411-6.733-3.411-6.733C18.255.357 15.302.025 12.233 0h-.075c-3.068.025-6.02.357-7.74 1.147 0 0-3.41 1.526-3.41 6.733 0 .315-.003.647-.004.993-.005.96-.01 2.024.018 3.136.123 5.091.933 10.11 5.64 11.355 2.171.575 4.035.695 5.535.613 2.722-.151 4.25-.972 4.25-.972l-.09-1.974s-1.945.613-4.13.538c-2.163-.074-4.448-.233-4.798-2.89a5.448 5.448 0 01-.048-.745s2.124.519 4.816.642c1.647.076 3.19-.096 4.759-.283zm2.406-3.705V8.283c0-1.288-.328-2.312-.987-3.07-.68-.757-1.57-1.145-2.674-1.145-1.278 0-2.246.491-2.885 1.474l-.623 1.043-.622-1.043c-.64-.983-1.608-1.474-2.886-1.474-1.104 0-1.994.388-2.674 1.146-.659.757-.987 1.781-.987 3.07v6.303h2.498V8.47c0-1.29.543-1.945 1.628-1.945 1.2 0 1.802.777 1.802 2.312v3.35h2.483v-3.35c0-1.535.601-2.312 1.801-2.312 1.086 0 1.629.655 1.629 1.945v6.119h2.497z" fill="#fff"/></svg></a>
<a href="{{site.authorSocial.twitter}}" class="social" title="Twitter"><svg width="24" height="24" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M24 4.309a9.83 9.83 0 01-2.828.775 4.932 4.932 0 002.165-2.724 9.864 9.864 0 01-3.127 1.195A4.916 4.916 0 0016.616 2c-3.179 0-5.515 2.966-4.797 6.045A13.978 13.978 0 011.671 2.901a4.93 4.93 0 001.523 6.574 4.903 4.903 0 01-2.229-.616c-.054 2.281 1.581 4.415 3.949 4.89a4.935 4.935 0 01-2.224.084 4.928 4.928 0 004.6 3.419A9.9 9.9 0 010 19.292a13.94 13.94 0 007.548 2.212c9.142 0 14.307-7.721 13.995-14.646A10.025 10.025 0 0024 4.309z" fill="#fff"/></svg></a>
<a href="{{site.authorSocial.linkedin}}" class="social" title="Linkedin"><svg width="24" height="24" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M4.98 2.5A2.49 2.49 0 012.5 5 2.49 2.49 0 01.02 2.5C.02 1.12 1.13 0 2.5 0a2.49 2.49 0 012.48 2.5zM5 7H0v16h5V7zm7.982 0H8.014v16h4.969v-8.399c0-4.67 6.029-5.052 6.029 0V23H24V12.869c0-7.88-8.922-7.593-11.018-3.714V7z" fill="#fff"/></svg></a>
<a href="{{site.authorSocial.facebook}}" class="social" title="Facebook"><svg fill="#FFFFFF" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48" width="24px" height="24px"><path d="M24,4C12.972,4,4,12.972,4,24c0,10.006,7.394,18.295,17,19.75V29h-4c-0.552,0-1-0.447-1-1v-3c0-0.553,0.448-1,1-1h4v-3.632 C21,15.617,23.427,13,27.834,13c1.786,0,3.195,0.124,3.254,0.129C31.604,13.175,32,13.607,32,14.125V17.5c0,0.553-0.448,1-1,1h-2 c-1.103,0-2,0.897-2,2V24h4c0.287,0,0.56,0.123,0.75,0.338c0.19,0.216,0.278,0.502,0.243,0.786l-0.375,3 C31.555,28.624,31.129,29,30.625,29H27v14.75c9.606-1.455,17-9.744,17-19.75C44,12.972,35.028,4,24,4z"/></svg></a>
<a href="{{site.authorSocial.instagram}}" class="social" title="Instagram"><svg fill="#FFFFFF" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 50 50" width="24px" height="24px"> <path d="M 16 3 C 8.83 3 3 8.83 3 16 L 3 34 C 3 41.17 8.83 47 16 47 L 34 47 C 41.17 47 47 41.17 47 34 L 47 16 C 47 8.83 41.17 3 34 3 L 16 3 z M 37 11 C 38.1 11 39 11.9 39 13 C 39 14.1 38.1 15 37 15 C 35.9 15 35 14.1 35 13 C 35 11.9 35.9 11 37 11 z M 25 14 C 31.07 14 36 18.93 36 25 C 36 31.07 31.07 36 25 36 C 18.93 36 14 31.07 14 25 C 14 18.93 18.93 14 25 14 z M 25 16 C 20.04 16 16 20.04 16 25 C 16 29.96 20.04 34 25 34 C 29.96 34 34 29.96 34 25 C 34 20.04 29.96 16 25 16 z"/></svg></a>
<a href="{{site.authorSocial.youtube}}" class="social" title="Youtube"><svg fill="#FFFFFF" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 50 50" width="24px" height="24px"><g><path d="M44.9,14.5c-0.4-2.2-2.3-3.8-4.5-4.3C37.1,9.5,31,9,24.4,9c-6.6,0-12.8,0.5-16.1,1.2c-2.2,0.5-4.1,2-4.5,4.3C3.4,17,3,20.5,3,25s0.4,8,0.9,10.5c0.4,2.2,2.3,3.8,4.5,4.3c3.5,0.7,9.5,1.2,16.1,1.2s12.6-0.5,16.1-1.2c2.2-0.5,4.1-2,4.5-4.3c0.4-2.5,0.9-6.1,1-10.5C45.9,20.5,45.4,17,44.9,14.5z M19,32V18l12.2,7L19,32z"/></g></svg></a>
</div>
</div>
</footer>

View File

@ -1,102 +1,116 @@
<?php
require("/usr/share/php/libphp-phpmailer/autoload.php");
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
$mail = new PHPMailer(true);
$errors = '';
$myEmail = getenv('ASTRO_SMTP_FROM');
if(empty($_POST['namezzz']) || empty($_POST['emailzzz']) || empty($_POST['message'])) {
$errors .= "\n Error: all fields are required";
}
if(!empty($_POST['name']) && !empty($_POST['email'])) {
$errors .= "\n Error: spam";
}
$name = $_POST['namezzz'];
$emailAddress = $_POST['emailzzz'];
$select = $_POST['select'];
$message = $_POST['message'];
$subscribe = $_POST['subscribe'];
if (!filter_var($emailAddress, FILTER_VALIDATE_EMAIL)) {
$errors .= "\n Error: Invalid email address $emailAddress";
}
if( empty($errors)) {
$to = $myEmail;
$emailSubject = "[Formulaire Astrolabe] Nouveau message";
switch ($select) {
case "option 1":
$purpose = "Demande de rendez-vous";
break;
case "option 2":
$purpose = "Demande de précisions sur le statut dentrepreneur salarié";
break;
case "option 3":
$purpose = "Proposition de misson";
break;
case "option 4":
$purpose = "Proposition de partenariat";
break;
default:
$purpose = "Autre demande";
}
$emailBody = "Vous avez reçu un nouveau message depuis le formulaire du site Astrolabe :".
"\r\n\r\nNom: $name \r\nEmail: $emailAddress \r\nRaison: $purpose\r\nSubscribe: $subscribe\r\n\r\n$message";
$emailBodyHTML = str_replace("\r\n", "<br>", $emailBody);
$mail->isSMTP();
$mail->Host = getenv('ASTRO_SMTP_HOSTNAME');
$mail->SMTPAuth = true;
$mail->Username = getenv('ASTRO_SMTP_USERNAME');
$mail->Password = getenv('ASTRO_SMTP_PASSWORD');
$mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS;
$mail->Port = 587;
//Options
$mail->CharSet = 'UTF-8';
$mail->WordWrap = 70;
//Recipients
$mail->setFrom($myEmail);
$mail->addAddress($myEmail);
$mail->addReplyTo($emailAddress, $name);
// Content
$mail->isHTML(true);
$mail->Subject = $emailSubject;
$mail->Body = $emailBodyHTML;
$mail->AltBody = $emailBody;
$mail->send();
// if subscribe add to mailing list
if(!empty($subscribe)) {
// process
// enovoi mail add to mailing list
}
// redirect to the 'thank you' page
header("Location: /thank-you/index.html");
}
?>
<!DOCTYPE html>
<html>
<head>
<title>Contact form handler</title>
</head>
<body>
<!-- This page is displayed only if there is some error -->
<?php
echo nl2br($errors);
?>
</body>
</html>
<?php
require("/usr/share/php/libphp-phpmailer/autoload.php");
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
$mail = new PHPMailer(true);
$errors = '';
$myEmail = getenv('ASTRO_SMTP_FROM');
$myEmailSplitted = explode('@', $myEmail);
$domainFromMyEmail = (
empty($myEmailSplitted[1])
|| count($myEmailSplitted) != 2
) ? ''
: $myEmailSplitted[1];
$wantedContact = filter_input(INPUT_POST, 'contactTo', FILTER_SANITIZE_SPECIAL_CHARS);
$wantedContact = (
empty($wantedContact)
|| strpos($wantedContact, '@') !== false
|| strpos($wantedContact, '&') !== false
|| empty($domainFromMyEmail)
) ? $myEmail : "$wantedContact@$domainFromMyEmail" ;
if(empty($_POST['namezzz']) || empty($_POST['emailzzz']) || empty($_POST['message'])) {
$errors .= "\n Error: all fields are required";
}
if(!empty($_POST['name']) && !empty($_POST['email'])) {
$errors .= "\n Error: spam";
}
$name = $_POST['namezzz'];
$emailAddress = $_POST['emailzzz'];
$select = $_POST['select'];
$message = $_POST['message'];
$subscribe = $_POST['subscribe'];
if (!filter_var($emailAddress, FILTER_VALIDATE_EMAIL)) {
$errors .= "\n Error: Invalid email address $emailAddress";
}
if(empty($errors)) {
$emailSubject = "[Formulaire Astrolabe] Nouveau message";
switch ($select) {
case "option 1":
$purpose = "Demande de rendez-vous";
break;
case "option 2":
$purpose = "Demande de précisions sur le statut dentrepreneur salarié";
break;
case "option 3":
$purpose = "Proposition de misson";
break;
case "option 4":
$purpose = "Proposition de partenariat";
break;
default:
$purpose = "Autre demande";
}
$emailSubject .= " : $purpose";
$emailBody = "Vous avez reçu un nouveau message depuis le formulaire du site Astrolabe :".
"\r\n\r\nNom: $name \r\nEmail: $emailAddress \r\nRaison: $purpose\r\nSubscribe: $subscribe\r\n\r\n$message";
$emailBodyHTML = str_replace("\r\n", "<br>", $emailBody);
$mail->isSMTP();
$mail->Host = getenv('ASTRO_SMTP_HOSTNAME');
$mail->SMTPAuth = true;
$mail->Username = getenv('ASTRO_SMTP_USERNAME');
$mail->Password = getenv('ASTRO_SMTP_PASSWORD');
$mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS;
$mail->Port = 587;
//Options
$mail->CharSet = 'UTF-8';
$mail->WordWrap = 70;
//Recipients
$mail->setFrom($myEmail);
$mail->addAddress($wantedContact);
$mail->addReplyTo($emailAddress, $name);
// Content
$mail->isHTML(true);
$mail->Subject = $emailSubject;
$mail->Body = $emailBodyHTML;
$mail->AltBody = $emailBody;
$mail->send();
// if subscribe add to mailing list
if(!empty($subscribe)) {
// process
// enovoi mail add to mailing list
}
// redirect to the 'thank you' page
header("Location: /thank-you/index.html");
}
?>
<!DOCTYPE html>
<html>
<head>
<title>Contact form handler</title>
</head>
<body>
<!-- This page is displayed only if there is some error -->
<?php
echo nl2br($errors);
?>
</body>
</html>

View File

Before

Width:  |  Height:  |  Size: 101 KiB

After

Width:  |  Height:  |  Size: 101 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 298 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 232 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 88 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

42
src/members-contact.njk Normal file
View File

@ -0,0 +1,42 @@
---
title: 'Contacter un membre'
pagination:
data: collections.members
size: 1
alias: member
permalink: '/members/{{ member.fileSlug }}/contact/'
---
{% extends 'layouts/base.njk' %}
{% set memberData = member.data %}
{% set title = ["Écrire à ",memberData.name] | join %}
{% block content %}
<main id="main-content" tabindex="-1">
<section class="[ wrapper member ]">
<article>
<h1>{{ title }}</h1>
<p class="position">{{ memberData.position }}</p>
{% if memberData.positionInternal %}
<p>{{ memberData.positionInternal }}</p>
{% endif %}
<div class="[ member__wrapper ]">
<div class="member__info">
<img src="{{ memberData.profile }}" alt="photo de {{ memberData.name }}">
</div>
<div class="member__bio member-contact">
{% if memberData.emailSlug %}
{% set contactMember = memberData.emailSlug %}
{% else %}
{% set contactMember = member.fileSlug | replace("-",".") %}
{% endif %}
{% set removeWave = true %}
{% include "partials/components/contact-form.njk" %}
</div>
</div>
</article>
<a class="return-link" href="/equipe">Voir tous les membres</a>
</section>
</main>
{% endblock %}

View File

@ -0,0 +1,26 @@
---
name: 'Annabelle Palmisano'
position: 'Conceptrice e-learning'
positionInternal: 'Membre'
date: '2024-05-01'
profile: '/images/profiles/annabelle-palmisano-profile.jpg'
url: '/members/annabelle-palmisano'
socialLinkedin: 'https://www.linkedin.com/in/annabelle-palmisano-elearning/'
emailSlug: 'annabelle.palmisano'
tags: [e-learning, gestion-projet, projet, gestion, rse]
location: [48.1112761,-1.6794355]
---
Conceptrice e-learning, je vous aide à sensibiliser vos collaborateurs à votre démarche RSE.
Outre un leadership convaincu, la transformation de votre entreprise/organisation nécessite ladhésion et lengagement de toutes vos équipes. Sensibilisation et formation, deux leviers essentiels que je vous propose dactionner ensemble !
Former et sensibiliser constituent mes anciens cœurs de métier, lenseignement de lhistoire-géographie. Mais à laube dune transition écologique et sociétale majeure, mon action sadresse désormais aux acteurs pivots du changement : les entreprises et organisations.
Me nourrissant constamment de challenges, jai enrichi mon parcours dexpériences stimulantes telles que lexpatriation, les voyages en solo et la pratique dune discipline artistique.
Bénévole depuis 2017 dans des associations de protection animale, je mépanouis dans le travail collaboratif autour des valeurs dentraide et de solidarité. Ainsi, rejoindre Astrolabe CAE a sonné comme une évidence.
À lécoute des projets porteurs de sens, vous pouvez me joindre par Linkedin ou par email...

View File

@ -1,37 +1,22 @@
---
name: 'Antoine Naudy'
position: 'Data Scientist'
position: 'Ingénieur Qualité / Data Scientist'
positionInternal: 'Membre'
date: '2023-10-01'
profile: '/images/profiles/an-profile.jpg'
personalSite: ' https://github.com/Antoine1608'
socialLinkedin: 'https://www.linkedin.com/in/antoine-naudy/'
url: '/members/antoine-naudy'
tags: [ data science, machine learning, data analysis, big data, cloud computing ]
tags: [ data science, machine learning, data analysis, big data, cloud computing, qualité ]
location: [48.136239, -1.671594]
---
Data Scientist rennais, j'ai commencé par du data mining en 2003 alors que
j'étais ingénieur Qualité dans l'automobile. Puis bien plus tard en
2016, c'est le choc avec la découverte de Python et de l'IA.
Ingénieur Qualité à Rennes avec des compétences en Data Science, j'ai amorcé mon parcours en 2003 avec du data mining alors que je travaillais dans l'industrie automobile. C'est en 2016 que j'ai fait une découverte décisive en m'immergeant dans l'univers de Python et de l'IA.
S'en sont suivies quelques années de bricolage avec des logiciels
d'auto ML comme Orange3 et du Webscraping pour analyser les données Qualité de l'intranet de l'entreprise où je travaille. En parallèle je me passionne pour la domotique au sein d'un club. Tout cela m'a mené en 2022 à passer de la Qualité à la Data Science après un retour à
l'école chez OpenClassRooms.
Au fil des années, j'ai consolidé mes compétences en Data Science, en explorant des outils d'auto ML comme Orange3 et en pratiquant le webscraping pour analyser les données Qualité de l'intranet de mon entreprise. Parallèlement, ma passion pour la domotique m'a conduit à m'investir au sein d'un club. Cet ensemble d'expériences m'a finalement poussé à effectuer une transition professionnelle en 2022, en me formant à la Data Science chez OpenClassRooms.
J'ai quelques projets à mon actif qui vont de l'optimisation
énergétique, à la classification d'images en passage par du traitement
du langage naturel. Les outils que j'utilise : Les algorithmes de
machine learning, Shap, Evidently, PySpark, le cloud computing AWS et
Azure et Github principalement.
Aujourd'hui, je rejoins Astrolabe avec enthousiasme, séduit par l'idée de collaborer tout en conservant mon indépendance. Je suis convaincu que cette approche garantit un service fiable pour les clients, tout en favorisant un environnement convivial et stimulant pour les membres de l'équipe.
Aujourd'hui, je rejoins Astrolabe car je suis enthousiasmé par l'idée
de coopérer tout en étant indépendant. Je pense que c'est l'assurance
d'un service fiable pour les clients, et de convivialité et de
motivation pour le membre que je suis.
Côté loisirs, je fais du théâtre (Argan dans le malade imaginaire été
2023, eh oui ! c'était moi) et j'aime nager à la piscine pour me
détendre."
En dehors du travail, je nourris une passion pour le théâtre, ayant notamment incarné le rôle d'Argan dans Le Malade Imaginaire à l'été 2023. Et pour me détendre, rien de tel qu'une bonne séance de natation à la piscine.

View File

@ -1,27 +1,22 @@
---
name: 'Claire Dédelot'
position: 'Copywriter'
position: 'Accompagnatrice en reconversion professionnelle'
positionInternal: 'Membre'
date: '2023-11-23'
profile: '/images/profiles/claire-dedelot-profile.jpg'
personalSite: 'https://www.emailexpress.fr/le-secret-de-la-croissance-explosive-de-votre-entreprise'
url: '/members/claire-dedelot'
socialLinkedin: 'https://www.linkedin.com/in/claire-dédelot-60a471286/'
tags: [copywriting, emailmarketing, marketing digital, rédaction/conception]
tags: [reconversion professionnelle, accompagnement, réorientation]
location: [47.736544, -3.427581]
---
Ancienne assistante de gestion et commerçante, je développe mon
activité de copywriting (rédaction/conception de textes de vente -
emails, pages de vente, publicité).
Ancienne assistante de gestion, commerçante, et bien d'autres encore, j'ai découvert à quel point trouver sa voie professionnelle était indispensable à l'épanouissement. Je propose donc de mettre à disposition mon expérience, mes outils et mon accompagnement aux personnes qui n'ont pas encore trouver leur voie.
Mon objectif est daugmenter le CA de mes clients, de développer et
fidéliser leur clientèle en simplifiant au maximum le parcours dachat
de lentrepreneur débordé.
Jaccompagne les personnes en reconversion professionnelle à transformer leurs compétences, leurs talents et leurs idées en une entreprise viable et rentable, jusquà leurs premières ventes, sans sacrifier leur équilibre pro/perso.
Grâce à Email Express, il peut choisir de ne pas fixer de rdv (à une
heure qui ne lui convient pas) avec le copywriter pour expliquer sa
demande, et choisir le nombre de-mails.
Je vous aide à approfondir votre connaissance de vous-même pour enfin trouver la voie professionnelle dans laquelle vous allez vous épanouir. Nous allons étudier vos talents, votre pourquoi, vos valeurs... et bien d'autres choses qui font que vous êtes unique.
A la fin de l'accompagnement, vous saurez quelle voie prendre pour ne plus aller travailler avec la boule au ventre, mais avec beaucoup d'enthousiasme, chaque matin.
Je suis particulièrement passionnée par le développement personnel et
impliquée dans la réduction de notre impact négatif sur la planète.

View File

@ -8,6 +8,7 @@ personalSite: 'https://consometers.org/'
url: '/members/elias-martin-morisse'
socialLinkedin: 'https://www.linkedin.com/in/elias-martin-morisse-073a3247/'
socialMastodon: 'https://mamot.fr/@jaxom_kaplan'
emailSlug: 'elias.martin-morisse'
tags: [numérique, coopération, gestion-projet, libre, énergie, nextcloud]
location: [47.6514, -2.0839]
---

View File

@ -9,6 +9,7 @@ socialTwitter: 'https://twitter.com/AstrolabeCae'
socialLinkedin: 'https://www.linkedin.com/in/florentls/'
socialMastodon: 'https://framapiaf.org/@AstrolabeCAE'
url: '/members/florent-le-saout'
emailSlug: 'florent.lesaout'
tags: [ linux, dev, securité, libre, embarqué, gestion-projet, sensibilisation, education-populaire, animation, yocto, bootloader, FAE, CTS, gestion-client, C++, C, kernel]
location: [48.18163, -1.64052]
---

View File

@ -6,12 +6,36 @@ date: '2020-05-01'
profile: '/images/profiles/fb-profile.jpg'
socialLinkedin: 'https://www.linkedin.com/in/fran%C3%A7ois-bonningues-51bb3816/'
url: '/members/francois-bonningues'
tags: [ dev, développeur, conception, spécification, C, C++, libre, python, embarqué ]
tags: [ dev, développeur, conception, spécification, libre, embarqué, C, C++, python, script, shell, FreeRTOS, Jenkins, git, Jira]
location: [48.1115, -1.6793]
---
Je développe des logiciels informatiques depuis presque 20 ans. Je maîtrise les différents aspects à savoir la conception, les spécifications et le codage en langage C/C++. Je suis aussi sensible à la qualité du code, le libre et maîtrise les outils d'intégration continue comme Jenkins, les tests unitaires et d'intégration en utilisant notamment le langage Python.
<script language = javascript>
function EcritMail(Id) {
var Sujet = "?subject=contact";
var Adresses = new Array;
Adresses[0] = "astrolabe.coop;francois.bonningues";
document.getElementById("email" + Id).href = "mailto:" +
Adresses[Id].substring(Adresses[Id].indexOf(";") + 1) + "@" +
Adresses[Id].substr(0, Adresses[Id].indexOf(";")) + Sujet;
}
</script>
En 2005 j'ai décidé d'évoluer et repris mes études avec un Master en Réseaux et Télécommunications à Supélec et depuis j'ai participé à des projets ambitieux dans le domaine de la télévision numérique et télécommunications comme le projet "compteurs intelligents" pour GrDF en tant que référent technique.
**Savoir-faire**
Aujourd'hui je suis heureux d'avoir rejoint la coopérative d'entrepreneurs Astrolabe et vous propose d'apporter mon expertise dans le développement logiciel dans l'embarqué.
Je développe des logiciels informatiques depuis plus de 20 ans. J'en maîtrise différents aspects à savoir la conception, les spécifications et le codage avec une préférence pour le langage C/C++. Je suis aussi attentif à la qualité du code, le logiciel libre et maîtrise les outils d'intégration continue, les tests unitaires et d'intégration.\
En 2005 j'ai décidé d'évoluer et repris mes études avec un **Master en Réseaux et Télécommunications** à Supélec et depuis j'ai participé à des projets ambitieux dans le domaine de la télévision numérique et des télécommunications comme par exemple le projet "compteurs intelligents" pour GrDF en tant que développeur et référent technique.\
Mon domaine de prédilection se situe dans le **développement logiciel embarqué**. Récemment j'ai eu aussi l'opportunité de travailler sur microcontrôleurs STM32 (cf. [tuto-debug-zephyr](../../posts/tuto-debug-zephyr) où j'explique comment faire du debug) et nRF52 avec des systèmes d'exploitation temps réel tels que FreeRTOS et Zephyr OS.\
Outre mes compétences dans le développement, je suis également sensible à la **sécurité** dans les logiciels et sa mise en place (protocoles, clés, chaine de certification).
**Savoir-être**
J'apprécie tout particulièrement le travail en équipe, où nous pouvons collaborer à la définition de l'architecture logicielle et des outils nécessaires dans une ambiance conviviale et stimulante.
J'aime aussi relever des défis pour créer des produits à forte valeur ajoutée, opérationnels 24h/24.\
Aussi, j'ai rejoint la coopérative d'entrepreneurs Astrolabe en 2020, ce qui me permet de partager les valeurs fortes de l'Économie Sociale et Solidaire (ESS).
**Contact**
Je serai ravi d'apporter mon expertise dans le développement logiciel au service de votre projet.\
N'hésitez pas à me contacter.\
<a href = "" id = "email0" onmouseover = "javascript:EcritMail(0);">François Bonningues</a>

View File

@ -5,7 +5,16 @@ positionInternal: 'Membre'
date: '2023-07-01'
profile: '/images/profiles/gm-profile.jpg'
url: '/members/gautier-moreau'
tags: [Circuits courts de l'énergie, Smart grids, Organisation-légal, Technique, Economique, Système énergétique /(électricité et gaz)/, Réseau de distribution d'énergie]
tags:
[
Circuits courts énergie,
Smart grids,
Organisation-légal,
Technique,
Economique,
Système énergétique (électricité et gaz),
Réseau de distribution énergie,
]
location: [47.6586, -2.7585]
---

View File

@ -0,0 +1,27 @@
---
name: 'Hugo Moubèche'
position: 'dministrateur système / Accompagnateur du numérique'
positionInternal: 'Membre'
date: '2024-03-01'
profile: '/images/profiles/hugo-moubeche-profile.jpg'
#socialLinkedin: '"
#socialMastodon: ''
url: '/members/hugo-moubeche'
tags: [sysadmin, accompagnement, conseil]
location: [48.54959,-1.75211]
---
J'accompagne les organisations sur le chemin du numérique éthique et
éco-responsable.
Je cherche à favoriser l'émancipation des structures pour qu'elles
soient en mesure d'effectuer des choix « conscientisés » quant au
numérique, dans un objectif d'éco-responsabilité et d'efficacité
quotidienne. Opérationnellement, il s'agit de fournir des outils
numériques efficaces et éthiques et un accompagnement humain pour
répondre à leurs problématiques (matérielles, organisationnelles,
éventuellement communicationnelles).
Je réalise aussi des prestations variées en tant qu'administrateur
système.

View File

@ -9,6 +9,7 @@ socialTwitter: 'https://twitter.com/JO_Interstices'
socialLinkedin: 'https://www.linkedin.com/in/jacques-olivier-farcy-3806121a2'
socialMastodon: 'https://mamot.fr/@Jolivier'
url: '/members/jacques-olivier-farcy'
emailSlug: 'jacques-olivier.farcy'
tags: [ conseil, numérique, level-designer ,visio, libre, open-source, sculpteur ]
location: [48.1113, -1.6792]
---

View File

@ -5,6 +5,7 @@ positionInternal: 'Membre'
date: '2023-07-01'
profile: '/images/profiles/jafm-profile.jpeg'
url: '/members/jaf-marchandise'
emailSlug: 'jacques-francois.marchandise'
tags: [Conseil, Recherche, Prospective, Exploranum, Numérique]
location: [47.70949, -3.34750]
---

View File

@ -6,6 +6,7 @@ date: '2020-12-01'
profile: '/images/profiles/jcp-profile.jpg'
socialLinkedin: 'https://www.linkedin.com/in/piriou-jean-christophe-9bb4bb3b/'
url: '/members/jean-christophe-piriou'
emailSlug: 'jean-christophe.piriou'
tags: [ sig, qgis, postgre, postgis, sql, gestion-projet]
location: [48.10451, -1.67977]
---

View File

@ -8,7 +8,7 @@ socialLinkedin: 'https://www.linkedin.com/in/loana-pujol-013907139'
personalSite: 'https://lp-designs.fr/'
url: '/members/loana-pujol'
tags: [ web, design, graphisme, creation ]
location: [47.9975, -4.1013]
location: [48.08297, -2.28507]
---
Après plusieurs années d'études dans le monde de la mode et du graphisme, j'ai voulu allier le web et le textile dans un projet plus eco-responsable. En reconversion depuis 2019, j'ai repris mes études pour être Webdesigner afin de me perfectionner dans ce domaine. Je suis passionnée par toutes les démarches créatives et en recherche constante de nouvelles idées. Le numérique est en permanence en train d'évoluer ce qui me permet d'être curieuse et d'en apprendre tous les jours. Voyageuse, j'adore découvrir de nouveaux horizons et sortir de ma zone de confort.

View File

@ -5,6 +5,7 @@ positionInternal: 'Support'
date: '2023-01-01'
profile: '/images/profiles/nlf-profile.jpg'
url: '/members/nelly-leflem'
emailSlug: 'contact'
tags: [ Comptabilité, Paie, Gestion, Tenue des comptes, Pack Libre, Silae, ExactOnline, EnDI ]
location: [48.1133,-1.6837]
---

View File

@ -0,0 +1,53 @@
---
name: 'Oriane Saint-Cyr'
position: Consultante indépendante AMO Telco-NR-RSE/RSO'
positionInternal: 'Membre'
date: '2024-01-01'
profile: '/images/profiles/oriane-saintcyr-profile.jpg'
socialLinkedin: 'https://www.linkedin.com/in/oriane-sc/'
#socialMastodon: '
url: '/members/oriane-saint-cyr'
emailSlug: 'oriane.saint-cyr'
tags: [Numérique plus soutenable, Écologie, AMO, Numérique responsable, RSE, Reseau-Telecom]
location: [45.648377, 0.156237]
---
Après des années à explorer différents domaines, j'ai entrepris il y a
plus de 10 ans une passionnante reconversion dans le secteur du
numérique. J'ai mené à bien une homologation de sécurité après avoir
obtenu la certification de _Lead Implementer_, fait brièvement de
l'administration système avant de me spécialiser en administration
réseau et télécom.
Mon engagement écologique remonte à l'enfance, marquée par le fameux
'trou dans la couche d'ozone'.
Soucieuse d'aligner mes valeurs personnelles à mon quotidien
professionnel, j'ai rejoint Astrolabe dans le but de faire converger
la transition numérique et la transition environnementale et de rendre
ces démarches accessibles aux TPE et PME.
Je porte l'enseigne **Ex Ante**. Il s'agit d'une expression latine
signifiant 'au préalable'. Cette locution a été adoptée en français
pour exprimer l'idée d'anticiper les conséquences de ses actions avant
de les réaliser, permettant ainsi de faire des choix éclairés.
Il semble tout à fait cohérent de s'approprier ce terme dans le champ
lexical de l'écologie. Les entreprises doivent désormais accorder une
place primordiale à l'empreinte environnementale de leurs décisions
stratégiques.
Face à ce problème systémique, il faut aussi avoir une vision
systémique. C'est dans cette perspective que, partant de mes
compétences dans le numérique et de mes convictions écologiques, je me
suis formée au numérique responsable, ce qui m'a ensuite conduite à la
RSE/RSO. Mon offre comprend des prestations d'assistance à maîtrise
d'ouvrage pour vos projets réseau et télécom, mais aussi de
l'accompagnement dans la mise en place de votre stratégie RSE. Dans
tous les cas, j'aurai à cœur de promouvoir un numérique plus
soutenable. Je peux également vous aider à définir votre politique
'Numérique Responsable'.
<p>
<center>
<img src="/images/profiles/logo-Ex_Ante.png"/>
</center>
</p>

View File

@ -3,7 +3,7 @@ name: 'Raphaël Cotty'
position: 'Développeur systèmes embarqués'
positionInternal: 'Membre'
date: '2022-04-18'
profile: '/images/profiles/rc-profile.jpg'
profile: '/images/profiles/default-profile.png'
url: '/members/raphael-cotty'
tags: [ dev, linux, développeur, QT, yocto, C++, embarqué, matlab, FPGA, Qbs ]
location: [48.5721, -3.7079]

View File

@ -0,0 +1,19 @@
---
name: 'Sylvain Lepoutre'
position: 'Développeur web spécialisé en accessibilité numérique & créateur de site WordPress'
positionInternal: 'Membre'
date: '2024-05-01'
profile: '/images/profiles/sylvain-lepoutre-profile.jpg'
socialLinkedin: 'https://www.linkedin.com/in/sylvain-lepoutre/'
personalSite: 'http://www.sylvainlepoutre.fr/'
url: '/members/sylvain-lepoutre'
tags: [ dev, web, javascript, react, node.js, wordpress, accessibilité numérique ]
location: [45.87072, 4.83238]
---
Je suis développeur web fullstack, Jai suivi une formation spécialisée en accessibilité numérique. Cette formation ma sensibilisé aux obstacles rencontrés par les personnes souffrant de troubles physiques ou cognitifs lors de leur utilisation du web ; mais elle ma aussi appris à utiliser les moyens existants pour rendre l'accès au web optimale pour tous.
Je me suis aussi formé à la création de site via WordPress afin de pouvoir créer des sites professionnelle efficace, et simple à gérer pour les entreprises de toutes tailles.

View File

@ -6,6 +6,7 @@ date: '2023-01-20'
profile: '/images/profiles/vlm-profile.jpg'
socialLinkedin: 'https://www.linkedin.com/in/valerie-le-merrer/'
url: '/members/valerie-le-merrer'
emailSlug: 'valerie.lemerrer'
tags: [ cybersécurité, analyse de Risque, audit, conseil, sensibilisation ]
location: [48.213983, -1.505285]
---

View File

@ -9,6 +9,7 @@ socialTwitter: 'https://twitter.com/YLeDuc'
socialLinkedin: 'https://www.linkedin.com/in/yleduc/'
socialMastodon: 'https://mastodon.top/@yleduc'
url: '/members/yannick-le-duc'
emailSlug: 'yannick.leduc'
tags: [ dev, entreprise, intuition, développement, conseil, creation, veille, AMOA, AMOE ]
location: [48.118, -1.6858]
---

View File

@ -3,8 +3,8 @@ title: 'Astroblague 2023'
permalink: '/astrogit/index.html'
eleventyExcludeFromCollections: true
---
![Astropoissons : image de 2 poissons](/images/poisson-haut.jpg "Astropoissons")
![Astropoissons : image de 2 poissons](/images/pages/poisson-2023.jpg "Astropoissons")
Non ! Nous n'y sommes pas (encore) arrivés...

View File

@ -0,0 +1,49 @@
---
title: 'Astroblague 2024'
permalink: '/astro-stop-pv/index.html'
eleventyExcludeFromCollections: true
---
![Astropoissons : illustration Guijaune poisson 2024](/images/pages/poisson-2024-guijaune.jpg "Astropoissons")
## Désolé...
<br/>
Vous avez vu la date de la publication ?
C'était bien sûr un poisson d'avril !
## Tout cela est faux car :
<br/>
1- ***NON*** nous ne ferions ***jamais*** cela au sein d'Astrolabe CAE car :
- cest illégal (à plusieurs niveaux)
- cest en dehors de nos valeurs, orientées en particulier vers un numérique ***éthique*** et ***responsable***
2- Nous sommes engagées en faveur des ***mobilités durables*** au sein de notre entreprise !
Donc jamais nous ne pourrions encourager l'utilisation de la voiture en ville ! Donc bien sûr, les critiques dans l'article sur le système LAPI ne sont aucunement fondées : elles ne servaient qu'à tenter de rendre un peu crédible ce poisson d'avril - nous espérons n'avoir heurté personne par ces propos.
## Cependant...
<br/>
La solution imaginée est techniquement réalisable !
Et nous avons toutes les compétences et la capacité au sein de Astrolabe CAE de par la richesse de [nos 35 entrepreneurs partout en France](/equipe) pour imaginer la mise en place de ce genre de solutions numériques :
- lidéation,
- la r&d,
- le design,
- le développement web/mobile/embarqué,
- le test,
- la gestion du projet,
- la maintenance sur la durée,
- la communication,
- …
Donc [contactez nous](/faq+contact/) pour vos besoins en numérique, éthiques et responsables !
Et bien sûr : privilégiez, la marche, le vélo, les transports en commun, ou le covoiturage autant que possible !
*Signé : Une réalisation du Cercle des Astroblagueurs du 1er avril*

View File

@ -0,0 +1,51 @@
---
title: 'Astro Stop PV'
date: '2024-04-01'
author: 'Sonia Prodvils'
type: 'news'
illustration: '/images/posts/astro-stop-pv.jpeg'
---
# Astrolabe lance "Astro Stop PV", la solution pour enfin stationner (quasi) gratuitement en permanence dans toutes les grandes villes de France
**Le problème**
Stationner dans les grandes villes en France est devenu un **luxe** !
- les zones de stationnement payant augmentent en permanence
- en cas de non paiement en horodateur ou par une application de paiement de stationnement à distance, lautomobiliste nest plus redevable d'une amende fixe de 17 EUR depuis le 1er janvier 2018, mais d'un forfait de post-stationnement FPS qui peut monter jusqu'à 75 € dans certaines zones !
- le contrôle des stationnements a été déshumanisé par l'apparition des voitures équipées dun système à lecture automatique des plaques dimmatriculation (LAPI), plus communément surnommées "sulfateuses à PV"
Le principe quelques mots : des véhicules - de sociétés privées - équipées de plusieurs caméras fixées sur le toit, circulent en permanence et automatisent le relevé des plaques des véhicules stationnées sur les emplacements payants. Puis ils les signalent à la municipalité qui va s'assurer que le stationnement a bien été payé. En cas de non paiement ou dépassement, une amende FPS est déclenchée.
Le système est bien rodé et a déjà été déployé à Paris, Lyon, Thonon, Angoulême,  Rennes, Marseille, Montpellier, Lille... Leur utilisation devrait se généraliser progressivement au cours de lannée 2024 car cela permet une manne financière pour les municipalités de par la multiplication des amendes et des coupes budgétaires indirectes (car cela ne nécessite plus l'embauche d'agents de surveillance de la voie publique).
**Notre réflexion**
Soucieux des problèmes de pouvoir d'achat croissants de la population, et également pour agir contre la déshumanisation des services publics, Astrolabe CAE, société engagée socialement et experte dans les solutions numériques a investi dans son programme de R&D depuis 2 ans pour sortir aujourd'hui le service "**Astro Stop PV**".
Pour comprendre le fonctionnement, il faut comprendre une faiblesse du système LAPI qui se situe dans un intervalle de quelques minutes. Imaginons ce scénario :
- vous stationnez sur un emplacement payant à ***15h08***
- vous sortez et fermez votre véhicule à ***15h09***
- un véhicule LAPI passe à proximité de votre voiture et relève votre plaque à ***15h10*** (vous pourriez ne pas la voir)
- vous allez sur l'horodateur ou sur une application de paiement - il est ***15h11***
Tout en étant considéré en règle, il existe un petit décalage de quelques minutes entre le temps où votre plaque est relevée et le temps où vous pouvez faire votre paiement.
**Notre solution**
On vous explique donc le fonctionnement de "Astro Stop PV" :
- vous installez un petit boitier discret équipé d'une caméra dans votre véhicule,
- dès que le boitier détecte un véhicule LAPI, grâce à une reconnaissance optique boostée à l'intelligence artificielle, il déclenche instantanément un paiement pour vous d'un ticket de stationnement minimum (par l'intermédiaire des applications de paiement de stationnement à distance). Vous ne payez donc que ce ticket de stationnement minimal (quelques dizaines de centimes).
- vous êtes donc en règle par rapport au système et évitez toute amende !
**Lancement aujourd'hui : 100 premiers boîtiers offerts !**
Le système est commercialisé à un prix fixe de 49€ TTC ! Un seul paiement, pas d'abonnement.
Pour assurer une qualité sans faille, nous démarrons aujourd'hui une phase de béta privée.
Les 100 premiers boitiers sont ***offerts*** et prêts à être expédiés.
Pour plus de détails sur la solution, ou commander le boîtier, et ainsi ne plus payer vos stationnements en ville, rendez-vous sur [cette page](/astro-stop-pv)

View File

@ -33,7 +33,7 @@ Il vous faut :
- un petit boitier MiniMit
- télécharger le code de ChatGPTel (basé sur GPT4) directement depuis le notre repository Git Astrolabe.
Plus dinfos (vidéos, images, fonctionnement) disponibles en suivant ce lien <https://www.astrolabe.coop/astrogit/>.
Plus dinfos (vidéos, images, fonctionnement) disponibles en suivant ce lien : [AstroGit](/astrogit/).
Tout ceci a été rendu possible grâce à :
- La formidable équipe d'Astrolabe CAE

View File

@ -1,3 +1,5 @@
Sitemap: https://www.astrolabe.coop/sitemap.xml
User-agent: *
Disallow: /fonts/
Disallow: /form/

View File

@ -45,6 +45,18 @@
svg > path {
fill: var(--color-secondary);
}
.member-contact-at {
text-decoration: none;
font-size: 1.7rem;
font-weight: 800;
&,
&:visited,
&:focus {
color: var(--color-secondary);
}
}
}
}
@ -56,7 +68,7 @@
margin-top: 1.5rem;
}
&::before {
&:not(.member-contact)::before {
content: '';
display: block;
position: absolute;
@ -67,6 +79,11 @@
top: -6rem;
left: -1.5rem;
}
&.member-contact .form-container {
border-radius: 1.75rem;
padding-top: 1.75rem;
}
}
}

View File

@ -8,7 +8,7 @@
grid-template-rows: 1fr;
grid-column-gap: 1.5rem;
grid-row-gap: 0;
padding: 3.5rem 0 2.5rem;
padding: 4.5rem 0;
font-weight: 300;
h3 {

13
src/sitemap.njk Normal file
View File

@ -0,0 +1,13 @@
---
permalink: /sitemap.xml
eleventyExcludeFromCollections: true
---
<?xml version="1.0" encoding="utf-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
{% for page in collections.all %}
<url>
<loc>{{ site.url }}{{ page.url | url }}</loc>
<lastmod>{{ page.date.toISOString() }}</lastmod>
</url>
{% endfor %}
</urlset>

View File

@ -25,12 +25,12 @@ permalink: /equipe/{{ tag }}/
<div class="[ box-flex align-center fw-400 ]">
<h2>Profils avec le mot-clé : </h2>
<span class="tag-item ml-1">{{ tag }}</span>
<a class="ml-1 link fw-600" href="/equipe">tout</a></h2>
<a class="ml-1 link fw-600" href="/equipe/">tout</a></h2>
</div>
</div>
{% include "partials/components/member-list-simple.njk" %}
<div class="wrapper box-flex justify-end">
<a class="return-link" href="/equipe">Voir tous les membres</a>
<a class="return-link" href="/equipe/">Voir tous les membres</a>
</div>
{% include "partials/components/map.njk" %}
{% include "partials/components/contact-form.njk" %}