Working on event registration and related.

This commit is contained in:
Scott Idem
2021-08-17 20:53:01 -04:00
parent 2f037290d9
commit ad9417911a
11 changed files with 294 additions and 35 deletions

View File

@@ -20,7 +20,7 @@ class Event_Badge_Base(BaseModel):
default_factory = lambda:secrets.token_urlsafe(default_num_bytes),
)
id: Optional[int] = Field(
#alias = 'event_badge_id'
alias = 'event_badge_id'
)
# account_id_random: Optional[str]
# account_id: Optional[int]
@@ -32,20 +32,28 @@ class Event_Badge_Base(BaseModel):
person_id: Optional[int]
pronoun: Optional[str]
informal_name: Optional[str]
given_name: Optional[str]
family_name: Optional[str]
full_name: Optional[str]
display_name: Optional[str] # Actual name shown on badge and other "public" areas
email: Optional[str]
degree: Optional[str]
degrees: Optional[str] # Do we want this?
credentials: Optional[str]
title: Optional[str]
affiliation: Optional[str]
affiliations: Optional[str] # Do we want this?
affiliation_name: Optional[str] # Actual affiliation name(s) shown on badge and other "public" areas
city: Optional[str]
county: Optional[str] # NOTE: This is for a county within a state or province
state_province: Optional[str]
country: Optional[str]
location_name: Optional[str] # Actual location name shown on badge and other "public" areas
# NOTE: More badge fields need to be added here once things are cleaned up
@@ -107,6 +115,7 @@ class Event_Badge_Base(BaseModel):
class Config:
underscore_attrs_are_private = True
allow_population_by_field_name = True
fields = base_fields
Event_Badge_Base.update_forward_refs()

View File

@@ -34,9 +34,15 @@ class Event_Person_Base(BaseModel):
event_id_random: Optional[str]
event_id: Optional[int]
event_badge_id_random: Optional[str]
event_badge_id_random: Optional[str] # Default attendee badge
event_badge_id: Optional[int]
event_badge_vendor_id_random: Optional[str] # Additional vendor badge
event_badge_vendor_id: Optional[int]
event_badge_vip_id_random: Optional[str] # Additional VIP badge
event_badge_vip_id: Optional[int]
event_registration_id_random: Optional[str]
event_registration_id: Optional[int]
@@ -57,7 +63,9 @@ class Event_Person_Base(BaseModel):
# Including other related objects
# event: Optional[Event_Base] # Causes an import loop
event_abstract_list: Optional[list] # Use event_person_detail table. An event_person record can be linked to one or more abstracts
event_badge: Optional[Event_Badge_Base]
event_badge: Optional[Event_Badge_Base] # Default attendee badge
event_badge_vendor: Optional[Event_Badge_Base] # Additional vendor badge
event_badge_vip: Optional[Event_Badge_Base] # Additional VIP badge
event_exhibit_list: Optional[list] # Use event_person_detail table. An event_person record can be linked to one or more exhibits
event_file_list: Optional[list] # Use event_person_detail table. An event_person record can be linked to one or more files
event_location_list: Optional[list] # Use event_person_detail table. An event_person record can be linked to one or more locations (but unlikely?)
@@ -118,6 +126,24 @@ class Event_Person_Base(BaseModel):
return redis_lookup_id_random(record_id_random=values['event_badge_id_random'], table_name='event_badge')
return None
@validator('event_badge_vendor_id', always=True)
def event_badge_vendor_id_lookup(cls, v, values, **kwargs):
log.setLevel(logging.WARNING)
log.debug(locals())
if values['event_badge_vendor_id_random']:
return redis_lookup_id_random(record_id_random=values['event_badge_vendor_id_random'], table_name='event_badge')
return None
@validator('event_badge_vip_id', always=True)
def event_badge_vip_id_lookup(cls, v, values, **kwargs):
log.setLevel(logging.WARNING)
log.debug(locals())
if values['event_badge_vip_id_random']:
return redis_lookup_id_random(record_id_random=values['event_badge_vip_id_random'], table_name='event_badge')
return None
@validator('event_registration_id', always=True)
def event_registration_id_lookup(cls, v, values, **kwargs):
log.setLevel(logging.WARNING)
@@ -147,6 +173,7 @@ class Event_Person_Base(BaseModel):
class Config:
underscore_attrs_are_private = True
allow_population_by_field_name = True
fields = base_fields
@@ -160,7 +187,7 @@ class Event_Person_New_Base(BaseModel):
default_factory = lambda:secrets.token_urlsafe(default_num_bytes),
)
id: Optional[int] = Field(
#alias = 'event_person_id'
alias = 'event_person_id'
)
account_id_random: Optional[str]
account_id: Optional[int]
@@ -234,4 +261,5 @@ class Event_Person_New_Base(BaseModel):
class Config:
underscore_attrs_are_private = True
allow_population_by_field_name = True
fields = base_fields

View File

@@ -44,6 +44,7 @@ class Event_Registration_Base(BaseModel):
# Including other related objects
cfg: Optional[Event_Registration_Cfg_Base]
event_person_list: Optional[list] # Optional[Event_Person_Base]
_processed_at: datetime.datetime = PrivateAttr(default_factory=datetime.datetime.now)