Esmaeilkianii commited on
Commit
dac8ed3
·
verified ·
1 Parent(s): 5180a0b

Create sidebar.py

Browse files
Files changed (1) hide show
  1. sidebar.py +72 -0
sidebar.py ADDED
@@ -0,0 +1,72 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import streamlit as st
2
+ import pandas as pd
3
+
4
+ def render_sidebar(farm_data_df):
5
+ """
6
+ Renders the sidebar with filters and returns the selected filter values
7
+ """
8
+ st.sidebar.title("سامانه پایش هوشمند نیشکر")
9
+ st.sidebar.image("logo.app.png", width=150)
10
+
11
+ # Initialize filters
12
+ filters = {}
13
+
14
+ # Add filters based on farm data
15
+ if not farm_data_df.empty:
16
+ # Date range filter
17
+ st.sidebar.subheader("انتخاب بازه زمانی")
18
+
19
+ # Get min and max dates from data if available
20
+ try:
21
+ min_date = pd.to_datetime("2023-01-01")
22
+ max_date = pd.to_datetime("2023-12-31")
23
+
24
+ filters['start_date'] = st.sidebar.date_input(
25
+ "از تاریخ",
26
+ min_date,
27
+ min_value=min_date,
28
+ max_value=max_date
29
+ )
30
+
31
+ filters['end_date'] = st.sidebar.date_input(
32
+ "تا تاریخ",
33
+ max_date,
34
+ min_value=filters['start_date'],
35
+ max_value=max_date
36
+ )
37
+ except:
38
+ st.sidebar.warning("خطا در تنظیم بازه زمانی")
39
+
40
+ # Farm selection filter
41
+ st.sidebar.subheader("انتخاب مزرعه")
42
+
43
+ if 'farm_name' in farm_data_df.columns:
44
+ unique_farms = sorted(farm_data_df['farm_name'].unique())
45
+ filters['selected_farm'] = st.sidebar.selectbox(
46
+ "نام مزرعه",
47
+ options=unique_farms
48
+ )
49
+ elif 'name' in farm_data_df.columns:
50
+ unique_farms = sorted(farm_data_df['name'].unique())
51
+ filters['selected_farm'] = st.sidebar.selectbox(
52
+ "نام مزرعه",
53
+ options=unique_farms
54
+ )
55
+ else:
56
+ st.sidebar.warning("ستون نام مزرعه یافت نشد")
57
+
58
+ # Theme selection
59
+ st.sidebar.subheader("تنظیمات ظاهری")
60
+ if 'selected_theme_name' in st.session_state:
61
+ theme_options = ["پیش‌فرض (آبی تیره)", "تم سبز (طبیعت)", "تم قرمز (هشدار)", "تم زرد/نارنجی (گرم)", "تم قهوه‌ای (خاکی)", "تم روشن (ساده)"]
62
+ selected_theme = st.sidebar.selectbox(
63
+ "انتخاب تم",
64
+ options=theme_options,
65
+ index=theme_options.index(st.session_state.selected_theme_name)
66
+ )
67
+
68
+ if selected_theme != st.session_state.selected_theme_name:
69
+ st.session_state.selected_theme_name = selected_theme
70
+ st.rerun()
71
+
72
+ return filters