Spaces:
Sleeping
Sleeping
import streamlit as st | |
import pandas as pd | |
from datetime import datetime | |
import plotly.express as px | |
import plotly.graph_objects as go | |
from io import BytesIO | |
# Page configuration | |
st.set_page_config(page_title="مدیریت دادههای مزرعه", layout="wide") | |
# Load data | |
def load_data(): | |
try: | |
df = pd.read_csv('پایگاه داده.csv') | |
return df | |
except Exception as e: | |
st.error(f"Error loading data: {str(e)}") | |
return pd.DataFrame() | |
# Initialize session state | |
if 'data' not in st.session_state: | |
st.session_state.data = load_data() | |
# Main title | |
st.title("سیستم مدیریت دادههای مزرعه") | |
# Create three tabs | |
tab1, tab2, tab3 = st.tabs(["اطلاعات پایه", "اطلاعات نیتروژن", "اطلاعات ایستگاهها"]) | |
with tab1: | |
# Basic Information Form | |
st.subheader("ورود اطلاعات پایه") | |
with st.form("basic_info_form"): | |
col1, col2, col3 = st.columns(3) | |
with col1: | |
farm_id = st.text_input("نماینده") | |
channel = st.text_input("کانال") | |
department = st.text_input("اداره") | |
with col2: | |
production = st.text_input("تولید") | |
area = st.number_input("مساحت داشت", 0.0) | |
sub_area = st.number_input("مساحت زیرمجموعه", 0.0) | |
with col3: | |
variety = st.text_input("واریته") | |
age = st.text_input("سن") | |
date = st.date_input("تاریخ برداشت") | |
submit_basic = st.form_submit_button("ثبت اطلاعات پایه") | |
if submit_basic: | |
st.success("اطلاعات پایه با موفقیت ثبت شد") | |
with tab2: | |
# Nitrogen Information Form | |
st.subheader("ورود اطلاعات نیتروژن") | |
with st.form("nitrogen_info_form"): | |
col1, col2 = st.columns(2) | |
with col1: | |
nitrogen_current = st.number_input("نیتروژن فعلی", 0.0) | |
nitrogen_std = st.number_input("نیتروژن استاندارد قبلی", 0.0) | |
nitrogen_prev = st.number_input("نیتروژن قبلی", 0.0) | |
with col2: | |
nitrogen_std_prev = st.number_input("نیتروژن استاندارد قبلی فعلی", 0.0) | |
moisture_current = st.number_input("رطوبت فعلی", 0.0) | |
moisture_std = st.number_input("رطوبت استاندارد قبلی", 0.0) | |
submit_nitrogen = st.form_submit_button("ثبت اطلاعات نیتروژن") | |
if submit_nitrogen: | |
st.success("اطلاعات نیتروژن با موفقیت ثبت شد") | |
with tab3: | |
# Station Information Form | |
st.subheader("ورود اطلاعات ایستگاهها") | |
with st.form("station_info_form"): | |
col1, col2, col3 = st.columns(3) | |
with col1: | |
station1 = st.number_input("ایستگاه ۱", 0.0) | |
station2 = st.number_input("ایستگاه ۲", 0.0) | |
station3 = st.number_input("ایستگاه ۳", 0.0) | |
with col2: | |
station4 = st.number_input("ایستگاه ۴", 0.0) | |
station5 = st.number_input("ایستگاه ۵", 0.0) | |
height_current = st.number_input("ارتفاع هفته جاری", 0.0) | |
with col3: | |
height_prev = st.number_input("ارتفاع هفته گذشته", 0.0) | |
growth_current = st.number_input("رشد هفته جاری", 0.0) | |
growth_prev = st.number_input("رشد هفته گذشته", 0.0) | |
submit_station = st.form_submit_button("ثبت اطلاعات ایستگاهها") | |
if submit_station: | |
st.success("اطلاعات ایستگاهها با موفقیت ثبت شد") | |
# Display data table | |
st.header("نمایش دادهها") | |
st.dataframe(st.session_state.data) | |
# Export functionality | |
st.header("خروجی دادهها") | |
if st.button("دانلود دادهها"): | |
output = BytesIO() | |
st.session_state.data.to_excel(output, index=False) | |
output.seek(0) | |
st.download_button( | |
label="دانلود فایل اکسل", | |
data=output, | |
file_name=f"farm_data_export_{datetime.now().strftime('%Y%m%d_%H%M%S')}.xlsx", | |
mime="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" | |
) |