Misc models
- measurement units - measurement types - containers - materials - colors
This commit is contained in:
parent
071126a68b
commit
31a9f87848
9 changed files with 245 additions and 128 deletions
0
ccdb/misc/__init__.py
Normal file
0
ccdb/misc/__init__.py
Normal file
9
ccdb/misc/admin.py
Normal file
9
ccdb/misc/admin.py
Normal 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)
|
116
ccdb/misc/migrations/0001_initial.py
Normal file
116
ccdb/misc/migrations/0001_initial.py
Normal 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')]),
|
||||
),
|
||||
]
|
0
ccdb/misc/migrations/__init__.py
Normal file
0
ccdb/misc/migrations/__init__.py
Normal file
84
ccdb/misc/models.py
Normal file
84
ccdb/misc/models.py
Normal 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']
|
Loading…
Add table
Add a link
Reference in a new issue