Compare commits
merge into: njeudy:master
njeudy:master
njeudy:refactor_hedgedoc_parser
njeudy:refactor_lotusdocs_theme
pull from: njeudy:refactor_hedgedoc_parser
njeudy:master
njeudy:refactor_hedgedoc_parser
njeudy:refactor_lotusdocs_theme
9 Commits
master
...
refactor_h
Author | SHA1 | Message | Date |
---|---|---|---|
Nicolas JEUDY | 846692b133 |
[FIX] folder hierarchy and some tricks :)
|
1 year ago |
Stéphan Sainléger | 3eeb4af365 |
[IMP] add requirements.txt
|
1 year ago |
Nicolas JEUDY | bd6f4646ad |
[POC] update readme
|
2 years ago |
Nicolas JEUDY | 734e9dee47 |
[POC] parse data and adapt to hugo learning theme
|
2 years ago |
Nicolas JEUDY | 304fcfe3e1 |
[new] update generation to be in content directly
|
2 years ago |
Nicolas JEUDY | 2b3d478bb7 |
[fix] generate json output for index
|
2 years ago |
Nicolas JEUDY | fb3657be9f |
[new] clean my-first-post.md for testing
|
2 years ago |
Nicolas JEUDY | e3a5cc3f12 |
[new] markdown exemple
|
2 years ago |
Nicolas JEUDY | 1c1e698924 |
[new] reflection about generator
|
2 years ago |
11 changed files with 359 additions and 583 deletions
-
10README.md
-
3config.toml
-
185content/Cyclos/Gestion administrative et comptable Monnaie numérique Cyclos.md
-
160content/Procédures organisationnelles/Ancien fonctionnement du support Lokavaluto et pourquoi cela ne convenait pas.md
-
80content/Procédures organisationnelles/Nouveau fonctionnement du support Lokavaluto.md
-
135content/my-first-post.md
-
88content/posts/my-second-post.md
-
109generate_v2.py
-
160generate_v3.py
-
7requirements.txt
-
5update.sh
@ -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! |
|||
::: |
@ -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)** |
|||
::: |
@ -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 |
|||
::: |
|||
|
@ -1,93 +1,92 @@ |
|||
--- |
|||
____ |
|||
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) |
|||
____ |
|||
|
|||
# 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) |
|||
- [Paramétrage du compte utilisateur](https://docs.lokavaluto.fr/Sc_tIVdCTaSClMkdkg8PaQ) |
|||
- [Recherches et vues](https://docs.lokavaluto.fr/6pmPhxmATxSIgNYPKWruvQ) |
|||
- [Utilisation du chatter](https://docs.lokavaluto.fr/whiTd855THaucVX6hhBcHQ) |
|||
- [Utilisation du calendrier](https://docs.lokavaluto.fr/CJt7IS8OSSmD6yg7vrWTlg) |
|||
- [Gestion de la prospection (CRM)](https://docs.lokavaluto.fr/oE_BiLb_RwyrrRwvElbBWw) |
|||
- [Gestion des contacts, des membres et cartographie](https://docs.lokavaluto.fr/apAZA45PRwa0Cj5F1i8UDQ) |
|||
- [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) |
|||
- [Envoi des newsletter et email Marketing](https://docs.lokavaluto.fr/0RpWDYwWSnaIpH2Tz7-jrg) |
|||
- [Gestion des événements](https://docs.lokavaluto.fr/0zFFR8pgSEmdO45mkLzKTQ) |
|||
- [Gestion de Projet](https://docs.lokavaluto.fr/UYHemvLrQPewS0HlHEJSvQ) |
|||
- [Feuilles de temps](https://docs.lokavaluto.fr/Pl2GX0j1Qf2L5zVHD8nJeQ) |
|||
- [Facturation - Comptabilité : utilisation générale](https://docs.lokavaluto.fr/a5ZqnKcfT7OuivOb6F-DAA) |
|||
- [Ajout d'une adhésion](https://docs.lokavaluto.fr/9n0Zl9-sRGusmWYQBSkK9A) |
|||
- [Rapprochement bancaire](https://docs.lokavaluto.fr/HifCGFN3QNWIRgt30y5OnA) |
|||
- [Importer un relevé CSV Crédit coopératif dans Odoo](https://docs.lokavaluto.fr/9xgBdFP2Re-Ym_Jxr21Dpg) |
|||
- [Prélèvement SEPA dans Odoo](https://docs.lokavaluto.fr/RifSR2t4TH-ADXq3MzYsyQ) |
|||
- [Gestion du nantissement](https://docs.laroue.org/GAQ962niS_6dwu9I-aJisA) |
|||
- 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) |
|||
## Procédures de configuration |
|||
|
|||
- [Liste et détail des modules et applications Odoo régulièrement utilisés](https://docs.lokavaluto.fr/hwh54P5-TbqPAacm6CuG5Q) |
|||
- [Installer une application ou un module](https://docs.lokavaluto.fr/koiNU5qpR1iYSsE9F9jhVw) |
|||
- [Création d'un utilisateur et gestion des droits d'accès](https://docs.lokavaluto.fr/xePpLWP7TpWLJRIpKOL44Q) |
|||
- [Création d'un site internet](https://docs.lokavaluto.fr/aJTv0fo1QuqaX8f5_bAfRA) (à rédiger) |
|||
- [Configuration initiale comptabilité/facturation](https://docs.lokavaluto.fr/dqZxMeDoTAipos_Nds01vQ) |
|||
- [Configuration des articles d'adhésion](https://docs.lokavaluto.fr/5n-dsw_fQn2lN3taiSqC8w) |
|||
- [Configuration et fonctionnement des adhésions en ligne avec Stripe](https://docs.lokavaluto.fr/FyTV4sPRSy2dBckgCV27Yg) (à rédiger) |
|||
- [Création et configuration des listes de diffusion](https://docs.lokavaluto.fr/mx5vKuPpTsae9pvCak7d3g) |
|||
- [Configuration et utilisation de l'édition en lot](https://docs.lokavaluto.fr/FlG8-e_gRfmu-7pRS9n9MQ) |
|||
- [Importer des données dans Odoo](https://docs.lokavaluto.fr/Nzj43P65T-Sfa0re00A7jA) |
|||
- [Exporter des données depuis Odoo](https://docs.lokavaluto.fr/UmQyyZ2fQ9WM7RMOq5T_6A) |
|||
- [Utilisation du mode développeur](https://docs.lokavaluto.fr/ZPAqfW93T4e0ct_Des2y4Q) |
|||
- [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#) |
|||
- [Procédure de nettoyage des bases de données Odoo](https://docs.lokavaluto.fr/Tleoi5cHQ9m-eGgTSvvtJg) |
|||
|
|||
## Autres outils |
|||
# Autres outils |
|||
|
|||
- [**SOGO et Thunderbird:** Gérer ses courriels](https://docs.lokavaluto.fr/oNPVbLOyT5GnwfMenLWT_Q?view) |
|||
- [**SOGO et Thunderbird:** Gérer ses courriels](https://docs.lokavaluto.fr/oNPVbLOyT5GnwfMenLWT_Q) |
|||
|
|||
## Cyclos |
|||
# Cyclos |
|||
|
|||
- [Gestion administrative et comptable Monnaie numérique Cyclos](https://docs.lokavaluto.fr/-ffeZk52SSSShj6z3upleQ#) |
|||
- [Gestion administrative et comptable Monnaie numérique Cyclos](https://docs.lokavaluto.fr/-ffeZk52SSSShj6z3upleQ) |
|||
|
|||
## Procédures techniques |
|||
# Procédures techniques |
|||
|
|||
### Général |
|||
## 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) |
|||
- [Installer le kit Lokavaluto / la suite Just Odoo It en moins de 2 heures](https://docs.elabore.coop/yp8m-2HtTjeAlZiyCbAC7w) |
|||
- [Configuration du Single Sign On (SSO) dans la suite Just Odoo It](https://docs.elabore.coop/rcWPOJGiTfKWYegB_-S94g) |
|||
|
|||
### OVH |
|||
## OVH |
|||
|
|||
- [Procédère d'ouverture d'un Serveur Privé Virtuel (VPS) chez OVH](https://docs.lokavaluto.fr/ofxKNg8ST4SSryBOrs-qYA?view) |
|||
- [Procédère d'ouverture d'un Serveur Privé Virtuel (VPS) chez OVH](https://docs.lokavaluto.fr/ofxKNg8ST4SSryBOrs-qYA) |
|||
|
|||
### Odoo |
|||
## 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) |
|||
- [Copier une base de donnée Odoo d'une instance Odoo à une autre](https://docs.elabore.coop/FCiWj7IIRdCjy0BDhJGWrQ) |
|||
- [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) |
|||
|
|||
### Nextcloud |
|||
## Nextcloud |
|||
|
|||
- [Procédure de migration manuelle de Nextcloud](https://doc.myceliandre.fr/nextcloud-update-compose?view) |
|||
- [Procédure de migration manuelle de Nextcloud](https://doc.myceliandre.fr/nextcloud-update-compose) |
|||
|
|||
### Gogocarto |
|||
## Gogocarto |
|||
|
|||
- [Installer et configurer une cartographie Gogocarto basée sur Odoo](https://docs.elabore.coop/xQanUX_IRHyTMjnCV6uGpQ?view) |
|||
- [Installer et configurer une cartographie Gogocarto basée sur Odoo](https://docs.elabore.coop/xQanUX_IRHyTMjnCV6uGpQ) |
|||
|
|||
### Cyclos |
|||
## 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 |
|||
- [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 |
@ -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... |
@ -0,0 +1,109 @@ |
|||
import io |
|||
import os |
|||
from bs4 import BeautifulSoup, Comment |
|||
import markdown |
|||
import ipdb |
|||
|
|||
parent_dir = "./content" |
|||
|
|||
|
|||
def parse_markdown_file(file_path): |
|||
with open(file_path, "r") as file: |
|||
markdown_text = file.read() |
|||
html = markdown.markdown(markdown_text) |
|||
print(html) |
|||
headings = [] |
|||
current_level = 0 |
|||
for line in html.split("\n"): |
|||
if line.startswith("<h1>"): |
|||
current_level = 1 |
|||
headings.append( |
|||
{"level": current_level, "text": line[4:-5], "children": []} |
|||
) |
|||
elif line.startswith("<h2>"): |
|||
if current_level < 2: |
|||
current_level = 2 |
|||
headings[-1]["children"].append( |
|||
{"level": current_level, "text": line[4:-5], "children": []} |
|||
) |
|||
else: |
|||
headings[-1]["children"].append( |
|||
{"level": current_level, "text": line[4:-5], "children": []} |
|||
) |
|||
elif line.startswith("<h3>"): |
|||
if current_level < 3: |
|||
current_level = 3 |
|||
headings[-1]["children"][-1]["children"].append( |
|||
{"level": current_level, "text": line[4:-5], "children": []} |
|||
) |
|||
else: |
|||
headings[-1]["children"][-1]["children"].append( |
|||
{"level": current_level, "text": line[4:-5], "children": []} |
|||
) |
|||
return headings |
|||
|
|||
|
|||
def parse_markdown_file_2(file_path): |
|||
with open(file_path, "r", encoding="utf-8") as f: |
|||
content = f.read() |
|||
html = markdown.markdown(content) |
|||
print(html) |
|||
soup = BeautifulSoup(html, "html.parser") |
|||
headings = [] |
|||
|
|||
def parse_element(element, level): |
|||
print(element) |
|||
if element.name == "h1": |
|||
heading = { |
|||
"text": element.text.strip(), |
|||
"level": level, |
|||
"subheadings": [], |
|||
"links": [], |
|||
} |
|||
headings.append(heading) |
|||
elif element.name == "h2": |
|||
subheading = { |
|||
"text": element.text.strip(), |
|||
"level": level, |
|||
"subheadings": [], |
|||
"links": [], |
|||
} |
|||
headings[-1]["subheadings"].append(subheading) |
|||
elif element.name == "h3": |
|||
subsubheading = {"text": element.text.strip(), "level": level, "links": []} |
|||
headings[-1]["subheadings"][-1]["subheadings"].append(subsubheading) |
|||
elif element.name == "ul": |
|||
links = [] |
|||
for li in element.find_all("li"): |
|||
link = li.find("a") |
|||
if link is not None: |
|||
links.append({"text": link.text.strip(), "url": link["href"]}) |
|||
if level == 1: |
|||
headings[-1]["links"].extend(links) |
|||
elif level == 2: |
|||
headings[-1]["subheadings"][-1]["links"].extend(links) |
|||
elif level == 3: |
|||
headings[-1]["subheadings"][-1]["subheadings"][-1]["links"].extend( |
|||
links |
|||
) |
|||
|
|||
for child in element.children: |
|||
if isinstance(child, str) or isinstance(child, Comment): |
|||
continue |
|||
parse_element(child, level + 1) |
|||
|
|||
parse_element(soup, 0) |
|||
|
|||
return headings |
|||
|
|||
|
|||
headings = parse_markdown_file_2("content/posts/my-first-post.md") |
|||
print(headings) |
|||
for heading in headings: |
|||
print(f"Titre de niveau {heading['level']}: {heading['text']}") |
|||
for subheading in heading["children"]: |
|||
print(f" Sous-titre de niveau {subheading['level']}: {subheading['text']}") |
|||
for subsubheading in subheading["children"]: |
|||
print( |
|||
f" Sous-sous-titre de niveau {subsubheading['level']}: {subsubheading['text']}" |
|||
) |
@ -0,0 +1,160 @@ |
|||
import os |
|||
import re |
|||
import requests |
|||
from bs4 import BeautifulSoup |
|||
import markdown |
|||
|
|||
|
|||
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", "{{% notice info %}}").replace( |
|||
":::", "{{% /notice %}}" |
|||
), |
|||
) |
|||
result = re.findall(":::info.*?:::", content, re.MULTILINE | re.DOTALL) |
|||
for notice in result: |
|||
old = notice |
|||
content = content.replace( |
|||
old, |
|||
notice.replace(":::info", "{{% notice note %}}").replace( |
|||
":::", "{{% /notice %}}" |
|||
), |
|||
) |
|||
result = re.findall(":::success.*?:::", content, re.MULTILINE | re.DOTALL) |
|||
for notice in result: |
|||
old = notice |
|||
content = content.replace( |
|||
old, |
|||
notice.replace(":::success", "{{% notice tip %}}").replace( |
|||
":::", "{{% /notice %}}" |
|||
), |
|||
) |
|||
result = re.findall(":::danger.*?:::", content, re.MULTILINE | re.DOTALL) |
|||
for notice in result: |
|||
old = notice |
|||
content = content.replace( |
|||
old, |
|||
notice.replace(":::danger", "{{% notice warning %}}").replace( |
|||
":::", "{{% /notice %}}" |
|||
), |
|||
) |
|||
# print(content) |
|||
return content |
|||
|
|||
|
|||
def parse_markdown_file(markdown_file_path, base_dir="./"): |
|||
with open(markdown_file_path, "r") as f: |
|||
markdown_text = f.read() |
|||
|
|||
html = markdown.markdown(markdown_text, extensions=["fenced_code"]) |
|||
|
|||
soup = BeautifulSoup(html, "html.parser") |
|||
|
|||
if not os.path.exists(base_dir): |
|||
os.makedirs(base_dir) |
|||
|
|||
current_heading_level = 1 |
|||
current_heading_dir = base_dir |
|||
last_heading_dir = base_dir |
|||
|
|||
for element in soup.children: |
|||
if element.name in ["h1", "h2", "h3"]: |
|||
# Get the text of the heading and the heading level |
|||
heading_text = element.text.strip() |
|||
heading_level = int(element.name[1]) |
|||
|
|||
# Determine the directory to create for the heading |
|||
print( |
|||
"heading_level: %s(%s) , heading_text: %s, base_dir: %s, last_heading_dir: %s, current_heading_dir: %s " |
|||
% ( |
|||
heading_level, |
|||
current_heading_level, |
|||
heading_text, |
|||
base_dir, |
|||
last_heading_dir, |
|||
current_heading_dir, |
|||
) |
|||
) |
|||
if heading_level == 1: |
|||
heading_dir = os.path.join(base_dir, heading_text) |
|||
current_heading_dir = heading_dir |
|||
last_heading_dir = base_dir |
|||
elif heading_level == current_heading_level: |
|||
heading_dir = os.path.join( |
|||
os.path.dirname(current_heading_dir), heading_text |
|||
) |
|||
last_heading_dir = heading_dir |
|||
current_heading_dir = heading_dir |
|||
elif heading_level >= current_heading_level: |
|||
heading_dir = os.path.join(current_heading_dir, heading_text) |
|||
last_heading_dir = current_heading_dir |
|||
current_heading_dir = heading_dir |
|||
else: |
|||
print("NOT SUPPORTED YET") |
|||
|
|||
if not os.path.exists(heading_dir): |
|||
os.makedirs(heading_dir) |
|||
# add _index.md for page organization |
|||
with open(heading_dir + "/_index.md", "wb") as f: |
|||
print("Created", heading_dir + "/_index.md") |
|||
index = """ |
|||
+++ |
|||
title = "{heading_text}" |
|||
chapter = true |
|||
weight = 5 |
|||
+++ |
|||
|
|||
# {heading_text} |
|||
|
|||
Discover what this Hugo theme is all about and the core-concepts behind it. |
|||
""".format( |
|||
heading_text=heading_text |
|||
) |
|||
f.write(b"%s" % index.encode("utf-8")) |
|||
|
|||
# Set the current heading level and directory |
|||
current_heading_level = heading_level |
|||
# last_heading_dir = current_heading_dir |
|||
# current_heading_dir = heading_dir |
|||
|
|||
elif element.name == "hr": |
|||
current_heading_level = 0 |
|||
current_heading_dir = base_dir |
|||
|
|||
elif element.name == "ul" and current_heading_level != 0: |
|||
# Get the links in the list |
|||
links = element.find_all("a") |
|||
for link in links: |
|||
# Get the text and href of the link |
|||
link_text = link.text.strip() |
|||
link_url = link["href"] |
|||
|
|||
file_path = os.path.join( |
|||
current_heading_dir, os.path.basename(link_text) |
|||
) |
|||
if link_url: |
|||
with open(file_path + ".md", "wb") as f: |
|||
doc_link = link_url + "/download" |
|||
response = requests.get(doc_link) |
|||
hugo_header = '---\ntitle: "' + link_text + '"\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) |
|||
|
|||
|
|||
headings = parse_markdown_file("content/my-first-post.md", base_dir="./content") |
|||
print(headings) |
@ -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 |
@ -0,0 +1,5 @@ |
|||
#!/bin/bash |
|||
|
|||
python generate_v3.py |
|||
|
|||
# find ./content -type f -exec sed -i 's/---/____/g' {} \; |
Write
Preview
Loading…
Cancel
Save
Reference in new issue