from common import * st.set_page_config(page_title="NIRS Utils", page_icon=":goat:", layout="wide") # page layout add_header() add_sidebar(pages_folder) local_css(css_file / "style_app.css") # Initialize session state if 'form_submitted' not in st.session_state: st.session_state['form_submitted'] = False with st.container(): # Text input fields st.subheader("Complete and save the following form with the data context:",divider="blue") st.warning('Make sure that the form is reliably completed, because the quality of the results depends mainly on it !', icon="⚠️") with st.form(key = 'my_form'): _,col1, col3,col2 = st.columns((0.1, 1.4, 0.5, 2)) with col1: ############## Project information ########### st.subheader("Project information", divider="blue") meta_project = st.text_input('Project name :') meta_machine_ID = st.text_input('NIRS ID :',) meta_scan_place_options = ["Pace", "Other"] meta_scan_place = st.radio("Analysis Laboratory :", meta_scan_place_options) meta_sample_species = st.text_input('Samples species (If relevant, provide the sample species; otherwise insert No):') with col2: clo3,_, col4,_ = st.columns([1, 0.2, 1, 0.3]) with clo3: ############## The Nature of the Samples ########### if '' in [meta_project, meta_machine_ID,meta_sample_species]: disabled1 = True else: disabled1 = False st.subheader("The Nature of the Samples",divider="blue") meta_sample_category_options = ["Soil", "Plant", "Animal", "Other"] meta_sample_category = st.radio("Samples category :", [""] + meta_sample_category_options) meta_sample_sub_category_options = ["Green leaves", "Leaf litter", "Litter", "Humus", "Soil", "Animal part", "Animal Powder", "Fungal sample", "Other"] meta_sample_sub_category = st.radio("Sample category description :", [""] + meta_sample_sub_category_options) with col4: st.subheader("The Physical State of the Samples",divider="blue") meta_sample_humidity_options = ["Dry", "Fresh", "Wet"] meta_sample_humidity = st.radio("Humidity state of the sample :", [""] + meta_sample_humidity_options) meta_sample_pretreatment_options = ["Powder", "Pastile", "Liquid"] meta_sample_pretreatment = st.radio("Type of sample pre-treatment :", [""] + meta_sample_pretreatment_options) # Création du dictionnaire avec les données du formulaire form_data = { "meta_project": meta_project, "meta_sample_species": meta_sample_species, "meta_sample_category": meta_sample_category, "meta_sample_pretreatment": meta_sample_pretreatment, "meta_machine_ID": meta_machine_ID, "meta_sample_sub_category": meta_sample_sub_category, "meta_sample_humidity": meta_sample_humidity, "meta_scan_place": meta_scan_place } submitted = st.form_submit_button(label='Save') if submitted: if '' not in form_data.values(): # Save the form data here st.session_state['form_submitted'] = True st.success('Form was saved successfully!', icon="✅") # Enregistrement des données dans un fichier JSON with open('form_data.json', 'w') as json_file: json.dump(form_data, json_file) match st.session_state['interface']: case 'simple': header3, header4 = st.columns(2) if header3.button("Samples Selection"): st.switch_page(pages_folder / '1-samples_selection.py') if header4.button("Model Creation"): st.switch_page(pages_folder / '2-model_creation.py') case 'advanced': header3, header4, header5 = st.columns(3) if header3.button("Samples Selection"): st.switch_page(pages_folder / '1-samples_selection.py') if header4.button("Model Creation"): st.switch_page(pages_folder / '2-model_creation.py') if header5.button("Prediction"): st.switch_page(pages_folder / '3-prediction.py') else: st.error('Error: The form was not saved, please ensure the required fields are filled!')