wbportfolio 1.52.0__py2.py3-none-any.whl → 1.52.2__py2.py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of wbportfolio might be problematic. Click here for more details.

Files changed (86) hide show
  1. wbportfolio/admin/__init__.py +1 -1
  2. wbportfolio/admin/transactions/__init__.py +0 -1
  3. wbportfolio/admin/transactions/dividends.py +40 -4
  4. wbportfolio/admin/transactions/fees.py +24 -14
  5. wbportfolio/admin/transactions/trades.py +34 -12
  6. wbportfolio/defaults/fees/default.py +7 -15
  7. wbportfolio/factories/__init__.py +0 -1
  8. wbportfolio/factories/dividends.py +8 -3
  9. wbportfolio/factories/fees.py +8 -4
  10. wbportfolio/factories/trades.py +10 -3
  11. wbportfolio/filters/transactions/__init__.py +1 -2
  12. wbportfolio/filters/transactions/fees.py +5 -10
  13. wbportfolio/filters/transactions/trades.py +17 -8
  14. wbportfolio/filters/transactions/utils.py +42 -0
  15. wbportfolio/import_export/handlers/dividend.py +7 -7
  16. wbportfolio/import_export/handlers/fees.py +11 -21
  17. wbportfolio/import_export/handlers/trade.py +5 -7
  18. wbportfolio/import_export/parsers/jpmorgan/fees.py +2 -2
  19. wbportfolio/import_export/parsers/leonteq/customer_trade.py +5 -5
  20. wbportfolio/import_export/parsers/leonteq/fees.py +11 -7
  21. wbportfolio/import_export/parsers/leonteq/trade.py +0 -5
  22. wbportfolio/import_export/parsers/natixis/d1_fees.py +2 -2
  23. wbportfolio/import_export/parsers/natixis/dividend.py +4 -9
  24. wbportfolio/import_export/parsers/natixis/fees.py +7 -9
  25. wbportfolio/import_export/parsers/sg_lux/customer_trade_pending_slk.py +1 -1
  26. wbportfolio/import_export/parsers/sg_lux/fees.py +2 -2
  27. wbportfolio/import_export/parsers/sg_lux/perf_fees.py +2 -2
  28. wbportfolio/import_export/parsers/sg_lux/utils.py +2 -2
  29. wbportfolio/import_export/parsers/ubs/api/fees.py +2 -2
  30. wbportfolio/import_export/parsers/vontobel/customer_trade.py +2 -3
  31. wbportfolio/import_export/parsers/vontobel/historical_customer_trade.py +0 -1
  32. wbportfolio/import_export/parsers/vontobel/management_fees.py +7 -7
  33. wbportfolio/import_export/parsers/vontobel/performance_fees.py +3 -3
  34. wbportfolio/jinja2/wbportfolio/sql/aum_nnm.sql +2 -2
  35. wbportfolio/migrations/0059_fees_unique_fees.py +1 -1
  36. wbportfolio/migrations/0077_remove_transaction_currency_and_more.py +622 -0
  37. wbportfolio/models/mixins/liquidity_stress_test.py +3 -3
  38. wbportfolio/models/transactions/__init__.py +0 -2
  39. wbportfolio/models/transactions/claim.py +1 -1
  40. wbportfolio/models/transactions/dividends.py +41 -5
  41. wbportfolio/models/transactions/fees.py +55 -22
  42. wbportfolio/models/transactions/trade_proposals.py +26 -6
  43. wbportfolio/models/transactions/trades.py +111 -50
  44. wbportfolio/models/transactions/transactions.py +60 -156
  45. wbportfolio/serializers/signals.py +15 -10
  46. wbportfolio/serializers/transactions/__init__.py +0 -5
  47. wbportfolio/serializers/transactions/dividends.py +37 -9
  48. wbportfolio/serializers/transactions/fees.py +39 -10
  49. wbportfolio/serializers/transactions/trades.py +56 -16
  50. wbportfolio/tasks.py +2 -2
  51. wbportfolio/tests/conftest.py +2 -8
  52. wbportfolio/tests/models/test_imports.py +2 -7
  53. wbportfolio/tests/models/transactions/test_fees.py +7 -13
  54. wbportfolio/tests/models/transactions/test_trade_proposals.py +4 -2
  55. wbportfolio/urls.py +3 -6
  56. wbportfolio/viewsets/configs/buttons/__init__.py +1 -0
  57. wbportfolio/viewsets/configs/buttons/mixins.py +2 -2
  58. wbportfolio/viewsets/configs/buttons/trades.py +8 -0
  59. wbportfolio/viewsets/configs/display/__init__.py +2 -3
  60. wbportfolio/viewsets/configs/display/fees.py +3 -3
  61. wbportfolio/viewsets/configs/endpoints/__init__.py +3 -4
  62. wbportfolio/viewsets/configs/endpoints/fees.py +2 -2
  63. wbportfolio/viewsets/configs/menu/__init__.py +0 -1
  64. wbportfolio/viewsets/configs/titles/__init__.py +2 -3
  65. wbportfolio/viewsets/configs/titles/fees.py +4 -8
  66. wbportfolio/viewsets/mixins.py +5 -1
  67. wbportfolio/viewsets/products.py +6 -6
  68. wbportfolio/viewsets/transactions/__init__.py +2 -7
  69. wbportfolio/viewsets/transactions/fees.py +22 -22
  70. wbportfolio/viewsets/transactions/trade_proposals.py +1 -0
  71. wbportfolio/viewsets/transactions/trades.py +2 -0
  72. {wbportfolio-1.52.0.dist-info → wbportfolio-1.52.2.dist-info}/METADATA +1 -1
  73. {wbportfolio-1.52.0.dist-info → wbportfolio-1.52.2.dist-info}/RECORD +75 -84
  74. wbportfolio/admin/transactions/transactions.py +0 -38
  75. wbportfolio/factories/transactions.py +0 -22
  76. wbportfolio/filters/transactions/transactions.py +0 -99
  77. wbportfolio/models/transactions/expiry.py +0 -7
  78. wbportfolio/serializers/transactions/expiry.py +0 -18
  79. wbportfolio/serializers/transactions/transactions.py +0 -85
  80. wbportfolio/viewsets/configs/display/transactions.py +0 -55
  81. wbportfolio/viewsets/configs/endpoints/transactions.py +0 -14
  82. wbportfolio/viewsets/configs/menu/transactions.py +0 -9
  83. wbportfolio/viewsets/configs/titles/transactions.py +0 -9
  84. wbportfolio/viewsets/transactions/transactions.py +0 -122
  85. {wbportfolio-1.52.0.dist-info → wbportfolio-1.52.2.dist-info}/WHEEL +0 -0
  86. {wbportfolio-1.52.0.dist-info → wbportfolio-1.52.2.dist-info}/licenses/LICENSE +0 -0
@@ -3,10 +3,10 @@ wbportfolio/apps.py,sha256=tybcoLFiw5tLdGHYV68X96n6jNZqx4BYx7Ao8mPflH8,749
3
3
  wbportfolio/dynamic_preferences_registry.py,sha256=SV-4JWBZBYhXt5cNMglx-yRJhxpejP_jo157ghjq2q0,2294
4
4
  wbportfolio/permissions.py,sha256=F147DXfitbw6IdMQGEFfymCJkiG5YGkWKsLdVVliPyw,320
5
5
  wbportfolio/preferences.py,sha256=JpowIFTrnjfomogJNrYmmfv7V35bRZNNGL_zooKzEhc,465
6
- wbportfolio/tasks.py,sha256=LgDpHpRygwpuhjEPfX1tvur1j-UwpMKR1P-Ksopcjsc,2014
7
- wbportfolio/urls.py,sha256=YAd1OyvXIyHVwBY6s8E74qIQQ8Pz3Myq89GIjM1A2vY,10765
6
+ wbportfolio/tasks.py,sha256=619LS4AN1-5RqdtwwLODdXA-IJKs5OA93JyLEnIJy4g,1969
7
+ wbportfolio/urls.py,sha256=TFO5juco7IFgizHNvRktM8wnkorsjTLr8bT0bLufWJ0,10539
8
8
  wbportfolio/utils.py,sha256=QZ4t0j2NwKYmgWJM77yvXSp-8wVcZmFvNi5_v7YA3ac,750
9
- wbportfolio/admin/__init__.py,sha256=6mHM6lwUsLOlfMic0OthH_eM4VNlduYOrBptfQUoF9w,595
9
+ wbportfolio/admin/__init__.py,sha256=nqoBHOLnQ-pnJG793B7ngqCVFNmzCx9-mXVUWEAvR4g,572
10
10
  wbportfolio/admin/asset.py,sha256=Nukw4axCnctQFlAtPkPJyalEga7RtTp7jr138MOdWSM,1254
11
11
  wbportfolio/admin/custodians.py,sha256=rJ9wFdiFM5t3WrmAfNXWzjxDAWrbnlSstfNjQxSmTNE,332
12
12
  wbportfolio/admin/indexes.py,sha256=Psn6yd8ceBySSKWQlbwBq0Y6Jkxg1e1HcMrpO0Wirl8,406
@@ -17,13 +17,12 @@ wbportfolio/admin/products.py,sha256=NLceny44B0WOZ66I-0D8aBWz8ST7aJM4XVy2NibeRxI
17
17
  wbportfolio/admin/reconciliations.py,sha256=s7aYxdJE6jX72bnKCrj-YdZBl9bFV_n44Bo28RZMKvg,511
18
18
  wbportfolio/admin/registers.py,sha256=N5zcfFgxR9H37YEJxFIBif7v5uLN2mGNV3lf9c5OYnw,505
19
19
  wbportfolio/admin/roles.py,sha256=h7d0aYBctghj1zFphWkMVHywnCjF8bewVbk8lq1IX8U,446
20
- wbportfolio/admin/transactions/__init__.py,sha256=rBmfgIEBZMbcUvSdFsxp7qfmoUQrFvfq2VHsiPW06Qc,257
20
+ wbportfolio/admin/transactions/__init__.py,sha256=Q2vP06TUQlh-Bhkvuz16K0fk8KouiTr48qg9LIoAg8w,195
21
21
  wbportfolio/admin/transactions/claim.py,sha256=DaE5vtmSlt_ya55bCAM75UD8smNisA5kl5jrAANm0yA,613
22
- wbportfolio/admin/transactions/dividends.py,sha256=6gGqbWpYur5C_3gpEN1mJp9jsJujRN9tPl34Q-d11eA,437
23
- wbportfolio/admin/transactions/fees.py,sha256=doukqnlm9LGZynH_sLbEcBgtJ7W8T2hJxWAijibpWu4,1325
22
+ wbportfolio/admin/transactions/dividends.py,sha256=2Hx0yvcMp0VvzYfuO_jl-9KFrpq6RUd5S7NVrc10Rsg,1604
23
+ wbportfolio/admin/transactions/fees.py,sha256=gpq-_k3ypEGVNuDfFE4OHtn-B9ZtkzA4YYNLtNu-Fc8,1329
24
24
  wbportfolio/admin/transactions/rebalancing.py,sha256=FUMazUUxp7P2M9YhWpqKCS-Em4mVYvCyUczY6uY-AEc,611
25
- wbportfolio/admin/transactions/trades.py,sha256=QCYMtP6ZBEEy6iMTdFKg3HjTe5DvXdPu5PqNmEwB0Cw,1708
26
- wbportfolio/admin/transactions/transactions.py,sha256=xxy9J8zO0gtqzVUP_Y2OjTXfkNGqrW9f4wWmITir7HQ,1275
25
+ wbportfolio/admin/transactions/trades.py,sha256=hernAxdTmTHROA6C9_OIqBW4-XX6orkeYNxpiY2j_E4,2478
27
26
  wbportfolio/analysis/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
28
27
  wbportfolio/analysis/claims.py,sha256=islJVmHg6jKr6Q1b84Vt5Au2bzy9aDjWGEVGNtPFQd4,10688
29
28
  wbportfolio/contrib/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -52,14 +51,14 @@ wbportfolio/contrib/company_portfolio/tests/conftest.py,sha256=JFz2KC9YvT1YJ6JFB
52
51
  wbportfolio/contrib/company_portfolio/tests/test_models.py,sha256=K72dFNMzf5Cpwez24AHFVo_dLpVUswyq8-Ovs0Ai1Ek,7713
53
52
  wbportfolio/defaults/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
54
53
  wbportfolio/defaults/fees/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
55
- wbportfolio/defaults/fees/default.py,sha256=1hf1MkY40cmChu-NvoyMTYJMOtG0w-jwbH08BJeYJRg,4207
56
- wbportfolio/factories/__init__.py,sha256=pTezShesLaQ-1uZdGAVBgcgClgpjOCdYozpPfMKtSJU,1236
54
+ wbportfolio/defaults/fees/default.py,sha256=rUXZS6b5LFdrJQSTl8nPoboy1V2L8g0bekXbYFbNAoU,3711
55
+ wbportfolio/factories/__init__.py,sha256=LCAEUBt-GeHFkOx1IoQTyDKkgfQGma0GG0U3yBAwwsY,1191
57
56
  wbportfolio/factories/adjustments.py,sha256=aOHXJLy7DW4k1hcRBZteEe2mKe_wQg7z0bVnzvXCl4A,615
58
57
  wbportfolio/factories/assets.py,sha256=1i7xDT6bpvnYQiEJpmukWadSvS1asQC-QuUJ1PCll0U,3173
59
58
  wbportfolio/factories/claim.py,sha256=LQzz8EbIveOYpMY-JOMR8ba-taoX3u53zjBwxiydtrM,1629
60
59
  wbportfolio/factories/custodians.py,sha256=XrNcpNhE4Rbv0y159E_MbP1TAQwe9POab-_RHOHy1Uk,311
61
- wbportfolio/factories/dividends.py,sha256=ET2kp0A7U1x8WhNVUn6FM1GF4jfr5NwdULBiIQkSLh0,404
62
- wbportfolio/factories/fees.py,sha256=2B2ebj06a0ZI1ra2-TXtW5e0aQ9sXT-Plw6CzV-3_1c,400
60
+ wbportfolio/factories/dividends.py,sha256=8JxViNnFPZy8aXMoeDsa6asaqdBJ5ujfFQ9IqeNXnVQ,798
61
+ wbportfolio/factories/fees.py,sha256=Ov7Hn-UKjuottuq3dmtMCzvEUCLD2CB_hbg6C5hXY48,619
63
62
  wbportfolio/factories/indexes.py,sha256=sInyNARyfUNbScxr_ng1HhxtJXIsK3awFf9BF1gr9zU,440
64
63
  wbportfolio/factories/portfolio_cash_flow.py,sha256=e8LWkk5Gy0FU4HoCL9xPseCtLlVIkMrvAmey5swqcfc,727
65
64
  wbportfolio/factories/portfolio_cash_targets.py,sha256=6bYaKjV56yRbjRaQzime218Dho652pcpkAqwhq63D3g,678
@@ -70,8 +69,7 @@ wbportfolio/factories/products.py,sha256=N0V6sM_98sC6l8qN78wgfmtpYq7O2c5rW5hT5ZM
70
69
  wbportfolio/factories/rebalancing.py,sha256=5wlB5cT65oBFcMQDLyMn50JOJMD7GQvzpr9Pe0cqJLE,721
71
70
  wbportfolio/factories/reconciliations.py,sha256=Ne3rBZ_yvjlAtWW7qDLprHrLhNCtLL_RXU3yDHc3s3c,916
72
71
  wbportfolio/factories/roles.py,sha256=tot54YX70sNqZrAg5zGJTHd7_PFjZed_mny4lGlnwEA,857
73
- wbportfolio/factories/trades.py,sha256=-14d_ABN9FEoXb4wm9-YjYHfP2cCEANNM45cMRZtQt8,1373
74
- wbportfolio/factories/transactions.py,sha256=jZqTNRpW344DSYjV5tAqU5y30Kc7GRGbZ3BN9hacKpQ,995
72
+ wbportfolio/factories/trades.py,sha256=qvWBfG9WrAAgmMJXJ-wWgUtZ2fSOeSCwJvgLe71if8E,1850
75
73
  wbportfolio/fdm/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
76
74
  wbportfolio/fdm/tasks.py,sha256=59hXt3TOJaM8KpUaKdBNAGsO7NFMHaAlNA0T3FTUau0,533
77
75
  wbportfolio/filters/__init__.py,sha256=m44CdyYMtku8rMGyiX8KSmMdvyqaElKW4UMkEqOC1VM,1374
@@ -85,12 +83,12 @@ wbportfolio/filters/positions.py,sha256=7eMqwqnNd_owi2Mg-1Uf9K9K9SHSgdZ8CcYgWw49
85
83
  wbportfolio/filters/products.py,sha256=jOoRKDm_2n2a-Y1dHWl1zjdrwy4Cek57Qa3Q10p_zzY,6492
86
84
  wbportfolio/filters/roles.py,sha256=jb8WLzZ_e03x8XkAWuYAdPgMyre3h-rtgYXKJ3dqkhw,920
87
85
  wbportfolio/filters/signals.py,sha256=XZ1d50yas47Xy57ZfmvCVjMSKojaoqrc5FHJBcVadtk,3144
88
- wbportfolio/filters/transactions/__init__.py,sha256=WHAwqZLRTAS46lLscGJYtKYWyEknsY5MqeSD0ue1r-o,662
86
+ wbportfolio/filters/transactions/__init__.py,sha256=TXiHB7_ItZPVcXCCGejpLBRD4R7rtt3Qrq59z8D5ChA,582
89
87
  wbportfolio/filters/transactions/claim.py,sha256=eSykgNzcytMWWTmlGlaqBuh98vfOKoTLvA3cglc_jZ0,17951
90
- wbportfolio/filters/transactions/fees.py,sha256=Oawed5qlhKTFbuq0inzz2vkjtEgLObnF--m-k4HC0G4,2157
88
+ wbportfolio/filters/transactions/fees.py,sha256=SdUaFCdsET9s2FpBA41I8Fw7Zfd_ZGoDGXs-_q3gtq8,1754
91
89
  wbportfolio/filters/transactions/mixins.py,sha256=TEV3MUsiQTeu4NdFYHMIIMonmC7CdFF80JTpWYIvfRQ,550
92
- wbportfolio/filters/transactions/trades.py,sha256=fJ_JjjgBjJd9US0MdjksscCDNIbcLTrWUTT8Nt4kVY4,9778
93
- wbportfolio/filters/transactions/transactions.py,sha256=7rMpP3V1c0NuJyji-aJq76WPurLZpS9PGI8FgjB4a0A,3538
90
+ wbportfolio/filters/transactions/trades.py,sha256=uJHaEwaOBGAnLf9OEWf1-F1FKFP_pnjYEFhIW5g2Stc,10064
91
+ wbportfolio/filters/transactions/utils.py,sha256=hU133SdUDuD30wy9QLvCCJbGsiZzxvdOp8xtnGbUzaU,1510
94
92
  wbportfolio/fixtures/product_factsheets.yaml,sha256=z5o-viDbgwWkssDJXZYayasFgw1nJ0uiOiYrJNDkRtg,5455
95
93
  wbportfolio/fixtures/wbportfolio.yaml.gz,sha256=902nxQZM6VcVcc0wI9AYaSedcJIfsK5letLF31j1Jdg,1479453
96
94
  wbportfolio/fixtures/wbrisk_management.yaml.gz,sha256=alFDRu8S9R6IsaIkpJe_v36B2GvHgHeNJVumUB5m_NQ,155413
@@ -111,34 +109,34 @@ wbportfolio/import_export/backends/wbfdm/mixin.py,sha256=JNtjgqGLson1nu_Chqb8MWy
111
109
  wbportfolio/import_export/handlers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
112
110
  wbportfolio/import_export/handlers/adjustment.py,sha256=6bdTIYFmc8_HFxcdwtnYwglMyCfAD8XrTIrEb2zWY0g,1757
113
111
  wbportfolio/import_export/handlers/asset_position.py,sha256=UZBDlEK5mxtGu9cZvwiQS6J8GNkMJqDZb7KZ3uwex0g,8698
114
- wbportfolio/import_export/handlers/dividend.py,sha256=lnQj6zcXoNN0xMYgP8A69a4r9yXc039iEvj8UItlPa0,4480
115
- wbportfolio/import_export/handlers/fees.py,sha256=K1iA7qWVQzHN1hrY22OEt3LN0N1qd57ZJnQB55_FfFA,3221
112
+ wbportfolio/import_export/handlers/dividend.py,sha256=F0oLfNt2B_QQAjHBCRpxa5HSkfkAYdal_NjLJGtVckY,4408
113
+ wbportfolio/import_export/handlers/fees.py,sha256=BOFHAvSTlvVLaxnm6KD_fcza1TlPc02HOR9J0_jjswI,2495
116
114
  wbportfolio/import_export/handlers/portfolio_cash_flow.py,sha256=W7QPNqEvvsq0RS016EAFBp1ezvc6G9Rk-hviRZh8o6Y,2737
117
115
  wbportfolio/import_export/handlers/register.py,sha256=sYyXkE8b1DPZ5monxylZn0kjxLVdNYYZR-p61dwEoDM,2271
118
- wbportfolio/import_export/handlers/trade.py,sha256=o5yFDSqIRWpqQOPdQBReq2M0RwG-WOGnR68NMba7H8Q,12498
116
+ wbportfolio/import_export/handlers/trade.py,sha256=VZKPG_l8qT7qzoOc8oi5bNNQHBue4USPdc8sidVHIks,12544
119
117
  wbportfolio/import_export/parsers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
120
118
  wbportfolio/import_export/parsers/default_mapping.py,sha256=KrO-X5CvQCeQoBYzFDxavoQGriyUSeI2QDx5ar_zo7A,1405
121
119
  wbportfolio/import_export/parsers/jpmorgan/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
122
120
  wbportfolio/import_export/parsers/jpmorgan/customer_trade.py,sha256=fj80hTkNxMR8boz1FzNoIJcwL1WuoVxX4_HV5o4CHL0,2812
123
- wbportfolio/import_export/parsers/jpmorgan/fees.py,sha256=j_nmaidIcDUqTJ3-EUa99vvSYLUdxMQXprjGri7wAAU,2090
121
+ wbportfolio/import_export/parsers/jpmorgan/fees.py,sha256=_I3WdPcu5Z0cblOVnkDgOVm9tmH2YhgXdJqRwpkkcwA,2075
124
122
  wbportfolio/import_export/parsers/jpmorgan/strategy.py,sha256=OAIKv9NyKj8WiWLXsVIj7ujjfxBl5OLCNNXlx0oJIiE,4463
125
123
  wbportfolio/import_export/parsers/jpmorgan/valuation.py,sha256=GjOi5sztimefGNI2EgMtyTsdm_pwqR-Cyv_rEwwrr6Y,1214
126
124
  wbportfolio/import_export/parsers/leonteq/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
127
- wbportfolio/import_export/parsers/leonteq/customer_trade.py,sha256=gv8glSYTStzpsvIUPfFFHGjE4SjCoXvRTWbain_owog,1950
125
+ wbportfolio/import_export/parsers/leonteq/customer_trade.py,sha256=GdqCRWx-D-Z8yvBQU41MWj4j-X2BAnbJ6oAL6sdTnIQ,1896
128
126
  wbportfolio/import_export/parsers/leonteq/equity.py,sha256=Lr3nRPBa9Vg3_CQnuwpzyY0W8fG_pba0spASec9fYeU,3758
129
- wbportfolio/import_export/parsers/leonteq/fees.py,sha256=4CcazpDoFx6zgcQpJiTCZylIO7uMdEnOJ5F3Ge-QXjE,2647
130
- wbportfolio/import_export/parsers/leonteq/trade.py,sha256=Cnb6OVOdDKp6MyMCbM5LYm_KZbdrexVoz_Ge2GCRBXY,3675
127
+ wbportfolio/import_export/parsers/leonteq/fees.py,sha256=SJaYGURhSdBCf4jFaQAN9t5noT_nU9XpQbaLIs2nNQo,2652
128
+ wbportfolio/import_export/parsers/leonteq/trade.py,sha256=C52EbtkdNoezIxqhSXAKmMZjOvqAzryu1HbgFOemTxI,3349
131
129
  wbportfolio/import_export/parsers/leonteq/valuation.py,sha256=s9ovRv4Cx4cFQhjElPCTrguy4Q3iCzbt22TS7Kc3Jl0,1259
132
130
  wbportfolio/import_export/parsers/natixis/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
133
131
  wbportfolio/import_export/parsers/natixis/customer_trade.py,sha256=YFqneuhkwGEF5NSZ6r2Fgf8xnOUCgVN2Vjv0oyPDlIY,2498
134
132
  wbportfolio/import_export/parsers/natixis/d1_customer_trade.py,sha256=ybtJ9NYlqksPjlTmXz7jlj_3SCjgS1o2Sw32xU3wOrc,2207
135
133
  wbportfolio/import_export/parsers/natixis/d1_equity.py,sha256=MDp5cT0WYgSXKxwezWLX7spqbNsA80rxK75rVo_r4WI,2669
136
- wbportfolio/import_export/parsers/natixis/d1_fees.py,sha256=f8Y2cbSDtOPvNZM2oFmxPqeScZuj6DgUEYWxs-l07ic,2204
134
+ wbportfolio/import_export/parsers/natixis/d1_fees.py,sha256=RmzwlNqLSlGDp7JMTwHunLcapdVLKFitLIaAHtVWdUQ,2189
137
135
  wbportfolio/import_export/parsers/natixis/d1_trade.py,sha256=JsAVgRH2iBo096Spz8ThJOGPpOCPyYrJ9GJ1XnzjBJQ,2092
138
136
  wbportfolio/import_export/parsers/natixis/d1_valuation.py,sha256=M12am0ZenUJxkvEGp6tM1HfeukqYS3b6tfbyfC0XwvY,1216
139
- wbportfolio/import_export/parsers/natixis/dividend.py,sha256=yr6f5y_CgXEFzmWDgxGy8XhAhYQ7IVwkqDFF_qMDWEE,2399
137
+ wbportfolio/import_export/parsers/natixis/dividend.py,sha256=qx8DXu6NXMy1M_iunA4ITM845_6iNd1aoVCdoAKDNsY,1964
140
138
  wbportfolio/import_export/parsers/natixis/equity.py,sha256=GSObiFxvhlbGuSZnJq-D8yRgLlsAxJ4oMxYeR6GmFNE,2501
141
- wbportfolio/import_export/parsers/natixis/fees.py,sha256=EQMpGowwszQrQVzYkjLcKKxrSwbpQZLdZc0rsMKAIMY,1861
139
+ wbportfolio/import_export/parsers/natixis/fees.py,sha256=oIC9moGm4s-6525q4_Syt4Yexj3SDgB5kYSfcsdzLcY,1666
142
140
  wbportfolio/import_export/parsers/natixis/trade.py,sha256=BJum1W0fYe9emHU7RgL-AjHkiclrckQYkG8VkyCnfvM,2579
143
141
  wbportfolio/import_export/parsers/natixis/utils.py,sha256=oa9ENQDfOp2dWfg-ohA5TanCCMx56BnZkQ-U6XlVaBs,2782
144
142
  wbportfolio/import_export/parsers/natixis/valuation.py,sha256=qk5eDz-b9bIttDGnZxQZnm9pDIalb-LCGxmeTyMKRmQ,1523
@@ -147,17 +145,17 @@ wbportfolio/import_export/parsers/refinitiv/adjustment.py,sha256=64AQoLOZQWn5HCL
147
145
  wbportfolio/import_export/parsers/sg_lux/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
148
146
  wbportfolio/import_export/parsers/sg_lux/custodian_positions.py,sha256=hl-LqJbwojQOe0zGEH7W31i4hNTVme5L7nwXwyk6XBY,2483
149
147
  wbportfolio/import_export/parsers/sg_lux/customer_trade.py,sha256=gTEUIaxlZvXXCgYyg9FD3D3aQhffhruYmeZlaAghrK8,2617
150
- wbportfolio/import_export/parsers/sg_lux/customer_trade_pending_slk.py,sha256=4KSxUGyflf3kY5BVJqMAF1aFkeSWEJegfDtLiA1BM6c,5065
148
+ wbportfolio/import_export/parsers/sg_lux/customer_trade_pending_slk.py,sha256=WyRpKXkNhpK4H9aNjW7_ggcCGlN_-9ETlR1QsE9xl_k,5068
151
149
  wbportfolio/import_export/parsers/sg_lux/customer_trade_slk.py,sha256=D_1c0v6lTXkopjZzr9pQb575HxrMFe91tKk8xT1X3Ns,3604
152
150
  wbportfolio/import_export/parsers/sg_lux/customer_trade_without_pw.py,sha256=nMYV9-OwY_TagU36Ab0dOweZYzVriFWHXPYjauBg2Yk,2034
153
151
  wbportfolio/import_export/parsers/sg_lux/equity.py,sha256=w13LAMNWReZzqmdFyXdazVnpGr1UUNLG-pJgn5c16gI,6116
154
- wbportfolio/import_export/parsers/sg_lux/fees.py,sha256=w43mQMn1zdVEVhQmZCvHTHbwhlzsJ8DjmkNuOD4KVqg,1861
155
- wbportfolio/import_export/parsers/sg_lux/perf_fees.py,sha256=CFtpHq2f6lPRifcafKuAFmoDbgzFOTeFRZauKPHEHfI,1527
152
+ wbportfolio/import_export/parsers/sg_lux/fees.py,sha256=AK2TGOjI3JrOjtACEQd-4ffuedtIus-_gWug6wN6RQs,1846
153
+ wbportfolio/import_export/parsers/sg_lux/perf_fees.py,sha256=6HAV3Pu2aaYARjMQvN24Op2rru_YdjeI9J9ADDQVH8s,1513
156
154
  wbportfolio/import_export/parsers/sg_lux/portfolio_cash_flow.py,sha256=ftLKWukUl9AcGWHQmJZnShVZpkO4rOl04PGlLcalDdQ,889
157
155
  wbportfolio/import_export/parsers/sg_lux/portfolio_future_cash_flow.py,sha256=2kkEOwZz1hwiPB9rlMp_vkv5azMrJUfyWl7GMaAwGUc,1074
158
156
  wbportfolio/import_export/parsers/sg_lux/registers.py,sha256=NPkIAY5vJ40_EweQNjgiDVpi-HBK2OFFjwxXhWp85d0,6288
159
157
  wbportfolio/import_export/parsers/sg_lux/sylk.py,sha256=1ThyjneFFe_gNLDHeXQFdWIyanyktxm62P-Ta5Sm1v4,7656
160
- wbportfolio/import_export/parsers/sg_lux/utils.py,sha256=YzYIEDQ3CpkOuRWh2eEFRm-0SERu3SRAmx0nnqQS_og,1301
158
+ wbportfolio/import_export/parsers/sg_lux/utils.py,sha256=xrtEkdz_ypGFRTWn3-Kz6GzqhxY9mexSdWImBEc9xT8,1307
161
159
  wbportfolio/import_export/parsers/sg_lux/valuation.py,sha256=tmc-KHcRUHjTZVck8vzUIoN4Fcb-_zevmET4ZkkRlak,1788
162
160
  wbportfolio/import_export/parsers/societe_generale/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
163
161
  wbportfolio/import_export/parsers/societe_generale/customer_trade.py,sha256=eUgd_ZwK8WZh8-oXTLH4t_F9fXE6SCSOreIqXwVwT0w,2110
@@ -174,16 +172,16 @@ wbportfolio/import_export/parsers/ubs/historical_customer_trade.py,sha256=1IggU7
174
172
  wbportfolio/import_export/parsers/ubs/valuation.py,sha256=6P71APM4xGoAadCywO6DBz42xL1bClacf242pb25w_s,1597
175
173
  wbportfolio/import_export/parsers/ubs/api/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
176
174
  wbportfolio/import_export/parsers/ubs/api/asset_position.py,sha256=vDpGuHDvn0c-x72WVQtIqUc15UxoAQL-XFOsKzNoBjk,4136
177
- wbportfolio/import_export/parsers/ubs/api/fees.py,sha256=Xh3OQlRQNUqQLhUr8OSvE8sXpzgv5aJba1FodU-5ehw,1083
175
+ wbportfolio/import_export/parsers/ubs/api/fees.py,sha256=W6KfZn185nwXePwxL90Jp3Y_HCtkEzivuSSv2IfT2qs,1068
178
176
  wbportfolio/import_export/parsers/ubs/api/instrument_price.py,sha256=gRAfB6BWbMEadIEe24b5nyOyg8owXKAen_Oo0ls8rvQ,565
179
177
  wbportfolio/import_export/parsers/ubs/api/utils.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
180
178
  wbportfolio/import_export/parsers/vontobel/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
181
179
  wbportfolio/import_export/parsers/vontobel/asset_position.py,sha256=IQTvGqp7smZUph1Km2Gx5X7RD_P8GDEYPwS3-Tzu78o,4031
182
- wbportfolio/import_export/parsers/vontobel/customer_trade.py,sha256=lK4sl6Co1JjjwgQtQY9ovHFBhygXnuwE_19iz4I-Dx0,1984
183
- wbportfolio/import_export/parsers/vontobel/historical_customer_trade.py,sha256=3IcyWEtj82JbJi_hx5aqg9aIu1mfnHJ5ADPvZ4AdoMM,1583
180
+ wbportfolio/import_export/parsers/vontobel/customer_trade.py,sha256=cA88eJrz4lVnmxwS17CqQ458pqCB2gK13vMGUg9bZgE,1953
181
+ wbportfolio/import_export/parsers/vontobel/historical_customer_trade.py,sha256=Vto6gujUZOUSjBpDl1HDXFKNLbcPLjk7D88RZ9uVVlI,1554
184
182
  wbportfolio/import_export/parsers/vontobel/instrument.py,sha256=P930ukkZfPPTHa17fk7KSm9jvh4A38zGK1wpk6kwqrc,1003
185
- wbportfolio/import_export/parsers/vontobel/management_fees.py,sha256=bhRtmEmmYXrKI0ag_80EVpilZ8SqMXGq0_jvWmy2g9U,3753
186
- wbportfolio/import_export/parsers/vontobel/performance_fees.py,sha256=xu4ImedMNIAOCftqGmMGO7h9mcvXBhJvmGwQb1kPyzE,1273
183
+ wbportfolio/import_export/parsers/vontobel/management_fees.py,sha256=nshro0tybX9aw7XCxGOFMHDeVX6vQUq8eE1UiV23xao,3702
184
+ wbportfolio/import_export/parsers/vontobel/performance_fees.py,sha256=_3Cx7SWE_hst2W2tUv20QzI-O5m2EXISyDqxeshvrY8,1248
187
185
  wbportfolio/import_export/parsers/vontobel/trade.py,sha256=Xc0ttSkdLm-ZIHtXOyHxHr3FuR89T87I9hXqiTMU1Hk,1566
188
186
  wbportfolio/import_export/parsers/vontobel/utils.py,sha256=3-g2Jep9SxvqqQff8_3FjIeiPxSJCEfXBiBHIk0TiXQ,225
189
187
  wbportfolio/import_export/parsers/vontobel/valuation.py,sha256=iav8_xYpTJchmTa7KOPmFr1gi9xxLwq3e-VcZ9MDiRk,1220
@@ -191,7 +189,7 @@ wbportfolio/import_export/parsers/vontobel/valuation_api.py,sha256=WLkZ5z-WqhFra
191
189
  wbportfolio/import_export/resources/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
192
190
  wbportfolio/import_export/resources/assets.py,sha256=zjgHlQWpud41jHrKdRyqGUt1KUJQm9Z7pt0uVh4qBWQ,2234
193
191
  wbportfolio/import_export/resources/trades.py,sha256=_uAI2clV_ZjStX2Gf4rl_wWo2R4AHNOsZO52g0XKcM0,1723
194
- wbportfolio/jinja2/wbportfolio/sql/aum_nnm.sql,sha256=BvMnLsVlXIqU5hhwLDbwZ6nBqWULIBDVcgLJ2B4sdS4,4440
192
+ wbportfolio/jinja2/wbportfolio/sql/aum_nnm.sql,sha256=V3fm1bWs-0Cz5Y4LK78dkbuyxqg6VUfsE4JXsIQHQac,4408
195
193
  wbportfolio/kpi_handlers/nnm.py,sha256=hCn0oG0C-6dQ0G-6S4r31nAS633NZdlOT-ntZrzvXZI,7180
196
194
  wbportfolio/locale/de/LC_MESSAGES/django.mo,sha256=FfQ5HV2xg7ZrJASidRJ4L-gCAbPNeQnFm940aRbb0js,378
197
195
  wbportfolio/locale/de/LC_MESSAGES/django.po,sha256=Y0CbQMiq1N8SmqKltxPlobdoDhTTtPrFBYBg3_o6O5U,5215
@@ -230,7 +228,7 @@ wbportfolio/migrations/0055_remove_product__custom_management_rebates_and_more.p
230
228
  wbportfolio/migrations/0056_remove_companyportfoliodata_assets_under_management_currency_and_more.py,sha256=JxPOyk8AUDKVS3oI4VNzNgwocCAF0xLt8Q0oyu0WuiY,2107
231
229
  wbportfolio/migrations/0057_alter_portfolio_preferred_instrument_classifications_and_more.py,sha256=objTcKm7bf1b_vwuJC2SNAEG8NjoIDPdm6NYLXI-EzU,1463
232
230
  wbportfolio/migrations/0058_pmsinstrument.py,sha256=mu6U1WCCrmrf62Y2N7y1tpyUp9sDus7MSFPMXCjtSGM,611
233
- wbportfolio/migrations/0059_fees_unique_fees.py,sha256=D5q3KmMuLxj-O3h2sfqfmFkLvsxsbmrAozTyLaVSbc0,1698
231
+ wbportfolio/migrations/0059_fees_unique_fees.py,sha256=nUrZch7fcsC-e9WW3OcYQGdnD_f1hvvKy6KBiXZQI5k,1691
234
232
  wbportfolio/migrations/0060_alter_portfolioportfoliothroughmodel_type.py,sha256=zs1Rd3WmsyXCyYg7j81dneBydL-sb4ljSXdDdJwJDQ0,599
235
233
  wbportfolio/migrations/0061_portfolio_bank_accounts_product_bank_account_and_more.py,sha256=e5lPtRsgOhmYavqBlA8F96Slvcch4c4JlGloQt-3gBo,7992
236
234
  wbportfolio/migrations/0062_alter_dailyportfoliocashflow_options.py,sha256=PfXFKsxoCM68paGrZWagqRUxziGAxgQEEH_TlBn1rcU,638
@@ -248,6 +246,7 @@ wbportfolio/migrations/0073_remove_product_price_computation_and_more.py,sha256=
248
246
  wbportfolio/migrations/0074_alter_rebalancer_frequency_and_more.py,sha256=o01rBj-ADgwCRtAai3e5z27alPGEzaiNxUqCwWm6peY,918
249
247
  wbportfolio/migrations/0075_portfolio_initial_position_date_and_more.py,sha256=rXRpsraVlmueAlO2UpBZV4qMf7dtPuptrhfLblZcJDo,1099
250
248
  wbportfolio/migrations/0076_alter_dividendtransaction_price_and_more.py,sha256=4g3ok79nw8mTAxHFAqBAdpGKetaPAjv06YSywywt4aU,6106
249
+ wbportfolio/migrations/0077_remove_transaction_currency_and_more.py,sha256=Yf4a3zn2siDtWdIEPEIsj_W87jxOIBwiFVATneU8FxU,29597
251
250
  wbportfolio/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
252
251
  wbportfolio/models/__init__.py,sha256=HSpa5xwh_MHQaBpNrq9E0CbdEE5Iq-pDLIsPzZ-TRTg,904
253
252
  wbportfolio/models/adjustments.py,sha256=osXWkJZOiansPWYPyHtl7Z121zDWi7u1YMtrBQtbHVo,10272
@@ -272,20 +271,19 @@ wbportfolio/models/graphs/utils.py,sha256=1AMpEE9mDuUZ82XgN2irxjCW1-LmziROhKevEB
272
271
  wbportfolio/models/llm/wbcrm/analyze_relationship.py,sha256=etKdmt9m6Ra5u7EA9t98RVSqFKpbFd4iwBVaH9T26M8,2320
273
272
  wbportfolio/models/mixins/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
274
273
  wbportfolio/models/mixins/instruments.py,sha256=SgBreTpa_X3uyCWo7t8B0VaTtl49IjmBMe4Pab6TjAM,6796
275
- wbportfolio/models/mixins/liquidity_stress_test.py,sha256=whkzjtbOyl_ncNyaQBORb_Z_rDgcvfdTYPgqPolu7dA,58865
274
+ wbportfolio/models/mixins/liquidity_stress_test.py,sha256=iQVzT3QM7VtHnqfj9gT6KUIe4wC4MJXery-AXJHUYns,58820
276
275
  wbportfolio/models/reconciliations/__init__.py,sha256=MXH5fZIPGDRBgJkO6wVu_NLRs8fkP1im7G6d-h36lQY,127
277
276
  wbportfolio/models/reconciliations/account_reconciliation_lines.py,sha256=QP6M7hMcyFbuXBa55Y-azui6Dl_WgbzMntEqWzQkbfM,7394
278
277
  wbportfolio/models/reconciliations/account_reconciliations.py,sha256=rofSxetFfEJov6mPyoTvGxELA16HILyJZtQvm_kwYU0,4405
279
278
  wbportfolio/models/reconciliations/reconciliations.py,sha256=kF-BNhUoT4TCn1RIgPSkdEk1iX4NQeZlGGFd_ZulAZU,686
280
- wbportfolio/models/transactions/__init__.py,sha256=R-4fHylrUf3773kGSEt09vtYj3LUlia5yf7rxHXjvHA,295
281
- wbportfolio/models/transactions/claim.py,sha256=XUSephKt-VkILe2i-Sd9aoVxB-50PJANCPIDLa_dKl4,25872
282
- wbportfolio/models/transactions/dividends.py,sha256=92-jG8bZN9nU9oDubpu-UDH43Ri7kVjhqE_esOSmOzo,471
283
- wbportfolio/models/transactions/expiry.py,sha256=vnNHdcC1hf2HP4rAbmoGgOfagBYKNFytqOwzOI0MlVI,144
284
- wbportfolio/models/transactions/fees.py,sha256=ffvqo8I4A0l5rLi00jJ6sGot0jmnkoxaNsbDzdPLwCg,5712
279
+ wbportfolio/models/transactions/__init__.py,sha256=aV6lehRHSs8cOKOanm6UgSDqOwEzRZ-eCADuYin9bzY,230
280
+ wbportfolio/models/transactions/claim.py,sha256=SF2FlwG6SRVmA_hT0NbXah5-fYejccWKAE6AY6YOYTs,25875
281
+ wbportfolio/models/transactions/dividends.py,sha256=mmOdGWR35yndUMoCuG24Y6BdtxDhSk2gMQ-8LVguqzg,1890
282
+ wbportfolio/models/transactions/fees.py,sha256=wJtlzbBCAq1UHvv0wqWTE2BEjCF5RMtoaSDS3kODFRo,7112
285
283
  wbportfolio/models/transactions/rebalancing.py,sha256=obzgewWKOD4kJbCoF5fhtfDk502QkbrjPKh8T9KDGew,7355
286
- wbportfolio/models/transactions/trade_proposals.py,sha256=ba7hKiWixjhWEbS_akgQTJokIdMLLOTxHIN4GMD71Zo,31151
287
- wbportfolio/models/transactions/trades.py,sha256=JBy89HPSMa-jDxIHcDfxNyWFHTjThcnSNY_OcWxZNoc,29188
288
- wbportfolio/models/transactions/transactions.py,sha256=fWoDf0TSV0L0gLUDOQpCRLzjMt1H4MUvUHGEaMsilCc,7027
284
+ wbportfolio/models/transactions/trade_proposals.py,sha256=b1VbgR91-3LFq08iNnafcTjvsDboimU7ZRpf5jtQk7w,32234
285
+ wbportfolio/models/transactions/trades.py,sha256=ccEtPxqHUcTizQFd6vpe06mXIgDsLGsZEoeB3SssSdo,31231
286
+ wbportfolio/models/transactions/transactions.py,sha256=XTcUeMUfkf5XTSZaR2UAyGqCVkOhQYk03_vzHLIgf8Q,3807
289
287
  wbportfolio/pms/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
290
288
  wbportfolio/pms/typing.py,sha256=b2pBWYt1E8ok-Kqm0lEFIakSnWJ6Ib57z-VX3C3gkQc,6081
291
289
  wbportfolio/pms/analytics/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -343,15 +341,13 @@ wbportfolio/serializers/rebalancing.py,sha256=PloLwOcgDfsna3-LRGLFQ4eYJvlMbhI0rk
343
341
  wbportfolio/serializers/reconciliations.py,sha256=oFvGCAGioAOBK3xXjfwjMVYOXv3AbSyMg6YK6Olp6ow,7373
344
342
  wbportfolio/serializers/registers.py,sha256=zhdKH_mHEBE0VOhm6xpY54bTMtcSaY5BskEaJxtFd5Q,2737
345
343
  wbportfolio/serializers/roles.py,sha256=T-9NqTldpvaEMFy-Bib5MB6MeboygEOqcMP61mzzD3Q,2146
346
- wbportfolio/serializers/signals.py,sha256=1rf3EPmDAPCuUUEmg9A2Z8d1nHSz_mw4EnuLYg8cqvA,7277
347
- wbportfolio/serializers/transactions/__init__.py,sha256=5ekvvAKnuEt8eBQfIhJ2ZXosWuHSEQvxEZWfDiPGbdw,896
344
+ wbportfolio/serializers/signals.py,sha256=BeOXZFCt_gb48LUK6DKVIe4J13BIzbNGTMdUqUR4FA4,7503
345
+ wbportfolio/serializers/transactions/__init__.py,sha256=oAfidhjjCKP0exeHbzJgGuBdnKAehlAOougA4W_wI_M,719
348
346
  wbportfolio/serializers/transactions/claim.py,sha256=kC4E2RZRrpd9i8tGfoiV-gpWDk3ikR5F1Wf0v_IGIvw,11599
349
- wbportfolio/serializers/transactions/dividends.py,sha256=EULwKDumHBv4r2HsdEGZMZGFaye4dRUNNyXg6-wZXzc,520
350
- wbportfolio/serializers/transactions/expiry.py,sha256=K3XOSbCyef-xRzOjCr4Qg_YFJ_JuuiJ9u6tDS86l0hg,477
351
- wbportfolio/serializers/transactions/fees.py,sha256=uPmSWuCeoV2bwVS6RmEz3a0VRBWJHIQr0WhklYc1UAI,1068
347
+ wbportfolio/serializers/transactions/dividends.py,sha256=ADXf9cXe8rq55lC_a8vIzViGLmQ-yDXkgR54k2m-N0w,1814
348
+ wbportfolio/serializers/transactions/fees.py,sha256=3mBzs6vdfST9roeQB-bmLJhipY7i5jBtAXjoTTE-GOg,2388
352
349
  wbportfolio/serializers/transactions/trade_proposals.py,sha256=fiGpL6za5ERLtdbud5wrciCVXHX6-3SjeF8Zaa6Zhzg,3410
353
- wbportfolio/serializers/transactions/trades.py,sha256=dlUnPdj6JGk6tCPVd8pbgtsy60ME1jdDg9_6VdVEfw4,13100
354
- wbportfolio/serializers/transactions/transactions.py,sha256=O137zeCndK-nxIWSRLEj7bXbBZDGa4d6qK6pJIIYK3g,4170
350
+ wbportfolio/serializers/transactions/trades.py,sha256=Rhv0UezIpnDxWmj5v9dQECfS0un7yQUIpnkOtD6z6YY,15452
355
351
  wbportfolio/static/wbportfolio/css/macro_review.css,sha256=FAVVO8nModxwPXcTKpcfzVxBGPZGJVK1Xn-0dkSfGyc,233
356
352
  wbportfolio/static/wbportfolio/markdown/documentation/account_holding_reconciliation.md,sha256=MabxOvOne8s5gl6osDoow6-3ghaXLAYg9THWpvy6G5I,921
357
353
  wbportfolio/static/wbportfolio/markdown/documentation/aggregate_asset_position_liquidity.md,sha256=HEgXB7uqmqfty-GBCCXYxrAN-teqmxWuqDLK_liKWVc,1090
@@ -366,7 +362,7 @@ wbportfolio/templates/portfolio/email/email_base_template.html,sha256=n6DN3QV92t
366
362
  wbportfolio/templates/portfolio/email/rebalancing_report.html,sha256=Go7joPYXwF_1Q72mblOtJSw4-TbH3NqW7ww_xGBP95k,1206
367
363
  wbportfolio/templates/portfolio/macro/macro_review.html,sha256=OxliFeX9pVNKeTVTaPnfNPHmM5YxVMr77PeKC-6y0jY,2273
368
364
  wbportfolio/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
369
- wbportfolio/tests/conftest.py,sha256=zNKZJ_ymjE0M-Q5QyVYQdStSCSdO9Gy_S_jJEBC-6JY,4380
365
+ wbportfolio/tests/conftest.py,sha256=PdABpCYifzMFUg2FbpCPSsAU3qcw8qVPT6VKvpvgsic,4300
370
366
  wbportfolio/tests/signals.py,sha256=9tZczwFAcaUR5epAExCPhdRCE7duRC6WZOPe91r1TAE,5941
371
367
  wbportfolio/tests/tests.py,sha256=utTcVQI7oA7-Yo-IDM7d7BXwXNMIWpRbZNyEWqxkyL4,1033
372
368
  wbportfolio/tests/models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -375,7 +371,7 @@ wbportfolio/tests/models/test_assets.py,sha256=rb9PrPuodVEnN2LcoOqNWfsb064Ar0NF4
375
371
  wbportfolio/tests/models/test_custodians.py,sha256=WnFA4R-deVL7DSKufGE0mcFUdU05otNfGvmG4psiIh4,340
376
372
  wbportfolio/tests/models/test_customer_trades.py,sha256=50By281j-nJ43jwRWK_KxNQGv6SuimT9e_ejgu6b19o,4942
377
373
  wbportfolio/tests/models/test_dividends.py,sha256=SVkIW3OqN4-9tq1HIvJm8_8rOyNTHbJKFiN075DeGGc,162
378
- wbportfolio/tests/models/test_imports.py,sha256=B-bgiPljOvyLb8iaUGGkA8IN2JLT5GaMDwXO-yyUB1I,7999
374
+ wbportfolio/tests/models/test_imports.py,sha256=-8qWpShRxbjnUj2l7OQagMmI61xVReO3JdlaGxtuXM4,7736
379
375
  wbportfolio/tests/models/test_instrument_mixins.py,sha256=avX7a7Ovdzm_2v8JpSmrzqPo52qmIEa33c074D5KFCU,2206
380
376
  wbportfolio/tests/models/test_merge.py,sha256=sdsjiZsmR6vsUKwTa5kkvL6QTeAZqtd_EPWPI11FKGY,6497
381
377
  wbportfolio/tests/models/test_portfolio_cash_flow.py,sha256=X8dsXexsb1b0lBiuGzu40ps_Az_1UmmKT0eo1vbXH94,5792
@@ -389,9 +385,9 @@ wbportfolio/tests/models/test_splits.py,sha256=ytKcHsI_90kj1L4s8It-KEcc24rkDcElx
389
385
  wbportfolio/tests/models/utils.py,sha256=ORNJq6NMo1Za22jGZXfTfKeNEnTRlfEt_8SJ6xLaQWg,325
390
386
  wbportfolio/tests/models/transactions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
391
387
  wbportfolio/tests/models/transactions/test_claim.py,sha256=NG3BKB-FVcIDgHSJHCjImxgMM3ISVUMl24xUPmEcPec,5570
392
- wbportfolio/tests/models/transactions/test_fees.py,sha256=1gp_h_CCC4Z_cWHUgrZCjGAxYuT2u8FZdw0krDpESiY,2801
388
+ wbportfolio/tests/models/transactions/test_fees.py,sha256=tAp18x2wCNQr11LUnLtHNbBDbbX0v1DZnmW7i-cEi5Q,2423
393
389
  wbportfolio/tests/models/transactions/test_rebalancing.py,sha256=fZ5tx6kByEGXD6nhapYdvk9HOjYlmjhU2w6KlQJ6QE4,4061
394
- wbportfolio/tests/models/transactions/test_trade_proposals.py,sha256=AhPI3XEjxzZxEUSzatCs6cOBnRHRig55NnV__PYubcQ,18675
390
+ wbportfolio/tests/models/transactions/test_trade_proposals.py,sha256=UB8Dvs7nT42D_uznuLyzni7PYiY-dabLCDXmV2W_yb4,18928
395
391
  wbportfolio/tests/models/transactions/test_trades.py,sha256=vqvOqUY_uXvBp8YOKR0Wq9ycA2oeeEBhO3dzV7sbXEU,9863
396
392
  wbportfolio/tests/pms/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
397
393
  wbportfolio/tests/pms/test_analytics.py,sha256=fAuY1zcXibttFpBh2GhKVyzdYfi1kz_b7SPa9xZQXY0,1086
@@ -411,7 +407,7 @@ wbportfolio/viewsets/assets.py,sha256=Gf5QKDM7QR9MC8GJhMNzaY7NzeKV_yOQw0wktKPEc9
411
407
  wbportfolio/viewsets/assets_and_net_new_money_progression.py,sha256=Jl4vEQP4N2OFL5IGBXoKcj-0qaPviU0I8npvQLw4Io0,4464
412
408
  wbportfolio/viewsets/custodians.py,sha256=CTFqkqVP1R3AV7lhdvcdICxB5DfwDYCyikNSI5kbYEo,2322
413
409
  wbportfolio/viewsets/esg.py,sha256=27MxxdXQH3Cq_1UEYmcrF7htUOg6i81fUpbVQXAAKJI,6985
414
- wbportfolio/viewsets/mixins.py,sha256=wlwc35u4O3fKwca8IR2AgHSARyzGL0io-jGkot4QC3M,1651
410
+ wbportfolio/viewsets/mixins.py,sha256=XvIoyv0T9Gi_HCuPtjFX8IGZeuskmcL669IeKyLXlRI,1791
415
411
  wbportfolio/viewsets/portfolio_cash_flow.py,sha256=jkBfdZRQ3KsxGMJpltRjmdrZ2qEFJq5edunUUs5ju2g,1297
416
412
  wbportfolio/viewsets/portfolio_cash_targets.py,sha256=CvHlrDE8qnnnfRpTYnFu-Uu15MDbF5d5gTmEKth2S24,322
417
413
  wbportfolio/viewsets/portfolio_relationship.py,sha256=RGyvxd8NfFEs8YdqEvVD3VbrISvAO5UtCTlocSIuWQw,2109
@@ -420,7 +416,7 @@ wbportfolio/viewsets/portfolios.py,sha256=FFK8Vt7Mk5ttS9FzGcRlKhTg0suX1wa8H35h4x
420
416
  wbportfolio/viewsets/positions.py,sha256=2rzFHB_SI09rXC_EYi58G_eqvzONbk8z61JDkkjt3Ew,13207
421
417
  wbportfolio/viewsets/product_groups.py,sha256=YvmuXPPy98K1J_rz6YPsx9gNK-tCS2P-wc1uRYgfyo0,2399
422
418
  wbportfolio/viewsets/product_performance.py,sha256=dRfRgifjGS1RgZSu9uJRM0SmB7eLnNUkPuqARMO4gyo,28371
423
- wbportfolio/viewsets/products.py,sha256=1KXUDXdNmBFYjQcvJkwUCnjIOKZT0cAk_XTihMKRWvw,20459
419
+ wbportfolio/viewsets/products.py,sha256=V8UFtfqxzs67XaU1JZcJJms1WzeNPeXtNBrQuz4B5mk,20414
424
420
  wbportfolio/viewsets/reconciliations.py,sha256=tRS7UBDtMn-07uA9QqYvnCtp_mZGVeULF2OJMfHJPZk,7357
425
421
  wbportfolio/viewsets/registers.py,sha256=eOuEhW2McHsOapCKue7M4eazrJnVpCBVxImpFccq0z0,2401
426
422
  wbportfolio/viewsets/roles.py,sha256=vnzS1mlJMZS3GObrss6SfXOr3KRb-OHB1s4Msvtn7xQ,1556
@@ -428,27 +424,27 @@ wbportfolio/viewsets/signals.py,sha256=URxNz-7tKNBgvaFIE3FItfao3Md0dKQN_eVFwxxiE
428
424
  wbportfolio/viewsets/charts/__init__.py,sha256=mNSpDrsqK-afRxGBfEsfgupUc20xU-JW08FpxIyudok,71
429
425
  wbportfolio/viewsets/charts/assets.py,sha256=rZM4Ul0ZXVr7uz3SU44J5IYU7-FivjDgR1it_4ewk2o,10547
430
426
  wbportfolio/viewsets/configs/__init__.py,sha256=K5opfVQvgGwSyw3XwDGkv3lo5i9jBxOJXYhLqyCdfeQ,137
431
- wbportfolio/viewsets/configs/buttons/__init__.py,sha256=99WAr_tftIXJbQPINkwy8xKI509d1zlatDeGu0zHMjU,846
427
+ wbportfolio/viewsets/configs/buttons/__init__.py,sha256=nqXdv0VEG8MM8IKHHf2PDAulYVinCuvmic5Ru03jVBw,881
432
428
  wbportfolio/viewsets/configs/buttons/adjustments.py,sha256=sUY_3vxqP0kuqs8i5hklfboZI6QiAOrmu30eb29Xupo,492
433
429
  wbportfolio/viewsets/configs/buttons/assets.py,sha256=6HqSyUpczK66iL0Jg8BbvAJuci3jm8OsB9p9Nt_o14Q,5680
434
430
  wbportfolio/viewsets/configs/buttons/claims.py,sha256=G1GFK1jQyR9M0dyXthYA6krG2JFvHhc3D7pFh6IUQ30,3684
435
431
  wbportfolio/viewsets/configs/buttons/custodians.py,sha256=AE-VFahGreSlg5nejqQVvOy2JvpclXbgSD6bxsyqI_U,3317
436
432
  wbportfolio/viewsets/configs/buttons/fees.py,sha256=8z-qo5krw4x_9ujp0s8iR8iY8_5m-wusPNaQkjMxFSA,443
437
- wbportfolio/viewsets/configs/buttons/mixins.py,sha256=B6Yr5ASX_gnAwJPmSjuzI61Wcv9i2L6HIPSRXdhGf54,3173
433
+ wbportfolio/viewsets/configs/buttons/mixins.py,sha256=d2W3IOgmi3icTMeoO_ckec2oCXA_kiG6nOriMG7YHTI,3169
438
434
  wbportfolio/viewsets/configs/buttons/portfolios.py,sha256=y1sqYJwhQG9M0AgUEY8yEE3VTdhhVxoup3YBc2IRm-U,5267
439
435
  wbportfolio/viewsets/configs/buttons/products.py,sha256=bHOs2ftfaLbIbJ7E8yFqQqSuXCIYD6w3f3peireAUyk,1839
440
436
  wbportfolio/viewsets/configs/buttons/reconciliations.py,sha256=lw4r22GHpqKPUF1MrB6P9dOkL-FHe5iiBJ0--f8D74E,3145
441
437
  wbportfolio/viewsets/configs/buttons/registers.py,sha256=aS89TsYHql83k-NHojOrLDqtBpnpsUUO8x63PiMfrXM,445
442
438
  wbportfolio/viewsets/configs/buttons/signals.py,sha256=6sKBQI_eDvZuZR5bUUwvur5R67A3oChAGxPfayWUelE,2739
443
439
  wbportfolio/viewsets/configs/buttons/trade_proposals.py,sha256=eZBfYk5ZhancCVcu7bvRKPGBKTl_tGlgz6BZrGPpPxQ,2953
444
- wbportfolio/viewsets/configs/buttons/trades.py,sha256=X2B1l0iEIdHb3ZMf9rLVoiX_H8lSyLD12wopgumOIX4,2318
445
- wbportfolio/viewsets/configs/display/__init__.py,sha256=SmazY-YEp-Xf8G08Uz1-CzePZRCRtHrziRMIYYIGpCk,2176
440
+ wbportfolio/viewsets/configs/buttons/trades.py,sha256=bPOqqwdgadSUbU9l5aSirqr5UAMFe2AiFNsXLRsKwn8,2535
441
+ wbportfolio/viewsets/configs/display/__init__.py,sha256=jJqSCCAfw_vjbcsIkzKr39LdAZA810LUBfSH1EA7MAI,2086
446
442
  wbportfolio/viewsets/configs/display/adjustments.py,sha256=jIOEc23OCYBguLaZRlZxC916kocYT35ZV9Jsiocs9nk,3334
447
443
  wbportfolio/viewsets/configs/display/assets.py,sha256=SkWwzvrn4gOVbCThGJMV63V-iJh517qfUs4f4Wt3dBA,10573
448
444
  wbportfolio/viewsets/configs/display/claim.py,sha256=MRtEdxWjsDjt1k6O-ltM-SpPmHWBk85sCycsRgzd9jI,12041
449
445
  wbportfolio/viewsets/configs/display/custodians.py,sha256=R-tnktfY48K-8Zz-Fg_M6IXKHv42J1ZeSpom7lvYVS8,801
450
446
  wbportfolio/viewsets/configs/display/esg.py,sha256=W8uetCPN2TjHtU2kvQjKOmkq7uoaYvzX2iLN6Nz78Pk,3111
451
- wbportfolio/viewsets/configs/display/fees.py,sha256=_8HDJADh5bA5VMVPkhKObPmNNdPHWR8Oz23PEgd04F0,5834
447
+ wbportfolio/viewsets/configs/display/fees.py,sha256=eTzVWP36l9h5BtGgNPCHjQdwMePqU18-KPYT-szhW9Y,5823
452
448
  wbportfolio/viewsets/configs/display/portfolio_cash_flow.py,sha256=CS_UGhKZSXnX-0SZ0RXzbG1WMJm6NX3GUljwIa4RWBk,5025
453
449
  wbportfolio/viewsets/configs/display/portfolio_relationship.py,sha256=8DvsYWFCX29qj5wUf1wCtjlPwzKRd_E7JDuo_CopaJ0,1294
454
450
  wbportfolio/viewsets/configs/display/portfolios.py,sha256=FDL0wucfqnyehrPg_vJqZ1JJ_1S37C_TAbON165-07w,10660
@@ -462,14 +458,13 @@ wbportfolio/viewsets/configs/display/registers.py,sha256=1np75exIk5rfct6UkVN_Rnf
462
458
  wbportfolio/viewsets/configs/display/roles.py,sha256=SFUyCdxSlHZ3NsMrJmpVBSlg-XKGaEFteV89nyLMMAQ,1815
463
459
  wbportfolio/viewsets/configs/display/trade_proposals.py,sha256=sRLSUjKlarBhnTwg7tX_Juldor3beswJlyvZfFPvNEk,4315
464
460
  wbportfolio/viewsets/configs/display/trades.py,sha256=PbGI8Sjs8YMBLfeYdgXRbv_tvel2aV3dB-7oZXnLwz4,17587
465
- wbportfolio/viewsets/configs/display/transactions.py,sha256=DOM3eV1DxBwX6Iiw3C2sJamWh6A_3ZSYC9447Jc3Wmo,2586
466
- wbportfolio/viewsets/configs/endpoints/__init__.py,sha256=i4co3ypdMIPVN4qyzcxqh4i5oLeOPx3WL2SYpyHix-Y,2903
461
+ wbportfolio/viewsets/configs/endpoints/__init__.py,sha256=KR3AsSxl71VAVkYBRVowgs3PZB8vaKa34WHHUvC-2MY,2807
467
462
  wbportfolio/viewsets/configs/endpoints/adjustments.py,sha256=KRZLqv4ZeB27d-_s7Qlqj9LI3I9WFJkjc6Mw8agDueE,606
468
463
  wbportfolio/viewsets/configs/endpoints/assets.py,sha256=B8W6ATQQfT292TllE4sUDYv5wHUCo99HEqymJuMtFAc,1909
469
464
  wbportfolio/viewsets/configs/endpoints/claim.py,sha256=eslxWx41m2kRJdO1Vk799SrFi5yDRg6zqMTEzve7cKw,3282
470
465
  wbportfolio/viewsets/configs/endpoints/custodians.py,sha256=Ve7TxfvFnmvm9x0cx6taO502EVWJb23fdVT9yX3ME5o,194
471
466
  wbportfolio/viewsets/configs/endpoints/esg.py,sha256=vJA7f7k25usSec82V_fxkJZJSZszE_QtOV_UR_KDh8Q,202
472
- wbportfolio/viewsets/configs/endpoints/fees.py,sha256=883PbLzhMpzCL1dwMNOZ1UoFGQK_q-pva6ioYfCxgg0,317
467
+ wbportfolio/viewsets/configs/endpoints/fees.py,sha256=WfoUuzcJQ31zgWXOHtGw1jRevibhpV8pFQJMPDmCcJQ,313
473
468
  wbportfolio/viewsets/configs/endpoints/portfolio_relationship.py,sha256=pJ6lgtKY1kF-0WDbJT1r_C6OwOhsa1hYn-7HhLgpL7U,568
474
469
  wbportfolio/viewsets/configs/endpoints/portfolios.py,sha256=A_da7aunssyu30N9_PW6ZRcpR8bjJOe0fHpQgD-ecKY,1343
475
470
  wbportfolio/viewsets/configs/endpoints/positions.py,sha256=jZUY6kjpufBxmVkDMd7HavcarzBXMfJhdSMbbhspTLg,320
@@ -481,8 +476,7 @@ wbportfolio/viewsets/configs/endpoints/reconciliations.py,sha256=xriq1KSctxQa6AE
481
476
  wbportfolio/viewsets/configs/endpoints/roles.py,sha256=5Nwi2sdUYc85YL0wJ7SUtt87ZBTOVdFnEexUgVrmcX4,367
482
477
  wbportfolio/viewsets/configs/endpoints/trade_proposals.py,sha256=sno7SOHWjKvvF_YdgYx5KthntM--F3DX-9hsrY5vRTM,783
483
478
  wbportfolio/viewsets/configs/endpoints/trades.py,sha256=HeTPWgP8Hjx_gYjQLjdZvUAIKa8dvcBRVj_AjPi8IB4,3456
484
- wbportfolio/viewsets/configs/endpoints/transactions.py,sha256=-IrGVXAfp4kUcRMlpul0vetXA1Y8vDJ6cc-umnOjem8,440
485
- wbportfolio/viewsets/configs/menu/__init__.py,sha256=gzUpv5f8FAK1Bdhn0AhcMLJR3r9RXHRXcHg21vuvGxs,1184
479
+ wbportfolio/viewsets/configs/menu/__init__.py,sha256=3rcUt24ye5Rdzt7bpbvkUqQS6F4uy6iiHjIixPbm16I,1137
486
480
  wbportfolio/viewsets/configs/menu/adjustments.py,sha256=sQ25Jp2N8nsLSUOEJTJUBE0Y7bIPHK4Y6LE0e1OzX38,316
487
481
  wbportfolio/viewsets/configs/menu/assets.py,sha256=FkddF1_mu01e1mnkJkXPQcE0izI0Q3wU7VBFIkeT-Qw,340
488
482
  wbportfolio/viewsets/configs/menu/claim.py,sha256=Q9Gf2spOB_S41ItzAJ7D9ARowxtVrLLBTeA757nXn38,1414
@@ -499,17 +493,16 @@ wbportfolio/viewsets/configs/menu/reconciliations.py,sha256=AkIu5h2nd5JGteAWTSQF
499
493
  wbportfolio/viewsets/configs/menu/registers.py,sha256=s4TU9y5nTPWHf8ycWg-cu4mp7LvyXnUwk3PAOG7vyMw,349
500
494
  wbportfolio/viewsets/configs/menu/roles.py,sha256=rWS0SQdTgDJ2Hzyt8JdlrUCy1gjLVghzZRH61-mrP9U,642
501
495
  wbportfolio/viewsets/configs/menu/trades.py,sha256=Hkvo6Eosk0NLL5V4xk7SLgDRmnjlkjMuoZXWatFARX4,617
502
- wbportfolio/viewsets/configs/menu/transactions.py,sha256=ErSoDRsyf6PTvOjY9VRvU0cviKNQsN-_adxYR0qwMhw,301
503
496
  wbportfolio/viewsets/configs/previews/__init__.py,sha256=hzKMMlZf9hJ-p4WpCN44CzjzNYp1gKiRrGfH181gm2I,47
504
497
  wbportfolio/viewsets/configs/previews/portfolios.py,sha256=uAQfvChGcBaVW-oNyXqByjGGMupvW288-2nxpkU41Kw,523
505
- wbportfolio/viewsets/configs/titles/__init__.py,sha256=1cBWQ_xiR7eT3-YENOzIQo4ZKdxRwGwmMndNOtmNCew,2225
498
+ wbportfolio/viewsets/configs/titles/__init__.py,sha256=VuLOWzuMp-oR_90KFt1lRYdY4VSOnnGkGVgYaDTM-Fk,2163
506
499
  wbportfolio/viewsets/configs/titles/adjustments.py,sha256=ZAOkUXa1L4H5iDtoSx2etWSafC1NdYQi9fDq0HP9Tr4,671
507
500
  wbportfolio/viewsets/configs/titles/assets.py,sha256=5DamEo8U61XxhQlQW59IhjnBi2PhKRoltmdN_lxy2sI,2176
508
501
  wbportfolio/viewsets/configs/titles/assets_and_net_new_money_progression.py,sha256=867LgalhyPetkO6Kltjfy9gr20ab2p15_muXcWGzjfs,199
509
502
  wbportfolio/viewsets/configs/titles/claim.py,sha256=hbDzusUnzDdnW5ieuAgilKnozvPlDaJ4S71K4flhzNo,2473
510
503
  wbportfolio/viewsets/configs/titles/custodians.py,sha256=nP_MmnVkeYsfrtMb9PNjTdgG8hoME5v7oWJIoyJ3QoA,290
511
504
  wbportfolio/viewsets/configs/titles/esg.py,sha256=88nrt0X4XQhvv6TViRcDwvl12oNe_DA8Ijqlatxi7Hs,427
512
- wbportfolio/viewsets/configs/titles/fees.py,sha256=McDcxVcH2BVdzKA9r_F9JDM1SuEBIwdGNpNEMiQxgD0,765
505
+ wbportfolio/viewsets/configs/titles/fees.py,sha256=JyuFd15qGFQzSet0VZDIgPpW9fyYWNsi3QLbENC8Zek,567
513
506
  wbportfolio/viewsets/configs/titles/instrument_prices.py,sha256=1GTjfpCpqz-VGCHyegQBlBmgDOZVdB5NJrPU3gSvDZo,671
514
507
  wbportfolio/viewsets/configs/titles/portfolios.py,sha256=M9zN2C2M7N07N67r4uC5k6cXVWTEihfTAz5e25_mQns,1057
515
508
  wbportfolio/viewsets/configs/titles/positions.py,sha256=nHhQ5Sq8AEe3hGUozoMBm83MOVHykSNPrCN-yJknT1A,347
@@ -519,16 +512,14 @@ wbportfolio/viewsets/configs/titles/products.py,sha256=jKiMTumLrDA68oCqSFO8H-hgb
519
512
  wbportfolio/viewsets/configs/titles/registers.py,sha256=-C-YeGBhGva48oER6EIQ8CxWnaWyK3QvyISU5jYeHZI,310
520
513
  wbportfolio/viewsets/configs/titles/roles.py,sha256=9LoJa3jgenXJ5UWRlIErTzdbjpSWMKsyJZtv-eDRTK4,739
521
514
  wbportfolio/viewsets/configs/titles/trades.py,sha256=29XCLxvY0Xe3a2tjCno3tN2rRXCr9RWpbWnzurJfnYI,1986
522
- wbportfolio/viewsets/configs/titles/transactions.py,sha256=Pq9yCbEkSwidXSNsqFzQIcBuofLCSxKQNhWYZJtQ-Tg,328
523
- wbportfolio/viewsets/transactions/__init__.py,sha256=rJOaLqiVCzRW8zqxDC1ZIDQpfhSqT-OcVUPJeiqXATc,1294
515
+ wbportfolio/viewsets/transactions/__init__.py,sha256=U88Mp_ifFUu9VR9nQnN9E3bLJX47c5wM9TKwrVIMDe4,1155
524
516
  wbportfolio/viewsets/transactions/claim.py,sha256=Pb1WftoO-w-ZSTbLRhmQubhy7hgd68bjHcjLAa1s6cI,38994
525
- wbportfolio/viewsets/transactions/fees.py,sha256=7VUXIogmRrXCz_D9tvDiiTae0t5j09W9zPUzxXzBGTE,7031
517
+ wbportfolio/viewsets/transactions/fees.py,sha256=WT2bWWfgozz4_rpyTKX7dgBBTXD-gu0nlsd2Nk2Zh1Q,7028
526
518
  wbportfolio/viewsets/transactions/mixins.py,sha256=WipvJoi5hylkpD0y9VATe30WAcwIHUIroVkK10FYw7k,636
527
519
  wbportfolio/viewsets/transactions/rebalancing.py,sha256=6rIrdK0rtKL1afJ-tYfAGdQVTN2MH1kG_yCeVkmyK8k,1263
528
- wbportfolio/viewsets/transactions/trade_proposals.py,sha256=Uk-K-x4MWKzsciRveALA5Fup6zBkin0z4bIedCIqolM,5988
529
- wbportfolio/viewsets/transactions/trades.py,sha256=-yJ4j8NJTu2VWyhCq5BXGNND_925Ietoxx9k07SLVh0,21634
530
- wbportfolio/viewsets/transactions/transactions.py,sha256=ixDp-nsNA8t_A06rBCT19hOMJHy0iRmdz1XKdV1OwAs,4450
531
- wbportfolio-1.52.0.dist-info/METADATA,sha256=liB0ZaTtg5EaHhxZmbPz414KkdIs1aTiu2SXYNeGcoE,702
532
- wbportfolio-1.52.0.dist-info/WHEEL,sha256=tkmg4JIqwd9H8mL30xA7crRmoStyCtGp0VWshokd1Jc,105
533
- wbportfolio-1.52.0.dist-info/licenses/LICENSE,sha256=jvfVH0SY8_YMHlsJHKe_OajiscQDz4lpTlqT6x24sVw,172
534
- wbportfolio-1.52.0.dist-info/RECORD,,
520
+ wbportfolio/viewsets/transactions/trade_proposals.py,sha256=rCJoJSL11qpjxciX25Q5ZU3ewELyyDBUPXcj4Z88Vdg,6037
521
+ wbportfolio/viewsets/transactions/trades.py,sha256=wCyTTyVKjYuMRsrFcmwD3_yggWxCNm-mdoYzVnhGP0U,21727
522
+ wbportfolio-1.52.2.dist-info/METADATA,sha256=jNax8lH7ZVY-U-PeKFGOA93MdQFgA5en2yO1hcB6CZI,702
523
+ wbportfolio-1.52.2.dist-info/WHEEL,sha256=tkmg4JIqwd9H8mL30xA7crRmoStyCtGp0VWshokd1Jc,105
524
+ wbportfolio-1.52.2.dist-info/licenses/LICENSE,sha256=jvfVH0SY8_YMHlsJHKe_OajiscQDz4lpTlqT6x24sVw,172
525
+ wbportfolio-1.52.2.dist-info/RECORD,,
@@ -1,38 +0,0 @@
1
- from django.contrib import admin
2
-
3
- from wbportfolio.models import Transaction
4
-
5
-
6
- @admin.register(Transaction)
7
- class TransactionModelAdmin(admin.ModelAdmin):
8
- search_fields = ["portfolio__name", "underlying_instrument__computed_str"]
9
- list_filter = ("transaction_type", "portfolio")
10
- list_display = (
11
- "transaction_type",
12
- "portfolio",
13
- "underlying_instrument",
14
- "transaction_date",
15
- "currency",
16
- "currency_fx_rate",
17
- "total_value",
18
- "total_value_fx_portfolio",
19
- "import_source",
20
- )
21
- fieldsets = (
22
- (
23
- "Transaction Information",
24
- {
25
- "fields": (
26
- ("portfolio", "underlying_instrument", "transaction_type", "import_source", "external_id"),
27
- ("transaction_date", "book_date", "value_date"),
28
- ("currency", "currency_fx_rate"),
29
- ("total_value", "total_value_gross"),
30
- ("total_value_fx_portfolio", "total_value_gross_fx_portfolio"),
31
- "comment",
32
- )
33
- },
34
- ),
35
- )
36
- autocomplete_fields = ["portfolio", "underlying_instrument", "currency"]
37
- ordering = ("-transaction_date",)
38
- raw_id_fields = ["import_source"]
@@ -1,22 +0,0 @@
1
- import random
2
- from datetime import timedelta
3
-
4
- import factory
5
-
6
- from wbportfolio.models import Transaction
7
-
8
-
9
- class TransactionFactory(factory.django.DjangoModelFactory):
10
- class Meta:
11
- model = Transaction
12
-
13
- currency_fx_rate = 1.0
14
- portfolio = factory.SubFactory("wbportfolio.factories.PortfolioFactory")
15
- underlying_instrument = factory.SubFactory("wbfdm.factories.InstrumentFactory")
16
- transaction_date = factory.Faker("date_object")
17
- value_date = factory.LazyAttribute(lambda o: o.transaction_date + timedelta(days=1))
18
- currency = factory.SubFactory("wbcore.contrib.currency.factories.CurrencyFactory")
19
- total_value = factory.LazyAttribute(lambda o: random.randint(1, 1000))
20
- total_value_fx_portfolio = factory.LazyAttribute(lambda o: o.currency_fx_rate * o.total_value)
21
- total_value_gross = factory.LazyAttribute(lambda o: random.randint(1, 1000))
22
- total_value_gross_fx_portfolio = factory.LazyAttribute(lambda o: o.currency_fx_rate * o.total_value_gross)
@@ -1,99 +0,0 @@
1
- from datetime import date, timedelta
2
-
3
- from psycopg.types.range import DateRange
4
- from wbcore import filters as wb_filters
5
-
6
- from wbportfolio.models import Fees, Portfolio, Trade, Transaction
7
-
8
-
9
- def get_transaction_gte_default(field, request, view):
10
- filter_date = date.today() - timedelta(days=90)
11
- qs = Transaction.objects.none()
12
- if "instrument_id" in view.kwargs:
13
- qs = Transaction.objects.filter(underlying_instrument__id=view.kwargs["instrument_id"])
14
- elif "portfolio_id" in view.kwargs:
15
- qs = Transaction.objects.filter(portfolio__id=view.kwargs["portfolio_id"])
16
- if qs.exists():
17
- filter_date = qs.earliest("transaction_date").transaction_date
18
- return filter_date
19
-
20
-
21
- def get_transaction_underlying_type_choices(*args):
22
- models = [Fees, Trade]
23
- choices = []
24
- for model in models:
25
- for choice in model.Type.choices:
26
- choices.append(choice)
27
- return choices
28
-
29
-
30
- def get_transaction_lte_default(field, request, view):
31
- filter_date = date.today() + timedelta(days=7)
32
- qs = Transaction.objects.none()
33
- if "instrument_id" in view.kwargs:
34
- qs = Transaction.objects.filter(underlying_instrument__id=view.kwargs["instrument_id"])
35
- elif "portfolio_id" in view.kwargs:
36
- qs = Transaction.objects.filter(portfolio__id=view.kwargs["portfolio_id"])
37
- if qs.exists():
38
- filter_date = qs.latest("transaction_date").transaction_date
39
- return filter_date
40
-
41
-
42
- def get_transaction_default_date_range(*args, **kwargs):
43
- return DateRange(get_transaction_gte_default(*args, **kwargs), get_transaction_lte_default(*args, **kwargs))
44
-
45
-
46
- class TransactionFilterSet(wb_filters.FilterSet):
47
- transaction_date = wb_filters.DateRangeFilter(
48
- method=wb_filters.DateRangeFilter.base_date_range_filter_method,
49
- label="Date Range",
50
- initial=get_transaction_default_date_range,
51
- )
52
-
53
- portfolio = wb_filters.ModelChoiceFilter(
54
- label="Portfolio",
55
- queryset=Portfolio.objects.all(),
56
- endpoint=Portfolio.get_representation_endpoint(),
57
- value_key=Portfolio.get_representation_value_key(),
58
- label_key=Portfolio.get_representation_label_key(),
59
- )
60
- total_value_usd__gte = wb_filters.NumberFilter(
61
- lookup_expr="gte", field_name="total_value_usd", label="Total Value ($)"
62
- )
63
- total_value_usd__lte = wb_filters.NumberFilter(
64
- lookup_expr="lte",
65
- label="Total Value ($)",
66
- field_name="total_value_usd",
67
- )
68
-
69
- transaction_underlying_type = wb_filters.ChoiceFilter(
70
- label="Underlying Type",
71
- choices=get_transaction_underlying_type_choices(),
72
- method="filter_transaction_underlying_type",
73
- )
74
-
75
- def filter_transaction_underlying_type(self, queryset, name, value):
76
- if value:
77
- queryset = queryset.filter(transaction_underlying_type=value)
78
- return queryset
79
-
80
- class Meta:
81
- model = Transaction
82
- fields = {
83
- "transaction_type": ["exact"],
84
- "underlying_instrument": ["exact"],
85
- "currency": ["exact"],
86
- "total_value": ["gte", "exact", "lte"],
87
- "total_value_fx_portfolio": ["gte", "exact", "lte"],
88
- }
89
-
90
-
91
- class TransactionPortfolioFilterSet(TransactionFilterSet):
92
- portfolio = transaction_date__gte = transaction_date__lte = None
93
- transaction_date = wb_filters.DateFilter(
94
- label="Transaction Date",
95
- lookup_expr="exact",
96
- field_name="transaction_date",
97
- initial=get_transaction_lte_default,
98
- required=True,
99
- )
@@ -1,7 +0,0 @@
1
- from django.db import models
2
-
3
- from .transactions import ShareMixin, Transaction
4
-
5
-
6
- class Expiry(Transaction, ShareMixin, models.Model):
7
- pass
@@ -1,18 +0,0 @@
1
- from wbportfolio.models import Expiry
2
-
3
- from .transactions import (
4
- TransactionModelSerializer,
5
- TransactionRepresentationSerializer,
6
- )
7
-
8
-
9
- class ExpiryRepresentationSerializer(TransactionRepresentationSerializer):
10
- class Meta:
11
- model = Expiry
12
- fields = TransactionRepresentationSerializer.Meta.fields
13
-
14
-
15
- class ExpiryModelSerializer(TransactionModelSerializer):
16
- class Meta:
17
- model = Expiry
18
- fields = TransactionModelSerializer.Meta.fields