feat: review entry reason picker uses dropdown instead of prompt

Add modal select for trade record review, expand options to two-level labels (反转/启动A), and accept legacy short labels on save.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
dekun
2026-07-07 00:38:16 +08:00
parent f580e4542d
commit 1092816359
10 changed files with 188 additions and 34 deletions
+13 -3
View File
@@ -35,7 +35,7 @@ class TestEntryModelLib(unittest.TestCase):
}
)
self.assertTrue(is_intraday_trading_profile(policy))
self.assertEqual(trend_manual_entry_reason_count(policy), 5)
self.assertEqual(trend_manual_entry_reason_count(policy), 7)
def test_trend_div_profile_alt(self):
policy = load_trade_policy(
@@ -45,7 +45,7 @@ class TestEntryModelLib(unittest.TestCase):
}
)
self.assertFalse(is_intraday_trading_profile(policy))
self.assertEqual(trend_manual_entry_reason_count(policy), 5)
self.assertEqual(trend_manual_entry_reason_count(policy), 7)
def test_entry_model_maps_trade_style(self):
self.assertEqual(trade_style_for_entry_model(ENTRY_MODEL_LAUNCH_A), "trend")
@@ -144,9 +144,19 @@ class TestEntryModelLib(unittest.TestCase):
def test_build_trend_div_journal_options(self):
opts = build_trend_div_entry_reason_options(("趋势回调",))
self.assertEqual(opts[:5], ("启动A", "启动B", "大分歧A", "大分歧B", "小分歧"))
self.assertEqual(opts[:5], ("反转/启动A", "反转/启动B", "顺势/大分歧A", "顺势/大分歧B", "波段单/小分歧"))
self.assertIn("趋势单", opts)
self.assertIn("波段单", opts)
self.assertIn("趋势回调", opts)
def test_normalize_review_entry_reason(self):
from lib.trade.entry_model_lib import normalize_review_entry_reason
allowed = build_trend_div_entry_reason_options(())
self.assertEqual(normalize_review_entry_reason("反转/启动A", allowed), "反转/启动A")
self.assertEqual(normalize_review_entry_reason("启动A", allowed), "反转/启动A")
self.assertEqual(normalize_review_entry_reason("趋势单", allowed), "趋势单")
if __name__ == "__main__":
unittest.main()