add models.py to mapdata which should replace classes.py soon

This commit is contained in:
Laura Klünder 2016-08-23 02:19:02 +02:00
parent 1aeefa1d56
commit ac1cee9fa0
4 changed files with 124 additions and 0 deletions

View file

@ -0,0 +1,79 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.9.9 on 2016-08-23 00:17
from __future__ import unicode_literals
import django.contrib.gis.db.models.fields
from django.db import migrations, models
import django.db.models.deletion
import parler.models
class Migration(migrations.Migration):
initial = True
dependencies = [
]
operations = [
migrations.CreateModel(
name='MapLevel',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
],
options={
'abstract': False,
},
bases=(parler.models.TranslatableModelMixin, models.Model),
),
migrations.CreateModel(
name='MapPackage',
fields=[
('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')),
],
options={
'abstract': False,
},
bases=(parler.models.TranslatableModelMixin, models.Model),
),
migrations.CreateModel(
name='MapPackageTranslation',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('language_code', models.CharField(db_index=True, max_length=15, verbose_name='Language')),
('title', models.CharField(max_length=50, verbose_name='package title')),
('master', models.ForeignKey(editable=False, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='translations', to='mapdata.MapPackage')),
],
options={
'db_table': 'mapdata_mappackage_translation',
'db_tablespace': '',
'managed': True,
'verbose_name': 'map package Translation',
'default_permissions': (),
},
),
migrations.CreateModel(
name='MapSource',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('image', models.FileField(upload_to='mapsources/', verbose_name='source image')),
('bottom_left', django.contrib.gis.db.models.fields.PointField(srid=4326, verbose_name='bottom left coordinates')),
('top_right', django.contrib.gis.db.models.fields.PointField(srid=4326, verbose_name='bottom left coordinates')),
('package', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='sources', to='mapdata.MapPackage', verbose_name='map package')),
],
options={
'abstract': False,
},
bases=(parler.models.TranslatableModelMixin, models.Model),
),
migrations.AddField(
model_name='maplevel',
name='package',
field=models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='levels', to='mapdata.MapPackage', verbose_name='map package'),
),
migrations.AlterUniqueTogether(
name='mappackagetranslation',
unique_together=set([('language_code', 'master')]),
),
]

View file

View file

@ -0,0 +1,42 @@
from django.contrib.gis.db import models
from django.utils.translation import ugettext_lazy as _
from parler.models import TranslatedFields
from ..models import TranslatableGeoModel
class MapPackage(TranslatableGeoModel):
"""
A c3nav map package
"""
name = models.CharField(_('package identifier'), max_length=50, help_text=_('e.g. de.c3nav.33c3')),
width = models.IntegerField(_('map width'), max_length=50, null=True, help_text='in meters'),
height = models.IntegerField(_('map height'), max_length=50, null=True, help_text='in meters'),
extends = models.ForeignKey('self', on_delete=models.PROTECT, null=True, related_name='extended_by',
verbose_name=_('extends map package'))
translations = TranslatedFields(
title=models.CharField(_('package title'), max_length=50),
)
class MapLevel(TranslatableGeoModel):
"""
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)')),
package = models.ForeignKey('MapPackage', on_delete=models.PROTECT, related_name='levels',
verbose_name=_('map package'))
class MapSource(TranslatableGeoModel):
"""
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),
package = models.ForeignKey('MapPackage', on_delete=models.PROTECT, related_name='sources',
verbose_name=_('map package'))
image = models.FileField(_('source image'), upload_to='mapsources/')
bottom_left = models.PointField(_('bottom left coordinates'))
top_right = models.PointField(_('bottom left coordinates'))

View file

@ -16,6 +16,7 @@ config.read(['/etc/c3nav/c3nav.cfg', os.path.expanduser('~/.c3nav.cfg'), 'c3nav.
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
DATA_DIR = config.get('c3nav', 'datadir', fallback=os.environ.get('DATA_DIR', 'data'))
LOG_DIR = os.path.join(DATA_DIR, 'logs')
MEDIA_ROOT = os.path.join(DATA_DIR, 'media')
MAP_DIRS = tuple(n for n in config.get('c3nav', 'mapdirs', fallback='').split(',') if n)
@ -23,6 +24,8 @@ if not os.path.exists(DATA_DIR):
os.mkdir(DATA_DIR)
if not os.path.exists(LOG_DIR):
os.mkdir(LOG_DIR)
if not os.path.exists(MEDIA_ROOT):
os.mkdir(MEDIA_ROOT)
if config.has_option('django', 'secret'):
SECRET_KEY = config.get('django', 'secret')