forked from DGNum/gestioCOF
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
This commit is contained in:
parent
9677fd9ef6
commit
2786f834a5
16 changed files with 4647 additions and 59 deletions
|
@ -1,4 +1,5 @@
|
|||
from django.db import models
|
||||
from django.core.urlresolvers import reverse
|
||||
from django.core.exceptions import PermissionDenied
|
||||
from django.contrib.auth.models import User, AnonymousUser
|
||||
from django.core.validators import RegexValidator
|
||||
|
@ -40,7 +41,46 @@ class Account(models.Model):
|
|||
blank = True, null = True, default = None)
|
||||
|
||||
def __str__(self):
|
||||
return self.trigramme
|
||||
return '%s (%s)' % (self.trigramme, self.name)
|
||||
|
||||
# Propriétés pour accéder aux attributs de user et cofprofile et user
|
||||
@property
|
||||
def user(self):
|
||||
return self.cofprofile.user
|
||||
@property
|
||||
def username(self):
|
||||
return self.cofprofile.user.username
|
||||
@property
|
||||
def first_name(self):
|
||||
return self.cofprofile.user.first_name
|
||||
@property
|
||||
def last_name(self):
|
||||
return self.cofprofile.user.last_name
|
||||
@property
|
||||
def email(self):
|
||||
return self.cofprofile.user.email
|
||||
@property
|
||||
def departement(self):
|
||||
return self.cofprofile.departement
|
||||
@property
|
||||
def is_cof(self):
|
||||
return self.cofprofile.is_cof
|
||||
|
||||
# Propriétés supplémentaires
|
||||
@property
|
||||
def real_balance(self):
|
||||
if (hasattr(self, 'negative')):
|
||||
return self.balance + self.negative.balance_offset
|
||||
return self.balance
|
||||
|
||||
@property
|
||||
def name(self):
|
||||
if self.first_name and self.last_name:
|
||||
return '%s %s' % (self.first_name, self.last_name)
|
||||
elif self.first_name:
|
||||
return '%s %s' % self.first_name
|
||||
else:
|
||||
return self.last_name
|
||||
|
||||
@staticmethod
|
||||
def is_validandfree(trigramme):
|
||||
|
@ -53,14 +93,6 @@ class Account(models.Model):
|
|||
data['is_free'] = True
|
||||
return data
|
||||
|
||||
def real_balance(self):
|
||||
if (hasattr(self, 'negative')):
|
||||
return self.balance + self.negative.balance_offset
|
||||
return self.balance
|
||||
|
||||
def read(self, auth_user = AnonymousUser()):
|
||||
user = self.cofprofile.user
|
||||
|
||||
# Surcharge Méthode save() avec gestions de User et CofProfile
|
||||
# Args:
|
||||
# - data : datas pour User et CofProfile
|
||||
|
@ -72,7 +104,7 @@ class Account(models.Model):
|
|||
# Account update
|
||||
|
||||
# Updating User with data
|
||||
user = self.cofprofile.user
|
||||
user = self.user
|
||||
user.first_name = data.get("first_name", user.first_name)
|
||||
user.last_name = data.get("last_name", user.last_name)
|
||||
user.email = data.get("email", user.email)
|
||||
|
@ -81,12 +113,6 @@ class Account(models.Model):
|
|||
cof = self.cofprofile
|
||||
cof.departement = data.get("departement", cof.departement)
|
||||
cof.save()
|
||||
# Nickname is not editable by the user
|
||||
"""
|
||||
if not auth_user.has_perm('kfet.change_account'):
|
||||
account_old = Account.objects.get(pk=self.pk)
|
||||
self.nickname = account_old.nickname
|
||||
"""
|
||||
else:
|
||||
# New account
|
||||
|
||||
|
@ -149,9 +175,20 @@ class Checkout(models.Model):
|
|||
name = models.CharField(max_length = 45)
|
||||
valid_from = models.DateTimeField()
|
||||
valid_to = models.DateTimeField()
|
||||
balance = models.DecimalField(max_digits = 6, decimal_places = 2)
|
||||
balance = models.DecimalField(
|
||||
max_digits = 6, decimal_places = 2,
|
||||
default = 0)
|
||||
is_protected = models.BooleanField(default = False)
|
||||
|
||||
def get_absolute_url(self):
|
||||
return reverse('kfet.checkout.read', kwargs={'pk': self.pk})
|
||||
|
||||
class Meta:
|
||||
ordering = ['-valid_to']
|
||||
|
||||
def __str__(self):
|
||||
return self.name
|
||||
|
||||
class CheckoutTransfer(models.Model):
|
||||
from_checkout = models.ForeignKey(
|
||||
Checkout, on_delete = models.PROTECT,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue