summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPhilip Sargent <philip.sargent@klebos.com>2020-06-20 15:43:28 +0100
committerPhilip Sargent <philip.sargent@klebos.com>2020-06-20 16:51:07 +0100
commite697466557b7ec370a0bd424a33b84074e41d564 (patch)
tree37bf6f095ccf281fb864a4a7947f21a36c315894
parentb35a0b0d26303e61e20b320db9358ae425c49933 (diff)
downloadtroggle-e697466557b7ec370a0bd424a33b84074e41d564.tar.gz
troggle-e697466557b7ec370a0bd424a33b84074e41d564.tar.bz2
troggle-e697466557b7ec370a0bd424a33b84074e41d564.zip
Cleanup secrets management, pre-run checks.
-rw-r--r--0001_initial.py545
-rw-r--r--core/migrations/0001_initial.py4
-rw-r--r--core/migrations/0002_auto_20200619_1511.py20
-rw-r--r--core/migrations/0003_auto_20200619_1513.py20
-rw-r--r--core/view_surveys.py1
-rw-r--r--deprecations.txt2
-rw-r--r--flatpages/migrations/0001_initial.py2
-rw-r--r--lines-of-python.txt52
-rw-r--r--lines-of-templates.txt58
-rw-r--r--localsettingsdocker.py2
-rw-r--r--localsettingspotatohut.py5
-rw-r--r--localsettingsserver.py7
-rw-r--r--localsettingsubuntu.py4
-rw-r--r--localsettingswindows.py12
-rw-r--r--pre-push.sh33
-rw-r--r--pre-run.sh17
-rw-r--r--req1.10.8+2.3.txt7
-rw-r--r--req1.11.19.txt8
-rw-r--r--requirements-rough1.9.13.txt7
-rw-r--r--requirements-works1.7.4.txt109
-rw-r--r--requirements-works1.8.19.txt7
-rw-r--r--requirements-works1.8.19b.txt7
-rw-r--r--requirements1.18.19.txt7
-rw-r--r--settings.py2
-rw-r--r--troggle-inspectdb.py (renamed from inspectdb.py)414
25 files changed, 334 insertions, 1018 deletions
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&uuml;r H&ouml;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
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