MAJ : add on_delete + MIDDLEWARE

This commit is contained in:
Qwann 2018-08-27 00:02:33 +02:00
parent 7c7adab658
commit b45d7722a7
5 changed files with 44 additions and 33 deletions

View file

@ -20,7 +20,10 @@ class Subscription(models.Model):
class UserSubscription(Subscription):
user = models.ForeignKey(User)
user = models.ForeignKey(
User,
on_delete=models.CASCADE,
)
is_unsub = models.BooleanField(
_("désinscription"),
default=False
@ -32,7 +35,10 @@ class UserSubscription(Subscription):
class GroupSubscription(Subscription):
group = models.ForeignKey(Group)
group = models.ForeignKey(
Group,
on_delete=models.CASCADE,
)
class Meta:
verbose_name = _("souscription en groupe")

View file

@ -7,7 +7,6 @@ from django.db.models import Q
from .fields import IdField
from taggit.managers import TaggableManager
from datetime import date
@ -21,6 +20,7 @@ class EquipmentCategory(models.Model):
blank=True,
null=True,
default=None,
on_delete=models.SET_NULL,
related_name="children",
help_text=_("merci de ne pas faire de référence cyclique"),
verbose_name=_("parent"),
@ -34,7 +34,6 @@ class EquipmentCategory(models.Model):
if current == cat:
return True
current = current.parent
def full_name(self):
current = self
@ -51,7 +50,6 @@ class EquipmentCategory(models.Model):
full_name.short_description = _("Chemin complet")
full_name_p = property(full_name)
class Meta:
verbose_name = _("catégories")
verbose_name_plural = _("catégories")
@ -67,7 +65,7 @@ class EquipmentCategory(models.Model):
if current.parent == self:
self.parent = None
done = True
elif current.parent == None:
elif current.parent is None:
done = True
current = current.parent
return super().save(*args, **kwargs)
@ -76,7 +74,8 @@ class EquipmentCategory(models.Model):
class EquipmentQuerySet(models.QuerySet):
def in_category(self, cat):
filtre = Q(id__lt=0)
childs_id = [ c.id for c in EquipmentCategory.objects.all() if c.has_parent(cat) ]
childs_id = [c.id for c in EquipmentCategory.objects.all()
if c.has_parent(cat)]
for pk in childs_id:
filtre |= Q(category__id=pk)
return self.filter(filtre)
@ -102,6 +101,7 @@ class Equipment(EventSpecificMixin, models.Model):
verbose_name=_("propriétaire"),
blank=True,
null=True,
on_delete=models.SET_NULL,
)
category = models.ForeignKey(
EquipmentCategory,
@ -117,7 +117,7 @@ class Equipment(EventSpecificMixin, models.Model):
_("dernière modification"),
auto_now=True,
)
objects = EquipmentQuerySet.as_manager()
def is_in_category(self, cat):
@ -134,9 +134,9 @@ class Equipment(EventSpecificMixin, models.Model):
return []
res = list(map(lambda x: x+1, range(self.stock)))
for lost in self.losts.all():
res = [ x
for x in res
if x not in lost.ids ]
res = [x
for x in res
if x not in lost.ids]
# TODO cassé
# TODO utilisés
return res
@ -144,9 +144,9 @@ class Equipment(EventSpecificMixin, models.Model):
def ids_lost(self):
res = []
for lost in self.losts.all():
res = res + [ x
for x in lost.ids
if x not in res]
res = res + [x
for x in lost.ids
if x not in res]
return res
def stock_aviable(self):
@ -162,16 +162,14 @@ class Equipment(EventSpecificMixin, models.Model):
full_category.short_description = _("Chemin complet")
ids_aviable.short_description = _("disponibles")
ids_lost.short_description = _("perdus")
stock_aviable.short_description= _("quantité disponible")
stock_aviable.short_description = _("quantité disponible")
stock_lost.short_description = _("quantité perdue")
full_category_p= property(full_category)
ids_aviable_p= property(ids_aviable)
ids_lost_p= property(ids_lost)
stock_aviable_p= property(stock_aviable)
full_category_p = property(full_category)
ids_aviable_p = property(ids_aviable)
ids_lost_p = property(ids_lost)
stock_aviable_p = property(stock_aviable)
stock_lost_p = property(stock_lost)
class Meta:
verbose_name = _("matériel")
@ -195,6 +193,7 @@ class EquipmentAttribute(models.Model):
def __str__(self):
return self.name
class EquipmentAttributeValue(models.Model):
equipment = models.ForeignKey(
Equipment,
@ -223,8 +222,15 @@ class EquipmentAttributeValue(models.Model):
class EquipmentAttribution(models.Model):
equipment = models.ForeignKey(Equipment, verbose_name=_("matériel"))
activity = models.ForeignKey(Activity)
equipment = models.ForeignKey(
Equipment,
verbose_name=_("matériel"),
on_delete=models.CASCADE,
)
activity = models.ForeignKey(
Activity,
on_delete=models.CASCADE,
)
amount = models.BigIntegerField(_("quantité attribuée"))
remarks = models.TextField(
_("remarques concernant l'attribution"),
@ -241,7 +247,8 @@ class EquipmentAttribution(models.Model):
self.activity.get_herited('title'))
def save(self, *args, **kwargs):
if self.equipment.event and self.equipment.event != self.activity.event:
if (self.equipment.event
and self.equipment.event != self.activity.event):
raise ValidationError
super(EquipmentAttribution, self).save(*args, **kwargs)

View file

@ -56,7 +56,7 @@ INSTALLED_APPS = [
'django.contrib.sites',
# 'channels',
'rest_framework',
# 'rest_framework',
'bootstrapform',
'widget_tweaks',
'taggit',
@ -70,9 +70,8 @@ INSTALLED_APPS = [
'allauth.socialaccount',
'allauth_cas',
'allauth_ens.providers.clipper',
'api',
# 'api',
'communication',
'equipment',
'event',
@ -80,7 +79,7 @@ INSTALLED_APPS = [
'users',
]
MIDDLEWARE_CLASSES = [
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
@ -184,7 +183,7 @@ AUTHENTICATION_BACKENDS = (
SITE_ID = 1
CAS_SERVER_URL = "https://cas.eleves.ens.fr/" #SPI CAS
CAS_SERVER_URL = "https://cas.eleves.ens.fr/" # SPI CAS
CAS_VERIFY_URL = "https://cas.eleves.ens.fr/"
CAS_IGNORE_REFERER = True
CAS_REDIRECT_URL = reverse_lazy('shared:home')
@ -213,7 +212,5 @@ SOCIALACCOUNT_PROVIDERS = {
}
ACCOUNT_ADAPTER = 'shared.allauth_adapter.AccountAdapter'
SOCIALACCOUNT_ADAPTER = 'shared.allauth_adapter.SocialAccountAdapter'

View file

@ -12,9 +12,9 @@ DEBUG = True
# Add some debugging tools
INSTALLED_APPS += ["debug_toolbar", "debug_panel"] # NOQA
MIDDLEWARE_CLASSES = (
MIDDLEWARE = (
["debug_panel.middleware.DebugPanelMiddleware"]
+ MIDDLEWARE_CLASSES # NOQA
+ MIDDLEWARE # NOQA
)

View file

@ -11,6 +11,7 @@ class EventSpecificMixin(models.Model):
verbose_name=_("évènement"),
help_text=_("Si spécifié, l'instance du modèle"
"est spécifique à l'évènement en question"),
on_delete=models.CASCADE,
blank=True,
null=True
)