From e697466557b7ec370a0bd424a33b84074e41d564 Mon Sep 17 00:00:00 2001 From: Philip Sargent Date: Sat, 20 Jun 2020 15:43:28 +0100 Subject: [PATCH] Cleanup secrets management, pre-run checks. --- 0001_initial.py | 545 --------------------- core/migrations/0001_initial.py | 4 +- core/migrations/0002_auto_20200619_1511.py | 20 - core/migrations/0003_auto_20200619_1513.py | 20 - core/view_surveys.py | 1 + deprecations.txt | 2 + flatpages/migrations/0001_initial.py | 2 +- lines-of-python.txt | 52 ++ lines-of-templates.txt | 58 +++ localsettingsdocker.py | 2 +- localsettingspotatohut.py | 5 +- localsettingsserver.py | 7 +- localsettingsubuntu.py | 4 +- localsettingswindows.py | 12 +- pre-push.sh | 33 ++ pre-run.sh | 17 + req1.10.8+2.3.txt | 7 - req1.11.19.txt | 8 - requirements-rough1.9.13.txt | 7 - requirements-works1.7.4.txt | 109 ----- requirements-works1.8.19.txt | 7 - requirements-works1.8.19b.txt | 7 - requirements1.18.19.txt | 7 - settings.py | 2 +- inspectdb.py => troggle-inspectdb.py | 414 ++++++---------- 25 files changed, 334 insertions(+), 1018 deletions(-) delete mode 100644 0001_initial.py delete mode 100644 core/migrations/0002_auto_20200619_1511.py delete mode 100644 core/migrations/0003_auto_20200619_1513.py create mode 100644 lines-of-python.txt create mode 100644 lines-of-templates.txt create mode 100644 pre-push.sh create mode 100644 pre-run.sh delete mode 100644 req1.10.8+2.3.txt delete mode 100644 req1.11.19.txt delete mode 100644 requirements-rough1.9.13.txt delete mode 100644 requirements-works1.7.4.txt delete mode 100644 requirements-works1.8.19.txt delete mode 100644 requirements-works1.8.19b.txt delete mode 100644 requirements1.18.19.txt rename inspectdb.py => troggle-inspectdb.py (55%) diff --git a/0001_initial.py b/0001_initial.py deleted file mode 100644 index e5e0784..0000000 --- a/0001_initial.py +++ /dev/null @@ -1,545 +0,0 @@ -# -*- coding: utf-8 -*- -from __future__ import unicode_literals - -from django.db import models, migrations -from django.conf import settings - -# created by -# $ python manage.py makemigrations core -# in troggle/core/migrations/0001_initial.py - -# Useful shorthand for db structure - -class Migration(migrations.Migration): - - dependencies = [ - migrations.swappable_dependency(settings.AUTH_USER_MODEL), - ] - - operations = [ - migrations.CreateModel( - name='Area', - fields=[ - ('id', models.AutoField(verbose_name='ID', primary_key=True, serialize=False, auto_created=True)), - ('new_since_parsing', models.BooleanField(default=False, editable=False)), - ('non_public', models.BooleanField(default=False)), - ('short_name', models.CharField(max_length=100)), - ('name', models.CharField(max_length=200, blank=True, null=True)), - ('description', models.TextField(blank=True, null=True)), - ('parent', models.ForeignKey(blank=True, null=True, to='core.Area')), - ], - options={ - 'abstract': False, - }, - bases=(models.Model,), - ), - migrations.CreateModel( - name='Cave', - fields=[ - ('id', models.AutoField(verbose_name='ID', primary_key=True, serialize=False, auto_created=True)), - ('new_since_parsing', models.BooleanField(default=False, editable=False)), - ('non_public', models.BooleanField(default=False)), - ('official_name', models.CharField(max_length=160)), - ('kataster_code', models.CharField(max_length=20, blank=True, null=True)), - ('kataster_number', models.CharField(max_length=10, blank=True, null=True)), - ('unofficial_number', models.CharField(max_length=60, blank=True, null=True)), - ('explorers', models.TextField(blank=True, null=True)), - ('underground_description', models.TextField(blank=True, null=True)), - ('equipment', models.TextField(blank=True, null=True)), - ('references', models.TextField(blank=True, null=True)), - ('survey', models.TextField(blank=True, null=True)), - ('kataster_status', models.TextField(blank=True, null=True)), - ('underground_centre_line', models.TextField(blank=True, null=True)), - ('notes', models.TextField(blank=True, null=True)), - ('length', models.CharField(max_length=100, blank=True, null=True)), - ('depth', models.CharField(max_length=100, blank=True, null=True)), - ('extent', models.CharField(max_length=100, blank=True, null=True)), - ('survex_file', models.CharField(max_length=100, blank=True, null=True)), - ('description_file', models.CharField(max_length=200, blank=True, null=True)), - ('url', models.CharField(max_length=200, blank=True, null=True)), - ('filename', models.CharField(max_length=200)), - ('area', models.ManyToManyField(blank=True, null=True, to='core.Area')), - ], - options={ - 'ordering': ('kataster_code', 'unofficial_number'), - }, - bases=(models.Model,), - ), - migrations.CreateModel( - name='CaveAndEntrance', - fields=[ - ('id', models.AutoField(verbose_name='ID', primary_key=True, serialize=False, auto_created=True)), - ('entrance_letter', models.CharField(max_length=20, blank=True, null=True)), - ('cave', models.ForeignKey(to='core.Cave')), - ], - options={ - }, - bases=(models.Model,), - ), - migrations.CreateModel( - name='CaveDescription', - fields=[ - ('id', models.AutoField(verbose_name='ID', primary_key=True, serialize=False, auto_created=True)), - ('new_since_parsing', models.BooleanField(default=False, editable=False)), - ('non_public', models.BooleanField(default=False)), - ('short_name', models.CharField(max_length=50, unique=True)), - ('long_name', models.CharField(max_length=200, blank=True, null=True)), - ('description', models.TextField(blank=True, null=True)), - ], - options={ - 'abstract': False, - }, - bases=(models.Model,), - ), - migrations.CreateModel( - name='CaveSlug', - fields=[ - ('id', models.AutoField(verbose_name='ID', primary_key=True, serialize=False, auto_created=True)), - ('slug', models.SlugField(unique=True)), - ('primary', models.BooleanField(default=False)), - ('cave', models.ForeignKey(to='core.Cave')), - ], - options={ - }, - bases=(models.Model,), - ), - migrations.CreateModel( - name='DataIssue', - fields=[ - ('id', models.AutoField(verbose_name='ID', primary_key=True, serialize=False, auto_created=True)), - ('new_since_parsing', models.BooleanField(default=False, editable=False)), - ('non_public', models.BooleanField(default=False)), - ('date', models.DateTimeField(auto_now_add=True)), - ('parser', models.CharField(max_length=50, blank=True, null=True)), - ('message', models.CharField(max_length=400, blank=True, null=True)), - ], - options={ - 'ordering': ['date'], - }, - bases=(models.Model,), - ), - migrations.CreateModel( - name='Entrance', - fields=[ - ('id', models.AutoField(verbose_name='ID', primary_key=True, serialize=False, auto_created=True)), - ('new_since_parsing', models.BooleanField(default=False, editable=False)), - ('non_public', models.BooleanField(default=False)), - ('name', models.CharField(max_length=100, blank=True, null=True)), - ('entrance_description', models.TextField(blank=True, null=True)), - ('explorers', models.TextField(blank=True, null=True)), - ('map_description', models.TextField(blank=True, null=True)), - ('location_description', models.TextField(blank=True, null=True)), - ('approach', models.TextField(blank=True, null=True)), - ('underground_description', models.TextField(blank=True, null=True)), - ('photo', models.TextField(blank=True, null=True)), - ('marking', models.CharField(max_length=2, choices=[('P', 'Paint'), ('P?', 'Paint (?)'), ('T', 'Tag'), ('T?', 'Tag (?)'), ('R', 'Needs Retag'), ('S', 'Spit'), ('S?', 'Spit (?)'), ('U', 'Unmarked'), ('?', 'Unknown')])), - ('marking_comment', models.TextField(blank=True, null=True)), - ('findability', models.CharField(max_length=1, blank=True, null=True, choices=[('?', 'To be confirmed ...'), ('S', 'Coordinates'), ('L', 'Lost'), ('R', 'Refindable')])), - ('findability_description', models.TextField(blank=True, null=True)), - ('alt', models.TextField(blank=True, null=True)), - ('northing', models.TextField(blank=True, null=True)), - ('easting', models.TextField(blank=True, null=True)), - ('tag_station', models.TextField(blank=True, null=True)), - ('exact_station', models.TextField(blank=True, null=True)), - ('other_station', models.TextField(blank=True, null=True)), - ('other_description', models.TextField(blank=True, null=True)), - ('bearings', models.TextField(blank=True, null=True)), - ('url', models.CharField(max_length=200, blank=True, null=True)), - ('filename', models.CharField(max_length=200)), - ('cached_primary_slug', models.CharField(max_length=200, blank=True, null=True)), - ], - options={ - 'abstract': False, - }, - bases=(models.Model,), - ), - migrations.CreateModel( - name='EntranceSlug', - fields=[ - ('id', models.AutoField(verbose_name='ID', primary_key=True, serialize=False, auto_created=True)), - ('slug', models.SlugField(unique=True)), - ('primary', models.BooleanField(default=False)), - ('entrance', models.ForeignKey(to='core.Entrance')), - ], - options={ - }, - bases=(models.Model,), - ), - migrations.CreateModel( - name='Expedition', - fields=[ - ('id', models.AutoField(verbose_name='ID', primary_key=True, serialize=False, auto_created=True)), - ('new_since_parsing', models.BooleanField(default=False, editable=False)), - ('non_public', models.BooleanField(default=False)), - ('year', models.CharField(max_length=20, unique=True)), - ('name', models.CharField(max_length=100)), - ], - options={ - 'ordering': ('-year',), - 'get_latest_by': 'year', - }, - bases=(models.Model,), - ), - migrations.CreateModel( - name='ExpeditionDay', - fields=[ - ('id', models.AutoField(verbose_name='ID', primary_key=True, serialize=False, auto_created=True)), - ('new_since_parsing', models.BooleanField(default=False, editable=False)), - ('non_public', models.BooleanField(default=False)), - ('date', models.DateField()), - ('expedition', models.ForeignKey(to='core.Expedition')), - ], - options={ - 'ordering': ('date',), - }, - bases=(models.Model,), - ), - migrations.CreateModel( - name='LogbookEntry', - fields=[ - ('id', models.AutoField(verbose_name='ID', primary_key=True, serialize=False, auto_created=True)), - ('new_since_parsing', models.BooleanField(default=False, editable=False)), - ('non_public', models.BooleanField(default=False)), - ('date', models.DateField()), - ('title', models.CharField(max_length=200)), - ('cave_slug', models.SlugField()), - ('place', models.CharField(max_length=100, blank=True, null=True, help_text="Only use this if you haven't chosen a cave")), - ('text', models.TextField()), - ('slug', models.SlugField()), - ('filename', models.CharField(max_length=200, null=True)), - ('entry_type', models.CharField(max_length=50, null=True, default='wiki', choices=[('wiki', 'Wiki style logbook'), ('html', 'Html style logbook')])), - ('expedition', models.ForeignKey(blank=True, null=True, to='core.Expedition')), - ('expeditionday', models.ForeignKey(null=True, to='core.ExpeditionDay')), - ], - options={ - 'verbose_name_plural': 'Logbook Entries', - 'ordering': ('-date',), - }, - bases=(models.Model,), - ), - migrations.CreateModel( - name='NewSubCave', - fields=[ - ('id', models.AutoField(verbose_name='ID', primary_key=True, serialize=False, auto_created=True)), - ('new_since_parsing', models.BooleanField(default=False, editable=False)), - ('non_public', models.BooleanField(default=False)), - ('name', models.CharField(max_length=200, unique=True)), - ], - options={ - 'abstract': False, - }, - bases=(models.Model,), - ), - migrations.CreateModel( - name='OtherCaveName', - fields=[ - ('id', models.AutoField(verbose_name='ID', primary_key=True, serialize=False, auto_created=True)), - ('new_since_parsing', models.BooleanField(default=False, editable=False)), - ('non_public', models.BooleanField(default=False)), - ('name', models.CharField(max_length=160)), - ('cave', models.ForeignKey(to='core.Cave')), - ], - options={ - 'abstract': False, - }, - bases=(models.Model,), - ), - migrations.CreateModel( - name='Person', - fields=[ - ('id', models.AutoField(verbose_name='ID', primary_key=True, serialize=False, auto_created=True)), - ('new_since_parsing', models.BooleanField(default=False, editable=False)), - ('non_public', models.BooleanField(default=False)), - ('first_name', models.CharField(max_length=100)), - ('last_name', models.CharField(max_length=100)), - ('fullname', models.CharField(max_length=200)), - ('is_vfho', models.BooleanField(default=False, help_text='VFHO is the Vereines für Höhlenkunde in Obersteier, a nearby Austrian caving club.')), - ('mug_shot', models.CharField(max_length=100, blank=True, null=True)), - ('blurb', models.TextField(blank=True, null=True)), - ('orderref', models.CharField(max_length=200)), - ('user', models.OneToOneField(blank=True, null=True, to=settings.AUTH_USER_MODEL)), - ], - options={ - 'verbose_name_plural': 'People', - 'ordering': ('orderref',), - }, - bases=(models.Model,), - ), - migrations.CreateModel( - name='PersonExpedition', - fields=[ - ('id', models.AutoField(verbose_name='ID', primary_key=True, serialize=False, auto_created=True)), - ('new_since_parsing', models.BooleanField(default=False, editable=False)), - ('non_public', models.BooleanField(default=False)), - ('slugfield', models.SlugField(blank=True, null=True)), - ('is_guest', models.BooleanField(default=False)), - ('expo_committee_position', models.CharField(max_length=200, blank=True, null=True, choices=[('leader', 'Expo leader'), ('medical', 'Expo medical officer'), ('treasurer', 'Expo treasurer'), ('sponsorship', 'Expo sponsorship coordinator'), ('research', 'Expo research coordinator')])), - ('nickname', models.CharField(max_length=100, blank=True, null=True)), - ('expedition', models.ForeignKey(to='core.Expedition')), - ('person', models.ForeignKey(to='core.Person')), - ], - options={ - 'ordering': ('-expedition',), - }, - bases=(models.Model,), - ), - migrations.CreateModel( - name='PersonTrip', - fields=[ - ('id', models.AutoField(verbose_name='ID', primary_key=True, serialize=False, auto_created=True)), - ('new_since_parsing', models.BooleanField(default=False, editable=False)), - ('non_public', models.BooleanField(default=False)), - ('time_underground', models.FloatField(help_text='In decimal hours')), - ('is_logbook_entry_author', models.BooleanField(default=False)), - ('logbook_entry', models.ForeignKey(to='core.LogbookEntry')), - ('personexpedition', models.ForeignKey(null=True, to='core.PersonExpedition')), - ], - options={ - 'abstract': False, - }, - bases=(models.Model,), - ), - migrations.CreateModel( - name='QM', - fields=[ - ('id', models.AutoField(verbose_name='ID', primary_key=True, serialize=False, auto_created=True)), - ('new_since_parsing', models.BooleanField(default=False, editable=False)), - ('non_public', models.BooleanField(default=False)), - ('number', models.IntegerField(help_text='this is the sequential number in the year')), - ('grade', models.CharField(max_length=1, choices=[('A', 'A: Large obvious lead'), ('B', 'B: Average lead'), ('C', 'C: Tight unpromising lead'), ('D', 'D: Dig'), ('X', 'X: Unclimbable aven')])), - ('location_description', models.TextField(blank=True)), - ('nearest_station_description', models.CharField(max_length=400, blank=True, null=True)), - ('nearest_station_name', models.CharField(max_length=200, blank=True, null=True)), - ('area', models.CharField(max_length=100, blank=True, null=True)), - ('completion_description', models.TextField(blank=True, null=True)), - ('comment', models.TextField(blank=True, null=True)), - ('found_by', models.ForeignKey(blank=True, null=True, related_name='QMs_found', to='core.LogbookEntry')), - ], - options={ - 'abstract': False, - }, - bases=(models.Model,), - ), - migrations.CreateModel( - name='SurvexBlock', - fields=[ - ('id', models.AutoField(verbose_name='ID', primary_key=True, serialize=False, auto_created=True)), - ('name', models.CharField(max_length=100)), - ('text', models.TextField()), - ('date', models.DateField(blank=True, null=True)), - ('begin_char', models.IntegerField()), - ('survexpath', models.CharField(max_length=200)), - ('totalleglength', models.FloatField()), - ('cave', models.ForeignKey(blank=True, null=True, to='core.Cave')), - ('expedition', models.ForeignKey(blank=True, null=True, to='core.Expedition')), - ('expeditionday', models.ForeignKey(null=True, to='core.ExpeditionDay')), - ('parent', models.ForeignKey(blank=True, null=True, to='core.SurvexBlock')), - ], - options={ - 'ordering': ('id',), - }, - bases=(models.Model,), - ), - migrations.CreateModel( - name='SurvexDirectory', - fields=[ - ('id', models.AutoField(verbose_name='ID', primary_key=True, serialize=False, auto_created=True)), - ('path', models.CharField(max_length=200)), - ('cave', models.ForeignKey(blank=True, null=True, to='core.Cave')), - ], - options={ - 'ordering': ('id',), - }, - bases=(models.Model,), - ), - migrations.CreateModel( - name='SurvexEquate', - fields=[ - ('id', models.AutoField(verbose_name='ID', primary_key=True, serialize=False, auto_created=True)), - ('cave', models.ForeignKey(blank=True, null=True, to='core.Cave')), - ], - options={ - }, - bases=(models.Model,), - ), - migrations.CreateModel( - name='SurvexFile', - fields=[ - ('id', models.AutoField(verbose_name='ID', primary_key=True, serialize=False, auto_created=True)), - ('path', models.CharField(max_length=200)), - ('cave', models.ForeignKey(blank=True, null=True, to='core.Cave')), - ('survexdirectory', models.ForeignKey(blank=True, null=True, to='core.SurvexDirectory')), - ], - options={ - 'ordering': ('id',), - }, - bases=(models.Model,), - ), - migrations.CreateModel( - name='SurvexLeg', - fields=[ - ('id', models.AutoField(verbose_name='ID', primary_key=True, serialize=False, auto_created=True)), - ('tape', models.FloatField()), - ('compass', models.FloatField()), - ('clino', models.FloatField()), - ('block', models.ForeignKey(to='core.SurvexBlock')), - ], - options={ - }, - bases=(models.Model,), - ), - migrations.CreateModel( - name='SurvexPersonRole', - fields=[ - ('id', models.AutoField(verbose_name='ID', primary_key=True, serialize=False, auto_created=True)), - ('nrole', models.CharField(max_length=200, blank=True, null=True, choices=[('insts', 'Instruments'), ('dog', 'Other'), ('notes', 'Notes'), ('pics', 'Pictures'), ('tape', 'Tape measure'), ('useless', 'Useless'), ('helper', 'Helper'), ('disto', 'Disto'), ('consultant', 'Consultant')])), - ('personname', models.CharField(max_length=100)), - ('expeditionday', models.ForeignKey(null=True, to='core.ExpeditionDay')), - ('person', models.ForeignKey(blank=True, null=True, to='core.Person')), - ('personexpedition', models.ForeignKey(blank=True, null=True, to='core.PersonExpedition')), - ('persontrip', models.ForeignKey(blank=True, null=True, to='core.PersonTrip')), - ('survexblock', models.ForeignKey(to='core.SurvexBlock')), - ], - options={ - }, - bases=(models.Model,), - ), - migrations.CreateModel( - name='SurvexScansFolder', - fields=[ - ('id', models.AutoField(verbose_name='ID', primary_key=True, serialize=False, auto_created=True)), - ('fpath', models.CharField(max_length=200)), - ('walletname', models.CharField(max_length=200)), - ], - options={ - 'ordering': ('walletname',), - }, - bases=(models.Model,), - ), - migrations.CreateModel( - name='SurvexScanSingle', - fields=[ - ('id', models.AutoField(verbose_name='ID', primary_key=True, serialize=False, auto_created=True)), - ('ffile', models.CharField(max_length=200)), - ('name', models.CharField(max_length=200)), - ('survexscansfolder', models.ForeignKey(null=True, to='core.SurvexScansFolder')), - ], - options={ - 'ordering': ('name',), - }, - bases=(models.Model,), - ), - migrations.CreateModel( - name='SurvexStation', - fields=[ - ('id', models.AutoField(verbose_name='ID', primary_key=True, serialize=False, auto_created=True)), - ('name', models.CharField(max_length=100)), - ('x', models.FloatField(blank=True, null=True)), - ('y', models.FloatField(blank=True, null=True)), - ('z', models.FloatField(blank=True, null=True)), - ('block', models.ForeignKey(to='core.SurvexBlock')), - ('equate', models.ForeignKey(blank=True, null=True, to='core.SurvexEquate')), - ], - options={ - }, - bases=(models.Model,), - ), - migrations.CreateModel( - name='SurvexTitle', - fields=[ - ('id', models.AutoField(verbose_name='ID', primary_key=True, serialize=False, auto_created=True)), - ('title', models.CharField(max_length=200)), - ('cave', models.ForeignKey(blank=True, null=True, to='core.Cave')), - ('survexblock', models.ForeignKey(to='core.SurvexBlock')), - ], - options={ - }, - bases=(models.Model,), - ), - migrations.CreateModel( - name='TunnelFile', - fields=[ - ('id', models.AutoField(verbose_name='ID', primary_key=True, serialize=False, auto_created=True)), - ('tunnelpath', models.CharField(max_length=200)), - ('tunnelname', models.CharField(max_length=200)), - ('bfontcolours', models.BooleanField(default=False)), - ('filesize', models.IntegerField(default=0)), - ('npaths', models.IntegerField(default=0)), - ('survexblocks', models.ManyToManyField(to='core.SurvexBlock')), - ('survexscans', models.ManyToManyField(to='core.SurvexScanSingle')), - ('survexscansfolders', models.ManyToManyField(to='core.SurvexScansFolder')), - ('survextitles', models.ManyToManyField(to='core.SurvexTitle')), - ('tunnelcontains', models.ManyToManyField(to='core.TunnelFile')), - ], - options={ - 'ordering': ('tunnelpath',), - }, - bases=(models.Model,), - ), - migrations.AddField( - model_name='survexleg', - name='stationfrom', - field=models.ForeignKey(related_name='stationfrom', to='core.SurvexStation'), - preserve_default=True, - ), - migrations.AddField( - model_name='survexleg', - name='stationto', - field=models.ForeignKey(related_name='stationto', to='core.SurvexStation'), - preserve_default=True, - ), - migrations.AddField( - model_name='survexdirectory', - name='primarysurvexfile', - field=models.ForeignKey(blank=True, null=True, related_name='primarysurvexfile', to='core.SurvexFile'), - preserve_default=True, - ), - migrations.AddField( - model_name='survexblock', - name='survexfile', - field=models.ForeignKey(blank=True, null=True, to='core.SurvexFile'), - preserve_default=True, - ), - migrations.AddField( - model_name='survexblock', - name='survexscansfolder', - field=models.ForeignKey(null=True, to='core.SurvexScansFolder'), - preserve_default=True, - ), - migrations.AddField( - model_name='qm', - name='nearest_station', - field=models.ForeignKey(blank=True, null=True, to='core.SurvexStation'), - preserve_default=True, - ), - migrations.AddField( - model_name='qm', - name='ticked_off_by', - field=models.ForeignKey(blank=True, null=True, related_name='QMs_ticked_off', to='core.LogbookEntry'), - preserve_default=True, - ), - migrations.AddField( - model_name='cavedescription', - name='linked_entrances', - field=models.ManyToManyField(blank=True, null=True, to='core.Entrance'), - preserve_default=True, - ), - migrations.AddField( - model_name='cavedescription', - name='linked_qms', - field=models.ManyToManyField(blank=True, null=True, to='core.QM'), - preserve_default=True, - ), - migrations.AddField( - model_name='cavedescription', - name='linked_subcaves', - field=models.ManyToManyField(blank=True, null=True, to='core.NewSubCave'), - preserve_default=True, - ), - migrations.AddField( - model_name='caveandentrance', - name='entrance', - field=models.ForeignKey(to='core.Entrance'), - preserve_default=True, - ), - ] diff --git a/core/migrations/0001_initial.py b/core/migrations/0001_initial.py index ef8737e..1bc96d1 100644 --- a/core/migrations/0001_initial.py +++ b/core/migrations/0001_initial.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Generated by Django 1.9.13 on 2020-06-16 23:22 +# Generated by Django 1.11.29 on 2020-06-20 14:27 from __future__ import unicode_literals from django.conf import settings @@ -185,7 +185,7 @@ class Migration(migrations.Migration): ('non_public', models.BooleanField(default=False)), ('date', models.DateField()), ('title', models.CharField(max_length=200)), - ('cave_slug', models.SlugField()), + ('cave_slug', models.SlugField(blank=True, null=True)), ('place', models.CharField(blank=True, help_text="Only use this if you haven't chosen a cave", max_length=100, null=True)), ('text', models.TextField()), ('slug', models.SlugField()), diff --git a/core/migrations/0002_auto_20200619_1511.py b/core/migrations/0002_auto_20200619_1511.py deleted file mode 100644 index ef84c1c..0000000 --- a/core/migrations/0002_auto_20200619_1511.py +++ /dev/null @@ -1,20 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.11.29 on 2020-06-19 14:11 -from __future__ import unicode_literals - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('core', '0001_initial'), - ] - - operations = [ - migrations.AlterField( - model_name='logbookentry', - name='cave_slug', - field=models.SlugField(blank=True), - ), - ] diff --git a/core/migrations/0003_auto_20200619_1513.py b/core/migrations/0003_auto_20200619_1513.py deleted file mode 100644 index e12f2a2..0000000 --- a/core/migrations/0003_auto_20200619_1513.py +++ /dev/null @@ -1,20 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.11.29 on 2020-06-19 14:13 -from __future__ import unicode_literals - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('core', '0002_auto_20200619_1511'), - ] - - operations = [ - migrations.AlterField( - model_name='logbookentry', - name='cave_slug', - field=models.SlugField(blank=True, null=True), - ), - ] diff --git a/core/view_surveys.py b/core/view_surveys.py index 6d5ed22..7e7faf6 100644 --- a/core/view_surveys.py +++ b/core/view_surveys.py @@ -86,6 +86,7 @@ def surveyscansingle(request, path, file): #return render_to_response('survexscansfolder.html', { 'survexscansfolder':survexscansfolder, 'settings': settings }) def expofilessingle(request, filepath): + # defaults to content_type="text/pain" needs fixing for PDFs fn=urllib.parse.unquote(filepath) return HttpResponse(content=open(settings.EXPOFILES+fn,"rb")) diff --git a/deprecations.txt b/deprecations.txt index 633261d..b2d5ea1 100644 --- a/deprecations.txt +++ b/deprecations.txt @@ -4,6 +4,8 @@ from collections import Counter, Iterator, Mapping, OrderedDict /mnt/d/CUCC-Expo/t37/lib/python3.7/site-packages/django/core/paginator.py:126: DeprecationWarning: Using or importing the ABCs from 'collections' instead of from 'collections.abc' is deprecated since Python 3.3,and in 3.9 it will stop working class Page(collections.Sequence): +/mnt/d/CUCC-Expo/t37/troggle/core/view_surveys.py:41: DeprecationWarning: invalid escape sequence \d + mname = re.match("(.*?)(?:-(\d+))?\.(png|jpg|jpeg)$(?i)", fname) /mnt/d/CUCC-Expo/t37/lib/python3.7/site-packages/registration/auth_urls_classes.py:19: DeprecationWarning: include('registration.auth_urls') is deprecated and will be removed in django-registration 3.0. Use diff --git a/flatpages/migrations/0001_initial.py b/flatpages/migrations/0001_initial.py index 7b05ab8..66902b9 100644 --- a/flatpages/migrations/0001_initial.py +++ b/flatpages/migrations/0001_initial.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Generated by Django 1.9.13 on 2020-06-16 23:46 +# Generated by Django 1.11.29 on 2020-06-20 14:27 from __future__ import unicode_literals from django.db import migrations, models diff --git a/lines-of-python.txt b/lines-of-python.txt new file mode 100644 index 0000000..19ec849 --- /dev/null +++ b/lines-of-python.txt @@ -0,0 +1,52 @@ +4 ./core/context.py +4 ./flatpages/admin.py +6 ./core/templatetags/link.py +6 ./core/views.py +6 ./manage.py +8 ./core/templatetags/csrffaker.py +26 ./core/management/commands/reset_db.py +26 ./export/toqms.py +26 ./flatpages/migrations/0001_initial.py +33 ./localsettingswindows.py +37 ./localsettingsubuntu.py +38 ./profiles/urls.py +38 ./profiles/utils.py +39 ./localsettings-expo-live.py +39 ./localsettingsdocker.py +39 ./localsettingsserver.py +41 ./localsettingspotatohut.py +41 ./middleware.py +44 ./dump.py +47 ./reset-django.py +48 ./core/templatetags/survex_markup.py +49 ./parsers/subcaves.py +63 ./logbooksdump.py +69 ./core/TESTS/tests.py +73 ./localsettings.py +73 ./localsettingsWSL.py +81 ./settings.py +92 ./core/views_statistics.py +97 ./core/forms.py +98 ./core/admin.py +99 ./parsers/QMs.py +102 ./parsers/people.py +103 ./core/view_surveys.py +103 ./django-patch/html_parser.py +124 ./core/templatetags/wiki_markup.py +135 ./utils.py +156 ./flatpages/views.py +164 ./modelviz.py +167 ./core/models.py +175 ./core/views_other.py +198 ./parsers/caves.py +217 ./core/views_logbooks.py +256 ./core/views_survex.py +276 ./profiles/views.py +355 ./troggle-inspectdb.py +359 ./databaseReset.py +387 ./core/views_caves.py +431 ./parsers/survex.py +462 ./core/migrations/0001_initial.py +515 ./parsers/logbooks.py +534 ./0001_initial.py +6609 diff --git a/lines-of-templates.txt b/lines-of-templates.txt new file mode 100644 index 0000000..723906b --- /dev/null +++ b/lines-of-templates.txt @@ -0,0 +1,58 @@ +3 ./templates/options.html +4 ./templates/personForm.html +4 ./templates/registration/logout.html +5 ./templates/registration/registration_activate.html +6 ./templates/registration/activation_email.html +7 ./templates/admin/base_site.html +7 ./templates/pagenotfound.html +8 ./templates/nonpublic.html +12 ./templates/cave_logbook.html +13 ./templates/cave_description.html +13 ./templates/core/expedition_list.html +13 ./templates/expobase.html +13 ./templates/object_list.html +15 ./templates/editentrance.html +15 ./templates/editflatpage.html +15 ./templates/flatpage.html +15 ./templates/registration/login.html +16 ./templates/editcave.html +16 ./templates/fileupload.html +16 ./templates/menu.html +16 ./templates/svxfiledifflistonly.html +17 ./templates/editcave2.html +19 ./templates/cavemillenial.html +19 ./templates/registration/activate.html +21 ./templates/logbook2005style.html +22 ./templates/tasks.html +23 ./templates/statistics.html +24 ./README/index.html +24 ./templates/dataformat/logbookentry.html +25 ./templates/profiles/select_profile.html +25 ./templates/survexscansfolders.html +27 ./templates/survexscansfolder.html +31 ./templates/caveindex.html +33 ./templates/tunnelfiles.html +35 ./templates/person.html +35 ./templates/qm.html +35 ./templates/survexblock.html +36 ./templates/cave_uground_description.html +37 ./templates/pathsreport.html +38 ./templates/personindex.html +39 ./templates/expowebbase.html +42 ./templates/subcave.html +46 ./templates/frontpage.html +47 ./templates/personexpedition.html +47 ./templates/registration/registration_form.html +54 ./templates/svxfilecavelist.html +62 ./templates/svxfile.html +64 ./templates/svxcavesingle.html +69 ./templates/logbookentry.html +71 ./templates/expedition.html +75 ./templates/base.html +75 ./templates/entrance.html +75 ./templates/newlogbookentry.html +85 ./templates/editfile.html +102 ./templates/prospecting.html +115 ./templates/controlPanel.html +439 ./templates/cave.html +2265 diff --git a/localsettingsdocker.py b/localsettingsdocker.py index bc7d8cb..e9a6650 100644 --- a/localsettingsdocker.py +++ b/localsettingsdocker.py @@ -13,7 +13,7 @@ DATABASES = { } EXPOUSER = 'expo' -EXPOUSERPASS = 'somepasshere' +EXPOUSERPASS = "nnn:gggggg" EXPOUSER_EMAIL = 'wookey@wookware.org' REPOS_ROOT_PATH = '/expo/' diff --git a/localsettingspotatohut.py b/localsettingspotatohut.py index 976e61a..2322b3e 100644 --- a/localsettingspotatohut.py +++ b/localsettingspotatohut.py @@ -4,6 +4,9 @@ import sys # password and _don't_ check that file back to the repo as it exposes # your/our password to the world! +# This will ALL NEED TO BE CHANGED to match localsettingsWSL / python3 / Django v1.18.29 + + DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'. @@ -68,7 +71,7 @@ EMAIL_HOST = "smtp.gmail.com" EMAIL_HOST_USER = "cuccexpo@gmail.com" -EMAIL_HOST_PASSWORD = "khvtffkhvtff" +EMAIL_HOST_PASSWORD = "insert-real-email-password-here" EMAIL_PORT=587 diff --git a/localsettingsserver.py b/localsettingsserver.py index 354b397..0357e3d 100644 --- a/localsettingsserver.py +++ b/localsettingsserver.py @@ -3,6 +3,9 @@ import sys # password and _don't_ check that file back to the repo as it exposes # your/our password to the world! +# This will ALL NEED TO BE CHANGED to match localsettingsWSL / python3 / Django v1.18.29 + + DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'. @@ -15,7 +18,7 @@ DATABASES = { } EXPOUSER = 'expo' -EXPOUSERPASS = 'realpasshere' +EXPOUSERPASS = "nnn:gggggg" EXPOUSER_EMAIL = 'wookey@wookware.org' REPOS_ROOT_PATH = '/home/expo/' @@ -68,6 +71,6 @@ FEINCMS_ADMIN_MEDIA='/site_media/feincms/' #EMAIL_HOST = "smtp.gmail.com" #EMAIL_HOST_USER = "cuccexpo@gmail.com" -#EMAIL_HOST_PASSWORD = "khvtffkhvtff" +EMAIL_HOST_PASSWORD = "insert-real-email-password-here" #EMAIL_PORT=587 #EMAIL_USE_TLS = True diff --git a/localsettingsubuntu.py b/localsettingsubuntu.py index 3ae475d..9832176 100644 --- a/localsettingsubuntu.py +++ b/localsettingsubuntu.py @@ -1,6 +1,8 @@ import sys # link localsettings to this file for use on expo computer in austria +# This will ALL NEED TO BE CHANGED to match localsettingsWSL / python3 / Django v1.18.29 + DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', # 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'. @@ -13,7 +15,7 @@ DATABASES = { } EXPOUSER = 'expo' -EXPOUSERPASS = 'realpasshere' +EXPOUSERPASS = "nnn:gggggg" EXPOUSER_EMAIL = 'wookey@wookware.org' REPOS_ROOT_PATH = '/home/expo/expofiles/' diff --git a/localsettingswindows.py b/localsettingswindows.py index 110bd36..a7d1068 100644 --- a/localsettingswindows.py +++ b/localsettingswindows.py @@ -1,3 +1,7 @@ + + +# This will ALL NEED TO BE CHANGED to match localsettingsWSL / python3 / Django v1.18.29 + DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'. @@ -10,7 +14,7 @@ DATABASES = { } EXPOUSER = 'expo' -EXPOUSERPASS = 'realpasshere' +EXPOUSERPASS = "nnn:gggggg" EXPOUSER_EMAIL = 'wookey@wookware.org' SURVEX_DATA = 'c:\\Expo\\loser\\' @@ -44,13 +48,9 @@ STATIC_ROOT = DIR_ROOT #FILES = "http://framos.lawoftheland.co.uk/troggle/survey_files/" EMAIL_HOST = "smtp.gmail.com" - EMAIL_HOST_USER = "cuccexpo@gmail.com" - -EMAIL_HOST_PASSWORD = "" - +EMAIL_HOST_PASSWORD = "insert-real-email-password-here" EMAIL_PORT=587 - EMAIL_USE_TLS = True # URL that handles the media served from MEDIA_ROOT. Make sure to use a diff --git a/pre-push.sh b/pre-push.sh new file mode 100644 index 0000000..8e3b244 --- /dev/null +++ b/pre-push.sh @@ -0,0 +1,33 @@ +#! /bin/sh +# create and sanitise files for pushing to repo +# Philip Sargent 2020/06/20 +echo deprecations. +python -Wall manage.py check -v 3 2>deprecations.txt >/dev/null +echo diffsettings. +python manage.py diffsettings | grep "###" > diffsettings.txt +echo pip freeze. +pip freeze > requirements.txt +echo inspectdb. +python manage.py inspectdb > troggle-inspectdb.py +#egrep -in "unable|error" troggle-inspectdb.py +echo remove passwords. +cp localsettings.py localsettingsWSL.py +grep EXPOUSERPASS localsettings*.py +sed -i '/EXPOUSERPASS/ s/^.*$/EXPOUSERPASS = "nnn:gggggg"/' localsettings*.py +sed -i '/EXPOUSERPASS/ s/^.*$/EXPOUSERPASS = "nnn:gggggg"/' diffsettings.txt +echo " " reset: EXPOUSERPASS = \"nnn:gggggg\" +grep EMAIL_HOST_PASSWORD localsettings*.py +sed -i '/EMAIL_HOST_PASSWORD/ s/^.*$/EMAIL_HOST_PASSWORD = "insert-real-email-password-here"/' localsettings*.py +sed -i '/EMAIL_HOST_PASSWORD/ s/^.*$/EMAIL_HOST_PASSWORD = "insert-real-email-password-here"/' diffsettings.txt +echo " " reset: EMAIL_HOST_PASSWORD = \"insert-real-email-password-here\" +grep SECRET_KEY *settings.* +sed -i '/SECRET_KEY/ s/^.*$/SECRET_KEY = "not-the-real-secret-key-a#vaeozn0---^fj!355qki*vj2"/' settings.py +sed -i '/SECRET_KEY/ s/^.*$/SECRET_KEY = "not-the-real-secret-key-a#vaeozn0---^fj!355qki*vj2"/' diffsettings.txt +echo " " reset: SECRET_KEY = \"not-the-real-secret-key-a#vaeozn0---^fj!355qki*vj2\" +# +# Do these before final testing, *not* just before pushing: +# python reset-django.py +# python manage.py makemigrations +# python manage.py test +# python manage.py inspectdb > troggle-inspectdb.py +# egrep -i "unable|error" troggle-inspectdb.py diff --git a/pre-run.sh b/pre-run.sh new file mode 100644 index 0000000..aeec8f5 --- /dev/null +++ b/pre-run.sh @@ -0,0 +1,17 @@ +#! /bin/sh +# Do these before final testing, *not* just before pushing: +# Philip Sargent 2020/06/20 +python reset-django.py +echo After cleanup deletion, remake all migrations. +python manage.py makemigrations >/dev/null +python manage.py test +echo Run inspectdb: +python manage.py inspectdb > troggle-inspectdb.py +# egrep -in "unable|error" troggle-inspectdb.py +echo "" +# count non-blank lines of python and template HTML code +# includes all variants of settings.py files +find . -name \*.html -print0 | xargs -0 egrep -vc "#|^\s*$" | grep -v "0$" | awk -F ":" '{ sum +=$2; print $2, $1; } END {print sum}'| sort -n > lines-of-templates.txt + +find . -name \*.py -print0 | xargs -0 egrep -vc "#|^\s*$" | grep -v "0$" | awk -F ":" '{ sum +=$2; print $2, $1; } END {print sum}'| sort -n > lines-of-python.txt +echo `tail -1 lines-of-python.txt` non-comment lines of python. diff --git a/req1.10.8+2.3.txt b/req1.10.8+2.3.txt deleted file mode 100644 index 772490d..0000000 --- a/req1.10.8+2.3.txt +++ /dev/null @@ -1,7 +0,0 @@ -confusable-homoglyphs==2.0.2 -Django==1.10.8 -django-registration==2.3 -Pillow==7.1.2 -six==1.15.0 -sqlparse==0.3.1 -Unidecode==1.1.1 diff --git a/req1.11.19.txt b/req1.11.19.txt deleted file mode 100644 index 3aa407f..0000000 --- a/req1.11.19.txt +++ /dev/null @@ -1,8 +0,0 @@ -confusable-homoglyphs==2.0.2 -Django==1.11.29 -django-registration==2.3 -Pillow==7.1.2 -pytz==2020.1 -six==1.15.0 -sqlparse==0.3.1 -Unidecode==1.1.1 diff --git a/requirements-rough1.9.13.txt b/requirements-rough1.9.13.txt deleted file mode 100644 index 4c7603e..0000000 --- a/requirements-rough1.9.13.txt +++ /dev/null @@ -1,7 +0,0 @@ -Django==1.9.13 -django-extensions==2.2.9 -django-registration==2.0 -Pillow==7.1.2 -six==1.15.0 -sqlparse==0.3.1 -Unidecode==1.1.1 diff --git a/requirements-works1.7.4.txt b/requirements-works1.7.4.txt deleted file mode 100644 index aa44263..0000000 --- a/requirements-works1.7.4.txt +++ /dev/null @@ -1,109 +0,0 @@ -appdirs==1.4.3 -apturl==0.5.2 -astroid==2.4.1 -attrs==19.3.0 -Automat==0.8.0 -blinker==1.4 -catfish==1.4.13 -certifi==2019.11.28 -chardet==3.0.4 -Click==7.0 -cloud-init==20.1 -colorama==0.4.3 -command-not-found==0.3 -configobj==5.0.6 -constantly==15.1.0 -coverage==5.1 -cryptography==2.8 -cupshelpers==1.0 -dbus-python==1.2.16 -defer==1.0.6 -distlib==0.3.0 -distro==1.4.0 -distro-info===0.23ubuntu1 -Django==1.7 -django-extensions==2.2.9 -django-registration==2.0 -django-tinymce==2.0.1 -docutils==0.16 -entrypoints==0.3 -filelock==3.0.12 -httplib2==0.14.0 -hyperlink==19.0.0 -idna==2.8 -importlib-metadata==1.5.0 -incremental==16.10.1 -isort==4.3.21 -Jinja2==2.10.1 -jsonpatch==1.22 -jsonpointer==2.0 -jsonschema==3.2.0 -keyring==18.0.1 -language-selector==0.1 -launchpadlib==1.10.13 -lazr.restfulclient==0.14.2 -lazr.uri==1.0.3 -lazy-object-proxy==1.4.3 -lightdm-gtk-greeter-settings==1.2.2 -macaroonbakery==1.3.1 -MarkupSafe==1.1.0 -mccabe==0.6.1 -menulibre==2.2.1 -more-itertools==4.2.0 -mugshot==0.4.2 -netifaces==0.10.4 -oauthlib==3.1.0 -olefile==0.46 -onboard==1.4.1 -pexpect==4.6.0 -Pillow==7.1.2 -protobuf==3.6.1 -psutil==5.5.1 -pyasn1==0.4.2 -pyasn1-modules==0.2.1 -pycairo==1.16.2 -pycups==1.9.73 -Pygments==2.3.1 -PyGObject==3.36.0 -PyHamcrest==1.9.0 -PyJWT==1.7.1 -pylint==2.5.2 -pymacaroons==0.13.0 -PyNaCl==1.3.0 -pyOpenSSL==19.0.0 -pyRFC3339==1.1 -pyrsistent==0.15.5 -pyserial==3.4 -python-apt==2.0.0 -python-dateutil==2.7.3 -python-debian===0.1.36ubuntu1 -pytz==2019.3 -pyxdg==0.26 -PyYAML==5.3.1 -reportlab==3.5.34 -requests==2.22.0 -requests-unixsocket==0.2.0 -roman==2.0.0 -rope==0.17.0 -SecretStorage==2.3.1 -service-identity==18.1.0 -sgt-launcher==0.2.5 -simplejson==3.16.0 -six==1.14.0 -ssh-import-id==5.10 -systemd-python==234 -toml==0.10.1 -Twisted==18.9.0 -ubuntu-advantage-tools==20.3 -ubuntu-drivers-common==0.0.0 -ufw==0.36 -unattended-upgrades==0.1 -Unidecode==1.1.1 -urllib3==1.25.8 -virtualenv==20.0.17 -wadllib==1.3.3 -wrapt==1.12.1 -xcffib==0.8.1 -xkit==0.0.0 -zipp==1.0.0 -zope.interface==4.7.1 diff --git a/requirements-works1.8.19.txt b/requirements-works1.8.19.txt deleted file mode 100644 index 4f291e5..0000000 --- a/requirements-works1.8.19.txt +++ /dev/null @@ -1,7 +0,0 @@ -Django==1.8.19 -django-extensions==2.2.9 -django-registration==2.0 -Pillow==7.1.0 -six==1.15.0 -sqlparse==0.3.1 -Unidecode==1.1.0 diff --git a/requirements-works1.8.19b.txt b/requirements-works1.8.19b.txt deleted file mode 100644 index 8996b70..0000000 --- a/requirements-works1.8.19b.txt +++ /dev/null @@ -1,7 +0,0 @@ -Django==1.8.19 -django-extensions==2.2.9 -django-registration==2.0 -Pillow==7.1.2 -six==1.15.0 -sqlparse==0.3.1 -Unidecode==1.1.1 diff --git a/requirements1.18.19.txt b/requirements1.18.19.txt deleted file mode 100644 index 4f291e5..0000000 --- a/requirements1.18.19.txt +++ /dev/null @@ -1,7 +0,0 @@ -Django==1.8.19 -django-extensions==2.2.9 -django-registration==2.0 -Pillow==7.1.0 -six==1.15.0 -sqlparse==0.3.1 -Unidecode==1.1.0 diff --git a/settings.py b/settings.py index eec525f..51c2633 100644 --- a/settings.py +++ b/settings.py @@ -92,7 +92,7 @@ APPEND_SLASH = False SMART_APPEND_SLASH = True # Make this unique, and don't share it with anybody. -SECRET_KEY = 'a#vaeozn0)uz_9t_%v5n#tj)m+%ace6b_0(^fj!355qki*v)j2' +SECRET_KEY = "not-the-real-secret-key-a#vaeozn0---^fj!355qki*vj2" LOGIN_REDIRECT_URL = '/' diff --git a/inspectdb.py b/troggle-inspectdb.py similarity index 55% rename from inspectdb.py rename to troggle-inspectdb.py index d879c5e..99f4ca7 100644 --- a/inspectdb.py +++ b/troggle-inspectdb.py @@ -1,22 +1,17 @@ -** importing troggle/settings.py -** importing troggle/localsettings.py -** finished importing troggle/localsettings.py -** finished importing troggle/settings.py - 1 settings on loading databaseReset.py +* importing troggle/settings.py + * importing troggle/localsettings.py + + finished importing troggle/localsettings.py ++ finished importing troggle/settings.py +* importing troggle/settings.py ++ finished importing troggle/settings.py ** importing troggle/core/views_other.py # This is an auto-generated Django model module. - -# autogenerated by: -# $ python manage.py inspectdb - # You'll have to do the following manually to clean this up: # * Rearrange models' order # * Make sure each model has one field with primary_key=True +# * Make sure each ForeignKey has `on_delete` set to the desired behavior. # * Remove `managed = False` lines if you wish to allow Django to create, modify, and delete the table # Feel free to rename the models, but don't rename db_table values or field names. -# -# Also note: You'll have to insert the output of 'django-admin.py sqlcustom [app_label]' -# into your database. from __future__ import unicode_literals from django.db import models @@ -29,65 +24,42 @@ class AuthGroup(models.Model): class Meta: managed = False db_table = 'auth_group' - - -class AuthGroupPermissions(models.Model): - id = models.IntegerField(primary_key=True) # AutoField? - group = models.ForeignKey(AuthGroup) - permission = models.ForeignKey('AuthPermission') - - class Meta: - managed = False - db_table = 'auth_group_permissions' +# Unable to inspect table 'auth_group_permissions' +# The error was: list index out of range class AuthPermission(models.Model): id = models.IntegerField(primary_key=True) # AutoField? - name = models.CharField(max_length=50) - content_type = models.ForeignKey('DjangoContentType') + content_type = models.ForeignKey('DjangoContentType', models.DO_NOTHING) codename = models.CharField(max_length=100) + name = models.CharField(max_length=255) class Meta: managed = False db_table = 'auth_permission' + unique_together = (('content_type', 'codename'),) class AuthUser(models.Model): id = models.IntegerField(primary_key=True) # AutoField? password = models.CharField(max_length=128) - last_login = models.DateTimeField() + last_login = models.DateTimeField(blank=True, null=True) is_superuser = models.BooleanField() - username = models.CharField(unique=True, max_length=30) first_name = models.CharField(max_length=30) last_name = models.CharField(max_length=30) - email = models.CharField(max_length=75) + email = models.CharField(max_length=254) is_staff = models.BooleanField() is_active = models.BooleanField() date_joined = models.DateTimeField() + username = models.CharField(unique=True, max_length=150) class Meta: managed = False db_table = 'auth_user' - - -class AuthUserGroups(models.Model): - id = models.IntegerField(primary_key=True) # AutoField? - user = models.ForeignKey(AuthUser) - group = models.ForeignKey(AuthGroup) - - class Meta: - managed = False - db_table = 'auth_user_groups' - - -class AuthUserUserPermissions(models.Model): - id = models.IntegerField(primary_key=True) # AutoField? - user = models.ForeignKey(AuthUser) - permission = models.ForeignKey(AuthPermission) - - class Meta: - managed = False - db_table = 'auth_user_user_permissions' +# Unable to inspect table 'auth_user_groups' +# The error was: list index out of range +# Unable to inspect table 'auth_user_user_permissions' +# The error was: list index out of range class CoreArea(models.Model): @@ -95,9 +67,9 @@ class CoreArea(models.Model): new_since_parsing = models.BooleanField() non_public = models.BooleanField() short_name = models.CharField(max_length=100) - name = models.CharField(max_length=200, blank=True) - description = models.TextField(blank=True) - parent = models.ForeignKey('self', blank=True, null=True) + name = models.CharField(max_length=200, blank=True, null=True) + description = models.TextField(blank=True, null=True) + parent = models.ForeignKey('self', models.DO_NOTHING, blank=True, null=True) class Meta: managed = False @@ -109,23 +81,23 @@ class CoreCave(models.Model): new_since_parsing = models.BooleanField() non_public = models.BooleanField() official_name = models.CharField(max_length=160) - kataster_code = models.CharField(max_length=20, blank=True) - kataster_number = models.CharField(max_length=10, blank=True) - unofficial_number = models.CharField(max_length=60, blank=True) - explorers = models.TextField(blank=True) - underground_description = models.TextField(blank=True) - equipment = models.TextField(blank=True) - references = models.TextField(blank=True) - survey = models.TextField(blank=True) - kataster_status = models.TextField(blank=True) - underground_centre_line = models.TextField(blank=True) - notes = models.TextField(blank=True) - length = models.CharField(max_length=100, blank=True) - depth = models.CharField(max_length=100, blank=True) - extent = models.CharField(max_length=100, blank=True) - survex_file = models.CharField(max_length=100, blank=True) - description_file = models.CharField(max_length=200, blank=True) - url = models.CharField(max_length=200, blank=True) + kataster_code = models.CharField(max_length=20, blank=True, null=True) + kataster_number = models.CharField(max_length=10, blank=True, null=True) + unofficial_number = models.CharField(max_length=60, blank=True, null=True) + explorers = models.TextField(blank=True, null=True) + underground_description = models.TextField(blank=True, null=True) + equipment = models.TextField(blank=True, null=True) + references = models.TextField(blank=True, null=True) + survey = models.TextField(blank=True, null=True) + kataster_status = models.TextField(blank=True, null=True) + underground_centre_line = models.TextField(blank=True, null=True) + notes = models.TextField(blank=True, null=True) + length = models.CharField(max_length=100, blank=True, null=True) + depth = models.CharField(max_length=100, blank=True, null=True) + extent = models.CharField(max_length=100, blank=True, null=True) + survex_file = models.CharField(max_length=100, blank=True, null=True) + description_file = models.CharField(max_length=200, blank=True, null=True) + url = models.CharField(max_length=200, blank=True, null=True) filename = models.CharField(max_length=200) class Meta: @@ -135,19 +107,20 @@ class CoreCave(models.Model): class CoreCaveArea(models.Model): id = models.IntegerField(primary_key=True) # AutoField? - cave_id = models.IntegerField() - area = models.ForeignKey(CoreArea) + cave = models.ForeignKey(CoreCave, models.DO_NOTHING) + area = models.ForeignKey(CoreArea, models.DO_NOTHING) class Meta: managed = False db_table = 'core_cave_area' + unique_together = (('cave', 'area'),) class CoreCaveandentrance(models.Model): id = models.IntegerField(primary_key=True) # AutoField? - cave_id = models.IntegerField() - entrance_id = models.IntegerField() - entrance_letter = models.CharField(max_length=20, blank=True) + entrance_letter = models.CharField(max_length=20, blank=True, null=True) + cave = models.ForeignKey(CoreCave, models.DO_NOTHING) + entrance = models.ForeignKey('CoreEntrance', models.DO_NOTHING) class Meta: managed = False @@ -159,8 +132,8 @@ class CoreCavedescription(models.Model): new_since_parsing = models.BooleanField() non_public = models.BooleanField() short_name = models.CharField(unique=True, max_length=50) - long_name = models.CharField(max_length=200, blank=True) - description = models.TextField(blank=True) + long_name = models.CharField(max_length=200, blank=True, null=True) + description = models.TextField(blank=True, null=True) class Meta: managed = False @@ -169,39 +142,42 @@ class CoreCavedescription(models.Model): class CoreCavedescriptionLinkedEntrances(models.Model): id = models.IntegerField(primary_key=True) # AutoField? - cavedescription_id = models.IntegerField() - entrance = models.ForeignKey('CoreEntrance') + cavedescription = models.ForeignKey(CoreCavedescription, models.DO_NOTHING) + entrance = models.ForeignKey('CoreEntrance', models.DO_NOTHING) class Meta: managed = False db_table = 'core_cavedescription_linked_entrances' + unique_together = (('cavedescription', 'entrance'),) class CoreCavedescriptionLinkedQms(models.Model): id = models.IntegerField(primary_key=True) # AutoField? - cavedescription_id = models.IntegerField() - qm_id = models.IntegerField() + cavedescription = models.ForeignKey(CoreCavedescription, models.DO_NOTHING) + qm = models.ForeignKey('CoreQm', models.DO_NOTHING) class Meta: managed = False db_table = 'core_cavedescription_linked_qms' + unique_together = (('cavedescription', 'qm'),) class CoreCavedescriptionLinkedSubcaves(models.Model): id = models.IntegerField(primary_key=True) # AutoField? - cavedescription_id = models.IntegerField() - newsubcave_id = models.IntegerField() + cavedescription = models.ForeignKey(CoreCavedescription, models.DO_NOTHING) + newsubcave = models.ForeignKey('CoreNewsubcave', models.DO_NOTHING) class Meta: managed = False db_table = 'core_cavedescription_linked_subcaves' + unique_together = (('cavedescription', 'newsubcave'),) class CoreCaveslug(models.Model): id = models.IntegerField(primary_key=True) # AutoField? - cave_id = models.IntegerField() slug = models.CharField(unique=True, max_length=50) primary = models.BooleanField() + cave = models.ForeignKey(CoreCave, models.DO_NOTHING) class Meta: managed = False @@ -213,8 +189,8 @@ class CoreDataissue(models.Model): new_since_parsing = models.BooleanField() non_public = models.BooleanField() date = models.DateTimeField() - parser = models.CharField(max_length=50, blank=True) - message = models.CharField(max_length=400, blank=True) + parser = models.CharField(max_length=50, blank=True, null=True) + message = models.CharField(max_length=400, blank=True, null=True) class Meta: managed = False @@ -225,29 +201,29 @@ class CoreEntrance(models.Model): id = models.IntegerField(primary_key=True) # AutoField? new_since_parsing = models.BooleanField() non_public = models.BooleanField() - name = models.CharField(max_length=100, blank=True) - entrance_description = models.TextField(blank=True) - explorers = models.TextField(blank=True) - map_description = models.TextField(blank=True) - location_description = models.TextField(blank=True) - approach = models.TextField(blank=True) - underground_description = models.TextField(blank=True) - photo = models.TextField(blank=True) + name = models.CharField(max_length=100, blank=True, null=True) + entrance_description = models.TextField(blank=True, null=True) + explorers = models.TextField(blank=True, null=True) + map_description = models.TextField(blank=True, null=True) + location_description = models.TextField(blank=True, null=True) + approach = models.TextField(blank=True, null=True) + underground_description = models.TextField(blank=True, null=True) + photo = models.TextField(blank=True, null=True) marking = models.CharField(max_length=2) - marking_comment = models.TextField(blank=True) - findability = models.CharField(max_length=1, blank=True) - findability_description = models.TextField(blank=True) - alt = models.TextField(blank=True) - northing = models.TextField(blank=True) - easting = models.TextField(blank=True) - tag_station = models.TextField(blank=True) - exact_station = models.TextField(blank=True) - other_station = models.TextField(blank=True) - other_description = models.TextField(blank=True) - bearings = models.TextField(blank=True) - url = models.CharField(max_length=200, blank=True) + marking_comment = models.TextField(blank=True, null=True) + findability = models.CharField(max_length=1, blank=True, null=True) + findability_description = models.TextField(blank=True, null=True) + alt = models.TextField(blank=True, null=True) + northing = models.TextField(blank=True, null=True) + easting = models.TextField(blank=True, null=True) + tag_station = models.TextField(blank=True, null=True) + exact_station = models.TextField(blank=True, null=True) + other_station = models.TextField(blank=True, null=True) + other_description = models.TextField(blank=True, null=True) + bearings = models.TextField(blank=True, null=True) + url = models.CharField(max_length=200, blank=True, null=True) filename = models.CharField(max_length=200) - cached_primary_slug = models.CharField(max_length=200, blank=True) + cached_primary_slug = models.CharField(max_length=200, blank=True, null=True) class Meta: managed = False @@ -256,9 +232,9 @@ class CoreEntrance(models.Model): class CoreEntranceslug(models.Model): id = models.IntegerField(primary_key=True) # AutoField? - entrance_id = models.IntegerField() slug = models.CharField(unique=True, max_length=50) primary = models.BooleanField() + entrance = models.ForeignKey(CoreEntrance, models.DO_NOTHING) class Meta: managed = False @@ -281,8 +257,8 @@ class CoreExpeditionday(models.Model): id = models.IntegerField(primary_key=True) # AutoField? new_since_parsing = models.BooleanField() non_public = models.BooleanField() - expedition = models.ForeignKey(CoreExpedition) date = models.DateField() + expedition = models.ForeignKey(CoreExpedition, models.DO_NOTHING) class Meta: managed = False @@ -294,15 +270,15 @@ class CoreLogbookentry(models.Model): new_since_parsing = models.BooleanField() non_public = models.BooleanField() date = models.DateField() - expeditionday = models.ForeignKey(CoreExpeditionday, blank=True, null=True) - expedition = models.ForeignKey(CoreExpedition, blank=True, null=True) title = models.CharField(max_length=200) - cave_slug = models.CharField(max_length=50) - place = models.CharField(max_length=100, blank=True) + cave_slug = models.CharField(max_length=50, blank=True, null=True) + place = models.CharField(max_length=100, blank=True, null=True) text = models.TextField() slug = models.CharField(max_length=50) - filename = models.CharField(max_length=200, blank=True) - entry_type = models.CharField(max_length=50, blank=True) + filename = models.CharField(max_length=200, blank=True, null=True) + entry_type = models.CharField(max_length=50, blank=True, null=True) + expedition = models.ForeignKey(CoreExpedition, models.DO_NOTHING, blank=True, null=True) + expeditionday = models.ForeignKey(CoreExpeditionday, models.DO_NOTHING, blank=True, null=True) class Meta: managed = False @@ -325,7 +301,7 @@ class CoreOthercavename(models.Model): new_since_parsing = models.BooleanField() non_public = models.BooleanField() name = models.CharField(max_length=160) - cave = models.ForeignKey(CoreCave) + cave = models.ForeignKey(CoreCave, models.DO_NOTHING) class Meta: managed = False @@ -340,10 +316,10 @@ class CorePerson(models.Model): last_name = models.CharField(max_length=100) fullname = models.CharField(max_length=200) is_vfho = models.BooleanField() - mug_shot = models.CharField(max_length=100, blank=True) - blurb = models.TextField(blank=True) + mug_shot = models.CharField(max_length=100, blank=True, null=True) + blurb = models.TextField(blank=True, null=True) orderref = models.CharField(max_length=200) - user_id = models.IntegerField(unique=True, blank=True, null=True) + user = models.ForeignKey(AuthUser, models.DO_NOTHING, unique=True, blank=True, null=True) class Meta: managed = False @@ -354,12 +330,12 @@ class CorePersonexpedition(models.Model): id = models.IntegerField(primary_key=True) # AutoField? new_since_parsing = models.BooleanField() non_public = models.BooleanField() - expedition = models.ForeignKey(CoreExpedition) - person = models.ForeignKey(CorePerson) - slugfield = models.CharField(max_length=50, blank=True) + slugfield = models.CharField(max_length=50, blank=True, null=True) is_guest = models.BooleanField() - expo_committee_position = models.CharField(max_length=200, blank=True) - nickname = models.CharField(max_length=100, blank=True) + expo_committee_position = models.CharField(max_length=200, blank=True, null=True) + nickname = models.CharField(max_length=100, blank=True, null=True) + expedition = models.ForeignKey(CoreExpedition, models.DO_NOTHING) + person = models.ForeignKey(CorePerson, models.DO_NOTHING) class Meta: managed = False @@ -370,10 +346,10 @@ class CorePersontrip(models.Model): id = models.IntegerField(primary_key=True) # AutoField? new_since_parsing = models.BooleanField() non_public = models.BooleanField() - personexpedition = models.ForeignKey(CorePersonexpedition, blank=True, null=True) time_underground = models.FloatField() - logbook_entry = models.ForeignKey(CoreLogbookentry) is_logbook_entry_author = models.BooleanField() + logbook_entry = models.ForeignKey(CoreLogbookentry, models.DO_NOTHING) + personexpedition = models.ForeignKey(CorePersonexpedition, models.DO_NOTHING, blank=True, null=True) class Meta: managed = False @@ -384,17 +360,17 @@ class CoreQm(models.Model): id = models.IntegerField(primary_key=True) # AutoField? new_since_parsing = models.BooleanField() non_public = models.BooleanField() - found_by = models.ForeignKey(CoreLogbookentry, blank=True, null=True) - ticked_off_by = models.ForeignKey(CoreLogbookentry, blank=True, null=True) number = models.IntegerField() grade = models.CharField(max_length=1) location_description = models.TextField() - nearest_station_description = models.CharField(max_length=400, blank=True) - nearest_station_name = models.CharField(max_length=200, blank=True) - nearest_station = models.ForeignKey('CoreSurvexstation', blank=True, null=True) - area = models.CharField(max_length=100, blank=True) - completion_description = models.TextField(blank=True) - comment = models.TextField(blank=True) + nearest_station_description = models.CharField(max_length=400, blank=True, null=True) + nearest_station_name = models.CharField(max_length=200, blank=True, null=True) + area = models.CharField(max_length=100, blank=True, null=True) + completion_description = models.TextField(blank=True, null=True) + comment = models.TextField(blank=True, null=True) + found_by = models.ForeignKey(CoreLogbookentry, models.DO_NOTHING, blank=True, null=True) + nearest_station = models.ForeignKey('CoreSurvexstation', models.DO_NOTHING, blank=True, null=True) + ticked_off_by = models.ForeignKey(CoreLogbookentry, models.DO_NOTHING, blank=True, null=True) class Meta: managed = False @@ -404,17 +380,18 @@ class CoreQm(models.Model): class CoreSurvexblock(models.Model): id = models.IntegerField(primary_key=True) # AutoField? name = models.CharField(max_length=100) - parent = models.ForeignKey('self', blank=True, null=True) - text = models.TextField() - cave_id = models.IntegerField(blank=True, null=True) date = models.DateField(blank=True, null=True) - expeditionday_id = models.IntegerField(blank=True, null=True) - expedition_id = models.IntegerField(blank=True, null=True) - survexfile = models.ForeignKey('CoreSurvexfile', blank=True, null=True) - begin_char = models.IntegerField() survexpath = models.CharField(max_length=200) - survexscansfolder_id = models.IntegerField(blank=True, null=True) - totalleglength = models.FloatField() + legsall = models.IntegerField(blank=True, null=True) + legssplay = models.IntegerField(blank=True, null=True) + legssurfc = models.IntegerField(blank=True, null=True) + totalleglength = models.FloatField(blank=True, null=True) + cave = models.ForeignKey(CoreCave, models.DO_NOTHING, blank=True, null=True) + expedition = models.ForeignKey(CoreExpedition, models.DO_NOTHING, blank=True, null=True) + expeditionday = models.ForeignKey(CoreExpeditionday, models.DO_NOTHING, blank=True, null=True) + survexfile = models.ForeignKey('CoreSurvexfile', models.DO_NOTHING, blank=True, null=True) + survexscansfolder = models.ForeignKey('CoreSurvexscansfolder', models.DO_NOTHING, blank=True, null=True) + parent = models.ForeignKey('self', models.DO_NOTHING, blank=True, null=True) class Meta: managed = False @@ -424,8 +401,8 @@ class CoreSurvexblock(models.Model): class CoreSurvexdirectory(models.Model): id = models.IntegerField(primary_key=True) # AutoField? path = models.CharField(max_length=200) - cave_id = models.IntegerField(blank=True, null=True) - primarysurvexfile_id = models.IntegerField(blank=True, null=True) + cave = models.ForeignKey(CoreCave, models.DO_NOTHING, blank=True, null=True) + primarysurvexfile = models.ForeignKey('CoreSurvexfile', models.DO_NOTHING, blank=True, null=True) class Meta: managed = False @@ -434,51 +411,15 @@ class CoreSurvexdirectory(models.Model): class CoreSurvexequate(models.Model): id = models.IntegerField(primary_key=True) # AutoField? - cave_id = models.IntegerField(blank=True, null=True) + cave = models.ForeignKey(CoreCave, models.DO_NOTHING, blank=True, null=True) class Meta: managed = False db_table = 'core_survexequate' - - -class CoreSurvexfile(models.Model): - id = models.IntegerField(primary_key=True) # AutoField? - path = models.CharField(max_length=200) - survexdirectory = models.ForeignKey(CoreSurvexdirectory, blank=True, null=True) - cave_id = models.IntegerField(blank=True, null=True) - - class Meta: - managed = False - db_table = 'core_survexfile' - - -class CoreSurvexleg(models.Model): - id = models.IntegerField(primary_key=True) # AutoField? - block_id = models.IntegerField() - stationfrom = models.ForeignKey('CoreSurvexstation') - stationto = models.ForeignKey('CoreSurvexstation') - tape = models.FloatField() - compass = models.FloatField() - clino = models.FloatField() - - class Meta: - managed = False - db_table = 'core_survexleg' - - -class CoreSurvexpersonrole(models.Model): - id = models.IntegerField(primary_key=True) # AutoField? - survexblock = models.ForeignKey(CoreSurvexblock) - nrole = models.CharField(max_length=200, blank=True) - personname = models.CharField(max_length=100) - person_id = models.IntegerField(blank=True, null=True) - personexpedition_id = models.IntegerField(blank=True, null=True) - persontrip_id = models.IntegerField(blank=True, null=True) - expeditionday_id = models.IntegerField(blank=True, null=True) - - class Meta: - managed = False - db_table = 'core_survexpersonrole' +# Unable to inspect table 'core_survexfile' +# The error was: list index out of range +# Unable to inspect table 'core_survexpersonrole' +# The error was: list index out of range class CoreSurvexscansfolder(models.Model): @@ -495,36 +436,15 @@ class CoreSurvexscansingle(models.Model): id = models.IntegerField(primary_key=True) # AutoField? ffile = models.CharField(max_length=200) name = models.CharField(max_length=200) - survexscansfolder = models.ForeignKey(CoreSurvexscansfolder, blank=True, null=True) + survexscansfolder = models.ForeignKey(CoreSurvexscansfolder, models.DO_NOTHING, blank=True, null=True) class Meta: managed = False db_table = 'core_survexscansingle' - - -class CoreSurvexstation(models.Model): - id = models.IntegerField(primary_key=True) # AutoField? - name = models.CharField(max_length=100) - block_id = models.IntegerField() - equate = models.ForeignKey(CoreSurvexequate, blank=True, null=True) - x = models.FloatField(blank=True, null=True) - y = models.FloatField(blank=True, null=True) - z = models.FloatField(blank=True, null=True) - - class Meta: - managed = False - db_table = 'core_survexstation' - - -class CoreSurvextitle(models.Model): - id = models.IntegerField(primary_key=True) # AutoField? - survexblock = models.ForeignKey(CoreSurvexblock) - title = models.CharField(max_length=200) - cave_id = models.IntegerField(blank=True, null=True) - - class Meta: - managed = False - db_table = 'core_survextitle' +# Unable to inspect table 'core_survexstation' +# The error was: list index out of range +# Unable to inspect table 'core_survextitle' +# The error was: list index out of range class CoreTunnelfile(models.Model): @@ -538,82 +458,65 @@ class CoreTunnelfile(models.Model): class Meta: managed = False db_table = 'core_tunnelfile' - - -class CoreTunnelfileSurvexblocks(models.Model): - id = models.IntegerField(primary_key=True) # AutoField? - tunnelfile_id = models.IntegerField() - survexblock = models.ForeignKey(CoreSurvexblock) - - class Meta: - managed = False - db_table = 'core_tunnelfile_survexblocks' +# Unable to inspect table 'core_tunnelfile_survexblocks' +# The error was: list index out of range class CoreTunnelfileSurvexscans(models.Model): id = models.IntegerField(primary_key=True) # AutoField? - tunnelfile_id = models.IntegerField() - survexscansingle = models.ForeignKey(CoreSurvexscansingle) + tunnelfile = models.ForeignKey(CoreTunnelfile, models.DO_NOTHING) + survexscansingle = models.ForeignKey(CoreSurvexscansingle, models.DO_NOTHING) class Meta: managed = False db_table = 'core_tunnelfile_survexscans' + unique_together = (('tunnelfile', 'survexscansingle'),) class CoreTunnelfileSurvexscansfolders(models.Model): id = models.IntegerField(primary_key=True) # AutoField? - tunnelfile_id = models.IntegerField() - survexscansfolder = models.ForeignKey(CoreSurvexscansfolder) + tunnelfile = models.ForeignKey(CoreTunnelfile, models.DO_NOTHING) + survexscansfolder = models.ForeignKey(CoreSurvexscansfolder, models.DO_NOTHING) class Meta: managed = False db_table = 'core_tunnelfile_survexscansfolders' + unique_together = (('tunnelfile', 'survexscansfolder'),) class CoreTunnelfileSurvextitles(models.Model): id = models.IntegerField(primary_key=True) # AutoField? - tunnelfile_id = models.IntegerField() - survextitle = models.ForeignKey(CoreSurvextitle) + tunnelfile = models.ForeignKey(CoreTunnelfile, models.DO_NOTHING) + survextitle = models.ForeignKey('CoreSurvextitle', models.DO_NOTHING) class Meta: managed = False db_table = 'core_tunnelfile_survextitles' + unique_together = (('tunnelfile', 'survextitle'),) class CoreTunnelfileTunnelcontains(models.Model): id = models.IntegerField(primary_key=True) # AutoField? - from_tunnelfile_id = models.IntegerField() - to_tunnelfile_id = models.IntegerField() + from_tunnelfile = models.ForeignKey(CoreTunnelfile, models.DO_NOTHING) + to_tunnelfile = models.ForeignKey(CoreTunnelfile, models.DO_NOTHING) class Meta: managed = False db_table = 'core_tunnelfile_tunnelcontains' - - -class DjangoAdminLog(models.Model): - id = models.IntegerField(primary_key=True) # AutoField? - action_time = models.DateTimeField() - object_id = models.TextField(blank=True) - object_repr = models.CharField(max_length=200) - action_flag = models.PositiveSmallIntegerField() - change_message = models.TextField() - content_type = models.ForeignKey('DjangoContentType', blank=True, null=True) - user = models.ForeignKey(AuthUser) - - class Meta: - managed = False - db_table = 'django_admin_log' + unique_together = (('from_tunnelfile', 'to_tunnelfile'),) +# Unable to inspect table 'django_admin_log' +# The error was: list index out of range class DjangoContentType(models.Model): id = models.IntegerField(primary_key=True) # AutoField? - name = models.CharField(max_length=100) app_label = models.CharField(max_length=100) model = models.CharField(max_length=100) class Meta: managed = False db_table = 'django_content_type' + unique_together = (('app_label', 'model'),) class DjangoMigrations(models.Model): @@ -627,17 +530,6 @@ class DjangoMigrations(models.Model): db_table = 'django_migrations' -class DjangoRedirect(models.Model): - id = models.IntegerField(primary_key=True) # AutoField? - site = models.ForeignKey('DjangoSite') - old_path = models.CharField(max_length=200) - new_path = models.CharField(max_length=200) - - class Meta: - managed = False - db_table = 'django_redirect' - - class DjangoSession(models.Model): session_key = models.CharField(primary_key=True, max_length=40) session_data = models.TextField() @@ -648,20 +540,10 @@ class DjangoSession(models.Model): db_table = 'django_session' -class DjangoSite(models.Model): - id = models.IntegerField(primary_key=True) # AutoField? - domain = models.CharField(max_length=100) - name = models.CharField(max_length=50) - - class Meta: - managed = False - db_table = 'django_site' - - class FlatpagesEntranceredirect(models.Model): id = models.IntegerField(primary_key=True) # AutoField? originalurl = models.CharField(db_column='originalURL', max_length=200) # Field name made lowercase. - entrance = models.ForeignKey(CoreEntrance) + entrance = models.ForeignKey(CoreEntrance, models.DO_NOTHING) class Meta: managed = False @@ -681,7 +563,7 @@ class FlatpagesRedirect(models.Model): class RegistrationRegistrationprofile(models.Model): id = models.IntegerField(primary_key=True) # AutoField? activation_key = models.CharField(max_length=40) - user = models.ForeignKey(AuthUser, unique=True) + user = models.ForeignKey(AuthUser, models.DO_NOTHING, unique=True) class Meta: managed = False