Working on event registration and related.
This commit is contained in:
@@ -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()
|
||||
|
||||
@@ -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
|
||||
@@ -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)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user