From dc8fc77130e164a4663db9a859e833f96adc1b4e Mon Sep 17 00:00:00 2001 From: Qwann Date: Thu, 13 Oct 2016 16:24:19 +0200 Subject: [PATCH 1/3] premier jet models equipement --- equipement/__init__.py | 0 equipement/admin.py | 3 ++ equipement/apps.py | 5 +++ equipement/models.py | 73 ++++++++++++++++++++++++++++++++++++++++++ equipement/tests.py | 3 ++ equipement/views.py | 3 ++ event/models.py | 8 ++++- 7 files changed, 94 insertions(+), 1 deletion(-) create mode 100644 equipement/__init__.py create mode 100644 equipement/admin.py create mode 100644 equipement/apps.py create mode 100644 equipement/models.py create mode 100644 equipement/tests.py create mode 100644 equipement/views.py diff --git a/equipement/__init__.py b/equipement/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/equipement/admin.py b/equipement/admin.py new file mode 100644 index 0000000..8c38f3f --- /dev/null +++ b/equipement/admin.py @@ -0,0 +1,3 @@ +from django.contrib import admin + +# Register your models here. diff --git a/equipement/apps.py b/equipement/apps.py new file mode 100644 index 0000000..7d172de --- /dev/null +++ b/equipement/apps.py @@ -0,0 +1,5 @@ +from django.apps import AppConfig + + +class EquipementConfig(AppConfig): + name = 'equipement' diff --git a/equipement/models.py b/equipement/models.py new file mode 100644 index 0000000..70ad3e8 --- /dev/null +++ b/equipement/models.py @@ -0,0 +1,73 @@ +from django.db import models +from django.utils.translation import ugettext_lazy as _ + +from event.models import Event, Activity + + +class AbstractEquipement(models.Model): + name = models.CharField( + _("Nom du matériel"), + max_length=200, + ) + stock = models.PositieSmallIntegerField(_("Quantité disponible")) + description = models.TextField(_("Description")) + + class Meta: + verbose_name = _("matériel abstrait") + verbose_name_plural = _("matériels abstraits") + + def __str__(self): + return self.name + + +class Equipement(AbstractEquipement): + class Meta: + verbose_name = _("matériel permanent") + verbose_name_plural = _("matériels permanents") + + +class TemporaryEquipement(AbstractEquipement): + event = models.ForeignKey( + Event, + related_name="specific_equipement", + help_text=_("Évènement pour lequel le matériel " + "a été loué ou empreinté ou apporté"), + ) + + class Meta: + verbose_name = _("matériel temporaire") + verbose_name_plural = _("matériels temporaires") + + +class EquipementAttribution(models.Model): + equipement = models.ForeignKey(AbstractEquipement) + activity = models.ForeignKey(Activity) + amount = models.PositiveSmallIntegerField(_("Quantité attribuée")) + remarks = models.TextField("Remarques concernant l'attribution") + + class Meta: + verbose_name = _("attribution de matériel") + verbose_name_plural = _("attributions de matériel") + + def __str__(self): + return self.equipement.name +\ + " (" + self.amout + ") " +\ + " -> " + self.activity.get_herited('title') + + +class EquipementRemark(models.Model): + remark = models.TextField("Remarque sur le matériel") + equipement = models.ForeignKey( + AbstractEquipement, + related_name="remarks", + help_text=_("Matériel concerné par la remarque"), + ) + is_broken = models.BooleanField() + is_lost = models.BooleanField() + + class Meta: + verbose_name = _("remarque sur matériel") + verbose_name_plural = _("remarques sur le matériel") + + def __str__(self): + return self.equipement.name + " : " + self.remark diff --git a/equipement/tests.py b/equipement/tests.py new file mode 100644 index 0000000..7ce503c --- /dev/null +++ b/equipement/tests.py @@ -0,0 +1,3 @@ +from django.test import TestCase + +# Create your tests here. diff --git a/equipement/views.py b/equipement/views.py new file mode 100644 index 0000000..91ea44a --- /dev/null +++ b/equipement/views.py @@ -0,0 +1,3 @@ +from django.shortcuts import render + +# Create your views here. diff --git a/event/models.py b/event/models.py index a688096..7f51971 100644 --- a/event/models.py +++ b/event/models.py @@ -4,6 +4,8 @@ from django.core import exceptions from django.db import models from re import search as re_search +from equipement.models import AbstractEquipement + def validate_color(value): def is_hex_color(s): @@ -157,7 +159,11 @@ class Activity(ActivityTemplate): related_name="in_perm_activities", blank=True, ) - # equipement = models.ManyToManyField(Equipement) + equipement = models.ManyToManyField( + AbstractEquipement, + related_name="activities", + through="EquipementAttribution", + ) def get_herited(self, attrname): attr = super(Activity, self).__getattribute__(attrname) From 6021cc5a332cde4f58aec9f2a69c2d440a1ef2b1 Mon Sep 17 00:00:00 2001 From: Qwann Date: Fri, 14 Oct 2016 13:00:51 +0200 Subject: [PATCH 2/3] middlexare fix --- equipement/__init__.py | 0 equipement/admin.py | 3 -- equipement/apps.py | 5 --- equipement/models.py | 73 ------------------------------------ equipement/tests.py | 3 -- equipement/views.py | 3 -- evenementiel/settings_dev.py | 3 ++ 7 files changed, 3 insertions(+), 87 deletions(-) delete mode 100644 equipement/__init__.py delete mode 100644 equipement/admin.py delete mode 100644 equipement/apps.py delete mode 100644 equipement/models.py delete mode 100644 equipement/tests.py delete mode 100644 equipement/views.py diff --git a/equipement/__init__.py b/equipement/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/equipement/admin.py b/equipement/admin.py deleted file mode 100644 index 8c38f3f..0000000 --- a/equipement/admin.py +++ /dev/null @@ -1,3 +0,0 @@ -from django.contrib import admin - -# Register your models here. diff --git a/equipement/apps.py b/equipement/apps.py deleted file mode 100644 index 7d172de..0000000 --- a/equipement/apps.py +++ /dev/null @@ -1,5 +0,0 @@ -from django.apps import AppConfig - - -class EquipementConfig(AppConfig): - name = 'equipement' diff --git a/equipement/models.py b/equipement/models.py deleted file mode 100644 index 70ad3e8..0000000 --- a/equipement/models.py +++ /dev/null @@ -1,73 +0,0 @@ -from django.db import models -from django.utils.translation import ugettext_lazy as _ - -from event.models import Event, Activity - - -class AbstractEquipement(models.Model): - name = models.CharField( - _("Nom du matériel"), - max_length=200, - ) - stock = models.PositieSmallIntegerField(_("Quantité disponible")) - description = models.TextField(_("Description")) - - class Meta: - verbose_name = _("matériel abstrait") - verbose_name_plural = _("matériels abstraits") - - def __str__(self): - return self.name - - -class Equipement(AbstractEquipement): - class Meta: - verbose_name = _("matériel permanent") - verbose_name_plural = _("matériels permanents") - - -class TemporaryEquipement(AbstractEquipement): - event = models.ForeignKey( - Event, - related_name="specific_equipement", - help_text=_("Évènement pour lequel le matériel " - "a été loué ou empreinté ou apporté"), - ) - - class Meta: - verbose_name = _("matériel temporaire") - verbose_name_plural = _("matériels temporaires") - - -class EquipementAttribution(models.Model): - equipement = models.ForeignKey(AbstractEquipement) - activity = models.ForeignKey(Activity) - amount = models.PositiveSmallIntegerField(_("Quantité attribuée")) - remarks = models.TextField("Remarques concernant l'attribution") - - class Meta: - verbose_name = _("attribution de matériel") - verbose_name_plural = _("attributions de matériel") - - def __str__(self): - return self.equipement.name +\ - " (" + self.amout + ") " +\ - " -> " + self.activity.get_herited('title') - - -class EquipementRemark(models.Model): - remark = models.TextField("Remarque sur le matériel") - equipement = models.ForeignKey( - AbstractEquipement, - related_name="remarks", - help_text=_("Matériel concerné par la remarque"), - ) - is_broken = models.BooleanField() - is_lost = models.BooleanField() - - class Meta: - verbose_name = _("remarque sur matériel") - verbose_name_plural = _("remarques sur le matériel") - - def __str__(self): - return self.equipement.name + " : " + self.remark diff --git a/equipement/tests.py b/equipement/tests.py deleted file mode 100644 index 7ce503c..0000000 --- a/equipement/tests.py +++ /dev/null @@ -1,3 +0,0 @@ -from django.test import TestCase - -# Create your tests here. diff --git a/equipement/views.py b/equipement/views.py deleted file mode 100644 index 91ea44a..0000000 --- a/equipement/views.py +++ /dev/null @@ -1,3 +0,0 @@ -from django.shortcuts import render - -# Create your views here. diff --git a/evenementiel/settings_dev.py b/evenementiel/settings_dev.py index 3f52bfc..4c798b5 100644 --- a/evenementiel/settings_dev.py +++ b/evenementiel/settings_dev.py @@ -31,6 +31,7 @@ ALLOWED_HOSTS = [] # Application definition INSTALLED_APPS = [ + 'equipment.apps.EquipmentConfig', 'event.apps.EventConfig', 'django.contrib.admin', 'django.contrib.auth', @@ -43,6 +44,7 @@ INSTALLED_APPS = [ ] MIDDLEWARE_CLASSES = [ + 'debug_toolbar.middleware.DebugToolbarMiddleware', 'django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', @@ -131,6 +133,7 @@ USE_TZ = True STATIC_URL = '/static/' + def show_toolbar(request): """ On ne veut pas la vérification de INTERNAL_IPS faite par la debug-toolbar From 3c93b0fa23ad61ec0b5538253a628f1688998781 Mon Sep 17 00:00:00 2001 From: Qwann Date: Fri, 14 Oct 2016 13:02:25 +0200 Subject: [PATCH 3/3] models de equipment done --- equipment/apps.py | 5 +++ equipment/migrations/__init__.py | 0 equipment/models.py | 77 ++++++++++++++++++++++++++++++++ event/migrations/__init__.py | 0 event/models.py | 11 +---- 5 files changed, 84 insertions(+), 9 deletions(-) create mode 100644 equipment/apps.py create mode 100644 equipment/migrations/__init__.py create mode 100644 equipment/models.py create mode 100644 event/migrations/__init__.py diff --git a/equipment/apps.py b/equipment/apps.py new file mode 100644 index 0000000..ac98343 --- /dev/null +++ b/equipment/apps.py @@ -0,0 +1,5 @@ +from django.apps import AppConfig + + +class EquipmentConfig(AppConfig): + name = 'equipment' diff --git a/equipment/migrations/__init__.py b/equipment/migrations/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/equipment/models.py b/equipment/models.py new file mode 100644 index 0000000..d662367 --- /dev/null +++ b/equipment/models.py @@ -0,0 +1,77 @@ +from django.db import models +from django.utils.translation import ugettext_lazy as _ +from event.models import Event, Activity + + +class AbstractEquipment(models.Model): + name = models.CharField( + _("Nom du matériel"), + max_length=200, + ) + stock = models.PositiveSmallIntegerField(_("Quantité disponible")) + description = models.TextField(_("Description")) + activities = models.ManyToManyField( + Activity, + related_name="equipment", + through="EquipmentAttribution", + ) + + class Meta: + verbose_name = _("matériel abstrait") + verbose_name_plural = _("matériels abstraits") + + def __str__(self): + return self.name + + +class Equipment(AbstractEquipment): + class Meta: + verbose_name = _("matériel permanent") + verbose_name_plural = _("matériels permanents") + + +class TemporaryEquipment(AbstractEquipment): + event = models.ForeignKey( + Event, + related_name="specific_equipment", + help_text=_("Évènement pour lequel le matériel " + "a été loué ou empreinté ou apporté"), + ) + + class Meta: + verbose_name = _("matériel temporaire") + verbose_name_plural = _("matériels temporaires") + + +class EquipmentAttribution(models.Model): + equipment = models.ForeignKey(AbstractEquipment) + activity = models.ForeignKey(Activity) + amount = models.PositiveSmallIntegerField(_("Quantité attribuée")) + remarks = models.TextField("Remarques concernant l'attribution") + + class Meta: + verbose_name = _("attribution de matériel") + verbose_name_plural = _("attributions de matériel") + + def __str__(self): + return self.equipment.name +\ + " (" + self.amout + ") " +\ + " -> " + self.activity.get_herited('title') + + +class EquipmentRemark(models.Model): + remark = models.TextField("Remarque sur le matériel") + equipment = models.ForeignKey( + AbstractEquipment, + related_name="remarks", + help_text=_("Matériel concerné par la remarque"), + ) + is_broken = models.BooleanField() + is_lost = models.BooleanField() + + class Meta: + verbose_name = _("remarque sur matériel") + verbose_name_plural = _("remarques sur le matériel") + + def __str__(self): + return self.equipment.name + " : " + self.remark diff --git a/event/migrations/__init__.py b/event/migrations/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/event/models.py b/event/models.py index 2d9d56a..87766e4 100644 --- a/event/models.py +++ b/event/models.py @@ -4,8 +4,6 @@ from django.core import exceptions from django.db import models from re import search as re_search -from equipement.models import AbstractEquipement - def validate_color(value): def is_hex_color(s): @@ -159,17 +157,12 @@ class Activity(ActivityTemplate): related_name="in_perm_activities", blank=True, ) - equipement = models.ManyToManyField( - AbstractEquipement, - related_name="activities", - through="EquipementAttribution", - ) def get_herited(self, attrname): attr = super(Activity, self).__getattribute__(attrname) if (attrname == 'parent' or attrname == 'staff' - or attrname == 'equipement'): + or attrname == 'equipment'): return attr elif (attrname == 'place' or attrname == 'tags'): if attr.exists(): @@ -194,7 +187,7 @@ class Activity(ActivityTemplate): # attr = super(Activity, self).__getattribute__(attrname) # if (attrname == 'parent' # or attrname == 'staff' - # or attrname == 'equipement'): + # or attrname == 'equipment'): # return attr # elif attr is None: # return self.parent.__getattribute__(attrname)