summaryrefslogtreecommitdiffstats
path: root/parsers
diff options
context:
space:
mode:
Diffstat (limited to 'parsers')
-rw-r--r--parsers/logbooks.py8
-rw-r--r--parsers/people.py94
2 files changed, 51 insertions, 51 deletions
diff --git a/parsers/logbooks.py b/parsers/logbooks.py
index 3bad8c4..8138953 100644
--- a/parsers/logbooks.py
+++ b/parsers/logbooks.py
@@ -12,6 +12,11 @@ import datetime
import os
+#
+# When we edit logbook entries, allow a "?" after any piece of data to say we've frigged it and
+# it can be checked up later from the hard-copy if necessary; or it's not possible to determin (name, trip place, etc)
+#
+
#
# the logbook loading section
#
@@ -72,7 +77,7 @@ def EnterLogIntoDbase(date, place, title, text, trippeople, expedition, logtime_
lplace = place.lower()
if lplace not in noncaveplaces:
lbo.cave=GetCaveLookup().get(lplace)
- print "pppp %s |%s|" % (lplace, str(lbo.cave))
+ #print "pppp %s |%s|" % (lplace, str(lbo.cave))
lbo.save()
#print "ttt", date, place
@@ -289,6 +294,7 @@ def SetDatesFromLogbookEntries(expedition):
def LoadLogbookForExpedition(expedition):
+ print "deleting logbooks for", expedition
expedition.logbookentry_set.all().delete()
models.PersonTrip.objects.filter(person_expedition__expedition=expedition).delete()
expowebbase = os.path.join(settings.EXPOWEB, "years")
diff --git a/parsers/people.py b/parsers/people.py
index 4a2ea11..2fda46e 100644
--- a/parsers/people.py
+++ b/parsers/people.py
@@ -52,81 +52,74 @@ def LoadPersonsExpos():
headers = personreader.next()
header = dict(zip(headers, range(len(headers))))
+ # make expeditions
+ print "Loading expeditions"
models.Expedition.objects.all().delete()
years = headers[5:]
years.append("2008")
for year in years:
- y = models.Expedition(year = year, name = "CUCC expo%s" % year)
- y.save()
- print "lll", years
+ expedition = models.Expedition(year = year, name = "CUCC expo%s" % year)
+ expedition.save()
+ # make persons
+ print "Loading personexpeditions"
models.Person.objects.all().delete()
models.PersonExpedition.objects.all().delete()
expoers2008 = """Edvin Deadman,Kathryn Hopkins,Djuke Veldhuis,Becka Lawson,Julian Todd,Natalie Uomini,Aaron Curtis,Tony Rooke,Ollie Stevens,Frank Tully,Martin Jahnke,Mark Shinwell,Jess Stirrups,Nial Peters,Serena Povia,Olly Madge,Steve Jones,Pete Harley,Eeva Makiranta,Keith Curtis""".split(",")
expomissing = set(expoers2008)
- for person in personreader:
- name = person[header["Name"]]
+ for personline in personreader:
+ name = personline[header["Name"]]
name = re.sub("<.*?>", "", name)
mname = re.match("(\w+)(?:\s((?:van |ten )?\w+))?(?:\s\(([^)]*)\))?", name)
-
- if mname.group(3):
- nickname = mname.group(3)
- else:
- nickname = ""
-
- firstname, lastname = mname.group(1), mname.group(2) or ""
-
- print firstname, lastname, "NNN", nickname
- #assert lastname == person[header[""]], person
-
- href = firstname.lower()
- if lastname:
- href += "_" + lastname.lower()
- pObject = models.Person(first_name = firstname,
- last_name = lastname, href=href,
- is_vfho = person[header["VfHO member"]],
- )
-
- is_guest = person[header["Guest"]] == "1" # this is really a per-expo catagory; not a permanent state
- pObject.save()
+ nickname = mname.group(3) or ""
+
+ person = models.Person(first_name=mname.group(1), last_name=(mname.group(2) or ""))
+ person.is_vfho = personline[header["VfHO member"]]
+ person.Sethref()
+ #print "NNNN", person.href
+ is_guest = (personline[header["Guest"]] == "1") # this is really a per-expo catagory; not a permanent state
+ person.save()
#parseMugShotAndBlurb(firstname, lastname, person, header, pObject)
- for year, attended in zip(headers, person)[5:]:
- yo = models.Expedition.objects.filter(year = year)[0]
+ # make person expedition from table
+ for year, attended in zip(headers, personline)[5:]:
+ expedition = models.Expedition.objects.get(year=year)
if attended == "1" or attended == "-1":
- pyo = models.PersonExpedition(person = pObject, expedition = yo, nickname=nickname, is_guest=is_guest)
- pyo.save()
-
- # error
- elif (firstname, lastname) == ("Mike", "Richardson") and year == "2001":
- print "Mike Richardson(2001) error"
- pyo = models.PersonExpedition(person = pObject, expedition = yo, nickname=nickname, is_guest=is_guest)
- pyo.save()
+ personexpedition = models.PersonExpedition(person=person, expedition=expedition, nickname=nickname, is_guest=is_guest)
+ personexpedition.save()
# this fills in those people for whom 2008 was their first expo
+ print "Loading personexpeditions 2008"
for name in expomissing:
firstname, lastname = name.split()
is_guest = name in ["Eeva Makiranta", "Keith Curtis"]
print "2008:", name
persons = list(models.Person.objects.filter(first_name=firstname, last_name=lastname))
if not persons:
- pObject = models.Person(first_name = firstname,
- last_name = lastname,
- is_vfho = False,
- mug_shot = "")
- pObject.href = firstname.lower()
- if lastname:
- pObject.href += "_" + lastname.lower()
- pObject.save()
+ person = models.Person(first_name=firstname, last_name = lastname, is_vfho = False, mug_shot = "")
+ person.Sethref()
+ person.save()
else:
- pObject = persons[0]
- yo = models.Expedition.objects.filter(year = "2008")[0]
- pyo = models.PersonExpedition(person = pObject, expedition = yo, nickname="", is_guest=is_guest)
- pyo.save()
-
+ person = persons[0]
+ expedition = models.Expedition.objects.get(year="2008")
+ personexpedition = models.PersonExpedition(person=person, expedition=expedition, nickname="", is_guest=is_guest)
+ personexpedition.save()
+
+ # could rank according to surveying as well
+ print "Setting person notability"
+ for person in models.Person.objects.all():
+ person.notability = 0.0
+ for personexpedition in person.personexpedition_set.all():
+ if not personexpedition.is_guest:
+ person.notability += 1.0 / (2012 - int(personexpedition.expedition.year))
+ person.bisnotable = person.notability > 0.3 # I don't know how to filter by this
+ person.save()
+
+
+# used in other referencing parser functions
# expedition name lookup cached for speed (it's a very big list)
Gpersonexpeditionnamelookup = { }
def GetPersonExpeditionNameLookup(expedition):
@@ -135,9 +128,10 @@ def GetPersonExpeditionNameLookup(expedition):
if res:
return res
- res = {}
+ res = { }
duplicates = set()
+ print "Calculating GetPersonExpeditionNameLookup for", expedition.year
personexpeditions = models.PersonExpedition.objects.filter(expedition=expedition)
for personexpedition in personexpeditions:
possnames = [ ]