A lot of work on event related modules

This commit is contained in:
Scott Idem
2021-06-04 16:01:23 -04:00
parent 735e50dc0f
commit 627bc8c4df
10 changed files with 554 additions and 200 deletions

View File

@@ -32,6 +32,7 @@ base_fields['event_file_id_random'] = xxx_id_random_field_schema
base_fields['event_id_random'] = xxx_id_random_field_schema
base_fields['event_abstract_id_random'] = xxx_id_random_field_schema
base_fields['event_badge_id_random'] = xxx_id_random_field_schema
base_fields['event_cfg_id_random'] = xxx_id_random_field_schema # Not really ready yet
base_fields['event_device_id_random'] = xxx_id_random_field_schema
base_fields['event_location_id_random'] = xxx_id_random_field_schema
base_fields['event_person_id_random'] = xxx_id_random_field_schema

View File

@@ -106,9 +106,11 @@ class Event_Base(BaseModel):
contact_2: Optional[Contact_Base]
contact_3: Optional[Contact_Base]
event_abstract_list: Optional[list] # Optional[Event_Abstract_Base]
event_cfg: Optional[Event_Cfg_Base]
event_device_list: Optional[list] # Optional[Event_Device_Base]
event_file_list: Optional[list] # Optional[Event_File_Base]
event_location_list: Optional[list] # Optional[Event_Location_Base]
event_person_list: Optional[list]
event_presentation_list: Optional[list] # Optional[Event_Presentation_Base]
event_presenter_list: Optional[list] # Optional[Event_Presenter_Base]
event_session_list: Optional[list] # Optional[Event_Session_Base]
@@ -179,4 +181,102 @@ class Event_Base(BaseModel):
underscore_attrs_are_private = True
fields = base_fields
Event_Base.update_forward_refs()
class Event_Cfg_Base(BaseModel):
log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.debug(locals())
# id_random: Optional[str] = Field(
# **base_fields['event_cfg_id_random'],
# alias='event_cfg_id_random',
# default_factory=lambda:secrets.token_urlsafe(default_num_bytes),
# )
# id: Optional[int] = Field(
# #alias='event_cfg_id'
# )
enable: Optional[bool]
enable_from: Optional[datetime.datetime]
enable_to: Optional[datetime.datetime]
enable_comments: Optional[bool]
disable_navigation: Optional[bool]
enable_event_file_upload_for_event: Optional[bool]
enable_event_file_upload_for_location: Optional[bool]
enable_event_file_upload_for_presentation: Optional[bool]
enable_event_file_upload_for_presenter: Optional[bool]
enable_event_file_upload_for_session: Optional[bool]
enable_event_file_upload_for_track: Optional[bool]
# enable_event_file_upload_for_event_track: Optional[bool] # Change to this pattern in the future?
# enable_file_upload_for_track: Optional[bool] # Change to this pattern in the future?
enable_event_file_upload_review_question: Optional[bool]
enable_event_file_upload_email_question: Optional[bool]
enable_event_file_upload_comments_question: Optional[bool]
enable_event_file_approval_option: Optional[bool]
enable_event_file_public_use_option: Optional[bool]
enable_event_file_member_use_option: Optional[bool]
enable_event_file_attendee_use_option: Optional[bool]
enable_event_file_publish_option: Optional[bool]
enable_event_file_purpose_option: Optional[bool]
enable_event_file_os_selection_option: Optional[bool]
enable_event_file_os_change_option: Optional[bool]
custom_event_file_upload_description: Optional[str]
custom_event_file_agreement_1_text: Optional[str]
custom_event_file_agreement_1_description: Optional[str]
ask_speaker_ready_room: Optional[bool]
ask_presentation_publish_optout: Optional[bool]
default_event_file_to_public_use: Optional[bool]
ask_for_public_version: Optional[bool]
file_approval_enabled: Optional[bool]
hide_file_upload_presentation_name: Optional[bool]
hide_file_upload_review_input: Optional[bool]
hide_file_upload_email_input: Optional[bool]
hide_file_upload_comments_input: Optional[bool]
hide_session_codes: Optional[bool]
unauthenticated_access: Optional[bool]
unauthenticated_access_public_endpoint: Optional[bool]
hide: Optional[bool]
status: Optional[int]
review: Optional[bool]
approve: Optional[bool]
ready: Optional[bool]
ready_on: Optional[datetime.datetime]
archive: Optional[bool]
archive_on: Optional[datetime.datetime]
priority: Optional[bool]
sort: Optional[int]
group: Optional[str]
notes: Optional[str]
_processed_at: datetime.datetime = PrivateAttr(default_factory=datetime.datetime.now)
#@validator('event_cfg_id_random', always=True)
# def event_cfg_id_random_copy(cls, v, values, **kwargs):
# log.setLevel(logging.WARNING)
# log.debug(locals())
# if values['id_random']:
# return values['id_random']
# return None
# @validator('id', always=True)
# def event_cfg_id_lookup(cls, v, values, **kwargs):
# log.setLevel(logging.WARNING)
# log.debug(locals())
# if values['id_random']:
# log.debug(values['id_random'])
# return redis_lookup_id_random(record_id_random=values['id_random'], table_name='event')
# return None
Event_Base.update_forward_refs() # NOTE: This is needed since Event_Cfg_Base is below Event_Base.

View File

@@ -11,7 +11,7 @@ from .common_field_schema import base_fields, default_num_bytes
#from .event_models import Event_Base
from .event_badge_models import Event_Badge_Base
from .event_person_detail_models import Event_Person_Detail_Base
#from .event_person_detail_models import Event_Person_Detail_Base
from .event_registration_models import Event_Registration_Base
from .person_models import Person_Base
from .user_models import User_Base, User_Out_Base
@@ -33,10 +33,10 @@ class Event_Person_Base(BaseModel):
account_id: Optional[int]
event_id_random: Optional[str]
event_id: Optional[int]
event_registration_id_random: Optional[str]
event_registration_id: Optional[int]
event_badge_id_random: Optional[str]
event_badge_id: Optional[int]
event_registration_id_random: Optional[str]
event_registration_id: Optional[int]
person_id_random: Optional[str]
person_id: Optional[int]
user_id_random: Optional[str]
@@ -51,18 +51,17 @@ class Event_Person_Base(BaseModel):
updated_on: Optional[datetime.datetime] = None
# Including other related objects
#event: Optional[Event_Base]
event_abstract: Optional[list] # Use event_person_detail table. An event_person record can be linked to one or more abstracts
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_exhibit: Optional[list] # Use event_person_detail table. An event_person record can be linked to one or more exhibits
event_file: Optional[list] # Use event_person_detail table. An event_person record can be linked to one or more files
event_location: Optional[list] # Use event_person_detail table. An event_person record can be linked to one or more locations (but unlikely?)
event_presentation: Optional[list] # Use event_person_detail table. An event_person record can be linked to one or more presentations
event_presenter: Optional[list] # Use event_person_detail table. An event_person record can be linked to one or more presenters (part of multiple presentations)
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?)
#event_person_detail_list: Optional[list] # list of Event_Person_Detail
event_presentation_list: Optional[list] # Use event_person_detail table. An event_person record can be linked to one or more presentations
event_presenter_list: Optional[list] # Use event_person_detail table. An event_person record can be linked to one or more presenters (part of multiple presentations)
event_registration: Optional[Event_Registration_Base]
event_session: Optional[list] # Use event_person_detail table. An event_person record can be linked to one or more sessions
event_track: Optional[list] # Use event_person_detail table. An event_person record can be linked to one or more tracks
#event_person_detail_list: Optional[list] # list of Event_Person_Detail
event_registration: Optional[Event_Registration_Base]
person: Optional[Person_Base]
user: Optional[User_Base]
@@ -105,15 +104,6 @@ class Event_Person_Base(BaseModel):
return redis_lookup_id_random(record_id_random=values['event_id_random'], table_name='event')
return None
@validator('event_registration_id', always=True)
def event_registration_id_lookup(cls, v, values, **kwargs):
log.setLevel(logging.WARNING)
log.debug(locals())
if values['event_registration_id_random']:
return redis_lookup_id_random(record_id_random=values['event_registration_id_random'], table_name='event_registration')
return None
@validator('event_badge_id', always=True)
def event_badge_id_lookup(cls, v, values, **kwargs):
log.setLevel(logging.WARNING)
@@ -123,6 +113,15 @@ 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_registration_id', always=True)
def event_registration_id_lookup(cls, v, values, **kwargs):
log.setLevel(logging.WARNING)
log.debug(locals())
if values['event_registration_id_random']:
return redis_lookup_id_random(record_id_random=values['event_registration_id_random'], table_name='event_registration')
return None
@validator('person_id', always=True)
def person_id_lookup(cls, v, values, **kwargs):
log.setLevel(logging.WARNING)

View File

@@ -11,7 +11,7 @@ from .common_field_schema import base_fields, default_num_bytes
#from .event_models import Event_Base
from .event_location_models import Event_Location_Base
#from .event_person_models import Event_Person_Base
#from .event_person_models import Event_Person_Base # NOTE: Using thi will probably create an import loop
from .event_track_models import Event_Track_Base
from .person_models import Person_Base
@@ -89,15 +89,16 @@ class Event_Session_Base(BaseModel):
# Including other related objects
#event: Optional[Event_Base]
event_abstract_list: Optional[list] # Optional[Event_Abstract_Base]
event_badge_list: Optional[list] # Optional[Event_Abstract_Base]
event_device_list: Optional[list] # Optional[Event_Device_Base]
event_file_list: Optional[list] # Optional[Event_File_Base]
event_location: Optional[Event_Location_Base]
event_location: Optional[Union[Event_Location_Base, None]]
event_person_list: Optional[list]
event_presenter_cat: Optional[Union[str, None]]
event_presentation_list: Optional[list] # Optional[Event_Presentation_Base]
event_presenter_list: Optional[list] # Optional[Event_Presenter_Base]
event_track: Optional[Event_Track_Base]
#poc_event_person: Optional[Event_Person_Base]
poc_person: Optional[Person_Base]
#poc_event_person: Optional[Event_Person_Base] # NOTE: Using thi will probably create an import loop
_processed_at: datetime.datetime = PrivateAttr(default_factory=datetime.datetime.now)