More work on abstract submissions and related grants
This commit is contained in:
@@ -52,9 +52,15 @@ class Event_Abstract_Base(BaseModel):
|
||||
# poc_event_person_id: Optional[int] # Maybe change this to primary_event_person?
|
||||
|
||||
external_id: Optional[str]
|
||||
grant_id: Optional[str]
|
||||
code: Optional[str]
|
||||
|
||||
grant_id_random: Optional[str]
|
||||
grant_id: Optional[int]
|
||||
|
||||
grant_code: Optional[str]
|
||||
# grant_type_code: Optional[str]
|
||||
# grant_json: Optional[Union[Json, None]]
|
||||
|
||||
name: Optional[str]
|
||||
description: Optional[str]
|
||||
abstract: Optional[str]
|
||||
@@ -131,6 +137,13 @@ class Event_Abstract_Base(BaseModel):
|
||||
return redis_lookup_id_random(record_id_random=id_random, table_name='event_session')
|
||||
return None
|
||||
|
||||
@validator('grant_id', always=True)
|
||||
def grant_id_lookup(cls, v, values, **kwargs):
|
||||
if isinstance(v, int) and v > 0: return v
|
||||
elif id_random := values.get('grant_id_random'):
|
||||
return redis_lookup_id_random(record_id_random=id_random, table_name='grant')
|
||||
return None
|
||||
|
||||
# @validator('poc_event_person_id', always=True)
|
||||
# def poc_event_person_id_lookup(cls, v, values, **kwargs):
|
||||
# log.setLevel(logging.WARNING)
|
||||
@@ -188,7 +201,9 @@ class Event_Abstract_Base_New(Core_Std_Obj_Base):
|
||||
|
||||
passcode: Optional[str]
|
||||
|
||||
grant_id_random: Optional[str]
|
||||
grant_id: Optional[int]
|
||||
|
||||
grant_code: Optional[str]
|
||||
grant_type_code: Optional[str]
|
||||
grant_json: Optional[Union[Json, None]]
|
||||
@@ -201,6 +216,13 @@ class Event_Abstract_Base_New(Core_Std_Obj_Base):
|
||||
submitter_json: Optional[Union[Json, None]]
|
||||
coauthors_json: Optional[Union[Json, None]]
|
||||
|
||||
@validator('event_person_id', always=True)
|
||||
def event_person_id_lookup(cls, v, values, **kwargs):
|
||||
if isinstance(v, int) and v > 0: return v
|
||||
elif id_random := values.get('event_person_id_random'):
|
||||
return redis_lookup_id_random(record_id_random=id_random, table_name='event_person')
|
||||
return None
|
||||
|
||||
class Config:
|
||||
underscore_attrs_are_private = True
|
||||
allow_population_by_field_name = True
|
||||
@@ -269,14 +291,12 @@ class Event_Abstract_In(Event_Abstract_Base_New):
|
||||
return redis_lookup_id_random(record_id_random=id_random, table_name='event_session')
|
||||
return None
|
||||
|
||||
# @validator('poc_event_person_id', always=True)
|
||||
# def poc_event_person_id_lookup(cls, v, values, **kwargs):
|
||||
# log.setLevel(logging.WARNING)
|
||||
# log.debug(locals())
|
||||
|
||||
# if values['poc_event_person_id_random']:
|
||||
# return redis_lookup_id_random(record_id_random=values['poc_event_person_id_random'], table_name='poc_event_person')
|
||||
# return None
|
||||
@validator('grant_id', always=True)
|
||||
def grant_id_lookup(cls, v, values, **kwargs):
|
||||
if isinstance(v, int) and v > 0: return v
|
||||
elif id_random := values.get('grant_id_random'):
|
||||
return redis_lookup_id_random(record_id_random=id_random, table_name='grant')
|
||||
return None
|
||||
# ### END ### API Event Abstract Models ### Event_Abstract_In() ###
|
||||
|
||||
|
||||
|
||||
@@ -80,8 +80,22 @@ class Event_Person_Base(BaseModel):
|
||||
|
||||
# Including convenience data
|
||||
# This is only for convenience. Probably going to keep unless it causes a problem.
|
||||
# This block of person data should come from the event_person_profile table
|
||||
informal_name: Optional[str]
|
||||
given_name: Optional[str]
|
||||
middle_name: Optional[str]
|
||||
family_name: Optional[str]
|
||||
full_name_override: Optional[str]
|
||||
full_name: Optional[str]
|
||||
affiliations: Optional[str]
|
||||
email: Optional[str]
|
||||
website_url: Optional[str]
|
||||
# state_province_name: Optional[str] # Using extended_json for now for AACC abstracts
|
||||
extended_json: Optional[Union[Json, None]]
|
||||
|
||||
event_badge_informal_name: Optional[str]
|
||||
event_badge_given_name: Optional[str]
|
||||
event_badge_middle_name: Optional[str]
|
||||
event_badge_family_name: Optional[str]
|
||||
event_badge_full_name: Optional[str]
|
||||
event_badge_full_name_override: Optional[str]
|
||||
@@ -92,16 +106,20 @@ class Event_Person_Base(BaseModel):
|
||||
event_badge_country_alpha_2_code: Optional[str]
|
||||
event_badge_country: Optional[str]
|
||||
|
||||
# This is the same as the other person data above
|
||||
event_person_informal_name: Optional[str]
|
||||
event_person_given_name: Optional[str]
|
||||
event_person_middle_name: Optional[str]
|
||||
event_person_family_name: Optional[str]
|
||||
event_person_name_override: Optional[str]
|
||||
event_person_full_name: Optional[str]
|
||||
event_person_affiliations: Optional[str]
|
||||
event_person_email: Optional[str]
|
||||
event_person_extended_json: Optional[Union[Json, None]]
|
||||
|
||||
person_informal_name: Optional[str]
|
||||
person_given_name: Optional[str]
|
||||
person_middle_name: Optional[str]
|
||||
person_family_name: Optional[str]
|
||||
person_display_name: Optional[str]
|
||||
person_full_name: Optional[str]
|
||||
@@ -234,14 +252,54 @@ class Event_Person_New_Base(BaseModel):
|
||||
event_id_random: Optional[str]
|
||||
event_id: Optional[int]
|
||||
|
||||
extended_json: Optional[Union[Json, None]]
|
||||
|
||||
# Including convenience data
|
||||
# This is only for convenience. Probably going to keep unless it causes a problem.
|
||||
# This block of person data should come from the event_person_profile table
|
||||
informal_name: Optional[str]
|
||||
given_name: Optional[str]
|
||||
middle_name: Optional[str]
|
||||
family_name: Optional[str]
|
||||
full_name: Optional[str]
|
||||
full_name_override: Optional[str]
|
||||
affiliations: Optional[str]
|
||||
email: Optional[str]
|
||||
website_url: Optional[str]
|
||||
state_province_name: Optional[str]
|
||||
|
||||
event_badge_informal_name: Optional[str]
|
||||
event_badge_given_name: Optional[str]
|
||||
event_badge_middle_name: Optional[str]
|
||||
event_badge_family_name: Optional[str]
|
||||
event_badge_full_name: Optional[str]
|
||||
event_badge_full_name_override: Optional[str]
|
||||
event_badge_affiliations: Optional[str]
|
||||
event_badge_email: Optional[str]
|
||||
event_badge_city: Optional[str]
|
||||
event_badge_state_province: Optional[str]
|
||||
event_badge_country_alpha_2_code: Optional[str]
|
||||
event_badge_country: Optional[str]
|
||||
|
||||
# This is the same as the other person data above
|
||||
event_person_informal_name: Optional[str]
|
||||
event_person_given_name: Optional[str]
|
||||
event_person_middle_name: Optional[str]
|
||||
event_person_family_name: Optional[str]
|
||||
event_person_name_override: Optional[str]
|
||||
event_person_full_name: Optional[str]
|
||||
event_person_affiliations: Optional[str]
|
||||
event_person_email: Optional[str]
|
||||
|
||||
person_given_name: Optional[str]
|
||||
person_middle_name: Optional[str]
|
||||
person_family_name: Optional[str]
|
||||
person_full_name: Optional[str]
|
||||
person_display_name: Optional[str]
|
||||
|
||||
affiliations: Optional[str] # One or more affiliations with organizations, companies, and other groups
|
||||
# affiliations: Optional[str] # One or more affiliations with organizations, companies, and other groups
|
||||
|
||||
email: Optional[str]
|
||||
# email: Optional[str]
|
||||
|
||||
#new_password: str = Field(default_factory = lambda:secrets.token_urlsafe(default_num_bytes))
|
||||
#password: Optional[str]
|
||||
|
||||
Reference in New Issue
Block a user