Create fixtures for kfet application:
- Add a bunch of non-cof profiles whose "last_name" is "Romain";
- Add k-fet articles using the real ones as a template;
- Add LIQ account;
- Add groups K-fet Chef and K-fet Girl;
- Add "caisse".
We also added some template for future tests (well, actually it's the script
used to generate the fixtures…).
K-Psul - Fix: Lien -> création/modification de comptes
Le javascript de K-Psul encode maintenant les caractères spéciaux (dont `, / ? : @ & = + $ # "`) afin de pouvoir avoir accès aux comptes en question sans bugs.
See merge request !131
Corrige le négatif total
Le système de `balance_offset` (assez obscur par ailleurs) était compté dans la mauvais sens dans le calcul du négatif total.
Prend aussi en compte maintenant le statut spécial de `#13`, pour ne pas le ranger avec les négatifs habituels.
Fix#104
See merge request !125
Indicateur capslock
Détecteur de capslock en js.
Détecte les incohérences du capslock (majuscule entrée quand shift non enfoncé) puis suit aussi la pression de la touche capslock.
Nécessite un caractère affecté par capslock pour commencer à fonctionner (au départ, l'état de la touche capslock est inconnu)
Fix#96
See merge request !119
Fix un freeze dans l'écran de tranfert
Vide l'input caché lorsque le trigramme correspondant est effacé ; effacer une ligne de transfert n'empêche plus de valider le groupe.
Note : ne fonctionne pas sur la première ligne ; à cause de la façon dont django gère le nombre minimal de forms, celle ci doit toujours être remplie.
Fix#98
See merge request !118
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.
- Fix oublie de @staticmethod pour Settings.CANCEl_DURATION()
- Mise en cache de Settings.CANCEL_DURATION
- Fix sur cancel_operations : mauvais modèles et at
- Ajout de migrations manquantes dans `gestioncof` et `bda`.
- `kfet/migrations/0001_initial.py` requiert désormais une migration qui existe.
- Paquet manquant dans l'approvisionnement Vagrant.
- 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)
- Pour un compte qui n'est pas du tout déjà présent dans la BDD,
username doit faire 9 caractères minimum (ty @mpepin) et le champ cof
et login clipper ne sont plus modifiables
- 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
- Le stock n'est pas modifié s'il y a eu un inventaire depuis la date de
la commande annulée
- La méthode save d'ArticleInventory calcule elle-même l'erreur à partir
de stock_old et stock_new
- 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é.
- Une opération annulée alors qu'il y a eu un relevé depuis ne modifie plus
la balance de la caisse
- Fix maj balance caisse lors d'une annulation sur LIQ
- 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
- S'effectue en allant sur la page `Paramètres` (perm
`kfet.change_settings` nécessaires même pour voir les paramètres)
- Correction websocket perform operations lorsqu'il n'y avait pas de
majorations en cours
- 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