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']
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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()
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue