76 lines
3.4 KiB
Python
76 lines
3.4 KiB
Python
"""
|
||
Модуль для сайдбара
|
||
"""
|
||
import streamlit as st
|
||
from api_client import get_server_info, get_available_parsers
|
||
from config import API_PUBLIC_URL
|
||
|
||
|
||
def render_sidebar():
|
||
"""Рендер боковой панели"""
|
||
with st.sidebar:
|
||
st.header("ℹ️ Информация1")
|
||
|
||
# Информация о сервере
|
||
server_info = get_server_info()
|
||
if server_info:
|
||
st.subheader("Сервер")
|
||
st.write(f"PID: {server_info.get('process_id', 'N/A')}")
|
||
st.write(f"CPU ядер: {server_info.get('cpu_cores', 'N/A')}")
|
||
st.write(f"Память: {server_info.get('memory_mb', 'N/A'):.1f} MB")
|
||
|
||
# Доступные парсеры
|
||
parsers = get_available_parsers()
|
||
if parsers:
|
||
st.subheader("Доступные парсеры")
|
||
for parser in parsers:
|
||
st.write(f"• {parser}")
|
||
|
||
# Навигация по страницам
|
||
st.markdown("---")
|
||
st.subheader("🧭 Навигация")
|
||
|
||
# Определяем активную страницу
|
||
active_page = st.session_state.get("active_page", 0)
|
||
|
||
# Кнопка для страницы синхронных парсеров
|
||
if st.button("📊 Синхронные парсеры", key="sidebar_sync_btn", use_container_width=True, type="primary" if active_page == 0 else "secondary"):
|
||
st.session_state.sidebar_sync_clicked = True
|
||
st.rerun()
|
||
|
||
# Кнопка для страницы асинхронной загрузки
|
||
if st.button("🚀 Асинхронная загрузка", key="sidebar_async_btn", use_container_width=True, type="primary" if active_page == 1 else "secondary"):
|
||
st.session_state.sidebar_async_clicked = True
|
||
st.rerun()
|
||
|
||
# Кнопка для страницы управления задачами
|
||
if st.button("📋 Управление задачами", key="sidebar_tasks_btn", use_container_width=True, type="primary" if active_page == 2 else "secondary"):
|
||
st.session_state.sidebar_tasks_clicked = True
|
||
st.rerun()
|
||
|
||
|
||
def render_footer():
|
||
"""Рендер футера"""
|
||
st.markdown("---")
|
||
st.markdown("### 📚 Документация API")
|
||
st.markdown(f"Полная документация доступна по адресу: {API_PUBLIC_URL}/docs")
|
||
|
||
# Информация о проекте
|
||
with st.expander("ℹ️ О проекте"):
|
||
st.markdown("""
|
||
**NIN Excel Parsers API** - это веб-сервис для парсинга и обработки Excel-файлов нефтеперерабатывающих заводов.
|
||
|
||
**Возможности:**
|
||
- 📊 Парсинг сводок ПМ (план и факт)
|
||
- 🏭 Парсинг сводок СА
|
||
- ⛽ Мониторинг топлива
|
||
- ⚡ Мониторинг ТЭР (Топливно-энергетические ресурсы)
|
||
- 🔧 Управление ремонтными работами СА
|
||
- 📋 Мониторинг статусов ремонта СА
|
||
|
||
**Технологии:**
|
||
- FastAPI
|
||
- Pandas
|
||
- MinIO (S3-совместимое хранилище)
|
||
- Streamlit (веб-интерфейс)
|
||
""") |