update models
This commit is contained in:
parent
565739f790
commit
545a7dd50f
2 changed files with 39 additions and 33 deletions
|
@ -1,5 +1,5 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
# Generated by Django 1.9.9 on 2016-08-23 10:10
|
# Generated by Django 1.9.9 on 2016-08-25 11:37
|
||||||
from __future__ import unicode_literals
|
from __future__ import unicode_literals
|
||||||
|
|
||||||
from django.db import migrations, models
|
from django.db import migrations, models
|
||||||
|
@ -15,10 +15,21 @@ class Migration(migrations.Migration):
|
||||||
]
|
]
|
||||||
|
|
||||||
operations = [
|
operations = [
|
||||||
|
migrations.CreateModel(
|
||||||
|
name='Bounds',
|
||||||
|
fields=[
|
||||||
|
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||||
|
('bottom', models.DecimalField(decimal_places=2, max_digits=6, verbose_name='bottom coordinate')),
|
||||||
|
('left', models.DecimalField(decimal_places=2, max_digits=6, verbose_name='left coordinate')),
|
||||||
|
('top', models.DecimalField(decimal_places=2, max_digits=6, verbose_name='top coordinate')),
|
||||||
|
('right', models.DecimalField(decimal_places=2, max_digits=6, verbose_name='right coordinate')),
|
||||||
|
],
|
||||||
|
),
|
||||||
migrations.CreateModel(
|
migrations.CreateModel(
|
||||||
name='MapLevel',
|
name='MapLevel',
|
||||||
fields=[
|
fields=[
|
||||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||||
|
('name', models.CharField(help_text='Usually just an integer (e.g. -1, 0, 1, 2)', max_length=50, unique=True, verbose_name='level name')),
|
||||||
],
|
],
|
||||||
options={
|
options={
|
||||||
'abstract': False,
|
'abstract': False,
|
||||||
|
@ -29,7 +40,9 @@ class Migration(migrations.Migration):
|
||||||
name='MapPackage',
|
name='MapPackage',
|
||||||
fields=[
|
fields=[
|
||||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||||
('extends', models.ForeignKey(null=True, on_delete=django.db.models.deletion.PROTECT, related_name='extended_by', to='mapdata.MapPackage', verbose_name='extends map package')),
|
('name', models.CharField(help_text='e.g. de.c3nav.33c3.base', max_length=50, unique=True, verbose_name='package identifier')),
|
||||||
|
('map', models.CharField(help_text='e.g. de.c3nav.33c3', max_length=50, verbose_name='map identifier')),
|
||||||
|
('bounds', models.OneToOneField(null=True, on_delete=django.db.models.deletion.PROTECT, to='mapdata.Bounds', verbose_name='bounds')),
|
||||||
],
|
],
|
||||||
options={
|
options={
|
||||||
'abstract': False,
|
'abstract': False,
|
||||||
|
@ -45,27 +58,22 @@ class Migration(migrations.Migration):
|
||||||
('master', models.ForeignKey(editable=False, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='translations', to='mapdata.MapPackage')),
|
('master', models.ForeignKey(editable=False, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='translations', to='mapdata.MapPackage')),
|
||||||
],
|
],
|
||||||
options={
|
options={
|
||||||
'managed': True,
|
|
||||||
'default_permissions': (),
|
|
||||||
'db_tablespace': '',
|
'db_tablespace': '',
|
||||||
'verbose_name': 'map package Translation',
|
'verbose_name': 'map package Translation',
|
||||||
|
'managed': True,
|
||||||
'db_table': 'mapdata_mappackage_translation',
|
'db_table': 'mapdata_mappackage_translation',
|
||||||
|
'default_permissions': (),
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
migrations.CreateModel(
|
migrations.CreateModel(
|
||||||
name='MapSource',
|
name='MapSource',
|
||||||
fields=[
|
fields=[
|
||||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||||
('bottom', models.DecimalField(decimal_places=2, max_digits=6, verbose_name='bottom coordinate')),
|
('name', models.SlugField(unique=True, verbose_name='source name')),
|
||||||
('left', models.DecimalField(decimal_places=2, max_digits=6, verbose_name='left coordinate')),
|
|
||||||
('top', models.DecimalField(decimal_places=2, max_digits=6, verbose_name='top coordinate')),
|
|
||||||
('right', models.DecimalField(decimal_places=2, max_digits=6, verbose_name='right coordinate')),
|
|
||||||
('image', models.FileField(upload_to='mapsources/', verbose_name='source image')),
|
('image', models.FileField(upload_to='mapsources/', verbose_name='source image')),
|
||||||
|
('bounds', models.OneToOneField(on_delete=django.db.models.deletion.PROTECT, to='mapdata.Bounds', verbose_name='bounds')),
|
||||||
('package', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='sources', to='mapdata.MapPackage', verbose_name='map package')),
|
('package', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='sources', to='mapdata.MapPackage', verbose_name='map package')),
|
||||||
],
|
],
|
||||||
options={
|
|
||||||
'abstract': False,
|
|
||||||
},
|
|
||||||
),
|
),
|
||||||
migrations.AddField(
|
migrations.AddField(
|
||||||
model_name='maplevel',
|
model_name='maplevel',
|
||||||
|
|
|
@ -4,15 +4,25 @@ from django.utils.translation import ugettext_lazy as _
|
||||||
from parler.models import TranslatedFields, TranslatableModel
|
from parler.models import TranslatedFields, TranslatableModel
|
||||||
|
|
||||||
|
|
||||||
|
class Bounds(models.Model):
|
||||||
|
bottom = models.DecimalField(_('bottom coordinate'), max_digits=6, decimal_places=2)
|
||||||
|
left = models.DecimalField(_('left coordinate'), max_digits=6, decimal_places=2)
|
||||||
|
top = models.DecimalField(_('top coordinate'), max_digits=6, decimal_places=2)
|
||||||
|
right = models.DecimalField(_('right coordinate'), max_digits=6, decimal_places=2)
|
||||||
|
|
||||||
|
@property
|
||||||
|
def __iter__(self):
|
||||||
|
return iter(((self.bottom, self.left), (self.top, self.right)))
|
||||||
|
|
||||||
|
|
||||||
class MapPackage(TranslatableModel):
|
class MapPackage(TranslatableModel):
|
||||||
"""
|
"""
|
||||||
A c3nav map package
|
A c3nav map package
|
||||||
"""
|
"""
|
||||||
name = models.CharField(_('package identifier'), max_length=50, help_text=_('e.g. de.c3nav.33c3')),
|
name = models.CharField(_('package identifier'), unique=True, max_length=50,
|
||||||
width = models.IntegerField(_('map width'), max_length=50, null=True, help_text='in meters'),
|
help_text=_('e.g. de.c3nav.33c3.base'))
|
||||||
height = models.IntegerField(_('map height'), max_length=50, null=True, help_text='in meters'),
|
map = models.CharField(_('map identifier'), max_length=50, help_text=_('e.g. de.c3nav.33c3'))
|
||||||
extends = models.ForeignKey('self', on_delete=models.PROTECT, null=True, related_name='extended_by',
|
bounds = models.OneToOneField('Bounds', null=True, on_delete=models.PROTECT, verbose_name=_('bounds'))
|
||||||
verbose_name=_('extends map package'))
|
|
||||||
|
|
||||||
translations = TranslatedFields(
|
translations = TranslatedFields(
|
||||||
title=models.CharField(_('package title'), max_length=50),
|
title=models.CharField(_('package title'), max_length=50),
|
||||||
|
@ -23,30 +33,18 @@ class MapLevel(TranslatableModel):
|
||||||
"""
|
"""
|
||||||
A map level (-1, 0, 1, 2…)
|
A map level (-1, 0, 1, 2…)
|
||||||
"""
|
"""
|
||||||
name = models.CharField(_('level name'), max_length=50, help_text=_('Usually just an integer (e.g. -1, 0, 1, 2)')),
|
name = models.CharField(_('level name'), max_length=50, unique=True,
|
||||||
|
help_text=_('Usually just an integer (e.g. -1, 0, 1, 2)'))
|
||||||
package = models.ForeignKey('MapPackage', on_delete=models.PROTECT, related_name='levels',
|
package = models.ForeignKey('MapPackage', on_delete=models.PROTECT, related_name='levels',
|
||||||
verbose_name=_('map package'))
|
verbose_name=_('map package'))
|
||||||
|
|
||||||
|
|
||||||
class BoundingBoxModel(models.Model):
|
class MapSource(models.Model):
|
||||||
bottom = models.DecimalField(_('bottom coordinate'), max_digits=6, decimal_places=2)
|
|
||||||
left = models.DecimalField(_('left coordinate'), max_digits=6, decimal_places=2)
|
|
||||||
top = models.DecimalField(_('top coordinate'), max_digits=6, decimal_places=2)
|
|
||||||
right = models.DecimalField(_('right coordinate'), max_digits=6, decimal_places=2)
|
|
||||||
|
|
||||||
@property
|
|
||||||
def bounds(self):
|
|
||||||
return ((self.bottom, self.left), (self.top, self.right))
|
|
||||||
|
|
||||||
class Meta:
|
|
||||||
abstract = True
|
|
||||||
|
|
||||||
|
|
||||||
class MapSource(BoundingBoxModel):
|
|
||||||
"""
|
"""
|
||||||
A map source, images of levels that can be useful as backgrounds for the map editor
|
A map source, images of levels that can be useful as backgrounds for the map editor
|
||||||
"""
|
"""
|
||||||
name = models.SlugField(_('source name'), max_length=50, unique=True),
|
name = models.SlugField(_('source name'), max_length=50, unique=True)
|
||||||
package = models.ForeignKey('MapPackage', on_delete=models.PROTECT, related_name='sources',
|
package = models.ForeignKey('MapPackage', on_delete=models.PROTECT, related_name='sources',
|
||||||
verbose_name=_('map package'))
|
verbose_name=_('map package'))
|
||||||
image = models.FileField(_('source image'), upload_to='mapsources/')
|
image = models.FileField(_('source image'), upload_to='mapsources/')
|
||||||
|
bounds = models.OneToOneField('Bounds', on_delete=models.PROTECT, verbose_name=_('bounds'))
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue