- When Account model is queried with Account.objects, it always add
.select_related('cofprofile_user', 'negative').
- Eg benefits: history doesn't do anymore one request by account to
fill the account filter.
Important
Using this workaround (systemically append select_related) can be
dangerous normally, however a certain number of properties in
cofprofile and user are frequently used (as firstname or lastname), and
the benefits seems greater.
- add verbose names to ArticleCategory fields
- add button to view categories list from articles list
- fix article_update template in form validation
- improve interface for articlecategory_update
- revert vanished urls (happened in merge with master...)
Old configuration(/settings), based on Settings model, system is
deleted: SettingsForm, Settings.
New system use `django-djconfig` module.
- `kfet.config` module provides `kfet_config` to access configuration concerning
kfet app.
- Views, forms, models, etc now use this object to retrieve conf values.
- Views no longer add config values to context, instead templates use
`kfet_config` provided by a new context_processor.
- Enhance list and update views of settings.
- Fix: settings can directly be used without having to visit a specific
page...
Misc
- Delete some py2/3 imports
- Delete unused imports in kfet.models and kfet.views
- Some PEP8 compliance
- Fix oublie de @staticmethod pour Settings.CANCEl_DURATION()
- Mise en cache de Settings.CANCEL_DURATION
- Fix sur cancel_operations : mauvais modèles et at
- 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.
- 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
- 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
- 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)
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
- 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
- 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
- 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
- Ajout des paramètres (modèle Settings) "ADDCOST_AMOUNT" et
"ADDCOST_FOR" indiquant respectivement le montant et le compte sur lequel
compter la majoration. Définir l'un de ces paramètres à NULL indique
qu'il n'y a pas de majoration en cours
- Prise en compte de ces 2 paramètres lors de la validation et
l'enregistrement d'opérations d'achat (Operation.PURCHASE) dans K-Psul
- Modification du champ "addcost_amount" de Operation. S'il n'y a pas de
majoration, celui-ci est NULL.
- Correction sur l'enregistrement de "valid_by" dans K-Psul. Celui-ci
était systématiquement rempli par l'utilisateur connecté ce qui
n'était pas le comportement souhaité. Il est maintenant rempli
seulement si une permission autre que kfet.is_team était nécessaire
pour valider la commande.
- Suppression d'une exception non utilisée dans le modèle Settings
- Ajout d'une méthode sur Account pour connaître les permissions
nécessaires pour enregistrer des opérations en fonction du futur solde
du compte
- Ajout d'une permission pour effectuer une charge sur un compte
- Ajoute que l'utilisateur connecté doit avoir toutes les permissions
nécessaires pour enregistrer un groupe d'opérations. Si ce n'est pas
le cas, aucune opération n'est enregistrée et les permissions manquantes
sont envoyées en réponse.
- Dans le cas d'une charge ou d'un retrait, "article" et "article_nb" de
Operation sont définis à NULL
- Ajout d'un modèle settings
- Ajout de la prise en compte du statut COF dans le montant d'une
opération achat avec la majoration définie dans le modèle settings
(name="SUBVENTION_COF")
- Validation d'un OperationGroup par le form associé et sa méthode
is_valid
- Validation d'une Operation par la méthode clean() du form associé
selon le type d'opération effectuée
- Ajout d'une exception Checkout.IsProtected
- Rend impossible d'utiliser une caisse (Checkout) protégée
(is_protected) dans K-Psul
Une caisse protégée est, par exemple, la caisse qui recevra les
rechargements par CB en ligne.
K-Psul est l'interface pour l'équipe K-Fêt servant à effectuer des
opérations sur les comtpes
General :
- Ajout d'un default sur le montant d'un groupe d'opérations
K-Psul :
- Création de l'interface pour enregistrer une opération
- General :
- Ajout de la gestion des messages dans le template base
- jQuery et bootstrap ajoutés au template base
- Ajout de DateTimeWidget utilisant bootstrap-datetimepicker pour
les champs DateTime
- Account :
- Ajout de propriétés aux modèles pour accéder directement à
certains éléments sans avoir à passer par les relations
- Suppression d'une méthode inutile dans le modèle
- Correction de permission dans la vue update
- Utilisation des messages pour la création et l'édition d'un compte
- Checkout :
- gestion initiale CRU