Compare commits

...

10 Commits

  1. 1
      .python-version
  2. 8
      README.md
  3. 4
      config.toml
  4. 185
      content/Cyclos/Gestion administrative et comptable Monnaie numérique Cyclos.md
  5. 160
      content/Procédures organisationnelles/Ancien fonctionnement du support Lokavaluto et pourquoi cela ne convenait pas.md
  6. 80
      content/Procédures organisationnelles/Nouveau fonctionnement du support Lokavaluto.md
  7. 93
      content/posts/my-first-post.md
  8. 88
      content/posts/my-second-post.md
  9. 81
      generate.py
  10. 177
      generate_lotusdocs.py
  11. 38
      hugo.toml
  12. 26
      init_hugo_toml.py
  13. 7
      requirements.txt
  14. 76
      structure.json
  15. 42
      update.sh

1
.python-version

@ -0,0 +1 @@
3.8.10

8
README.md

@ -2,7 +2,6 @@
This repository contains code to generate a Hugo website based on markedown files coming from [Hedgedoc](https://hedgedoc.org/). This repository contains code to generate a Hugo website based on markedown files coming from [Hedgedoc](https://hedgedoc.org/).
## Install ## Install
### Install Hugo ### Install Hugo
@ -28,15 +27,22 @@ mkdir themes
``` ```
2. Import your code in the repo `themes`, for instance: 2. Import your code in the repo `themes`, for instance:
``` ```
cd themes cd themes
git clone https://github.com/matcornic/hugo-theme-learn.git git clone https://github.com/matcornic/hugo-theme-learn.git
``` ```
## Sync data
```
./update.sh
```
## Run your Hugo ## Run your Hugo
Launch the following command from your local repository: Launch the following command from your local repository:
``` ```
hugo serve hugo serve
``` ```

4
config.toml

@ -1,4 +0,0 @@
baseURL = 'http://example.org/'
languageCode = 'en-us'
title = 'My New Hugo Site'
theme = "hugo-theme-learn"

185
content/Cyclos/Gestion administrative et comptable Monnaie numérique Cyclos.md

@ -1,185 +0,0 @@
---
title: Gestion administrative et comptable Monnaie numérique Cyclos
date: 2022-10-29T15:59:37+02:00
draft: false
---
Gestion administrative et comptable Monnaie numérique Cyclos
==
[TOC]
:::warning
Cette procédure ne concerne que les MLCC utilisant le kit lokavaluto + Cyclos pour la gestion de leurs transactions.
:::
## Paramétrage initial
:::info
Consultez votre comptable pour le choix des comptes comptables. Ici nous donnons l'exemple des comptes et du paramétrage utilisé par la Roue.
:::
### Création des comptes comptables
| Code | Nom | Type |
| -------- | -------- | -------- |
| 165002 | Euros collectés | Passif immobilisé |
| 165009 | Euros remboursés | Passif immobilisé |
| 512004 | Crédit coopératif - Roue numérique | Banque et liquidités |
### Création des journaux comptables
* **“ventes” de Roues numérique (mise en circulation)**
* Nom: Mise en circulation - Roues numériques
* Type: ventes
* Préfixe séquence: MIC
* Compte de débit par défaut: 165002 Euros collectés
* Compte de crédit par défaut: 165002 Euros collectés
* **“achats” de Roues numérique (reconversions)**
* Nom: Reconversion - Roues numériques
* Type: achats
* Préfixe séquence: REC
* Compte de débit par défaut: 165009 Euros remboursés
* Compte de crédit par défaut: 165009 Euros remboursés
* **Compte bancaire nantissement Roue numérique** (fonds de garantie)
* Nom: Crédit Coopératif - Roues numériques
* Type: banque
* Préfixe séquence: CCRN
* Compte de débit par défaut: 512004 Crédit coopératif - Roue numérique
* Compte de crédit par défaut: 512004 Crédit coopératif - Roue numérique
### Création de l'article
:::success
L'article est créé automatique lors de l'installation de la monnaie numérique dans Odoo
:::
### Paramétrage de l'article
* Allez dans l'application ```Ventes```, puis ```Articles``` et ```Articles``` de nouveau. Cliquez sur ```Numeric LCC (Cyclos)```.
:::info
Le paramétrage est déjà effectué sauf pour les infos suivantes:
:::
* ++Onglet "information générales"++
* Nom: à modifier en "Roue numérique"
* ++Onglet "Comptabilité"++
* Compte de revenus (mise en circulation): 165002 Euros collectés
* Compte de dépense (reconversions): 165009 Euros remboursés
## Gestion des reconversions
### Actions Cyclos
* Allez sur votre instance Cyclos et connectez vous avec l'accès Administrateur
* Cliquez sur ![utilisateurs](https://docs.lokavaluto.fr/uploads/a3d9b2b571351423d33fe3a09.png) puis sur le nom de l'utilisateur pour lequel vous souhaitez effectuer la reconversion
* Une fois le profil utilisateur ouvert, cliquez sur ```Paiement en tant qu'utilisateur au système``` dans le menu du cadre ![banque](https://docs.lokavaluto.fr/uploads/a3d9b2b571351423d33fe3a0b.png)
* Remplissez le formulaire et cliquez sur ```Soumettre```
* Type de paiement: Paiement a compte de débit
* Montant: montant de la reconversion
* Description: Description visible sur la ligne de transaction du compte Monnaie numérique du Pro
* Exemple: ![](https://docs.lokavaluto.fr/uploads/a3d9b2b571351423d33fe3a0c.png)
* Vérifiez les informations, puis cliquez sur ```Confirmer```
:::success
Le compte numérique du Professionnel est instantannément débité!
:::
### Actions compte bancaire nantissement monnaie numérique
* Faite un virement bancaire depuis le compte bancaire du fonds de garantie monnaie numérique vers le compte bancaire du professionnel
:::info
Si vous avez beaucoup de reconversions, il est également possible de mettre en place les virements SEPA dans Odoo pour faciliter le paiement des reconversions. *Contactez votre référent Lokavaluto*.
:::
:::success
Le compte bancaire du Professionnel est crédité!
:::
### Actions Odoo
* Depuis le journal d'achat "Reconversion - Monnaie numérique", créez une facture d'achat en choisissant comme fournisseur le professionnel à qui vous avez réalisé une reconversion.
* Ajoutez l'article "Monnaie numérique" et modifiez le montant
* Sélectionnez la date de la reconversion
* Validez la facture et enregitrez le paiement dans le journal de banque correspond à votre fonds de garantie monnaie numérique
:::success
Votre comptabilité est à jour!
:::
## Gestion des conversions monnaie coupons vers monnaie numérique
### Actions Physiques
* Prenez rendez-vous avec le Professionnel, récupérez les coupons qu'il souhaite convertir en monnaie numérique
:::info
Nous vous conseillons de transmettre un reçu au Professionnel à signer.
:::
* Déposez les coupons dans votre espace de stockage des coupons qui ne sont pas en circulation
### Actions Cyclos
* Allez sur votre instance Cyclos et connectez vous avec l'accès Administrateur
* Cliquez sur ![utilisateurs](https://docs.lokavaluto.fr/uploads/a3d9b2b571351423d33fe3a09.png) puis sur le nom de l'utilisateur pour lequel vous souhaitez effectuer la conversion
* Une fois le profil utilisateur ouvert, cliquez sur ```Paiement du système à un utilisateur``` dans le menu du cadre ![banque](https://docs.lokavaluto.fr/uploads/a3d9b2b571351423d33fe3a0b.png)
* Remplissez le formulaire et cliquez sur ```Soumettre```
* Du compte: Compte de débit
* Montant: montant de la conversion
* Description: Description visible sur la ligne de transaction du compte Monnaie numérique du Pro
* Exemple: ![](https://docs.lokavaluto.fr/uploads/a3d9b2b571351423d33fe3a0e.png)
* Vérifiez les informations, puis cliquez sur ```Confirmer```
:::success
Le compte numérique du Professionnel est instantannément crédité!
:::
### Actions des comptes bancaires euros
* Faites un virement correspondant au montant de la conversion depuis le compte bancaire nantissement monnaie coupon (compte tampon ou fonds de garantie coupons) vers le compte bancaire nantissement monnaie numérique
:::info
Si vous avez beaucoup de conversions, il est également possible de mettre en place les prélèvements SEPA dans Odoo pour faciliter le paiement des reconversions. *Contactez votre référent Lokavaluto*.
:::
:::success
Vos fonds de garantie sont équilibrés!
:::
### Actions Odoo
:::warning
Pour les MLCC qui gère la monnaie coupon dans Odoo, faite l'action de reconversion des coupons. Cependant n'ajoutez pas le Professionel comme fournisseur mais un contact Fictif que vous pouvez appeler ```Conversion coupons/numérique```
:::
* Depuis le journal de ventes "Mise en circulation - Monnaie numérique", créez une facture d'achat en choisissant comme client le professionnel à qui vous avez réalisé une conversion.
* Ajoutez l'article "Monnaie numérique" et modifiez le montant
* Sélectionnez la date de la conversion
* Validez la facture et enregitrez le paiement dans le journal de banque correspond à votre fonds de garantie monnaie numérique
:::success
Votre comptabilité est à jour!
:::

160
content/Procédures organisationnelles/Ancien fonctionnement du support Lokavaluto et pourquoi cela ne convenait pas.md

@ -1,160 +0,0 @@
---
title: Ancien fonctionnement du support Lokavaluto et pourquoi cela ne convenait pas
date: 2022-10-29T15:59:37+02:00
draft: false
---
Ancien fonctionnement du support Lokavaluto et pourquoi cela ne convenait pas
==
[TOC]
:::info
**Actuellement, Les MLCC, en fonction du contexte, de l'urgence, et des personnes concernées, utilisent 8 manières de faire des demandes de support:**
:::
### 1. Sur le Rocket chat de Lokavaluto dans le canal de la MLCC
:::success
* *Avantage:*
* Praticité pour les MLCC qui font toutes les demandes au même endroit en vrac
:::
:::danger
* *Inconvénients:*
* Les autres MLCC ne voient pas les réponses aux demandes alors qu'elles pourraient être intérressées
* Ce fonctionnement ne favorise pas l'entre aide entre mlcc
* Difficultés pour retrouver les explications si le problème revient car Rocket Chat n'est pas un outil fait pour structurer de l'information
* Difficultés pour gérer les priorités des demandes
:::
* **Taux d'utilisation: 30% (la plupart des mlcc)**
### 2. Sur le Rocket chat de Lokavaluto dans le canal de l'outil concerné
:::success
* *Avantages:*
* Ce fonctionnement favorise l'entre aide entre mlcc car les échanges ne sont plus cloisonnés par MLCC mais transversaux
* Les autres MLCC peuvent profiter des réponses faites par les techniciens
:::
:::danger
* *Inconvénients:*
* Difficultés pour retrouver les explications si le problème revient car Rocket Chat n'est pas un outil fait pour structurer de l'information
* Difficultés pour gérer les priorités des demandes
:::
* **Taux d'utilisation: 25% (de plus en plus de MLCC)**
### 3. Sur le Rocket chat de Lokavaluto en message privé
:::success
* *Avantage:*
* La MLCC se dirige directement vers la personne technique concernée
:::
:::danger
* *Inconvénients:*
* Les autres MLCC ne voient pas les réponses aux demandes alors qu'elles pourraient être intérressées
* Ce fonctionnement ne favorise pas l'entre aide entre mlcc
* Les autres membres de l'équipe technique n'ont pas connaissance de la demande
* Ce fonctionnement ne favorise pas l'entre aide entre techniciens
* Difficultés pour retrouver les explications si le problème revient car Rocket Chat n'est pas un outil fait pour structurer de l'information
* Difficultés pour gérer les priorités des demandes
:::
* **Taux d'utilisation: impossible à estimer**
### 4. Sur le Rocket chat de la MLCC
:::success
* *Avantage:*
* La MLCC n'a pas besoin d'aller sur un outil externe
:::
:::danger
* *Inconvénient:*
* Les autres MLCC ne voient pas les réponses aux demandes alors qu'elles pourraient être intérressées
* Ce fonctionnement ne favorise pas l'entre aide entre mlcc
* Les autres membres de l'équipe technique n'ont pas connaissance de la demande
* Ce fonctionnement ne favorise pas l'entre aide entre techniciens
* Difficultés pour retrouver les explications si le problème revient car Rocket Chat n'est pas un outil fait pour structurer de l'information
* Difficultés pour gérer les priorités des demandes
* Obligation pour les techniciens à s'inscrire à plusieurs RC des MLCC Lokavaluto
:::
* **Taux d'utilisation: 15% (seulement la Roue)**
### 5. Sur le projet Odoo "déploiement outils" de la MLCC
:::success
* *Avantages:*
* La MLCC n'a pas besoin d'aller sur un outil externe
* Les membres de l'équipe de la MLCC peuvent facilement suivre les demandes sans avoir à venir sur le RC de Lokavaluto
* Facilite la gestion des priorités
* Structure la demande
* Permet d'avoir une vision d'ensemble des demandes
* Facilite la recherche d'information pour retrouver des anciennes demandes
:::
:::danger
* *Inconvénients:*
* Les autres MLCC ne voient pas les réponses aux demandes alors qu'elles pourraient être intérressées
* Ce fonctionnement ne favorise pas l'entre aide entre mlcc
* Les autres membres de l'équipe technique n'ont pas connaissance de la demande (sauf s'ils sont tous inscrits sur le Odoo de la MLCC)
* Ce fonctionnement ne favorise pas l'entre aide entre techniciens
:::
* **Taux d'utilisation: 25% (principalement la Racine et l'Agnel)**
### 6. Par email à contact@lokavaluto.fr ou à une personne de l'équipe dev
:::success
* *Avantages:*
* Aucun compte à créer sur aucun outil
* Accessible aux personnes éloignées du numérique
:::
:::danger
* *Inconvénient:*
* cumul une grande partie des inconvénients ci-dessus
:::
* **Taux d'utilisation: seulement en urgence (car nous ne répondons de toute façon plus hors urgence)**
### 7. Par téléphone à une personne de l'équipe dev
:::success
* *Avantages:*
* Aucun compte à créer sur aucun outil
* Accessible aux personnes éloignées du numérique
:::
:::danger
* *Inconvénients:*
* Cumul tous les inconvénients ci-dessus
* Dérange les techniciens dans leur travail en cours
:::
* **Taux d'utilisation: seulement en urgence (car nous ne répondons de toute façon plus hors urgence)**
### 8. Sur le projet de la MLCC sur le Odoo Lokavaluto
:::success
* *Avantages:*
* Facilite la gestion des priorités
* Structure la demande
* Permet d'avoir une vision d'ensemble des demandes
* Facilite la recherche d'information pour retrouver des anciennes demandes
* Facilite le travail collaboratif de l'équipe technique
:::
:::danger
* *Inconvénients:*
* Les autres MLCC ne voient pas les réponses aux demandes alors qu'elles pourraient être intérressées
* Ce fonctionnement ne favorise pas l'entre aide entre mlcc
:::
* **Taux d'utilisation: 5% (seulement la Pive)**
---
:::info
**Afin de palier aux inconvénients des fonctionnements ci-dessus, nous (l'équipe technique Lokavaluto) vous proposons le [fonctionnement suivant](https://docs.lokavaluto.fr/MAI9LEmBTH6hB6II6xUTxA?view)**
:::

80
content/Procédures organisationnelles/Nouveau fonctionnement du support Lokavaluto.md

@ -1,80 +0,0 @@
---
title: Nouveau fonctionnement du support Lokavaluto
date: 2022-10-29T15:59:37+02:00
draft: false
---
Fonctionnement du support lokavaluto et du suivi des demandes
==
:::info
Rappel: [vous trouverez ici le détail de l'ancien fonctionnement du support Lokavaluto et pourquoi cela ne convenait pas.
](https://docs.lokavaluto.fr/S6uGRvQ-Rl25LiyCgPQvzg?view)
:::
[TOC]
### 1. Création d'un compte
:::success
Vous devez posséder un compte Odoo Lokavaluto pour utiliser le nouveau fonctionnement du support. (indispensable pour savoir qui fait la demande, et pour vous pour pouvoir suivre les avancées)
:::
1. [Cliquez ici](https://lokavaluto.fr/web/signup) pour créer votre compte. **Si vous avez déjà un compte Rocket chat Lokavaluto, utilisez la même adresse email que celui-ci.**
2. Cliquez sur ![](https://docs.lokavaluto.fr/uploads/1a3bf82227377860344c9d600.png) en haut à droite pour vous connecter.
3. Faites ensuite une demande sur Rocket chat pour qu'on vous donne les droits d'accès.
:::warning
Nous conseillons fortement les MLCC de définir des référent.es ayant la possibilité de faire des demandes et de ne pas laisser n'importe qui faire des demandes afin de "filtrer" les demandes (certaines réponses peuvent être donné par les référent.es et d'autres peuvent avoir déjà été demandées).
:::
### 2. Remplir le formulaire de demande
1. **Pour toute demande de support ou pour toute proposition d'amélioration, la MLCC remplie [ce formulaire](https://lokavaluto.fr/support) (visible uniquement si connecté)**
:::info
L'utilisation du formulaire plutôt que la création de la tâche directement dans le projet permet d'obliger la structuration de la demande, permettant ainsi un meilleur support.
:::
:::warning
N'oubliez pas de mettre cette page en Favoris, cela évitera de demander à chaque fois où la trouver ;-)
:::
### 3. Suivre les demandes
2. A la validation du formulaire une tâche est créee dans le projet Odoo choisi par la personne
:::info
La tâche est créée dans la colonne "Demande" du projet et est assignée à la personne qui à fait la demande.
:::
3. L'équipe technique est notifiée de la nouvelle demande via un message automatique dans le canal Rocket Chat concerné
4. La personne de l'équipe dev qui prend en charge la résolution de la demande ajoute son nom dans le champ "Contact Lokavaluto"
5. Les référent.es numériques des MLCC ont un compte Odoo Lokavaluto et peuvent suivre l'avancée des demandes depuis l'application Projet
* ex: ![](https://docs.lokavaluto.fr/uploads/a3d9b2b571351423d33fe3a0f.png)
6. L'équipe dev, mais aussi les membres des MLCC peuvent visiualiser les tâches spécifiques à un projet, où toutes les tâches de tous les projets et filtrer facilement en fonction des priorités, de l'état des tâches ou par étiquettes
7. Les échanges importants liés à une tâche se font sur le "chatter" de la tâche, les autres sur le Rocket Chat de Lokavaluto dans le canal de la MLCC
:::warning
Il faut utiliser la fonctionnalité "Enregistrer une note" et non "envoyer un message" (erreur) en taguant la personne de l'équipe dev référente (contact lokavaluto)
:::
ex: ![](https://docs.lokavaluto.fr/uploads/a3d9b2b571351423d33fe3a10.png)
8. Chacun peut utiliser des mots-clés pour retrouver facilement les explications données sur la résolution des tâches
ex: ![](https://docs.lokavaluto.fr/uploads/2ef3abe567f3152652202f408.png)
:::success
Rocket chat n'est utilisé plus que pour de son objectif d'origine: de la messagerie instantanée pour discuter, s'organiser, mais pas pour de nouvelles demandes de support
:::

93
content/posts/my-first-post.md

@ -1,93 +0,0 @@
---
title: "My First Post"
date: 2022-10-29T15:59:37+02:00
draft: false
---
## Procédures organisationnelles
- [Nouveau fonctionnement du support Lokavaluto](https://docs.lokavaluto.fr/MAI9LEmBTH6hB6II6xUTxA#)
- [Ancien fonctionnement du support Lokavaluto et pourquoi cela ne convenait pas](https://docs.lokavaluto.fr/S6uGRvQ-Rl25LiyCgPQvzg#)
## Odoo Community (v12)
### Procédures d'utilisation
- [Présentation et interface générale](https://docs.lokavaluto.fr/tgJjJkHfS_OZwj0JWvHsKw?view)
- [Paramétrage du compte utilisateur](https://docs.lokavaluto.fr/Sc_tIVdCTaSClMkdkg8PaQ?view)
- [Recherches et vues](https://docs.lokavaluto.fr/6pmPhxmATxSIgNYPKWruvQ?view)
- [Utilisation du chatter](https://docs.lokavaluto.fr/whiTd855THaucVX6hhBcHQ?view)
- [Utilisation du calendrier](https://docs.lokavaluto.fr/CJt7IS8OSSmD6yg7vrWTlg?view)
- [Gestion de la prospection (CRM)](https://docs.lokavaluto.fr/oE_BiLb_RwyrrRwvElbBWw?view)
- [Gestion des contacts, des membres et cartographie](https://docs.lokavaluto.fr/apAZA45PRwa0Cj5F1i8UDQ?view)
- [Tutoriel d’utilisation du module Membres pour les Monnaies Locales](https://docs.lokavaluto.fr/Z6I27taoSciMu5pvYjrLLA#)
- [Gestion des relations entre contacts](https://docs.lokavaluto.fr/EZU8_sb7RwqyPh4Y9ItRIA?view)
- [Envoi des newsletter et email Marketing](https://docs.lokavaluto.fr/0RpWDYwWSnaIpH2Tz7-jrg?view)
- [Gestion des événements](https://docs.lokavaluto.fr/0zFFR8pgSEmdO45mkLzKTQ?view)
- [Gestion de Projet](https://docs.lokavaluto.fr/UYHemvLrQPewS0HlHEJSvQ?view)
- [Feuilles de temps](https://docs.lokavaluto.fr/Pl2GX0j1Qf2L5zVHD8nJeQ?view)
- [Facturation - Comptabilité : utilisation générale](https://docs.lokavaluto.fr/a5ZqnKcfT7OuivOb6F-DAA?view)
- [Ajout d'une adhésion](https://docs.lokavaluto.fr/9n0Zl9-sRGusmWYQBSkK9A?view)
- [Rapprochement bancaire](https://docs.lokavaluto.fr/HifCGFN3QNWIRgt30y5OnA#)
- [Importer un relevé CSV Crédit coopératif dans Odoo](https://docs.lokavaluto.fr/9xgBdFP2Re-Ym_Jxr21Dpg?view)
- [Prélèvement SEPA dans Odoo](https://docs.lokavaluto.fr/RifSR2t4TH-ADXq3MzYsyQ?view)
- [Gestion du nantissement](https://docs.laroue.org/GAQ962niS_6dwu9I-aJisA?view)
- Gestion des immobilisations
- Comptabilité analytique
- Remises de chèques et bordereaux de remise
### Procédures de configuration
- [Liste et détail des modules et applications Odoo régulièrement utilisés](https://docs.lokavaluto.fr/hwh54P5-TbqPAacm6CuG5Q?view)
- [Installer une application ou un module](https://docs.lokavaluto.fr/koiNU5qpR1iYSsE9F9jhVw?view)
- [Création d'un utilisateur et gestion des droits d'accès](https://docs.lokavaluto.fr/xePpLWP7TpWLJRIpKOL44Q?view)
- [Création d'un site internet](https://docs.lokavaluto.fr/aJTv0fo1QuqaX8f5_bAfRA?view) (à rédiger)
- [Configuration initiale comptabilité/facturation](https://docs.lokavaluto.fr/dqZxMeDoTAipos_Nds01vQ?view)
- [Configuration des articles d'adhésion](https://docs.lokavaluto.fr/5n-dsw_fQn2lN3taiSqC8w?view)
- [Configuration et fonctionnement des adhésions en ligne avec Stripe](https://docs.lokavaluto.fr/FyTV4sPRSy2dBckgCV27Yg?view) (à rédiger)
- [Création et configuration des listes de diffusion](https://docs.lokavaluto.fr/mx5vKuPpTsae9pvCak7d3g?view)
- [Configuration et utilisation de l'édition en lot](https://docs.lokavaluto.fr/FlG8-e_gRfmu-7pRS9n9MQ?view)
- [Importer des données dans Odoo](https://docs.lokavaluto.fr/Nzj43P65T-Sfa0re00A7jA?view)
- [Exporter des données depuis Odoo](https://docs.lokavaluto.fr/UmQyyZ2fQ9WM7RMOq5T_6A?view)
- [Utilisation du mode développeur](https://docs.lokavaluto.fr/ZPAqfW93T4e0ct_Des2y4Q?view)
- [Création d'une webb app Odoo]() (à rédiger)
- [Procédure de nettoyage des bases de données Odoo](https://docs.lokavaluto.fr/Tleoi5cHQ9m-eGgTSvvtJg#)
## Autres outils
- [**SOGO et Thunderbird:** Gérer ses courriels](https://docs.lokavaluto.fr/oNPVbLOyT5GnwfMenLWT_Q?view)
## Cyclos
- [Gestion administrative et comptable Monnaie numérique Cyclos](https://docs.lokavaluto.fr/-ffeZk52SSSShj6z3upleQ#)
## Procédures techniques
### Général
- [Installer le kit Lokavaluto / la suite Just Odoo It en moins de 2 heures](https://docs.elabore.coop/yp8m-2HtTjeAlZiyCbAC7w?view)
- [Configuration du Single Sign On (SSO) dans la suite Just Odoo It](https://docs.elabore.coop/rcWPOJGiTfKWYegB_-S94g?view)
### OVH
- [Procédère d'ouverture d'un Serveur Privé Virtuel (VPS) chez OVH](https://docs.lokavaluto.fr/ofxKNg8ST4SSryBOrs-qYA?view)
### Odoo
- [Copier une base de donnée Odoo d'une instance Odoo à une autre](https://docs.elabore.coop/FCiWj7IIRdCjy0BDhJGWrQ?view)
- [Mettre à jour / Modifier l’image Docker de Odoo dans la suite Just Odoo It](https://docs.elabore.coop/WdymXfpJSmGsQjnfbZHigw#)
- [Installer un module Odoo “à la main” avec Just Odoo It](https://docs.elabore.coop/0QtrHIt2TH-MmrTsSlz8EQ?view)
### Nextcloud
- [Procédure de migration manuelle de Nextcloud](https://doc.myceliandre.fr/nextcloud-update-compose?view)
### Gogocarto
- [Installer et configurer une cartographie Gogocarto basée sur Odoo](https://docs.elabore.coop/xQanUX_IRHyTMjnCV6uGpQ?view)
### Cyclos
- [Installer et configurer Cyclos](https://docs.lokavaluto.fr/pBl-0OIiSeW9HQG1k_OLhQ#)
- [Installation full stack Cyclos](https://docs.lokavaluto.fr/uxiFzvb4T-eDmt_RhaTblg#) --> ce paramétrage est à intégrer dans le paramétrage de base

88
content/posts/my-second-post.md

@ -1,88 +0,0 @@
---
title: "My Second Post"
date: 2022-10-29T15:59:37+02:00
draft: false
---
# Dev gestion coupons et comptoir et intégration Eusko Lokavaluto
[TOC]
---
## Migration Eusko
- Xebax réfléchis à la migration des outils de l'Eusko sur les outils Lokavaluto
- Budget tendu, attentif aux dépenses
- Mathieu propose de faire comme les autres MLCC --> une partie de la sub numérique pour le dev est récupérée pour l'Eusko pour du déploiement et support
- A priori meilleure solution pour migration Odoo : installer un Odoo v12 vierge, y importer les écritures comptables, et repartir au 1er janvier une compta sur Ovoo v12.
---
## Budget dev
- Budget participatif avec la Tinda --> jusqu'à fin décembre
- Budget sub Eusko --> à facturer avant la fin du mois
- Voir si on peut passer par la Pive pour débloquer la sub de la Pive --> trop short, voir si on pourra faire un devis
- Xebax envoi mail + montant facture. Faire la facture
---
## Etat des lieux fonctionnel
Source : https://visio.myceliandre.fr/playback/presentation/2.3/312f00e9198373f2da4864fb87d5c9f82d9c1f43-1655467204456
- Gestion des articles :
- 1 article par valeur de coupon
- OU 1 article correspondant à 1 unité
- Fonctionne en déconnecté (sauf si nécessité de connexion pour envoi mail ou autre)
- 1 caisse = 1 point de vente, si une comptoir a plusieurs caisses, il peut toutes les voir
- accès uniquement au module point de vente avec juste les menus nécessaires
- réglage des produits "vendables" pour chaque comptoir (adhésion, coupons, goodies, etc)
- gestion de session avec bilan de session à la clotûre
- lien de la transaction avec les fiches partners
- reconversion fonctionnel
- génération des reçu/facture immédiat sur le point de vente
- écritures comptables:
- du détail de toutes les transactions
- OU groupées par session par CdC
- gestion des transferts entre stock principal et stocks des comptoirs
---
## Reste à coder/installer/configurer
Source : https://visio.myceliandre.fr/playback/presentation/2.3/312f00e9198373f2da4864fb87d5c9f82d9c1f43-1655467204456
- régler bug TVA 10%
### Prise d'adhésion
- afficher le statut d'adhésion dans la liste des "clients"
- bloquer l'achat de coupon si la personne n'est pas adhérente
- ajouter un bouton "Adhésion" pour les clients non adhérent ou pas à jour
### Processus de reconversion
- adapter le process de reconversion pour éviter de taper un "moins" pour chaque type de billet
- forcer la commission à la reprise : dès le moment où un retour est fait, la commission s'applique
- personnaliser le pourcentage de commission par partner
- automatiser la prise en compte comptable de la commission
- différencier les emplacements de stock d'émissions et de retours (dans les cas où les MLC reconverties retournent directement au central)
- pouvoir mettre les transferts de stock lors de la reconversion "en attente" jusqu'à ce que la réception soit validée par l'asso
### Approvisionnement en coupons
- accéder à l'interface PdV depuis le portail ? Gestion ouverture/fermeture session depuis le portail ?
- ajouter un bouton "Ré-approvisionnement" sur kanban PdV et PdV Javascript pour instancier un transfert de stock du stock principal vers le stock du comptoir, avec un maximum d'info pré-remplies (et cachées)
- ajouter un bouton "Retour de stock" sur kanban PdV et PdV Javascript pour instancier un transfert de stock du stock du comptoir vers le stock principal, avec un maximum d'info pré-remplies (et cachées)
- ajouter un bouton de validation de réception d'un transfert dans le PdV Javascript
### Change Coupons <-> Numérique
- Rajouter un bouton "Retrait de coupons" qui initie un processus de reconversion de monnaie numérique et conversion de coupons
- Rajouter un bouton "Dépot de coupons" qui initie un processus de reconversion de coupon SANS commission et une conversion de monnaie numérique
- coder ces processus...

81
generate.py

@ -1,81 +0,0 @@
import io
import os
import pypandoc
import panflute
import requests
import ipdb
parent_dir = "./content"
def action(elem, doc):
if isinstance(elem, panflute.Image):
doc.images.append(elem)
elif isinstance(elem, panflute.Link):
doc.links.append(elem)
def find_link(elem, doc):
if type(elem) == panflute.elements.Link:
doc.link.append(elem)
print(panflute.stringify(elem))
def create_folder_h3(elem, doc):
if type(elem) == panflute.elements.Header and elem.level == 3:
directory = panflute.stringify(elem)
path = os.path.join(parent_dir, directory)
print(path)
def download(link):
r = requests.get(link)
return r.text
def create_folder_h2(elem, doc):
if type(elem) == panflute.elements.Header and elem.level == 2:
doc.link = []
directory = panflute.stringify(elem)
path = os.path.join(parent_dir, directory)
os.makedirs(path, exist_ok=True)
elem.next.walk(find_link)
for link in doc.link:
if link.url[-1] == "#":
md_content = download(link.url[:-1] + "/download")
print(
parent_dir
+ "/"
+ directory
+ "/"
+ panflute.stringify(link)
+ ".md"
)
with open(
parent_dir
+ "/"
+ directory
+ "/"
+ panflute.stringify(link)
+ ".md",
"w",
) as f:
hugo_head = """
---
title: %s
date: 2022-10-29T15:59:37+02:00
draft: false
---
""" % (
panflute.stringify(link)
)
f.write(hugo_head + md_content)
if __name__ == "__main__":
data = pypandoc.convert_file("content/posts/my-first-post.md", "json")
doc = panflute.load(io.StringIO(data))
doc.images = []
doc.links = []
doc = panflute.run_filter(create_folder_h2, doc=doc)

177
generate_lotusdocs.py

@ -0,0 +1,177 @@
import json
import os
import re
import requests
import toml
from shutil import copytree, rmtree
def parse_for_toc(content):
# TODO: ADD .TableofContent directly to the page (see hugo theme ?)
content = content.replace("[TOC]", "")
return content
def parse_for_notice(content):
result = re.findall(":::warning.*?:::", content, re.MULTILINE | re.DOTALL)
for notice in result:
old = notice
content = content.replace(
old,
notice.replace(":::warning", '{{% alert context="warning" %}}').replace(
":::", "{{% /alert %}}"
),
)
result = re.findall(":::info.*?:::", content, re.MULTILINE | re.DOTALL)
for notice in result:
old = notice
content = content.replace(
old,
notice.replace(":::info", '{{% alert context="info" %}}').replace(
":::", "{{% /alert %}}"
),
)
result = re.findall(":::success.*?:::", content, re.MULTILINE | re.DOTALL)
for notice in result:
old = notice
content = content.replace(
old,
notice.replace(":::success", '{{% alert context="success" %}}').replace(
":::", "{{% /alert %}}"
),
)
result = re.findall(":::danger.*?:::", content, re.MULTILINE | re.DOTALL)
for notice in result:
old = notice
content = content.replace(
old,
notice.replace(":::danger", '{{% alert context="danger" %}}').replace(
":::", "{{% /alert %}}"
),
)
# print(content)
return content
def create_index_file(dir_path, dir_name):
#add _index.md for page organization
with open(dir_path + "/_index.md", "wb") as f:
print("Created", dir_path + "/_index.md")
index = """
+++
title = "{dir_name}"
chapter = true
weight = 5
+++
# {dir_name}
Discover what this Hugo theme is all about and the core-concepts behind it.
""".format(
dir_name=dir_name
)
f.write(b"%s" % index.encode("utf-8"))
def generate_directory_structure_and_files(node, parent_path="./content/"):
if "children" in node:
# If the node has children, it's a directory
dir_path = os.path.join(parent_path, node["technical_name"])
os.makedirs(dir_path, exist_ok=True) # Create directory
create_index_file(dir_path, node["name"])
for child in node["children"]:
generate_directory_structure_and_files(child, parent_path=dir_path)
elif "url" in node:
# If the node has a URL, it's a document
file_path = os.path.join(parent_path, node["technical_name"] + ".md")
link_url = node["url"]
if link_url:
with open(file_path, "wb") as f:
doc_link = link_url + "/download"
response = requests.get(doc_link)
hugo_header = '---\ntitle: "' + node["name"] + '"\n---\n\n'
content = parse_for_notice(
response.content.decode("utf-8")
).encode("utf-8")
content = parse_for_toc(content.decode("utf-8")).encode("utf-8")
f.write(hugo_header.encode("utf-8"))
f.write(content.replace(b"---", b""))
print("Downloaded", doc_link, "to", file_path)
def generate_book_layout(node):
"""Copy the defaults layout repository 'docs' for the new/other books"""
layout_dir = "./themes/lotusdocs/layouts/"
layout_docs_dir = os.path.join(layout_dir, "docs")
layout_book_dir = os.path.join(layout_dir, node["technical_name"])
# copy book layout folder from "layouts/docs" if it doesn't exist
if not os.path.exists(layout_book_dir):
# create the layout for the book
copytree(layout_docs_dir, layout_book_dir)
def generate_book_menu(node, weight):
"""Generate the menu displayed in the home page"""
book_config = {
"name": node["name"],
"url": node["technical_name"] + "/",
"identifier": node["technical_name"],
"weight": weight,
}
return book_config
def generate_book_config(node):
"""Generate configuration for each book"""
book_config = {
"title": node["name"],
"darkMode": True
}
return book_config
def parse_json_file(json_file_path):
content_dir = "./content/"
config_path ="./hugo.toml"
# new_config_path = "./config_new.toml" # TO DELETE WHEN SCRIPT FINISHED
config_data_dict = toml.load(config_path)
# Retrieve the init json data
with open(json_file_path, 'r') as json_file:
json_data = json.load(json_file)
if not os.path.exists(content_dir):
# Create content directory if it doesn't exist
os.makedirs(content_dir)
else:
# Delete the content directories files and sub-directories
rmtree(content_dir)
nb_books = 0
primary_menu = []
books_config = []
config_data_dict.update({"params": {}})
# Loop on the json structure to build repositories and files
for book_node in json_data["books"]:
nb_books +=1
generate_directory_structure_and_files(book_node)
generate_book_layout(book_node)
primary_menu.append(generate_book_menu(book_node, nb_books))
# books_config.append(generate_book_config(book_node))
config_data_dict["params"]["%s" % book_node["technical_name"]] = generate_book_config(book_node)
# Add the primary menu data to the whole config
config_data_dict.update({"menu": {"primary": primary_menu}})
#config_data_dict.update({"params": {"primary": primary_menu}})
print("WHOLE CONFIG")
print(config_data_dict)
# Replace the config.toml content with the new params
with open(config_path, 'w') as toml_file:
toml.dump(config_data_dict, toml_file)
parse_json_file("structure.json")

38
hugo.toml

@ -0,0 +1,38 @@
baseURL = "http://example.org/"
languageCode = "en-us"
title = "My New Hugo Site"
[outputs]
home = [ "HTML", "RSS", "JSON",]
[module]
replacements = "github.com/colinwilson/lotusdocs -> lotusdocs"
[[module.imports]]
path = "github.com/colinwilson/lotusdocs"
disable = false
[[module.imports]]
path = "github.com/gohugoio/hugo-mod-bootstrap-scss/v5"
disable = false
[menu]
[[menu.primary]]
name = "User guide"
url = "user/"
identifier = "user"
weight = 1
[[menu.primary]]
name = "Developper guide"
url = "dev/"
identifier = "dev"
weight = 2
[params]
[[params.user]]
title = "User guide"
darkMode = true
[[params.dev]]
title = "Developper guide"
darkMode = true

26
init_hugo_toml.py

@ -0,0 +1,26 @@
def get_hugo_config_content():
content = """
baseURL = 'http://example.org/'
languageCode = 'en-us'
title = 'My New Hugo Site'
[module]
[[module.imports]]
path = "github.com/colinwilson/lotusdocs"
disable = false
[[module.imports]]
path = "github.com/gohugoio/hugo-mod-bootstrap-scss/v5"
disable = false
"""
return content
# Get TOML file content
toml_content = get_hugo_config_content()
# Write the content in a hugo.toml file
with open('hugo.toml', 'w') as file:
file.write(toml_content)
print("File hugo.toml generated with success.")

7
requirements.txt

@ -0,0 +1,7 @@
beautifulsoup4==4.12.0
certifi==2023.7.22
idna==3.4
markdown==3.4.3
requests==2.27.1
urllib3==2.0.5
zipp==3.17.0

76
structure.json

@ -0,0 +1,76 @@
{
"books": [
{
"technical_name": "user",
"name": "User guide",
"children": [
{
"technical_name": "menu1-1",
"name": "Menu 1.1",
"children": [
{
"technical_name": "new_support",
"name": "Nouveau fonctionnement du support Lokavaluto",
"url": "https://docs.lokavaluto.fr/MAI9LEmBTH6hB6II6xUTxA"
},
{
"technical_name": "old_support",
"name": "Ancien fonctionnement du support Lokavaluto et pourquoi cela ne convenait pas",
"url": "https://docs.lokavaluto.fr/S6uGRvQ-Rl25LiyCgPQvzg"
}
]
},
{
"technical_name": "menu1-2",
"name": "Menu 1.2",
"children": [
{
"technical_name": "pres_general",
"name": "Présentation et interface générale",
"url": "https://docs.lokavaluto.fr/tgJjJkHfS_OZwj0JWvHsKw"
},
{
"technical_name": "old_support",
"name": "Ancien fonctionnement du support Lokavaluto et pourquoi cela ne convenait pas"
},
{
"technical_name": "menu1-2-1",
"name": "Menu 1.2.1",
"children": [
{
"technical_name": "prospe_management",
"name": "Gestion de la prospection (CRM)",
"url": "https://docs.lokavaluto.fr/oE_BiLb_RwyrrRwvElbBWw"
},
{
"technical_name": "contact_management",
"name": "Gestion des contacts, des membres et cartographie",
"url": "https://docs.lokavaluto.fr/apAZA45PRwa0Cj5F1i8UDQ"
}
]
},
{
"technical_name": "menu1-2-2",
"name": "Menu 1.2.2",
"children": [
{
"technical_name": "project_management",
"name": "Gestion de projet",
"url": "https://docs.lokavaluto.fr/UYHemvLrQPewS0HlHEJSvQ"
},
{
"technical_name": "event_management",
"name": "Gestion d'événements"
}
]
}
]
}
]
},
{
"technical_name": "dev",
"name": "Developper guide"
}
]
}

42
update.sh

@ -0,0 +1,42 @@
#!/bin/bash
# Init hugo config file
python init_hugo_toml.py
if ! [ -e "/themes/lotusdocs" ]; then
if ! [ -e "/themes" ]; then
mkdir themes
fi
git clone https://github.com/colinwilson/lotusdocs themes/lotusdocs
fi
#################################################################################
# For later, when books will be configurabled without themes content copy #
#################################################################################
# Start Hugo server in the background. This will import/update Lotusdocs module.
# The import of the module is important to get the themes files, because some of
# the sub-directories must be adapted to the future doc structure.
# hugo server > init_hugo.log 2>&1 &
# # Wait for the end of the initialization process and stop hugo
# while true; do
# if grep -q "Web Server is available" init_hugo.log; then
# # Initialization done
# echo "Initialization complete. Web Server is available."
# # Get the PID of the Hugo process and store it in a file for later use
# pgrep -f "hugo server" | kill
# # You can stop the loop if you don't need to monitor the log anymore
# break
# fi
# sleep 1
# done
# # We don't need init_hugo.log anymore
# rm init_hugo.log
# Generate Hugo Lotusdoc website structure and config
python generate_lotusdocs.py
Loading…
Cancel
Save