premier jet models equipement
This commit is contained in:
parent
6365704d2d
commit
dc8fc77130
7 changed files with 94 additions and 1 deletions
0
equipement/__init__.py
Normal file
0
equipement/__init__.py
Normal file
3
equipement/admin.py
Normal file
3
equipement/admin.py
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
from django.contrib import admin
|
||||||
|
|
||||||
|
# Register your models here.
|
5
equipement/apps.py
Normal file
5
equipement/apps.py
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
from django.apps import AppConfig
|
||||||
|
|
||||||
|
|
||||||
|
class EquipementConfig(AppConfig):
|
||||||
|
name = 'equipement'
|
73
equipement/models.py
Normal file
73
equipement/models.py
Normal file
|
@ -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
|
3
equipement/tests.py
Normal file
3
equipement/tests.py
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
from django.test import TestCase
|
||||||
|
|
||||||
|
# Create your tests here.
|
3
equipement/views.py
Normal file
3
equipement/views.py
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
from django.shortcuts import render
|
||||||
|
|
||||||
|
# Create your views here.
|
|
@ -4,6 +4,8 @@ from django.core import exceptions
|
||||||
from django.db import models
|
from django.db import models
|
||||||
from re import search as re_search
|
from re import search as re_search
|
||||||
|
|
||||||
|
from equipement.models import AbstractEquipement
|
||||||
|
|
||||||
|
|
||||||
def validate_color(value):
|
def validate_color(value):
|
||||||
def is_hex_color(s):
|
def is_hex_color(s):
|
||||||
|
@ -157,7 +159,11 @@ class Activity(ActivityTemplate):
|
||||||
related_name="in_perm_activities",
|
related_name="in_perm_activities",
|
||||||
blank=True,
|
blank=True,
|
||||||
)
|
)
|
||||||
# equipement = models.ManyToManyField(Equipement)
|
equipement = models.ManyToManyField(
|
||||||
|
AbstractEquipement,
|
||||||
|
related_name="activities",
|
||||||
|
through="EquipementAttribution",
|
||||||
|
)
|
||||||
|
|
||||||
def get_herited(self, attrname):
|
def get_herited(self, attrname):
|
||||||
attr = super(Activity, self).__getattribute__(attrname)
|
attr = super(Activity, self).__getattribute__(attrname)
|
||||||
|
|
Loading…
Reference in a new issue