import pandas as pd import streamlit as st from streamlit_js_eval import streamlit_js_eval from settings import * from sidebar import show_sidebar def highlight_disabled_col(value): return 'background-color: #F0F2F6' if __name__=='__main__': st.set_page_config( page_title='DataSaker Version Management', layout='wide' ) tab1, tab2, tab3 = st.tabs(["DataSaker", "Releases", "Recent Deliveries"]) with tab1: st.header('DataSaker') st.write(f"##### {get_datasaker()}") col1, col2 = st.columns([7, 3]) with col1: st.subheader('Service') if st.button('Data Reload'): git_pull() streamlit_js_eval(js_expressions='parent.window.location.reload()') df = pd.DataFrame.from_dict(get_service()) regex = '^release-[0-9]+.[0-9]+.[0-9]+$' edited_df = st.data_editor( df.style.applymap(highlight_disabled_col), key='data_editor', column_config={ 'type': st.column_config.TextColumn('Type', disabled=True), 'name': st.column_config.TextColumn('Name', disabled=True, width='medium'), 'latest_candidate_version': st.column_config.TextColumn('Candidate Latest Version', disabled=True), 'candidate_version': st.column_config.TextColumn('Candidate Version', validate=regex), 'release_version': st.column_config.TextColumn('Release Version', validate=regex), 'product_version': st.column_config.TextColumn('Product Version', validate=regex) }, height=800 ) with col2: st.text('Edited Rows') st.write(st.session_state['data_editor']['edited_rows']) with tab2: releases = get_releases() for release in releases: st.write(f"### {release['name']}") st.write(release['html_url']) st.write(convert_utc_to_korea_time(release['published_at'])) st.write(release['body'].replace('#', '')) st.divider() with tab3: deliveries = get_delivery() for delivery in deliveries: st.write(f"#### {delivery['guid']}") st.write(f"{convert_utc_to_korea_time(delivery['delivered_at'])}") st.write(f"Delivery ID: {delivery['id']}") st.divider() show_sidebar(df, edited_df)