2
0
mirror of https://expo.survex.com/repositories/troggle/.git synced 2024-11-25 08:41:51 +00:00

Removing foissil: subcave and flatpages-redirects

This commit is contained in:
Philip Sargent 2020-07-22 22:14:35 +01:00
parent 190514597b
commit 427afa9ebd
8 changed files with 85 additions and 83 deletions

View File

@ -59,7 +59,7 @@ class SimpleTest(SimpleTestCase):
def test_import_parses_mix(self):
from troggle.parsers.logbooks import GetCaveLookup
import troggle.settings
import troggle.flatpages.models
#import troggle.flatpages.models
import troggle.logbooksdump
import troggle.parsers.caves
import troggle.parsers.people

View File

@ -141,10 +141,11 @@ class SurvexBlock(models.Model):
def DayIndex(self):
return list(self.expeditionday.survexblock_set.all()).index(self)
class SurvexTitle(models.Model):
survexblock = models.ForeignKey('SurvexBlock',null=True, on_delete=models.SET_NULL)
title = models.CharField(max_length=200) # needed by svxcavesingle.html template
cave = models.ForeignKey('Cave', blank=True, null=True,on_delete=models.SET_NULL)
# Fossil. No code uses this.
# class SurvexTitle(models.Model):
# survexblock = models.ForeignKey('SurvexBlock',null=True, on_delete=models.SET_NULL)
# title = models.CharField(max_length=200) # needed by svxcavesingle.html template
# cave = models.ForeignKey('Cave', blank=True, null=True,on_delete=models.SET_NULL)
#
# member of a SurvexBlock

View File

@ -14,7 +14,7 @@ from django.http import HttpResponse, Http404
import troggle.settings as settings
import parsers.survex
from troggle.core.models import Expedition, Person, PersonExpedition
from troggle.core.models_survex import SurvexBlock, SurvexPersonRole, SurvexFile, SurvexDirectory #, SurvexTitle
from troggle.core.models_survex import SurvexBlock, SurvexPersonRole, SurvexFile, SurvexDirectory
from troggle.core.models_caves import Cave, PersonTrip, LogbookEntry
from troggle.parsers.people import GetPersonExpeditionNameLookup

View File

@ -1,5 +1,5 @@
from troggle.flatpages.models import Redirect, EntranceRedirect
#from troggle.flatpages.models import Redirect, EntranceRedirect
from django.contrib import admin
admin.site.register(Redirect)
admin.site.register(EntranceRedirect)
# admin.site.register(Redirect)
# admin.site.register(EntranceRedirect)

View File

@ -1,12 +1,12 @@
from django.db import models
from troggle.core.models_caves import Cave, Entrance
class Redirect(models.Model):
originalURL = models.CharField(max_length=200, unique=True)
newURL = models.CharField(max_length=200)
# class Redirect(models.Model):
# originalURL = models.CharField(max_length=200, unique=True)
# newURL = models.CharField(max_length=200)
class EntranceRedirect(models.Model):
originalURL = models.CharField(max_length=200)
entrance = models.ForeignKey(Entrance,on_delete=models.CASCADE)
def __str__(self):
return self.entrance.slug
# class EntranceRedirect(models.Model):
# originalURL = models.CharField(max_length=200)
# entrance = models.ForeignKey(Entrance,on_delete=models.CASCADE)
# def __str__(self):
# return self.entrance.slug

View File

@ -8,19 +8,19 @@ from django.template import Context, loader
import django.forms as forms
from troggle.helper import login_required_if_public
from troggle.flatpages.models import Redirect, EntranceRedirect
#from troggle.flatpages.models import Redirect, EntranceRedirect
from troggle.core.models_caves import Cave
import troggle.core.views_caves
import troggle.settings as settings
def flatpage(request, path):
#print(" - FLATPAGES delivering the file: {} as MIME type: {}".format(path,getmimetype(path)))
try:
r = Redirect.objects.get(originalURL = path)
#print(" - FLATPAGES REDIRECT the file: {} as: {}".format(path,r))
return HttpResponseRedirect(r.newURL) # Redirect after POST
except Redirect.DoesNotExist:
pass
# try:
# r = Redirect.objects.get(originalURL = path)
# #print(" - FLATPAGES REDIRECT the file: {} as: {}".format(path,r))
# return HttpResponseRedirect(r.newURL) # Redirect after POST
# except Redirect.DoesNotExist:
# pass
try:
r = Cave.objects.get(url = path)
@ -36,11 +36,11 @@ def flatpage(request, path):
return troggle.core.views_caves.caveSlug(request, c.slug())
pass
try:
r = EntranceRedirect.objects.get(originalURL = path)
return troggle.core.views_caves.entranceSlug(request, r.entrance.slug())
except EntranceRedirect.DoesNotExist:
pass
# try:
# r = EntranceRedirect.objects.get(originalURL = path)
# return troggle.core.views_caves.entranceSlug(request, r.entrance.slug())
# except EntranceRedirect.DoesNotExist:
# pass
if path.startswith("noinfo") and settings.PUBLIC_SITE and not request.user.is_authenticated():

View File

@ -57,7 +57,8 @@ def import_drawingsfiles():
print("-- Importing Drawings files")
troggle.parsers.surveys.LoadDrawingFiles()
def import_subcaves():
print("-- Interpreting SubCaves from CaveDescriptions")
troggle.parsers.subcaves.importAllSubcaves()
# Fossil.
# def import_subcaves():
# print("-- Interpreting SubCaves from CaveDescriptions")
# troggle.parsers.subcaves.importAllSubcaves()

View File

@ -1,60 +1,60 @@
'''
This module is the part of troggle that parses descriptions of cave parts (subcaves) from the legacy html files and saves them in the troggle database as instances of the model Subcave. Unfortunately, this parser can not be very flexible because the legacy format is poorly structured.
'''
import sys
import os
import re
import logging
# '''
# This module is the part of troggle that parses descriptions of cave parts (subcaves) from the legacy html files and saves them in the troggle database as instances of the model Subcave. Unfortunately, this parser can not be very flexible because the legacy format is poorly structured.
# '''
# import sys
# import os
# import re
# import logging
from django.conf import settings
# from django.conf import settings
from troggle.core.models_caves import Cave, NewSubCave
from utils import save_carefully
# from troggle.core.models_caves import Cave, NewSubCave
# from utils import save_carefully
def getLinksInCaveDescription(cave):
'''
Returns all HTML <a href> tags from a given cave as a list of tuples
in the format ('filename.html','Description')
'''
pattern='<a href=\"(.*?)\">(.*?)</a>'
if cave.underground_description:
return re.findall(pattern,cave.underground_description)
else:
return []
# def getLinksInCaveDescription(cave):
# '''
# Returns all HTML <a href> tags from a given cave as a list of tuples
# in the format ('filename.html','Description')
# '''
# pattern='<a href=\"(.*?)\">(.*?)</a>'
# if cave.underground_description:
# return re.findall(pattern,cave.underground_description)
# else:
# return []
def importSubcaves(cave):
for link in getLinksInCaveDescription(cave):
try:
subcaveFilePath=os.path.join(
settings.EXPOWEB,
os.path.dirname(cave.description_file),
link[0])
subcaveFile=open(subcaveFilePath,'rb')
description=subcaveFile.read() # decode('iso-8859-1').encode('utf-8')
# def importSubcaves(cave):
# for link in getLinksInCaveDescription(cave):
# try:
# subcaveFilePath=os.path.join(
# settings.EXPOWEB,
# os.path.dirname(cave.description_file),
# link[0])
# subcaveFile=open(subcaveFilePath,'rb')
# description=subcaveFile.read() # decode('iso-8859-1').encode('utf-8')
#lookupAttribs={'title':link[1], 'cave':cave}
#nonLookupAttribs={'description':description}
lookupAttribs={}
nonLookupAttribs={}
newSubcave=save_carefully(NewSubCave,lookupAttribs=lookupAttribs,nonLookupAttribs=nonLookupAttribs)
# #lookupAttribs={'title':link[1], 'cave':cave}
# #nonLookupAttribs={'description':description}
# lookupAttribs={}
# nonLookupAttribs={}
# newSubcave=save_carefully(NewSubCave,lookupAttribs=lookupAttribs,nonLookupAttribs=nonLookupAttribs)
logging.info("Added " + str(newSubcave) + " to " + str(cave))
except IOError:
logging.info("Subcave import couldn't open "+subcaveFilePath)
# logging.info("Added " + str(newSubcave) + " to " + str(cave))
# except IOError:
# logging.info("Subcave import couldn't open "+subcaveFilePath)
def getLinksInSubcaveDescription(subcave):
pattern='<a href=\"(.*?)\">(.*?)</a>'
if subcave.description:
return re.findall(pattern,subcave.description)
else:
return []
# def getLinksInSubcaveDescription(subcave):
# pattern='<a href=\"(.*?)\">(.*?)</a>'
# if subcave.description:
# return re.findall(pattern,subcave.description)
# else:
# return []
def getLinksInAllSubcaves():
bigList=[]
for subcave in NewSubCave.objects.all():
bigList+=getLinksInSubcaveDescription(subcave)
return bigList
# def getLinksInAllSubcaves():
# bigList=[]
# for subcave in NewSubCave.objects.all():
# bigList+=getLinksInSubcaveDescription(subcave)
# return bigList
def importAllSubcaves():
for cave in Cave.objects.all():
importSubcaves(cave)
# def importAllSubcaves():
# for cave in Cave.objects.all():
# importSubcaves(cave)