diff --git a/communication/models.py b/communication/models.py index fd0ab1b..b799ff1 100644 --- a/communication/models.py +++ b/communication/models.py @@ -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") diff --git a/equipment/models.py b/equipment/models.py index c888ca1..5a3be71 100644 --- a/equipment/models.py +++ b/equipment/models.py @@ -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) diff --git a/poulpe/settings/common.py b/poulpe/settings/common.py index 852f5bf..54a8bb1 100644 --- a/poulpe/settings/common.py +++ b/poulpe/settings/common.py @@ -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' diff --git a/poulpe/settings/dev.py b/poulpe/settings/dev.py index f65a54c..c807064 100644 --- a/poulpe/settings/dev.py +++ b/poulpe/settings/dev.py @@ -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 ) diff --git a/shared/models.py b/shared/models.py index 0e55ab0..ec083f8 100644 --- a/shared/models.py +++ b/shared/models.py @@ -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 )