mirror of
https://expo.survex.com/repositories/troggle/.git
synced 2024-11-28 10:02:10 +00:00
sort imports using isort. tested.
This commit is contained in:
parent
939d3970aa
commit
be9fcc522a
@ -18,11 +18,12 @@ them.
|
|||||||
|
|
||||||
https://docs.djangoproject.com/en/3.0/topics/testing/tools/
|
https://docs.djangoproject.com/en/3.0/topics/testing/tools/
|
||||||
"""
|
"""
|
||||||
import unittest
|
|
||||||
import re
|
import re
|
||||||
import subprocess
|
import subprocess
|
||||||
|
import unittest
|
||||||
|
|
||||||
|
from django.test import Client, SimpleTestCase, TestCase
|
||||||
|
|
||||||
from django.test import TestCase, SimpleTestCase, Client
|
|
||||||
|
|
||||||
class SimpleTest(SimpleTestCase):
|
class SimpleTest(SimpleTestCase):
|
||||||
def test_test_setting(self):
|
def test_test_setting(self):
|
||||||
@ -35,78 +36,93 @@ class SimpleTest(SimpleTestCase):
|
|||||||
from troggle.core.models.caves import Cave
|
from troggle.core.models.caves import Cave
|
||||||
def test_import_parsers_surveys(self):
|
def test_import_parsers_surveys(self):
|
||||||
#from PIL import Image
|
#from PIL import Image
|
||||||
from troggle.core.utils import save_carefully
|
|
||||||
from functools import reduce
|
from functools import reduce
|
||||||
|
|
||||||
|
from troggle.core.utils import save_carefully
|
||||||
def test_import_parsers_survex(self):
|
def test_import_parsers_survex(self):
|
||||||
import troggle.settings as settings
|
|
||||||
import troggle.core.models.troggle as models
|
|
||||||
import troggle.core.models.survex as models_survex
|
|
||||||
import troggle.core.models.caves as models_caves
|
import troggle.core.models.caves as models_caves
|
||||||
from troggle.parsers.people import GetPersonExpeditionNameLookup
|
import troggle.core.models.survex as models_survex
|
||||||
|
import troggle.core.models.troggle as models
|
||||||
|
import troggle.settings as settings
|
||||||
|
from troggle.core.views import (caves, drawings, other, scans,
|
||||||
|
statistics, survex, uploads)
|
||||||
|
from troggle.core.views.caves import cavepage, ent
|
||||||
from troggle.core.views.other import frontpage
|
from troggle.core.views.other import frontpage
|
||||||
from troggle.core.views.caves import ent, cavepage
|
from troggle.parsers.people import GetPersonExpeditionNameLookup
|
||||||
from troggle.core.views import scans, drawings, other, caves, statistics, survex, uploads
|
|
||||||
def test_import_views_uploads(self):
|
def test_import_views_uploads(self):
|
||||||
from troggle.core.views.uploads import dwgupload, scanupload
|
from troggle.core.views.uploads import dwgupload, scanupload
|
||||||
def test_import_parsers_QMs(self):
|
def test_import_parsers_QMs(self):
|
||||||
from troggle.core.models.caves import QM, Cave, LogbookEntry
|
from troggle.core.models.caves import QM, Cave, LogbookEntry
|
||||||
def test_import_parsers_people(self):
|
def test_import_parsers_people(self):
|
||||||
from html import unescape
|
from html import unescape
|
||||||
|
|
||||||
from unidecode import unidecode
|
from unidecode import unidecode
|
||||||
def test_import_parsers_logbooks(self):
|
def test_import_parsers_logbooks(self):
|
||||||
from django.template.defaultfilters import slugify
|
from django.template.defaultfilters import slugify
|
||||||
from django.utils.timezone import get_current_timezone, make_aware
|
from django.utils.timezone import get_current_timezone, make_aware
|
||||||
from troggle.core.models.troggle import DataIssue, Expedition
|
|
||||||
from troggle.core.models.caves import Cave, LogbookEntry, PersonTrip
|
|
||||||
from parsers.people import GetPersonExpeditionNameLookup
|
from parsers.people import GetPersonExpeditionNameLookup
|
||||||
|
from troggle.core.models.caves import Cave, LogbookEntry, PersonTrip
|
||||||
|
from troggle.core.models.troggle import DataIssue, Expedition
|
||||||
def test_import_core_views_caves(self):
|
def test_import_core_views_caves(self):
|
||||||
|
from django.conf import settings
|
||||||
|
from django.contrib.auth.decorators import login_required
|
||||||
from django.http import HttpResponse, HttpResponseRedirect
|
from django.http import HttpResponse, HttpResponseRedirect
|
||||||
from django.shortcuts import get_object_or_404, render
|
from django.shortcuts import get_object_or_404, render
|
||||||
|
|
||||||
import troggle.core.views.expo
|
import troggle.core.views.expo
|
||||||
|
from troggle.core.forms import (CaveAndEntranceFormSet, CaveForm,
|
||||||
|
EntranceForm, EntranceLetterForm)
|
||||||
|
from troggle.core.models.caves import (QM, Area, Cave, CaveAndEntrance,
|
||||||
|
CaveSlug, Entrance,
|
||||||
|
EntranceSlug, SurvexStation)
|
||||||
from troggle.core.models.troggle import Expedition
|
from troggle.core.models.troggle import Expedition
|
||||||
from troggle.core.models.caves import CaveSlug, Cave, CaveAndEntrance, QM, EntranceSlug, Entrance, Area, SurvexStation
|
|
||||||
from troggle.core.forms import CaveForm, CaveAndEntranceFormSet, EntranceForm, EntranceLetterForm
|
|
||||||
from troggle.core.views.auth import login_required_if_public
|
from troggle.core.views.auth import login_required_if_public
|
||||||
from django.contrib.auth.decorators import login_required
|
|
||||||
from django.conf import settings
|
|
||||||
def test_import_parsers_mix(self):
|
def test_import_parsers_mix(self):
|
||||||
from troggle.parsers.logbooks import GetCaveLookup
|
|
||||||
import troggle.settings
|
|
||||||
import troggle.parsers.caves
|
import troggle.parsers.caves
|
||||||
import troggle.parsers.people
|
|
||||||
import troggle.parsers.drawings
|
import troggle.parsers.drawings
|
||||||
import troggle.parsers.scans
|
|
||||||
import troggle.parsers.logbooks
|
import troggle.parsers.logbooks
|
||||||
|
import troggle.parsers.people
|
||||||
import troggle.parsers.QMs
|
import troggle.parsers.QMs
|
||||||
|
import troggle.parsers.scans
|
||||||
import troggle.parsers.survex
|
import troggle.parsers.survex
|
||||||
|
import troggle.settings
|
||||||
|
from troggle.parsers.logbooks import GetCaveLookup
|
||||||
def test_import_imports(self):
|
def test_import_imports(self):
|
||||||
from django.core import management
|
|
||||||
from django.db import connection, close_old_connections, connections
|
|
||||||
from django.contrib.auth.models import User
|
from django.contrib.auth.models import User
|
||||||
|
from django.core import management
|
||||||
|
from django.db import close_old_connections, connection, connections
|
||||||
from django.http import HttpResponse
|
from django.http import HttpResponse
|
||||||
from django.urls import reverse
|
from django.urls import reverse
|
||||||
|
|
||||||
def test_import_urls(self):
|
def test_import_urls(self):
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
from django.conf.urls import url, include
|
from django.conf.urls import include, url
|
||||||
from django.contrib import admin
|
from django.contrib import admin, auth
|
||||||
from django.contrib import auth
|
from django.urls import resolve, reverse
|
||||||
from django.urls import reverse, resolve
|
|
||||||
from django.views.generic.base import RedirectView
|
from django.views.generic.base import RedirectView
|
||||||
from django.views.generic.edit import UpdateView
|
from django.views.generic.edit import UpdateView
|
||||||
from django.views.generic.list import ListView
|
from django.views.generic.list import ListView
|
||||||
from troggle.core.views import other, caves, statistics, survex
|
|
||||||
|
from troggle.core.views import caves, other, statistics, survex
|
||||||
from troggle.core.views.auth import expologin, expologout
|
from troggle.core.views.auth import expologin, expologout
|
||||||
from troggle.core.views.caves import ent, cavepage
|
from troggle.core.views.caves import cavepage, ent
|
||||||
from troggle.core.views.expo import expofiles_redirect, expofilessingle, expopage, editexpopage, mediapage, map, mapfile
|
from troggle.core.views.expo import (editexpopage, expofiles_redirect,
|
||||||
from troggle.core.views.logbooks import expedition, personexpedition, Expeditions_tsvListView, Expeditions_jsonListView
|
expofilessingle, expopage, map,
|
||||||
from troggle.core.views.logbooks import get_logbook_entries, logbookentry
|
mapfile, mediapage)
|
||||||
from troggle.core.views.logbooks import notablepersons, person, get_people
|
from troggle.core.views.logbooks import (Expeditions_jsonListView,
|
||||||
|
Expeditions_tsvListView,
|
||||||
|
expedition,
|
||||||
|
get_logbook_entries,
|
||||||
|
get_people, logbookentry,
|
||||||
|
notablepersons, person,
|
||||||
|
personexpedition)
|
||||||
from troggle.core.views.other import controlpanel
|
from troggle.core.views.other import controlpanel
|
||||||
from troggle.core.views.prospect import prospecting
|
from troggle.core.views.prospect import prospecting, prospecting_image
|
||||||
from troggle.core.views.prospect import prospecting_image
|
from troggle.core.views.statistics import (dataissues, pathsreport,
|
||||||
from troggle.core.views.statistics import pathsreport, stats, dataissues
|
stats)
|
||||||
from troggle.core.views.survex import survexcaveslist, survexcavesingle, svx
|
from troggle.core.views.survex import (survexcavesingle,
|
||||||
|
survexcaveslist, svx)
|
||||||
|
|
||||||
class SubprocessTest(TestCase):
|
class SubprocessTest(TestCase):
|
||||||
|
|
||||||
@ -123,8 +139,8 @@ class SubprocessTest(TestCase):
|
|||||||
def test_utf8(self):
|
def test_utf8(self):
|
||||||
'''Expects that utf8 is the default encoding when opening files
|
'''Expects that utf8 is the default encoding when opening files
|
||||||
'''
|
'''
|
||||||
import sys
|
|
||||||
import locale
|
import locale
|
||||||
|
import sys
|
||||||
self.assertTrue( sys.getdefaultencoding() == "utf-8", f'{sys.getdefaultencoding()} - UTF8 error in getdefaultencoding')
|
self.assertTrue( sys.getdefaultencoding() == "utf-8", f'{sys.getdefaultencoding()} - UTF8 error in getdefaultencoding')
|
||||||
self.assertTrue( sys.getfilesystemencoding() == "utf-8", f'{sys.getfilesystemencoding()} - UTF8 error in getfilesystemencoding')
|
self.assertTrue( sys.getfilesystemencoding() == "utf-8", f'{sys.getfilesystemencoding()} - UTF8 error in getfilesystemencoding')
|
||||||
self.assertTrue( locale.getdefaultlocale()[1] == "UTF-8", f'{locale.getdefaultlocale()} - UTF8 error in locale.getdefaultlocale')
|
self.assertTrue( locale.getdefaultlocale()[1] == "UTF-8", f'{locale.getdefaultlocale()} - UTF8 error in locale.getdefaultlocale')
|
||||||
@ -148,6 +164,7 @@ class SubprocessTest(TestCase):
|
|||||||
''' Expects clean git repos with no added files and no merge failures
|
''' Expects clean git repos with no added files and no merge failures
|
||||||
'''
|
'''
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
|
|
||||||
import troggle.settings as settings
|
import troggle.settings as settings
|
||||||
TROGGLE_PATH = Path(settings.REPOS_ROOT_PATH) / "troggle"
|
TROGGLE_PATH = Path(settings.REPOS_ROOT_PATH) / "troggle"
|
||||||
for cwd in [settings.SURVEX_DATA, settings.EXPOWEB, settings.DRAWINGS_DATA, TROGGLE_PATH]:
|
for cwd in [settings.SURVEX_DATA, settings.EXPOWEB, settings.DRAWINGS_DATA, TROGGLE_PATH]:
|
||||||
@ -179,6 +196,7 @@ class SubprocessTest(TestCase):
|
|||||||
''' Expects no failures of survex files
|
''' Expects no failures of survex files
|
||||||
'''
|
'''
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
|
|
||||||
import troggle.settings as settings
|
import troggle.settings as settings
|
||||||
cwd = settings.SURVEX_DATA
|
cwd = settings.SURVEX_DATA
|
||||||
for survey in ["1623.svx", "1626.svx"]:
|
for survey in ["1623.svx", "1626.svx"]:
|
||||||
|
@ -18,28 +18,30 @@ $ python manage.py test cuy.club --parallel
|
|||||||
Runs the tests in this file only
|
Runs the tests in this file only
|
||||||
"""
|
"""
|
||||||
|
|
||||||
import unittest
|
|
||||||
import re
|
import re
|
||||||
from django.test import TestCase, SimpleTestCase, TransactionTestCase, Client
|
import unittest
|
||||||
|
|
||||||
|
from django.test import Client, SimpleTestCase, TestCase, TransactionTestCase
|
||||||
|
|
||||||
|
|
||||||
class ImportTest(TestCase):
|
class ImportTest(TestCase):
|
||||||
def test_import_imports(self):
|
def test_import_imports(self):
|
||||||
# Need to go through all modules and copy all imports here
|
ed to go through all modules and copy all imports here
|
||||||
|
from io import StringIO
|
||||||
|
|
||||||
|
from cuy.club.models import (Article, Event, Member, Webpage,
|
||||||
|
WebpageCategory)
|
||||||
|
from cuy.website.views.generic import PUBLIC_LOGIN
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
from django.contrib.auth.decorators import login_required
|
from django.contrib.auth.decorators import login_required
|
||||||
from django.contrib.auth.models import User
|
from django.contrib.auth.models import User
|
||||||
from django.core import management
|
from django.core import management
|
||||||
from django.db import connection, connections
|
from django.db import connection, connections
|
||||||
from django.http import HttpResponse
|
from django.db.utils import IntegrityError
|
||||||
from django.http import HttpResponse, HttpResponseRedirect
|
from django.http import HttpResponse, HttpResponseRedirect
|
||||||
from django.shortcuts import get_object_or_404, render
|
from django.shortcuts import get_object_or_404, render
|
||||||
from django.template.defaultfilters import slugify
|
from django.template.defaultfilters import slugify
|
||||||
from django.utils.timezone import get_current_timezone, make_aware
|
from django.utils.timezone import get_current_timezone, make_aware
|
||||||
from io import StringIO
|
|
||||||
from cuy.club.models import Member, Article, Event, WebpageCategory, Webpage
|
|
||||||
from cuy.website.views.generic import PUBLIC_LOGIN
|
|
||||||
from cuy.club.models import Member
|
|
||||||
from django.db.utils import IntegrityError
|
|
||||||
|
|
||||||
|
|
||||||
class SimpleTest(SimpleTestCase):
|
class SimpleTest(SimpleTestCase):
|
||||||
@ -110,9 +112,9 @@ class DataTests(TestCase ):
|
|||||||
self.assertIsNotNone(None, "Failed to enforce 'UNIQUE constraint' on saving two Member objects with same user_id")
|
self.assertIsNotNone(None, "Failed to enforce 'UNIQUE constraint' on saving two Member objects with same user_id")
|
||||||
|
|
||||||
def test_article_invalid_date(self):
|
def test_article_invalid_date(self):
|
||||||
from cuy.club.models import Member, Article
|
from cuy.club.models import Article, Member
|
||||||
from django.db.utils import IntegrityError
|
|
||||||
from django.core.exceptions import ValidationError
|
from django.core.exceptions import ValidationError
|
||||||
|
from django.db.utils import IntegrityError
|
||||||
|
|
||||||
a = Article()
|
a = Article()
|
||||||
m = self.member
|
m = self.member
|
||||||
@ -126,9 +128,9 @@ class DataTests(TestCase ):
|
|||||||
self.assertIsNotNone(t, "Exception is not the expected 'invalid format'")
|
self.assertIsNotNone(t, "Exception is not the expected 'invalid format'")
|
||||||
|
|
||||||
def test_article_and_author_not_null(self):
|
def test_article_and_author_not_null(self):
|
||||||
from cuy.club.models import Member, Article
|
from cuy.club.models import Article, Member
|
||||||
from django.db.utils import IntegrityError
|
|
||||||
from django.core.exceptions import ValidationError
|
from django.core.exceptions import ValidationError
|
||||||
|
from django.db.utils import IntegrityError
|
||||||
|
|
||||||
a2 = Article()
|
a2 = Article()
|
||||||
a2.publish ="2021-02-17 17:25"
|
a2.publish ="2021-02-17 17:25"
|
||||||
@ -143,9 +145,9 @@ class DataTests(TestCase ):
|
|||||||
self.assertIsNotNone(None, "Exception is not the expected 'NOT NULL constraint failed' IntegrityError")
|
self.assertIsNotNone(None, "Exception is not the expected 'NOT NULL constraint failed' IntegrityError")
|
||||||
|
|
||||||
def test_article_and_author_ok(self):
|
def test_article_and_author_ok(self):
|
||||||
from cuy.club.models import Member, Article
|
from cuy.club.models import Article, Member
|
||||||
from django.db.utils import IntegrityError
|
|
||||||
from django.core.exceptions import ValidationError
|
from django.core.exceptions import ValidationError
|
||||||
|
from django.db.utils import IntegrityError
|
||||||
m = self.member
|
m = self.member
|
||||||
|
|
||||||
a3 = Article()
|
a3 = Article()
|
||||||
@ -201,8 +203,8 @@ class FixturePageTests(TestCase):
|
|||||||
|
|
||||||
def test_fix_admin_login_fail(self):
|
def test_fix_admin_login_fail(self):
|
||||||
c = self.client
|
c = self.client
|
||||||
from django.contrib.auth.models import User
|
|
||||||
from cuy.club.models import Member
|
from cuy.club.models import Member
|
||||||
|
from django.contrib.auth.models import User
|
||||||
m = Member.objects.get(pk=9002)
|
m = Member.objects.get(pk=9002)
|
||||||
u = User.objects.get(username='bingo')
|
u = User.objects.get(username='bingo')
|
||||||
|
|
||||||
@ -223,7 +225,7 @@ class ComplexLoginTests(TestCase):
|
|||||||
'''These test the login and capabilities of logged-in users'''
|
'''These test the login and capabilities of logged-in users'''
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
'''setUp runs once for each test in this class'''
|
'''setUp runs once for each test in this class'''
|
||||||
from cuy.club.models import Member, MEMBER_TYPES, AFFILIATION
|
from cuy.club.models import AFFILIATION, MEMBER_TYPES, Member
|
||||||
from django.contrib.auth.models import User
|
from django.contrib.auth.models import User
|
||||||
m = Member()
|
m = Member()
|
||||||
m.pk=8000
|
m.pk=8000
|
||||||
@ -344,6 +346,7 @@ class ComplexLoginTests(TestCase):
|
|||||||
|
|
||||||
def test_committee_login(self):
|
def test_committee_login(self):
|
||||||
from django.contrib.auth.models import User
|
from django.contrib.auth.models import User
|
||||||
|
|
||||||
# User must be associated with a Member for whom is_committee() is True
|
# User must be associated with a Member for whom is_committee() is True
|
||||||
c = self.client # inherited from TestCase
|
c = self.client # inherited from TestCase
|
||||||
u = self.user
|
u = self.user
|
||||||
@ -407,7 +410,7 @@ class DynamicPageTests(TestCase):
|
|||||||
def test_full_yachts(self):
|
def test_full_yachts(self):
|
||||||
'''Creating a WebpageCategory and an index webpage creates a valid url
|
'''Creating a WebpageCategory and an index webpage creates a valid url
|
||||||
'''
|
'''
|
||||||
from cuy.club.models import WebpageCategory, Webpage
|
from cuy.club.models import Webpage, WebpageCategory
|
||||||
wc = WebpageCategory()
|
wc = WebpageCategory()
|
||||||
wc.pk = 8000
|
wc.pk = 8000
|
||||||
wc.id = 8000
|
wc.id = 8000
|
||||||
|
@ -25,10 +25,11 @@ todo = '''ADD TESTS when we are redirecting /expofiles/ to a remote file-deliver
|
|||||||
- Add test for running cavern to produce a .3d file
|
- Add test for running cavern to produce a .3d file
|
||||||
'''
|
'''
|
||||||
|
|
||||||
import unittest
|
|
||||||
import re
|
import re
|
||||||
|
import unittest
|
||||||
from http import HTTPStatus
|
from http import HTTPStatus
|
||||||
from django.test import TestCase, SimpleTestCase, Client
|
|
||||||
|
from django.test import Client, SimpleTestCase, TestCase
|
||||||
|
|
||||||
|
|
||||||
#class SimplePageTest(unittest.TestCase):
|
#class SimplePageTest(unittest.TestCase):
|
||||||
|
@ -2,11 +2,14 @@
|
|||||||
Modified for Expo April 2021.
|
Modified for Expo April 2021.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
import unittest
|
|
||||||
import re
|
import re
|
||||||
from django.test import TestCase, SimpleTestCase, Client
|
import unittest
|
||||||
|
|
||||||
|
from django.test import Client, SimpleTestCase, TestCase
|
||||||
|
|
||||||
|
from troggle.core.models.caves import Area, Cave
|
||||||
from troggle.core.models.troggle import Expedition, Person, PersonExpedition
|
from troggle.core.models.troggle import Expedition, Person, PersonExpedition
|
||||||
from troggle.core.models.caves import Cave, Area
|
|
||||||
|
|
||||||
class FixtureTests(TestCase):
|
class FixtureTests(TestCase):
|
||||||
'''These just hit the database.
|
'''These just hit the database.
|
||||||
|
@ -5,17 +5,18 @@ Philip Sargent (Feb.2021)
|
|||||||
Modified for Expo April 2021.
|
Modified for Expo April 2021.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
import unittest
|
|
||||||
import re
|
|
||||||
import pathlib
|
import pathlib
|
||||||
|
import re
|
||||||
import subprocess
|
import subprocess
|
||||||
|
import unittest
|
||||||
from http import HTTPStatus
|
from http import HTTPStatus
|
||||||
|
|
||||||
from django.test import TestCase, SimpleTestCase, TransactionTestCase, Client
|
from django.test import Client, SimpleTestCase, TestCase, TransactionTestCase
|
||||||
|
|
||||||
|
import troggle.settings as settings
|
||||||
from troggle.core.models.survex import Wallet
|
from troggle.core.models.survex import Wallet
|
||||||
from troggle.core.models.troggle import Expedition
|
from troggle.core.models.troggle import Expedition
|
||||||
|
|
||||||
import troggle.settings as settings
|
|
||||||
|
|
||||||
class DataTests(TestCase ):
|
class DataTests(TestCase ):
|
||||||
'''These check that the NULL and NON-UNIQUE constraints are working in the database '''
|
'''These check that the NULL and NON-UNIQUE constraints are working in the database '''
|
||||||
|
@ -1,14 +1,18 @@
|
|||||||
import django.forms as forms
|
import django.forms as forms
|
||||||
from django.contrib import admin
|
from django.contrib import admin
|
||||||
|
from django.core import serializers
|
||||||
from django.forms import ModelForm
|
from django.forms import ModelForm
|
||||||
from django.http import HttpResponse
|
from django.http import HttpResponse
|
||||||
from django.core import serializers
|
|
||||||
|
|
||||||
|
from troggle.core.models.caves import (QM, Area, Cave, CaveAndEntrance,
|
||||||
|
Entrance, LogbookEntry, PersonTrip)
|
||||||
|
from troggle.core.models.survex import (DrawingFile, SingleScan, SurvexBlock,
|
||||||
|
SurvexDirectory, SurvexFile,
|
||||||
|
SurvexPersonRole, SurvexStation,
|
||||||
|
Wallet)
|
||||||
|
from troggle.core.models.troggle import (DataIssue, Expedition, Person,
|
||||||
|
PersonExpedition)
|
||||||
from troggle.core.views.other import exportlogbook
|
from troggle.core.views.other import exportlogbook
|
||||||
from troggle.core.models.troggle import Person, PersonExpedition, Expedition, DataIssue
|
|
||||||
from troggle.core.models.caves import Cave, Area, Entrance, CaveAndEntrance, LogbookEntry, PersonTrip, QM
|
|
||||||
from troggle.core.models.survex import SurvexBlock, SurvexFile, SurvexPersonRole, SurvexStation, SurvexDirectory
|
|
||||||
from troggle.core.models.survex import Wallet, SingleScan, DrawingFile
|
|
||||||
|
|
||||||
'''This code significantly adds to the capabilities of the Django Management control panel for Troggle data.
|
'''This code significantly adds to the capabilities of the Django Management control panel for Troggle data.
|
||||||
In particular, it enables JSON export of any data with 'export_as_json'
|
In particular, it enables JSON export of any data with 'export_as_json'
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
|
|
||||||
from troggle.core.models.troggle import Expedition
|
from troggle.core.models.troggle import Expedition
|
||||||
|
|
||||||
'''This is the only troggle-specific 'context processor' that troggle uses
|
'''This is the only troggle-specific 'context processor' that troggle uses
|
||||||
|
@ -2,16 +2,18 @@ import string
|
|||||||
from datetime import date
|
from datetime import date
|
||||||
|
|
||||||
import django.forms as forms
|
import django.forms as forms
|
||||||
|
from django.contrib.admin.widgets import AdminDateWidget
|
||||||
from django.forms import ModelForm
|
from django.forms import ModelForm
|
||||||
from django.forms.models import modelformset_factory
|
from django.forms.models import modelformset_factory
|
||||||
from django.contrib.admin.widgets import AdminDateWidget
|
|
||||||
|
from troggle.core.models.caves import (QM, Cave, CaveAndEntrance, Entrance,
|
||||||
|
LogbookEntry)
|
||||||
|
from troggle.core.models.troggle import Expedition, Person, PersonExpedition
|
||||||
|
from troggle.core.views.editor_helpers import HTMLarea
|
||||||
|
|
||||||
#from tinymce.widgets import TinyMCE
|
#from tinymce.widgets import TinyMCE
|
||||||
|
|
||||||
from troggle.core.models.troggle import Person, PersonExpedition, Expedition
|
|
||||||
from troggle.core.models.caves import Cave, LogbookEntry, QM, Entrance, CaveAndEntrance
|
|
||||||
|
|
||||||
from troggle.core.views.editor_helpers import HTMLarea
|
|
||||||
|
|
||||||
'''These are all the class-based Forms used by troggle.
|
'''These are all the class-based Forms used by troggle.
|
||||||
There are other, simpler, upload forms in view/uploads.py
|
There are other, simpler, upload forms in view/uploads.py
|
||||||
|
@ -1,10 +1,10 @@
|
|||||||
import os
|
import os
|
||||||
from optparse import make_option
|
from optparse import make_option
|
||||||
|
|
||||||
from django.db import connection
|
from django.contrib.auth.models import User
|
||||||
from django.core import management
|
from django.core import management
|
||||||
from django.core.management.base import BaseCommand, CommandError
|
from django.core.management.base import BaseCommand, CommandError
|
||||||
from django.contrib.auth.models import User
|
from django.db import connection
|
||||||
|
|
||||||
import settings
|
import settings
|
||||||
|
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
from django.conf import settings
|
|
||||||
from django import http
|
from django import http
|
||||||
from django.urls import reverse, resolve,Resolver404
|
from django.conf import settings
|
||||||
|
from django.urls import Resolver404, resolve, reverse
|
||||||
|
|
||||||
"""Non-standard django middleware is loaded from this file.
|
"""Non-standard django middleware is loaded from this file.
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
@ -1,33 +1,30 @@
|
|||||||
import string
|
|
||||||
import os
|
|
||||||
import datetime
|
import datetime
|
||||||
import re
|
|
||||||
import json
|
import json
|
||||||
import subprocess
|
|
||||||
import operator
|
import operator
|
||||||
from datetime import datetime, timezone
|
import os
|
||||||
|
import re
|
||||||
|
import string
|
||||||
|
import subprocess
|
||||||
from collections import defaultdict
|
from collections import defaultdict
|
||||||
|
from datetime import datetime, timezone
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
|
|
||||||
from urllib.parse import urljoin
|
from urllib.parse import urljoin
|
||||||
|
|
||||||
import settings
|
from django.conf import settings
|
||||||
|
|
||||||
from django.db import models
|
|
||||||
from django.core.files.storage import FileSystemStorage
|
|
||||||
from django.contrib.auth.models import User
|
from django.contrib.auth.models import User
|
||||||
from django.contrib.contenttypes.models import ContentType
|
from django.contrib.contenttypes.models import ContentType
|
||||||
from django.db.models import Min, Max
|
from django.core.files.storage import FileSystemStorage
|
||||||
from django.conf import settings
|
from django.db import models
|
||||||
from django.urls import reverse
|
from django.db.models import Max, Min
|
||||||
from django.template import Context, loader
|
|
||||||
from django.shortcuts import render
|
from django.shortcuts import render
|
||||||
|
from django.template import Context, loader
|
||||||
|
from django.urls import reverse
|
||||||
|
|
||||||
from troggle.core.models.troggle import TroggleModel, Person, Expedition, DataIssue
|
import settings
|
||||||
from troggle.core.models.survex import SurvexStation
|
from troggle.core.models.survex import SurvexStation
|
||||||
from troggle.core.utils import writetrogglefile
|
from troggle.core.models.troggle import (DataIssue, Expedition, Person,
|
||||||
from troggle.core.utils import TROG
|
TroggleModel)
|
||||||
|
from troggle.core.utils import TROG, writetrogglefile
|
||||||
|
|
||||||
# Use the TROG global object to cache the cave lookup list. No good for multi-user..
|
# Use the TROG global object to cache the cave lookup list. No good for multi-user..
|
||||||
Gcavelookup = TROG['caves']['gcavelookup']
|
Gcavelookup = TROG['caves']['gcavelookup']
|
||||||
|
@ -1,14 +1,14 @@
|
|||||||
import os
|
import datetime
|
||||||
import re
|
|
||||||
import json
|
import json
|
||||||
import operator
|
import operator
|
||||||
import datetime
|
import os
|
||||||
from urllib.parse import urljoin
|
import re
|
||||||
from pathlib import Path
|
|
||||||
from functools import reduce
|
from functools import reduce
|
||||||
|
from pathlib import Path
|
||||||
|
from urllib.parse import urljoin
|
||||||
|
|
||||||
from django.db import models
|
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
|
from django.db import models
|
||||||
from django.urls import reverse
|
from django.urls import reverse
|
||||||
|
|
||||||
# from troggle.core.models.troggle import DataIssue # circular import. Hmm
|
# from troggle.core.models.troggle import DataIssue # circular import. Hmm
|
||||||
@ -215,7 +215,8 @@ class Wallet(models.Model):
|
|||||||
waldata["date"] = thisdate.isoformat()
|
waldata["date"] = thisdate.isoformat()
|
||||||
except:
|
except:
|
||||||
message = f"! {str(self.walletname)} Date formatting failure {thisdate}. Failed to load from {jsonfile} JSON file"
|
message = f"! {str(self.walletname)} Date formatting failure {thisdate}. Failed to load from {jsonfile} JSON file"
|
||||||
from troggle.core.models.troggle import DataIssue
|
from troggle.core.models.troggle import \
|
||||||
|
DataIssue
|
||||||
DataIssue.objects.update_or_create(parser='scans', message=message, url=wurl)
|
DataIssue.objects.update_or_create(parser='scans', message=message, url=wurl)
|
||||||
except:
|
except:
|
||||||
message = f"! {str(self.walletname)} Date format not ISO {datestr}. Failed to load from {jsonfile} JSON file"
|
message = f"! {str(self.walletname)} Date format not ISO {datestr}. Failed to load from {jsonfile} JSON file"
|
||||||
|
@ -1,26 +1,24 @@
|
|||||||
import string
|
|
||||||
import os
|
|
||||||
import datetime
|
import datetime
|
||||||
|
import os
|
||||||
import re
|
import re
|
||||||
import resource
|
import resource
|
||||||
from subprocess import call
|
import string
|
||||||
|
|
||||||
from urllib.parse import urljoin
|
|
||||||
from decimal import Decimal, getcontext
|
from decimal import Decimal, getcontext
|
||||||
|
from subprocess import call
|
||||||
|
from urllib.parse import urljoin
|
||||||
|
|
||||||
getcontext().prec=2 #use 2 significant figures for decimal calculations
|
getcontext().prec=2 #use 2 significant figures for decimal calculations
|
||||||
|
|
||||||
import settings
|
from django.conf import settings
|
||||||
|
|
||||||
from django.db import models
|
|
||||||
from django.contrib import admin
|
from django.contrib import admin
|
||||||
from django.contrib.auth.models import User
|
from django.contrib.auth.models import User
|
||||||
from django.contrib.contenttypes.models import ContentType
|
from django.contrib.contenttypes.models import ContentType
|
||||||
from django.conf import settings
|
|
||||||
|
|
||||||
from django.urls import reverse
|
|
||||||
from django.template import Context, loader
|
|
||||||
from django.core.files.storage import FileSystemStorage
|
from django.core.files.storage import FileSystemStorage
|
||||||
|
from django.db import models
|
||||||
|
from django.template import Context, loader
|
||||||
|
from django.urls import reverse
|
||||||
|
|
||||||
|
import settings
|
||||||
import troggle.core.models.survex
|
import troggle.core.models.survex
|
||||||
from troggle.core.utils import get_process_memory
|
from troggle.core.utils import get_process_memory
|
||||||
|
|
||||||
|
@ -1,27 +1,26 @@
|
|||||||
import string
|
|
||||||
import os
|
|
||||||
import datetime
|
import datetime
|
||||||
|
import logging
|
||||||
|
import os
|
||||||
|
import random
|
||||||
import re
|
import re
|
||||||
import resource
|
import resource
|
||||||
import random
|
import string
|
||||||
import logging
|
|
||||||
import subprocess
|
import subprocess
|
||||||
from pathlib import Path
|
|
||||||
|
|
||||||
from urllib.parse import urljoin
|
|
||||||
from decimal import Decimal, getcontext
|
from decimal import Decimal, getcontext
|
||||||
|
from pathlib import Path
|
||||||
|
from urllib.parse import urljoin
|
||||||
|
|
||||||
getcontext().prec=2 #use 2 significant figures for decimal calculations
|
getcontext().prec=2 #use 2 significant figures for decimal calculations
|
||||||
|
|
||||||
import settings
|
from django.conf import settings
|
||||||
|
|
||||||
from django.db import models
|
|
||||||
from django.contrib import admin
|
from django.contrib import admin
|
||||||
from django.contrib.auth.models import User
|
from django.contrib.auth.models import User
|
||||||
from django.contrib.contenttypes.models import ContentType
|
from django.contrib.contenttypes.models import ContentType
|
||||||
from django.conf import settings
|
from django.db import models
|
||||||
|
|
||||||
from django.urls import reverse
|
|
||||||
from django.template import Context, loader
|
from django.template import Context, loader
|
||||||
|
from django.urls import reverse
|
||||||
|
|
||||||
|
import settings
|
||||||
|
|
||||||
'''This file declares TROG a globally visible object for caches.
|
'''This file declares TROG a globally visible object for caches.
|
||||||
|
|
||||||
|
@ -1,10 +1,11 @@
|
|||||||
from builtins import str
|
from builtins import str
|
||||||
|
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
from django.shortcuts import render, redirect
|
from django.contrib.auth import authenticate
|
||||||
from django.contrib.auth import authenticate, login, logout
|
|
||||||
from django.contrib.auth import forms as auth_forms
|
from django.contrib.auth import forms as auth_forms
|
||||||
|
from django.contrib.auth import login, logout
|
||||||
from django.contrib.auth.decorators import login_required
|
from django.contrib.auth.decorators import login_required
|
||||||
|
from django.shortcuts import redirect, render
|
||||||
from django.utils.http import is_safe_url
|
from django.utils.http import is_safe_url
|
||||||
|
|
||||||
"""This enforces the login requirement for non-public pages using
|
"""This enforces the login requirement for non-public pages using
|
||||||
|
@ -1,25 +1,29 @@
|
|||||||
import os
|
import os
|
||||||
import string
|
|
||||||
import re
|
import re
|
||||||
import settings
|
import string
|
||||||
import urllib.parse
|
|
||||||
import subprocess
|
import subprocess
|
||||||
|
import urllib.parse
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
|
|
||||||
from django import forms
|
from django import forms
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
from django.urls import reverse
|
from django.core.exceptions import MultipleObjectsReturned, ObjectDoesNotExist
|
||||||
from django.http import HttpResponse, HttpResponseRedirect, HttpResponseNotFound
|
from django.http import (HttpResponse, HttpResponseNotFound,
|
||||||
|
HttpResponseRedirect)
|
||||||
from django.shortcuts import get_object_or_404, render
|
from django.shortcuts import get_object_or_404, render
|
||||||
from django.core.exceptions import ObjectDoesNotExist, MultipleObjectsReturned
|
from django.urls import NoReverseMatch, reverse
|
||||||
from django.urls import NoReverseMatch
|
|
||||||
|
|
||||||
|
import settings
|
||||||
import troggle.settings as settings
|
import troggle.settings as settings
|
||||||
|
from troggle.core.forms import (CaveAndEntranceFormSet, CaveForm, EntranceForm,
|
||||||
|
EntranceLetterForm)
|
||||||
|
from troggle.core.models.caves import (QM, Area, Cave, CaveAndEntrance,
|
||||||
|
CaveSlug, Entrance, EntranceSlug,
|
||||||
|
GetCaveLookup, SurvexStation)
|
||||||
|
from troggle.core.models.troggle import DataIssue, Expedition
|
||||||
|
from troggle.core.utils import write_and_commit, writetrogglefile
|
||||||
from troggle.core.views import expo
|
from troggle.core.views import expo
|
||||||
from troggle.core.models.troggle import Expedition, DataIssue
|
|
||||||
from troggle.core.models.caves import CaveSlug, Cave, CaveAndEntrance, QM, EntranceSlug, Entrance, Area, SurvexStation, GetCaveLookup
|
|
||||||
from troggle.core.forms import CaveForm, CaveAndEntranceFormSet, EntranceForm, EntranceLetterForm
|
|
||||||
from troggle.core.utils import writetrogglefile, write_and_commit
|
|
||||||
from .auth import login_required_if_public
|
from .auth import login_required_if_public
|
||||||
|
|
||||||
'''Manages the complex procedures to assemble a cave description out of the compnoents
|
'''Manages the complex procedures to assemble a cave description out of the compnoents
|
||||||
|
@ -1,14 +1,17 @@
|
|||||||
import os, stat
|
import os
|
||||||
import re
|
import re
|
||||||
|
import stat
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
from urllib.parse import urljoin, unquote as urlunquote
|
from urllib.parse import unquote as urlunquote
|
||||||
|
from urllib.parse import urljoin
|
||||||
|
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
from django.shortcuts import render
|
|
||||||
from django.http import HttpResponse
|
from django.http import HttpResponse
|
||||||
|
from django.shortcuts import render
|
||||||
|
|
||||||
from troggle.core.models.survex import DrawingFile
|
from troggle.core.models.survex import DrawingFile
|
||||||
from troggle.core.views.expo import getmimetype
|
from troggle.core.views.expo import getmimetype
|
||||||
|
|
||||||
#import parsers.surveys
|
#import parsers.surveys
|
||||||
|
|
||||||
'''Some of these views serve files as binary blobs, and simply set the mime type based on the file extension,
|
'''Some of these views serve files as binary blobs, and simply set the mime type based on the file extension,
|
||||||
|
@ -1,18 +1,20 @@
|
|||||||
from django.shortcuts import render, redirect
|
import io
|
||||||
from django.http import HttpResponse, HttpResponseRedirect, Http404, JsonResponse
|
import re
|
||||||
|
|
||||||
from django.urls import reverse, resolve
|
|
||||||
from django.template import Context, loader
|
|
||||||
import re, io
|
|
||||||
from PIL import Image
|
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
|
|
||||||
import django.forms as forms
|
import django.forms as forms
|
||||||
import troggle.settings as settings
|
from django.http import (Http404, HttpResponse, HttpResponseRedirect,
|
||||||
|
JsonResponse)
|
||||||
|
from django.shortcuts import redirect, render
|
||||||
|
from django.template import Context, loader
|
||||||
|
from django.urls import resolve, reverse
|
||||||
from django.views.decorators.csrf import ensure_csrf_cookie
|
from django.views.decorators.csrf import ensure_csrf_cookie
|
||||||
from .auth import login_required_if_public
|
from PIL import Image
|
||||||
|
|
||||||
from troggle.core.utils import write_and_commit, WriteAndCommitError
|
import troggle.settings as settings
|
||||||
|
from troggle.core.utils import WriteAndCommitError, write_and_commit
|
||||||
|
|
||||||
|
from .auth import login_required_if_public
|
||||||
|
|
||||||
MAX_IMAGE_WIDTH = 1000
|
MAX_IMAGE_WIDTH = 1000
|
||||||
MAX_IMAGE_HEIGHT = 800
|
MAX_IMAGE_HEIGHT = 800
|
||||||
|
@ -1,28 +1,26 @@
|
|||||||
import os
|
import os
|
||||||
import re
|
import re
|
||||||
|
|
||||||
from sys import getfilesystemencoding as sys_getfilesystemencoding
|
|
||||||
|
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
from urllib.parse import urljoin, unquote as urlunquote
|
from sys import getfilesystemencoding as sys_getfilesystemencoding
|
||||||
|
from urllib.parse import unquote as urlunquote
|
||||||
|
from urllib.parse import urljoin
|
||||||
from urllib.request import urlopen
|
from urllib.request import urlopen
|
||||||
|
|
||||||
from django.shortcuts import render, redirect
|
|
||||||
from django.http import HttpResponse, HttpResponseRedirect, Http404
|
|
||||||
from django.urls import reverse, resolve
|
|
||||||
from django.template import Context, loader
|
|
||||||
from django.views.decorators.csrf import ensure_csrf_cookie
|
|
||||||
from django.contrib import admin
|
|
||||||
|
|
||||||
import django.forms as forms
|
import django.forms as forms
|
||||||
|
from django.contrib import admin
|
||||||
|
from django.http import Http404, HttpResponse, HttpResponseRedirect
|
||||||
|
from django.shortcuts import redirect, render
|
||||||
|
from django.template import Context, loader
|
||||||
|
from django.urls import resolve, reverse
|
||||||
|
from django.views.decorators.csrf import ensure_csrf_cookie
|
||||||
|
|
||||||
import troggle.core.views.caves
|
import troggle.core.views.caves
|
||||||
import troggle.settings as settings
|
import troggle.settings as settings
|
||||||
from .auth import login_required_if_public
|
|
||||||
from troggle.core.models.caves import Cave
|
from troggle.core.models.caves import Cave
|
||||||
from troggle.core.utils import write_and_commit, WriteAndCommitError
|
from troggle.core.utils import WriteAndCommitError, write_and_commit
|
||||||
from troggle.core.views.editor_helpers import HTMLarea
|
from troggle.core.views.editor_helpers import HTMLarea
|
||||||
|
|
||||||
|
from .auth import login_required_if_public
|
||||||
|
|
||||||
'''Formerly a separate package called 'flatpages' written by Martin Green 2011.
|
'''Formerly a separate package called 'flatpages' written by Martin Green 2011.
|
||||||
This was NOT django.contrib.flatpages which stores HTML in the database, so the name was changed to expopages.
|
This was NOT django.contrib.flatpages which stores HTML in the database, so the name was changed to expopages.
|
||||||
|
@ -1,27 +1,27 @@
|
|||||||
import datetime
|
import datetime
|
||||||
import time
|
|
||||||
import os.path
|
import os.path
|
||||||
import re
|
import re
|
||||||
|
import time
|
||||||
|
|
||||||
import django.db.models
|
import django.db.models
|
||||||
from django.db.models import Min, Max
|
from django.db.models import Max, Min
|
||||||
from django.urls import reverse
|
|
||||||
from django.http import HttpResponse, HttpResponseRedirect
|
from django.http import HttpResponse, HttpResponseRedirect
|
||||||
from django.shortcuts import render
|
from django.shortcuts import render
|
||||||
from django.template import Context, loader
|
from django.template import Context, loader
|
||||||
from django.template.defaultfilters import slugify
|
from django.template.defaultfilters import slugify
|
||||||
|
from django.urls import reverse
|
||||||
from django.utils import timezone
|
from django.utils import timezone
|
||||||
from django.views.generic.list import ListView
|
from django.views.generic.list import ListView
|
||||||
|
|
||||||
from troggle.core.models.troggle import Expedition, Person, PersonExpedition
|
import troggle.settings as settings
|
||||||
from troggle.core.utils import TROG
|
|
||||||
from troggle.core.models.caves import LogbookEntry, PersonTrip
|
from troggle.core.models.caves import LogbookEntry, PersonTrip
|
||||||
from troggle.core.models.survex import SurvexBlock, Wallet
|
from troggle.core.models.survex import SurvexBlock, Wallet
|
||||||
from .auth import login_required_if_public
|
from troggle.core.models.troggle import Expedition, Person, PersonExpedition
|
||||||
|
from troggle.core.utils import TROG
|
||||||
from troggle.parsers.logbooks import LoadLogbookForExpedition
|
from troggle.parsers.logbooks import LoadLogbookForExpedition
|
||||||
from troggle.parsers.people import GetPersonExpeditionNameLookup
|
from troggle.parsers.people import GetPersonExpeditionNameLookup
|
||||||
|
|
||||||
import troggle.settings as settings
|
from .auth import login_required_if_public
|
||||||
|
|
||||||
'''These views are for logbook items when they appear in an 'expedition' page
|
'''These views are for logbook items when they appear in an 'expedition' page
|
||||||
and for persons: their individual pages and their perseonexpedition pages.
|
and for persons: their individual pages and their perseonexpedition pages.
|
||||||
|
@ -1,23 +1,26 @@
|
|||||||
import re, os
|
import os
|
||||||
|
import re
|
||||||
import subprocess
|
import subprocess
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
|
|
||||||
from django import forms
|
from django import forms
|
||||||
|
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
from django.urls import reverse
|
from django.core.files.storage import FileSystemStorage, default_storage
|
||||||
from django.db.models import Q
|
from django.db.models import Q
|
||||||
from django.http import HttpResponse, HttpResponseRedirect
|
from django.http import HttpResponse, HttpResponseRedirect
|
||||||
from django.shortcuts import render
|
from django.shortcuts import render
|
||||||
from django.template import Context, loader
|
from django.template import Context, loader
|
||||||
from django.core.files.storage import FileSystemStorage, default_storage
|
from django.urls import reverse
|
||||||
|
|
||||||
from troggle.parsers.imports import import_caves, import_people, import_surveyscans
|
from troggle.core.models.caves import QM, Cave, LogbookEntry, PersonTrip
|
||||||
from troggle.parsers.imports import import_logbooks, import_QMs, import_drawingsfiles, import_survex
|
from troggle.core.models.survex import DrawingFile
|
||||||
# from databaseReset import reinit_db # don't do this. databaseRest runs code *at import time*
|
# from databaseReset import reinit_db # don't do this. databaseRest runs code *at import time*
|
||||||
from troggle.core.models.troggle import Expedition, Person, PersonExpedition
|
from troggle.core.models.troggle import Expedition, Person, PersonExpedition
|
||||||
from troggle.core.models.caves import LogbookEntry, QM, Cave, PersonTrip
|
from troggle.parsers.imports import (import_caves, import_drawingsfiles,
|
||||||
from troggle.core.models.survex import DrawingFile
|
import_logbooks, import_people,
|
||||||
|
import_QMs, import_survex,
|
||||||
|
import_surveyscans)
|
||||||
|
|
||||||
from .auth import login_required_if_public
|
from .auth import login_required_if_public
|
||||||
|
|
||||||
'''Utility functions and code to serve the control panel and individual user's
|
'''Utility functions and code to serve the control panel and individual user's
|
||||||
@ -37,18 +40,18 @@ def todos(request, module):
|
|||||||
'''produces todo text from module
|
'''produces todo text from module
|
||||||
We could automate this to find all those strings automatically
|
We could automate this to find all those strings automatically
|
||||||
'''
|
'''
|
||||||
|
from troggle.core.forms import todo as forms
|
||||||
|
from troggle.core.middleware import todo as middleware
|
||||||
|
from troggle.core.models.caves import todo as modelcaves
|
||||||
from troggle.core.TESTS.tests import todo as tests
|
from troggle.core.TESTS.tests import todo as tests
|
||||||
from troggle.core.views.logbooks import todo as viewlogbooks
|
|
||||||
from troggle.core.views.survex import todo as viewsurvex
|
|
||||||
from troggle.core.views.caves import todo as viewcaves
|
from troggle.core.views.caves import todo as viewcaves
|
||||||
from troggle.core.views.drawings import todo as viewdrawings
|
from troggle.core.views.drawings import todo as viewdrawings
|
||||||
|
from troggle.core.views.logbooks import todo as viewlogbooks
|
||||||
|
from troggle.core.views.survex import todo as viewsurvex
|
||||||
from troggle.parsers.caves import todo as parserscaves
|
from troggle.parsers.caves import todo as parserscaves
|
||||||
from troggle.parsers.logbooks import todo as parserslogbooks
|
|
||||||
from troggle.parsers.drawings import todo as parsersdrawings
|
from troggle.parsers.drawings import todo as parsersdrawings
|
||||||
|
from troggle.parsers.logbooks import todo as parserslogbooks
|
||||||
from troggle.parsers.survex import todo as parserssurvex
|
from troggle.parsers.survex import todo as parserssurvex
|
||||||
from troggle.core.models.caves import todo as modelcaves
|
|
||||||
from troggle.core.middleware import todo as middleware
|
|
||||||
from troggle.core.forms import todo as forms
|
|
||||||
tododict = {'views/other': todo,
|
tododict = {'views/other': todo,
|
||||||
'tests': tests,
|
'tests': tests,
|
||||||
'views/logbooks': viewlogbooks,
|
'views/logbooks': viewlogbooks,
|
||||||
|
@ -1,18 +1,21 @@
|
|||||||
import os
|
import os
|
||||||
import string
|
|
||||||
import re
|
import re
|
||||||
|
import string
|
||||||
import urllib.parse
|
import urllib.parse
|
||||||
# from pathlib import Path
|
|
||||||
|
|
||||||
from django.http import HttpResponse
|
from django.http import HttpResponse
|
||||||
from django.shortcuts import render
|
from django.shortcuts import render
|
||||||
# from django.core.exceptions import ObjectDoesNotExist, MultipleObjectsReturned
|
|
||||||
|
|
||||||
import troggle.settings as settings
|
import troggle.settings as settings
|
||||||
from troggle.core.models.caves import Entrance, Area, SurvexStation, Cave
|
from troggle.core.models.caves import Area, Cave, Entrance, SurvexStation
|
||||||
from troggle.core.views.caves import caveKey
|
from troggle.core.views.caves import caveKey
|
||||||
from troggle.parsers.survex import MapLocations
|
from troggle.parsers.survex import MapLocations
|
||||||
|
|
||||||
|
# from pathlib import Path
|
||||||
|
|
||||||
|
# from django.core.exceptions import ObjectDoesNotExist, MultipleObjectsReturned
|
||||||
|
|
||||||
|
|
||||||
''' Generates the prospecting guide document.
|
''' Generates the prospecting guide document.
|
||||||
|
|
||||||
Also produces the overlay of points on top of a prospecting_image map - to be deleted.
|
Also produces the overlay of points on top of a prospecting_image map - to be deleted.
|
||||||
|
@ -1,20 +1,22 @@
|
|||||||
import os, stat
|
|
||||||
import re
|
|
||||||
import datetime
|
import datetime
|
||||||
|
import os
|
||||||
|
import re
|
||||||
|
import stat
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
from urllib.parse import urljoin, unquote as urlunquote
|
from urllib.parse import unquote as urlunquote
|
||||||
|
from urllib.parse import urljoin
|
||||||
from urllib.request import urlopen
|
from urllib.request import urlopen
|
||||||
|
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
from django.shortcuts import render
|
|
||||||
from django.http import HttpResponse
|
|
||||||
from django.db import transaction
|
from django.db import transaction
|
||||||
|
from django.http import HttpResponse
|
||||||
|
from django.shortcuts import render
|
||||||
|
|
||||||
from troggle.core.models.survex import Wallet, SingleScan, SurvexBlock
|
|
||||||
from troggle.core.models.troggle import Person, Expedition
|
|
||||||
from troggle.core.models.troggle import DataIssue
|
|
||||||
from troggle.core.models.caves import GetCaveLookup
|
from troggle.core.models.caves import GetCaveLookup
|
||||||
|
from troggle.core.models.survex import SingleScan, SurvexBlock, Wallet
|
||||||
|
from troggle.core.models.troggle import DataIssue, Expedition, Person
|
||||||
from troggle.core.views.expo import getmimetype
|
from troggle.core.views.expo import getmimetype
|
||||||
|
|
||||||
#from troggle.parsers.people import GetPersonExpeditionNameLookup
|
#from troggle.parsers.people import GetPersonExpeditionNameLookup
|
||||||
|
|
||||||
#import parsers.surveys
|
#import parsers.surveys
|
||||||
|
@ -1,23 +1,27 @@
|
|||||||
import datetime
|
import datetime
|
||||||
|
import operator
|
||||||
import os.path
|
import os.path
|
||||||
import re
|
import re
|
||||||
import operator
|
|
||||||
from collections import OrderedDict
|
from collections import OrderedDict
|
||||||
|
|
||||||
import django.db.models
|
import django.db.models
|
||||||
from django.db.models import Min, Max
|
from django.db.models import Max, Min
|
||||||
from django.shortcuts import render
|
from django.shortcuts import render
|
||||||
from django.template import Context, loader
|
from django.template import Context, loader
|
||||||
from django.template.defaultfilters import slugify
|
from django.template.defaultfilters import slugify
|
||||||
from django.utils import timezone
|
from django.utils import timezone
|
||||||
#from django.views.generic.list import ListView
|
|
||||||
|
|
||||||
from troggle.core.models.troggle import Expedition, Person, PersonExpedition, DataIssue
|
|
||||||
from troggle.core.models.caves import Cave, LogbookEntry, Entrance
|
|
||||||
from troggle.core.models.survex import SurvexBlock, SurvexStation
|
|
||||||
from troggle.parsers.people import GetPersonExpeditionNameLookup, foreign_friends
|
|
||||||
|
|
||||||
import troggle.settings as settings
|
import troggle.settings as settings
|
||||||
|
from troggle.core.models.caves import Cave, Entrance, LogbookEntry
|
||||||
|
from troggle.core.models.survex import SurvexBlock, SurvexStation
|
||||||
|
from troggle.core.models.troggle import (DataIssue, Expedition, Person,
|
||||||
|
PersonExpedition)
|
||||||
|
from troggle.parsers.people import (GetPersonExpeditionNameLookup,
|
||||||
|
foreign_friends)
|
||||||
|
|
||||||
|
#from django.views.generic.list import ListView
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
'''Very simple report pages summarizing data about the whole set of expeditions and of
|
'''Very simple report pages summarizing data about the whole set of expeditions and of
|
||||||
the status of data inconsistencies
|
the status of data inconsistencies
|
||||||
|
@ -1,25 +1,25 @@
|
|||||||
import re
|
|
||||||
import os
|
|
||||||
import datetime
|
import datetime
|
||||||
import difflib
|
import difflib
|
||||||
from pathlib import Path
|
import os
|
||||||
|
import re
|
||||||
import socket
|
import socket
|
||||||
|
from pathlib import Path
|
||||||
|
|
||||||
from django import forms
|
from django import forms
|
||||||
from django.http import HttpResponseRedirect, HttpResponse, Http404
|
from django.core.exceptions import MultipleObjectsReturned, ObjectDoesNotExist
|
||||||
|
from django.http import Http404, HttpResponse, HttpResponseRedirect
|
||||||
from django.shortcuts import render
|
from django.shortcuts import render
|
||||||
from django.template.context_processors import csrf
|
from django.template.context_processors import csrf
|
||||||
from django.views.decorators.csrf import ensure_csrf_cookie
|
from django.views.decorators.csrf import ensure_csrf_cookie
|
||||||
|
|
||||||
from django.core.exceptions import ObjectDoesNotExist, MultipleObjectsReturned
|
|
||||||
|
|
||||||
import troggle.settings as settings
|
|
||||||
import parsers.survex
|
import parsers.survex
|
||||||
|
import troggle.settings as settings
|
||||||
|
from troggle.core.models.caves import Cave, LogbookEntry, PersonTrip
|
||||||
|
from troggle.core.models.survex import (SurvexBlock, SurvexDirectory,
|
||||||
|
SurvexFile, SurvexPersonRole)
|
||||||
from troggle.core.models.troggle import Expedition, Person, PersonExpedition
|
from troggle.core.models.troggle import Expedition, Person, PersonExpedition
|
||||||
from troggle.core.models.survex import SurvexBlock, SurvexPersonRole, SurvexFile, SurvexDirectory
|
from troggle.core.utils import WriteAndCommitError, only_commit
|
||||||
from troggle.core.models.caves import Cave, PersonTrip, LogbookEntry
|
|
||||||
from troggle.parsers.people import GetPersonExpeditionNameLookup
|
from troggle.parsers.people import GetPersonExpeditionNameLookup
|
||||||
from troggle.core.utils import only_commit, WriteAndCommitError
|
|
||||||
|
|
||||||
'''Everything that views survexfiles
|
'''Everything that views survexfiles
|
||||||
but also displays data on a cave or caves when there is ambiguity
|
but also displays data on a cave or caves when there is ambiguity
|
||||||
|
@ -1,41 +1,43 @@
|
|||||||
import re, os, socket
|
|
||||||
import subprocess
|
|
||||||
import json
|
|
||||||
import settings
|
|
||||||
import urllib
|
|
||||||
import operator
|
|
||||||
import datetime
|
import datetime
|
||||||
|
import json
|
||||||
from pathlib import Path
|
import operator
|
||||||
|
import os
|
||||||
|
import re
|
||||||
|
import socket
|
||||||
|
import subprocess
|
||||||
|
import urllib
|
||||||
from functools import reduce
|
from functools import reduce
|
||||||
|
from pathlib import Path
|
||||||
from urllib.parse import unquote
|
from urllib.parse import unquote
|
||||||
|
|
||||||
from django import forms
|
from django import forms
|
||||||
|
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
from django.urls import reverse
|
from django.core.exceptions import MultipleObjectsReturned, ObjectDoesNotExist
|
||||||
|
from django.core.files.storage import FileSystemStorage, default_storage
|
||||||
from django.db.models import Q
|
from django.db.models import Q
|
||||||
from django.http import HttpResponse, HttpResponseRedirect
|
from django.http import HttpResponse, HttpResponseRedirect
|
||||||
from django.shortcuts import render
|
from django.shortcuts import render
|
||||||
from django.template import Context, loader
|
from django.template import Context, loader
|
||||||
from django.core.files.storage import FileSystemStorage, default_storage
|
from django.urls import reverse
|
||||||
from django.core.exceptions import ObjectDoesNotExist, MultipleObjectsReturned
|
|
||||||
|
|
||||||
|
import settings
|
||||||
#from troggle import settings
|
from troggle.core.models.caves import QM, Cave, LogbookEntry, PersonTrip
|
||||||
from troggle.parsers.imports import import_caves, import_people, import_surveyscans
|
from troggle.core.models.survex import (DrawingFile, SurvexBlock, SurvexFile,
|
||||||
from troggle.parsers.imports import import_logbooks, import_QMs, import_drawingsfiles, import_survex
|
SurvexPersonRole, Wallet)
|
||||||
from troggle.parsers.scans import contentsjson
|
|
||||||
# from databaseReset import reinit_db # don't do this. databaseRest runs code *at import time*
|
# from databaseReset import reinit_db # don't do this. databaseRest runs code *at import time*
|
||||||
from troggle.core.models.troggle import DataIssue
|
from troggle.core.models.troggle import (DataIssue, Expedition, Person,
|
||||||
from troggle.core.models.troggle import Expedition, Person, PersonExpedition
|
PersonExpedition)
|
||||||
from troggle.core.models.caves import LogbookEntry, QM, Cave, PersonTrip
|
|
||||||
from troggle.core.models.survex import DrawingFile, Wallet, SurvexBlock, SurvexFile, SurvexPersonRole
|
|
||||||
from troggle.core.views.scans import oldwallet, caveifywallet
|
|
||||||
from troggle.core.views.caves import getCave
|
from troggle.core.views.caves import getCave
|
||||||
|
from troggle.core.views.scans import caveifywallet, oldwallet
|
||||||
|
#from troggle import settings
|
||||||
|
from troggle.parsers.imports import (import_caves, import_drawingsfiles,
|
||||||
|
import_logbooks, import_people,
|
||||||
|
import_QMs, import_survex,
|
||||||
|
import_surveyscans)
|
||||||
|
from troggle.parsers.scans import contentsjson
|
||||||
|
|
||||||
from .auth import login_required_if_public
|
from .auth import login_required_if_public
|
||||||
|
|
||||||
#from django.views.decorators.csrf import ensure_csrf_cookie, csrf_exempt
|
#from django.views.decorators.csrf import ensure_csrf_cookie, csrf_exempt
|
||||||
|
|
||||||
'''File upload 'views'
|
'''File upload 'views'
|
||||||
|
Loading…
Reference in New Issue
Block a user