wbportfolio 1.49.6__tar.gz → 1.59.3__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.
- wbportfolio-1.59.3/.gitignore +180 -0
- wbportfolio-1.59.3/PKG-INFO +26 -0
- wbportfolio-1.59.3/pyproject.toml +57 -0
- wbportfolio-1.59.3/wbportfolio/admin/__init__.py +14 -0
- wbportfolio-1.59.3/wbportfolio/admin/indexes.py +15 -0
- wbportfolio-1.59.3/wbportfolio/admin/orders/__init__.py +2 -0
- wbportfolio-1.59.3/wbportfolio/admin/orders/order_proposals.py +16 -0
- wbportfolio-1.59.3/wbportfolio/admin/orders/orders.py +32 -0
- wbportfolio-1.59.3/wbportfolio/admin/portfolio.py +138 -0
- wbportfolio-1.59.3/wbportfolio/admin/product_groups.py +44 -0
- wbportfolio-1.59.3/wbportfolio/admin/products.py +82 -0
- wbportfolio-1.59.3/wbportfolio/admin/rebalancing.py +26 -0
- wbportfolio-1.59.3/wbportfolio/admin/transactions/__init__.py +4 -0
- wbportfolio-1.59.3/wbportfolio/admin/transactions/dividends.py +51 -0
- wbportfolio-1.59.3/wbportfolio/admin/transactions/fees.py +46 -0
- wbportfolio-1.59.3/wbportfolio/admin/transactions/trades.py +57 -0
- wbportfolio-1.59.3/wbportfolio/analysis/claims.py +241 -0
- wbportfolio-1.59.3/wbportfolio/api_clients/ubs.py +162 -0
- wbportfolio-1.59.3/wbportfolio/constants.py +1 -0
- wbportfolio-1.59.3/wbportfolio/contrib/company_portfolio/configs/display.py +194 -0
- wbportfolio-1.59.3/wbportfolio/contrib/company_portfolio/configs/previews.py +37 -0
- wbportfolio-1.59.3/wbportfolio/contrib/company_portfolio/filters.py +127 -0
- {wbportfolio-1.49.6/wbportfolio/contrib/company_portfolio/tests → wbportfolio-1.59.3/wbportfolio/contrib/company_portfolio/migrations}/__init__.py +0 -0
- wbportfolio-1.59.3/wbportfolio/contrib/company_portfolio/models.py +361 -0
- wbportfolio-1.59.3/wbportfolio/contrib/company_portfolio/scripts.py +81 -0
- wbportfolio-1.59.3/wbportfolio/contrib/company_portfolio/serializers.py +313 -0
- wbportfolio-1.59.3/wbportfolio/contrib/company_portfolio/tasks.py +34 -0
- {wbportfolio-1.49.6/wbportfolio/defaults → wbportfolio-1.59.3/wbportfolio/contrib/company_portfolio/tests}/__init__.py +0 -0
- wbportfolio-1.59.3/wbportfolio/contrib/company_portfolio/tests/conftest.py +149 -0
- wbportfolio-1.59.3/wbportfolio/defaults/fees/default.py +85 -0
- wbportfolio-1.59.3/wbportfolio/factories/__init__.py +27 -0
- wbportfolio-1.59.3/wbportfolio/factories/assets.py +81 -0
- wbportfolio-1.59.3/wbportfolio/factories/dividends.py +21 -0
- wbportfolio-1.59.3/wbportfolio/factories/fees.py +20 -0
- wbportfolio-1.59.3/wbportfolio/factories/orders/__init__.py +2 -0
- wbportfolio-1.59.3/wbportfolio/factories/orders/order_proposals.py +21 -0
- wbportfolio-1.59.3/wbportfolio/factories/orders/orders.py +34 -0
- wbportfolio-1.59.3/wbportfolio/factories/portfolio_cash_targets.py +16 -0
- wbportfolio-1.59.3/wbportfolio/factories/portfolio_swing_pricings.py +16 -0
- wbportfolio-1.59.3/wbportfolio/factories/portfolios.py +51 -0
- wbportfolio-1.59.3/wbportfolio/factories/product_groups.py +36 -0
- wbportfolio-1.59.3/wbportfolio/factories/products.py +75 -0
- wbportfolio-1.59.3/wbportfolio/factories/rebalancing.py +23 -0
- wbportfolio-1.59.3/wbportfolio/factories/trades.py +36 -0
- wbportfolio-1.59.3/wbportfolio/filters/__init__.py +33 -0
- wbportfolio-1.59.3/wbportfolio/filters/assets.py +504 -0
- wbportfolio-1.59.3/wbportfolio/filters/assets_and_net_new_money_progression.py +43 -0
- wbportfolio-1.59.3/wbportfolio/filters/esg.py +23 -0
- wbportfolio-1.59.3/wbportfolio/filters/orders/__init__.py +2 -0
- wbportfolio-1.59.3/wbportfolio/filters/orders/order_proposals.py +55 -0
- wbportfolio-1.59.3/wbportfolio/filters/orders/orders.py +11 -0
- wbportfolio-1.59.3/wbportfolio/filters/performances.py +172 -0
- wbportfolio-1.59.3/wbportfolio/filters/portfolios.py +81 -0
- wbportfolio-1.59.3/wbportfolio/filters/positions.py +185 -0
- wbportfolio-1.59.3/wbportfolio/filters/products.py +154 -0
- wbportfolio-1.59.3/wbportfolio/filters/roles.py +27 -0
- wbportfolio-1.59.3/wbportfolio/filters/signals.py +73 -0
- wbportfolio-1.59.3/wbportfolio/filters/transactions/__init__.py +20 -0
- wbportfolio-1.59.3/wbportfolio/filters/transactions/claim.py +443 -0
- wbportfolio-1.59.3/wbportfolio/filters/transactions/fees.py +61 -0
- wbportfolio-1.59.3/wbportfolio/filters/transactions/trades.py +253 -0
- wbportfolio-1.59.3/wbportfolio/filters/transactions/utils.py +42 -0
- wbportfolio-1.59.3/wbportfolio/import_export/backends/ubs/__init__.py +4 -0
- wbportfolio-1.59.3/wbportfolio/import_export/backends/ubs/asset_position.py +44 -0
- wbportfolio-1.59.3/wbportfolio/import_export/backends/ubs/fees.py +53 -0
- wbportfolio-1.59.3/wbportfolio/import_export/backends/ubs/instrument_price.py +44 -0
- wbportfolio-1.59.3/wbportfolio/import_export/backends/ubs/trade.py +48 -0
- wbportfolio-1.59.3/wbportfolio/import_export/backends/utils.py +41 -0
- wbportfolio-1.59.3/wbportfolio/import_export/handlers/asset_position.py +182 -0
- wbportfolio-1.59.3/wbportfolio/import_export/handlers/dividend.py +90 -0
- wbportfolio-1.59.3/wbportfolio/import_export/handlers/fees.py +56 -0
- wbportfolio-1.59.3/wbportfolio/import_export/handlers/orders.py +71 -0
- wbportfolio-1.59.3/wbportfolio/import_export/handlers/trade.py +210 -0
- wbportfolio-1.59.3/wbportfolio/import_export/parsers/default_mapping.py +30 -0
- wbportfolio-1.59.3/wbportfolio/import_export/parsers/jpmorgan/customer_trade.py +71 -0
- wbportfolio-1.59.3/wbportfolio/import_export/parsers/jpmorgan/fees.py +64 -0
- wbportfolio-1.59.3/wbportfolio/import_export/parsers/jpmorgan/strategy.py +91 -0
- wbportfolio-1.59.3/wbportfolio/import_export/parsers/jpmorgan/valuation.py +40 -0
- wbportfolio-1.59.3/wbportfolio/import_export/parsers/leonteq/customer_trade.py +48 -0
- wbportfolio-1.59.3/wbportfolio/import_export/parsers/leonteq/equity.py +79 -0
- wbportfolio-1.59.3/wbportfolio/import_export/parsers/leonteq/fees.py +73 -0
- wbportfolio-1.59.3/wbportfolio/import_export/parsers/leonteq/trade.py +91 -0
- wbportfolio-1.59.3/wbportfolio/import_export/parsers/leonteq/valuation.py +37 -0
- wbportfolio-1.59.3/wbportfolio/import_export/parsers/natixis/customer_trade.py +59 -0
- wbportfolio-1.59.3/wbportfolio/import_export/parsers/natixis/d1_customer_trade.py +66 -0
- wbportfolio-1.59.3/wbportfolio/import_export/parsers/natixis/d1_equity.py +73 -0
- wbportfolio-1.59.3/wbportfolio/import_export/parsers/natixis/d1_fees.py +57 -0
- wbportfolio-1.59.3/wbportfolio/import_export/parsers/natixis/d1_trade.py +62 -0
- wbportfolio-1.59.3/wbportfolio/import_export/parsers/natixis/d1_valuation.py +39 -0
- wbportfolio-1.59.3/wbportfolio/import_export/parsers/natixis/dividend.py +48 -0
- wbportfolio-1.59.3/wbportfolio/import_export/parsers/natixis/equity.py +78 -0
- wbportfolio-1.59.3/wbportfolio/import_export/parsers/natixis/fees.py +48 -0
- wbportfolio-1.59.3/wbportfolio/import_export/parsers/natixis/trade.py +64 -0
- wbportfolio-1.59.3/wbportfolio/import_export/parsers/natixis/utils.py +67 -0
- wbportfolio-1.59.3/wbportfolio/import_export/parsers/natixis/valuation.py +45 -0
- wbportfolio-1.59.3/wbportfolio/import_export/parsers/sg_lux/customer_trade_pending_slk.py +141 -0
- wbportfolio-1.59.3/wbportfolio/import_export/parsers/sg_lux/customer_trade_slk.py +95 -0
- wbportfolio-1.59.3/wbportfolio/import_export/parsers/sg_lux/equity.py +160 -0
- wbportfolio-1.59.3/wbportfolio/import_export/parsers/sg_lux/fees.py +56 -0
- wbportfolio-1.59.3/wbportfolio/import_export/parsers/sg_lux/perf_fees.py +48 -0
- wbportfolio-1.59.3/wbportfolio/import_export/parsers/sg_lux/registers.py +215 -0
- wbportfolio-1.59.3/wbportfolio/import_export/parsers/sg_lux/sylk.py +249 -0
- wbportfolio-1.59.3/wbportfolio/import_export/parsers/sg_lux/utils.py +36 -0
- wbportfolio-1.59.3/wbportfolio/import_export/parsers/sg_lux/valuation.py +54 -0
- wbportfolio-1.59.3/wbportfolio/import_export/parsers/societe_generale/customer_trade.py +56 -0
- wbportfolio-1.59.3/wbportfolio/import_export/parsers/societe_generale/strategy.py +93 -0
- wbportfolio-1.59.3/wbportfolio/import_export/parsers/societe_generale/valuation.py +37 -0
- wbportfolio-1.59.3/wbportfolio/import_export/parsers/tellco/customer_trade.py +63 -0
- wbportfolio-1.59.3/wbportfolio/import_export/parsers/tellco/equity.py +86 -0
- wbportfolio-1.59.3/wbportfolio/import_export/parsers/tellco/valuation.py +51 -0
- wbportfolio-1.59.3/wbportfolio/import_export/parsers/ubs/api/fees.py +29 -0
- wbportfolio-1.59.3/wbportfolio/import_export/parsers/ubs/api/trade.py +39 -0
- wbportfolio-1.59.3/wbportfolio/import_export/parsers/ubs/customer_trade.py +57 -0
- wbportfolio-1.59.3/wbportfolio/import_export/parsers/ubs/equity.py +96 -0
- wbportfolio-1.59.3/wbportfolio/import_export/parsers/ubs/historical_customer_trade.py +49 -0
- wbportfolio-1.59.3/wbportfolio/import_export/parsers/ubs/valuation.py +53 -0
- wbportfolio-1.59.3/wbportfolio/import_export/parsers/vontobel/customer_trade.py +54 -0
- wbportfolio-1.59.3/wbportfolio/import_export/parsers/vontobel/historical_customer_trade.py +40 -0
- wbportfolio-1.59.3/wbportfolio/import_export/parsers/vontobel/instrument.py +34 -0
- wbportfolio-1.59.3/wbportfolio/import_export/parsers/vontobel/management_fees.py +77 -0
- wbportfolio-1.59.3/wbportfolio/import_export/parsers/vontobel/performance_fees.py +32 -0
- wbportfolio-1.59.3/wbportfolio/import_export/parsers/vontobel/trade.py +37 -0
- wbportfolio-1.59.3/wbportfolio/import_export/parsers/vontobel/utils.py +5 -0
- wbportfolio-1.59.3/wbportfolio/import_export/parsers/vontobel/valuation_api.py +26 -0
- wbportfolio-1.59.3/wbportfolio/import_export/resources/trades.py +55 -0
- wbportfolio-1.59.3/wbportfolio/import_export/utils.py +44 -0
- wbportfolio-1.59.3/wbportfolio/jinja2/wbportfolio/sql/aum_nnm.sql +119 -0
- wbportfolio-1.59.3/wbportfolio/locale/de/LC_MESSAGES/django.mo +0 -0
- wbportfolio-1.59.3/wbportfolio/locale/de/LC_MESSAGES/django.po +196 -0
- wbportfolio-1.59.3/wbportfolio/locale/en/LC_MESSAGES/django.mo +0 -0
- wbportfolio-1.59.3/wbportfolio/locale/en/LC_MESSAGES/django.po +195 -0
- wbportfolio-1.59.3/wbportfolio/locale/fr/LC_MESSAGES/django.mo +0 -0
- wbportfolio-1.59.3/wbportfolio/locale/fr/LC_MESSAGES/django.po +196 -0
- wbportfolio-1.59.3/wbportfolio/metric/backends/base.py +75 -0
- wbportfolio-1.59.3/wbportfolio/migrations/0059_fees_unique_fees.py +51 -0
- wbportfolio-1.59.3/wbportfolio/migrations/0077_remove_transaction_currency_and_more.py +622 -0
- wbportfolio-1.59.3/wbportfolio/migrations/0078_trade_drift_factor.py +26 -0
- wbportfolio-1.59.3/wbportfolio/migrations/0079_alter_trade_drift_factor.py +19 -0
- wbportfolio-1.59.3/wbportfolio/migrations/0080_alter_trade_drift_factor_alter_trade_weighting.py +19 -0
- wbportfolio-1.59.3/wbportfolio/migrations/0081_alter_trade_drift_factor.py +19 -0
- wbportfolio-1.59.3/wbportfolio/migrations/0082_remove_tradeproposal_creator_and_more.py +93 -0
- wbportfolio-1.59.3/wbportfolio/migrations/0083_order_alter_trade_options_and_more.py +181 -0
- wbportfolio-1.59.3/wbportfolio/migrations/0084_orderproposal_min_order_value.py +25 -0
- wbportfolio-1.59.3/wbportfolio/migrations/0085_order_desired_target_weight.py +26 -0
- wbportfolio-1.59.3/wbportfolio/migrations/0086_orderproposal_total_cash_weight.py +19 -0
- wbportfolio-1.59.3/wbportfolio/migrations/0087_product_order_routing_custodian_adapter.py +94 -0
- wbportfolio-1.59.3/wbportfolio/migrations/0088_orderproposal_total_effective_portfolio_contribution.py +19 -0
- wbportfolio-1.59.3/wbportfolio/migrations/0089_orderproposal_min_weighting.py +71 -0
- wbportfolio-1.59.3/wbportfolio/migrations/0090_dividendtransaction_price_fx_portfolio_and_more.py +44 -0
- wbportfolio-1.59.3/wbportfolio/migrations/0091_remove_order_execution_confirmed_and_more.py +32 -0
- wbportfolio-1.59.3/wbportfolio/migrations/0092_order_quantization_error_alter_orderproposal_status.py +49 -0
- wbportfolio-1.59.3/wbportfolio/migrations/0093_remove_portfolioportfoliothroughmodel_unique_primary_and_more.py +35 -0
- wbportfolio-1.59.3/wbportfolio/models/__init__.py +23 -0
- wbportfolio-1.59.3/wbportfolio/models/adjustments.py +252 -0
- wbportfolio-1.59.3/wbportfolio/models/asset.py +929 -0
- wbportfolio-1.59.3/wbportfolio/models/builder.py +323 -0
- wbportfolio-1.59.3/wbportfolio/models/custodians.py +101 -0
- wbportfolio-1.59.3/wbportfolio/models/exceptions.py +2 -0
- wbportfolio-1.59.3/wbportfolio/models/graphs/portfolio.py +161 -0
- wbportfolio-1.59.3/wbportfolio/models/graphs/utils.py +83 -0
- wbportfolio-1.59.3/wbportfolio/models/indexes.py +19 -0
- wbportfolio-1.59.3/wbportfolio/models/llm/wbcrm/analyze_relationship.py +59 -0
- wbportfolio-1.59.3/wbportfolio/models/mixins/instruments.py +167 -0
- wbportfolio-1.59.3/wbportfolio/models/mixins/liquidity_stress_test.py +1307 -0
- wbportfolio-1.59.3/wbportfolio/models/orders/__init__.py +2 -0
- wbportfolio-1.59.3/wbportfolio/models/orders/order_proposals.py +1414 -0
- wbportfolio-1.59.3/wbportfolio/models/orders/orders.py +410 -0
- wbportfolio-1.59.3/wbportfolio/models/portfolio.py +1289 -0
- wbportfolio-1.59.3/wbportfolio/models/portfolio_cash_flow.py +169 -0
- wbportfolio-1.59.3/wbportfolio/models/portfolio_relationship.py +139 -0
- wbportfolio-1.59.3/wbportfolio/models/products.py +616 -0
- wbportfolio-1.59.3/wbportfolio/models/rebalancing.py +202 -0
- wbportfolio-1.59.3/wbportfolio/models/reconciliations/account_reconciliations.py +109 -0
- wbportfolio-1.59.3/wbportfolio/models/roles.py +198 -0
- wbportfolio-1.59.3/wbportfolio/models/signals.py +24 -0
- wbportfolio-1.59.3/wbportfolio/models/transactions/__init__.py +4 -0
- wbportfolio-1.59.3/wbportfolio/models/transactions/claim.py +635 -0
- wbportfolio-1.59.3/wbportfolio/models/transactions/dividends.py +52 -0
- wbportfolio-1.59.3/wbportfolio/models/transactions/fees.py +187 -0
- wbportfolio-1.59.3/wbportfolio/models/transactions/trades.py +437 -0
- wbportfolio-1.59.3/wbportfolio/models/transactions/transactions.py +125 -0
- wbportfolio-1.59.3/wbportfolio/models/utils.py +112 -0
- wbportfolio-1.59.3/wbportfolio/order_routing/__init__.py +35 -0
- wbportfolio-1.59.3/wbportfolio/order_routing/adapters/__init__.py +65 -0
- wbportfolio-1.59.3/wbportfolio/order_routing/adapters/ubs.py +195 -0
- wbportfolio-1.59.3/wbportfolio/order_routing/router.py +33 -0
- wbportfolio-1.59.3/wbportfolio/order_routing/tests/test_router.py +110 -0
- wbportfolio-1.59.3/wbportfolio/permissions.py +20 -0
- wbportfolio-1.59.3/wbportfolio/pms/analytics/portfolio.py +45 -0
- wbportfolio-1.59.3/wbportfolio/pms/analytics/utils.py +9 -0
- wbportfolio-1.59.3/wbportfolio/pms/trading/optimizer.py +61 -0
- wbportfolio-1.59.3/wbportfolio/pms/typing.py +315 -0
- {wbportfolio-1.49.6/wbportfolio/risk_management → wbportfolio-1.59.3/wbportfolio/rebalancing}/__init__.py +0 -0
- wbportfolio-1.59.3/wbportfolio/rebalancing/base.py +31 -0
- wbportfolio-1.59.3/wbportfolio/rebalancing/decorators.py +17 -0
- wbportfolio-1.59.3/wbportfolio/rebalancing/models/composite.py +44 -0
- wbportfolio-1.59.3/wbportfolio/rebalancing/models/equally_weighted.py +34 -0
- wbportfolio-1.59.3/wbportfolio/rebalancing/models/market_capitalization_weighted.py +133 -0
- wbportfolio-1.59.3/wbportfolio/rebalancing/models/model_portfolio.py +37 -0
- wbportfolio-1.59.3/wbportfolio/risk_management/backends/__init__.py +12 -0
- wbportfolio-1.59.3/wbportfolio/risk_management/backends/controversy_portfolio.py +64 -0
- wbportfolio-1.59.3/wbportfolio/risk_management/backends/esg_aggregation_portfolio.py +64 -0
- wbportfolio-1.59.3/wbportfolio/risk_management/backends/exposure_portfolio.py +235 -0
- wbportfolio-1.59.3/wbportfolio/risk_management/backends/instrument_list_portfolio.py +90 -0
- wbportfolio-1.59.3/wbportfolio/risk_management/backends/liquidity_risk.py +87 -0
- wbportfolio-1.59.3/wbportfolio/risk_management/backends/mixins.py +230 -0
- {wbportfolio-1.49.6/wbportfolio/tests/models → wbportfolio-1.59.3/wbportfolio/risk_management/tests}/__init__.py +0 -0
- wbportfolio-1.59.3/wbportfolio/risk_management/tests/test_esg_aggregation_portfolio.py +49 -0
- wbportfolio-1.59.3/wbportfolio/risk_management/tests/test_exposure_portfolio.py +142 -0
- wbportfolio-1.59.3/wbportfolio/risk_management/tests/test_stop_loss_instrument.py +111 -0
- wbportfolio-1.59.3/wbportfolio/risk_management/tests/test_stop_loss_portfolio.py +125 -0
- wbportfolio-1.59.3/wbportfolio/serializers/__init__.py +43 -0
- wbportfolio-1.59.3/wbportfolio/serializers/orders/__init__.py +2 -0
- wbportfolio-1.59.3/wbportfolio/serializers/orders/order_proposals.py +115 -0
- wbportfolio-1.59.3/wbportfolio/serializers/orders/orders.py +283 -0
- wbportfolio-1.59.3/wbportfolio/serializers/portfolios.py +190 -0
- wbportfolio-1.59.3/wbportfolio/serializers/positions.py +77 -0
- wbportfolio-1.59.3/wbportfolio/serializers/products.py +332 -0
- wbportfolio-1.59.3/wbportfolio/serializers/rebalancing.py +57 -0
- wbportfolio-1.59.3/wbportfolio/serializers/signals.py +149 -0
- wbportfolio-1.59.3/wbportfolio/serializers/transactions/__init__.py +15 -0
- wbportfolio-1.59.3/wbportfolio/serializers/transactions/claim.py +311 -0
- wbportfolio-1.59.3/wbportfolio/serializers/transactions/dividends.py +46 -0
- wbportfolio-1.59.3/wbportfolio/serializers/transactions/fees.py +62 -0
- wbportfolio-1.59.3/wbportfolio/serializers/transactions/trades.py +241 -0
- wbportfolio-1.59.3/wbportfolio/tasks.py +89 -0
- {wbportfolio-1.49.6/wbportfolio/tests/models/transactions → wbportfolio-1.59.3/wbportfolio/tests}/__init__.py +0 -0
- wbportfolio-1.59.3/wbportfolio/tests/analysis/test_claims.py +85 -0
- wbportfolio-1.59.3/wbportfolio/tests/conftest.py +157 -0
- {wbportfolio-1.49.6/wbportfolio/tests/rebalancing → wbportfolio-1.59.3/wbportfolio/tests/models}/__init__.py +0 -0
- wbportfolio-1.59.3/wbportfolio/tests/models/orders/test_order_proposals.py +1046 -0
- wbportfolio-1.59.3/wbportfolio/tests/models/test_assets.py +205 -0
- wbportfolio-1.59.3/wbportfolio/tests/models/test_imports.py +195 -0
- wbportfolio-1.59.3/wbportfolio/tests/models/test_portfolios.py +1172 -0
- wbportfolio-1.59.3/wbportfolio/tests/models/test_products.py +228 -0
- wbportfolio-1.59.3/wbportfolio/tests/models/test_splits.py +229 -0
- wbportfolio-1.59.3/wbportfolio/tests/models/test_utils.py +140 -0
- wbportfolio-1.59.3/wbportfolio/tests/models/transactions/test_fees.py +60 -0
- wbportfolio-1.59.3/wbportfolio/tests/models/transactions/test_rebalancing.py +85 -0
- wbportfolio-1.59.3/wbportfolio/tests/models/transactions/test_trades.py +199 -0
- wbportfolio-1.59.3/wbportfolio/tests/pms/test_analytics.py +54 -0
- wbportfolio-1.59.3/wbportfolio/tests/rebalancing/__init__.py +0 -0
- wbportfolio-1.59.3/wbportfolio/tests/rebalancing/test_models.py +160 -0
- wbportfolio-1.59.3/wbportfolio/tests/serializers/__init__.py +0 -0
- wbportfolio-1.59.3/wbportfolio/tests/signals.py +135 -0
- wbportfolio-1.59.3/wbportfolio/tests/tests.py +35 -0
- wbportfolio-1.59.3/wbportfolio/tests/viewsets/__init__.py +0 -0
- wbportfolio-1.59.3/wbportfolio/tests/viewsets/test_products.py +94 -0
- wbportfolio-1.59.3/wbportfolio/tests/viewsets/transactions/__init__.py +0 -0
- wbportfolio-1.59.3/wbportfolio/urls.py +258 -0
- wbportfolio-1.59.3/wbportfolio/viewsets/__init__.py +59 -0
- wbportfolio-1.59.3/wbportfolio/viewsets/adjustments.py +49 -0
- wbportfolio-1.59.3/wbportfolio/viewsets/assets.py +420 -0
- wbportfolio-1.59.3/wbportfolio/viewsets/charts/__init__.py +6 -0
- wbportfolio-1.59.3/wbportfolio/viewsets/charts/assets.py +439 -0
- wbportfolio-1.59.3/wbportfolio/viewsets/configs/buttons/__init__.py +22 -0
- wbportfolio-1.59.3/wbportfolio/viewsets/configs/buttons/assets.py +146 -0
- wbportfolio-1.59.3/wbportfolio/viewsets/configs/buttons/mixins.py +69 -0
- wbportfolio-1.59.3/wbportfolio/viewsets/configs/buttons/portfolios.py +173 -0
- wbportfolio-1.59.3/wbportfolio/viewsets/configs/buttons/products.py +82 -0
- wbportfolio-1.59.3/wbportfolio/viewsets/configs/display/__init__.py +59 -0
- wbportfolio-1.59.3/wbportfolio/viewsets/configs/display/assets.py +242 -0
- wbportfolio-1.59.3/wbportfolio/viewsets/configs/display/fees.py +133 -0
- wbportfolio-1.59.3/wbportfolio/viewsets/configs/display/portfolios.py +215 -0
- wbportfolio-1.59.3/wbportfolio/viewsets/configs/display/products.py +236 -0
- wbportfolio-1.59.3/wbportfolio/viewsets/configs/display/rebalancing.py +27 -0
- wbportfolio-1.59.3/wbportfolio/viewsets/configs/display/reconciliations.py +151 -0
- wbportfolio-1.59.3/wbportfolio/viewsets/configs/display/trades.py +226 -0
- wbportfolio-1.59.3/wbportfolio/viewsets/configs/endpoints/__init__.py +73 -0
- wbportfolio-1.59.3/wbportfolio/viewsets/configs/endpoints/adjustments.py +17 -0
- wbportfolio-1.59.3/wbportfolio/viewsets/configs/endpoints/assets.py +73 -0
- wbportfolio-1.59.3/wbportfolio/viewsets/configs/endpoints/claim.py +98 -0
- wbportfolio-1.59.3/wbportfolio/viewsets/configs/endpoints/esg.py +6 -0
- wbportfolio-1.59.3/wbportfolio/viewsets/configs/endpoints/fees.py +14 -0
- wbportfolio-1.59.3/wbportfolio/viewsets/configs/endpoints/portfolio_relationship.py +16 -0
- wbportfolio-1.59.3/wbportfolio/viewsets/configs/endpoints/portfolios.py +46 -0
- wbportfolio-1.59.3/wbportfolio/viewsets/configs/endpoints/positions.py +11 -0
- wbportfolio-1.59.3/wbportfolio/viewsets/configs/endpoints/product_performance.py +22 -0
- wbportfolio-1.59.3/wbportfolio/viewsets/configs/endpoints/products.py +31 -0
- wbportfolio-1.59.3/wbportfolio/viewsets/configs/endpoints/trades.py +50 -0
- wbportfolio-1.59.3/wbportfolio/viewsets/configs/menu/__init__.py +30 -0
- wbportfolio-1.59.3/wbportfolio/viewsets/configs/menu/orders.py +11 -0
- wbportfolio-1.59.3/wbportfolio/viewsets/configs/menu/trades.py +17 -0
- wbportfolio-1.59.3/wbportfolio/viewsets/configs/titles/__init__.py +64 -0
- wbportfolio-1.59.3/wbportfolio/viewsets/configs/titles/fees.py +22 -0
- wbportfolio-1.59.3/wbportfolio/viewsets/esg.py +164 -0
- wbportfolio-1.59.3/wbportfolio/viewsets/mixins.py +53 -0
- wbportfolio-1.59.3/wbportfolio/viewsets/orders/__init__.py +6 -0
- wbportfolio-1.59.3/wbportfolio/viewsets/orders/configs/__init__.py +4 -0
- wbportfolio-1.59.3/wbportfolio/viewsets/orders/configs/buttons/__init__.py +2 -0
- wbportfolio-1.59.3/wbportfolio/viewsets/orders/configs/buttons/order_proposals.py +188 -0
- wbportfolio-1.59.3/wbportfolio/viewsets/orders/configs/buttons/orders.py +113 -0
- wbportfolio-1.59.3/wbportfolio/viewsets/orders/configs/displays/__init__.py +2 -0
- wbportfolio-1.59.3/wbportfolio/viewsets/orders/configs/displays/order_proposals.py +157 -0
- wbportfolio-1.59.3/wbportfolio/viewsets/orders/configs/displays/orders.py +232 -0
- wbportfolio-1.59.3/wbportfolio/viewsets/orders/configs/endpoints/__init__.py +2 -0
- wbportfolio-1.59.3/wbportfolio/viewsets/orders/configs/endpoints/order_proposals.py +21 -0
- wbportfolio-1.59.3/wbportfolio/viewsets/orders/configs/endpoints/orders.py +28 -0
- wbportfolio-1.59.3/wbportfolio/viewsets/orders/configs/titles/__init__.py +0 -0
- wbportfolio-1.59.3/wbportfolio/viewsets/orders/configs/titles/orders.py +0 -0
- wbportfolio-1.59.3/wbportfolio/viewsets/orders/order_proposals.py +252 -0
- wbportfolio-1.59.3/wbportfolio/viewsets/orders/orders.py +277 -0
- wbportfolio-1.59.3/wbportfolio/viewsets/portfolios.py +378 -0
- wbportfolio-1.59.3/wbportfolio/viewsets/positions.py +293 -0
- wbportfolio-1.59.3/wbportfolio/viewsets/products.py +530 -0
- wbportfolio-1.59.3/wbportfolio/viewsets/rebalancing.py +31 -0
- wbportfolio-1.59.3/wbportfolio/viewsets/reconciliations.py +170 -0
- wbportfolio-1.59.3/wbportfolio/viewsets/transactions/__init__.py +30 -0
- wbportfolio-1.59.3/wbportfolio/viewsets/transactions/claim.py +974 -0
- wbportfolio-1.59.3/wbportfolio/viewsets/transactions/fees.py +191 -0
- wbportfolio-1.59.3/wbportfolio/viewsets/transactions/trades.py +342 -0
- wbportfolio-1.49.6/.gitignore +0 -181
- wbportfolio-1.49.6/PKG-INFO +0 -25
- wbportfolio-1.49.6/pyproject.toml +0 -56
- wbportfolio-1.49.6/wbportfolio/admin/__init__.py +0 -12
- wbportfolio-1.49.6/wbportfolio/admin/indexes.py +0 -15
- wbportfolio-1.49.6/wbportfolio/admin/portfolio.py +0 -132
- wbportfolio-1.49.6/wbportfolio/admin/product_groups.py +0 -44
- wbportfolio-1.49.6/wbportfolio/admin/products.py +0 -81
- wbportfolio-1.49.6/wbportfolio/admin/transactions/__init__.py +0 -6
- wbportfolio-1.49.6/wbportfolio/admin/transactions/dividends.py +0 -15
- wbportfolio-1.49.6/wbportfolio/admin/transactions/fees.py +0 -36
- wbportfolio-1.49.6/wbportfolio/admin/transactions/rebalancing.py +0 -26
- wbportfolio-1.49.6/wbportfolio/admin/transactions/trades.py +0 -50
- wbportfolio-1.49.6/wbportfolio/admin/transactions/transactions.py +0 -38
- wbportfolio-1.49.6/wbportfolio/analysis/claims.py +0 -241
- wbportfolio-1.49.6/wbportfolio/contrib/company_portfolio/configs/display.py +0 -182
- wbportfolio-1.49.6/wbportfolio/contrib/company_portfolio/configs/previews.py +0 -37
- wbportfolio-1.49.6/wbportfolio/contrib/company_portfolio/filters.py +0 -127
- wbportfolio-1.49.6/wbportfolio/contrib/company_portfolio/models.py +0 -331
- wbportfolio-1.49.6/wbportfolio/contrib/company_portfolio/scripts.py +0 -76
- wbportfolio-1.49.6/wbportfolio/contrib/company_portfolio/serializers.py +0 -303
- wbportfolio-1.49.6/wbportfolio/contrib/company_portfolio/tasks.py +0 -23
- wbportfolio-1.49.6/wbportfolio/contrib/company_portfolio/tests/conftest.py +0 -149
- wbportfolio-1.49.6/wbportfolio/defaults/fees/default.py +0 -93
- wbportfolio-1.49.6/wbportfolio/factories/__init__.py +0 -27
- wbportfolio-1.49.6/wbportfolio/factories/assets.py +0 -81
- wbportfolio-1.49.6/wbportfolio/factories/dividends.py +0 -16
- wbportfolio-1.49.6/wbportfolio/factories/fees.py +0 -16
- wbportfolio-1.49.6/wbportfolio/factories/portfolio_cash_targets.py +0 -16
- wbportfolio-1.49.6/wbportfolio/factories/portfolio_swing_pricings.py +0 -16
- wbportfolio-1.49.6/wbportfolio/factories/portfolios.py +0 -50
- wbportfolio-1.49.6/wbportfolio/factories/product_groups.py +0 -36
- wbportfolio-1.49.6/wbportfolio/factories/products.py +0 -75
- wbportfolio-1.49.6/wbportfolio/factories/rebalancing.py +0 -23
- wbportfolio-1.49.6/wbportfolio/factories/trades.py +0 -40
- wbportfolio-1.49.6/wbportfolio/factories/transactions.py +0 -22
- wbportfolio-1.49.6/wbportfolio/fdm/tasks.py +0 -13
- wbportfolio-1.49.6/wbportfolio/filters/__init__.py +0 -32
- wbportfolio-1.49.6/wbportfolio/filters/assets.py +0 -484
- wbportfolio-1.49.6/wbportfolio/filters/assets_and_net_new_money_progression.py +0 -43
- wbportfolio-1.49.6/wbportfolio/filters/esg.py +0 -23
- wbportfolio-1.49.6/wbportfolio/filters/performances.py +0 -172
- wbportfolio-1.49.6/wbportfolio/filters/portfolios.py +0 -44
- wbportfolio-1.49.6/wbportfolio/filters/positions.py +0 -179
- wbportfolio-1.49.6/wbportfolio/filters/products.py +0 -154
- wbportfolio-1.49.6/wbportfolio/filters/roles.py +0 -27
- wbportfolio-1.49.6/wbportfolio/filters/signals.py +0 -73
- wbportfolio-1.49.6/wbportfolio/filters/transactions/__init__.py +0 -21
- wbportfolio-1.49.6/wbportfolio/filters/transactions/claim.py +0 -442
- wbportfolio-1.49.6/wbportfolio/filters/transactions/fees.py +0 -67
- wbportfolio-1.49.6/wbportfolio/filters/transactions/trades.py +0 -245
- wbportfolio-1.49.6/wbportfolio/filters/transactions/transactions.py +0 -99
- wbportfolio-1.49.6/wbportfolio/import_export/backends/ubs/__init__.py +0 -3
- wbportfolio-1.49.6/wbportfolio/import_export/backends/ubs/asset_position.py +0 -45
- wbportfolio-1.49.6/wbportfolio/import_export/backends/ubs/fees.py +0 -63
- wbportfolio-1.49.6/wbportfolio/import_export/backends/ubs/instrument_price.py +0 -44
- wbportfolio-1.49.6/wbportfolio/import_export/backends/utils.py +0 -58
- wbportfolio-1.49.6/wbportfolio/import_export/handlers/asset_position.py +0 -168
- wbportfolio-1.49.6/wbportfolio/import_export/handlers/dividend.py +0 -80
- wbportfolio-1.49.6/wbportfolio/import_export/handlers/fees.py +0 -59
- wbportfolio-1.49.6/wbportfolio/import_export/handlers/trade.py +0 -216
- wbportfolio-1.49.6/wbportfolio/import_export/parsers/default_mapping.py +0 -30
- wbportfolio-1.49.6/wbportfolio/import_export/parsers/jpmorgan/customer_trade.py +0 -72
- wbportfolio-1.49.6/wbportfolio/import_export/parsers/jpmorgan/fees.py +0 -65
- wbportfolio-1.49.6/wbportfolio/import_export/parsers/jpmorgan/strategy.py +0 -117
- wbportfolio-1.49.6/wbportfolio/import_export/parsers/jpmorgan/valuation.py +0 -42
- wbportfolio-1.49.6/wbportfolio/import_export/parsers/leonteq/customer_trade.py +0 -48
- wbportfolio-1.49.6/wbportfolio/import_export/parsers/leonteq/equity.py +0 -82
- wbportfolio-1.49.6/wbportfolio/import_export/parsers/leonteq/fees.py +0 -71
- wbportfolio-1.49.6/wbportfolio/import_export/parsers/leonteq/trade.py +0 -95
- wbportfolio-1.49.6/wbportfolio/import_export/parsers/leonteq/valuation.py +0 -40
- wbportfolio-1.49.6/wbportfolio/import_export/parsers/natixis/customer_trade.py +0 -63
- wbportfolio-1.49.6/wbportfolio/import_export/parsers/natixis/d1_customer_trade.py +0 -67
- wbportfolio-1.49.6/wbportfolio/import_export/parsers/natixis/d1_equity.py +0 -81
- wbportfolio-1.49.6/wbportfolio/import_export/parsers/natixis/d1_fees.py +0 -59
- wbportfolio-1.49.6/wbportfolio/import_export/parsers/natixis/d1_trade.py +0 -71
- wbportfolio-1.49.6/wbportfolio/import_export/parsers/natixis/d1_valuation.py +0 -42
- wbportfolio-1.49.6/wbportfolio/import_export/parsers/natixis/dividend.py +0 -53
- wbportfolio-1.49.6/wbportfolio/import_export/parsers/natixis/equity.py +0 -60
- wbportfolio-1.49.6/wbportfolio/import_export/parsers/natixis/fees.py +0 -53
- wbportfolio-1.49.6/wbportfolio/import_export/parsers/natixis/trade.py +0 -64
- wbportfolio-1.49.6/wbportfolio/import_export/parsers/natixis/utils.py +0 -77
- wbportfolio-1.49.6/wbportfolio/import_export/parsers/natixis/valuation.py +0 -46
- wbportfolio-1.49.6/wbportfolio/import_export/parsers/sg_lux/customer_trade_pending_slk.py +0 -141
- wbportfolio-1.49.6/wbportfolio/import_export/parsers/sg_lux/customer_trade_slk.py +0 -81
- wbportfolio-1.49.6/wbportfolio/import_export/parsers/sg_lux/equity.py +0 -160
- wbportfolio-1.49.6/wbportfolio/import_export/parsers/sg_lux/fees.py +0 -56
- wbportfolio-1.49.6/wbportfolio/import_export/parsers/sg_lux/perf_fees.py +0 -51
- wbportfolio-1.49.6/wbportfolio/import_export/parsers/sg_lux/registers.py +0 -211
- wbportfolio-1.49.6/wbportfolio/import_export/parsers/sg_lux/sylk.py +0 -248
- wbportfolio-1.49.6/wbportfolio/import_export/parsers/sg_lux/utils.py +0 -36
- wbportfolio-1.49.6/wbportfolio/import_export/parsers/sg_lux/valuation.py +0 -53
- wbportfolio-1.49.6/wbportfolio/import_export/parsers/societe_generale/customer_trade.py +0 -55
- wbportfolio-1.49.6/wbportfolio/import_export/parsers/societe_generale/strategy.py +0 -93
- wbportfolio-1.49.6/wbportfolio/import_export/parsers/societe_generale/valuation.py +0 -38
- wbportfolio-1.49.6/wbportfolio/import_export/parsers/tellco/customer_trade.py +0 -64
- wbportfolio-1.49.6/wbportfolio/import_export/parsers/tellco/equity.py +0 -87
- wbportfolio-1.49.6/wbportfolio/import_export/parsers/tellco/valuation.py +0 -52
- wbportfolio-1.49.6/wbportfolio/import_export/parsers/ubs/api/fees.py +0 -32
- wbportfolio-1.49.6/wbportfolio/import_export/parsers/ubs/customer_trade.py +0 -61
- wbportfolio-1.49.6/wbportfolio/import_export/parsers/ubs/equity.py +0 -98
- wbportfolio-1.49.6/wbportfolio/import_export/parsers/ubs/historical_customer_trade.py +0 -68
- wbportfolio-1.49.6/wbportfolio/import_export/parsers/ubs/valuation.py +0 -53
- wbportfolio-1.49.6/wbportfolio/import_export/parsers/vontobel/customer_trade.py +0 -55
- wbportfolio-1.49.6/wbportfolio/import_export/parsers/vontobel/historical_customer_trade.py +0 -41
- wbportfolio-1.49.6/wbportfolio/import_export/parsers/vontobel/instrument.py +0 -34
- wbportfolio-1.49.6/wbportfolio/import_export/parsers/vontobel/management_fees.py +0 -87
- wbportfolio-1.49.6/wbportfolio/import_export/parsers/vontobel/performance_fees.py +0 -36
- wbportfolio-1.49.6/wbportfolio/import_export/parsers/vontobel/trade.py +0 -39
- wbportfolio-1.49.6/wbportfolio/import_export/parsers/vontobel/utils.py +0 -17
- wbportfolio-1.49.6/wbportfolio/import_export/parsers/vontobel/valuation_api.py +0 -23
- wbportfolio-1.49.6/wbportfolio/import_export/resources/trades.py +0 -55
- wbportfolio-1.49.6/wbportfolio/import_export/utils.py +0 -42
- wbportfolio-1.49.6/wbportfolio/jinja2/wbportfolio/sql/aum_nnm.sql +0 -119
- wbportfolio-1.49.6/wbportfolio/metric/backends/base.py +0 -75
- wbportfolio-1.49.6/wbportfolio/migrations/0059_fees_unique_fees.py +0 -51
- wbportfolio-1.49.6/wbportfolio/models/__init__.py +0 -20
- wbportfolio-1.49.6/wbportfolio/models/adjustments.py +0 -252
- wbportfolio-1.49.6/wbportfolio/models/asset.py +0 -895
- wbportfolio-1.49.6/wbportfolio/models/custodians.py +0 -101
- wbportfolio-1.49.6/wbportfolio/models/exceptions.py +0 -2
- wbportfolio-1.49.6/wbportfolio/models/graphs/portfolio.py +0 -161
- wbportfolio-1.49.6/wbportfolio/models/graphs/utils.py +0 -83
- wbportfolio-1.49.6/wbportfolio/models/indexes.py +0 -22
- wbportfolio-1.49.6/wbportfolio/models/llm/wbcrm/analyze_relationship.py +0 -58
- wbportfolio-1.49.6/wbportfolio/models/mixins/instruments.py +0 -160
- wbportfolio-1.49.6/wbportfolio/models/mixins/liquidity_stress_test.py +0 -1307
- wbportfolio-1.49.6/wbportfolio/models/portfolio.py +0 -1324
- wbportfolio-1.49.6/wbportfolio/models/portfolio_cash_flow.py +0 -169
- wbportfolio-1.49.6/wbportfolio/models/portfolio_relationship.py +0 -139
- wbportfolio-1.49.6/wbportfolio/models/products.py +0 -604
- wbportfolio-1.49.6/wbportfolio/models/reconciliations/account_reconciliations.py +0 -103
- wbportfolio-1.49.6/wbportfolio/models/roles.py +0 -208
- wbportfolio-1.49.6/wbportfolio/models/transactions/__init__.py +0 -8
- wbportfolio-1.49.6/wbportfolio/models/transactions/claim.py +0 -635
- wbportfolio-1.49.6/wbportfolio/models/transactions/dividends.py +0 -15
- wbportfolio-1.49.6/wbportfolio/models/transactions/expiry.py +0 -7
- wbportfolio-1.49.6/wbportfolio/models/transactions/fees.py +0 -154
- wbportfolio-1.49.6/wbportfolio/models/transactions/rebalancing.py +0 -185
- wbportfolio-1.49.6/wbportfolio/models/transactions/trade_proposals.py +0 -648
- wbportfolio-1.49.6/wbportfolio/models/transactions/trades.py +0 -752
- wbportfolio-1.49.6/wbportfolio/models/transactions/transactions.py +0 -205
- wbportfolio-1.49.6/wbportfolio/models/utils.py +0 -13
- wbportfolio-1.49.6/wbportfolio/permissions.py +0 -13
- wbportfolio-1.49.6/wbportfolio/pms/analytics/portfolio.py +0 -37
- wbportfolio-1.49.6/wbportfolio/pms/trading/__init__.py +0 -1
- wbportfolio-1.49.6/wbportfolio/pms/trading/handler.py +0 -161
- wbportfolio-1.49.6/wbportfolio/pms/typing.py +0 -180
- wbportfolio-1.49.6/wbportfolio/rebalancing/base.py +0 -20
- wbportfolio-1.49.6/wbportfolio/rebalancing/decorators.py +0 -17
- wbportfolio-1.49.6/wbportfolio/rebalancing/models/composite.py +0 -48
- wbportfolio-1.49.6/wbportfolio/rebalancing/models/equally_weighted.py +0 -32
- wbportfolio-1.49.6/wbportfolio/rebalancing/models/market_capitalization_weighted.py +0 -126
- wbportfolio-1.49.6/wbportfolio/rebalancing/models/model_portfolio.py +0 -41
- wbportfolio-1.49.6/wbportfolio/risk_management/backends/__init__.py +0 -11
- wbportfolio-1.49.6/wbportfolio/risk_management/backends/controversy_portfolio.py +0 -64
- wbportfolio-1.49.6/wbportfolio/risk_management/backends/exposure_portfolio.py +0 -235
- wbportfolio-1.49.6/wbportfolio/risk_management/backends/instrument_list_portfolio.py +0 -90
- wbportfolio-1.49.6/wbportfolio/risk_management/backends/liquidity_risk.py +0 -87
- wbportfolio-1.49.6/wbportfolio/risk_management/backends/mixins.py +0 -221
- wbportfolio-1.49.6/wbportfolio/risk_management/tests/test_exposure_portfolio.py +0 -142
- wbportfolio-1.49.6/wbportfolio/risk_management/tests/test_stop_loss_instrument.py +0 -111
- wbportfolio-1.49.6/wbportfolio/risk_management/tests/test_stop_loss_portfolio.py +0 -120
- wbportfolio-1.49.6/wbportfolio/serializers/__init__.py +0 -42
- wbportfolio-1.49.6/wbportfolio/serializers/portfolios.py +0 -190
- wbportfolio-1.49.6/wbportfolio/serializers/positions.py +0 -77
- wbportfolio-1.49.6/wbportfolio/serializers/products.py +0 -328
- wbportfolio-1.49.6/wbportfolio/serializers/rebalancing.py +0 -57
- wbportfolio-1.49.6/wbportfolio/serializers/signals.py +0 -152
- wbportfolio-1.49.6/wbportfolio/serializers/transactions/__init__.py +0 -24
- wbportfolio-1.49.6/wbportfolio/serializers/transactions/claim.py +0 -311
- wbportfolio-1.49.6/wbportfolio/serializers/transactions/dividends.py +0 -18
- wbportfolio-1.49.6/wbportfolio/serializers/transactions/expiry.py +0 -18
- wbportfolio-1.49.6/wbportfolio/serializers/transactions/fees.py +0 -33
- wbportfolio-1.49.6/wbportfolio/serializers/transactions/trade_proposals.py +0 -76
- wbportfolio-1.49.6/wbportfolio/serializers/transactions/trades.py +0 -282
- wbportfolio-1.49.6/wbportfolio/serializers/transactions/transactions.py +0 -85
- wbportfolio-1.49.6/wbportfolio/tasks.py +0 -51
- wbportfolio-1.49.6/wbportfolio/tests/conftest.py +0 -157
- wbportfolio-1.49.6/wbportfolio/tests/models/test_assets.py +0 -201
- wbportfolio-1.49.6/wbportfolio/tests/models/test_imports.py +0 -196
- wbportfolio-1.49.6/wbportfolio/tests/models/test_portfolios.py +0 -1179
- wbportfolio-1.49.6/wbportfolio/tests/models/test_products.py +0 -216
- wbportfolio-1.49.6/wbportfolio/tests/models/test_splits.py +0 -234
- wbportfolio-1.49.6/wbportfolio/tests/models/transactions/test_fees.py +0 -66
- wbportfolio-1.49.6/wbportfolio/tests/models/transactions/test_rebalancing.py +0 -85
- wbportfolio-1.49.6/wbportfolio/tests/models/transactions/test_trade_proposals.py +0 -381
- wbportfolio-1.49.6/wbportfolio/tests/models/transactions/test_trades.py +0 -219
- wbportfolio-1.49.6/wbportfolio/tests/pms/test_analytics.py +0 -35
- wbportfolio-1.49.6/wbportfolio/tests/rebalancing/test_models.py +0 -166
- wbportfolio-1.49.6/wbportfolio/tests/signals.py +0 -145
- wbportfolio-1.49.6/wbportfolio/tests/tests.py +0 -33
- wbportfolio-1.49.6/wbportfolio/tests/viewsets/test_products.py +0 -93
- wbportfolio-1.49.6/wbportfolio/urls.py +0 -261
- wbportfolio-1.49.6/wbportfolio/viewsets/__init__.py +0 -54
- wbportfolio-1.49.6/wbportfolio/viewsets/adjustments.py +0 -47
- wbportfolio-1.49.6/wbportfolio/viewsets/assets.py +0 -573
- wbportfolio-1.49.6/wbportfolio/viewsets/charts/__init__.py +0 -1
- wbportfolio-1.49.6/wbportfolio/viewsets/charts/assets.py +0 -249
- wbportfolio-1.49.6/wbportfolio/viewsets/configs/buttons/__init__.py +0 -22
- wbportfolio-1.49.6/wbportfolio/viewsets/configs/buttons/assets.py +0 -146
- wbportfolio-1.49.6/wbportfolio/viewsets/configs/buttons/mixins.py +0 -69
- wbportfolio-1.49.6/wbportfolio/viewsets/configs/buttons/portfolios.py +0 -129
- wbportfolio-1.49.6/wbportfolio/viewsets/configs/buttons/products.py +0 -41
- wbportfolio-1.49.6/wbportfolio/viewsets/configs/buttons/trade_proposals.py +0 -66
- wbportfolio-1.49.6/wbportfolio/viewsets/configs/display/__init__.py +0 -62
- wbportfolio-1.49.6/wbportfolio/viewsets/configs/display/assets.py +0 -255
- wbportfolio-1.49.6/wbportfolio/viewsets/configs/display/fees.py +0 -133
- wbportfolio-1.49.6/wbportfolio/viewsets/configs/display/portfolios.py +0 -215
- wbportfolio-1.49.6/wbportfolio/viewsets/configs/display/products.py +0 -236
- wbportfolio-1.49.6/wbportfolio/viewsets/configs/display/rebalancing.py +0 -27
- wbportfolio-1.49.6/wbportfolio/viewsets/configs/display/reconciliations.py +0 -151
- wbportfolio-1.49.6/wbportfolio/viewsets/configs/display/trade_proposals.py +0 -100
- wbportfolio-1.49.6/wbportfolio/viewsets/configs/display/trades.py +0 -399
- wbportfolio-1.49.6/wbportfolio/viewsets/configs/display/transactions.py +0 -55
- wbportfolio-1.49.6/wbportfolio/viewsets/configs/endpoints/__init__.py +0 -77
- wbportfolio-1.49.6/wbportfolio/viewsets/configs/endpoints/adjustments.py +0 -17
- wbportfolio-1.49.6/wbportfolio/viewsets/configs/endpoints/assets.py +0 -127
- wbportfolio-1.49.6/wbportfolio/viewsets/configs/endpoints/claim.py +0 -107
- wbportfolio-1.49.6/wbportfolio/viewsets/configs/endpoints/esg.py +0 -14
- wbportfolio-1.49.6/wbportfolio/viewsets/configs/endpoints/fees.py +0 -26
- wbportfolio-1.49.6/wbportfolio/viewsets/configs/endpoints/portfolio_relationship.py +0 -23
- wbportfolio-1.49.6/wbportfolio/viewsets/configs/endpoints/portfolios.py +0 -59
- wbportfolio-1.49.6/wbportfolio/viewsets/configs/endpoints/positions.py +0 -18
- wbportfolio-1.49.6/wbportfolio/viewsets/configs/endpoints/product_performance.py +0 -29
- wbportfolio-1.49.6/wbportfolio/viewsets/configs/endpoints/products.py +0 -37
- wbportfolio-1.49.6/wbportfolio/viewsets/configs/endpoints/trade_proposals.py +0 -18
- wbportfolio-1.49.6/wbportfolio/viewsets/configs/endpoints/trades.py +0 -92
- wbportfolio-1.49.6/wbportfolio/viewsets/configs/endpoints/transactions.py +0 -23
- wbportfolio-1.49.6/wbportfolio/viewsets/configs/menu/__init__.py +0 -30
- wbportfolio-1.49.6/wbportfolio/viewsets/configs/menu/trades.py +0 -18
- wbportfolio-1.49.6/wbportfolio/viewsets/configs/menu/transactions.py +0 -9
- wbportfolio-1.49.6/wbportfolio/viewsets/configs/titles/__init__.py +0 -65
- wbportfolio-1.49.6/wbportfolio/viewsets/configs/titles/fees.py +0 -26
- wbportfolio-1.49.6/wbportfolio/viewsets/configs/titles/transactions.py +0 -9
- wbportfolio-1.49.6/wbportfolio/viewsets/esg.py +0 -166
- wbportfolio-1.49.6/wbportfolio/viewsets/mixins.py +0 -49
- wbportfolio-1.49.6/wbportfolio/viewsets/portfolios.py +0 -354
- wbportfolio-1.49.6/wbportfolio/viewsets/positions.py +0 -293
- wbportfolio-1.49.6/wbportfolio/viewsets/products.py +0 -530
- wbportfolio-1.49.6/wbportfolio/viewsets/reconciliations.py +0 -161
- wbportfolio-1.49.6/wbportfolio/viewsets/signals.py +0 -43
- wbportfolio-1.49.6/wbportfolio/viewsets/transactions/__init__.py +0 -41
- wbportfolio-1.49.6/wbportfolio/viewsets/transactions/claim.py +0 -974
- wbportfolio-1.49.6/wbportfolio/viewsets/transactions/fees.py +0 -191
- wbportfolio-1.49.6/wbportfolio/viewsets/transactions/rebalancing.py +0 -31
- wbportfolio-1.49.6/wbportfolio/viewsets/transactions/trade_proposals.py +0 -139
- wbportfolio-1.49.6/wbportfolio/viewsets/transactions/trades.py +0 -519
- wbportfolio-1.49.6/wbportfolio/viewsets/transactions/transactions.py +0 -122
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/LICENSE +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/__init__.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/admin/asset.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/admin/custodians.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/admin/portfolio_relationships.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/admin/reconciliations.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/admin/registers.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/admin/roles.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/admin/transactions/claim.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/analysis/__init__.py +0 -0
- {wbportfolio-1.49.6/wbportfolio/contrib → wbportfolio-1.59.3/wbportfolio/api_clients}/__init__.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/apps.py +0 -0
- {wbportfolio-1.49.6/wbportfolio/contrib/company_portfolio → wbportfolio-1.59.3/wbportfolio/contrib}/__init__.py +0 -0
- {wbportfolio-1.49.6/wbportfolio/contrib/company_portfolio/migrations → wbportfolio-1.59.3/wbportfolio/contrib/company_portfolio}/__init__.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/contrib/company_portfolio/admin.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/contrib/company_portfolio/apps.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/contrib/company_portfolio/configs/__init__.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/contrib/company_portfolio/configs/endpoints.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/contrib/company_portfolio/constants.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/contrib/company_portfolio/dynamic_preferences_registry.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/contrib/company_portfolio/factories.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/contrib/company_portfolio/management.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/contrib/company_portfolio/migrations/0001_initial.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/contrib/company_portfolio/tests/test_models.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/contrib/company_portfolio/urls.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/contrib/company_portfolio/viewsets.py +0 -0
- {wbportfolio-1.49.6/wbportfolio/defaults/fees → wbportfolio-1.59.3/wbportfolio/defaults}/__init__.py +0 -0
- {wbportfolio-1.49.6/wbportfolio/fdm → wbportfolio-1.59.3/wbportfolio/defaults/fees}/__init__.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/dynamic_preferences_registry.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/factories/adjustments.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/factories/claim.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/factories/custodians.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/factories/indexes.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/factories/portfolio_cash_flow.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/factories/reconciliations.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/factories/roles.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/filters/custodians.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/filters/transactions/mixins.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/fixtures/product_factsheets.yaml +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/fixtures/wbportfolio.yaml.gz +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/fixtures/wbrisk_management.yaml.gz +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/import_export/__init__.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/import_export/backends/__init__.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/import_export/backends/refinitiv/adjustment.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/import_export/backends/ubs/mixin.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/import_export/backends/wbfdm/__init__.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/import_export/backends/wbfdm/adjustment.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/import_export/backends/wbfdm/dividend.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/import_export/backends/wbfdm/mixin.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/import_export/handlers/__init__.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/import_export/handlers/adjustment.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/import_export/handlers/portfolio_cash_flow.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/import_export/handlers/register.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/import_export/parsers/__init__.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/import_export/parsers/jpmorgan/__init__.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/import_export/parsers/leonteq/__init__.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/import_export/parsers/natixis/__init__.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/import_export/parsers/refinitiv/__init__.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/import_export/parsers/refinitiv/adjustment.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/import_export/parsers/sg_lux/__init__.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/import_export/parsers/sg_lux/custodian_positions.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/import_export/parsers/sg_lux/customer_trade.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/import_export/parsers/sg_lux/customer_trade_without_pw.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/import_export/parsers/sg_lux/portfolio_cash_flow.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/import_export/parsers/sg_lux/portfolio_future_cash_flow.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/import_export/parsers/societe_generale/__init__.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/import_export/parsers/tellco/__init__.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/import_export/parsers/ubs/__init__.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/import_export/parsers/ubs/api/__init__.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/import_export/parsers/ubs/api/asset_position.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/import_export/parsers/ubs/api/instrument_price.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/import_export/parsers/ubs/api/utils.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/import_export/parsers/vontobel/__init__.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/import_export/parsers/vontobel/asset_position.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/import_export/parsers/vontobel/valuation.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/import_export/resources/__init__.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/import_export/resources/assets.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/kpi_handlers/nnm.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/metric/__init__.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/metric/backends/__init__.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/metric/backends/constants.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/metric/backends/portfolio_base.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/metric/backends/portfolio_esg.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/metric/tests/__init__.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/metric/tests/conftest.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/metric/tests/test_portfolio_base.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/metric/tests/test_portfolio_esg.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/migrations/0001_initial_squashed.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/migrations/0002_product_default_sub_account_squashed_0039_alter_assetallocation_company_and_more.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/migrations/0040_instrument_financial_instrument.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/migrations/0041_remove_listresearch_research_ptr_and_more.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/migrations/0042_instrumentlist_instrumentlistthroughmodel_and_more.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/migrations/0043_alter_instrumentlistthroughmodel_options_and_more.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/migrations/0044_alter_instrumentlist_identifier.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/migrations/0045_alter_instrument_financial_instrument.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/migrations/0046_add_product_default_account.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/migrations/0047_remove_product_default_sub_account.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/migrations/0048_alter_trade_status.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/migrations/0049_trade_claimed_shares.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/migrations/0050_fees_fee_date_fees_wbportfolio_transac_1f7a29_idx.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/migrations/0051_delete_macroreview.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/migrations/0052_remove_cash_instrument_ptr_and_more.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/migrations/0053_remove_product_group.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/migrations/0054_portfolioinstrumentpreferredclassificationthroughmodel_and_more.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/migrations/0055_remove_product__custom_management_rebates_and_more.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/migrations/0056_remove_companyportfoliodata_assets_under_management_currency_and_more.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/migrations/0057_alter_portfolio_preferred_instrument_classifications_and_more.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/migrations/0058_pmsinstrument.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/migrations/0060_alter_portfolioportfoliothroughmodel_type.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/migrations/0061_portfolio_bank_accounts_product_bank_account_and_more.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/migrations/0062_alter_dailyportfoliocashflow_options.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/migrations/0063_accountreconciliation_accountreconciliationline_and_more.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/migrations/0064_alter_portfolio_managers_portfolio_is_tracked_and_more.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/migrations/0065_alter_portfolio_managers_claim_as_shares_and_more.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/migrations/0066_assetposition_initial_shares_at_custodian_and_more.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/migrations/0067_assetposition_unique_asset_position.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/migrations/0068_trade_internal_trade_trade_marked_as_internal_and_more.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/migrations/0069_remove_portfolio_is_invested_and_more.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/migrations/0070_remove_assetposition_unique_asset_position_and_more.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/migrations/0071_alter_trade_options_alter_trade_order.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/migrations/0072_trade_diff_shares.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/migrations/0073_remove_product_price_computation_and_more.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/migrations/0074_alter_rebalancer_frequency_and_more.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/migrations/0075_portfolio_initial_position_date_and_more.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/migrations/0076_alter_dividendtransaction_price_and_more.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/migrations/__init__.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/models/graphs/__init__.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/models/mixins/__init__.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/models/portfolio_cash_targets.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/models/portfolio_swing_pricings.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/models/product_groups.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/models/reconciliations/__init__.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/models/reconciliations/account_reconciliation_lines.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/models/reconciliations/reconciliations.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/models/registers.py +0 -0
- {wbportfolio-1.49.6/wbportfolio/pms → wbportfolio-1.59.3/wbportfolio/order_routing/tests}/__init__.py +0 -0
- {wbportfolio-1.49.6/wbportfolio/pms/analytics → wbportfolio-1.59.3/wbportfolio/pms}/__init__.py +0 -0
- {wbportfolio-1.49.6/wbportfolio/pms/statistics → wbportfolio-1.59.3/wbportfolio/pms/analytics}/__init__.py +0 -0
- {wbportfolio-1.49.6/wbportfolio/rebalancing → wbportfolio-1.59.3/wbportfolio/pms/statistics}/__init__.py +0 -0
- {wbportfolio-1.49.6/wbportfolio/reports → wbportfolio-1.59.3/wbportfolio/pms/trading}/__init__.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/preferences.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/rebalancing/models/__init__.py +0 -0
- {wbportfolio-1.49.6/wbportfolio/risk_management/tests → wbportfolio-1.59.3/wbportfolio/reports}/__init__.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/reports/monthly_position_report.py +0 -0
- {wbportfolio-1.49.6/wbportfolio/tests → wbportfolio-1.59.3/wbportfolio/risk_management}/__init__.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/risk_management/backends/accounts.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/risk_management/backends/liquidity_stress_instrument.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/risk_management/backends/product_integrity.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/risk_management/backends/stop_loss_instrument.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/risk_management/backends/stop_loss_portfolio.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/risk_management/backends/ucits_portfolio.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/risk_management/tests/conftest.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/risk_management/tests/test_accounts.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/risk_management/tests/test_controversy_portfolio.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/risk_management/tests/test_instrument_list_portfolio.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/risk_management/tests/test_liquidity_risk.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/risk_management/tests/test_product_integrity.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/risk_management/tests/test_ucits_portfolio.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/serializers/adjustments.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/serializers/assets.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/serializers/custodians.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/serializers/portfolio_cash_flow.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/serializers/portfolio_cash_targets.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/serializers/portfolio_relationship.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/serializers/portfolio_swing_pricing.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/serializers/product_group.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/serializers/reconciliations.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/serializers/registers.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/serializers/roles.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/static/wbportfolio/css/macro_review.css +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/static/wbportfolio/markdown/documentation/account_holding_reconciliation.md +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/static/wbportfolio/markdown/documentation/aggregate_asset_position_liquidity.md +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/static/wbportfolio/markdown/documentation/company.md +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/static/wbportfolio/markdown/documentation/earnings_instrument.md +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/static/wbportfolio/markdown/documentation/financial_analysis_instrument_ratios.md +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/static/wbportfolio/markdown/documentation/financial_statistics.md +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/static/wbportfolio/markdown/documentation/person.md +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/templates/portfolio/email/customer_report.html +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/templates/portfolio/email/customer_trade_notification.html +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/templates/portfolio/email/email_base_template.html +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/templates/portfolio/email/rebalancing_report.html +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/templates/portfolio/macro/macro_review.html +0 -0
- {wbportfolio-1.49.6/wbportfolio/tests/pms → wbportfolio-1.59.3/wbportfolio/tests/analysis}/__init__.py +0 -0
- {wbportfolio-1.49.6/wbportfolio/tests/serializers → wbportfolio-1.59.3/wbportfolio/tests/models/orders}/__init__.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/tests/models/test_account_reconciliation.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/tests/models/test_custodians.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/tests/models/test_customer_trades.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/tests/models/test_dividends.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/tests/models/test_instrument_mixins.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/tests/models/test_merge.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/tests/models/test_portfolio_cash_flow.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/tests/models/test_portfolio_cash_targets.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/tests/models/test_portfolio_swing_pricings.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/tests/models/test_product_groups.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/tests/models/test_roles.py +0 -0
- {wbportfolio-1.49.6/wbportfolio/tests/viewsets → wbportfolio-1.59.3/wbportfolio/tests/models/transactions}/__init__.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/tests/models/transactions/test_claim.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/tests/models/utils.py +0 -0
- {wbportfolio-1.49.6/wbportfolio/tests/viewsets/transactions → wbportfolio-1.59.3/wbportfolio/tests/pms}/__init__.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/tests/serializers/test_claims.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/tests/viewsets/test_assets.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/tests/viewsets/test_performances.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/tests/viewsets/transactions/test_claims.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/utils.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/viewsets/assets_and_net_new_money_progression.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/viewsets/configs/__init__.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/viewsets/configs/buttons/adjustments.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/viewsets/configs/buttons/claims.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/viewsets/configs/buttons/custodians.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/viewsets/configs/buttons/fees.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/viewsets/configs/buttons/reconciliations.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/viewsets/configs/buttons/registers.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/viewsets/configs/buttons/signals.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/viewsets/configs/buttons/trades.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/viewsets/configs/display/adjustments.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/viewsets/configs/display/claim.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/viewsets/configs/display/custodians.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/viewsets/configs/display/esg.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/viewsets/configs/display/portfolio_cash_flow.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/viewsets/configs/display/portfolio_relationship.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/viewsets/configs/display/positions.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/viewsets/configs/display/product_groups.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/viewsets/configs/display/product_performance.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/viewsets/configs/display/registers.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/viewsets/configs/display/roles.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/viewsets/configs/endpoints/custodians.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/viewsets/configs/endpoints/product_groups.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/viewsets/configs/endpoints/rebalancing.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/viewsets/configs/endpoints/reconciliations.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/viewsets/configs/endpoints/roles.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/viewsets/configs/menu/adjustments.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/viewsets/configs/menu/assets.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/viewsets/configs/menu/claim.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/viewsets/configs/menu/custodians.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/viewsets/configs/menu/fees.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/viewsets/configs/menu/instrument_prices.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/viewsets/configs/menu/portfolio_cash_flow.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/viewsets/configs/menu/portfolios.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/viewsets/configs/menu/positions.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/viewsets/configs/menu/product_groups.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/viewsets/configs/menu/product_performance.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/viewsets/configs/menu/products.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/viewsets/configs/menu/reconciliations.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/viewsets/configs/menu/registers.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/viewsets/configs/menu/roles.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/viewsets/configs/previews/__init__.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/viewsets/configs/previews/portfolios.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/viewsets/configs/titles/adjustments.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/viewsets/configs/titles/assets.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/viewsets/configs/titles/assets_and_net_new_money_progression.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/viewsets/configs/titles/claim.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/viewsets/configs/titles/custodians.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/viewsets/configs/titles/esg.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/viewsets/configs/titles/instrument_prices.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/viewsets/configs/titles/portfolios.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/viewsets/configs/titles/positions.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/viewsets/configs/titles/product_groups.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/viewsets/configs/titles/product_performance.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/viewsets/configs/titles/products.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/viewsets/configs/titles/registers.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/viewsets/configs/titles/roles.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/viewsets/configs/titles/trades.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/viewsets/custodians.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/viewsets/portfolio_cash_flow.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/viewsets/portfolio_cash_targets.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/viewsets/portfolio_relationship.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/viewsets/portfolio_swing_pricing.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/viewsets/product_groups.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/viewsets/product_performance.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/viewsets/registers.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/viewsets/roles.py +0 -0
- {wbportfolio-1.49.6 → wbportfolio-1.59.3}/wbportfolio/viewsets/transactions/mixins.py +0 -0
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
~
|
|
2
|
+
|
|
3
|
+
# Docker volumes
|
|
4
|
+
volumes/
|
|
5
|
+
# Poetry auth file
|
|
6
|
+
auth.toml
|
|
7
|
+
|
|
8
|
+
media/*
|
|
9
|
+
media/
|
|
10
|
+
mediafiles/
|
|
11
|
+
mediafiles/*
|
|
12
|
+
test/*
|
|
13
|
+
staticfiles/*
|
|
14
|
+
staticfiles/
|
|
15
|
+
#
|
|
16
|
+
# Byte-compiled / optimized / DLL files
|
|
17
|
+
__pycache__/
|
|
18
|
+
*.py[cod]
|
|
19
|
+
*$py.class
|
|
20
|
+
|
|
21
|
+
# C extensions
|
|
22
|
+
*.so
|
|
23
|
+
|
|
24
|
+
# Distribution / packaging
|
|
25
|
+
.Python
|
|
26
|
+
build/
|
|
27
|
+
develop-eggs/
|
|
28
|
+
dist/
|
|
29
|
+
info/
|
|
30
|
+
downloads/
|
|
31
|
+
eggs/
|
|
32
|
+
.eggs/
|
|
33
|
+
lib/
|
|
34
|
+
lib64/
|
|
35
|
+
parts/
|
|
36
|
+
sdist/
|
|
37
|
+
var/
|
|
38
|
+
wheels/
|
|
39
|
+
share/python-wheels/
|
|
40
|
+
*.egg-info/
|
|
41
|
+
.installed.cfg
|
|
42
|
+
*.egg
|
|
43
|
+
MANIFEST
|
|
44
|
+
|
|
45
|
+
# PyInstaller
|
|
46
|
+
# Usually these files are written by a python script from a template
|
|
47
|
+
# before PyInstaller builds the exe, so as to inject date/other infos into it.
|
|
48
|
+
*.manifest
|
|
49
|
+
*.spec
|
|
50
|
+
|
|
51
|
+
# Installer logs
|
|
52
|
+
pip-log.txt
|
|
53
|
+
pip-delete-this-directory.txt
|
|
54
|
+
|
|
55
|
+
# Unit test / coverage reports
|
|
56
|
+
htmlcov/
|
|
57
|
+
.tox/
|
|
58
|
+
.nox/
|
|
59
|
+
.coverage
|
|
60
|
+
.coverage.*
|
|
61
|
+
.cache
|
|
62
|
+
.dccache
|
|
63
|
+
nosetests.xml
|
|
64
|
+
coverage.xml
|
|
65
|
+
*.cover
|
|
66
|
+
*.py,cover
|
|
67
|
+
.hypothesis/
|
|
68
|
+
.pytest_cache/
|
|
69
|
+
cover/
|
|
70
|
+
report.xml
|
|
71
|
+
*/report.xml
|
|
72
|
+
|
|
73
|
+
# Translations
|
|
74
|
+
*.pot
|
|
75
|
+
|
|
76
|
+
# Django stuff:
|
|
77
|
+
*.log
|
|
78
|
+
local_settings.py
|
|
79
|
+
*.sqlite3
|
|
80
|
+
db.sqlite3-journal
|
|
81
|
+
|
|
82
|
+
# Flask stuff:
|
|
83
|
+
instance/
|
|
84
|
+
.webassets-cache
|
|
85
|
+
|
|
86
|
+
# Scrapy stuff:
|
|
87
|
+
.scrapy
|
|
88
|
+
|
|
89
|
+
# Sphinx documentation
|
|
90
|
+
docs/_build/
|
|
91
|
+
|
|
92
|
+
# PyBuilder
|
|
93
|
+
.pybuilder/
|
|
94
|
+
target/
|
|
95
|
+
|
|
96
|
+
# Jupyter Notebook
|
|
97
|
+
.ipynb_checkpoints
|
|
98
|
+
*.ipynb
|
|
99
|
+
# IPython
|
|
100
|
+
profile_default/
|
|
101
|
+
ipython_config.py
|
|
102
|
+
|
|
103
|
+
# pyenv
|
|
104
|
+
# For a library or package, you might want to ignore these files since the code is
|
|
105
|
+
# intended to run in multiple environments; otherwise, check them in:
|
|
106
|
+
# .python-version
|
|
107
|
+
|
|
108
|
+
# pipenv
|
|
109
|
+
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
|
|
110
|
+
# However, in case of collaboration, if having platform-specific dependencies or dependencies
|
|
111
|
+
# having no cross-platform support, pipenv may install dependencies that don't work, or not
|
|
112
|
+
# install all needed dependencies.
|
|
113
|
+
#Pipfile.lock
|
|
114
|
+
|
|
115
|
+
# PEP 582; used by e.g. github.com/David-OConnor/pyflow
|
|
116
|
+
__pypackages__/
|
|
117
|
+
|
|
118
|
+
# Celery stuff
|
|
119
|
+
celerybeat-schedule
|
|
120
|
+
celerybeat.pid
|
|
121
|
+
|
|
122
|
+
# SageMath parsed files
|
|
123
|
+
*.sage.py
|
|
124
|
+
|
|
125
|
+
# Environments
|
|
126
|
+
.env
|
|
127
|
+
.envrc
|
|
128
|
+
.venv
|
|
129
|
+
env/
|
|
130
|
+
venv/
|
|
131
|
+
ENV/
|
|
132
|
+
env.bak/
|
|
133
|
+
venv.bak/
|
|
134
|
+
.vscode/
|
|
135
|
+
.idea/
|
|
136
|
+
.idea.bkp/
|
|
137
|
+
|
|
138
|
+
# Spyder project settings
|
|
139
|
+
.spyderproject
|
|
140
|
+
.spyproject
|
|
141
|
+
|
|
142
|
+
# Rope project settings
|
|
143
|
+
.ropeproject
|
|
144
|
+
|
|
145
|
+
# mkdocs documentation
|
|
146
|
+
/site
|
|
147
|
+
|
|
148
|
+
# mypy
|
|
149
|
+
.mypy_cache/
|
|
150
|
+
.dmypy.json
|
|
151
|
+
dmypy.json
|
|
152
|
+
|
|
153
|
+
# Pyre type checker
|
|
154
|
+
.pyre/
|
|
155
|
+
|
|
156
|
+
# pytype static type analyzer
|
|
157
|
+
.pytype/
|
|
158
|
+
crm/
|
|
159
|
+
# Cython debug symbols
|
|
160
|
+
cython_debug/
|
|
161
|
+
|
|
162
|
+
# Gitlab Runner
|
|
163
|
+
builds
|
|
164
|
+
builds/
|
|
165
|
+
|
|
166
|
+
# Integrator Office 365 : reverse proxy tunnel for outlook365
|
|
167
|
+
ngrok
|
|
168
|
+
*/ngrok
|
|
169
|
+
/modules/**/system/
|
|
170
|
+
|
|
171
|
+
/modules/wbmailing/files/*
|
|
172
|
+
/modules/wbmailing/mailing/*
|
|
173
|
+
|
|
174
|
+
/projects/*/requirements.txt
|
|
175
|
+
public
|
|
176
|
+
|
|
177
|
+
# Ignore archive localization generated folder
|
|
178
|
+
backend/modules/**/archive/*
|
|
179
|
+
**/**/requirements.txt
|
|
180
|
+
CHANGELOG-*
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: wbportfolio
|
|
3
|
+
Version: 1.59.3
|
|
4
|
+
Author-email: Christopher Wittlinger <c.wittlinger@stainly.com>
|
|
5
|
+
License-File: LICENSE
|
|
6
|
+
Requires-Dist: cryptography==3.4.*
|
|
7
|
+
Requires-Dist: dateparser==1.*
|
|
8
|
+
Requires-Dist: django-storages==1.14.*
|
|
9
|
+
Requires-Dist: fuzzywuzzy==0.*
|
|
10
|
+
Requires-Dist: jinjasql2==0.1.*
|
|
11
|
+
Requires-Dist: msoffcrypto-tool==4.10.*
|
|
12
|
+
Requires-Dist: networkx>=3.4.2
|
|
13
|
+
Requires-Dist: pydot>=3.0.4
|
|
14
|
+
Requires-Dist: python-levenshtein==0.*
|
|
15
|
+
Requires-Dist: reportlab==3.*
|
|
16
|
+
Requires-Dist: scipy>=1
|
|
17
|
+
Requires-Dist: skfolio==0.6.*
|
|
18
|
+
Requires-Dist: wbcompliance
|
|
19
|
+
Requires-Dist: wbcore
|
|
20
|
+
Requires-Dist: wbcrm
|
|
21
|
+
Requires-Dist: wbfdm
|
|
22
|
+
Requires-Dist: wbmailing
|
|
23
|
+
Requires-Dist: wbnews
|
|
24
|
+
Requires-Dist: wbreport
|
|
25
|
+
Requires-Dist: xlrd==2.*
|
|
26
|
+
Requires-Dist: xlsxwriter==3.*
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
[project]
|
|
2
|
+
name = "wbportfolio"
|
|
3
|
+
description = ""
|
|
4
|
+
authors = [{ name = "Christopher Wittlinger", email = "c.wittlinger@stainly.com"}]
|
|
5
|
+
dynamic = ["version"]
|
|
6
|
+
|
|
7
|
+
dependencies = [
|
|
8
|
+
"wbcore",
|
|
9
|
+
"wbcrm",
|
|
10
|
+
"wbfdm",
|
|
11
|
+
"wbcompliance",
|
|
12
|
+
"wbnews",
|
|
13
|
+
"wbreport",
|
|
14
|
+
"wbmailing",
|
|
15
|
+
"cryptography == 3.4.*",
|
|
16
|
+
# Reporting Tools
|
|
17
|
+
"xlrd == 2.*",
|
|
18
|
+
"XlsxWriter == 3.*",
|
|
19
|
+
# MS Office Crypto Tools
|
|
20
|
+
"msoffcrypto-tool == 4.10.*",
|
|
21
|
+
# String pattern matching
|
|
22
|
+
"dateparser == 1.*",
|
|
23
|
+
"scipy >= 1",
|
|
24
|
+
"fuzzywuzzy == 0.*",
|
|
25
|
+
"python-Levenshtein == 0.*",
|
|
26
|
+
"reportlab == 3.*",
|
|
27
|
+
"django-storages == 1.14.*", # handling silk file is dependant of the django storage version. Version 1.14.* drops support for django 4
|
|
28
|
+
"jinjasql2 == 0.1.*",
|
|
29
|
+
"skfolio == 0.6.*",
|
|
30
|
+
"pydot>=3.0.4",
|
|
31
|
+
"networkx>=3.4.2",
|
|
32
|
+
]
|
|
33
|
+
|
|
34
|
+
[tool.uv.sources]
|
|
35
|
+
wbcore = { workspace = true }
|
|
36
|
+
wbcrm = { workspace = true }
|
|
37
|
+
wbfdm = { workspace = true }
|
|
38
|
+
wbcompliance = { workspace = true }
|
|
39
|
+
wbnews = { workspace = true }
|
|
40
|
+
|
|
41
|
+
[tool.uv]
|
|
42
|
+
package = true
|
|
43
|
+
|
|
44
|
+
[tool.hatch.version]
|
|
45
|
+
path = "../../pyproject.toml"
|
|
46
|
+
|
|
47
|
+
[tool.hatch.build]
|
|
48
|
+
include = ["wbportfolio/**/*"]
|
|
49
|
+
|
|
50
|
+
[build-system]
|
|
51
|
+
requires = ["hatchling"]
|
|
52
|
+
build-backend = "hatchling.build"
|
|
53
|
+
|
|
54
|
+
[tool.pyright]
|
|
55
|
+
venvPath = "../.."
|
|
56
|
+
venv = ".venv"
|
|
57
|
+
reportIncompatibleVariableOverride = false
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# Import CRM Relevant Data
|
|
2
|
+
from .portfolio_relationships import PortfolioInstrumentPreferredClassificationThroughInlineModelAdmin
|
|
3
|
+
from .asset import AssetPositionModelAdmin
|
|
4
|
+
from .custodians import CustodianModelAdmin
|
|
5
|
+
from .products import ProductAdmin
|
|
6
|
+
from .indexes import IndexAdmin
|
|
7
|
+
from .product_groups import ProductGroupAdmin
|
|
8
|
+
from .portfolio import PortfolioModelAdmin
|
|
9
|
+
from .registers import RegisterModelAdmin
|
|
10
|
+
from .roles import PortfolioRoleAdmin
|
|
11
|
+
from .transactions import DividendAdmin, FeesAdmin, TradeAdmin
|
|
12
|
+
from .reconciliations import AccountReconciliationAdmin
|
|
13
|
+
from .orders import OrderProposalAdmin
|
|
14
|
+
from .rebalancing import RebalancingModelAdmin, RebalancerAdmin
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
from django.contrib import admin
|
|
2
|
+
from wbfdm.admin import InstrumentModelAdmin
|
|
3
|
+
|
|
4
|
+
from wbportfolio.models import Index
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
@admin.register(Index)
|
|
8
|
+
class IndexAdmin(InstrumentModelAdmin):
|
|
9
|
+
fieldsets = (
|
|
10
|
+
("Instrument Information", InstrumentModelAdmin.fieldsets[0][1]),
|
|
11
|
+
(
|
|
12
|
+
"Index Information",
|
|
13
|
+
{"fields": (("net_asset_value_computation_method_path", "order_routing_custodian_adapter"),)},
|
|
14
|
+
),
|
|
15
|
+
)
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
from django.contrib import admin
|
|
2
|
+
|
|
3
|
+
from wbportfolio.models import OrderProposal
|
|
4
|
+
|
|
5
|
+
from .orders import OrderTabularInline
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
@admin.register(OrderProposal)
|
|
9
|
+
class OrderProposalAdmin(admin.ModelAdmin):
|
|
10
|
+
search_fields = ["portfolio__name", "comment"]
|
|
11
|
+
|
|
12
|
+
list_display = ("portfolio", "rebalancing_model", "trade_date", "status")
|
|
13
|
+
autocomplete_fields = ["portfolio", "rebalancing_model"]
|
|
14
|
+
inlines = [OrderTabularInline]
|
|
15
|
+
|
|
16
|
+
raw_id_fields = ["portfolio", "creator", "approver"]
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
from django.contrib import admin
|
|
2
|
+
|
|
3
|
+
from wbportfolio.models.orders import Order
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
class OrderTabularInline(admin.TabularInline):
|
|
7
|
+
model = Order
|
|
8
|
+
fk_name = "order_proposal"
|
|
9
|
+
|
|
10
|
+
readonly_fields = [
|
|
11
|
+
"_effective_weight",
|
|
12
|
+
"_target_weight",
|
|
13
|
+
"_effective_shares",
|
|
14
|
+
"_target_shares",
|
|
15
|
+
"total_value",
|
|
16
|
+
"total_value_gross",
|
|
17
|
+
"total_value_fx_portfolio",
|
|
18
|
+
"total_value_gross_fx_portfolio",
|
|
19
|
+
"created",
|
|
20
|
+
"updated",
|
|
21
|
+
]
|
|
22
|
+
|
|
23
|
+
fields = [
|
|
24
|
+
"underlying_instrument",
|
|
25
|
+
"_effective_weight",
|
|
26
|
+
"_target_weight",
|
|
27
|
+
"weighting",
|
|
28
|
+
"shares",
|
|
29
|
+
"daily_return",
|
|
30
|
+
]
|
|
31
|
+
|
|
32
|
+
raw_id_fields = ["underlying_instrument"]
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
from django.contrib import admin
|
|
2
|
+
|
|
3
|
+
from wbportfolio.models import (
|
|
4
|
+
DailyPortfolioCashFlow,
|
|
5
|
+
InstrumentPortfolioThroughModel,
|
|
6
|
+
Portfolio,
|
|
7
|
+
PortfolioBankAccountThroughModel,
|
|
8
|
+
PortfolioCashTarget,
|
|
9
|
+
PortfolioPortfolioThroughModel,
|
|
10
|
+
PortfolioSwingPricing,
|
|
11
|
+
)
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
@admin.register(PortfolioBankAccountThroughModel)
|
|
15
|
+
class PortfolioBankAccountThroughModelModelAdmin(admin.ModelAdmin):
|
|
16
|
+
autocomplete_fields = ["bank_account", "portfolio"]
|
|
17
|
+
list_display = ["bank_account", "portfolio", "portfolio_bank_account_type"]
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
class InstrumentPortfolioThroughModelAdmin(admin.TabularInline):
|
|
21
|
+
model = InstrumentPortfolioThroughModel
|
|
22
|
+
fk_name = "portfolio"
|
|
23
|
+
raw_id_fields = ["portfolio", "instrument"]
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
class PortfolioPortfolioThroughModelInlineAdmin(admin.TabularInline):
|
|
27
|
+
model = PortfolioPortfolioThroughModel
|
|
28
|
+
fk_name = "portfolio"
|
|
29
|
+
fields = ["dependency_portfolio", "type"]
|
|
30
|
+
autocomplete_fields = ["portfolio", "dependency_portfolio"]
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
@admin.register(PortfolioPortfolioThroughModel)
|
|
34
|
+
class PortfolioPortfolioThroughModelModelAdmin(admin.ModelAdmin):
|
|
35
|
+
list_display = ["portfolio", "dependency_portfolio", "type"]
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
class PortfolioBankAccountThroughModelAdmin(admin.TabularInline):
|
|
39
|
+
model = PortfolioBankAccountThroughModel
|
|
40
|
+
fields = ["bank_account", "portfolio_bank_account_type"]
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
@admin.register(Portfolio)
|
|
44
|
+
class PortfolioModelAdmin(admin.ModelAdmin):
|
|
45
|
+
search_fields = ("name",)
|
|
46
|
+
|
|
47
|
+
fieldsets = (
|
|
48
|
+
(
|
|
49
|
+
"Main Information",
|
|
50
|
+
{
|
|
51
|
+
"fields": (
|
|
52
|
+
("name", "updated_at"),
|
|
53
|
+
("currency", "hedged_currency"),
|
|
54
|
+
(
|
|
55
|
+
"invested_timespan",
|
|
56
|
+
"is_manageable",
|
|
57
|
+
"is_active",
|
|
58
|
+
),
|
|
59
|
+
("is_tracked", "only_weighting", "is_lookthrough"),
|
|
60
|
+
)
|
|
61
|
+
},
|
|
62
|
+
),
|
|
63
|
+
(
|
|
64
|
+
"OMS",
|
|
65
|
+
{
|
|
66
|
+
"fields": (
|
|
67
|
+
"default_order_proposal_min_order_value",
|
|
68
|
+
"default_order_proposal_min_weighting",
|
|
69
|
+
"default_order_proposal_total_cash_weight",
|
|
70
|
+
)
|
|
71
|
+
},
|
|
72
|
+
),
|
|
73
|
+
)
|
|
74
|
+
readonly_fields = ["updated_at"]
|
|
75
|
+
list_display = (
|
|
76
|
+
"is_active",
|
|
77
|
+
"name",
|
|
78
|
+
"currency",
|
|
79
|
+
"hedged_currency",
|
|
80
|
+
"is_manageable",
|
|
81
|
+
"is_tracked",
|
|
82
|
+
"is_lookthrough",
|
|
83
|
+
)
|
|
84
|
+
inlines = [
|
|
85
|
+
PortfolioBankAccountThroughModelAdmin,
|
|
86
|
+
InstrumentPortfolioThroughModelAdmin,
|
|
87
|
+
# PortfolioInstrumentPreferredClassificationThroughInlineModelAdmin,
|
|
88
|
+
PortfolioPortfolioThroughModelInlineAdmin,
|
|
89
|
+
]
|
|
90
|
+
raw_id_fields = [
|
|
91
|
+
"depends_on",
|
|
92
|
+
"preferred_instrument_classifications",
|
|
93
|
+
"currency",
|
|
94
|
+
"hedged_currency",
|
|
95
|
+
]
|
|
96
|
+
autocomplete_fields = ["currency", "hedged_currency"]
|
|
97
|
+
|
|
98
|
+
def get_queryset(self, request):
|
|
99
|
+
return Portfolio.all_objects.all()
|
|
100
|
+
|
|
101
|
+
def update_preferred_classification_per_instrument(self, request, queryset):
|
|
102
|
+
for portfolio in queryset.all():
|
|
103
|
+
portfolio.update_preferred_classification_per_instrument()
|
|
104
|
+
|
|
105
|
+
actions = [update_preferred_classification_per_instrument]
|
|
106
|
+
|
|
107
|
+
|
|
108
|
+
@admin.register(DailyPortfolioCashFlow)
|
|
109
|
+
class DailyPortfolioCashFlowModelAdmin(admin.ModelAdmin):
|
|
110
|
+
autocomplete_fields = ["portfolio"]
|
|
111
|
+
raw_id_fields = ["import_source"]
|
|
112
|
+
list_display = [
|
|
113
|
+
"portfolio",
|
|
114
|
+
"value_date",
|
|
115
|
+
]
|
|
116
|
+
readonly_fields = [
|
|
117
|
+
"estimated_total_assets",
|
|
118
|
+
"true_cash",
|
|
119
|
+
"true_cash_pct",
|
|
120
|
+
"cash_pct",
|
|
121
|
+
"target_cash",
|
|
122
|
+
"excess_cash",
|
|
123
|
+
"min_target_cash_pct",
|
|
124
|
+
"target_cash_pct",
|
|
125
|
+
"max_target_cash_pct",
|
|
126
|
+
"proposed_rebalancing",
|
|
127
|
+
"rebalancing",
|
|
128
|
+
]
|
|
129
|
+
|
|
130
|
+
|
|
131
|
+
@admin.register(PortfolioCashTarget)
|
|
132
|
+
class PortfolioCashTargetModelAdmin(admin.ModelAdmin):
|
|
133
|
+
autocomplete_fields = ["portfolio"]
|
|
134
|
+
|
|
135
|
+
|
|
136
|
+
@admin.register(PortfolioSwingPricing)
|
|
137
|
+
class PortfolioSwingPricingModelAdmin(admin.ModelAdmin):
|
|
138
|
+
autocomplete_fields = ["portfolio"]
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
from django.contrib import admin
|
|
2
|
+
from wbfdm.admin.instruments import InstrumentModelAdmin
|
|
3
|
+
|
|
4
|
+
from wbportfolio.models import ProductGroup, ProductGroupRepresentant
|
|
5
|
+
|
|
6
|
+
from .portfolio_relationships import InstrumentPortfolioThroughModelAdmin
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
@admin.register(ProductGroup)
|
|
10
|
+
class ProductGroupAdmin(InstrumentModelAdmin):
|
|
11
|
+
search_fields = ("name", "currency")
|
|
12
|
+
|
|
13
|
+
autocomplete_fields = [
|
|
14
|
+
"management_company",
|
|
15
|
+
"depositary",
|
|
16
|
+
"transfer_agent",
|
|
17
|
+
"administrator",
|
|
18
|
+
"investment_manager",
|
|
19
|
+
"auditor",
|
|
20
|
+
"paying_agent",
|
|
21
|
+
"currency",
|
|
22
|
+
] + InstrumentModelAdmin.autocomplete_fields
|
|
23
|
+
|
|
24
|
+
fieldsets = (
|
|
25
|
+
("Instrument Information", InstrumentModelAdmin.fieldsets[0][1]),
|
|
26
|
+
(
|
|
27
|
+
"Group Information",
|
|
28
|
+
{
|
|
29
|
+
"fields": (
|
|
30
|
+
("type", "category", "umbrella"),
|
|
31
|
+
("management_company", "depositary", "transfer_agent", "administrator"),
|
|
32
|
+
("investment_manager", "auditor", "paying_agent"),
|
|
33
|
+
("net_asset_value_computation_method_path", "order_routing_custodian_adapter", "risk_scale"),
|
|
34
|
+
)
|
|
35
|
+
},
|
|
36
|
+
),
|
|
37
|
+
)
|
|
38
|
+
|
|
39
|
+
inlines = [InstrumentPortfolioThroughModelAdmin]
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
@admin.register(ProductGroupRepresentant)
|
|
43
|
+
class ProductGroupRepresentantModelAdmin(admin.ModelAdmin):
|
|
44
|
+
autocomplete_fields = ["representant"]
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
from django.contrib import admin
|
|
2
|
+
from wbfdm.admin import InstrumentModelAdmin
|
|
3
|
+
|
|
4
|
+
from wbportfolio.models import FeeProductPercentage, Product
|
|
5
|
+
|
|
6
|
+
from .roles import PortfolioRoleInline
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
class FeeProductPercentagTabularInline(admin.TabularInline):
|
|
10
|
+
model = FeeProductPercentage
|
|
11
|
+
fk_name = "product"
|
|
12
|
+
fields = [
|
|
13
|
+
"type",
|
|
14
|
+
"vat_deduction",
|
|
15
|
+
"percent",
|
|
16
|
+
"timespan",
|
|
17
|
+
]
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
@admin.register(Product)
|
|
21
|
+
class ProductAdmin(InstrumentModelAdmin):
|
|
22
|
+
search_fields = ("name", "isin", "ticker")
|
|
23
|
+
list_display = ("name", "ticker", "isin", "bank", "primary_benchmark", "_is_invested")
|
|
24
|
+
autocomplete_fields = [
|
|
25
|
+
"country",
|
|
26
|
+
"jurisdiction",
|
|
27
|
+
"white_label_customers",
|
|
28
|
+
"bank",
|
|
29
|
+
"default_account",
|
|
30
|
+
"parent",
|
|
31
|
+
*InstrumentModelAdmin.autocomplete_fields,
|
|
32
|
+
]
|
|
33
|
+
fieldsets = (
|
|
34
|
+
("Instrument Information", InstrumentModelAdmin.fieldsets[0][1]),
|
|
35
|
+
(
|
|
36
|
+
"Product Information",
|
|
37
|
+
{
|
|
38
|
+
"fields": (
|
|
39
|
+
("share_price", "initial_high_water_mark", "bank"),
|
|
40
|
+
("fee_calculation", "net_asset_value_computation_method_path", "order_routing_custodian_adapter"),
|
|
41
|
+
(
|
|
42
|
+
"white_label_customers",
|
|
43
|
+
"default_account",
|
|
44
|
+
"bank_account",
|
|
45
|
+
),
|
|
46
|
+
)
|
|
47
|
+
},
|
|
48
|
+
),
|
|
49
|
+
(
|
|
50
|
+
"Factsheet",
|
|
51
|
+
{
|
|
52
|
+
"fields": (
|
|
53
|
+
("type_of_return", "asset_class", "legal_structure"),
|
|
54
|
+
("investment_index", "liquidity", "risk_scale"),
|
|
55
|
+
(
|
|
56
|
+
"jurisdiction",
|
|
57
|
+
"dividend",
|
|
58
|
+
"termsheet",
|
|
59
|
+
),
|
|
60
|
+
("external_webpage", "minimum_subscription", "cut_off_time"),
|
|
61
|
+
)
|
|
62
|
+
},
|
|
63
|
+
),
|
|
64
|
+
)
|
|
65
|
+
|
|
66
|
+
inlines = [FeeProductPercentagTabularInline, PortfolioRoleInline, *InstrumentModelAdmin.inlines]
|
|
67
|
+
raw_id_fields = [
|
|
68
|
+
"country",
|
|
69
|
+
"jurisdiction",
|
|
70
|
+
"white_label_customers",
|
|
71
|
+
"bank",
|
|
72
|
+
"default_account",
|
|
73
|
+
"parent",
|
|
74
|
+
*InstrumentModelAdmin.raw_id_fields,
|
|
75
|
+
]
|
|
76
|
+
|
|
77
|
+
def update_preferred_classification_per_instrument(self, request, queryset):
|
|
78
|
+
for product in queryset.all():
|
|
79
|
+
if portfolio := product.portfolio:
|
|
80
|
+
portfolio.update_preferred_classification_per_instrument()
|
|
81
|
+
|
|
82
|
+
actions = [update_preferred_classification_per_instrument]
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
from django.contrib import admin
|
|
2
|
+
|
|
3
|
+
from wbportfolio.models import Rebalancer, RebalancingModel
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
@admin.register(RebalancingModel)
|
|
7
|
+
class RebalancingModelAdmin(admin.ModelAdmin):
|
|
8
|
+
search_fields = ("name",)
|
|
9
|
+
list_display = (
|
|
10
|
+
"name",
|
|
11
|
+
"class_path",
|
|
12
|
+
)
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
@admin.register(Rebalancer)
|
|
16
|
+
class RebalancerAdmin(admin.ModelAdmin):
|
|
17
|
+
search_fields = ("rebalancing_model__name",)
|
|
18
|
+
list_display = (
|
|
19
|
+
"computed_str",
|
|
20
|
+
"rebalancing_model",
|
|
21
|
+
"portfolio",
|
|
22
|
+
"parameters",
|
|
23
|
+
"apply_order_proposal_automatically",
|
|
24
|
+
"activation_date",
|
|
25
|
+
"frequency",
|
|
26
|
+
)
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
from django.contrib import admin
|
|
2
|
+
|
|
3
|
+
from wbportfolio.models import DividendTransaction
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
@admin.register(DividendTransaction)
|
|
7
|
+
class DividendAdmin(admin.ModelAdmin):
|
|
8
|
+
search_fields = ["portfolio__name", "underlying_instrument__computed_str"]
|
|
9
|
+
list_filter = ("distribution_method", "portfolio")
|
|
10
|
+
list_display = (
|
|
11
|
+
"distribution_method",
|
|
12
|
+
"portfolio",
|
|
13
|
+
"underlying_instrument",
|
|
14
|
+
"value_date",
|
|
15
|
+
"currency",
|
|
16
|
+
"currency_fx_rate",
|
|
17
|
+
"total_value",
|
|
18
|
+
"total_value_fx_portfolio",
|
|
19
|
+
)
|
|
20
|
+
fieldsets = (
|
|
21
|
+
(
|
|
22
|
+
"Dividend Information",
|
|
23
|
+
{
|
|
24
|
+
"fields": (
|
|
25
|
+
(
|
|
26
|
+
"portfolio",
|
|
27
|
+
"underlying_instrument",
|
|
28
|
+
"import_source",
|
|
29
|
+
),
|
|
30
|
+
("ex_date", "record_date", "value_date"),
|
|
31
|
+
("currency", "currency_fx_rate"),
|
|
32
|
+
("price", "shares", "retrocession"),
|
|
33
|
+
("total_value", "total_value_gross"),
|
|
34
|
+
("total_value_fx_portfolio", "total_value_gross_fx_portfolio"),
|
|
35
|
+
("created", "updated"),
|
|
36
|
+
("comment",),
|
|
37
|
+
)
|
|
38
|
+
},
|
|
39
|
+
),
|
|
40
|
+
)
|
|
41
|
+
readonly_fields = [
|
|
42
|
+
"total_value",
|
|
43
|
+
"total_value_gross",
|
|
44
|
+
"total_value_fx_portfolio",
|
|
45
|
+
"total_value_gross_fx_portfolio",
|
|
46
|
+
"created",
|
|
47
|
+
"updated",
|
|
48
|
+
]
|
|
49
|
+
autocomplete_fields = ["portfolio", "underlying_instrument", "currency"]
|
|
50
|
+
ordering = ("-value_date",)
|
|
51
|
+
raw_id_fields = ["import_source"]
|