diff --git a/.github/workflows/playwright.yml b/.github/workflows/playwright.yml
index 775b3295835d..1a7897144757 100644
--- a/.github/workflows/playwright.yml
+++ b/.github/workflows/playwright.yml
@@ -54,7 +54,7 @@ jobs:
npm ci -D --prefix src/dispatch/static/dispatch
npm install -D @playwright/test
- name: Install playwright browsers
- run: npx playwright install --with-deps
+ run: npx playwright install --with-deps chromium
- name: Setup sample database
run: dispatch database restore --dump-file data/dispatch-sample-data.dump && dispatch database upgrade
- name: Run tests
diff --git a/requirements-dev.txt b/requirements-dev.txt
index 3f00868d8b5f..267a48327cc2 100644
--- a/requirements-dev.txt
+++ b/requirements-dev.txt
@@ -86,7 +86,7 @@ python-dateutil==2.8.2
# via faker
pyyaml==6.0.1
# via pre-commit
-ruff==0.1.6
+ruff==0.1.7
# via -r requirements-dev.in
six==1.16.0
# via
diff --git a/src/dispatch/case/messaging.py b/src/dispatch/case/messaging.py
index 48f377b28191..ae9d54a02a15 100644
--- a/src/dispatch/case/messaging.py
+++ b/src/dispatch/case/messaging.py
@@ -37,7 +37,7 @@ def send_case_close_reminder(case: Case, db_session: SessionLocal):
items = [
{
"name": case.name,
- "dispatch_ui_case_url": f"{DISPATCH_UI_URL}/{case.project.organization.name}/cases/{case.id}", # noqa
+ "dispatch_ui_case_url": f"{DISPATCH_UI_URL}/{case.project.organization.name}/cases/{case.name}", # noqa
"title": case.title,
"status": case.status,
}
@@ -77,7 +77,7 @@ def send_case_triage_reminder(case: Case, db_session: SessionLocal):
"name": case.name,
"title": case.title,
"status": case.status,
- "dispatch_ui_case_url": f"{DISPATCH_UI_URL}/{case.project.organization.name}/cases/{case.id}", # noqa
+ "dispatch_ui_case_url": f"{DISPATCH_UI_URL}/{case.project.organization.name}/cases/{case.name}", # noqa
}
]
diff --git a/src/dispatch/conversation/flows.py b/src/dispatch/conversation/flows.py
index dadba50ff470..f7f175a84012 100644
--- a/src/dispatch/conversation/flows.py
+++ b/src/dispatch/conversation/flows.py
@@ -36,6 +36,8 @@ def create_case_conversation(case: Case, conversation_target: str, db_session: S
if not conversation_target:
conversation_target = case.case_type.conversation_target
+ conversation = None
+
if conversation_target:
try:
conversation = plugin.instance.create_threaded(
diff --git a/src/dispatch/plugins/dispatch_slack/case/messages.py b/src/dispatch/plugins/dispatch_slack/case/messages.py
index 76a52b52e83a..9163f6d57644 100644
--- a/src/dispatch/plugins/dispatch_slack/case/messages.py
+++ b/src/dispatch/plugins/dispatch_slack/case/messages.py
@@ -78,7 +78,7 @@ def create_case_message(case: Case, channel_id: str) -> list[Block]:
accessory=Button(
text="View",
action_id="button-link",
- url=f"{DISPATCH_UI_URL}/{case.project.organization.slug}/cases/{case.id}",
+ url=f"{DISPATCH_UI_URL}/{case.project.organization.slug}/cases/{case.name}",
),
),
Section(text=f"*Description* \n {case.description}"),
diff --git a/src/dispatch/static/dispatch/package-lock.json b/src/dispatch/static/dispatch/package-lock.json
index ee808ae68d9a..14815334744f 100644
--- a/src/dispatch/static/dispatch/package-lock.json
+++ b/src/dispatch/static/dispatch/package-lock.json
@@ -6336,9 +6336,9 @@
}
},
"node_modules/vite": {
- "version": "4.5.0",
- "resolved": "https://registry.npmjs.org/vite/-/vite-4.5.0.tgz",
- "integrity": "sha512-ulr8rNLA6rkyFAlVWw2q5YJ91v098AFQ2R0PRFwPzREXOUJQPtFUG0t+/ZikhaOCDqFoDhN6/v8Sq0o4araFAw==",
+ "version": "4.5.1",
+ "resolved": "https://registry.npmjs.org/vite/-/vite-4.5.1.tgz",
+ "integrity": "sha512-AXXFaAJ8yebyqzoNB9fu2pHoo/nWX+xZlaRwoeYUxEqBO+Zj4msE5G+BhGBll9lYEKv9Hfks52PAF2X7qDYXQA==",
"devOptional": true,
"dependencies": {
"esbuild": "^0.18.10",
diff --git a/src/dispatch/static/dispatch/src/case/CaseAttributesDrawer.vue b/src/dispatch/static/dispatch/src/case/CaseAttributesDrawer.vue
index 0cc7115f931c..f9277365039c 100644
--- a/src/dispatch/static/dispatch/src/case/CaseAttributesDrawer.vue
+++ b/src/dispatch/static/dispatch/src/case/CaseAttributesDrawer.vue
@@ -109,6 +109,7 @@ const handleResolutionUpdate = (newResolution) => {