From 5ebddc8ed82f90e013ead17bc40aa9d3da3afefd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Laura=20Kl=C3=BCnder?= Date: Sat, 16 Dec 2017 12:43:14 +0100 Subject: [PATCH] add WifiMeasurement model --- .../migrations/0058_wifimeasurement.py | 35 +++++++++++++++++++ src/c3nav/mapdata/models/geometry/space.py | 18 +++++++++- 2 files changed, 52 insertions(+), 1 deletion(-) create mode 100644 src/c3nav/mapdata/migrations/0058_wifimeasurement.py diff --git a/src/c3nav/mapdata/migrations/0058_wifimeasurement.py b/src/c3nav/mapdata/migrations/0058_wifimeasurement.py new file mode 100644 index 00000000..514d1d25 --- /dev/null +++ b/src/c3nav/mapdata/migrations/0058_wifimeasurement.py @@ -0,0 +1,35 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.6 on 2017-12-16 11:42 +from __future__ import unicode_literals + +import c3nav.mapdata.fields +from django.conf import settings +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ('mapdata', '0057_waytype_fields'), + ] + + operations = [ + migrations.CreateModel( + name='WifiMeasurement', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('geometry', c3nav.mapdata.fields.GeometryField(default=None, geomtype='point')), + ('comment', models.TextField(blank=True, null=True, verbose_name='comment')), + ('data', c3nav.mapdata.fields.JSONField(verbose_name='Measurement list')), + ('author', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='wifi_measurements', to=settings.AUTH_USER_MODEL, verbose_name='author')), + ('space', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='wifi_measurements', to='mapdata.Space', verbose_name='space')), + ], + options={ + 'verbose_name': 'Wi-Fi Measurement', + 'verbose_name_plural': 'Wi-Fi Measurements', + 'default_related_name': 'wifi_measurements', + }, + ), + ] diff --git a/src/c3nav/mapdata/models/geometry/space.py b/src/c3nav/mapdata/models/geometry/space.py index fa8607c7..e70202f7 100644 --- a/src/c3nav/mapdata/models/geometry/space.py +++ b/src/c3nav/mapdata/models/geometry/space.py @@ -1,5 +1,6 @@ from decimal import Decimal +from django.conf import settings from django.core.validators import MinValueValidator from django.db import models from django.urls import reverse @@ -8,7 +9,7 @@ from django.utils.text import format_lazy from django.utils.translation import ugettext_lazy as _ from shapely.geometry import CAP_STYLE, JOIN_STYLE, mapping -from c3nav.mapdata.fields import GeometryField +from c3nav.mapdata.fields import GeometryField, JSONField from c3nav.mapdata.models.geometry.base import GeometryMixin from c3nav.mapdata.models.locations import SpecificLocation from c3nav.mapdata.utils.cache.changes import changed_geometries @@ -240,3 +241,18 @@ class AltitudeMarker(SpaceGeometryMixin, models.Model): @property def title(self): return '%s (%sm)' % (super().title, self.altitude) + + +class WifiMeasurement(SpaceGeometryMixin, models.Model): + """ + A Wi-Fi measurement + """ + geometry = GeometryField('point') + author = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.PROTECT, verbose_name=_('author')) + comment = models.TextField(null=True, blank=True, verbose_name=_('comment')) + data = JSONField(_('Measurement list')) + + class Meta: + verbose_name = _('Wi-Fi Measurement') + verbose_name_plural = _('Wi-Fi Measurements') + default_related_name = 'wifi_measurements'