Processing
This commit is contained in:
parent
94d7143cd2
commit
60601beacb
8 changed files with 207 additions and 86 deletions
0
ccdb/processing/__init__.py
Normal file
0
ccdb/processing/__init__.py
Normal file
32
ccdb/processing/admin.py
Normal file
32
ccdb/processing/admin.py
Normal 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)
|
92
ccdb/processing/migrations/0001_initial.py
Normal file
92
ccdb/processing/migrations/0001_initial.py
Normal 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')]),
|
||||
),
|
||||
]
|
0
ccdb/processing/migrations/__init__.py
Normal file
0
ccdb/processing/migrations/__init__.py
Normal file
66
ccdb/processing/models.py
Normal file
66
ccdb/processing/models.py
Normal 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')
|
Loading…
Add table
Add a link
Reference in a new issue