diff --git a/src/c3nav/editor/migrations/0001_initial.py b/src/c3nav/editor/migrations/0001_initial.py new file mode 100644 index 00000000..004cdf6b --- /dev/null +++ b/src/c3nav/editor/migrations/0001_initial.py @@ -0,0 +1,55 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.2 on 2017-06-12 11:16 +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): + + initial = True + + dependencies = [ + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ] + + operations = [ + migrations.CreateModel( + name='Change', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('created', models.DateTimeField(auto_now_add=True, verbose_name='created')), + ('content', c3nav.mapdata.fields.JSONField()), + ('author', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='changes', to=settings.AUTH_USER_MODEL, verbose_name='Author')), + ], + options={ + 'verbose_name': 'Change', + 'verbose_name_plural': 'Changes', + 'default_related_name': 'changes', + }, + ), + migrations.CreateModel( + name='ChangeSet', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('created', models.DateTimeField(auto_now_add=True, verbose_name='created')), + ('proposed', models.DateTimeField(null=True, verbose_name='proposed')), + ('applied', models.DateTimeField(null=True, verbose_name='applied')), + ('applied_by', models.ForeignKey(null=True, on_delete=django.db.models.deletion.PROTECT, related_name='applied_changesets', to=settings.AUTH_USER_MODEL, verbose_name='applied by')), + ('author', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='changesets', to=settings.AUTH_USER_MODEL, verbose_name='Author')), + ], + options={ + 'verbose_name': 'Change Set', + 'verbose_name_plural': 'Change Sets', + 'default_related_name': 'changesets', + }, + ), + migrations.AddField( + model_name='change', + name='changeset', + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='changes', to='editor.ChangeSet', verbose_name='Change Set'), + ), + ] diff --git a/src/c3nav/editor/migrations/__init__.py b/src/c3nav/editor/migrations/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/src/c3nav/editor/models.py b/src/c3nav/editor/models.py new file mode 100644 index 00000000..aa598d9e --- /dev/null +++ b/src/c3nav/editor/models.py @@ -0,0 +1,31 @@ +from django.conf import settings +from django.db import models +from django.utils.translation import ugettext_lazy as _ + +from c3nav.mapdata.fields import JSONField + + +class ChangeSet(models.Model): + author = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.PROTECT, verbose_name=_('Author')) + created = models.DateTimeField(auto_now_add=True, verbose_name=_('created')) + proposed = models.DateTimeField(null=True, verbose_name=_('proposed')) + applied = models.DateTimeField(null=True, verbose_name=_('applied')) + applied_by = models.ForeignKey(settings.AUTH_USER_MODEL, null=True, on_delete=models.PROTECT, + related_name='applied_changesets', verbose_name=_('applied by')) + + class Meta: + verbose_name = _('Change Set') + verbose_name_plural = _('Change Sets') + default_related_name = 'changesets' + + +class Change(models.Model): + changeset = models.ForeignKey(ChangeSet, on_delete=models.CASCADE, verbose_name=_('Change Set')) + author = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.PROTECT, verbose_name=_('Author')) + created = models.DateTimeField(auto_now_add=True, verbose_name=_('created')) + content = JSONField() + + class Meta: + verbose_name = _('Change') + verbose_name_plural = _('Changes') + default_related_name = 'changes'