summaryrefslogtreecommitdiffstats
path: root/parsers/people.py
diff options
context:
space:
mode:
authorPhilip Sargent <philip.sargent@gmail.com>2025-02-09 22:06:19 +0000
committerPhilip Sargent <philip.sargent@gmail.com>2025-02-09 22:06:19 +0000
commit10352f2ccb194e9fca562b19cecbe294e93d2d8c (patch)
treef6c639098a7e5259cbcb65e782b414896c3b5c45 /parsers/people.py
parent0e2ccee6788f41cc9113925575502a4a44182978 (diff)
downloadtroggle-10352f2ccb194e9fca562b19cecbe294e93d2d8c.tar.gz
troggle-10352f2ccb194e9fca562b19cecbe294e93d2d8c.tar.bz2
troggle-10352f2ccb194e9fca562b19cecbe294e93d2d8c.zip
Signup adds person to current expedition
Diffstat (limited to 'parsers/people.py')
-rw-r--r--parsers/people.py19
1 files changed, 15 insertions, 4 deletions
diff --git a/parsers/people.py b/parsers/people.py
index 04b5e2f..b6b8159 100644
--- a/parsers/people.py
+++ b/parsers/people.py
@@ -10,6 +10,7 @@ from django.db import models
from unidecode import unidecode
from troggle.core.models.troggle import DataIssue, Expedition, Person, PersonExpedition
+from troggle.core.views.signup import read_signups
"""These functions do not match how the stand-alone folk script works. So the script produces an HTML file which has
href links to pages in troggle which troggle does not think are right.
@@ -94,8 +95,6 @@ def troggle_slugify(longname):
def load_people_expos():
"""This is where the folk.csv file is parsed to read people's names.
- Which it gets wrong for people like Lydia-Clare Leather and various 'von' and 'de' middle 'names'
- and McLean and Mclean and McAdam - interaction with the url parser in urls.py too
This is ALSO where all the Expedition objects get created. So this is the point at which troggle
gets told what expeditions exist.
@@ -116,6 +115,7 @@ def load_people_expos():
if nexpos <= 0:
print(" - Creating expeditions")
for year in years:
+ year = year.strip()
coUniqueAttribs = {"year": year}
otherAttribs = {"name": f"CUCC expo {year}"}
e = Expedition.objects.create(**otherAttribs, **coUniqueAttribs)
@@ -176,10 +176,22 @@ def load_people_expos():
pe = PersonExpedition.objects.create(**coUniqueAttribs)
print("", flush=True)
ensure_users_are_persons()
+ most_recent = Expedition.objects.all().first()
+ check_new_signups(most_recent)
+
+def check_new_signups(expedition):
+ signups_clear = read_signups()
+ # print(signups_clear)
+ for slug in signups_clear:
+ print(slug)
+ p = Person.objects.get(slug=slug)
+ pe = PersonExpedition.objects.update_or_create(person=p, expedition=expedition)
+ # print("ADDING ",pe, expedition)
+
def ensure_users_are_persons():
# Just ensure this is up to date.
- print(f"# ensure_users_are_persons()")
+ print(f"# ensure_users_are_persons() - except for expo and expoadmin of course")
users = User.objects.all()
for u in users:
ps = Person.objects.filter(slug=u.username)
@@ -197,7 +209,6 @@ def who_is_this(year, possibleid):
else:
return None
-
def when_on_expo(name):
"""Returns a list of PersonExpedition objects for the string, if recognised as a name
"""