Skip to content
Snippets Groups Projects
4-inputs.py 4.91 KiB
Newer Older
Mouhcine's avatar
Mouhcine committed
from Packages import *
st.set_page_config(page_title="NIRS Utils", page_icon=":goat:", layout="wide",)
st.session_state["interface"] = st.session_state.get('interface')
#""" if st.session_state["interface"] == 'simple':
#    hide_pages("Predictions") """
Mouhcine's avatar
Mouhcine committed
from Modules import *
from Class_Mod.DATA_HANDLING import *
Nicolas Barthes's avatar
Nicolas Barthes committed

add_header()
Mouhcine's avatar
Mouhcine committed

pages_folder = Path("pages/")

Mouhcine's avatar
Mouhcine committed

# Initialize session state
if 'form_submitted' not in st.session_state:
    st.session_state['form_submitted'] = False

with st.container():
    # Text input fields
    st.header("Complete and save the following form with the data context:",divider="blue")
    st.warning('Make sure that the form is well completed, because the reliability 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))
Mouhcine's avatar
Mouhcine committed
        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):')
Mouhcine's avatar
Mouhcine committed


        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)

                with st.container():
                    if st.session_state['interface'] == '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')
                    elif st.session_state['interface'] == '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!')