from common import * st.set_page_config(page_title="NIRS Utils", page_icon=":goat:", layout="wide") # layout UiComponents(pagespath = pages_folder, csspath= css_file,imgpath=image_path , header=True, sidebar= True, bgimg=True, colborders=False) # 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 = ["Fresh 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) else: st.error('Error: The form was not saved, please ensure the required fields are filled!') if '' not in form_data.values(): match st.session_state['interface']: case 'simple': _, header3, header4 = st.columns([.2, .5, .5]) if header4.button("Models Creation & Predictions"): st.switch_page(pages_folder / '2-model_creation.py') case 'advanced': _, header3, header4, header5 = st.columns([.2, .5, .5, .5]) 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') if header3.button("Samples Selection"): st.switch_page(pages_folder / '1-samples_selection.py')