Compare commits
11 Commits
37db47fcd9
...
0ff5399a62
| Author | SHA1 | Date | |
|---|---|---|---|
| 0ff5399a62 | |||
| 354b0394e5 | |||
| 20aea13181 | |||
| deb405a3a1 | |||
| 03fc0c5945 | |||
| 6a9eb048da | |||
| c92f2dc7a7 | |||
| 4e27c9b35a | |||
| 8631971821 | |||
| 713f0e7570 | |||
| df3f6e65c2 |
@@ -6,7 +6,10 @@ Combines core session routes and action routes into a single router.
|
|||||||
|
|
||||||
from fastapi import APIRouter
|
from fastapi import APIRouter
|
||||||
|
|
||||||
from .sessions_core import router as core_router, build_session_response
|
from .sessions_core import router as core_router, build_session_response # noqa: F401
|
||||||
|
|
||||||
|
# Re-export SessionResponse for backward compat (templates.py imports it)
|
||||||
|
from classroom.models import SessionResponse # noqa: F401
|
||||||
from .sessions_actions import router as actions_router
|
from .sessions_actions import router as actions_router
|
||||||
|
|
||||||
router = APIRouter()
|
router = APIRouter()
|
||||||
|
|||||||
@@ -140,7 +140,7 @@ async def get_audit_log(
|
|||||||
# RECORDING MANAGEMENT ENDPOINTS
|
# RECORDING MANAGEMENT ENDPOINTS
|
||||||
# ==========================================
|
# ==========================================
|
||||||
|
|
||||||
@router.get("", response_model=RecordingListResponse)
|
@router.get("/", response_model=RecordingListResponse)
|
||||||
async def list_recordings(
|
async def list_recordings(
|
||||||
status: Optional[str] = Query(None, description="Filter by status"),
|
status: Optional[str] = Query(None, description="Filter by status"),
|
||||||
meeting_id: Optional[str] = Query(None, description="Filter by meeting ID"),
|
meeting_id: Optional[str] = Query(None, description="Filter by meeting ID"),
|
||||||
|
|||||||
@@ -2,7 +2,6 @@
|
|||||||
* EH Upload Wizard Steps - Individual step content renderers
|
* EH Upload Wizard Steps - Individual step content renderers
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import { useState } from 'react'
|
|
||||||
|
|
||||||
interface EHMetadata {
|
interface EHMetadata {
|
||||||
title: string
|
title: string
|
||||||
|
|||||||
@@ -181,14 +181,14 @@ function ChatHeader({ isDark, conversation, contact, showContactInfo, setShowCon
|
|||||||
|
|
||||||
{/* Actions */}
|
{/* Actions */}
|
||||||
<div className="flex items-center gap-2">
|
<div className="flex items-center gap-2">
|
||||||
<HeaderButton isDark={isDark} active={conversation.pinned}
|
<HeaderButton isDark={isDark} active={conversation.pinned ?? false}
|
||||||
activeColor="amber" onClick={() => pinConversation(conversation.id)}
|
activeColor="amber" onClick={() => pinConversation(conversation.id)}
|
||||||
title={conversation.pinned ? 'Nicht mehr anheften' : 'Anheften'}>
|
title={conversation.pinned ? 'Nicht mehr anheften' : 'Anheften'}>
|
||||||
<svg className="w-5 h-5" fill={conversation.pinned ? 'currentColor' : 'none'} stroke="currentColor" viewBox="0 0 24 24">
|
<svg className="w-5 h-5" fill={conversation.pinned ? 'currentColor' : 'none'} stroke="currentColor" viewBox="0 0 24 24">
|
||||||
<path strokeLinecap="round" strokeLinejoin="round" strokeWidth={1.5} d="M5 5a2 2 0 012-2h10a2 2 0 012 2v16l-7-3.5L5 21V5z" />
|
<path strokeLinecap="round" strokeLinejoin="round" strokeWidth={1.5} d="M5 5a2 2 0 012-2h10a2 2 0 012 2v16l-7-3.5L5 21V5z" />
|
||||||
</svg>
|
</svg>
|
||||||
</HeaderButton>
|
</HeaderButton>
|
||||||
<HeaderButton isDark={isDark} active={conversation.muted}
|
<HeaderButton isDark={isDark} active={conversation.muted ?? false}
|
||||||
activeColor="red" onClick={() => muteConversation(conversation.id)}
|
activeColor="red" onClick={() => muteConversation(conversation.id)}
|
||||||
title={conversation.muted ? 'Ton aktivieren' : 'Stummschalten'}>
|
title={conversation.muted ? 'Ton aktivieren' : 'Stummschalten'}>
|
||||||
<svg className="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
<svg className="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ export async function startSessionFlow(params: {
|
|||||||
selectedMobileFile: { dataUrl: string; type: string; name: string } | null
|
selectedMobileFile: { dataUrl: string; type: string; name: string } | null
|
||||||
storedDocuments: StoredDocument[]
|
storedDocuments: StoredDocument[]
|
||||||
ocrPrompts: OcrPrompts
|
ocrPrompts: OcrPrompts
|
||||||
startActivity: (type: string, meta: any) => void
|
startActivity: (...args: any[]) => void
|
||||||
setSession: (s: Session | null | ((prev: Session | null) => Session | null)) => void
|
setSession: (s: Session | null | ((prev: Session | null) => Session | null)) => void
|
||||||
setWorksheetTitle: (t: string) => void
|
setWorksheetTitle: (t: string) => void
|
||||||
setExtractionStatus: (s: string) => void
|
setExtractionStatus: (s: string) => void
|
||||||
|
|||||||
@@ -54,6 +54,12 @@ export interface AIInterpretation {
|
|||||||
error?: string
|
error?: string
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export interface Category {
|
||||||
|
id: string
|
||||||
|
name: string
|
||||||
|
requirement_count: number
|
||||||
|
}
|
||||||
|
|
||||||
export const IMPLEMENTATION_STATUS = {
|
export const IMPLEMENTATION_STATUS = {
|
||||||
not_started: { label: 'Nicht gestartet', color: 'bg-slate-400' },
|
not_started: { label: 'Nicht gestartet', color: 'bg-slate-400' },
|
||||||
in_progress: { label: 'In Arbeit', color: 'bg-yellow-500' },
|
in_progress: { label: 'In Arbeit', color: 'bg-yellow-500' },
|
||||||
|
|||||||
@@ -42,7 +42,7 @@ export default function LivePreviewPanel({ activeTab, iframeRef }: LivePreviewPa
|
|||||||
{/* Preview Frame */}
|
{/* Preview Frame */}
|
||||||
<div className="relative h-[calc(100vh-340px)] bg-slate-100">
|
<div className="relative h-[calc(100vh-340px)] bg-slate-100">
|
||||||
<iframe
|
<iframe
|
||||||
ref={iframeRef}
|
ref={iframeRef as any}
|
||||||
src={`/?preview=true§ion=${activeTab}#${activeTab}`}
|
src={`/?preview=true§ion=${activeTab}#${activeTab}`}
|
||||||
className="w-full h-full border-0 scale-75 origin-top-left"
|
className="w-full h-full border-0 scale-75 origin-top-left"
|
||||||
style={{
|
style={{
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ import type { SystemInfoConfig } from './types'
|
|||||||
|
|
||||||
// Import individual configurations
|
// Import individual configurations
|
||||||
import { dashboardConfig } from './dashboard-config'
|
import { dashboardConfig } from './dashboard-config'
|
||||||
import { gpuConfig } from './gpu-config'
|
|
||||||
import { consentConfig } from './consent-config'
|
import { consentConfig } from './consent-config'
|
||||||
import { dsrConfig } from './dsr-config'
|
import { dsrConfig } from './dsr-config'
|
||||||
import { securityConfig } from './security-config'
|
import { securityConfig } from './security-config'
|
||||||
@@ -40,7 +40,6 @@ export const SYSTEM_INFO_CONFIGS: Record<string, SystemInfoConfig> = {
|
|||||||
dashboard: dashboardConfig,
|
dashboard: dashboardConfig,
|
||||||
|
|
||||||
// Infrastructure
|
// Infrastructure
|
||||||
gpu: gpuConfig,
|
|
||||||
dsms: dsmsConfig,
|
dsms: dsmsConfig,
|
||||||
sbom: sbomConfig,
|
sbom: sbomConfig,
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user