- Le backend d'auth K-Fêt est étendu pour aussi identifier une personne
dans le cas dans d'un formulaire en récupérant le password contenu
dans l'input de nom `KFETPASSWORD`
- Le middleware d'auth K-Fêt enregistre l'utilisateur connecté de
manière normale dans `request.real_user`
- Ajout d'un processeurs de contextes `kfet.context_processors.auth` qui
qui remplace `user` et `perms` par l'utilisateur connecté de manière
normale (`request.real_user`) et non celui connecté temporairement
- Modification de la vue de modif d'un compte pour s'adapter à l'auth
- Modification du template de modification d'un compte pour utiliser ce
moyen d'authentification
- Séparation du JS conservant le côté gauche d'une page à l'écran
- Séparation de l'encart gauche contenant les infos d'un comtpe dans un
autre template (`left_account`) pour l'utiliser dans `account_read` et `account_update`
- `base_nav` utilise user (qui est donc le vrai utilisateur connecté) au
lieu de `request.user` qui peut aussi bien être le vrai utilisateur
qu'un utilisateur temporaire
- Un utilisateur ayant la perm `kfet.is_team` peut se déconnecter et
connecter à la place un utilisateur `kfet_genericteam` ne disposant
que de la permission `kfet.is_team`
- Backend et vue associée à cette connexion créés
Si une (des) permission(s) sont nécessaires pour enregistrer/annuler des
opérations, une demande d'authentification apparaît où l'utilisateur
doit mettre le mot de passe d'un compte ayant la (les) permission(s)
requise(s).
Ce mot de passe est envoyé dans la requête AJAX via le header
`KFetPassword`.
Le middleware `KFetAuthenticationPassword` est appelée à chaque requête.
Il appelle lui même le backend `KFetBackend` qui est chargé de
retrouver le user dont le compte K-Fêt correspond au mot de passe défini
dans le header `KFETPASSWORD`.
Si le header n'est pas présent ou
qu'aucun utilisateur ne correspond à ce mot de passe, le middleware ne
fait... rien !
Dans le cas où un user est trouvé, il est "chargé" dans
`request.user` permettant ainsi de connecter l'utilisateur pour ce cycle
requête/réponse sans déconnecter l'utilisateur connecté de manière
normale.
- Ajout style sur l'historique
- Style: Le gris passe en background, plus de rouge en avant
- Opacité plus importante pour le fond pendant les charges et retraits
- Correction sur l'affichage de LIQ. La couleur de fond indiquait
trigramme inexistant à cause de modifs récentes
- des parseFloat ont été ajoutés un peu de partout pour les problèmes de type
de JS (il a des jours avec et des jours sans...)
- Ajout des montants en euros des charges et des retraits (en plus de
ceux en UKF) dans le panier
- Les commandes sur LIQ dans l'historique n'affichent plus la diff de
balance (puisque ça n'a pas vraiment de sens) mais les montants en
euros
- Ajout de l'annulation depuis l'historique
- La view kpsul_perform_operations envoie le statut cof pour le
websocket. Cela sert à l'affichage de l'historique
- Ajout des infos panier en fonction du trigramme (LIQ ou compte)
- Mise à jour des infos panier si le compte sélectionné change
- Correction sur calcul d'un montant en UKF
statut COF)
- Possible de sélectionner des items (charges/retraits/achats) dans le
panier et de les en enlever en pressant "Suppr"
- Possibilité de quitter la fenêtre de charge/retrait avec Echap
(Correction effectuée dans jconfirm.js pour éviter le bug ou "Enter"
ajoutait 2 fois la charge/retrait)
- Ajout/Modif de raccourcis: Shift+F2 reset le panier, F2 le compte
sélectionné, F3 ouvre la fenêtre de charge, Shift+F3 celle de retrait
- JS : Clean des fonctions de reset/Renommage de fonctions pour être
plus clair/Un peu de réorganisation
- Ajouter une charge ou un retrait l'ajoute au formset
- Envoi du panier en appuyant sur "Enter" si le focus est sur l'autocomplétion d'article puis soft reset
- Ajout affichage panier
- Ajout possibilité d'ajouter des articles, charges et retraits au
panier
- Ajout de l'affichage des articles correspondants à l'autocomplétion
en cours
- Affichage compte + responsive
- Ajout raccourcis : F1 soft reset, F2 charge, F3 retrait, F10 hard
reset
- Ajout suite focus automatiques:
trigramme: si valide -> article sélection: si trouvé -> article nb: si
enter et valide -> article sélection....
- Création style kpsul.css
- Affichage trigramme et données du compte. Couleurs en fonction de
l'état du compte (négatif, pas beaucoup, gelé, ok)
- Affichage de la sélection et des données de la caisse
- Ajout des boutons pour les charges et retraits (juste les boutons)
- Ajout du champ d'autocomplétion pour les articles (et ça autocomplète bien)
- Correction css général
- K-Psul JS: utilisation de $.extend pour les données récupérées en
ajax/websocket pour utiliser les valeurs par défaut (plus joli)
- Ajout de la liste des articles dans K-Psul
- Synchro des stocks de cette liste avec les autres instances de K-Psul
- Utilisation des attributs "data-..." pour stocker les id des articles,
groupes d'opérations et opérations dans K-Psul
- Correction de la vue kpsul_cancel_operations sur le calcul des
nouvelles balances de caisses
- Même vue : multiples requêtes dans la récupération des nouveaux
montants de groupes d'opérations remplacées par 1 seule requête pour
le websocket
- Même vue : ajout des données de nouvelles balances de caisses pour le
websocket
- Ajoute l'affichage de l'historique dans K-Psul
- Ajoute la synchronisation du montant des caisses et de l'historique
entre les interfaces K-Psul ouvertes par le package 'channels' et
l'utilisation de websockets
- Corrige l'obligation de l'article sur K-Psul (pas d'article pour les
charges et retraits)
- Corrige type renvoyé par perms_to_perform_operations
- Rangement de js.cookie.js dans static/kfet/js/
- Ajout de dépendances
- Template: Ajout d'un style "Sogé" (couleurs de la K-Fêt...)
- K-Psul: Optimisation requête checkout data avec dernier relevé
- K-Psul: Rework JS account et checkout data
- Utilisations d'update pour les balances et autres afin d'éviter les
lost update
- Validation tout en un puis enregistrement tout en un
- Ajout du lien vers K-Psul dans le nav
- Les charges et retraits sur des comptes modifient la balance de la
caisse sélectionnée.
- Comportement particulier pour le compte LIQ :
Pas de charge, pas de retrait. La balance de LIQ n'est jamais
modifiée (donc pas d'entrée dans AccountNegative). Les achats sur LIQ
modifient la balance de lacaisse.
* Settings
- New: OVERDRAFT_AMOUNT
Découvert autorisé par défaut
- New: OVERDRAFT_DURATION
Durée maximum d'un découvert par défaut
* K-Psul : Gestion des commandes aboutissant à un négatif
- Si une commande aboutit à un nouveau solde négatif, demande la
permission 'kfet.perform_negative_operations'
- Si le total de la commande est négatif, vérifie que ni la
contrainte de temps de découvert, ni celle de montant maximum
n'est outrepassée. Si ce n'est pas le cas, la commande ne peut
être enregistrée jusqu'à définir des "règles de négatif" pour le compte
concerné.
La durée maximum d'un découvert est celle dans AccountNegative si
elle y est définie pour le compte concerné, sinon celle par défaut
(Settings.OVERDRAFT_DURATION).
Il en est de même pour le découvert maximum autorisé. Attention:
le découvert doit être exprimé sous forme de valeur positive aussi
bien dans AccountNegative que pour Settings.OVERDRAFT_AMOUNT.
- Si les permissions nécessaires sont présentes, qu'il
n'y a pas de blocage et que le compte n'a pas encore d'entrée dans
AccountNegative, création d'une entrée avec start=now()
- Si la balance d'un compte est positive après une commande, supprime
l'entrée dans AccountNegative associée au compte si le "décalage
de zéro" (donné par balance_offset) est nul. Sinon cela veut dire
que le compte n'est pas réellement en positif.
* Modèles
- Fix: Account.save() fonctionne dans le cas où data est vide
- Modif: AccountNegative - Valeurs par défaut, NULL...
- Empêche l'enregistrement de commande sur un compte gelé sans la
permission 'kfet.override_frozen_protection'
- Modifie les noms de deux permissions pour éviter d'avoir des 'can_...'
partout
- Corrige le code HTTP de 400 (BAD REQUEST) à 403 (FORBIDDEN) dans le
cas où l'utilisateur authentifié n'a pas les permissions nécessaires
pour enregistrer une commande K-Psul