Skip to content
Snippets Groups Projects
0-inputs.py 4.65 KiB
Newer Older
  • Learn to ignore specific revisions
  • 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
        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!')