diff options
author | substantialnoninfringinguser <substantialnoninfringinguser@gmail.com> | 2009-05-13 05:39:52 +0100 |
---|---|---|
committer | substantialnoninfringinguser <substantialnoninfringinguser@gmail.com> | 2009-05-13 05:39:52 +0100 |
commit | 0ba4dd4ef47eeeb8ef38b4c30b6d39649c56342a (patch) | |
tree | 7a806015bda042e5d13d55e6d52a37924fb4e11e /parsers/people.py | |
parent | 39ab4d25147a8e115fc4f6f05c8246dbe51c3ca0 (diff) | |
download | troggle-0ba4dd4ef47eeeb8ef38b4c30b6d39649c56342a.tar.gz troggle-0ba4dd4ef47eeeb8ef38b4c30b6d39649c56342a.tar.bz2 troggle-0ba4dd4ef47eeeb8ef38b4c30b6d39649c56342a.zip |
[svn] survey block object
Copied from http://cucc@cucc.survex.com/svn/trunk/expoweb/troggle/, rev. 8199 by julian @ 1/19/2009 12:22 AM
Diffstat (limited to 'parsers/people.py')
-rw-r--r-- | parsers/people.py | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/parsers/people.py b/parsers/people.py index c59d3d8..93d8a0e 100644 --- a/parsers/people.py +++ b/parsers/people.py @@ -120,3 +120,40 @@ def LoadPersonsExpos(): pyo = models.PersonExpedition(person = pObject, expedition = yo, nickname="", is_guest=is_guest) pyo.save() +# expedition name lookup cached for speed (it's a very big list) +Gpersonexpeditionnamelookup = { } +def GetPersonExpeditionNameLookup(expedition): + global Gpersonexpeditionnamelookup + res = Gpersonexpeditionnamelookup.get(expedition.name) + if res: + return res + + res = {} + duplicates = set() + + personexpeditions = models.PersonExpedition.objects.filter(expedition=expedition) + for personexpedition in personexpeditions: + possnames = [ ] + f = personexpedition.person.first_name.lower() + l = personexpedition.person.last_name.lower() + if l: + possnames.append(f + " " + l) + possnames.append(f + " " + l[0]) + possnames.append(f + l[0]) + possnames.append(f[0] + " " + l) + possnames.append(f) + if personexpedition.nickname: + possnames.append(personexpedition.nickname.lower()) + + for possname in possnames: + if possname in res: + duplicates.add(possname) + else: + res[possname] = personexpedition + + for possname in duplicates: + del res[possname] + + Gpersonexpeditionnamelookup[expedition.name] = res + return res + |