Changements rédactionnels : abonnement par virement, avantage abonnements
This commit is contained in:
@@ -13,34 +13,33 @@ register_page(
|
|||||||
|
|
||||||
abonnement_features = dcc.Markdown("""
|
abonnement_features = dcc.Markdown("""
|
||||||
- sauvegarde de vues dans la page Tableau
|
- sauvegarde de vues dans la page Tableau
|
||||||
- vote pour les fonctionnalités à développer en priorité (une fois la période d'essai terminée)
|
- vote pour les [fonctionnalités à développer](/a-propos/roadmap) en priorité (une fois la période d'essai terminée)
|
||||||
""")
|
""")
|
||||||
|
|
||||||
|
|
||||||
def layout(**_):
|
subscription_terms = html.Div(
|
||||||
contenu = html.Div(
|
[
|
||||||
[
|
html.H2("Abonnement"),
|
||||||
html.H2("Abonnement"),
|
dcc.Markdown(
|
||||||
dcc.Markdown(
|
"""
|
||||||
"""
|
|
||||||
L'accès aux fonctionnalités de base de colibre est gratuit et sans inscription. Il est également possible de créer un compte gratuitement via le menu [Connexion](/connexion). Une fois le compte créé,
|
L'accès aux fonctionnalités de base de colibre est gratuit et sans inscription. Il est également possible de créer un compte gratuitement via le menu [Connexion](/connexion). Une fois le compte créé,
|
||||||
il est possible de souscrire à un abonnement mensuel qui donne accès à des fonctionnalités supplémentaires. Cet abonnement s'adresse tant aux professionnel·les qu'aux particuliers.
|
il est possible de souscrire à un abonnement mensuel qui donne accès à des fonctionnalités supplémentaires. Cet abonnement s'adresse tant aux professionnel·les qu'aux particuliers.
|
||||||
"""
|
"""
|
||||||
),
|
),
|
||||||
html.H4("Fonctionnalités incluses"),
|
html.H4("Fonctionnalités incluses"),
|
||||||
dcc.Markdown(
|
dcc.Markdown(
|
||||||
"""
|
"""
|
||||||
Les fonctionnalités accessibles aux abonné·es évoluent au fil du développement du service.
|
Les fonctionnalités accessibles aux abonné·es évoluent au fil du développement du service.
|
||||||
|
|
||||||
Fonctionnalités réservées aux abonné·es :
|
Fonctionnalités réservées aux abonné·es :
|
||||||
"""
|
"""
|
||||||
),
|
),
|
||||||
abonnement_features,
|
abonnement_features,
|
||||||
dcc.Markdown("""
|
dcc.Markdown("""
|
||||||
Les fonctionnalités en cours de développement et soumises au vote sont visibles dans la section [Roadmap](/a-propos/roadmap)."""),
|
Les fonctionnalités en cours de développement et soumises au vote sont visibles dans la section [Roadmap](/a-propos/roadmap)."""),
|
||||||
html.H4("Tarifs"),
|
html.H4("Tarifs"),
|
||||||
dcc.Markdown(
|
dcc.Markdown(
|
||||||
"""
|
"""
|
||||||
Deux formules sont proposées :
|
Deux formules sont proposées :
|
||||||
|
|
||||||
- **Abonnement** — 20 € HT / mois (soit 24 € TTC)
|
- **Abonnement** — 20 € HT / mois (soit 24 € TTC)
|
||||||
@@ -48,43 +47,43 @@ Deux formules sont proposées :
|
|||||||
|
|
||||||
La TVA applicable en France est de 20 %.
|
La TVA applicable en France est de 20 %.
|
||||||
"""
|
"""
|
||||||
),
|
),
|
||||||
html.H4("Modes de paiement"),
|
html.H4("Modes de paiement"),
|
||||||
dcc.Markdown(
|
dcc.Markdown(
|
||||||
"""
|
"""
|
||||||
Les cartes bancaires des réseaux Visa et Mastercard sont acceptées.
|
Les cartes bancaires des réseaux Visa et Mastercard sont acceptées.
|
||||||
|
|
||||||
Il est également possible de payer par virement bancaire à condition de payer un an d'abonnement.
|
Il est également possible de payer par virement bancaire à condition de payer un an d'abonnement.
|
||||||
"""
|
"""
|
||||||
),
|
),
|
||||||
html.H4("Période d'essai"),
|
html.H4("Période d'essai"),
|
||||||
dcc.Markdown(
|
dcc.Markdown(
|
||||||
"""
|
"""
|
||||||
Une période d'essai gratuite est proposée lors de la souscription.
|
Une période d'essai gratuite est proposée lors de la souscription.
|
||||||
Sa durée est indiquée avant validation. Aucun prélèvement n'est effectué pendant cette période.
|
Sa durée est indiquée avant validation. Aucun prélèvement n'est effectué pendant cette période.
|
||||||
À son terme, l'abonnement est activé et facturé automatiquement.
|
À son terme, l'abonnement est activé et facturé automatiquement.
|
||||||
|
|
||||||
La période d'essai est accordée une seule fois par compte.
|
La période d'essai est accordée une seule fois par compte.
|
||||||
"""
|
"""
|
||||||
),
|
),
|
||||||
html.H4("Facturation et paiement"),
|
html.H4("Facturation et paiement"),
|
||||||
dcc.Markdown(
|
dcc.Markdown(
|
||||||
"""
|
"""
|
||||||
L'abonnement est facturé mensuellement, à la date anniversaire de la souscription, et donne lieu à l'émission d'une facture visible sur le compte de l'abonné·e.
|
L'abonnement est facturé mensuellement, à la date anniversaire de la souscription, et donne lieu à l'émission d'une facture visible sur le compte de l'abonné·e.
|
||||||
Le paiement est traité par [Frisbii](https://www.frisbii.com), prestataire européen de paiement en ligne.
|
Le paiement est traité par [Frisbii](https://www.frisbii.com), prestataire européen de paiement en ligne.
|
||||||
Les coordonnées bancaires sont conservées exclusivement par Frisbii et ne sont pas transmises à colibre.
|
Les coordonnées bancaires sont conservées exclusivement par Frisbii et ne sont pas transmises à colibre.
|
||||||
"""
|
"""
|
||||||
),
|
),
|
||||||
html.H4("Résiliation"),
|
html.H4("Résiliation"),
|
||||||
dcc.Markdown(
|
dcc.Markdown(
|
||||||
"""
|
"""
|
||||||
L'abonnement peut être résilié à tout moment depuis l'espace [Mon compte](/compte/abonnement).
|
L'abonnement peut être résilié à tout moment depuis l'espace [Mon compte](/compte/abonnement).
|
||||||
La résiliation prend effet à la fin de la période mensuelle en cours : l'accès aux fonctionnalités payantes est maintenu jusqu'à cette date, sans remboursement au prorata.
|
La résiliation prend effet à la fin de la période mensuelle en cours : l'accès aux fonctionnalités payantes est maintenu jusqu'à cette date, sans remboursement au prorata.
|
||||||
"""
|
"""
|
||||||
),
|
),
|
||||||
html.H4("Données recueillies"),
|
html.H4("Données recueillies"),
|
||||||
dcc.Markdown(
|
dcc.Markdown(
|
||||||
"""
|
"""
|
||||||
La gestion de l'abonnement implique le traitement de données, réparties entre colibre et Frisbii (prestataire de paiement). Conformément au RGPD, colibre ne receuille que les données strictement nécessaire
|
La gestion de l'abonnement implique le traitement de données, réparties entre colibre et Frisbii (prestataire de paiement). Conformément au RGPD, colibre ne receuille que les données strictement nécessaire
|
||||||
au bon fonctionnement du site et de la facturation.
|
au bon fonctionnement du site et de la facturation.
|
||||||
|
|
||||||
@@ -102,11 +101,14 @@ au bon fonctionnement du site et de la facturation.
|
|||||||
Ces données sont utilisées uniquement pour la gestion de votre abonnement et ne sont pas transmises à des tiers à des fins commerciales.
|
Ces données sont utilisées uniquement pour la gestion de votre abonnement et ne sont pas transmises à des tiers à des fins commerciales.
|
||||||
Conformément au RGPD, vous pouvez demander l'accès, la rectification ou la suppression de vos données en [me contactant](/a-propos/contact).
|
Conformément au RGPD, vous pouvez demander l'accès, la rectification ou la suppression de vos données en [me contactant](/a-propos/contact).
|
||||||
"""
|
"""
|
||||||
),
|
),
|
||||||
html.H4("Contact"),
|
html.H4("Contact"),
|
||||||
dcc.Markdown(
|
dcc.Markdown(
|
||||||
"Pour toute question relative à votre abonnement : [page de contact](/a-propos/contact)."
|
"Pour toute question relative à votre abonnement : [page de contact](/a-propos/contact)."
|
||||||
),
|
),
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
return apropos_shell("abonnement", contenu)
|
|
||||||
|
|
||||||
|
def layout(**_):
|
||||||
|
return apropos_shell("abonnement", subscription_terms)
|
||||||
|
|||||||
@@ -40,7 +40,10 @@ def _plan_card(meta: dict, trial: int | None, trial_used: bool):
|
|||||||
dbc.CardBody(
|
dbc.CardBody(
|
||||||
[
|
[
|
||||||
html.H4(meta["label"], className="mb-1"),
|
html.H4(meta["label"], className="mb-1"),
|
||||||
html.P(f"{meta['prix_ht']} € HT / mois", className="text-muted mb-3"),
|
html.P(
|
||||||
|
f"{meta['prix_ht']} € HT / mois ({str(int(meta['prix_ht']) * 1.2).replace('.0', '')} € TTC)",
|
||||||
|
className="text-muted mb-3",
|
||||||
|
),
|
||||||
html.P(meta["description"], className="mb-3"),
|
html.P(meta["description"], className="mb-3"),
|
||||||
badge,
|
badge,
|
||||||
html.A(
|
html.A(
|
||||||
@@ -75,7 +78,7 @@ def _plan_cards(trial_used=False, trial_for=plans.trial_days):
|
|||||||
|
|
||||||
def _explainer():
|
def _explainer():
|
||||||
col_left = dbc.Col(
|
col_left = dbc.Col(
|
||||||
[html.H4("Fonctionnalités réservées aux abonné•es :"), abonnement_features],
|
[html.H4("Fonctionnalités réservées aux abonné·es :"), abonnement_features],
|
||||||
md=6,
|
md=6,
|
||||||
style={
|
style={
|
||||||
"borderRight": "1px solid var(--bs-border-color)",
|
"borderRight": "1px solid var(--bs-border-color)",
|
||||||
@@ -84,16 +87,19 @@ def _explainer():
|
|||||||
)
|
)
|
||||||
col_right = dbc.Col(
|
col_right = dbc.Col(
|
||||||
[
|
[
|
||||||
html.H4("Ce que les abonnements de soutien permettent"),
|
html.H4("Ce que les abonnements permettent"),
|
||||||
html.Ul(
|
html.Ul(
|
||||||
[
|
[
|
||||||
html.Li(
|
html.Li(
|
||||||
"Rédaction d'études à partir des données, par exemple sur les "
|
"passer plus de temps à développer colibre et moins de temps à chercher des missions"
|
||||||
|
),
|
||||||
|
html.Li(
|
||||||
|
"rédaction d'études à partir des données, par exemple sur les "
|
||||||
"acheteurs dont les données sont introuvables et les raisons de "
|
"acheteurs dont les données sont introuvables et les raisons de "
|
||||||
"cette non-publication."
|
"cette non-publication."
|
||||||
),
|
),
|
||||||
html.Li(
|
html.Li(
|
||||||
"Fédération des bonnes volontés souhaitant militer pour une "
|
"fédération des bonnes volontés souhaitant militer pour une "
|
||||||
"législation plus ambitieuse sur la transparence de la commande "
|
"législation plus ambitieuse sur la transparence de la commande "
|
||||||
"publique."
|
"publique."
|
||||||
),
|
),
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ from flask_login import current_user
|
|||||||
|
|
||||||
from src.auth import db as auth_db
|
from src.auth import db as auth_db
|
||||||
from src.pages._compte_shell import account_guard, account_shell
|
from src.pages._compte_shell import account_guard, account_shell
|
||||||
|
from src.pages.a_propos.abonnement import subscription_terms
|
||||||
from src.subscriptions import client as frisbii_client
|
from src.subscriptions import client as frisbii_client
|
||||||
from src.utils.data import get_annuaire_data
|
from src.utils.data import get_annuaire_data
|
||||||
|
|
||||||
@@ -15,65 +16,7 @@ register_page(
|
|||||||
description="Informations de facturation pour votre abonnement colibre.",
|
description="Informations de facturation pour votre abonnement colibre.",
|
||||||
)
|
)
|
||||||
|
|
||||||
_CGU_MARKDOWN = """
|
_CGU_MARKDOWN = subscription_terms
|
||||||
L'accès aux fonctionnalités de base de colibre est gratuit et sans inscription.
|
|
||||||
Un abonnement payant donne accès à des fonctionnalités supplémentaires qui nécessitent la création d'un compte.
|
|
||||||
|
|
||||||
#### Fonctionnalités incluses
|
|
||||||
|
|
||||||
Les fonctionnalités accessibles aux abonnés évoluent au fil du développement du service.
|
|
||||||
La liste à jour est visible depuis la [page d'abonnement](/compte/abonnement).
|
|
||||||
|
|
||||||
#### Tarifs
|
|
||||||
|
|
||||||
Deux formules sont proposées :
|
|
||||||
|
|
||||||
- **Abonnement** — 20 € HT / mois (soit 24 € TTC)
|
|
||||||
- **Abonnement de soutien** — 50 € HT / mois (soit 60 € TTC) — mêmes fonctionnalités, contribution renforcée au projet
|
|
||||||
|
|
||||||
La TVA applicable est de 20 %. Les prix TTC sont affichés lors de la souscription.
|
|
||||||
|
|
||||||
#### Période d'essai
|
|
||||||
|
|
||||||
Une période d'essai gratuite peut être proposée lors de la souscription.
|
|
||||||
Sa durée est indiquée avant validation. Aucun prélèvement n'est effectué pendant cette période.
|
|
||||||
À son terme, l'abonnement est activé et facturé automatiquement.
|
|
||||||
|
|
||||||
La période d'essai est accordée une seule fois par utilisateur.
|
|
||||||
|
|
||||||
#### Facturation et paiement
|
|
||||||
|
|
||||||
L'abonnement est facturé mensuellement, à la date anniversaire de la souscription.
|
|
||||||
Le paiement est traité par [Frisbii](https://www.frisbii.com), prestataire européen de paiement en ligne.
|
|
||||||
Les coordonnées bancaires sont conservées exclusivement par Frisbii et ne sont pas transmises à colibre.
|
|
||||||
|
|
||||||
#### Résiliation
|
|
||||||
|
|
||||||
L'abonnement peut être résilié à tout moment depuis l'espace [Mon compte](/compte/abonnement).
|
|
||||||
La résiliation prend effet à la fin de la période mensuelle en cours : l'accès aux fonctionnalités payantes est maintenu jusqu'à cette date, sans remboursement au prorata.
|
|
||||||
|
|
||||||
#### Données stockées
|
|
||||||
|
|
||||||
La gestion de l'abonnement implique le traitement de données personnelles, réparties entre colibre et Frisbii (prestataire de paiement).
|
|
||||||
|
|
||||||
**Données stockées par colibre :**
|
|
||||||
|
|
||||||
- Adresse e-mail (identification du compte)
|
|
||||||
- Numéro SIRET (si renseigné, conservé pour pré-remplir les futures souscriptions et alimenter des fonctionnalités)
|
|
||||||
|
|
||||||
**Données stockées par Frisbii :**
|
|
||||||
|
|
||||||
- Informations de facturation : prénom, nom, adresse postale, code postal, ville, pays, nom de l'entreprise
|
|
||||||
- Informations de paiement : coordonnées bancaires (accessibles uniquement par Frisbii, jamais transmises à colibre)
|
|
||||||
- Historique des factures
|
|
||||||
|
|
||||||
Ces données sont utilisées uniquement pour la gestion de votre abonnement et ne sont pas transmises à des tiers à des fins commerciales.
|
|
||||||
Conformément au RGPD, vous pouvez demander l'accès, la rectification ou la suppression de vos données en [me contactant](/a-propos/contact).
|
|
||||||
|
|
||||||
#### Contact
|
|
||||||
|
|
||||||
Pour toute question relative à votre abonnement : [page de contact](/a-propos/contact).
|
|
||||||
"""
|
|
||||||
|
|
||||||
|
|
||||||
def _csrf_input():
|
def _csrf_input():
|
||||||
@@ -244,6 +187,9 @@ def layout(**query):
|
|||||||
|
|
||||||
checkboxes = html.Div(
|
checkboxes = html.Div(
|
||||||
[
|
[
|
||||||
|
dcc.Markdown(
|
||||||
|
"Si vous préférez régler par virement bancaire et une facturation annuelle plutôt qu'un réglement mensuel automatique par carte bancaire, [contactez-moi](/a-propos/contact)."
|
||||||
|
),
|
||||||
dcc.Checklist(
|
dcc.Checklist(
|
||||||
id="inf-cb-retractation",
|
id="inf-cb-retractation",
|
||||||
options=[
|
options=[
|
||||||
@@ -287,7 +233,7 @@ def layout(**query):
|
|||||||
dbc.Row([col1, col2], className="g-4 mb-4"),
|
dbc.Row([col1, col2], className="g-4 mb-4"),
|
||||||
checkboxes,
|
checkboxes,
|
||||||
html.Button(
|
html.Button(
|
||||||
"Suivant",
|
"Ajout d'une carte de paiement",
|
||||||
id="inf-submit",
|
id="inf-submit",
|
||||||
type="submit",
|
type="submit",
|
||||||
className="btn btn-primary",
|
className="btn btn-primary",
|
||||||
|
|||||||
Reference in New Issue
Block a user