Location models
- region - site - municipal location - study location - storage location
This commit is contained in:
		
							parent
							
								
									31a9f87848
								
							
						
					
					
						commit
						3ee15528e8
					
				
					 8 changed files with 245 additions and 78 deletions
				
			
		
							
								
								
									
										0
									
								
								ccdb/locations/__init__.py
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								ccdb/locations/__init__.py
									
										
									
									
									
										Normal file
									
								
							
							
								
								
									
										11
									
								
								ccdb/locations/admin.py
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								ccdb/locations/admin.py
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,11 @@
 | 
			
		|||
from django.contrib import admin
 | 
			
		||||
 | 
			
		||||
from .models import Region, Site, MunicipalLocation, \
 | 
			
		||||
    StudyLocation, StorageLocation
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
admin.site.register(Region)
 | 
			
		||||
admin.site.register(Site)
 | 
			
		||||
admin.site.register(MunicipalLocation)
 | 
			
		||||
admin.site.register(StudyLocation)
 | 
			
		||||
admin.site.register(StorageLocation)
 | 
			
		||||
							
								
								
									
										105
									
								
								ccdb/locations/migrations/0001_initial.py
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										105
									
								
								ccdb/locations/migrations/0001_initial.py
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,105 @@
 | 
			
		|||
# -*- 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='MunicipalLocation',
 | 
			
		||||
            fields=[
 | 
			
		||||
                ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
 | 
			
		||||
                ('name', models.CharField(max_length=100)),
 | 
			
		||||
                ('code', models.CharField(max_length=10, blank=True)),
 | 
			
		||||
                ('municipal_location_type', models.CharField(max_length=50, blank=True)),
 | 
			
		||||
                ('description', models.CharField(max_length=255, blank=True)),
 | 
			
		||||
                ('sort_order', models.IntegerField(null=True, blank=True)),
 | 
			
		||||
                ('slug', autoslug.fields.AutoSlugField(populate_from='name', editable=False)),
 | 
			
		||||
            ],
 | 
			
		||||
            options={
 | 
			
		||||
                'ordering': ['sort_order'],
 | 
			
		||||
            },
 | 
			
		||||
        ),
 | 
			
		||||
        migrations.CreateModel(
 | 
			
		||||
            name='Region',
 | 
			
		||||
            fields=[
 | 
			
		||||
                ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
 | 
			
		||||
                ('name', models.CharField(max_length=100)),
 | 
			
		||||
                ('code', models.CharField(max_length=10, blank=True)),
 | 
			
		||||
                ('sort_order', models.IntegerField(null=True, blank=True)),
 | 
			
		||||
                ('slug', autoslug.fields.AutoSlugField(populate_from='name', editable=False)),
 | 
			
		||||
            ],
 | 
			
		||||
            options={
 | 
			
		||||
                'ordering': ['sort_order'],
 | 
			
		||||
            },
 | 
			
		||||
        ),
 | 
			
		||||
        migrations.CreateModel(
 | 
			
		||||
            name='Site',
 | 
			
		||||
            fields=[
 | 
			
		||||
                ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
 | 
			
		||||
                ('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(null=True, blank=True)),
 | 
			
		||||
                ('slug', autoslug.fields.AutoSlugField(populate_from='name', editable=False)),
 | 
			
		||||
                ('region', models.ForeignKey(to='locations.Region', null=True, blank=True)),
 | 
			
		||||
            ],
 | 
			
		||||
            options={
 | 
			
		||||
                'ordering': ['sort_order'],
 | 
			
		||||
            },
 | 
			
		||||
        ),
 | 
			
		||||
        migrations.CreateModel(
 | 
			
		||||
            name='StorageLocation',
 | 
			
		||||
            fields=[
 | 
			
		||||
                ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
 | 
			
		||||
                ('facility', models.CharField(max_length=100)),
 | 
			
		||||
                ('building', models.CharField(max_length=100)),
 | 
			
		||||
                ('room', models.CharField(max_length=50, blank=True)),
 | 
			
		||||
                ('freezer', models.CharField(max_length=50, blank=True)),
 | 
			
		||||
                ('temp_c', models.IntegerField(null=True, blank=True)),
 | 
			
		||||
                ('description', models.CharField(max_length=255, blank=True)),
 | 
			
		||||
                ('sort_order', models.IntegerField(null=True, blank=True)),
 | 
			
		||||
            ],
 | 
			
		||||
            options={
 | 
			
		||||
                'ordering': ['sort_order'],
 | 
			
		||||
            },
 | 
			
		||||
        ),
 | 
			
		||||
        migrations.CreateModel(
 | 
			
		||||
            name='StudyLocation',
 | 
			
		||||
            fields=[
 | 
			
		||||
                ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
 | 
			
		||||
                ('name', models.CharField(max_length=100)),
 | 
			
		||||
                ('code', models.CharField(max_length=10, blank=True)),
 | 
			
		||||
                ('study_location_type', models.CharField(max_length=50, blank=True)),
 | 
			
		||||
                ('treatment_type', models.CharField(max_length=100, blank=True)),
 | 
			
		||||
                ('collecting_location', models.BooleanField(default=False)),
 | 
			
		||||
                ('description', models.CharField(max_length=255, blank=True)),
 | 
			
		||||
                ('sort_order', models.IntegerField(null=True, blank=True)),
 | 
			
		||||
                ('slug', autoslug.fields.AutoSlugField(populate_from='name', editable=False)),
 | 
			
		||||
                ('municipal_location', models.ForeignKey(to='locations.MunicipalLocation', null=True, blank=True)),
 | 
			
		||||
                ('site', models.ForeignKey(to='locations.Site', null=True, blank=True)),
 | 
			
		||||
            ],
 | 
			
		||||
            options={
 | 
			
		||||
                'ordering': ['sort_order'],
 | 
			
		||||
            },
 | 
			
		||||
        ),
 | 
			
		||||
        migrations.AlterUniqueTogether(
 | 
			
		||||
            name='region',
 | 
			
		||||
            unique_together=set([('name', 'code')]),
 | 
			
		||||
        ),
 | 
			
		||||
        migrations.AddField(
 | 
			
		||||
            model_name='municipallocation',
 | 
			
		||||
            name='site',
 | 
			
		||||
            field=models.ForeignKey(to='locations.Site'),
 | 
			
		||||
        ),
 | 
			
		||||
        migrations.AlterUniqueTogether(
 | 
			
		||||
            name='studylocation',
 | 
			
		||||
            unique_together=set([('site', 'name')]),
 | 
			
		||||
        ),
 | 
			
		||||
    ]
 | 
			
		||||
							
								
								
									
										0
									
								
								ccdb/locations/migrations/__init__.py
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								ccdb/locations/migrations/__init__.py
									
										
									
									
									
										Normal file
									
								
							
							
								
								
									
										94
									
								
								ccdb/locations/models.py
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										94
									
								
								ccdb/locations/models.py
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,94 @@
 | 
			
		|||
from django.db import models
 | 
			
		||||
 | 
			
		||||
from autoslug import AutoSlugField
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class Region(models.Model):
 | 
			
		||||
    name = models.CharField(max_length=100)
 | 
			
		||||
    code = models.CharField(max_length=10, 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 Site(models.Model):
 | 
			
		||||
    region = models.ForeignKey(Region, blank=True, null=True)
 | 
			
		||||
    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:
 | 
			
		||||
        ordering = ['sort_order']
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class MunicipalLocation(models.Model):
 | 
			
		||||
    site = models.ForeignKey(Site)
 | 
			
		||||
    name = models.CharField(max_length=100)
 | 
			
		||||
    code = models.CharField(max_length=10, blank=True)
 | 
			
		||||
    municipal_location_type = 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:
 | 
			
		||||
        ordering = ['sort_order']
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class StudyLocation(models.Model):
 | 
			
		||||
    site = models.ForeignKey(Site, blank=True, null=True)
 | 
			
		||||
    name = models.CharField(max_length=100)
 | 
			
		||||
    code = models.CharField(max_length=10, blank=True)
 | 
			
		||||
    study_location_type = models.CharField(max_length=50, blank=True)
 | 
			
		||||
    treatment_type = models.CharField(max_length=100, blank=True)
 | 
			
		||||
    municipal_location = models.ForeignKey(MunicipalLocation,
 | 
			
		||||
        blank=True, null=True)
 | 
			
		||||
    collecting_location = models.BooleanField(default=False)
 | 
			
		||||
    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 = ('site', 'name')
 | 
			
		||||
        ordering = ['sort_order']
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class StorageLocation(models.Model):
 | 
			
		||||
    facility = models.CharField(max_length=100)
 | 
			
		||||
    building = models.CharField(max_length=100)
 | 
			
		||||
    room = models.CharField(max_length=50, blank=True)
 | 
			
		||||
    freezer = models.CharField(max_length=50, blank=True)
 | 
			
		||||
    temp_c = models.IntegerField(blank=True, null=True)
 | 
			
		||||
    description = models.CharField(max_length=255, blank=True)
 | 
			
		||||
    sort_order = models.IntegerField(blank=True, null=True)
 | 
			
		||||
 | 
			
		||||
    def __str__(self):
 | 
			
		||||
        bldg = "".join(e[0].upper() for e in self.building.split())
 | 
			
		||||
        temp_c = '20'
 | 
			
		||||
        if self.temp_c:
 | 
			
		||||
            temp_c = self.temp_c
 | 
			
		||||
 | 
			
		||||
        freezer = 'No Freezer'
 | 
			
		||||
        if self.freezer:
 | 
			
		||||
            freezer = self.freezer
 | 
			
		||||
 | 
			
		||||
        return " ".join([bldg, str(temp_c)+'C', str(freezer)])
 | 
			
		||||
 | 
			
		||||
    class Meta:
 | 
			
		||||
        ordering = ['sort_order']
 | 
			
		||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue