- Add css transitions on buttons + navbar links.
- Clean css of navbar.
- Clean templates with only centered form/content.
- Page opened when login as generic team user close itself (only for
non-CAS users).
- A message is added when generic team user connects.
- Fix extra space on right when messages are prompted.
- Like perform operations, cancel_operations can add/remove an account
from negative accounts system.
- Balances checks are now performed against real_balance instead of
balance.
So if someone with a balance_offset go, for real, to positive land (ie even
without taking into account the balance offset), its account is removed from
the negative system.
- Fix bug on real_balance when negative exists but balance_offset is
not set.
Fixes#156.
Order create view use WeekScale. No query improvements, only shorter
code.
Scale/ScaleMixin:
- Two methods directly relative to the Scale class move to... the Scale
class.
- Fix order create on Chrome.
Scales:
- Fix #chunks when used with std_chunk=True (there was one too many at
the beginning)
- Scale.end gives the end of the last chunk (instead of its start)
So scale.begin -> scale.end gives the full range of the scale.
`kfet_day` now returns an aware datetime.
ScaleMixin:
- new method `get_by_chunks` which use only one query and ranks
elements according to the scale. Elements are returned by a generator
for each scale chunk (and all chunks are returned as a generator too).
ArticlesStatSales and AccountStatOperations use this new method to
avoid issuing #scale_chunks queries.
ArticleStat:
- fixed on Chrome
- AccountNegative use new AccountNegativeManager which select_related
account, cofprofile and user for instances accessed via
AccountNegative.objects.
- Compute sum of negatives with python instead of an SQL statement
(since we already got the data with a previous query).
- Fix bug on account property `real_balance` (happened if
an account has a relative AccountNegative instance but balance_offset
to NULL).
- More compliant to PEP8
- 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.
- KFetConfig `set` method now takes model instance instead of their pk
for this type of entries.
- Add tests for KFetConfig class: tests against types currently used by
kfet app (duration, modelinstance, decimal).
- These tests are located in `kfet/tests/test_config.py`. We should
separate tests suites by file like this, considering what they are about.
- KFetConfig method `set_many` renamed to `set` (because it also updates
only one).
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
kfet.statistic
- delete no longer used defs
- new mixin - ScaleMixin
- get scale args from GET params
- chunkify querysets according to a scale
Article stats
- use SingleResumeStat for manifest
- use ScaleMixin for sales
- update urls
- update permission required: teamkfet
Account stats
- update permission required: teamkfet
- operations use ScaleMixin
- fix manifests urls
K-Fêt - Statistics
New base class - StatScale
- create scale, given chunk size (timedelta), start and end times
- get labels of
- get start and end datetimes of chunks
DayStatScale: Scale whose chunks interval is 1 day
WeekStatScale: same with 1 week
MonthStatScale: same with 1 month
AccountStatOperationList: manifest of operations stats of an account
- renamed from AccountStatLastAll
- updated according to SingleResumeStat
AccountStatOperation:
- renamed from AccountStatLast
- remove scale logic with use of StatScale objects
- used scale is given by `scale` and `scale_args` GET params
- add filter on operations types with `types` GET param
AccountStatLast(Day,Week,Month) are deleted ("merged" in
AccountStatOperation)
New mixin: PkUrlMixin
- use with SingleObjectMixin standard django mixin (used by
DetailView...)
- `get_object` use field declared in `pk_url_kwarg` to get... the object
SingleResumeStat
- clean (part of) py code
AccountStatBalanceList
- renamed from `AccountStatBalanceAll`
- url modified
- add permission checking (only the connected user can get balance
stats manifest)
- clean py code
AccountStatBalance
- cleaner filtering management
- merge urls using this class
- clean py code
Changement de son propre mot de passe
Permet à un K-Fêteux (disposant de la permission `kfet.is_team`) de modifier son propre mot de passe sur la page `account/XXX/edit`.
Accessoirement, la fonction `account_update` est maintenant conforme à PEP8.
Fix#121
See merge request !148
- 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.
- 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