Commit graph

2498 commits

Author SHA1 Message Date
Aurélien Delobelle
5abffb099f Correction d'une permission dans le templace nav 2016-08-08 08:36:46 +02:00
Aurélien Delobelle
510e16eecf Gestion des commandes K-Psul donnant un négatif
* 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...
2016-08-08 07:44:05 +02:00
Aurélien Delobelle
897986fec8 Correction commit f9c8708 2016-08-08 04:11:08 +02:00
Aurélien Delobelle
f9c87088fc Validation commande K-Psul (compte gelé)
- 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
2016-08-08 03:49:10 +02:00
Aurélien Delobelle
4c8b23e999 Correction de l'usage de transaction dans K-Psul 2016-08-08 03:32:48 +02:00
Aurélien Delobelle
726f42c469 Correction code HTTP K-Psul
- 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
2016-08-08 03:15:11 +02:00
Aurélien Delobelle
11452d7633 Ajout des majorations (type concert)
- 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
2016-08-08 02:50:04 +02:00
Aurélien Delobelle
03aa26e34f Enregistrement d'opérations K-Psul
- Le stock des articles est mis à jour
2016-08-08 00:41:31 +02:00
Aurélien Delobelle
d065c7634c Enregistrement d'opérations K-Psul
- Le solde (balance) du compte sur lequel a été effectuée la commande
  est mis à jour
2016-08-08 00:34:09 +02:00
Aurélien Delobelle
e55d45b559 Corrections sur commit précédent 2016-08-08 00:24:46 +02:00
Aurélien Delobelle
e978209ebc Enregistrement des opérations dans K-Psul
- Ajout d'une transaction pour tous les save lors d'une commande K-Psul
  afin de préserver la cohérence de la BDD
2016-08-08 00:13:53 +02:00
Aurélien Delobelle
4cb89aa005 Gestion des permissions dans K-Psul
- 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
2016-08-07 23:41:46 +02:00
Qwann
770162463d retrait des flèches pour les champs num en lecture seule 2016-08-07 19:47:14 +02:00
Aurélien Delobelle
515a7ce28e Modèle settings
- Ajout de l'unicité du nom d'un paramètre

Ce qui a pour conséquence de rajouter un index sur le nom, ce qui est
bien
2016-08-07 18:41:09 +02:00
Aurélien Delobelle
346cbb2695 Calcul du montant des opérations achats
- 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")
2016-08-07 18:37:06 +02:00
Aurélien Delobelle
49bb7d99cd Modification de l'enregistrement sur K-Psul
- Passe le calcul du montant d'un achat dans la vue au lieu du clean du
  form
- Corrige le calcul d'un achat et le calcul total du montant de la commande
- Ajoute l'enregistrement du statut COF de la personne associée à la
  commande

La subvention COF, la majoration possible (type concert), autres...
devront être prises en compte donc le calcul d'un achat doit être dans
la vue.
Les achats et les retraits doivent avoir un montant négatif tandis que
les charges ont un montant positif.
L'enregistrement du statut COF servira aux futures statistiques.
2016-08-07 17:22:39 +02:00
Aurélien Delobelle
5ff7ee51b3 Correction sur la validation dans K-Psul
- 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
2016-08-07 17:02:01 +02:00
Aurélien Delobelle
fdb105ab84 Vérification supplémentaire sur K-Psul
- 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.
2016-08-06 23:59:44 +02:00
Aurélien Delobelle
ffc845aefa Correctifs
- Fix: décommente du code nécessaire et nom plus identifiable
- Fix: erreur de types dans les modèles OperationGroup et Operation
2016-08-06 23:44:58 +02:00
Aurélien Delobelle
6be65df654 Création de K-Psul
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
2016-08-06 22:19:52 +02:00
Martin Pépin
19456756e4 Cache les vieux événements 2016-08-06 15:34:01 +02:00
Aurélien Delobelle
e9bbb35e66 Ajout d'un index sur Account.trigramme
En fait inutile car déjà créé du fait de la contrainte d'unicité
2016-08-04 17:38:58 +02:00
Aurélien Delobelle
5b3613b6f6 Gestion primitive des articles
- Gestion CRU des articles
2016-08-04 08:23:34 +02:00
Aurélien Delobelle
22ccf02393 correction du titre 2016-08-04 07:43:36 +02:00
Aurélien Delobelle
acd36b69eb Utilisation des propriétés d'Account 2016-08-04 06:07:46 +02:00
Aurélien Delobelle
092c3ce5d4 Clarification attribut AccountNegative
- frozen -> is_frozen
- migration :
    - AccountNegative : frozen -> is_frozen
    - Rajout d'un default sur Checkout.balance
2016-08-04 06:00:47 +02:00
Aurélien Delobelle
bc1c0110f1 Correction propriété name du modèle Account 2016-08-04 05:57:47 +02:00
Aurélien Delobelle
2786f834a5 Vues gestion caisses et amélioration Account
- 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
2016-08-04 05:21:04 +02:00
Martin Pépin
45385be556 Meilleure gestion des liens sur la page d'accueil
- Le lien vers l'inscription à un tirage BdA disparaît après sa fermeture
- Les liens “mes places” et “revente” n'apparaissent qu'après la fermeture du
  tirage.
- Le lien vers les ratios des demandes est déplacé dans la partie “Gestion des
  tirages” pour servir d'archive au BdA.

Fixes #55
2016-08-03 17:58:34 +02:00
Martin Pépin
5a1d854bb1 Petite correction de style 2016-08-03 15:59:05 +02:00
Martin Pépin
4a3e091268 Mise à jour des accès
- La vue d'édition du profil n'est plus accessible aux non-COF
- Le calendrier dynamique étant réservé aux adhérents, le lien vers
  l'inscription est caché aux non-adhérents.
2016-08-03 15:53:35 +02:00
Aurélien Delobelle
9677fd9ef6 Minor changes
- Création d'un template pour nav
    - Modification des liens entre les pages account
    - Correction de la balise form dans account_update.html
    - Ajout d'un nom pour la résolution inversée de account
2016-08-03 07:20:31 +02:00
Aurélien Delobelle
49fdaa6824 Minor changes
- Création d'un template pour nav
- Modification des liens entre les pages account
- Correction de la balise form dans account_update.html
- Ajout d'un nom pour la résolution inversée de account
2016-08-03 06:33:27 +02:00
Aurélien Delobelle
b8fe555741 Gestion très primaire des utilisateurs 2016-08-03 04:57:28 +02:00
Aurélien Delobelle
b5260882c1 Gestion très primaire des utilisateurs 2016-08-03 04:38:54 +02:00
Aurélien Delobelle
43d938edd0 initial 2016-08-02 10:40:46 +02:00
Martin Pépin
a2177155a0 Dépendance manquante 2016-07-31 11:01:03 +02:00
Martin Pepin
237af58fbb Merge branch 'Kerl/cron' into 'master'
Ajoute un cron pour les mails de rappel

Cette tâche cron sert à automatiser l'envoi des mails de rappel. Plus de détails dans `provisioning/cron.md`

Ce n'est pas nécessaire sur la VM vagrant pour développer mais il est possible de charger tout de même en tapant : 

    crontab provisioning/cron.dev

Sur la machine en prod, il faudra adapter ce fichier.



See merge request !67
2016-07-30 12:15:22 +02:00
Martin Pépin
c99b71d493 Merge branch 'master' into Kerl/cron 2016-07-30 12:14:26 +02:00
Martin Pepin
7be3306a80 Merge branch 'Kerl/deprec' into 'master'
Réécrit les urls

En accord avec
https://docs.djangoproject.com/en/1.9/releases/1.8/#passing-a-string-as-view-to-url

See merge request !66
2016-07-30 00:29:12 +02:00
Martin Pépin
7020d6a646 Merge branch 'master' into Kerl/deprec 2016-07-30 00:27:59 +02:00
Martin Pepin
f91d95a093 Merge branch 'Kerl/test_db' into 'master'
Kerl/test db

Ajoute une base de donnée de tests avec
- Des utilisateurs dont `root` (mot de passe `root`) avec tous les droits
- Un ensemble complet de tirages, spectacles, salles, participants et vœux pour le bda.
- Un événement.
- Un sondage.
- Quelques données de petits cours

Pour appliquer ce patch, il faut lancer la commande

    python manage.py loaddata users bda gestion

Fixes #4 

_NB._ Les noms des utilisateurs sont honteusement pompés sur www.asterix.com

_NB._ Il se passe des choses bizarres si on load cette base dans une base déjà remplie, à bon entendeur.

See merge request !38
2016-07-30 00:20:44 +02:00
Martin Pépin
edbf3867a4 Préparation à la mise en ligne
- Séparation du compte root des autres comptes
- Mise à jour en fonction des derniers changements de la BDD :
    - Les dates des events deviennent des datetime
    - Changement de nom dans bda.models.Tirage : token -> tokens
- Changement dans les dates de spectacles pour se situer dans l'année
  2016-2017
2016-07-29 23:31:54 +02:00
Martin Pépin
d6bdf211cf Merge branch 'master' into Kerl/test_db 2016-07-29 22:42:25 +02:00
Martin Pépin
b9ed81453d Conflit dans les migrations 2016-07-29 22:29:20 +02:00
Martin Pepin
bbc4b59bfe Merge branch 'Kerl/calendar' into 'master'
Ajout d'un calendrier dynamique

Ce patch propose aux adhérents du COF de télécharger un calendrier
dynamique (`.ics`).

Il est configurable : 

    - On peut s'abonner ou non aux événements du COF.
    - On peut choisir les spectacles auxquels on veut s'abonner.
        - Une checkbox permet d'ajouter d'un coup les spectacles pour lesquels on a obtenu une place
        - On peut en ajouter d'autres 

Pour faire fonctionner ce patch, il faut installer la bibliothèque python `icalendar` : 
    
    pip install --upgrade -r requirements.txt

Fixes #20
Fixes #14 

See merge request !63
2016-07-29 21:42:58 +02:00
Martin Pepin
90e3527d1c Merge branch 'Kerl/fix_32_do_tirage' into 'master'
Kerl/fix 32 do tirage

Ce patch permet au BdA de lancer ses tirages tout seul, plus besoin de toucher au code. 

Les tirages sont protégés par un switch dans l'interface admin, i.e. un booléen qu'on passe à `True` avant de faire un tirage et qu'on repasse à False après. Ça sert à éviter qu'un étourdi lance un tirage “sans faire exprès”.

Si un tirage est lancé plusieurs fois, on garde les différentes graînes dans la champ `tokens` du modèle `Tirage`.

Fixes #32 

See merge request !53
2016-07-29 21:34:05 +02:00
Martin Pépin
2632c9dff8 Merge branch 'master' into Kerl/calendar 2016-07-29 20:17:04 +02:00
Martin Pépin
dd951287a9 Merge branch 'master' into Kerl/fix_32_do_tirage 2016-07-29 19:03:36 +02:00
Martin Pepin
063856b752 Merge branch 'qwann/zolicss' into 'master'
Qwann/zolicss

Hésitez pas à dire si y'a d'autres trucs à changer, des trucs que j'ai oublié ou que j'ai pu casser et que j'ai oublié de tester. Il faudrait vraiment tout tester !69 

Pour faire fonctionner ce patch, il faut installer la bibliothèque python `django-bootstrap-form` : 
    
    pip install --upgrade -r requirements.txt

See merge request !69
2016-07-29 18:26:44 +02:00