wbportfolio 1.46.5__tar.gz → 1.46.6__tar.gz

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 (525) hide show
  1. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/PKG-INFO +1 -1
  2. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/import_export/handlers/trade.py +3 -1
  3. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/models/transactions/trade_proposals.py +10 -3
  4. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/models/transactions/trades.py +10 -5
  5. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/pms/typing.py +6 -7
  6. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/serializers/transactions/trade_proposals.py +2 -0
  7. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/viewsets/assets.py +1 -1
  8. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/viewsets/configs/buttons/__init__.py +1 -2
  9. wbportfolio-1.46.6/wbportfolio/viewsets/configs/buttons/trade_proposals.py +66 -0
  10. wbportfolio-1.46.6/wbportfolio/viewsets/configs/buttons/trades.py +60 -0
  11. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/viewsets/transactions/trade_proposals.py +5 -0
  12. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/viewsets/transactions/trades.py +0 -2
  13. wbportfolio-1.46.5/wbportfolio/viewsets/configs/buttons/trade_proposals.py +0 -25
  14. wbportfolio-1.46.5/wbportfolio/viewsets/configs/buttons/trades.py +0 -145
  15. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/.gitignore +0 -0
  16. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/LICENSE +0 -0
  17. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/pyproject.toml +0 -0
  18. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/__init__.py +0 -0
  19. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/admin/__init__.py +0 -0
  20. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/admin/asset.py +0 -0
  21. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/admin/custodians.py +0 -0
  22. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/admin/indexes.py +0 -0
  23. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/admin/portfolio.py +0 -0
  24. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/admin/portfolio_relationships.py +0 -0
  25. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/admin/product_groups.py +0 -0
  26. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/admin/products.py +0 -0
  27. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/admin/reconciliations.py +0 -0
  28. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/admin/registers.py +0 -0
  29. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/admin/roles.py +0 -0
  30. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/admin/transactions/__init__.py +0 -0
  31. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/admin/transactions/claim.py +0 -0
  32. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/admin/transactions/dividends.py +0 -0
  33. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/admin/transactions/fees.py +0 -0
  34. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/admin/transactions/rebalancing.py +0 -0
  35. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/admin/transactions/trades.py +0 -0
  36. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/admin/transactions/transactions.py +0 -0
  37. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/analysis/__init__.py +0 -0
  38. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/analysis/claims.py +0 -0
  39. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/apps.py +0 -0
  40. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/contrib/__init__.py +0 -0
  41. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/contrib/company_portfolio/__init__.py +0 -0
  42. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/contrib/company_portfolio/admin.py +0 -0
  43. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/contrib/company_portfolio/apps.py +0 -0
  44. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/contrib/company_portfolio/configs/__init__.py +0 -0
  45. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/contrib/company_portfolio/configs/display.py +0 -0
  46. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/contrib/company_portfolio/configs/endpoints.py +0 -0
  47. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/contrib/company_portfolio/configs/previews.py +0 -0
  48. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/contrib/company_portfolio/constants.py +0 -0
  49. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/contrib/company_portfolio/dynamic_preferences_registry.py +0 -0
  50. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/contrib/company_portfolio/factories.py +0 -0
  51. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/contrib/company_portfolio/filters.py +0 -0
  52. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/contrib/company_portfolio/management.py +0 -0
  53. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/contrib/company_portfolio/migrations/0001_initial.py +0 -0
  54. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/contrib/company_portfolio/migrations/__init__.py +0 -0
  55. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/contrib/company_portfolio/models.py +0 -0
  56. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/contrib/company_portfolio/scripts.py +0 -0
  57. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/contrib/company_portfolio/serializers.py +0 -0
  58. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/contrib/company_portfolio/tasks.py +0 -0
  59. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/contrib/company_portfolio/tests/__init__.py +0 -0
  60. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/contrib/company_portfolio/tests/conftest.py +0 -0
  61. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/contrib/company_portfolio/tests/test_models.py +0 -0
  62. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/contrib/company_portfolio/urls.py +0 -0
  63. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/contrib/company_portfolio/viewsets.py +0 -0
  64. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/defaults/__init__.py +0 -0
  65. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/defaults/fees/__init__.py +0 -0
  66. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/defaults/fees/default.py +0 -0
  67. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/dynamic_preferences_registry.py +0 -0
  68. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/factories/__init__.py +0 -0
  69. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/factories/adjustments.py +0 -0
  70. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/factories/assets.py +0 -0
  71. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/factories/claim.py +0 -0
  72. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/factories/custodians.py +0 -0
  73. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/factories/dividends.py +0 -0
  74. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/factories/fees.py +0 -0
  75. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/factories/indexes.py +0 -0
  76. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/factories/portfolio_cash_flow.py +0 -0
  77. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/factories/portfolio_cash_targets.py +0 -0
  78. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/factories/portfolio_swing_pricings.py +0 -0
  79. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/factories/portfolios.py +0 -0
  80. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/factories/product_groups.py +0 -0
  81. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/factories/products.py +0 -0
  82. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/factories/rebalancing.py +0 -0
  83. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/factories/reconciliations.py +0 -0
  84. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/factories/roles.py +0 -0
  85. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/factories/trades.py +0 -0
  86. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/factories/transactions.py +0 -0
  87. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/fdm/__init__.py +0 -0
  88. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/fdm/tasks.py +0 -0
  89. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/filters/__init__.py +0 -0
  90. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/filters/assets.py +0 -0
  91. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/filters/assets_and_net_new_money_progression.py +0 -0
  92. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/filters/custodians.py +0 -0
  93. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/filters/esg.py +0 -0
  94. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/filters/performances.py +0 -0
  95. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/filters/portfolios.py +0 -0
  96. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/filters/positions.py +0 -0
  97. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/filters/products.py +0 -0
  98. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/filters/roles.py +0 -0
  99. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/filters/signals.py +0 -0
  100. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/filters/transactions/__init__.py +0 -0
  101. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/filters/transactions/claim.py +0 -0
  102. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/filters/transactions/fees.py +0 -0
  103. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/filters/transactions/mixins.py +0 -0
  104. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/filters/transactions/trades.py +0 -0
  105. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/filters/transactions/transactions.py +0 -0
  106. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/fixtures/product_factsheets.yaml +0 -0
  107. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/fixtures/wbportfolio.yaml.gz +0 -0
  108. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/fixtures/wbrisk_management.yaml.gz +0 -0
  109. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/import_export/__init__.py +0 -0
  110. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/import_export/backends/__init__.py +0 -0
  111. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/import_export/backends/refinitiv/adjustment.py +0 -0
  112. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/import_export/backends/ubs/__init__.py +0 -0
  113. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/import_export/backends/ubs/asset_position.py +0 -0
  114. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/import_export/backends/ubs/fees.py +0 -0
  115. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/import_export/backends/ubs/instrument_price.py +0 -0
  116. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/import_export/backends/ubs/mixin.py +0 -0
  117. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/import_export/backends/utils.py +0 -0
  118. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/import_export/backends/wbfdm/__init__.py +0 -0
  119. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/import_export/backends/wbfdm/adjustment.py +0 -0
  120. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/import_export/backends/wbfdm/dividend.py +0 -0
  121. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/import_export/backends/wbfdm/mixin.py +0 -0
  122. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/import_export/handlers/__init__.py +0 -0
  123. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/import_export/handlers/adjustment.py +0 -0
  124. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/import_export/handlers/asset_position.py +0 -0
  125. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/import_export/handlers/dividend.py +0 -0
  126. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/import_export/handlers/fees.py +0 -0
  127. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/import_export/handlers/portfolio_cash_flow.py +0 -0
  128. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/import_export/handlers/register.py +0 -0
  129. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/import_export/parsers/__init__.py +0 -0
  130. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/import_export/parsers/default_mapping.py +0 -0
  131. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/import_export/parsers/jpmorgan/__init__.py +0 -0
  132. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/import_export/parsers/jpmorgan/customer_trade.py +0 -0
  133. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/import_export/parsers/jpmorgan/fees.py +0 -0
  134. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/import_export/parsers/jpmorgan/strategy.py +0 -0
  135. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/import_export/parsers/jpmorgan/valuation.py +0 -0
  136. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/import_export/parsers/leonteq/__init__.py +0 -0
  137. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/import_export/parsers/leonteq/customer_trade.py +0 -0
  138. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/import_export/parsers/leonteq/equity.py +0 -0
  139. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/import_export/parsers/leonteq/fees.py +0 -0
  140. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/import_export/parsers/leonteq/trade.py +0 -0
  141. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/import_export/parsers/leonteq/valuation.py +0 -0
  142. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/import_export/parsers/natixis/__init__.py +0 -0
  143. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/import_export/parsers/natixis/customer_trade.py +0 -0
  144. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/import_export/parsers/natixis/d1_customer_trade.py +0 -0
  145. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/import_export/parsers/natixis/d1_equity.py +0 -0
  146. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/import_export/parsers/natixis/d1_fees.py +0 -0
  147. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/import_export/parsers/natixis/d1_trade.py +0 -0
  148. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/import_export/parsers/natixis/d1_valuation.py +0 -0
  149. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/import_export/parsers/natixis/dividend.py +0 -0
  150. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/import_export/parsers/natixis/equity.py +0 -0
  151. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/import_export/parsers/natixis/fees.py +0 -0
  152. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/import_export/parsers/natixis/trade.py +0 -0
  153. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/import_export/parsers/natixis/utils.py +0 -0
  154. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/import_export/parsers/natixis/valuation.py +0 -0
  155. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/import_export/parsers/refinitiv/__init__.py +0 -0
  156. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/import_export/parsers/refinitiv/adjustment.py +0 -0
  157. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/import_export/parsers/sg_lux/__init__.py +0 -0
  158. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/import_export/parsers/sg_lux/custodian_positions.py +0 -0
  159. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/import_export/parsers/sg_lux/customer_trade.py +0 -0
  160. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/import_export/parsers/sg_lux/customer_trade_pending_slk.py +0 -0
  161. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/import_export/parsers/sg_lux/customer_trade_slk.py +0 -0
  162. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/import_export/parsers/sg_lux/customer_trade_without_pw.py +0 -0
  163. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/import_export/parsers/sg_lux/equity.py +0 -0
  164. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/import_export/parsers/sg_lux/fees.py +0 -0
  165. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/import_export/parsers/sg_lux/perf_fees.py +0 -0
  166. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/import_export/parsers/sg_lux/portfolio_cash_flow.py +0 -0
  167. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/import_export/parsers/sg_lux/portfolio_future_cash_flow.py +0 -0
  168. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/import_export/parsers/sg_lux/registers.py +0 -0
  169. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/import_export/parsers/sg_lux/sylk.py +0 -0
  170. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/import_export/parsers/sg_lux/utils.py +0 -0
  171. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/import_export/parsers/sg_lux/valuation.py +0 -0
  172. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/import_export/parsers/societe_generale/__init__.py +0 -0
  173. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/import_export/parsers/societe_generale/customer_trade.py +0 -0
  174. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/import_export/parsers/societe_generale/strategy.py +0 -0
  175. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/import_export/parsers/societe_generale/valuation.py +0 -0
  176. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/import_export/parsers/tellco/__init__.py +0 -0
  177. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/import_export/parsers/tellco/customer_trade.py +0 -0
  178. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/import_export/parsers/tellco/equity.py +0 -0
  179. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/import_export/parsers/tellco/valuation.py +0 -0
  180. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/import_export/parsers/ubs/__init__.py +0 -0
  181. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/import_export/parsers/ubs/api/__init__.py +0 -0
  182. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/import_export/parsers/ubs/api/asset_position.py +0 -0
  183. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/import_export/parsers/ubs/api/fees.py +0 -0
  184. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/import_export/parsers/ubs/api/instrument_price.py +0 -0
  185. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/import_export/parsers/ubs/api/utils.py +0 -0
  186. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/import_export/parsers/ubs/customer_trade.py +0 -0
  187. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/import_export/parsers/ubs/equity.py +0 -0
  188. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/import_export/parsers/ubs/historical_customer_trade.py +0 -0
  189. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/import_export/parsers/ubs/valuation.py +0 -0
  190. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/import_export/parsers/vontobel/__init__.py +0 -0
  191. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/import_export/parsers/vontobel/asset_position.py +0 -0
  192. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/import_export/parsers/vontobel/customer_trade.py +0 -0
  193. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/import_export/parsers/vontobel/historical_customer_trade.py +0 -0
  194. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/import_export/parsers/vontobel/instrument.py +0 -0
  195. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/import_export/parsers/vontobel/management_fees.py +0 -0
  196. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/import_export/parsers/vontobel/performance_fees.py +0 -0
  197. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/import_export/parsers/vontobel/trade.py +0 -0
  198. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/import_export/parsers/vontobel/utils.py +0 -0
  199. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/import_export/parsers/vontobel/valuation.py +0 -0
  200. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/import_export/parsers/vontobel/valuation_api.py +0 -0
  201. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/import_export/resources/__init__.py +0 -0
  202. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/import_export/resources/assets.py +0 -0
  203. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/import_export/resources/trades.py +0 -0
  204. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/import_export/utils.py +0 -0
  205. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/jinja2/wbportfolio/sql/aum_nnm.sql +0 -0
  206. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/kpi_handlers/nnm.py +0 -0
  207. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/metric/__init__.py +0 -0
  208. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/metric/backends/__init__.py +0 -0
  209. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/metric/backends/base.py +0 -0
  210. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/metric/backends/constants.py +0 -0
  211. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/metric/backends/portfolio_base.py +0 -0
  212. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/metric/backends/portfolio_esg.py +0 -0
  213. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/metric/tests/__init__.py +0 -0
  214. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/metric/tests/conftest.py +0 -0
  215. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/metric/tests/test_portfolio_base.py +0 -0
  216. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/metric/tests/test_portfolio_esg.py +0 -0
  217. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/migrations/0001_initial_squashed.py +0 -0
  218. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/migrations/0002_product_default_sub_account_squashed_0039_alter_assetallocation_company_and_more.py +0 -0
  219. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/migrations/0040_instrument_financial_instrument.py +0 -0
  220. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/migrations/0041_remove_listresearch_research_ptr_and_more.py +0 -0
  221. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/migrations/0042_instrumentlist_instrumentlistthroughmodel_and_more.py +0 -0
  222. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/migrations/0043_alter_instrumentlistthroughmodel_options_and_more.py +0 -0
  223. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/migrations/0044_alter_instrumentlist_identifier.py +0 -0
  224. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/migrations/0045_alter_instrument_financial_instrument.py +0 -0
  225. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/migrations/0046_add_product_default_account.py +0 -0
  226. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/migrations/0047_remove_product_default_sub_account.py +0 -0
  227. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/migrations/0048_alter_trade_status.py +0 -0
  228. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/migrations/0049_trade_claimed_shares.py +0 -0
  229. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/migrations/0050_fees_fee_date_fees_wbportfolio_transac_1f7a29_idx.py +0 -0
  230. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/migrations/0051_delete_macroreview.py +0 -0
  231. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/migrations/0052_remove_cash_instrument_ptr_and_more.py +0 -0
  232. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/migrations/0053_remove_product_group.py +0 -0
  233. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/migrations/0054_portfolioinstrumentpreferredclassificationthroughmodel_and_more.py +0 -0
  234. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/migrations/0055_remove_product__custom_management_rebates_and_more.py +0 -0
  235. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/migrations/0056_remove_companyportfoliodata_assets_under_management_currency_and_more.py +0 -0
  236. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/migrations/0057_alter_portfolio_preferred_instrument_classifications_and_more.py +0 -0
  237. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/migrations/0058_pmsinstrument.py +0 -0
  238. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/migrations/0059_fees_unique_fees.py +0 -0
  239. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/migrations/0060_alter_portfolioportfoliothroughmodel_type.py +0 -0
  240. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/migrations/0061_portfolio_bank_accounts_product_bank_account_and_more.py +0 -0
  241. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/migrations/0062_alter_dailyportfoliocashflow_options.py +0 -0
  242. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/migrations/0063_accountreconciliation_accountreconciliationline_and_more.py +0 -0
  243. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/migrations/0064_alter_portfolio_managers_portfolio_is_tracked_and_more.py +0 -0
  244. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/migrations/0065_alter_portfolio_managers_claim_as_shares_and_more.py +0 -0
  245. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/migrations/0066_assetposition_initial_shares_at_custodian_and_more.py +0 -0
  246. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/migrations/0067_assetposition_unique_asset_position.py +0 -0
  247. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/migrations/0068_trade_internal_trade_trade_marked_as_internal_and_more.py +0 -0
  248. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/migrations/0069_remove_portfolio_is_invested_and_more.py +0 -0
  249. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/migrations/0070_remove_assetposition_unique_asset_position_and_more.py +0 -0
  250. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/migrations/0071_alter_trade_options_alter_trade_order.py +0 -0
  251. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/migrations/0072_trade_diff_shares.py +0 -0
  252. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/migrations/0073_remove_product_price_computation_and_more.py +0 -0
  253. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/migrations/0074_alter_rebalancer_frequency_and_more.py +0 -0
  254. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/migrations/__init__.py +0 -0
  255. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/models/__init__.py +0 -0
  256. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/models/adjustments.py +0 -0
  257. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/models/asset.py +0 -0
  258. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/models/custodians.py +0 -0
  259. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/models/graphs/__init__.py +0 -0
  260. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/models/graphs/portfolio.py +0 -0
  261. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/models/graphs/utils.py +0 -0
  262. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/models/indexes.py +0 -0
  263. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/models/llm/wbcrm/analyze_relationship.py +0 -0
  264. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/models/mixins/__init__.py +0 -0
  265. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/models/mixins/instruments.py +0 -0
  266. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/models/mixins/liquidity_stress_test.py +0 -0
  267. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/models/portfolio.py +0 -0
  268. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/models/portfolio_cash_flow.py +0 -0
  269. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/models/portfolio_cash_targets.py +0 -0
  270. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/models/portfolio_relationship.py +0 -0
  271. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/models/portfolio_swing_pricings.py +0 -0
  272. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/models/product_groups.py +0 -0
  273. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/models/products.py +0 -0
  274. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/models/reconciliations/__init__.py +0 -0
  275. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/models/reconciliations/account_reconciliation_lines.py +0 -0
  276. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/models/reconciliations/account_reconciliations.py +0 -0
  277. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/models/reconciliations/reconciliations.py +0 -0
  278. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/models/registers.py +0 -0
  279. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/models/roles.py +0 -0
  280. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/models/transactions/__init__.py +0 -0
  281. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/models/transactions/claim.py +0 -0
  282. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/models/transactions/dividends.py +0 -0
  283. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/models/transactions/expiry.py +0 -0
  284. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/models/transactions/fees.py +0 -0
  285. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/models/transactions/rebalancing.py +0 -0
  286. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/models/transactions/transactions.py +0 -0
  287. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/models/utils.py +0 -0
  288. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/permissions.py +0 -0
  289. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/pms/__init__.py +0 -0
  290. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/pms/analytics/__init__.py +0 -0
  291. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/pms/analytics/portfolio.py +0 -0
  292. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/pms/statistics/__init__.py +0 -0
  293. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/pms/trading/__init__.py +0 -0
  294. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/pms/trading/handler.py +0 -0
  295. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/preferences.py +0 -0
  296. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/rebalancing/__init__.py +0 -0
  297. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/rebalancing/base.py +0 -0
  298. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/rebalancing/decorators.py +0 -0
  299. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/rebalancing/models/__init__.py +0 -0
  300. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/rebalancing/models/composite.py +0 -0
  301. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/rebalancing/models/equally_weighted.py +0 -0
  302. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/rebalancing/models/market_capitalization_weighted.py +0 -0
  303. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/rebalancing/models/model_portfolio.py +0 -0
  304. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/reports/__init__.py +0 -0
  305. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/reports/monthly_position_report.py +0 -0
  306. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/risk_management/__init__.py +0 -0
  307. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/risk_management/backends/__init__.py +0 -0
  308. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/risk_management/backends/accounts.py +0 -0
  309. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/risk_management/backends/controversy_portfolio.py +0 -0
  310. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/risk_management/backends/exposure_portfolio.py +0 -0
  311. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/risk_management/backends/instrument_list_portfolio.py +0 -0
  312. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/risk_management/backends/liquidity_risk.py +0 -0
  313. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/risk_management/backends/liquidity_stress_instrument.py +0 -0
  314. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/risk_management/backends/mixins.py +0 -0
  315. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/risk_management/backends/product_integrity.py +0 -0
  316. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/risk_management/backends/stop_loss_instrument.py +0 -0
  317. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/risk_management/backends/stop_loss_portfolio.py +0 -0
  318. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/risk_management/backends/ucits_portfolio.py +0 -0
  319. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/risk_management/tests/__init__.py +0 -0
  320. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/risk_management/tests/conftest.py +0 -0
  321. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/risk_management/tests/test_accounts.py +0 -0
  322. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/risk_management/tests/test_controversy_portfolio.py +0 -0
  323. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/risk_management/tests/test_exposure_portfolio.py +0 -0
  324. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/risk_management/tests/test_instrument_list_portfolio.py +0 -0
  325. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/risk_management/tests/test_liquidity_risk.py +0 -0
  326. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/risk_management/tests/test_product_integrity.py +0 -0
  327. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/risk_management/tests/test_stop_loss_instrument.py +0 -0
  328. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/risk_management/tests/test_stop_loss_portfolio.py +0 -0
  329. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/risk_management/tests/test_ucits_portfolio.py +0 -0
  330. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/serializers/__init__.py +0 -0
  331. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/serializers/adjustments.py +0 -0
  332. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/serializers/assets.py +0 -0
  333. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/serializers/custodians.py +0 -0
  334. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/serializers/portfolio_cash_flow.py +0 -0
  335. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/serializers/portfolio_cash_targets.py +0 -0
  336. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/serializers/portfolio_relationship.py +0 -0
  337. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/serializers/portfolio_swing_pricing.py +0 -0
  338. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/serializers/portfolios.py +0 -0
  339. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/serializers/positions.py +0 -0
  340. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/serializers/product_group.py +0 -0
  341. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/serializers/products.py +0 -0
  342. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/serializers/rebalancing.py +0 -0
  343. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/serializers/reconciliations.py +0 -0
  344. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/serializers/registers.py +0 -0
  345. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/serializers/roles.py +0 -0
  346. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/serializers/signals.py +0 -0
  347. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/serializers/transactions/__init__.py +0 -0
  348. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/serializers/transactions/claim.py +0 -0
  349. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/serializers/transactions/dividends.py +0 -0
  350. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/serializers/transactions/expiry.py +0 -0
  351. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/serializers/transactions/fees.py +0 -0
  352. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/serializers/transactions/trades.py +0 -0
  353. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/serializers/transactions/transactions.py +0 -0
  354. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/static/wbportfolio/css/macro_review.css +0 -0
  355. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/static/wbportfolio/markdown/documentation/account_holding_reconciliation.md +0 -0
  356. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/static/wbportfolio/markdown/documentation/aggregate_asset_position_liquidity.md +0 -0
  357. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/static/wbportfolio/markdown/documentation/company.md +0 -0
  358. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/static/wbportfolio/markdown/documentation/earnings_instrument.md +0 -0
  359. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/static/wbportfolio/markdown/documentation/financial_analysis_instrument_ratios.md +0 -0
  360. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/static/wbportfolio/markdown/documentation/financial_statistics.md +0 -0
  361. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/static/wbportfolio/markdown/documentation/person.md +0 -0
  362. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/tasks.py +0 -0
  363. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/templates/portfolio/email/customer_report.html +0 -0
  364. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/templates/portfolio/email/customer_trade_notification.html +0 -0
  365. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/templates/portfolio/email/email_base_template.html +0 -0
  366. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/templates/portfolio/email/rebalancing_report.html +0 -0
  367. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/templates/portfolio/macro/macro_review.html +0 -0
  368. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/tests/__init__.py +0 -0
  369. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/tests/conftest.py +0 -0
  370. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/tests/models/__init__.py +0 -0
  371. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/tests/models/test_account_reconciliation.py +0 -0
  372. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/tests/models/test_assets.py +0 -0
  373. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/tests/models/test_custodians.py +0 -0
  374. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/tests/models/test_customer_trades.py +0 -0
  375. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/tests/models/test_dividends.py +0 -0
  376. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/tests/models/test_imports.py +0 -0
  377. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/tests/models/test_instrument_mixins.py +0 -0
  378. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/tests/models/test_merge.py +0 -0
  379. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/tests/models/test_portfolio_cash_flow.py +0 -0
  380. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/tests/models/test_portfolio_cash_targets.py +0 -0
  381. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/tests/models/test_portfolio_swing_pricings.py +0 -0
  382. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/tests/models/test_portfolios.py +0 -0
  383. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/tests/models/test_product_groups.py +0 -0
  384. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/tests/models/test_products.py +0 -0
  385. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/tests/models/test_roles.py +0 -0
  386. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/tests/models/test_splits.py +0 -0
  387. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/tests/models/transactions/__init__.py +0 -0
  388. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/tests/models/transactions/test_claim.py +0 -0
  389. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/tests/models/transactions/test_fees.py +0 -0
  390. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/tests/models/transactions/test_rebalancing.py +0 -0
  391. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/tests/models/transactions/test_trades.py +0 -0
  392. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/tests/models/utils.py +0 -0
  393. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/tests/pms/__init__.py +0 -0
  394. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/tests/pms/test_analytics.py +0 -0
  395. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/tests/rebalancing/__init__.py +0 -0
  396. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/tests/rebalancing/test_models.py +0 -0
  397. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/tests/serializers/__init__.py +0 -0
  398. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/tests/serializers/test_claims.py +0 -0
  399. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/tests/signals.py +0 -0
  400. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/tests/tests.py +0 -0
  401. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/tests/viewsets/__init__.py +0 -0
  402. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/tests/viewsets/test_assets.py +0 -0
  403. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/tests/viewsets/test_performances.py +0 -0
  404. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/tests/viewsets/test_products.py +0 -0
  405. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/tests/viewsets/transactions/__init__.py +0 -0
  406. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/tests/viewsets/transactions/test_claims.py +0 -0
  407. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/urls.py +0 -0
  408. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/utils.py +0 -0
  409. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/viewsets/__init__.py +0 -0
  410. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/viewsets/adjustments.py +0 -0
  411. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/viewsets/assets_and_net_new_money_progression.py +0 -0
  412. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/viewsets/charts/__init__.py +0 -0
  413. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/viewsets/charts/assets.py +0 -0
  414. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/viewsets/configs/__init__.py +0 -0
  415. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/viewsets/configs/buttons/adjustments.py +0 -0
  416. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/viewsets/configs/buttons/assets.py +0 -0
  417. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/viewsets/configs/buttons/claims.py +0 -0
  418. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/viewsets/configs/buttons/custodians.py +0 -0
  419. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/viewsets/configs/buttons/fees.py +0 -0
  420. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/viewsets/configs/buttons/mixins.py +0 -0
  421. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/viewsets/configs/buttons/portfolios.py +0 -0
  422. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/viewsets/configs/buttons/products.py +0 -0
  423. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/viewsets/configs/buttons/reconciliations.py +0 -0
  424. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/viewsets/configs/buttons/registers.py +0 -0
  425. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/viewsets/configs/buttons/signals.py +0 -0
  426. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/viewsets/configs/display/__init__.py +0 -0
  427. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/viewsets/configs/display/adjustments.py +0 -0
  428. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/viewsets/configs/display/assets.py +0 -0
  429. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/viewsets/configs/display/claim.py +0 -0
  430. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/viewsets/configs/display/custodians.py +0 -0
  431. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/viewsets/configs/display/esg.py +0 -0
  432. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/viewsets/configs/display/fees.py +0 -0
  433. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/viewsets/configs/display/portfolio_cash_flow.py +0 -0
  434. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/viewsets/configs/display/portfolio_relationship.py +0 -0
  435. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/viewsets/configs/display/portfolios.py +0 -0
  436. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/viewsets/configs/display/positions.py +0 -0
  437. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/viewsets/configs/display/product_groups.py +0 -0
  438. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/viewsets/configs/display/product_performance.py +0 -0
  439. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/viewsets/configs/display/products.py +0 -0
  440. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/viewsets/configs/display/rebalancing.py +0 -0
  441. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/viewsets/configs/display/reconciliations.py +0 -0
  442. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/viewsets/configs/display/registers.py +0 -0
  443. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/viewsets/configs/display/roles.py +0 -0
  444. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/viewsets/configs/display/trade_proposals.py +0 -0
  445. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/viewsets/configs/display/trades.py +0 -0
  446. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/viewsets/configs/display/transactions.py +0 -0
  447. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/viewsets/configs/endpoints/__init__.py +0 -0
  448. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/viewsets/configs/endpoints/adjustments.py +0 -0
  449. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/viewsets/configs/endpoints/assets.py +0 -0
  450. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/viewsets/configs/endpoints/claim.py +0 -0
  451. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/viewsets/configs/endpoints/custodians.py +0 -0
  452. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/viewsets/configs/endpoints/esg.py +0 -0
  453. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/viewsets/configs/endpoints/fees.py +0 -0
  454. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/viewsets/configs/endpoints/portfolio_relationship.py +0 -0
  455. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/viewsets/configs/endpoints/portfolios.py +0 -0
  456. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/viewsets/configs/endpoints/positions.py +0 -0
  457. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/viewsets/configs/endpoints/product_groups.py +0 -0
  458. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/viewsets/configs/endpoints/product_performance.py +0 -0
  459. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/viewsets/configs/endpoints/products.py +0 -0
  460. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/viewsets/configs/endpoints/rebalancing.py +0 -0
  461. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/viewsets/configs/endpoints/reconciliations.py +0 -0
  462. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/viewsets/configs/endpoints/roles.py +0 -0
  463. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/viewsets/configs/endpoints/trade_proposals.py +0 -0
  464. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/viewsets/configs/endpoints/trades.py +0 -0
  465. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/viewsets/configs/endpoints/transactions.py +0 -0
  466. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/viewsets/configs/menu/__init__.py +0 -0
  467. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/viewsets/configs/menu/adjustments.py +0 -0
  468. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/viewsets/configs/menu/assets.py +0 -0
  469. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/viewsets/configs/menu/claim.py +0 -0
  470. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/viewsets/configs/menu/custodians.py +0 -0
  471. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/viewsets/configs/menu/fees.py +0 -0
  472. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/viewsets/configs/menu/instrument_prices.py +0 -0
  473. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/viewsets/configs/menu/portfolio_cash_flow.py +0 -0
  474. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/viewsets/configs/menu/portfolios.py +0 -0
  475. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/viewsets/configs/menu/positions.py +0 -0
  476. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/viewsets/configs/menu/product_groups.py +0 -0
  477. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/viewsets/configs/menu/product_performance.py +0 -0
  478. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/viewsets/configs/menu/products.py +0 -0
  479. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/viewsets/configs/menu/reconciliations.py +0 -0
  480. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/viewsets/configs/menu/registers.py +0 -0
  481. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/viewsets/configs/menu/roles.py +0 -0
  482. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/viewsets/configs/menu/trades.py +0 -0
  483. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/viewsets/configs/menu/transactions.py +0 -0
  484. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/viewsets/configs/previews/__init__.py +0 -0
  485. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/viewsets/configs/previews/portfolios.py +0 -0
  486. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/viewsets/configs/titles/__init__.py +0 -0
  487. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/viewsets/configs/titles/adjustments.py +0 -0
  488. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/viewsets/configs/titles/assets.py +0 -0
  489. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/viewsets/configs/titles/assets_and_net_new_money_progression.py +0 -0
  490. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/viewsets/configs/titles/claim.py +0 -0
  491. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/viewsets/configs/titles/custodians.py +0 -0
  492. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/viewsets/configs/titles/esg.py +0 -0
  493. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/viewsets/configs/titles/fees.py +0 -0
  494. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/viewsets/configs/titles/instrument_prices.py +0 -0
  495. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/viewsets/configs/titles/portfolios.py +0 -0
  496. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/viewsets/configs/titles/positions.py +0 -0
  497. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/viewsets/configs/titles/product_groups.py +0 -0
  498. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/viewsets/configs/titles/product_performance.py +0 -0
  499. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/viewsets/configs/titles/products.py +0 -0
  500. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/viewsets/configs/titles/registers.py +0 -0
  501. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/viewsets/configs/titles/roles.py +0 -0
  502. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/viewsets/configs/titles/trades.py +0 -0
  503. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/viewsets/configs/titles/transactions.py +0 -0
  504. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/viewsets/custodians.py +0 -0
  505. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/viewsets/esg.py +0 -0
  506. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/viewsets/mixins.py +0 -0
  507. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/viewsets/portfolio_cash_flow.py +0 -0
  508. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/viewsets/portfolio_cash_targets.py +0 -0
  509. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/viewsets/portfolio_relationship.py +0 -0
  510. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/viewsets/portfolio_swing_pricing.py +0 -0
  511. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/viewsets/portfolios.py +0 -0
  512. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/viewsets/positions.py +0 -0
  513. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/viewsets/product_groups.py +0 -0
  514. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/viewsets/product_performance.py +0 -0
  515. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/viewsets/products.py +0 -0
  516. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/viewsets/reconciliations.py +0 -0
  517. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/viewsets/registers.py +0 -0
  518. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/viewsets/roles.py +0 -0
  519. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/viewsets/signals.py +0 -0
  520. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/viewsets/transactions/__init__.py +0 -0
  521. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/viewsets/transactions/claim.py +0 -0
  522. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/viewsets/transactions/fees.py +0 -0
  523. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/viewsets/transactions/mixins.py +0 -0
  524. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/viewsets/transactions/rebalancing.py +0 -0
  525. {wbportfolio-1.46.5 → wbportfolio-1.46.6}/wbportfolio/viewsets/transactions/transactions.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: wbportfolio
3
- Version: 1.46.5
3
+ Version: 1.46.6
4
4
  Author-email: Christopher Wittlinger <c.wittlinger@stainly.com>
5
5
  License-File: LICENSE
6
6
  Requires-Dist: cryptography==3.4.*
@@ -144,7 +144,9 @@ class TradeImportHandler(ImportExportHandler):
144
144
 
145
145
  def _get_history(self, history: Dict[str, Any]) -> models.QuerySet:
146
146
  if trade_proposal_id := history.get("trade_proposal_id"):
147
- trades = self.model.objects.filter(trade_proposal_id=trade_proposal_id)
147
+ # if a trade proposal is provided, we delete the existing history first as otherwise, it would mess with the target weight computation
148
+ self.model.objects.filter(trade_proposal_id=trade_proposal_id).delete()
149
+ trades = self.model.objects.none()
148
150
  else:
149
151
  trades = self.model.objects.filter(
150
152
  exclude_from_history=False,
@@ -184,14 +184,21 @@ class TradeProposal(RiskCheckMixin, WBModel):
184
184
  service = TradingService(self.trade_date, trades_batch=self._build_dto())
185
185
  service.normalize()
186
186
  leftovers_trades = self.trades.all()
187
- for _, trade in service.trades_batch.trades_map.items():
187
+ total_target_weight = Decimal("0.0")
188
+ for underlying_instrument_id, trade_dto in service.trades_batch.trades_map.items():
188
189
  with suppress(Trade.DoesNotExist):
189
- trade = Trade.objects.get(id=trade.id)
190
- trade.weighting = trade.delta_weight
190
+ trade = self.trades.get(underlying_instrument_id=underlying_instrument_id)
191
+ trade.weighting = round(trade_dto.delta_weight, 6)
191
192
  trade.shares = self.estimate_shares(trade)
192
193
  trade.save()
194
+ total_target_weight += trade._target_weight
193
195
  leftovers_trades = leftovers_trades.exclude(id=trade.id)
194
196
  leftovers_trades.delete()
197
+ # we handle quantization error due to the decimal max digits. In that case, we take the biggest trade (highest weight) and we remove the quantization error
198
+ if quantize_error := (total_target_weight - Decimal("1.0")):
199
+ biggest_trade = self.trades.latest("weighting")
200
+ biggest_trade.weighting -= quantize_error
201
+ biggest_trade.save()
195
202
 
196
203
  def _get_target_portfolio(self, **kwargs) -> PortfolioDTO:
197
204
  if self.rebalancing_model:
@@ -406,7 +406,7 @@ class Trade(ShareMixin, Transaction, OrderedModel, WBModel):
406
406
  except Product.DoesNotExist:
407
407
  return None
408
408
 
409
- @cached_property
409
+ @property
410
410
  @admin.display(description="Last Effective Date")
411
411
  def _last_effective_date(self) -> date:
412
412
  if hasattr(self, "last_effective_date"):
@@ -420,7 +420,7 @@ class Trade(ShareMixin, Transaction, OrderedModel, WBModel):
420
420
  ).exists():
421
421
  return assets.latest("date").date
422
422
 
423
- @cached_property
423
+ @property
424
424
  @admin.display(description="Effective Weight")
425
425
  def _effective_weight(self) -> Decimal:
426
426
  return getattr(
@@ -434,7 +434,7 @@ class Trade(ShareMixin, Transaction, OrderedModel, WBModel):
434
434
  or Decimal(0),
435
435
  )
436
436
 
437
- @cached_property
437
+ @property
438
438
  @admin.display(description="Effective Shares")
439
439
  def _effective_shares(self) -> Decimal:
440
440
  return getattr(
@@ -448,12 +448,12 @@ class Trade(ShareMixin, Transaction, OrderedModel, WBModel):
448
448
  or Decimal(0),
449
449
  )
450
450
 
451
- @cached_property
451
+ @property
452
452
  @admin.display(description="Target Weight")
453
453
  def _target_weight(self) -> Decimal:
454
454
  return getattr(self, "target_weight", self._effective_weight + self.weighting)
455
455
 
456
- @cached_property
456
+ @property
457
457
  @admin.display(description="Target Shares")
458
458
  def _target_shares(self) -> Decimal:
459
459
  return getattr(self, "target_shares", self._effective_shares + self.shares)
@@ -483,6 +483,11 @@ class Trade(ShareMixin, Transaction, OrderedModel, WBModel):
483
483
  ]
484
484
  # notification_email_template = "portfolio/email/trade_notification.html"
485
485
 
486
+ def __init__(self, *args, target_weight: Decimal | None = None, **kwargs):
487
+ super().__init__(*args, **kwargs)
488
+ if target_weight is not None: # if target weight is provided, we guess the corresponding weighting
489
+ self.weighting = Decimal(target_weight) - self._effective_weight
490
+
486
491
  def save(self, *args, **kwargs):
487
492
  if self.trade_proposal:
488
493
  self.portfolio = self.trade_proposal.portfolio
@@ -4,7 +4,6 @@ from decimal import Decimal
4
4
 
5
5
  import pandas as pd
6
6
  from django.core.exceptions import ValidationError
7
- from django.utils.functional import cached_property
8
7
 
9
8
 
10
9
  @dataclass(frozen=True)
@@ -60,11 +59,11 @@ class Portfolio:
60
59
  positions_map[pos.underlying_instrument] = pos
61
60
  object.__setattr__(self, "positions_map", positions_map)
62
61
 
63
- @cached_property
62
+ @property
64
63
  def total_weight(self):
65
64
  return round(sum([pos.weighting for pos in self.positions]), 6)
66
65
 
67
- @cached_property
66
+ @property
68
67
  def total_shares(self):
69
68
  return sum([pos.target_shares for pos in self.positions if pos.target_shares is not None])
70
69
 
@@ -108,7 +107,7 @@ class Trade:
108
107
  },
109
108
  )
110
109
 
111
- @cached_property
110
+ @property
112
111
  def delta_weight(self) -> Decimal:
113
112
  return self.target_weight - self.effective_weight
114
113
 
@@ -141,15 +140,15 @@ class TradeBatch:
141
140
  trade_map[trade.underlying_instrument] = trade
142
141
  object.__setattr__(self, "trades_map", trade_map)
143
142
 
144
- @cached_property
143
+ @property
145
144
  def total_target_weight(self) -> Decimal:
146
145
  return round(sum([trade.target_weight for trade in self.trades]), 6)
147
146
 
148
- @cached_property
147
+ @property
149
148
  def total_effective_weight(self) -> Decimal:
150
149
  return round(sum([trade.effective_weight for trade in self.trades]), 6)
151
150
 
152
- @cached_property
151
+ @property
153
152
  def totat_abs_delta_weight(self) -> Decimal:
154
153
  return sum([abs(trade.delta_weight) for trade in self.trades])
155
154
 
@@ -56,6 +56,8 @@ class TradeProposalModelSerializer(wb_serializers.ModelSerializer):
56
56
  res["replay"] = reverse("wbportfolio:tradeproposal-replay", args=[instance.id], request=request)
57
57
  if instance.status == TradeProposal.Status.DRAFT:
58
58
  res["reset"] = reverse("wbportfolio:tradeproposal-reset", args=[instance.id], request=request)
59
+ res["normalize"] = reverse("wbportfolio:tradeproposal-normalize", args=[instance.id], request=request)
60
+ res["deleteall"] = reverse("wbportfolio:tradeproposal-deleteall", args=[instance.id], request=request)
59
61
  res["trades"] = reverse(
60
62
  "wbportfolio:tradeproposal-trade-list",
61
63
  args=[instance.id],
@@ -546,7 +546,7 @@ class CompositionModelPortfolioPandasView(
546
546
  )
547
547
  )
548
548
  )
549
- df = pd.DataFrame(rows)
549
+ df = pd.DataFrame(rows, columns=["underlying_instrument", "weighting", "shares", "portfolio"])
550
550
  df = df.pivot_table(
551
551
  index="underlying_instrument",
552
552
  columns=["portfolio"],
@@ -16,8 +16,7 @@ from .registers import RegisterButtonConfig
16
16
  from .trades import (
17
17
  TradeButtonConfig,
18
18
  TradeInstrumentButtonConfig,
19
- TradeProposalButtonConfig,
20
- TradeTradeProposalButtonConfig,
21
19
  )
20
+ from .trade_proposals import TradeProposalButtonConfig
22
21
  from .reconciliations import AccountReconciliationButtonViewConfig, AccountReconciliationLineButtonViewConfig
23
22
  from .signals import *
@@ -0,0 +1,66 @@
1
+ from wbcore.contrib.icons import WBIcon
2
+ from wbcore.enums import RequestType
3
+ from wbcore.metadata.configs import buttons as bt
4
+ from wbcore.metadata.configs.buttons.view_config import ButtonViewConfig
5
+
6
+
7
+ class TradeProposalButtonConfig(ButtonViewConfig):
8
+ def get_custom_list_instance_buttons(self):
9
+ return {
10
+ bt.DropDownButton(
11
+ label="Tools",
12
+ buttons=(
13
+ bt.ActionButton(
14
+ method=RequestType.PATCH,
15
+ identifiers=("wbportfolio:tradeproposal",),
16
+ key="replay",
17
+ icon=WBIcon.SYNCHRONIZE.icon,
18
+ label="Replay Trades",
19
+ description_fields="""
20
+ <p>Replay Trades. It will recompute all assets positions until next trade proposal day (or today otherwise) </p>
21
+ """,
22
+ action_label="Replay Trade",
23
+ title="Replay Trade",
24
+ ),
25
+ bt.ActionButton(
26
+ method=RequestType.PATCH,
27
+ identifiers=("wbportfolio:tradeproposal",),
28
+ key="reset",
29
+ icon=WBIcon.REGENERATE.icon,
30
+ label="Reset Trades",
31
+ description_fields="""
32
+ <p>Delete and recreate initial trades to from its associated model portfolio</p>
33
+ """,
34
+ action_label="Reset Trades",
35
+ title="Reset Trades",
36
+ ),
37
+ bt.ActionButton(
38
+ method=RequestType.PATCH,
39
+ identifiers=("wbportfolio:tradeproposal",),
40
+ key="normalize",
41
+ icon=WBIcon.EDIT.icon,
42
+ label="Normalize Trades",
43
+ description_fields="""
44
+ <p>Make sure all trades normalize to a total target weight of 100%</p>
45
+ """,
46
+ action_label="Normalize Trades",
47
+ title="Normalize Trades",
48
+ ),
49
+ bt.ActionButton(
50
+ method=RequestType.PATCH,
51
+ identifiers=("wbportfolio:tradeproposal",),
52
+ key="deleteall",
53
+ icon=WBIcon.DELETE.icon,
54
+ label="Delete All Trades",
55
+ description_fields="""
56
+ <p>Delete all trades from this trade proposal?</p>
57
+ """,
58
+ action_label="Delete All Trades",
59
+ title="Delete All Trades",
60
+ ),
61
+ ),
62
+ ),
63
+ }
64
+
65
+ def get_custom_instance_buttons(self):
66
+ return self.get_custom_list_instance_buttons()
@@ -0,0 +1,60 @@
1
+ from rest_framework.reverse import reverse
2
+ from wbcore.contrib.icons import WBIcon
3
+ from wbcore.metadata.configs import buttons as bt
4
+ from wbcore.metadata.configs.buttons.view_config import ButtonViewConfig
5
+ from wbfdm.models import Instrument
6
+
7
+
8
+ class TradeButtonConfig(ButtonViewConfig):
9
+ def get_custom_list_instance_buttons(self):
10
+ return {bt.WidgetButton(key="claims", label="Claims", icon=WBIcon.TRADE.icon)}
11
+
12
+ def get_custom_instance_buttons(self):
13
+ btn = self.get_custom_list_instance_buttons()
14
+ btn.add(
15
+ bt.HyperlinkButton(
16
+ key="import_source",
17
+ label="Import Source",
18
+ icon=WBIcon.SAVE.icon,
19
+ )
20
+ )
21
+ return btn
22
+
23
+
24
+ class TradeInstrumentButtonConfig(TradeButtonConfig):
25
+ def get_custom_buttons(self):
26
+ res = set()
27
+ if instrument_id := self.view.kwargs.get("instrument_id", None):
28
+ instrument = Instrument.objects.get(id=instrument_id)
29
+ res = {
30
+ bt.WidgetButton(
31
+ endpoint=reverse(
32
+ "wbportfolio:instrument-custodiandistribution-list", args=[instrument_id], request=self.request
33
+ ),
34
+ label="Custodian Distribution",
35
+ ),
36
+ bt.WidgetButton(
37
+ endpoint=reverse(
38
+ "wbportfolio:instrument-customerdistribution-list", args=[instrument_id], request=self.request
39
+ ),
40
+ label="Customer Distribution",
41
+ ),
42
+ }
43
+ if instrument.security_instrument_type.key == "product":
44
+ res.add(
45
+ bt.WidgetButton(
46
+ endpoint=reverse(
47
+ "wbportfolio:product-nominalchart-list", args=[instrument_id], request=self.request
48
+ ),
49
+ label="Nominal Chart",
50
+ )
51
+ )
52
+ res.add(
53
+ bt.WidgetButton(
54
+ endpoint=reverse(
55
+ "wbportfolio:product-aumchart-list", args=[instrument_id], request=self.request
56
+ ),
57
+ label="AUM Chart",
58
+ )
59
+ )
60
+ return res
@@ -4,6 +4,7 @@ from datetime import date
4
4
  from django.shortcuts import get_object_or_404
5
5
  from django.utils.functional import cached_property
6
6
  from pandas._libs.tslibs.offsets import BDay
7
+ from rest_framework import status
7
8
  from rest_framework.decorators import action
8
9
  from rest_framework.response import Response
9
10
  from wbcompliance.viewsets.risk_management.mixins import RiskCheckViewSetMixin
@@ -78,6 +79,7 @@ class TradeProposalModelViewSet(CloneMixin, RiskCheckViewSetMixin, InternalUserP
78
79
  if trade_proposal.status == TradeProposal.Status.DRAFT:
79
80
  trade_proposal.reset_trades()
80
81
  return Response({"send": True})
82
+ return Response({"status": "Trade proposal is not Draft"}, status=status.HTTP_400_BAD_REQUEST)
81
83
 
82
84
  @action(detail=True, methods=["PATCH"])
83
85
  def normalize(self, request, pk=None):
@@ -85,6 +87,7 @@ class TradeProposalModelViewSet(CloneMixin, RiskCheckViewSetMixin, InternalUserP
85
87
  if trade_proposal.status == TradeProposal.Status.DRAFT:
86
88
  trade_proposal.normalize_trades()
87
89
  return Response({"send": True})
90
+ return Response({"status": "Trade proposal is not Draft"}, status=status.HTTP_400_BAD_REQUEST)
88
91
 
89
92
  @action(detail=True, methods=["PATCH"])
90
93
  def replay(self, request, pk=None):
@@ -92,6 +95,7 @@ class TradeProposalModelViewSet(CloneMixin, RiskCheckViewSetMixin, InternalUserP
92
95
  if trade_proposal.portfolio.is_manageable:
93
96
  replay_as_task.delay(trade_proposal.id)
94
97
  return Response({"send": True})
98
+ return Response({"status": "Trade proposal is not Draft"}, status=status.HTTP_400_BAD_REQUEST)
95
99
 
96
100
  @action(detail=True, methods=["PATCH"])
97
101
  def deleteall(self, request, pk=None):
@@ -99,6 +103,7 @@ class TradeProposalModelViewSet(CloneMixin, RiskCheckViewSetMixin, InternalUserP
99
103
  if trade_proposal.status == TradeProposal.Status.DRAFT:
100
104
  trade_proposal.trades.all().delete()
101
105
  return Response({"send": True})
106
+ return Response({"status": "Trade proposal is not Draft"}, status=status.HTTP_400_BAD_REQUEST)
102
107
 
103
108
 
104
109
  class TradeProposalPortfolioModelViewSet(UserPortfolioRequestPermissionMixin, TradeProposalModelViewSet):
@@ -63,7 +63,6 @@ from ..configs import (
63
63
  TradePortfolioEndpointConfig,
64
64
  TradePortfolioTitleConfig,
65
65
  TradeTitleConfig,
66
- TradeTradeProposalButtonConfig,
67
66
  TradeTradeProposalDisplayConfig,
68
67
  TradeTradeProposalEndpointConfig,
69
68
  )
@@ -376,7 +375,6 @@ class TradeTradeProposalModelViewSet(
376
375
  display_config_class = TradeTradeProposalDisplayConfig
377
376
  endpoint_config_class = TradeTradeProposalEndpointConfig
378
377
  serializer_class = TradeTradeProposalModelSerializer
379
- button_config_class = TradeTradeProposalButtonConfig
380
378
 
381
379
  @cached_property
382
380
  def trade_proposal(self):
@@ -1,25 +0,0 @@
1
- from wbcore.contrib.icons import WBIcon
2
- from wbcore.enums import RequestType
3
- from wbcore.metadata.configs import buttons as bt
4
- from wbcore.metadata.configs.buttons.view_config import ButtonViewConfig
5
-
6
-
7
- class TradeProposalButtonConfig(ButtonViewConfig):
8
- def get_custom_list_instance_buttons(self):
9
- return {
10
- bt.ActionButton(
11
- method=RequestType.PATCH,
12
- identifiers=("wbportfolio:tradeproposal",),
13
- key="replay",
14
- icon=WBIcon.SYNCHRONIZE.icon,
15
- label="Replay Trades",
16
- description_fields="""
17
- <p>Replay Trades. It will recompute all assets positions until next trade proposal day (or today otherwise) </p>
18
- """,
19
- action_label="Replay Trade",
20
- title="Replay Trade",
21
- )
22
- }
23
-
24
- def get_custom_instance_buttons(self):
25
- return self.get_custom_list_instance_buttons()
@@ -1,145 +0,0 @@
1
- from rest_framework.reverse import reverse
2
- from wbcore.contrib.icons import WBIcon
3
- from wbcore.enums import RequestType
4
- from wbcore.metadata.configs import buttons as bt
5
- from wbcore.metadata.configs.buttons.view_config import ButtonViewConfig
6
- from wbfdm.models import Instrument
7
-
8
- from wbportfolio.models import TradeProposal
9
-
10
-
11
- class TradeButtonConfig(ButtonViewConfig):
12
- def get_custom_list_instance_buttons(self):
13
- return {bt.WidgetButton(key="claims", label="Claims", icon=WBIcon.TRADE.icon)}
14
-
15
- def get_custom_instance_buttons(self):
16
- btn = self.get_custom_list_instance_buttons()
17
- btn.add(
18
- bt.HyperlinkButton(
19
- key="import_source",
20
- label="Import Source",
21
- icon=WBIcon.SAVE.icon,
22
- )
23
- )
24
- return btn
25
-
26
-
27
- class TradeInstrumentButtonConfig(TradeButtonConfig):
28
- def get_custom_buttons(self):
29
- res = set()
30
- if instrument_id := self.view.kwargs.get("instrument_id", None):
31
- instrument = Instrument.objects.get(id=instrument_id)
32
- res = {
33
- bt.WidgetButton(
34
- endpoint=reverse(
35
- "wbportfolio:instrument-custodiandistribution-list", args=[instrument_id], request=self.request
36
- ),
37
- label="Custodian Distribution",
38
- ),
39
- bt.WidgetButton(
40
- endpoint=reverse(
41
- "wbportfolio:instrument-customerdistribution-list", args=[instrument_id], request=self.request
42
- ),
43
- label="Customer Distribution",
44
- ),
45
- }
46
- if instrument.security_instrument_type.key == "product":
47
- res.add(
48
- bt.WidgetButton(
49
- endpoint=reverse(
50
- "wbportfolio:product-nominalchart-list", args=[instrument_id], request=self.request
51
- ),
52
- label="Nominal Chart",
53
- )
54
- )
55
- res.add(
56
- bt.WidgetButton(
57
- endpoint=reverse(
58
- "wbportfolio:product-aumchart-list", args=[instrument_id], request=self.request
59
- ),
60
- label="AUM Chart",
61
- )
62
- )
63
- return res
64
-
65
-
66
- class TradeTradeProposalButtonConfig(ButtonViewConfig):
67
- def get_custom_buttons(self):
68
- if trade_proposal_id := self.view.kwargs.get("trade_proposal_id", None):
69
- trade_proposal = TradeProposal.objects.get(id=trade_proposal_id)
70
- if trade_proposal.status == TradeProposal.Status.DRAFT:
71
- return {
72
- bt.DropDownButton(
73
- label="Tools",
74
- buttons=(
75
- bt.ActionButton(
76
- method=RequestType.PATCH,
77
- identifiers=("wbportfolio:tradeproposal",),
78
- endpoint=reverse(
79
- "wbportfolio:tradeproposal-reset", args=[trade_proposal_id], request=self.request
80
- ),
81
- icon=WBIcon.REGENERATE.icon,
82
- label="Reset Trade",
83
- description_fields="""
84
- <p>Delete and recreate initial trades to from its associated model portfolio</p>
85
- """,
86
- action_label="Reset Trade",
87
- title="Reset Trade",
88
- ),
89
- bt.ActionButton(
90
- method=RequestType.PATCH,
91
- identifiers=("wbportfolio:tradeproposal",),
92
- endpoint=reverse(
93
- "wbportfolio:tradeproposal-normalize",
94
- args=[trade_proposal_id],
95
- request=self.request,
96
- ),
97
- icon=WBIcon.EDIT.icon,
98
- label="Normalize Trades",
99
- description_fields="""
100
- <p>Make sure all trades normalize to a total target weight of 100%</p>
101
- """,
102
- action_label="Normalize Trades",
103
- title="Normalize Trades",
104
- ),
105
- bt.ActionButton(
106
- method=RequestType.PATCH,
107
- identifiers=("wbportfolio:tradeproposal",),
108
- endpoint=reverse(
109
- "wbportfolio:tradeproposal-deleteall",
110
- args=[trade_proposal_id],
111
- request=self.request,
112
- ),
113
- icon=WBIcon.DELETE.icon,
114
- label="Delete All Trades",
115
- description_fields="""
116
- <p>Delete all trades from this trade proposal?</p>
117
- """,
118
- action_label="Delete All Trades",
119
- title="Delete All Trades",
120
- ),
121
- ),
122
- )
123
- }
124
- return {}
125
-
126
-
127
- class TradeProposalButtonConfig(ButtonViewConfig):
128
- def get_custom_list_instance_buttons(self):
129
- return {
130
- bt.ActionButton(
131
- method=RequestType.PATCH,
132
- identifiers=("wbportfolio:tradeproposal",),
133
- key="replay",
134
- icon=WBIcon.SYNCHRONIZE.icon,
135
- label="Replay Trades",
136
- description_fields="""
137
- <p>Replay Trades. It will recompute all assets positions until next trade proposal day (or today otherwise) </p>
138
- """,
139
- action_label="Replay Trade",
140
- title="Replay Trade",
141
- )
142
- }
143
-
144
- def get_custom_instance_buttons(self):
145
- return self.get_custom_list_instance_buttons()
File without changes
File without changes