in analytics-hub/snippets/request-access/main.py [0:0]
def main(environment_name: str = None, project_id: str = None, database: str = 'ahsubscribers'):
st.title('Analytics Hub Demo')
st.header('Submit subscription request')
if environment_name:
st.subheader(f"Environment: {environment_name}")
subscribe_form = st.form("subscribe_form", clear_on_submit=False)
with subscribe_form:
subscriber_email = st.text_input('''Subscriber e-mail address
This user will get access to add the linked dataset to the target project.''', key='subscriber_email')
subscriber_project_number = st.text_input('''Subscriber project number
This project will be allowed to add the linked dataset.
The project number is show in Cloud Console Dashboard, or
the `gcloud projects describe [project_id]` gcloud command
can be used to get the project number.''', key='subscriber_project_number')
st.write('''Data handling / data processing policy
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Ut neque augue, sodales eu suscipit ac, venenatis nec sapien.
Praesent gravida, mauris eget porta viverra, mi nunc tempor ex,
gravida aliquam dui erat at lacus. Donec nec sollicitudin justo,
sed commodo sapien. Sed felis urna, tempor nec molestie ac,
pellentesque eu magna. Nulla vitae massa accumsan, blandit erat
vitae, pretium enim. Aenean fermentum ligula vitae luctus dignissim.
Suspendisse eleifend vulputate nulla et finibus.
Sed vulputate ipsum nulla, vel vestibulum tellus porttitor in.
''')
data_policy_accepted = st.checkbox('Consent to data the policy', key='accept_dp')
submit = st.form_submit_button('Send access request')
status_text = st.text('')
if submit:
import validators
errors = []
if not validators.email(subscriber_email):
errors.append('Please enter a valid e-mail address.')
if not subscriber_project_number.isnumeric():
errors.append('Please enter a valid project number.')
if not data_policy_accepted:
errors.append('Please accept the data handling policy.')
if len(errors) == 0:
submit_to_firestore(subscriber_email, subscriber_project_number)
st.success('Your access request has been submitted!', icon="✅")
else:
for error in errors:
st.error(f'Error: {error}')