Misc models

- measurement units
- measurement types
- containers
- materials
- colors
This commit is contained in:
Matthew Ryan Dillon 2016-01-28 12:51:55 -07:00
parent 071126a68b
commit 31a9f87848
9 changed files with 245 additions and 128 deletions

0
ccdb/misc/__init__.py Normal file
View file

9
ccdb/misc/admin.py Normal file
View file

@ -0,0 +1,9 @@
from django.contrib import admin
from .models import MeasurementUnit, MeasurementType, Container, Material, Color
admin.site.register(MeasurementUnit)
admin.site.register(MeasurementType)
admin.site.register(Container)
admin.site.register(Material)
admin.site.register(Color)

View file

@ -0,0 +1,116 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import migrations, models
import autoslug.fields
class Migration(migrations.Migration):
dependencies = [
]
operations = [
migrations.CreateModel(
name='Color',
fields=[
('id', models.AutoField(primary_key=True, serialize=False, auto_created=True, verbose_name='ID')),
('name', models.CharField(max_length=50)),
('code', models.CharField(blank=True, max_length=10)),
('color_number', models.FloatField(null=True, blank=True)),
('sort_order', models.IntegerField(null=True, blank=True)),
('slug', autoslug.fields.AutoSlugField(editable=False, populate_from='name')),
],
options={
'ordering': ['sort_order'],
},
),
migrations.CreateModel(
name='Container',
fields=[
('id', models.AutoField(primary_key=True, serialize=False, auto_created=True, verbose_name='ID')),
('name', models.CharField(max_length=100)),
('code', models.CharField(blank=True, max_length=10)),
('application', models.CharField(blank=True, max_length=50)),
('volume', models.FloatField(null=True, blank=True)),
('sort_order', models.IntegerField(null=True, blank=True)),
('slug', autoslug.fields.AutoSlugField(editable=False, populate_from='name')),
('color', models.ForeignKey(null=True, to='misc.Color', blank=True)),
],
options={
'ordering': ['sort_order'],
},
),
migrations.CreateModel(
name='Material',
fields=[
('id', models.AutoField(primary_key=True, serialize=False, auto_created=True, verbose_name='ID')),
('name', models.CharField(max_length=100)),
('code', models.CharField(blank=True, max_length=10)),
('material_class', models.CharField(blank=True, max_length=50)),
('description', models.CharField(blank=True, max_length=255)),
('sort_order', models.IntegerField(null=True, blank=True)),
('slug', autoslug.fields.AutoSlugField(editable=False, populate_from='name')),
],
options={
'ordering': ['sort_order'],
},
),
migrations.CreateModel(
name='MeasurementType',
fields=[
('id', models.AutoField(primary_key=True, serialize=False, auto_created=True, verbose_name='ID')),
('name', models.CharField(max_length=100)),
('code', models.CharField(blank=True, max_length=10)),
('measurement_type_class', models.CharField(blank=True, max_length=50)),
('description', models.CharField(blank=True, max_length=255)),
('sort_order', models.IntegerField(null=True, blank=True)),
('slug', autoslug.fields.AutoSlugField(editable=False, populate_from='name')),
],
options={
'ordering': ['sort_order'],
},
),
migrations.CreateModel(
name='MeasurementUnit',
fields=[
('id', models.AutoField(primary_key=True, serialize=False, auto_created=True, verbose_name='ID')),
('name', models.CharField(max_length=100)),
('code', models.CharField(max_length=25)),
('unit_class', models.CharField(blank=True, max_length=50)),
('description', models.CharField(blank=True, max_length=255)),
('sort_order', models.IntegerField(null=True, blank=True)),
('slug', autoslug.fields.AutoSlugField(editable=False, populate_from='name')),
],
options={
'ordering': ['sort_order'],
},
),
migrations.AlterUniqueTogether(
name='measurementunit',
unique_together=set([('name', 'code')]),
),
migrations.AddField(
model_name='measurementtype',
name='default_measurement_unit',
field=models.ForeignKey(null=True, to='misc.MeasurementUnit', blank=True),
),
migrations.AlterUniqueTogether(
name='material',
unique_together=set([('name', 'code')]),
),
migrations.AddField(
model_name='container',
name='material',
field=models.ForeignKey(null=True, to='misc.Material', blank=True),
),
migrations.AddField(
model_name='container',
name='measurement_unit',
field=models.ForeignKey(null=True, to='misc.MeasurementUnit', blank=True),
),
migrations.AlterUniqueTogether(
name='color',
unique_together=set([('name', 'code', 'color_number')]),
),
]

View file

84
ccdb/misc/models.py Normal file
View file

@ -0,0 +1,84 @@
from django.db import models
from autoslug import AutoSlugField
class MeasurementUnit(models.Model):
name = models.CharField(max_length=100)
code = models.CharField(max_length=25)
unit_class = models.CharField(max_length=50, blank=True)
description = models.CharField(max_length=255, blank=True)
sort_order = models.IntegerField(blank=True, null=True)
slug = AutoSlugField(populate_from='name')
def __str__(self):
return self.name
class Meta:
unique_together = ('name', 'code')
ordering = ['sort_order']
class MeasurementType(models.Model):
name = models.CharField(max_length=100)
code = models.CharField(max_length=10, blank=True)
measurement_type_class = models.CharField(max_length=50, blank=True)
description = models.CharField(max_length=255, blank=True)
default_measurement_unit = models.ForeignKey('MeasurementUnit', blank=True, null=True)
sort_order = models.IntegerField(blank=True, null=True)
slug = AutoSlugField(populate_from='name')
def __str__(self):
return self.name
class Meta:
ordering = ['sort_order']
class Material(models.Model):
name = models.CharField(max_length=100)
code = models.CharField(max_length=10, blank=True)
material_class = models.CharField(max_length=50, blank=True)
description = models.CharField(max_length=255, blank=True)
sort_order = models.IntegerField(blank=True, null=True)
slug = AutoSlugField(populate_from='name')
def __str__(self):
return self.name
class Meta:
unique_together = ('name', 'code')
ordering = ['sort_order']
class Color(models.Model):
name = models.CharField(max_length=50)
code = models.CharField(max_length=10, blank=True)
color_number = models.FloatField(blank=True, null=True)
sort_order = models.IntegerField(blank=True, null=True)
slug = AutoSlugField(populate_from='name')
def __str__(self):
return self.name
class Meta:
unique_together = ('name', 'code', 'color_number')
ordering = ['sort_order']
class Container(models.Model):
name = models.CharField(max_length=100)
code = models.CharField(max_length=10, blank=True)
application = models.CharField(max_length=50, blank=True)
color = models.ForeignKey(Color, blank=True, null=True)
material = models.ForeignKey(Material, blank=True, null=True)
volume = models.FloatField(blank=True, null=True)
measurement_unit = models.ForeignKey(MeasurementUnit, blank=True, null=True)
sort_order = models.IntegerField(blank=True, null=True)
slug = AutoSlugField(populate_from='name')
def __str__(self):
return self.name
class Meta:
ordering = ['sort_order']