feat: Update Dograh's UI Design (#67)

* feat: create app sidebar and update layout

* fix: fix loading errors

* fix: fix stack auth hydration issue

* fix: fix design for create-workflow

* fix: fix service configuration page design

* Add header for workflow detail

* feat: fix workflow editor design

* Fix css classes

* Fix callback status parsing for Vobiz

* Fix filter and remove gender service
This commit is contained in:
Abhishek 2025-11-29 15:39:57 +05:30 committed by GitHub
parent 8342cd1dda
commit a7f2238044
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
90 changed files with 4398 additions and 2312 deletions

View file

@ -3,7 +3,7 @@
from datetime import datetime
from typing import Any, Dict, List, Optional
from sqlalchemy import Integer, and_, cast
from sqlalchemy import Integer, and_, cast, func
from sqlalchemy.dialects.postgresql import JSONB
from api.db.models import WorkflowRunModel
@ -128,10 +128,16 @@ def apply_workflow_run_filters(
):
tags = value.get("codes", [])
if tags:
# The gathered_context column is JSON type (not JSONB)
# JSON type doesn't support subscripting, so we must cast to JSONB first
# Then extract call_tags and check containment with @>
gathered_context_jsonb = cast(
WorkflowRunModel.gathered_context, JSONB
)
# Use -> operator with literal text key to get call_tags as JSONB
call_tags = gathered_context_jsonb.op("->")("call_tags")
filter_conditions.append(
cast(WorkflowRunModel.gathered_context, JSONB)[
"call_tags"
].contains(tags)
call_tags.op("@>")(func.cast(tags, JSONB))
)
elif filter_type == "text" and field == "initial_context.phone":