L'ajout automatique de "K-Fêt" dans le nom d'un groupe empêche de créer
un groupe sans "K-Fêt" et donc de ne pas le voir dans la liste des
groupes.
Une indication est ajouté dans le formulaire pour créer/modifier un
groupe pour indiquer que "K-Fêt" va être ajouté au début du nom du
groupe.
- Via "F8", possible de faire des charges sans modifier la caisse si
l'utilisateur a la permission `kfet.edit_balance_account`. Un
commentaire est alors nécessaire sur la commande.
- `lock` limite à 1 le nombre de requêtes AJAX critiques (perform/cancel
operations) simultanées afin d'éviter de compter plusieurs la même
commande. Ce qui arrivait dans le cas où le panier était fait et en
tapant 2 fois enter rapidement (la 2nde requête était lancée avant que
la réponse de la 1ère ne revienne)
- Possible de générer un inventaire à partir d'une commande passée.
Préremplissage avec les valeurs commandées.
- Possible d'indiquer les prix d'achat pour avoir l'historique des prix
d'un article chez un fournisseur. Et bientôt, une proposition
automatique de prix.
- L'erreur sur le stock d'un article lors d'un inventaire n'est pas mise
à jour dans le cas où l'inventaire est généré à partir d'une commande.
- Ajout d'un champ `at` au modèle `SupplierArticle` afin de conserver
l'historique des prix d'achat
- Fix sur la vue `order_create`
- Possible de passer une livraison à un fournisseur
- Proposition de quantités générées à partir des ventes sur les 5
dernières semaines
- Mail généré à partir d'une commande (pas d'envoi auto)
- box_capacity et box_type passe de SupplierArticle à Article
- Liste des fournisseurs sur la page commande (`/orders/`)
- Possibilité d'éditer les infos d'un fournisseur depuis cette page
- Ajout vérification permission pour enregistrer un inventaire
- Fix messages sur vue inventaire create
- Reprise en utilisant `history.js`
- Fix csrf_token sur ajax POST K-Psul
- Fix annulation K-Psul
- Ajouts de select_related pour économiser de la requête BDD
- Reprise du JS d'historique dans `kfet/static/kfet/js/history.js`
- Adapatation de K-Psul pour l'utiliser
- Création page historique avec filtres (dates, caisses, comptes)
- Ajout de paramètres à cette vue
- `opegroups` contient maintenant une liste de groupes d'opérations et
non plus un dictionnaire contenant `opegroup.pk` => `opegroup`
- Un commentaire est demandé. Une permission est nécessaire (afin
d'enregistrer la personne ayant enregistré la commande)
- Fix annulation K-Psul. Appuyer sur Suppr appelait tout le temps
`cancelOperations` même si aucune opération à supprimer n'était
sélectionné.
- Reprise de l'affichage
- Affichage en direct des totaux et erreurs
- Possibilité de ne pas compter la caisse ajoutée (et identifiée par
`not_count` dans le modèle Statement si tel est le cas)
Nouveau relevé:
Il faut donner le détail du nombre de chaque
pièces/billets pris et laissé en caisse pour calculer les valeurs
`balance_new` et `amount_taken` d'un relevé (`CheckoutStatement`).
L'erreur est directement calculée par rapport à la balance actuelle de
la caisse et ces 2 valeurs. Une erreur positive correspond à un surplus
d'argent et inversement.
Modification d'un relevé:
Il est possible de modifier les infos d'un ancien relevé. L'erreur est
ensuite recalculée à partir de ces infos.
Important: Dans le cas où `balance_new` est modifiée et qu'il s'agit du
relevé le plus récent sur cette caisse. Alors la balance de la caisse
est mise à jour en prenant en compte cette correction (et en conservant
les modifications s'il y a eu des mouvements sur la caisse)
- Les infos d'annulations apparaissent sur les historiques (K-Psul et
standard)
- Les infos de validation apparaissent sur l'historique standard si la
personne est de l'équipe
- Si la ligne contenant les données d'une opération est trop longue,
celle-ci est scrollable (exemple : opé annulée sur K-Psul)
- Le fond change de couleur lorsqu'il y a une majoration. La majoration
est indiquée dans le cadre sur la caisse (et clignote !)
- Meilleure prise en charge des paramètres sur K-Psul
En appuyant sur F9, il est possible de définir une majoration destinée à
un compte en donnant le trigramme du compte destinataire et la valeur en
euro de la majoration par article
- Lors de la création ou modification d'un article, il est possible de
sélectionner une catégorie existante ou d'en créer une nouvelle.
- Autorisations pour la création/modif d'article prises en compte
correctement. Si l'utilisateur identifié n'a pas la permission
add(ou change)_accoount, input password apparait et l'utilisateur est
identifié temporairement pour la validation de l'ajout/modif.
- 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.