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']

View file

@ -1,6 +1,4 @@
from django.db import models
from django.utils.translation import ugettext_lazy as _
from django.core.urlresolvers import reverse
from autoslug import AutoSlugField

View file

@ -7,6 +7,8 @@ import requests
from ccdb.utils.data_import import setup_sqlite
from ccdb.projects.models import Project, Grant, GrantReport
from ccdb.misc.models import MeasurementUnit, MeasurementType, Container, \
Material, Color
class Command(BaseCommand):
@ -66,8 +68,39 @@ def _import_data():
FROM tbl_lu_grant_reports;
'''
for r in c.execute(q):
g = Grant.objects.get(id=r[0])
gr = GrantReport(grant=g, title=r[1], report_type=r[2],
gr = GrantReport(grant_id=r[0], title=r[1], report_type=r[2],
description=r[3], due_date=r[8], submitted_date=r[5],
attachment=r[6], sort_order=r[7])
gr.save()
# Measurement Units
for r in c.execute('SELECT * FROM tbl_lu_measurement_units;'):
mu = MeasurementUnit(id=r[0], name=r[1], code=r[2],
unit_class=r[3], description=r[4], sort_order=r[5])
mu.save()
# Measurement Types
for r in c.execute('SELECT * FROM tbl_lu_measurement_types;'):
mt = MeasurementType(id=r[0], name=r[1], code=r[2],
measurement_type_class=r[3], description=r[4],
default_measurement_unit_id=r[5], sort_order=r[6])
mt.save()
# Materials
for r in c.execute('SELECT * FROM tbl_lu_materials;'):
m = Material(id=r[0], name=r[1], code=r[2], material_class=r[3],
description=r[4], sort_order=r[5])
m.save()
# Colors
for r in c.execute('SELECT * FROM tbl_lu_colors;'):
cl = Color(id=r[0], name=r[1], code=r[2],
color_number=r[3], sort_order=r[4])
cl.save()
# Containers
for r in c.execute('SELECT * FROM tbl_lu_containers;'):
cl = Container(id=r[0], name=r[1], code=r[2], application=r[3],
color_id=r[4], material_id=r[5], volume=r[6],
measurement_unit_id=r[7], sort_order=r[8])
cl.save()