import streamlit as st import pandas as pd import plotly.express as px import plotly.graph_objects as go import numpy as np from datetime import datetime # Set page config st.set_page_config(page_title="مدیریت دادههای مزارع", layout="wide") # Add custom CSS for RTL support and table styling st.markdown( """ """, unsafe_allow_html=True ) # Load CSV file @st.cache_data def load_data(): try: data = pd.read_csv('پایگاه داده.csv') return data except FileNotFoundError: return pd.DataFrame({ 'ردیف': [], 'کد نماینده': [], 'کانال': [], 'ادار': [], 'تولید': [], 'مساحت': [], 'مساحت زیرمجموعه': [], 'واریته': [], 'سن': [], 'ایام هفته': [], 'هفته': [] }) # Initialize session state if 'data' not in st.session_state: st.session_state.data = load_data() # Sidebar - Day and Week selection st.sidebar.header("انتخاب روز و هفته") days = ["شنبه", "یکشنبه", "دوشنبه", "سهشنبه", "چهارشنبه", "پنجشنبه"] selected_day = st.sidebar.selectbox("روز هفته", days) selected_week = st.sidebar.selectbox("هفته", range(1, 23)) # Create tabs tab1, tab2 = st.tabs(["ورود داده", "مشاهده و تحلیل دادهها"]) with tab1: st.header(f"ورود دادهها - هفته {selected_week} - {selected_day}") # Filter data for selected day and week filtered_data = st.session_state.data[ (st.session_state.data['ایام هفته'] == selected_day) & (st.session_state.data['هفته'] == selected_week) ] if not st.session_state.data.empty else pd.DataFrame() # Create form for data entry with st.form("data_entry_form"): # Convert DataFrame to HTML table with input fields table_html = """
ردیف | کد نماینده | کانال | ادار | تولید | مساحت | واریته | سن | ایستگاه 1 | ایستگاه 2 | ایستگاه 3 | ایستگاه 4 | ایستگاه 5 |
---|---|---|---|---|---|---|---|---|---|---|---|---|
{row['ردیف']} | {row['کد نماینده']} | {row['کانال']} | {row['ادار']} | {row['تولید']} | {row['مساحت']} | {row['واریته']} | {row['سن']} |