Skip to content
Snippets Groups Projects
0-inputs.py 4.48 KiB
Newer Older
DIANE's avatar
DIANE committed
from common import *
DIANE's avatar
DIANE committed
st.set_page_config(page_title="NIRS Utils", page_icon=":goat:", layout="wide")
DIANE's avatar
UI  
DIANE committed
# layout
UiComponents(pagespath = pages_folder, csspath= css_file,imgpath=image_path ,
             header=True, sidebar= True, bgimg=True, colborders=False)
DIANE's avatar
DIANE committed



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

with st.container():
    # Text input fields
DIANE's avatar
DIANE committed
    st.subheader("Complete and save the following form with the data context",divider="blue")
DIANE's avatar
DIANE committed
    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)
DIANE's avatar
DIANE committed
                meta_sample_sub_category_options = ["Fresh leaves", "Leaf litter", "Litter", "Humus", "Soil", "Animal part", "Animal Powder", "Fungal sample", "Other"]
DIANE's avatar
DIANE committed
                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!')


DIANE's avatar
DIANE committed

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')