mirror of
https://expo.survex.com/repositories/troggle/.git
synced 2025-12-17 13:57:06 +00:00
Model change: add 1:1 link Person:User
This commit is contained in:
@@ -5,6 +5,7 @@ getcontext().prec = 2 # use 2 significant figures for decimal calculations
|
||||
|
||||
from django.db import models
|
||||
from django.urls import reverse
|
||||
from django.contrib.auth.models import User
|
||||
|
||||
import settings
|
||||
|
||||
@@ -82,8 +83,10 @@ class Person(TroggleModel):
|
||||
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)
|
||||
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
|
||||
# no delete cascade. We have users without Persons, and Persons without users
|
||||
user = models.OneToOneField(User, models.SET_NULL, blank=True, null=True)
|
||||
|
||||
is_vfho = models.BooleanField(
|
||||
help_text="VFHO is the Vereines für Höhlenkunde in Obersteier, a nearby Austrian caving club.",
|
||||
@@ -92,7 +95,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)
|
||||
blurb = models.TextField(blank=True, null=True)
|
||||
orderref = models.CharField(max_length=200) # for alphabetic
|
||||
orderref = models.CharField(max_length=200, blank=True) # for alphabetic
|
||||
|
||||
def get_absolute_url(self):
|
||||
# we do not use URL_ROOT any more.
|
||||
|
||||
@@ -8,7 +8,7 @@ from django.conf import settings
|
||||
from django.contrib.auth.models import User
|
||||
from django.db import models
|
||||
|
||||
from troggle.core.models.troggle import DataIssue
|
||||
from troggle.core.models.troggle import DataIssue, Person
|
||||
|
||||
"""This imports the registered troggle users, who are nearly-all, but not quite, Persons.
|
||||
exceptions are "expo" and "expoadmin" which are created by the databaseReset.py import program.
|
||||
@@ -46,6 +46,12 @@ def register_user(u, email, password=None, pwhash=None):
|
||||
except Exception as e:
|
||||
print(f"Exception <{e}>\n{len(User.objects.all())} users now in db:\n{User.objects.all()}")
|
||||
raise
|
||||
|
||||
expoers = Person.objects.filter(slug=u)
|
||||
if len(expoers) == 1:
|
||||
person = expoers[0]
|
||||
person.user = user
|
||||
person.save()
|
||||
return user
|
||||
|
||||
def get_encryptor():
|
||||
|
||||
Reference in New Issue
Block a user