2
0
mirror of https://expo.survex.com/repositories/troggle/.git synced 2025-12-17 11:57:04 +00:00

refactoring people import from folk.csv

This commit is contained in:
2025-07-21 15:41:05 +02:00
parent 1cfcbccf76
commit 2039501672
8 changed files with 141 additions and 34 deletions

View File

@@ -67,7 +67,7 @@ class Expedition(TroggleModel):
logbookfile = models.CharField(max_length=100, blank=True, null=True)
def __str__(self):
return self.year
return str(self.year)
class Meta:
ordering = ("-year",)
@@ -85,11 +85,13 @@ class Person(TroggleModel):
definied in django.contrib.auth.models
"""
first_name = models.CharField(max_length=100)
last_name = models.CharField(max_length=100)
fullname = models.CharField(max_length=200) # display name, but should not be used for lookups
nickname = models.CharField(max_length=200, blank=True)
slug = models.SlugField(max_length=50, blank=True, null=True) # unique, enforced in code not in db
input_name = models.CharField(max_length=100, blank=True, null=True)
input_surname = models.CharField(max_length=100, blank=True, null=True)
first_name = models.CharField(max_length=100, blank=True, null=True)
last_name = models.CharField(max_length=100, blank=True, null=True)
fullname = models.CharField(max_length=200, blank=True, null=True) # display name, but should not be used for lookups
nickname = models.CharField(max_length=200, blank=True, null=True)
slug = models.SlugField(max_length=50) # unique, enforced in code not in db
# no delete cascade. We have users without Persons, and Persons without users
user = models.OneToOneField(User, models.SET_NULL, blank=True, null=True)
@@ -99,6 +101,7 @@ class Person(TroggleModel):
)
is_guest = models.BooleanField(default=False) # This is per-Person, not per-PersonExpedition
mug_shot = models.CharField(max_length=100, blank=True, null=True)
blurbfile = models.CharField(max_length=100, blank=True, null=True)
blurb = models.TextField(blank=True, null=True)
orderref = models.CharField(max_length=200, blank=True) # for alphabetic
@@ -164,6 +167,10 @@ class PersonExpedition(TroggleModel):
expedition = models.ForeignKey(Expedition, on_delete=models.CASCADE, db_index=True)
person = models.ForeignKey(Person, on_delete=models.CASCADE, db_index=True)
slugfield = models.SlugField(max_length=50, blank=True, null=True) # 2022 to be used in future
noncaver = models.BooleanField(
help_text="if flagged as -1 in the folk.csv input file",
default=True,
)
# is_guest = models.BooleanField(default=False) # This is per-Person, not per-PersonExpedition