diff --git a/src/app.py b/src/app.py index 080a4bb7f332984df96156c20c0a4f22c28af521..01077f6f03eb571914e55a8e213845a0818229e9 100644 --- a/src/app.py +++ b/src/app.py @@ -1,17 +1,14 @@ -# Load dependencies from common import * -st.set_page_config(page_title="NIRS Utils", page_icon=":goat:", layout="wide") # page layout -pages_folder = Path("pages/") BackgroundImg(change = None) add_header() add_sidebar(pages_folder) -local_css(css_file / "style_app.css") # replace the md <style> code +local_css(css_file / "style_app.css") diff --git a/src/pages/0-inputs.py b/src/pages/0-inputs.py new file mode 100644 index 0000000000000000000000000000000000000000..a64e37dce1992da04711abee3bbfe980b5591c2e --- /dev/null +++ b/src/pages/0-inputs.py @@ -0,0 +1,99 @@ +from common import * + + + + + + + +# 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!') + +