Code review: grep for Stripe|Adyen|Braintree|PSP across src/
returns zero hits. PayPal is the only payment service provider,
and the integration is built on SetExpressCheckout (NVP/SOAP),
not the PayPal REST API PayPal has been recommending since 2017.
Rewrite the bullet as:
- explicit naming of the only PSP and the absence of any other;
- clarification that the deprecation is PayPal's, not ours;
- honest statement that no migration is planned.
Code review confirms there is no application-level handling for
post-prestation claims: grep for Reclamation|Litige|Complaint|
Dispute across src/ returns zero hits. No route, no controller,
no model. The only mention of conciliation is in the design
exploration doc, scheduled for Jalon 5.
Replace 'toute reclamation necessitera l'intervention d'un
systeme auxiliaire (un processus humain?)' with an explicit
statement of the absence, the Jalon 5 target, and a link to
doc/ddd-exploration-2026-06-14.md where the design lives.
Code review of HairCutCommandController confirms the previous
bullet ('Dans le cas de l'avance ... aucune annulation de la
prestation n'est supportée') understated the gap:
- Only the client side has any surface area
(ClientCancel GET + ClientCancelConfirm POST).
- ClientCancelConfirm does _context.HairCutQueries.Remove(query)
followed by SaveChangesAsync — no PayPal refund, no logic
distinguishing arrhes vs avance.
- There is no PerformerCancel / ProviderCancel action anywhere
in the codebase (grep -rn PerformerCancel|ProviderCancel
returns nothing).
- No Refund* call exists anywhere in src/ (grep -rn Refund
returns nothing).
The README's earlier promises (arrhes +20% on provider cancel,
arrhes lost on client cancel, advance non-cancellable) were
never implemented. PayPal flow has never been end-to-end tested.
Replace with a two-clause statement: current state (partial,
no refund, untested), target (RefundTransaction wired + full
workflow), link to ROADMAP.md.
The original bullet ('à une commande, une prestation') was
syntactically broken (ellipsis without a verb, doubled 'à') and
said nothing about the multi-party target.
Replace with a two-clause statement that names both the current
limitation and the planned target, with a link to ROADMAP.md
where the multi-party direction is documented.
Bullet now reads:
Aujourd'hui : une prestation par commande, sur un axe
client → prestataire unique, sans sous-traitance.
Cible roadmap : montages multi-parties (plusieurs clients
et/ou plusieurs fournisseurs collaborant autour d'un même
projet, avec sous-traitance validée par le client) —
voir la ROADMAP.
The original phrasing 'Ni le client ni le prestataire ne sont
anonymes pour l'application, ils sont même formellement
authentifiés, au moment de leur accord pour une première
facturation en ligne, à l'occasion' was contradictory: the
paragraph asserted the users are not anonymous, then anchored
the formal authentication to the moment of the first billed
act, which a careful reader could parse as 'they ARE anonymous
until then'.
Rewrite as two distinct statements:
- both parties are nominatively identified and authenticated
from the moment they register;
- a stronger verification step is triggered at the first
billable act (light KYC on the client side, professional
profile validation on the provider side).
While here, fix a small grammar slip in the second bullet
('de la validation' -> 'lors de la validation').
The 'professionals are third parties' bullet was carrying an
inline 'TODO Aucune edition de fiche de paye …' mid-sentence,
which is hard to scan and mixes two distinct concerns
(commissioning / payout). Split into two bullets and tidy the
francais:
- 'edition' -> 'édition'
- 'payments unitaires' -> 'paiements unitaires'
- 'Seul … le sont' -> 'Seuls … le sont' (subject agreement)
The previous commit's table incorrectly stated that
appsettings-org.Development.json is committed; it is in fact
matched by .gitignore (appsettings-*.*.json), so each developer
generates their own from the template documented here. Fix the
table and clarify the role.
The localhoist typo that lived in the previously-shown blob is
not versioned, so it does not propagate via git.
The Yavsc.Org service reads appsettings-org.json at runtime, but the
contrib/Makefile renames that file to appsettings-org-dist.json right
before deploying to $(BASEAPPDIR), so first-time operators have to
copy the dist variant back to appsettings-org.json on the server and
fill in their actual values. None of that was documented; this commit
adds a Fichiers de configuration d'Yavsc.Org section under Paramétrage.
The section also notes that Site.ExternalUrl is now consumed by the
IdentityServer EF seed (added in the previous PostIt PKCE commit) to
authorize a RedirectUri for the 'postit' OIDC client, so PostIt can
be embedded in a Yavsc.Org web page without redirect_uri mismatch.
Side note: the appsettings-org.Development.json template points at
'https://localhoist:5001' which looks like a typo for 'localhost'.
Flagged in the README so it doesn't get copy-pasted into a new
environment as-is.
* input.css: refabrication des feuilles de style : la feuille des
champs de formulaire.
* CircleMember.cs: un membre de cercle est un nom d'utilisateur
associé au cercle d'un autre utilisateur.
* ICircle.cs: Définit l'interface d'un cercle:
un cercle est identifié par un entier long,
il a un possesseur.
* Makefile: utilise le fichier de conf généré pour débugger.
* NpgsqlContentProvider.cs: bug fix
* README.md: maj priorités
* AccountController.cs: implémente une méthode de l'API pour ajouter
un utilisateur au cercle
* links.css: Corrige la couleur du boutton de validation des
formulaire de classe `ActionLink`
* style.css: refabrication: importe la nouvelle feuille de style des
champs de formulaires
* style.css: nettoyage du thème sombre
* style.css: nettoyage + section principale (`main`) centré
* FrontOfficeController.cs: Repositionne la route vers le devis à
do/Estimate
* YavscHelpers.cs: corrige ma ré-écriture des helpers html ActionLink
* App.master: formattage du code source
* AppAdmin.master: synchronisation avec la page maître,
beaucoup de changements dans cette page maître pour les
administrateurs:
* prend en charge les côtes d'article
* utilise les fontes de caractère de la page pour les lien action
* prend en charge les zones de formulaire masquable.
* NoLogin.master: synchronisation avec la page maître
* Performer.ascx: WIP permet d'ajouter un préstataire à un de ses
cercles.
* YourEstimates.aspx: corrige un lien cassé
* Yavsc.csproj: mise à niveau Npgsql,
renommage Estimate
* packages.config: mise à niveau de la bibliothèque Npgsql (pilote
d'accès à la base de donnée)
* CircleBase.cs: un objet cercle basique implémente l'interface d'un
cercle.
* PerformerProfile.cs: s'assure que le nom d'utilisateur utilisé n'est
pas vide.
* IIdentified.cs: doc xml
* UserNameBase.cs: l'objet base de type "nom d'utilisateur" implémente
l'interface générique
d'un identifié, par une chaine de caractère.
* YavscModel.csproj: reference les nouvelles definitions :
* un membre de cercle
* l'interface d'un cercle
* MainClass.cs: format du code
* YavscClient.csproj:
* Estimate.aspx: refabrication
* animate.css: animations css
* links.css: liens avec le fond blanc qui se déroule
* links.css: WIP liens thème sombre
* GitHub.ico: un petit merci à GitHub
* live-concert-fg.png: image de plan rapproché : les fans
* live-concert-scene.jpg: Image de fond : la scene
* splash-image-2.jpg: image de fond : photo colorée, public de
concert, vient de totemproduction.fr
* links.css: ficher de définitions globales du style des bouttons
(encore inutilisé)
* yavsc.user.js: WIP implémente le widget "utilisateur", permettant
l'affichage des liens rapides pour tout nom d'ulitisateur, le cas
échéant, vers l'ajout à un cercle,
vers son blog, vers des methodes choisies d'administateur, vers ses
réseaux sociaux, voir plus.
* About.aspx: Implémente une page "à propos"
* Test.aspx: Page de test: désolé pour le bruit, elle n'est compilée
qu'en mode `Debug` (elle n'est pas accessible en production)
* NpgsqlBlogProvider.cs: Corrige la méthode pour enlever un tag à un
article ...
* NpgsqlBlogProvider.csproj: .
* NpgsqlCircleProvider.cs: liste les cercles auquels appartient un
utilisateur.
* BasketController.cs:
* NpgsqlContentProvider.cs: Les commandes sont fortement typée.
* README.md: mise à jour des priorités
* style.css: réécriture du thème clair
* style.css: * implémente un classe css `clickme` pour attirer l'oeil
sur le boutton de validation après la modification d'un champ de
formulaire.
* enlève tous les coins arrondis
* modifie la chasse de caractères (une seule utilisée pour le moment)
*
* style.css: * integre la référence à la feuille de style des
[animations](https://daneden.github.io/animate.css/)
* corrige des marges, alignements
* supprime ce qui reste de coin arrondi
* néttoye les définitions obsolètes
* définit la classe `username`
* corrige le survol à la suppression de tag
* FrontOfficeController.cs: renomme des methodes, refabriqué pour
s'adapter aux changements de l'API du workflow,
WIP propose les cercles utilisateurs pour l'ajout des profiles
préstataires aux cercles.
* HomeController.cs: implémente une page "à propos"
* T.cs: re-autorise le titre vide de page, au cas où ... car ce n'est
pas un véritable
défaut fonctionnel.
* YavscHelpers.cs: Implemente un outil de presentation des liens
action traduits. Tous les liens action utilisent maintenant cette
nouvelle methode,
au profile de celle du framework `HtmlHelpers.ActionLink`
* App.master: corrige l'usage du contrôle utilisateur des cotes dans
le cadre des cotes de billet.
* AppAdmin.master:
* Index.aspx:
* Service.aspx:
* ProductCategory.aspx: traduction des liens action
* NoLogin.master: * traduction des liens action
* suppression des liens de remerciement dans le bas de page, cette
information a été déplacée dans la page `/Home/Credits`
* to-markdown.js: transforme maintenant les noeuds Html `div` en
paragraphes Markdown.
* yavsc.hidefieldset.js: Le script règle la forme de la souris au
survol du bouton,
le cas échéant.
* yavsc.js: nouvelle fonction javascript pour logger un objet
arbitraire.
* yavsc.rate.js: Fixe la possibilité de mettre des cotes très basses
ou très hautes (reste encore un mieux à faire),
Affiche au survol des descriptions optionnelles de la cote.
* Title.aspx:
* UserPost.aspx:
* Edit.aspx:
* Index.aspx:
* Brand.aspx:
* Index.aspx:
* PostActions.ascx:
* TitleNotFound.aspx:
* Booking.aspx:
* Command.aspx:
* ChangePasswordSuccess.aspx: Traduction des liens action
* Login.aspx: * Traduction des liens actionTraduction des liens action
* Profile.aspx: * Traduction des liens actionTraduction des liens
action
* utilisation de la classe css `mayhide` qui autorise maintenant un
champ d'entrées de formulaire à être plié/déplié au click sur sa
légende.
* Admin.aspx: Traduction des liens actionTraduction des liens
actionTraduction des liens actionTraduction des liens
actionTraduction des liens actionTraduction des liens action
* Backups.aspx:
* RoleList.aspx:
* UserList.aspx:
* Index.aspx: Traduction des liens actionTraduction des liens action
* Edit.aspx: * refabrication de la structure Html
* Traduction des liens actionTraduction des liens action
* Index.aspx: Simlpification des apperçus de blog
* TagControl.ascx: refabrication pour simplifier l'implémentation du
contrôle utilisateur des tags
* UserPosts.aspx: Traduction des liens action, et simplification du
listing de blog
* Basket.aspx: Affiche les articles du panier de commandes avec leur
vue
dédiée à leur type (les commande sont maintenant fortement typées)
* Catalog.aspx: Traduction des liens action, correctin du lien vers le
produit
(cassé depuis une vielle refabrication des routes)
* DoAnEstimate.aspx: refabrication de la vue de création du devis:
renommée depuis `Estimate`
* Performer.ascx: * un message supplementaire à l'absence de
compétence affichée par un préstataire
* des guillemets autour du commentaire du préstataire sur sa
compétence
* ajout du préstataire au cercles
* Performers.aspx: Décrit en détail les informations sur la
disponibilité d'un préstataire,
à la date demandée.
* YourEstimates.aspx: renomage de cette page, pour préciser sa
fonction : Vos devis.
* Contact.aspx: structure Html de la page de contact
* Credits.aspx: Ajoute les remerciements aux communauté du libre
* Index.aspx: ne fait rien
* Web.config: * import de `System.Transactions`
* mise à jour des credits libres
* WebDeploy.targets: utilise les séparateurs de chemin vers ficher à
la POSIX, ne change rien pour ma config ... (TODO tester sous
WoinDose)
* Yavsc.csproj: déploie des pages des scripts Javascript et des images
et feuilles de style en plus.
* CircleManager.cs: implémente les methodes utilisées à la
construction du contrôle utilisateur.
* CircleProvider.cs: * doc xml
* extension de interface
* Commande.cs: l'objet `Command` devient abstrait, pour exister (être
instanciée), une commande doit maintenant hériter de cet objet
abstrait.
* LocalizedText.resx:
* LocalizedText.fr.resx:
* LocalizedText.Designer.cs:
* LocalizedText.fr.Designer.cs: traductions
* IContentProvider.cs: doc xml
* SiteSkills.aspx: renomage de cette page, pour préciser sa fonction :
les compétences sur ce site.
* README.md: mise à jour des priorités
* Global.asax.cs: Fixe un 404 Not Found sur le script
d'internationalisation.
* YavscAjaxHelper.cs: Fixe un 404 Not Found sur le script
d'internationalisation:
Implementation d'une alternative à Ajax.GlobalisationScript() de Mono
System.Web.MVC
* App.master: utilise la nouvelle methode pour construire les
references aux scripts d'internationalisation
Une nouvelle page de doc : la page des fonctionalités, [Features.md](Features.md),
au format Markdown.
* p8-av4.jpg:
* p8-av4.l.jpg:
* p8-av4.xs.jpg: p8-av4
* Performer.ascx: Implémente la fiche préstataire, avec son éventuel
lien vers le blog
* ITContentProvider.csproj: ...
* NpgsqlBlogProvider.cs: implémente le compteur de billet en base de
données
* Presta.csproj:
* TestAPI.csproj:
* YavscClient.csproj:
* fortune.csproj:
* WebControls.csproj:
* SalesCatalog.csproj:
* NpgsqlMRPProviders.csproj:
* NpgsqlBlogProvider.csproj:
* NpgsqlContentProvider.csproj: ...
* README.md: mise à jour des priorités
* Yavsc.sln: ajout du fichier "Features.md" à la solution
* BlogProvider.cs: doc xml
* BlogManager.cs: implémente un accès au compteur de billet
* FileSystemController.cs: Fixes the route to user's Files by an
Admin.
* FileSystemManager.cs: * Fixes the dir separator usage
* Adds a method to validate a directory or file name
* YavscModel.csproj:
* Commande.cs: FileInfoCollection is now removed
* FileInfoCollection.cs:
* DirNotFoundException.cs: Removes useless code
* JsonReaderError.aspx: display a nice json conversion error
* CalendarEntryList.cs: new Google data for the calendar entries
* JsonReaderError.cs: Json error model
* README.md: Documentation url
* NpgsqlBlogProvider.cs: Update the blog post title
* BlogsController.cs: - Updating the blog post title
- bug fix rendering the avatar
* FrontOfficeController.cs: - the client cannot modify its estimation
* GoogleController.cs: - implementing the calendar entries retrieval
* HomeController.cs: - the home start page from configuration
parameter named "StartPage"
* Global.asax.cs: - back to a clean global.asax
* style.css: showing the main area with a background transparent color
* Post.aspx: Bug fix: the message was displayed two times (we keep the
one from app.master)
* UserPost.aspx: the blog title comes from the poster profile found in
ViewData
* DateQuery.aspx: implementing the date query
* Web.config: the start page now comes from Web.config
* Web.csproj: the Sql db creation script should not be deployed,
neither as package.config
* BlogManager.cs: updating the blog post title
* BlogProvider.cs: yavscModel/Blogs/BlogManager.cs
* YavscModel.csproj: new cs files to compile
* App.master: returning from the Google login