Facturation: ajouter les endpoints nécessaires au bon fonctionnement des cellules facture de combo (#76495) #52
No reviewers
Labels
No Label
No Milestone
No Assignees
3 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: entrouvert/lingo#52
Loading…
Reference in New Issue
No description provided.
Delete Branch "wip/76495-api-invoices-for-combo-cells"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
@ -37,0 +55,4 @@
r'(?P<invoice_identifier>[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12})/pay/$',
views.invoicing_invoice_pay,
name='api-invoicing-invoice-pay',
),
je n'ai pas fait le endpoint pdf, je le rajouterai quand on saura éditer des pdf
@ -78,0 +157,4 @@
class InvoicingInvoicePay(APIView):
# XXX ?
authentication_classes = []
permission_classes = ()
Heu là je ne sais pas.
Il a fallu que j'ajoute ça pour pouvoir faire un paiement depuis le portail, mais je ne sais pas s'il ne me manquerait pas un bout de config.
Si tu charges debian_config_common.py dans ton debian/debian_config.py normalement il n'y a rien à faire (ne même pas déclarer authentication/permission_classes, les valeurs par défaut suffisent):
Si ça n'a pas marché tout seul il y a peut-être une souci au niveau des clés déclarés coté portail et coté lingo (voir le hobo.json dans le répertoire du tenant si c'est cohérent, sinon juste refaire un déploiement factice, i.e. éditer le nom du service dans hobo, ne rien changer, puis sauver).
J'ai bien hobo.rest_authentication.PublikAuthentication et hobo.rest_authentication.APIClientAuthentication dans DEFAULT_AUTHENTICATION_CLASSES, et les mêmes clés côté lingo et combo
J'ai ça dans les logs côté lingo:
Et côté combo:
D'ac, le souci c'est ça 👍
déjà c'est bizarre d'avoir les deux, mais surtout ils sont vides. Soit tu n'en mets pas et tu t'authentifies "en tant que service" avec tous les droits possibles, soit c'est défini et tu as les "droits" de l'utilisateur correspondant en fonction du contexte.
Ici il y a un truc qui déconne dans combo, on dirait qu'on est pas loggé sur le portail.
la méthode
pay_invoice
(combo/lingo) envoie:pas de user en param, puisque ça peut être fait dans un cron
Généralement pour les factures on notifie passerelle qui n'utilise pas rest-framework et ses classes d'authentification, c'est bien possible qu'on découvre que c'est incompatible à cette occasion, mais clairement la classe hobo.rest_authentication.PublikAuthentication n'accepte pas la présence d'un champ NameID vide (et pour les paiements sur panier c'est vers w.c.s. qui pareil ne se comporte pas de la même manière je suppose).
À faire :
Mais le comportement de passerelle et w.c.s. est potentiellement problématique vu qu'un NameID vide est considéré comme une autorisation par service et pas par utilisateur (ça permettrait de lire des choses qu'on ne devrait pas)...
Pour w.c.s. un NameID vide n'est pas équivalent à l'absence de NameID,
Pour les endpoints de l'API peut-être mais pas pour les triggers si item.by n'est pas défini :
item.by n'est pas configuré je pense en général pour un trigger "pay" et donc ça marche. Je dirai que la correction est à faire coté combo, il ne doit pas mettre de NameID/email pour une notification de paiement. C'est sans objet.
@ -78,0 +92,4 @@
.distinct()
.order_by('pk')
)
for agenda_pricing in agenda_pricing_qs:
Il faut parcourir les grilles tarifaires attachées aux agendas de la régie, c'est vraiment pas top.
A revoir avec le plan long terme pour paramétrer les infos du payeur.
le build jenkins échoue, parce qu'il faut une evol côté publik-django-templatetags pour passer directement le nameid au filtre filter_by_user (entrouvert/publik-django-templatetags#2)
@ -78,0 +177,4 @@
Transaction.make_payment(
regie=invoice.regie,
invoices=[invoice],
amount=invoice.remaining_amount,
reprendre le montant trouvé dans data après merge de #76572