owner+pole+category-tags

This commit is contained in:
Qwann 2018-08-06 17:06:38 +02:00
parent ecdcc0e949
commit 7ab4dcede0
4 changed files with 112 additions and 46 deletions

View file

@ -1,7 +1,7 @@
from django.contrib import admin from django.contrib import admin
from django import forms from django import forms
from .models import Equipment, EquipmentRemark, EquipmentRevision from .models import Equipment, EquipmentRemark, EquipmentRevision, EquipmentOwner, EquipmentPole, EquipmentCategory
from .fields import IdField, IdWidget from .fields import IdField, IdWidget
from shared.admin import admin_site from shared.admin import admin_site
@ -34,12 +34,19 @@ class IdFormset(forms.models.BaseInlineFormSet):
class EquipmentRevisionExtraInline(admin.TabularInline): class EquipmentRevisionExtraInline(admin.TabularInline):
model = EquipmentRevision model = EquipmentRevision
extra = 0 extra = 0
form = IdForm
formset = IdFormset
class EquipmentRemarkExtraInline(admin.TabularInline): class EquipmentRemarkExtraInline(admin.TabularInline):
model = EquipmentRemark model = EquipmentRemark
extra = 0 extra = 0
form = IdForm
formset = IdFormset
class CharFieldModelAdmin(admin.ModelAdmin):
list_display = ['name']
ordering = ['name']
class EquipmentAdmin(admin.ModelAdmin): class EquipmentAdmin(admin.ModelAdmin):
list_display = ['name', 'stock'] list_display = ['name', 'stock']
@ -48,4 +55,7 @@ class EquipmentAdmin(admin.ModelAdmin):
admin_site.register(Equipment, EquipmentAdmin) admin_site.register(Equipment, EquipmentAdmin)
admin_site.register(EquipmentOwner, CharFieldModelAdmin)
admin_site.register(EquipmentPole, CharFieldModelAdmin)
admin_site.register(EquipmentCategory, CharFieldModelAdmin)
admin.site.register(Equipment, EquipmentAdmin) admin.site.register(Equipment, EquipmentAdmin)

View file

@ -1,12 +1,10 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# Generated by Django 1.11.15 on 2018-08-06 07:51 # Generated by Django 1.11.11 on 2018-08-06 15:04
from __future__ import unicode_literals from __future__ import unicode_literals
import datetime import datetime
from django.db import migrations, models from django.db import migrations, models
import django.db.models.deletion import django.db.models.deletion
import equipment.fields
import taggit.managers
class Migration(migrations.Migration): class Migration(migrations.Migration):
@ -14,7 +12,6 @@ class Migration(migrations.Migration):
initial = True initial = True
dependencies = [ dependencies = [
('taggit', '0002_auto_20150616_2121'),
('event', '0001_initial'), ('event', '0001_initial'),
] ]
@ -46,12 +43,45 @@ class Migration(migrations.Migration):
'verbose_name_plural': 'attributions de matériel', 'verbose_name_plural': 'attributions de matériel',
}, },
), ),
migrations.CreateModel(
name='EquipmentCategory',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('name', models.CharField(max_length=200, verbose_name='nom')),
],
options={
'verbose_name': 'pôle',
'verbose_name_plural': 'pôles',
},
),
migrations.CreateModel(
name='EquipmentOwner',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('name', models.CharField(max_length=200, verbose_name='nom')),
],
options={
'verbose_name': 'propriétaire de matériel',
'verbose_name_plural': 'propriétaires de matériel',
},
),
migrations.CreateModel(
name='EquipmentPole',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('name', models.CharField(max_length=200, verbose_name='nom')),
],
options={
'verbose_name': 'catégorie',
'verbose_name_plural': 'catégories',
},
),
migrations.CreateModel( migrations.CreateModel(
name='EquipmentRemark', name='EquipmentRemark',
fields=[ fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('remark', models.TextField(verbose_name='remarque sur le matériel')), ('remark', models.TextField(verbose_name='remarque sur le matériel')),
('ids', equipment.fields.IdField()), ('ide', models.PositiveSmallIntegerField(verbose_name='id')),
('is_broken', models.BooleanField()), ('is_broken', models.BooleanField()),
('is_lost', models.BooleanField()), ('is_lost', models.BooleanField()),
('equipment', models.ForeignKey(help_text='Matériel concerné par la remarque', on_delete=django.db.models.deletion.CASCADE, related_name='remarks', to='equipment.Equipment')), ('equipment', models.ForeignKey(help_text='Matériel concerné par la remarque', on_delete=django.db.models.deletion.CASCADE, related_name='remarks', to='equipment.Equipment')),
@ -67,7 +97,7 @@ class Migration(migrations.Migration):
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('date', models.DateField(default=datetime.date.today, verbose_name='date')), ('date', models.DateField(default=datetime.date.today, verbose_name='date')),
('remark', models.TextField(verbose_name='remarque sur la révision')), ('remark', models.TextField(verbose_name='remarque sur la révision')),
('ids', equipment.fields.IdField()), ('ide', models.PositiveSmallIntegerField(verbose_name='id')),
('equipment', models.ForeignKey(help_text='Matériel concerné par les révisions', on_delete=django.db.models.deletion.CASCADE, related_name='revisions', to='equipment.Equipment')), ('equipment', models.ForeignKey(help_text='Matériel concerné par les révisions', on_delete=django.db.models.deletion.CASCADE, related_name='revisions', to='equipment.Equipment')),
], ],
options={ options={
@ -80,6 +110,11 @@ class Migration(migrations.Migration):
name='activities', name='activities',
field=models.ManyToManyField(related_name='equipment', through='equipment.EquipmentAttribution', to='event.Activity'), field=models.ManyToManyField(related_name='equipment', through='equipment.EquipmentAttribution', to='event.Activity'),
), ),
migrations.AddField(
model_name='equipment',
name='category',
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='equipment.EquipmentCategory'),
),
migrations.AddField( migrations.AddField(
model_name='equipment', model_name='equipment',
name='event', name='event',
@ -87,7 +122,12 @@ class Migration(migrations.Migration):
), ),
migrations.AddField( migrations.AddField(
model_name='equipment', model_name='equipment',
name='tags', name='owner',
field=taggit.managers.TaggableManager(help_text='A comma-separated list of tags.', through='taggit.TaggedItem', to='taggit.Tag', verbose_name='Tags'), field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='equipment.EquipmentOwner'),
),
migrations.AddField(
model_name='equipment',
name='pole',
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='equipment.EquipmentPole'),
), ),
] ]

View file

@ -1,35 +0,0 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.11.11 on 2018-08-06 14:03
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('equipment', '0001_initial'),
]
operations = [
migrations.RemoveField(
model_name='equipmentremark',
name='ids',
),
migrations.RemoveField(
model_name='equipmentrevision',
name='ids',
),
migrations.AddField(
model_name='equipmentremark',
name='ide',
field=models.PositiveSmallIntegerField(default=0, verbose_name='id'),
preserve_default=False,
),
migrations.AddField(
model_name='equipmentrevision',
name='ide',
field=models.PositiveSmallIntegerField(default=0, verbose_name='id'),
preserve_default=False,
),
]

View file

@ -9,6 +9,48 @@ from taggit.managers import TaggableManager
from datetime import date from datetime import date
class EquipmentOwner(models.Model):
name = models.CharField(
_("nom"),
max_length=200,
)
class Meta:
verbose_name = _("propriétaire de matériel")
verbose_name_plural = _("propriétaires de matériel")
def __str__(self):
return self.name
class EquipmentPole(models.Model):
name = models.CharField(
_("nom"),
max_length=200,
)
class Meta:
verbose_name = _("catégorie")
verbose_name_plural = _("catégories")
def __str__(self):
return self.name
class EquipmentCategory(models.Model):
name = models.CharField(
_("nom"),
max_length=200,
)
class Meta:
verbose_name = _("pôle")
verbose_name_plural = _("pôles")
def __str__(self):
return self.name
class Equipment(EventSpecificMixin, models.Model): class Equipment(EventSpecificMixin, models.Model):
name = models.CharField( name = models.CharField(
_("nom du matériel"), _("nom du matériel"),
@ -21,8 +63,17 @@ class Equipment(EventSpecificMixin, models.Model):
related_name="equipment", related_name="equipment",
through="EquipmentAttribution", through="EquipmentAttribution",
) )
owner = models.ForeignKey(
tags = TaggableManager() EquipmentOwner,
blank=True,
null=True,
)
pole = models.ForeignKey(
EquipmentPole,
)
category = models.ForeignKey(
EquipmentCategory,
)
class Meta: class Meta:
verbose_name = _("matériel") verbose_name = _("matériel")