Skip to content

Commit 4d72aec

Browse files
Tim020claude
andauthored
Fix legacy stage_direction references after line_type migration (#814)
The stage_direction boolean field was removed in commit 08b6424 and replaced with the line_type enum. Updated 3 production files and 1 test file that still referenced the old attribute. Changed all instances of `if line.stage_direction:` to `if line.line_type != ScriptLineType.DIALOGUE:` to properly filter out non-dialogue lines (stage directions, cue lines, and spacing). Files modified: - server/controllers/api/show/characters.py (line 201) - server/controllers/api/show/cast.py (line 189) - server/utils/show/mic_assignment.py (line 127) - server/test/utils/show/test_mic_assignment.py (multiple mocks) Fixes #812 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
1 parent 46ac6d9 commit 4d72aec

File tree

4 files changed

+12
-11
lines changed

4 files changed

+12
-11
lines changed

server/controllers/api/show/cast.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
from sqlalchemy import select
44
from tornado import escape
55

6-
from models.script import Script, ScriptLine, ScriptRevision
6+
from models.script import Script, ScriptLine, ScriptLineType, ScriptRevision
77
from models.show import Cast, Character, Show
88
from rbac.role import Role
99
from schemas.schemas import CastSchema
@@ -192,7 +192,7 @@ async def get(self):
192192
line_counts = defaultdict(lambda: defaultdict(lambda: defaultdict(int)))
193193
for line_association in revision.line_associations:
194194
line: ScriptLine = line_association.line
195-
if line.stage_direction:
195+
if line.line_type != ScriptLineType.DIALOGUE:
196196
continue
197197
for line_part in line.line_parts:
198198
if line_part.line_part_cuts is not None:

server/controllers/api/show/characters.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
from sqlalchemy import select
44
from tornado import escape
55

6-
from models.script import Script, ScriptLine, ScriptRevision
6+
from models.script import Script, ScriptLine, ScriptLineType, ScriptRevision
77
from models.show import Cast, Character, CharacterGroup, Show
88
from rbac.role import Role
99
from schemas.schemas import CharacterGroupSchema, CharacterSchema
@@ -204,7 +204,7 @@ async def get(self):
204204
line_counts = defaultdict(lambda: defaultdict(lambda: defaultdict(int)))
205205
for line_association in revision.line_associations:
206206
line: ScriptLine = line_association.line
207-
if line.stage_direction:
207+
if line.line_type != ScriptLineType.DIALOGUE:
208208
continue
209209
for line_part in line.line_parts:
210210
if line_part.line_part_cuts is not None:

server/test/utils/show/test_mic_assignment.py

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
from unittest.mock import MagicMock
1010
from collections import defaultdict
1111

12+
from models.script import ScriptLineType
1213
from utils.show.mic_assignment import (
1314
SceneMetadata,
1415
swap_cost,
@@ -81,7 +82,7 @@ def mock_revision(self):
8182
# Create mock line associations
8283
line1 = MagicMock()
8384
line1.scene_id = 1
84-
line1.stage_direction = False
85+
line1.line_type = ScriptLineType.DIALOGUE
8586

8687
line_part1 = MagicMock()
8788
line_part1.character_id = 10
@@ -96,7 +97,7 @@ def mock_revision(self):
9697
# Line 2 - same character in different scene
9798
line2 = MagicMock()
9899
line2.scene_id = 2
99-
line2.stage_direction = False
100+
line2.line_type = ScriptLineType.DIALOGUE
100101

101102
line_part2 = MagicMock()
102103
line_part2.character_id = 10
@@ -156,7 +157,7 @@ def test_stage_directions_ignored(self):
156157
# Create stage direction line
157158
line = MagicMock()
158159
line.scene_id = 1
159-
line.stage_direction = True
160+
line.line_type = ScriptLineType.STAGE_DIRECTION
160161

161162
line_part = MagicMock()
162163
line_part.character_id = 10
@@ -184,7 +185,7 @@ def test_cut_lines_ignored(self):
184185
# Create cut line
185186
line = MagicMock()
186187
line.scene_id = 1
187-
line.stage_direction = False
188+
line.line_type = ScriptLineType.DIALOGUE
188189

189190
line_part = MagicMock()
190191
line_part.character_id = 10
@@ -212,7 +213,7 @@ def test_character_groups_expanded(self):
212213
# Create line with character group
213214
line = MagicMock()
214215
line.scene_id = 1
215-
line.stage_direction = False
216+
line.line_type = ScriptLineType.DIALOGUE
216217

217218
line_part = MagicMock()
218219
line_part.character_id = None

server/utils/show/mic_assignment.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
from sqlalchemy.orm import Session
1414

1515
from models.mics import MicrophoneAllocation
16-
from models.script import ScriptLine, ScriptRevision
16+
from models.script import ScriptLine, ScriptLineType, ScriptRevision
1717
from models.show import Character, CharacterGroup
1818

1919

@@ -124,7 +124,7 @@ def collect_character_appearances(
124124
line: ScriptLine = line_assoc.line
125125

126126
# Skip stage directions
127-
if line.stage_direction:
127+
if line.line_type != ScriptLineType.DIALOGUE:
128128
continue
129129

130130
# Count lines per character

0 commit comments

Comments
 (0)