Processing

This commit is contained in:
Matthew Ryan Dillon 2016-02-01 11:21:11 -07:00
parent 94d7143cd2
commit 60601beacb
8 changed files with 207 additions and 86 deletions

View file

32
ccdb/processing/admin.py Normal file
View file

@ -0,0 +1,32 @@
from django.contrib import admin
from .models import ProcessType, Reagent, Flaw
class ProcessTypeAdmin(admin.ModelAdmin):
list_display = ('name', 'code', 'description', 'sort_order')
list_display_links = ('name',)
search_fields = ('name', 'code', 'description')
list_per_page = 25
fields = ('name', 'code', 'description', 'sort_order')
class ReagentAdmin(admin.ModelAdmin):
list_display = ('name', 'code', 'reagent_class', 'sort_order')
list_display_links = ('name',)
search_fields = ('name', 'code', 'reagent_class')
list_per_page = 25
fields = ('name', 'code', 'reagent_class', 'sort_order')
class FlawAdmin(admin.ModelAdmin):
list_display = ('name', 'description', 'sort_order')
list_display_links = ('name',)
search_fields = ('name', 'description')
list_per_page = 25
fields = ('name', 'description')
admin.site.register(ProcessType, ProcessTypeAdmin)
admin.site.register(Reagent, ReagentAdmin)
admin.site.register(Flaw, FlawAdmin)

View file

@ -0,0 +1,92 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import migrations, models
import autoslug.fields
class Migration(migrations.Migration):
dependencies = [
('misc', '0001_initial'),
]
operations = [
migrations.CreateModel(
name='Flaw',
fields=[
('id', models.AutoField(primary_key=True, auto_created=True, verbose_name='ID', serialize=False)),
('name', models.CharField(max_length=200)),
('description', models.CharField(blank=True, max_length=255)),
('sort_order', models.IntegerField(blank=True, null=True)),
('slug', autoslug.fields.AutoSlugField(populate_from='name', editable=False)),
],
options={
'ordering': ['sort_order'],
},
),
migrations.CreateModel(
name='Processing',
fields=[
('id', models.AutoField(primary_key=True, auto_created=True, verbose_name='ID', serialize=False)),
('container_label', models.CharField(max_length=50)),
('process_date', models.DateField(blank=True, null=True)),
('process_time', models.TimeField(blank=True, null=True)),
('reagent_volume', models.FloatField(blank=True, null=True)),
('minutes_in_reagent', models.IntegerField(blank=True, null=True)),
('container', models.ForeignKey(to='misc.Container')),
('flaw', models.ForeignKey(to='processing.Flaw', blank=True, null=True)),
('measurement_unit', models.ForeignKey(to='misc.MeasurementUnit', blank=True, null=True)),
],
),
migrations.CreateModel(
name='ProcessType',
fields=[
('id', models.AutoField(primary_key=True, auto_created=True, verbose_name='ID', serialize=False)),
('name', models.CharField(max_length=100)),
('code', models.CharField(blank=True, max_length=10)),
('description', models.CharField(blank=True, max_length=255)),
('sort_order', models.IntegerField(blank=True, null=True)),
('slug', autoslug.fields.AutoSlugField(populate_from='name', editable=False)),
],
options={
'ordering': ['sort_order'],
},
),
migrations.CreateModel(
name='Reagent',
fields=[
('id', models.AutoField(primary_key=True, auto_created=True, verbose_name='ID', serialize=False)),
('name', models.CharField(max_length=100)),
('code', models.CharField(blank=True, max_length=10)),
('reagent_class', models.CharField(blank=True, max_length=50)),
('sort_order', models.IntegerField(blank=True, null=True)),
('slug', autoslug.fields.AutoSlugField(populate_from='name', editable=False)),
],
options={
'ordering': ['sort_order'],
},
),
migrations.AlterUniqueTogether(
name='reagent',
unique_together=set([('name', 'code')]),
),
migrations.AlterUniqueTogether(
name='processtype',
unique_together=set([('name', 'code')]),
),
migrations.AddField(
model_name='processing',
name='process_type',
field=models.ForeignKey(to='processing.ProcessType'),
),
migrations.AddField(
model_name='processing',
name='reagent',
field=models.ForeignKey(to='processing.Reagent', blank=True, null=True),
),
migrations.AlterUniqueTogether(
name='processing',
unique_together=set([('process_type', 'container', 'container_label', 'process_date', 'process_time', 'reagent')]),
),
]

View file

66
ccdb/processing/models.py Normal file
View file

@ -0,0 +1,66 @@
from django.db import models
from autoslug import AutoSlugField
class ProcessType(models.Model):
name = models.CharField(max_length=100)
code = models.CharField(max_length=10, 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 Reagent(models.Model):
name = models.CharField(max_length=100)
code = models.CharField(max_length=10, blank=True)
reagent_class = models.CharField(max_length=50, 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 Flaw(models.Model):
name = models.CharField(max_length=200)
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:
ordering = ['sort_order']
class Processing(models.Model):
process_type = models.ForeignKey(ProcessType)
container = models.ForeignKey('misc.Container')
container_label = models.CharField(max_length=50)
process_date = models.DateField(blank=True, null=True)
process_time = models.TimeField(blank=True, null=True)
reagent = models.ForeignKey(Reagent, blank=True, null=True)
reagent_volume = models.FloatField(blank=True, null=True)
measurement_unit = models.ForeignKey('misc.MeasurementUnit', blank=True, null=True)
minutes_in_reagent = models.IntegerField(blank=True, null=True)
flaw = models.ForeignKey(Flaw, blank=True, null=True)
def __str__(self):
return "{process_date} {process_type} {container_label}".format(**self)
class Meta:
unique_together = ('process_type', 'container', 'container_label',
'process_date', 'process_time', 'reagent')