generated from Templates/Docker_Image
Compare commits
6 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 81935daaf5 | |||
| d2260ac797 | |||
| ca6f39a3e8 | |||
| 5eb5bd426a | |||
| 08af3ed38d | |||
| cc5060d317 |
30
HISTORY.md
30
HISTORY.md
@@ -4,6 +4,36 @@ Changelog
|
|||||||
|
|
||||||
(unreleased)
|
(unreleased)
|
||||||
------------
|
------------
|
||||||
|
|
||||||
|
Fix
|
||||||
|
~~~
|
||||||
|
- Fix runtime errors, refs NOISSUE. [Simon Diesenreiter]
|
||||||
|
|
||||||
|
|
||||||
|
0.3.2 (2026-04-04)
|
||||||
|
------------------
|
||||||
|
|
||||||
|
Fix
|
||||||
|
~~~
|
||||||
|
- Add back DB init endpoints, ref NOISSUE. [Simon Diesenreiter]
|
||||||
|
|
||||||
|
Other
|
||||||
|
~~~~~
|
||||||
|
|
||||||
|
|
||||||
|
0.3.1 (2026-04-04)
|
||||||
|
------------------
|
||||||
|
|
||||||
|
Fix
|
||||||
|
~~~
|
||||||
|
- Fix broken Docker build, refs NOISSUE. [Simon Diesenreiter]
|
||||||
|
|
||||||
|
Other
|
||||||
|
~~~~~
|
||||||
|
|
||||||
|
|
||||||
|
0.3.0 (2026-04-04)
|
||||||
|
------------------
|
||||||
- Feat: dashboard via NiceGUI, refs NOISSUE. [Simon Diesenreiter]
|
- Feat: dashboard via NiceGUI, refs NOISSUE. [Simon Diesenreiter]
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
0.3.0
|
0.3.3
|
||||||
|
|||||||
@@ -20,20 +20,26 @@ def create_dashboard():
|
|||||||
return
|
return
|
||||||
|
|
||||||
try:
|
try:
|
||||||
# Fetch current project
|
# Wrap database queries to handle missing tables gracefully
|
||||||
current_project = db_session.query(ProjectHistory).order_by(ProjectHistory.created_at.desc()).first()
|
try:
|
||||||
|
# Fetch current project
|
||||||
# Fetch recent audit trail entries
|
current_project = db_session.query(ProjectHistory).order_by(ProjectHistory.created_at.desc()).first()
|
||||||
recent_audits = db_session.query(AuditTrail).order_by(AuditTrail.created_at.desc()).limit(10).all()
|
|
||||||
|
# Fetch recent audit trail entries
|
||||||
# Fetch recent project history entries
|
recent_audits = db_session.query(AuditTrail).order_by(AuditTrail.created_at.desc()).limit(10).all()
|
||||||
recent_projects = db_session.query(ProjectHistory).order_by(ProjectHistory.created_at.desc()).limit(5).all()
|
|
||||||
|
# Fetch recent project history entries
|
||||||
# Fetch recent system logs
|
recent_projects = db_session.query(ProjectHistory).order_by(ProjectHistory.created_at.desc()).limit(5).all()
|
||||||
recent_logs = db_session.query(SystemLog).order_by(SystemLog.created_at.desc()).limit(5).all()
|
|
||||||
|
# Fetch recent system logs
|
||||||
|
recent_logs = db_session.query(SystemLog).order_by(SystemLog.created_at.desc()).limit(5).all()
|
||||||
|
except Exception as e:
|
||||||
|
# Handle missing tables or other database errors
|
||||||
|
ui.label(f'Database error: {str(e)}. Please run POST /init-db or ensure the database is initialized.')
|
||||||
|
return
|
||||||
|
|
||||||
# Create main card
|
# Create main card
|
||||||
with ui.card().col().classes('w-full max-w-6xl mx-auto').props('elevated').style('max-width: 1200px; margin: 0 auto;') as main_card:
|
with ui.card().classes('w-full max-w-6xl mx-auto').props('elevated').style('max-width: 1200px; margin: 0 auto;') as main_card:
|
||||||
# Header section
|
# Header section
|
||||||
with ui.row().classes('items-center gap-4 mb-6').style('padding: 20px; background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); border-radius: 12px; color: white;') as header_row:
|
with ui.row().classes('items-center gap-4 mb-6').style('padding: 20px; background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); border-radius: 12px; color: white;') as header_row:
|
||||||
title = ui.label('AI Software Factory').style('font-size: 28px; font-weight: bold; margin: 0;')
|
title = ui.label('AI Software Factory').style('font-size: 28px; font-weight: bold; margin: 0;')
|
||||||
|
|||||||
@@ -13,6 +13,7 @@ The NiceGUI frontend provides:
|
|||||||
|
|
||||||
import frontend
|
import frontend
|
||||||
from fastapi import FastAPI
|
from fastapi import FastAPI
|
||||||
|
from database import init_db
|
||||||
|
|
||||||
app = FastAPI()
|
app = FastAPI()
|
||||||
|
|
||||||
@@ -23,6 +24,13 @@ def read_root():
|
|||||||
return {'Hello': 'World'}
|
return {'Hello': 'World'}
|
||||||
|
|
||||||
|
|
||||||
|
@app.post('/init-db')
|
||||||
|
def initialize_database():
|
||||||
|
"""Initialize database tables (POST endpoint for NiceGUI to call before dashboard)."""
|
||||||
|
init_db()
|
||||||
|
return {'message': 'Database initialized successfully'}
|
||||||
|
|
||||||
|
|
||||||
frontend.init(app)
|
frontend.init(app)
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
fastapi==0.109.0
|
fastapi>=0.135.3
|
||||||
uvicorn[standard]==0.27.0
|
uvicorn[standard]==0.27.0
|
||||||
sqlalchemy==2.0.25
|
sqlalchemy==2.0.25
|
||||||
psycopg2-binary==2.9.9
|
psycopg2-binary==2.9.9
|
||||||
pydantic==2.5.3
|
pydantic==2.12.5
|
||||||
pydantic-settings==2.1.0
|
pydantic-settings==2.1.0
|
||||||
python-multipart==0.0.6
|
python-multipart==0.0.22
|
||||||
aiofiles==23.2.1
|
aiofiles==23.2.1
|
||||||
python-telegram-bot==20.7
|
python-telegram-bot==20.7
|
||||||
requests==2.31.0
|
requests==2.31.0
|
||||||
@@ -15,5 +15,4 @@ isort==5.13.2
|
|||||||
flake8==6.1.0
|
flake8==6.1.0
|
||||||
mypy==1.7.1
|
mypy==1.7.1
|
||||||
httpx==0.25.2
|
httpx==0.25.2
|
||||||
nicegui==1.4.19
|
nicegui==3.9.0
|
||||||
pydantic-settings==2.1.0
|
|
||||||
Reference in New Issue
Block a user