feat(UI-Overhaul-Phase8): Kommunikation UI Verbesserungen
Check Cross-Plugin Imports / check (push) Has been cancelled

Migration 0140: Add folder_id column to comm_conversations for folder organization

Backend:
- CommConversation model: add folder_id field (nullable UUID)

Frontend:
- Communication.tsx: Wider tree panel (ResizablePanel initialWidth=320, minWidth=240, maxWidth=450)
- Phase 8.2 (AI Chat in Kommunikation) already completed in Phase 2

tsc clean, backend import OK
This commit is contained in:
Agent Zero
2026-08-21 13:58:21 +02:00
parent 16d15bcfbf
commit 70da76c86b
3 changed files with 32 additions and 3 deletions
@@ -0,0 +1,28 @@
"""Communication: folder_id in comm_conversations for folder organization
Revision ID: 0140
Revises: 0139
Create Date: 2026-08-21
Adds folder_id to comm_conversations for folder-based organization.
"""
from alembic import op
import sqlalchemy as sa
from sqlalchemy.dialects.postgresql import UUID as PGUUID
# revision identifiers, used by Alembic.
revision = "0140"
down_revision = "0139"
branch_labels = None
depends_on = None
def upgrade() -> None:
op.add_column("comm_conversations", sa.Column("folder_id", PGUUID(as_uuid=True), nullable=True))
op.create_index("ix_comm_conversations_folder", "comm_conversations", ["folder_id"])
def downgrade() -> None:
op.drop_index("ix_comm_conversations_folder", table_name="comm_conversations")
op.drop_column("comm_conversations", "folder_id")
@@ -52,6 +52,7 @@ class CommConversation(Base, TenantMixin, OwnedMixin):
last_msg_preview: Mapped[str | None] = mapped_column(Text, nullable=True) last_msg_preview: Mapped[str | None] = mapped_column(Text, nullable=True)
last_msg_sender_type: Mapped[str | None] = mapped_column(String(50), nullable=True) last_msg_sender_type: Mapped[str | None] = mapped_column(String(50), nullable=True)
metadata_: Mapped[dict[str, Any]] = mapped_column("metadata", JSONB, default=dict, nullable=False) metadata_: Mapped[dict[str, Any]] = mapped_column("metadata", JSONB, default=dict, nullable=False)
folder_id: Mapped[uuid.UUID | None] = mapped_column(PGUUID(as_uuid=True), nullable=True)
class CommParticipant(Base, TenantMixin, OwnedMixin): class CommParticipant(Base, TenantMixin, OwnedMixin):
+3 -3
View File
@@ -831,9 +831,9 @@ export function CommunicationPage() {
{/* Desktop: two-pane layout */} {/* Desktop: two-pane layout */}
<div className="hidden md:flex w-full"> <div className="hidden md:flex w-full">
<ResizablePanel <ResizablePanel
initialWidth={288} initialWidth={320}
minWidth={200} minWidth={240}
maxWidth={400} maxWidth={450}
className="border-r border-secondary-200 bg-white" className="border-r border-secondary-200 bg-white"
> >
<ConversationTree <ConversationTree