premier jet models equipement

This commit is contained in:
Qwann 2016-10-13 16:24:19 +02:00
parent 6365704d2d
commit dc8fc77130
7 changed files with 94 additions and 1 deletions

0
equipement/__init__.py Normal file
View file

3
equipement/admin.py Normal file
View file

@ -0,0 +1,3 @@
from django.contrib import admin
# Register your models here.

5
equipement/apps.py Normal file
View file

@ -0,0 +1,5 @@
from django.apps import AppConfig
class EquipementConfig(AppConfig):
name = 'equipement'

73
equipement/models.py Normal file
View 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
View file

@ -0,0 +1,3 @@
from django.test import TestCase
# Create your tests here.

3
equipement/views.py Normal file
View file

@ -0,0 +1,3 @@
from django.shortcuts import render
# Create your views here.

View file

@ -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)