wbportfolio 1.51.1__py2.py3-none-any.whl → 1.51.2rc1__py2.py3-none-any.whl

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

Potentially problematic release.


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

Files changed (28) hide show
  1. wbportfolio/factories/portfolio_cash_targets.py +1 -1
  2. wbportfolio/factories/portfolio_swing_pricings.py +1 -1
  3. wbportfolio/locale/de/LC_MESSAGES/django.mo +0 -0
  4. wbportfolio/locale/de/LC_MESSAGES/django.po +51 -52
  5. wbportfolio/locale/en/LC_MESSAGES/django.mo +0 -0
  6. wbportfolio/locale/en/LC_MESSAGES/django.po +195 -0
  7. wbportfolio/locale/fr/LC_MESSAGES/django.mo +0 -0
  8. wbportfolio/locale/fr/LC_MESSAGES/django.po +52 -53
  9. wbportfolio/serializers/products.py +5 -1
  10. wbportfolio/viewsets/adjustments.py +2 -0
  11. wbportfolio/viewsets/configs/buttons/products.py +15 -4
  12. wbportfolio/viewsets/configs/endpoints/__init__.py +1 -1
  13. wbportfolio/viewsets/configs/endpoints/adjustments.py +7 -7
  14. wbportfolio/viewsets/configs/endpoints/assets.py +6 -60
  15. wbportfolio/viewsets/configs/endpoints/claim.py +0 -9
  16. wbportfolio/viewsets/configs/endpoints/esg.py +0 -8
  17. wbportfolio/viewsets/configs/endpoints/fees.py +2 -14
  18. wbportfolio/viewsets/configs/endpoints/portfolio_relationship.py +0 -7
  19. wbportfolio/viewsets/configs/endpoints/portfolios.py +7 -20
  20. wbportfolio/viewsets/configs/endpoints/positions.py +0 -7
  21. wbportfolio/viewsets/configs/endpoints/product_performance.py +1 -8
  22. wbportfolio/viewsets/configs/endpoints/products.py +0 -6
  23. wbportfolio/viewsets/configs/endpoints/trades.py +5 -6
  24. wbportfolio/viewsets/configs/endpoints/transactions.py +1 -10
  25. {wbportfolio-1.51.1.dist-info → wbportfolio-1.51.2rc1.dist-info}/METADATA +1 -1
  26. {wbportfolio-1.51.1.dist-info → wbportfolio-1.51.2rc1.dist-info}/RECORD +28 -24
  27. {wbportfolio-1.51.1.dist-info → wbportfolio-1.51.2rc1.dist-info}/WHEEL +0 -0
  28. {wbportfolio-1.51.1.dist-info → wbportfolio-1.51.2rc1.dist-info}/licenses/LICENSE +0 -0
@@ -8,7 +8,7 @@ class PortfolioCashTargetFactory(factory.django.DjangoModelFactory):
8
8
  class Meta:
9
9
  model = PortfolioCashTarget
10
10
 
11
- valid_date = factory.Faker("date")
11
+ valid_date = factory.Faker("date_object")
12
12
  portfolio = factory.SubFactory(PortfolioFactory)
13
13
  min_target = factory.Faker("pydecimal", left_digits=0, right_digits=4, max_value=0.01)
14
14
  target = factory.Faker("pydecimal", left_digits=0, right_digits=4, max_value=0.01)
@@ -8,7 +8,7 @@ class PortfolioSwingPricingFactory(factory.django.DjangoModelFactory):
8
8
  class Meta:
9
9
  model = PortfolioSwingPricing
10
10
 
11
- valid_date = factory.Faker("date")
11
+ valid_date = factory.Faker("date_object")
12
12
  portfolio = factory.SubFactory(PortfolioFactory)
13
13
  negative_threshold = factory.Faker("pydecimal", left_digits=0, right_digits=4, min_value=-0.99, max_value=-0.01)
14
14
  negative_swing_factor = factory.Faker("pydecimal", left_digits=0, right_digits=4, min_value=-0.99, max_value=-0.01)
@@ -8,190 +8,189 @@ msgid ""
8
8
  msgstr ""
9
9
  "Project-Id-Version: PACKAGE VERSION\n"
10
10
  "Report-Msgid-Bugs-To: \n"
11
- "POT-Creation-Date: 2025-05-20 09:31+0200\n"
12
- "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
13
- "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
14
- "Language-Team: LANGUAGE <LL@li.org>\n"
15
- "Language: \n"
11
+ "POT-Creation-Date: 2025-05-30 11:37+0200\n"
12
+ "PO-Revision-Date: 2025-05-30 09:40+0000\n"
13
+ "Language-Team: German (https://app.transifex.com/stainly/teams/171242/de/)\n"
16
14
  "MIME-Version: 1.0\n"
17
15
  "Content-Type: text/plain; charset=UTF-8\n"
18
16
  "Content-Transfer-Encoding: 8bit\n"
17
+ "Language: de\n"
19
18
  "Plural-Forms: nplurals=2; plural=(n != 1);\n"
20
- #: wbportfolio/contrib/company_portfolio/configs/display.py:25
21
- #: wbportfolio/contrib/company_portfolio/configs/display.py:29
19
+
20
+ #: contrib/company_portfolio/configs/display.py:25
21
+ #: contrib/company_portfolio/configs/display.py:29
22
22
  msgid "AUM By Product"
23
23
  msgstr ""
24
24
 
25
- #: wbportfolio/contrib/company_portfolio/configs/display.py:44
26
- #: wbportfolio/contrib/company_portfolio/configs/display.py:48
25
+ #: contrib/company_portfolio/configs/display.py:44
26
+ #: contrib/company_portfolio/configs/display.py:48
27
27
  msgid "AUM"
28
28
  msgstr ""
29
29
 
30
- #: wbportfolio/contrib/company_portfolio/configs/display.py:84
31
- #: wbportfolio/contrib/company_portfolio/configs/display.py:88
30
+ #: contrib/company_portfolio/configs/display.py:84
31
+ #: contrib/company_portfolio/configs/display.py:88
32
32
  msgid "Asset Allocation"
33
33
  msgstr ""
34
34
 
35
- #: wbportfolio/contrib/company_portfolio/configs/display.py:103
36
- #: wbportfolio/contrib/company_portfolio/configs/display.py:107
35
+ #: contrib/company_portfolio/configs/display.py:103
36
+ #: contrib/company_portfolio/configs/display.py:107
37
37
  msgid "Geographic Focus"
38
38
  msgstr ""
39
39
 
40
- #: wbportfolio/contrib/company_portfolio/configs/display.py:124
40
+ #: contrib/company_portfolio/configs/display.py:124
41
41
  msgid "Customer Information"
42
42
  msgstr ""
43
43
 
44
- #: wbportfolio/models/reconciliations/account_reconciliation_lines.py:118
44
+ #: models/reconciliations/account_reconciliation_lines.py:118
45
45
  msgid "The last share price of the product"
46
46
  msgstr ""
47
47
 
48
- #: wbportfolio/models/reconciliations/account_reconciliation_lines.py:127
48
+ #: models/reconciliations/account_reconciliation_lines.py:127
49
49
  msgid "The number of shares computed through the Workbench"
50
50
  msgstr ""
51
51
 
52
- #: wbportfolio/models/reconciliations/account_reconciliation_lines.py:133
52
+ #: models/reconciliations/account_reconciliation_lines.py:133
53
53
  msgid "The nominal value computed through the Workbench"
54
54
  msgstr ""
55
55
 
56
- #: wbportfolio/models/reconciliations/account_reconciliation_lines.py:140
56
+ #: models/reconciliations/account_reconciliation_lines.py:140
57
57
  msgid ""
58
58
  "The number of shares externally provided through the Account holder. "
59
59
  "Initially set to the number of shares computed through the Workbench"
60
60
  msgstr ""
61
61
 
62
- #: wbportfolio/models/reconciliations/account_reconciliation_lines.py:148
62
+ #: models/reconciliations/account_reconciliation_lines.py:148
63
63
  msgid ""
64
64
  "The nominal value externally provided through the Account holder. Initially "
65
65
  "set to the number of shares computed through the Workbench"
66
66
  msgstr ""
67
67
 
68
- #: wbportfolio/models/reconciliations/account_reconciliation_lines.py:155
68
+ #: models/reconciliations/account_reconciliation_lines.py:155
69
69
  msgid "Account Reconciliation (Product)"
70
70
  msgstr ""
71
71
 
72
- #: wbportfolio/models/reconciliations/account_reconciliation_lines.py:156
72
+ #: models/reconciliations/account_reconciliation_lines.py:156
73
73
  msgid "Account Reconciliation (Products)"
74
74
  msgstr ""
75
75
 
76
- #: wbportfolio/models/reconciliations/reconciliations.py:19
76
+ #: models/reconciliations/reconciliations.py:19
77
77
  msgid "Approved By"
78
78
  msgstr ""
79
79
 
80
- #: wbportfolio/models/reconciliations/reconciliations.py:22
80
+ #: models/reconciliations/reconciliations.py:22
81
81
  msgid "Approved Timestamp"
82
82
  msgstr ""
83
83
 
84
- #: wbportfolio/models/transactions/claim.py:338
85
- #: wbportfolio/models/transactions/claim.py:341
86
- #: wbportfolio/models/transactions/claim.py:344
84
+ #: models/transactions/claim.py:338 models/transactions/claim.py:341
85
+ #: models/transactions/claim.py:344
87
86
  msgid "With this status, this has to be provided."
88
87
  msgstr ""
89
88
 
90
- #: wbportfolio/models/transactions/rebalancing.py:81
89
+ #: models/transactions/rebalancing.py:81
91
90
  msgid "Evaluation Frequency"
92
91
  msgstr ""
93
92
 
94
- #: wbportfolio/models/transactions/rebalancing.py:82
93
+ #: models/transactions/rebalancing.py:82
95
94
  msgid "The Evaluation Frequency in RRULE format"
96
95
  msgstr ""
97
96
 
98
- #: wbportfolio/models/transactions/trade_proposals.py:473
97
+ #: models/transactions/trade_proposals.py:480
99
98
  msgid "All trades need to be draft before submitting"
100
99
  msgstr ""
101
100
 
102
- #: wbportfolio/models/transactions/trade_proposals.py:482
101
+ #: models/transactions/trade_proposals.py:489
103
102
  msgid "There is no valid trade on this proposal"
104
103
  msgstr ""
105
104
 
106
- #: wbportfolio/models/transactions/trade_proposals.py:550
105
+ #: models/transactions/trade_proposals.py:557
107
106
  msgid "The portfolio does not allow manual rebalanced"
108
107
  msgstr ""
109
108
 
110
- #: wbportfolio/models/transactions/trade_proposals.py:553
109
+ #: models/transactions/trade_proposals.py:560
111
110
  msgid ""
112
111
  "At least one trade needs to be submitted to be able to approve this proposal"
113
112
  msgstr ""
114
113
 
115
- #: wbportfolio/models/transactions/trade_proposals.py:557
114
+ #: models/transactions/trade_proposals.py:564
116
115
  msgid ""
117
116
  "The portfolio needs to be a model portfolio in order to approve this trade "
118
117
  "proposal manually"
119
118
  msgstr ""
120
119
 
121
- #: wbportfolio/models/transactions/trade_proposals.py:560
120
+ #: models/transactions/trade_proposals.py:567
122
121
  msgid "The pre trades rules did not passed successfully"
123
122
  msgstr ""
124
123
 
125
- #: wbportfolio/models/transactions/trade_proposals.py:592
124
+ #: models/transactions/trade_proposals.py:599
126
125
  msgid ""
127
126
  "At least one trade needs to be submitted to be able to deny this proposal"
128
127
  msgstr ""
129
128
 
130
- #: wbportfolio/models/transactions/trade_proposals.py:671
129
+ #: models/transactions/trade_proposals.py:668
131
130
  msgid ""
132
131
  "The portfolio needs to be a model portfolio in order to revert this trade "
133
132
  "proposal manually"
134
133
  msgstr ""
135
134
 
136
- #: wbportfolio/models/transactions/trades.py:324
135
+ #: models/transactions/trades.py:324
137
136
  msgid "Cannot execute a trade without a valid quote price"
138
137
  msgstr ""
139
138
 
140
- #: wbportfolio/models/transactions/trades.py:327
139
+ #: models/transactions/trades.py:327
141
140
  msgid ""
142
141
  "The portfolio needs to be a model portfolio in order to execute this trade "
143
142
  "manually"
144
143
  msgstr ""
145
144
 
146
- #: wbportfolio/viewsets/configs/display/portfolios.py:105
145
+ #: viewsets/configs/display/portfolios.py:105
147
146
  msgid "Linked Instruments"
148
147
  msgstr ""
149
148
 
150
- #: wbportfolio/viewsets/configs/display/portfolios.py:112
149
+ #: viewsets/configs/display/portfolios.py:112
151
150
  msgid "Dependency Portfolios"
152
151
  msgstr ""
153
152
 
154
- #: wbportfolio/viewsets/configs/display/portfolios.py:119
153
+ #: viewsets/configs/display/portfolios.py:119
155
154
  msgid "Preferred Classification"
156
155
  msgstr ""
157
156
 
158
- #: wbportfolio/viewsets/configs/display/products.py:26
159
- #: wbportfolio/viewsets/configs/display/products.py:156
157
+ #: viewsets/configs/display/products.py:26
158
+ #: viewsets/configs/display/products.py:156
160
159
  msgid "Information"
161
160
  msgstr ""
162
161
 
163
- #: wbportfolio/viewsets/configs/display/products.py:62
162
+ #: viewsets/configs/display/products.py:62
164
163
  msgid "Performance"
165
164
  msgstr ""
166
165
 
167
- #: wbportfolio/viewsets/configs/display/products.py:144
166
+ #: viewsets/configs/display/products.py:144
168
167
  msgid "Classifications"
169
168
  msgstr ""
170
169
 
171
- #: wbportfolio/viewsets/configs/display/products.py:148
170
+ #: viewsets/configs/display/products.py:148
172
171
  msgid "Fees"
173
172
  msgstr ""
174
173
 
175
- #: wbportfolio/viewsets/configs/display/products.py:166
174
+ #: viewsets/configs/display/products.py:166
176
175
  msgid "White Label Customers"
177
176
  msgstr ""
178
177
 
179
- #: wbportfolio/viewsets/configs/display/products.py:170
178
+ #: viewsets/configs/display/products.py:170
180
179
  msgid "Portfolios"
181
180
  msgstr ""
182
181
 
183
- #: wbportfolio/viewsets/configs/display/products.py:173
182
+ #: viewsets/configs/display/products.py:173
184
183
  msgid "Related Instruments"
185
184
  msgstr ""
186
185
 
187
- #: wbportfolio/viewsets/configs/display/products.py:178
186
+ #: viewsets/configs/display/products.py:178
188
187
  msgid "Index"
189
188
  msgstr ""
190
189
 
191
- #: wbportfolio/viewsets/configs/display/products.py:180
190
+ #: viewsets/configs/display/products.py:180
192
191
  msgid "Roles"
193
192
  msgstr ""
194
193
 
195
- #: wbportfolio/viewsets/configs/display/products.py:183
194
+ #: viewsets/configs/display/products.py:183
196
195
  msgid "Preferred Classification per Instrument"
197
196
  msgstr ""
@@ -0,0 +1,195 @@
1
+ # SOME DESCRIPTIVE TITLE.
2
+ # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
3
+ # This file is distributed under the same license as the PACKAGE package.
4
+ # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
5
+ #
6
+ msgid ""
7
+ msgstr ""
8
+ "Project-Id-Version: PACKAGE VERSION\n"
9
+ "Report-Msgid-Bugs-To: \n"
10
+ "POT-Creation-Date: 2025-05-30 11:37+0200\n"
11
+ "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
12
+ "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13
+ "Language-Team: LANGUAGE <LL@li.org>\n"
14
+ "Language: \n"
15
+ "MIME-Version: 1.0\n"
16
+ "Content-Type: text/plain; charset=UTF-8\n"
17
+ "Content-Transfer-Encoding: 8bit\n"
18
+
19
+ #: contrib/company_portfolio/configs/display.py:25
20
+ #: contrib/company_portfolio/configs/display.py:29
21
+ msgid "AUM By Product"
22
+ msgstr ""
23
+
24
+ #: contrib/company_portfolio/configs/display.py:44
25
+ #: contrib/company_portfolio/configs/display.py:48
26
+ msgid "AUM"
27
+ msgstr ""
28
+
29
+ #: contrib/company_portfolio/configs/display.py:84
30
+ #: contrib/company_portfolio/configs/display.py:88
31
+ msgid "Asset Allocation"
32
+ msgstr ""
33
+
34
+ #: contrib/company_portfolio/configs/display.py:103
35
+ #: contrib/company_portfolio/configs/display.py:107
36
+ msgid "Geographic Focus"
37
+ msgstr ""
38
+
39
+ #: contrib/company_portfolio/configs/display.py:124
40
+ msgid "Customer Information"
41
+ msgstr ""
42
+
43
+ #: models/reconciliations/account_reconciliation_lines.py:118
44
+ msgid "The last share price of the product"
45
+ msgstr ""
46
+
47
+ #: models/reconciliations/account_reconciliation_lines.py:127
48
+ msgid "The number of shares computed through the Workbench"
49
+ msgstr ""
50
+
51
+ #: models/reconciliations/account_reconciliation_lines.py:133
52
+ msgid "The nominal value computed through the Workbench"
53
+ msgstr ""
54
+
55
+ #: models/reconciliations/account_reconciliation_lines.py:140
56
+ msgid ""
57
+ "The number of shares externally provided through the Account holder. "
58
+ "Initially set to the number of shares computed through the Workbench"
59
+ msgstr ""
60
+
61
+ #: models/reconciliations/account_reconciliation_lines.py:148
62
+ msgid ""
63
+ "The nominal value externally provided through the Account holder. Initially "
64
+ "set to the number of shares computed through the Workbench"
65
+ msgstr ""
66
+
67
+ #: models/reconciliations/account_reconciliation_lines.py:155
68
+ msgid "Account Reconciliation (Product)"
69
+ msgstr ""
70
+
71
+ #: models/reconciliations/account_reconciliation_lines.py:156
72
+ msgid "Account Reconciliation (Products)"
73
+ msgstr ""
74
+
75
+ #: models/reconciliations/reconciliations.py:19
76
+ msgid "Approved By"
77
+ msgstr ""
78
+
79
+ #: models/reconciliations/reconciliations.py:22
80
+ msgid "Approved Timestamp"
81
+ msgstr ""
82
+
83
+ #: models/transactions/claim.py:338 models/transactions/claim.py:341
84
+ #: models/transactions/claim.py:344
85
+ msgid "With this status, this has to be provided."
86
+ msgstr ""
87
+
88
+ #: models/transactions/rebalancing.py:81
89
+ msgid "Evaluation Frequency"
90
+ msgstr ""
91
+
92
+ #: models/transactions/rebalancing.py:82
93
+ msgid "The Evaluation Frequency in RRULE format"
94
+ msgstr ""
95
+
96
+ #: models/transactions/trade_proposals.py:480
97
+ msgid "All trades need to be draft before submitting"
98
+ msgstr ""
99
+
100
+ #: models/transactions/trade_proposals.py:489
101
+ msgid "There is no valid trade on this proposal"
102
+ msgstr ""
103
+
104
+ #: models/transactions/trade_proposals.py:557
105
+ msgid "The portfolio does not allow manual rebalanced"
106
+ msgstr ""
107
+
108
+ #: models/transactions/trade_proposals.py:560
109
+ msgid ""
110
+ "At least one trade needs to be submitted to be able to approve this proposal"
111
+ msgstr ""
112
+
113
+ #: models/transactions/trade_proposals.py:564
114
+ msgid ""
115
+ "The portfolio needs to be a model portfolio in order to approve this trade "
116
+ "proposal manually"
117
+ msgstr ""
118
+
119
+ #: models/transactions/trade_proposals.py:567
120
+ msgid "The pre trades rules did not passed successfully"
121
+ msgstr ""
122
+
123
+ #: models/transactions/trade_proposals.py:599
124
+ msgid ""
125
+ "At least one trade needs to be submitted to be able to deny this proposal"
126
+ msgstr ""
127
+
128
+ #: models/transactions/trade_proposals.py:668
129
+ msgid ""
130
+ "The portfolio needs to be a model portfolio in order to revert this trade "
131
+ "proposal manually"
132
+ msgstr ""
133
+
134
+ #: models/transactions/trades.py:324
135
+ msgid "Cannot execute a trade without a valid quote price"
136
+ msgstr ""
137
+
138
+ #: models/transactions/trades.py:327
139
+ msgid ""
140
+ "The portfolio needs to be a model portfolio in order to execute this trade "
141
+ "manually"
142
+ msgstr ""
143
+
144
+ #: viewsets/configs/display/portfolios.py:105
145
+ msgid "Linked Instruments"
146
+ msgstr ""
147
+
148
+ #: viewsets/configs/display/portfolios.py:112
149
+ msgid "Dependency Portfolios"
150
+ msgstr ""
151
+
152
+ #: viewsets/configs/display/portfolios.py:119
153
+ msgid "Preferred Classification"
154
+ msgstr ""
155
+
156
+ #: viewsets/configs/display/products.py:26
157
+ #: viewsets/configs/display/products.py:156
158
+ msgid "Information"
159
+ msgstr ""
160
+
161
+ #: viewsets/configs/display/products.py:62
162
+ msgid "Performance"
163
+ msgstr ""
164
+
165
+ #: viewsets/configs/display/products.py:144
166
+ msgid "Classifications"
167
+ msgstr ""
168
+
169
+ #: viewsets/configs/display/products.py:148
170
+ msgid "Fees"
171
+ msgstr ""
172
+
173
+ #: viewsets/configs/display/products.py:166
174
+ msgid "White Label Customers"
175
+ msgstr ""
176
+
177
+ #: viewsets/configs/display/products.py:170
178
+ msgid "Portfolios"
179
+ msgstr ""
180
+
181
+ #: viewsets/configs/display/products.py:173
182
+ msgid "Related Instruments"
183
+ msgstr ""
184
+
185
+ #: viewsets/configs/display/products.py:178
186
+ msgid "Index"
187
+ msgstr ""
188
+
189
+ #: viewsets/configs/display/products.py:180
190
+ msgid "Roles"
191
+ msgstr ""
192
+
193
+ #: viewsets/configs/display/products.py:183
194
+ msgid "Preferred Classification per Instrument"
195
+ msgstr ""
@@ -8,190 +8,189 @@ msgid ""
8
8
  msgstr ""
9
9
  "Project-Id-Version: PACKAGE VERSION\n"
10
10
  "Report-Msgid-Bugs-To: \n"
11
- "POT-Creation-Date: 2025-05-20 09:32+0200\n"
12
- "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
13
- "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
14
- "Language-Team: LANGUAGE <LL@li.org>\n"
15
- "Language: \n"
11
+ "POT-Creation-Date: 2025-05-30 11:37+0200\n"
12
+ "PO-Revision-Date: 2025-05-30 09:40+0000\n"
13
+ "Language-Team: French (https://app.transifex.com/stainly/teams/171242/fr/)\n"
16
14
  "MIME-Version: 1.0\n"
17
15
  "Content-Type: text/plain; charset=UTF-8\n"
18
16
  "Content-Transfer-Encoding: 8bit\n"
19
- "Plural-Forms: nplurals=2; plural=(n > 1);\n"
20
- #: wbportfolio/contrib/company_portfolio/configs/display.py:25
21
- #: wbportfolio/contrib/company_portfolio/configs/display.py:29
17
+ "Language: fr\n"
18
+ "Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"
19
+
20
+ #: contrib/company_portfolio/configs/display.py:25
21
+ #: contrib/company_portfolio/configs/display.py:29
22
22
  msgid "AUM By Product"
23
23
  msgstr ""
24
24
 
25
- #: wbportfolio/contrib/company_portfolio/configs/display.py:44
26
- #: wbportfolio/contrib/company_portfolio/configs/display.py:48
25
+ #: contrib/company_portfolio/configs/display.py:44
26
+ #: contrib/company_portfolio/configs/display.py:48
27
27
  msgid "AUM"
28
28
  msgstr ""
29
29
 
30
- #: wbportfolio/contrib/company_portfolio/configs/display.py:84
31
- #: wbportfolio/contrib/company_portfolio/configs/display.py:88
30
+ #: contrib/company_portfolio/configs/display.py:84
31
+ #: contrib/company_portfolio/configs/display.py:88
32
32
  msgid "Asset Allocation"
33
33
  msgstr ""
34
34
 
35
- #: wbportfolio/contrib/company_portfolio/configs/display.py:103
36
- #: wbportfolio/contrib/company_portfolio/configs/display.py:107
35
+ #: contrib/company_portfolio/configs/display.py:103
36
+ #: contrib/company_portfolio/configs/display.py:107
37
37
  msgid "Geographic Focus"
38
38
  msgstr ""
39
39
 
40
- #: wbportfolio/contrib/company_portfolio/configs/display.py:124
40
+ #: contrib/company_portfolio/configs/display.py:124
41
41
  msgid "Customer Information"
42
42
  msgstr ""
43
43
 
44
- #: wbportfolio/models/reconciliations/account_reconciliation_lines.py:118
44
+ #: models/reconciliations/account_reconciliation_lines.py:118
45
45
  msgid "The last share price of the product"
46
46
  msgstr ""
47
47
 
48
- #: wbportfolio/models/reconciliations/account_reconciliation_lines.py:127
48
+ #: models/reconciliations/account_reconciliation_lines.py:127
49
49
  msgid "The number of shares computed through the Workbench"
50
50
  msgstr ""
51
51
 
52
- #: wbportfolio/models/reconciliations/account_reconciliation_lines.py:133
52
+ #: models/reconciliations/account_reconciliation_lines.py:133
53
53
  msgid "The nominal value computed through the Workbench"
54
54
  msgstr ""
55
55
 
56
- #: wbportfolio/models/reconciliations/account_reconciliation_lines.py:140
56
+ #: models/reconciliations/account_reconciliation_lines.py:140
57
57
  msgid ""
58
58
  "The number of shares externally provided through the Account holder. "
59
59
  "Initially set to the number of shares computed through the Workbench"
60
60
  msgstr ""
61
61
 
62
- #: wbportfolio/models/reconciliations/account_reconciliation_lines.py:148
62
+ #: models/reconciliations/account_reconciliation_lines.py:148
63
63
  msgid ""
64
64
  "The nominal value externally provided through the Account holder. Initially "
65
65
  "set to the number of shares computed through the Workbench"
66
66
  msgstr ""
67
67
 
68
- #: wbportfolio/models/reconciliations/account_reconciliation_lines.py:155
68
+ #: models/reconciliations/account_reconciliation_lines.py:155
69
69
  msgid "Account Reconciliation (Product)"
70
70
  msgstr ""
71
71
 
72
- #: wbportfolio/models/reconciliations/account_reconciliation_lines.py:156
72
+ #: models/reconciliations/account_reconciliation_lines.py:156
73
73
  msgid "Account Reconciliation (Products)"
74
74
  msgstr ""
75
75
 
76
- #: wbportfolio/models/reconciliations/reconciliations.py:19
76
+ #: models/reconciliations/reconciliations.py:19
77
77
  msgid "Approved By"
78
78
  msgstr ""
79
79
 
80
- #: wbportfolio/models/reconciliations/reconciliations.py:22
80
+ #: models/reconciliations/reconciliations.py:22
81
81
  msgid "Approved Timestamp"
82
82
  msgstr ""
83
83
 
84
- #: wbportfolio/models/transactions/claim.py:338
85
- #: wbportfolio/models/transactions/claim.py:341
86
- #: wbportfolio/models/transactions/claim.py:344
84
+ #: models/transactions/claim.py:338 models/transactions/claim.py:341
85
+ #: models/transactions/claim.py:344
87
86
  msgid "With this status, this has to be provided."
88
87
  msgstr ""
89
88
 
90
- #: wbportfolio/models/transactions/rebalancing.py:81
89
+ #: models/transactions/rebalancing.py:81
91
90
  msgid "Evaluation Frequency"
92
91
  msgstr ""
93
92
 
94
- #: wbportfolio/models/transactions/rebalancing.py:82
93
+ #: models/transactions/rebalancing.py:82
95
94
  msgid "The Evaluation Frequency in RRULE format"
96
95
  msgstr ""
97
96
 
98
- #: wbportfolio/models/transactions/trade_proposals.py:473
97
+ #: models/transactions/trade_proposals.py:480
99
98
  msgid "All trades need to be draft before submitting"
100
99
  msgstr ""
101
100
 
102
- #: wbportfolio/models/transactions/trade_proposals.py:482
101
+ #: models/transactions/trade_proposals.py:489
103
102
  msgid "There is no valid trade on this proposal"
104
103
  msgstr ""
105
104
 
106
- #: wbportfolio/models/transactions/trade_proposals.py:550
105
+ #: models/transactions/trade_proposals.py:557
107
106
  msgid "The portfolio does not allow manual rebalanced"
108
107
  msgstr ""
109
108
 
110
- #: wbportfolio/models/transactions/trade_proposals.py:553
109
+ #: models/transactions/trade_proposals.py:560
111
110
  msgid ""
112
111
  "At least one trade needs to be submitted to be able to approve this proposal"
113
112
  msgstr ""
114
113
 
115
- #: wbportfolio/models/transactions/trade_proposals.py:557
114
+ #: models/transactions/trade_proposals.py:564
116
115
  msgid ""
117
116
  "The portfolio needs to be a model portfolio in order to approve this trade "
118
117
  "proposal manually"
119
118
  msgstr ""
120
119
 
121
- #: wbportfolio/models/transactions/trade_proposals.py:560
120
+ #: models/transactions/trade_proposals.py:567
122
121
  msgid "The pre trades rules did not passed successfully"
123
122
  msgstr ""
124
123
 
125
- #: wbportfolio/models/transactions/trade_proposals.py:592
124
+ #: models/transactions/trade_proposals.py:599
126
125
  msgid ""
127
126
  "At least one trade needs to be submitted to be able to deny this proposal"
128
127
  msgstr ""
129
128
 
130
- #: wbportfolio/models/transactions/trade_proposals.py:671
129
+ #: models/transactions/trade_proposals.py:668
131
130
  msgid ""
132
131
  "The portfolio needs to be a model portfolio in order to revert this trade "
133
132
  "proposal manually"
134
133
  msgstr ""
135
134
 
136
- #: wbportfolio/models/transactions/trades.py:324
135
+ #: models/transactions/trades.py:324
137
136
  msgid "Cannot execute a trade without a valid quote price"
138
137
  msgstr ""
139
138
 
140
- #: wbportfolio/models/transactions/trades.py:327
139
+ #: models/transactions/trades.py:327
141
140
  msgid ""
142
141
  "The portfolio needs to be a model portfolio in order to execute this trade "
143
142
  "manually"
144
143
  msgstr ""
145
144
 
146
- #: wbportfolio/viewsets/configs/display/portfolios.py:105
145
+ #: viewsets/configs/display/portfolios.py:105
147
146
  msgid "Linked Instruments"
148
147
  msgstr ""
149
148
 
150
- #: wbportfolio/viewsets/configs/display/portfolios.py:112
149
+ #: viewsets/configs/display/portfolios.py:112
151
150
  msgid "Dependency Portfolios"
152
151
  msgstr ""
153
152
 
154
- #: wbportfolio/viewsets/configs/display/portfolios.py:119
153
+ #: viewsets/configs/display/portfolios.py:119
155
154
  msgid "Preferred Classification"
156
155
  msgstr ""
157
156
 
158
- #: wbportfolio/viewsets/configs/display/products.py:26
159
- #: wbportfolio/viewsets/configs/display/products.py:156
157
+ #: viewsets/configs/display/products.py:26
158
+ #: viewsets/configs/display/products.py:156
160
159
  msgid "Information"
161
160
  msgstr ""
162
161
 
163
- #: wbportfolio/viewsets/configs/display/products.py:62
162
+ #: viewsets/configs/display/products.py:62
164
163
  msgid "Performance"
165
164
  msgstr ""
166
165
 
167
- #: wbportfolio/viewsets/configs/display/products.py:144
166
+ #: viewsets/configs/display/products.py:144
168
167
  msgid "Classifications"
169
168
  msgstr ""
170
169
 
171
- #: wbportfolio/viewsets/configs/display/products.py:148
170
+ #: viewsets/configs/display/products.py:148
172
171
  msgid "Fees"
173
172
  msgstr ""
174
173
 
175
- #: wbportfolio/viewsets/configs/display/products.py:166
174
+ #: viewsets/configs/display/products.py:166
176
175
  msgid "White Label Customers"
177
176
  msgstr ""
178
177
 
179
- #: wbportfolio/viewsets/configs/display/products.py:170
178
+ #: viewsets/configs/display/products.py:170
180
179
  msgid "Portfolios"
181
180
  msgstr ""
182
181
 
183
- #: wbportfolio/viewsets/configs/display/products.py:173
182
+ #: viewsets/configs/display/products.py:173
184
183
  msgid "Related Instruments"
185
184
  msgstr ""
186
185
 
187
- #: wbportfolio/viewsets/configs/display/products.py:178
186
+ #: viewsets/configs/display/products.py:178
188
187
  msgid "Index"
189
188
  msgstr ""
190
189
 
191
- #: wbportfolio/viewsets/configs/display/products.py:180
190
+ #: viewsets/configs/display/products.py:180
192
191
  msgid "Roles"
193
192
  msgstr ""
194
193
 
195
- #: wbportfolio/viewsets/configs/display/products.py:183
194
+ #: viewsets/configs/display/products.py:183
196
195
  msgid "Preferred Classification per Instrument"
197
196
  msgstr ""
@@ -203,10 +203,14 @@ class ProductModelSerializer(ProductListModelSerializer):
203
203
  product_ct = ContentType.objects.get_for_model(Product)
204
204
  instrument_ct = ContentType.objects.get_for_model(Instrument)
205
205
  portfolio_cd = ContentType.objects.get_for_model(Portfolio)
206
- additional_resources["risk_incidents"] = (
206
+ additional_resources["risk_rules"] = (
207
207
  reverse("wbcompliance:riskrule-list", args=[], request=request)
208
208
  + f"?checked_object_relationships=[({product_ct.id},{instance.id}),({instrument_ct.id},{instance.id}),({portfolio_cd.id},{portfolio.id})]"
209
209
  )
210
+ additional_resources["risk_incidents"] = (
211
+ reverse("wbcompliance:riskincident-list", args=[], request=request)
212
+ + f"?checked_object_relationships=[({product_ct.id},{instance.id}),({instrument_ct.id},{instance.id}),({portfolio_cd.id},{portfolio.id})]"
213
+ )
210
214
  return additional_resources
211
215
 
212
216
  class Meta(ProductListModelSerializer.Meta):
@@ -8,6 +8,7 @@ from .configs import (
8
8
  AdjustmentButtonConfig,
9
9
  AdjustmentDisplayConfig,
10
10
  AdjustmentEndpointConfig,
11
+ AdjustmentEquityEndpointConfig,
11
12
  AdjustmentTitleConfig,
12
13
  )
13
14
 
@@ -42,6 +43,7 @@ class AdjustmentEquityModelViewSet(AdjustmentModelViewSet):
42
43
  "status": ["exact"],
43
44
  "last_handler": ["exact"],
44
45
  }
46
+ endpoint_config_class = AdjustmentEquityEndpointConfig
45
47
 
46
48
  def get_queryset(self):
47
49
  return super().get_queryset().filter(instrument=self.kwargs["instrument_id"])
@@ -19,10 +19,21 @@ class ProductButtonConfig(ButtonViewConfig):
19
19
  ),
20
20
  ),
21
21
  *InstrumentButtonViewConfig(self.view, self.request, self.instance).get_custom_instance_buttons(),
22
- bt.WidgetButton(
23
- key="risk_incidents",
24
- label="Risk Incidents",
25
- icon=WBIcon.VIEW.icon,
22
+ bt.DropDownButton(
23
+ label="Risk Management",
24
+ icon=WBIcon.UNFOLD.icon,
25
+ buttons=[
26
+ bt.WidgetButton(
27
+ key="risk_rules",
28
+ label="Rules",
29
+ icon=WBIcon.CONFIGURE.icon,
30
+ ),
31
+ bt.WidgetButton(
32
+ key="risk_incidents",
33
+ label="Incidents",
34
+ icon=WBIcon.WARNING.icon,
35
+ ),
36
+ ],
26
37
  ),
27
38
  }
28
39
 
@@ -1,4 +1,4 @@
1
- from .adjustments import AdjustmentEndpointConfig
1
+ from .adjustments import AdjustmentEndpointConfig, AdjustmentEquityEndpointConfig
2
2
  from .assets import (
3
3
  AssetPositionEndpointConfig,
4
4
  AssetPositionEquityEndpointConfig,
@@ -4,14 +4,14 @@ from wbcore.metadata.configs.endpoints import EndpointViewConfig
4
4
 
5
5
  class AdjustmentEndpointConfig(EndpointViewConfig):
6
6
  def get_endpoint(self, **kwargs):
7
- if instrument_id := self.view.kwargs.get("instrument_id", None):
8
- return reverse("wbportfolio:instrument-adjustment-list", args=[instrument_id], request=self.request)
9
7
  return reverse("wbportfolio:adjustment-list", args=[], request=self.request)
10
8
 
11
- def get_instance_endpoint(self, **kwargs):
12
- if self.view.kwargs.get("pk", None):
13
- return None
14
- return self.get_endpoint(**kwargs)
15
-
16
9
  def get_delete_endpoint(self, **kwargs):
17
10
  return None
11
+
12
+
13
+ class AdjustmentEquityEndpointConfig(AdjustmentEndpointConfig):
14
+ def get_endpoint(self, **kwargs):
15
+ return reverse(
16
+ "wbportfolio:instrument-adjustment-list", args=[self.view.kwargs["instrument_id"]], request=self.request
17
+ )
@@ -6,65 +6,30 @@ class AssetPositionEndpointConfig(EndpointViewConfig):
6
6
  def get_endpoint(self, **kwargs):
7
7
  return None
8
8
 
9
- def get_list_endpoint(self, **kwargs):
10
- return reverse("wbportfolio:assetposition-list", request=self.request)
11
-
12
9
 
13
10
  class AssetPositionPortfolioEndpointConfig(AssetPositionEndpointConfig):
14
- def get_list_endpoint(self, **kwargs):
15
- return reverse(
16
- "wbportfolio:portfolio-asset-list",
17
- args=[self.view.kwargs["portfolio_id"]],
18
- request=self.request,
19
- )
11
+ pass
20
12
 
21
13
 
22
14
  class AssetPositionEquityEndpointConfig(AssetPositionEndpointConfig):
23
- def get_list_endpoint(self, **kwargs):
24
- return reverse(
25
- "wbportfolio:equity-asset-list",
26
- args=[self.view.kwargs["equity_id"]],
27
- request=self.request,
28
- )
15
+ pass
29
16
 
30
17
 
31
18
  class AssetPositionInstrumentEndpointConfig(AssetPositionEndpointConfig):
32
- def get_list_endpoint(self, **kwargs):
33
- return reverse(
34
- "wbportfolio:instrument-asset-list",
35
- args=[self.view.kwargs["instrument_id"]],
36
- request=self.request,
37
- )
19
+ pass
38
20
 
39
21
 
40
22
  class AssetPositionIndexEndpointConfig(AssetPositionEndpointConfig):
41
- def get_list_endpoint(self, **kwargs):
42
- return reverse(
43
- "wbportfolio:index-asset-list",
44
- args=[self.view.kwargs["index_id"]],
45
- request=self.request,
46
- )
23
+ pass
47
24
 
48
25
 
49
26
  class AssetPositionProductGroupEndpointConfig(AssetPositionEndpointConfig):
50
- def get_list_endpoint(self, **kwargs):
51
- return reverse(
52
- "wbportfolio:productgroup-asset-list",
53
- args=[self.view.kwargs["product_group_id"]],
54
- request=self.request,
55
- )
27
+ pass
56
28
 
57
29
 
58
30
  class CashPositionPortfolioEndpointConfig(AssetPositionEndpointConfig):
59
31
  PK_FIELD = "portfolio"
60
32
 
61
- def get_list_endpoint(self, **kwargs):
62
- return reverse(
63
- "wbportfolio:productcashposition-list",
64
- args=[],
65
- request=self.request,
66
- )
67
-
68
33
  def get_instance_endpoint(self, **kwargs):
69
34
  return reverse(
70
35
  "wbportfolio:portfolio-list",
@@ -77,12 +42,7 @@ class CashPositionPortfolioEndpointConfig(AssetPositionEndpointConfig):
77
42
 
78
43
 
79
44
  class ContributorPortfolioChartEndpointConfig(AssetPositionEndpointConfig):
80
- def get_list_endpoint(self, **kwargs):
81
- return reverse(
82
- "wbportfolio:portfolio-contributor-list",
83
- args=[self.view.kwargs["portfolio_id"]],
84
- request=self.request,
85
- )
45
+ pass
86
46
 
87
47
 
88
48
  class AssetPositionUnderlyingInstrumentChartEndpointConfig(EndpointViewConfig):
@@ -104,13 +64,6 @@ class DistributionChartEndpointConfig(EndpointViewConfig):
104
64
 
105
65
 
106
66
  class DistributionTableEndpointConfig(EndpointViewConfig):
107
- def get_list_endpoint(self, **kwargs):
108
- return reverse(
109
- "wbportfolio:portfolio-distributiontable-list",
110
- args=[self.view.kwargs["portfolio_id"]],
111
- request=self.request,
112
- )
113
-
114
67
  def get_endpoint(self, **kwargs):
115
68
  return None
116
69
 
@@ -118,10 +71,3 @@ class DistributionTableEndpointConfig(EndpointViewConfig):
118
71
  class CompositionModelPortfolioPandasEndpointConfig(EndpointViewConfig):
119
72
  def get_endpoint(self, **kwargs):
120
73
  return None
121
-
122
- def get_list_endpoint(self, **kwargs):
123
- return reverse(
124
- "wbportfolio:portfolio-modelcompositionpandas-list",
125
- args=[self.view.kwargs["portfolio_id"]],
126
- request=self.request,
127
- )
@@ -69,9 +69,6 @@ class ConsolidatedTradeSummaryEndpointConfig(EndpointViewConfig):
69
69
  def get_endpoint(self, **kwargs):
70
70
  return None
71
71
 
72
- def get_list_endpoint(self, **kwargs):
73
- return reverse("wbportfolio:aumtable-list", request=self.request)
74
-
75
72
 
76
73
  class ConsolidatedTradeSummaryDistributionChartEndpointConfig(EndpointViewConfig):
77
74
  def get_endpoint(self, **kwargs):
@@ -87,9 +84,6 @@ class ProfitAndLossPandasEndpointConfig(EndpointViewConfig):
87
84
  def get_endpoint(self, **kwargs):
88
85
  return None
89
86
 
90
- def get_list_endpoint(self, **kwargs):
91
- return reverse("wbportfolio:pnltable-list", request=self.request)
92
-
93
87
 
94
88
  class NegativeTermimalAccountPerProductEndpointConfig(EndpointViewConfig):
95
89
  def get_endpoint(self, **kwargs):
@@ -102,6 +96,3 @@ class NegativeTermimalAccountPerProductEndpointConfig(EndpointViewConfig):
102
96
  return (
103
97
  reverse("wbportfolio:claim-list", request=self.request) + "?account={{account_id}}&product={{product_id}}"
104
98
  )
105
-
106
- def get_list_endpoint(self, **kwargs):
107
- return reverse("wbportfolio:negativeaccountproduct-list", request=self.request)
@@ -1,14 +1,6 @@
1
- from rest_framework.reverse import reverse
2
1
  from wbcore.metadata.configs.endpoints import EndpointViewConfig
3
2
 
4
3
 
5
4
  class ESGMetricAggregationPortfolioPandasEndpointConfig(EndpointViewConfig):
6
5
  def get_endpoint(self, **kwargs):
7
6
  return None
8
-
9
- def get_list_endpoint(self, **kwargs):
10
- return reverse(
11
- "wbportfolio:portfolio-esgaggregation-list",
12
- args=[self.view.kwargs["portfolio_id"]],
13
- request=self.request,
14
- )
@@ -1,4 +1,3 @@
1
- from rest_framework.reverse import reverse
2
1
  from wbcore.metadata.configs.endpoints import EndpointViewConfig
3
2
 
4
3
 
@@ -6,21 +5,10 @@ class FeeEndpointConfig(EndpointViewConfig):
6
5
  def get_endpoint(self, **kwargs):
7
6
  return None
8
7
 
9
- def get_list_endpoint(self, **kwargs):
10
- return reverse("wbportfolio:fees-list", args=[], request=self.request)
11
-
12
8
 
13
9
  class FeesPortfolioEndpointConfig(FeeEndpointConfig):
14
- def get_list_endpoint(self, **kwargs):
15
- return reverse(
16
- "wbportfolio:portfolio-fees-list", args=[self.view.kwargs["portfolio_id"]], request=self.request
17
- )
10
+ pass
18
11
 
19
12
 
20
13
  class FeesAggregatedPortfolioPandasEndpointConfig(EndpointViewConfig):
21
- def get_list_endpoint(self, **kwargs):
22
- return reverse(
23
- "wbportfolio:portfolio-feesaggregated-list",
24
- args=[self.view.kwargs["portfolio_id"]],
25
- request=self.request,
26
- )
14
+ pass
@@ -14,10 +14,3 @@ class PortfolioInstrumentPreferredClassificationThroughEndpointConfig(EndpointVi
14
14
  class InstrumentPortfolioThroughPortfolioModelEndpointConfig(EndpointViewConfig):
15
15
  def get_endpoint(self, **kwargs):
16
16
  return None
17
-
18
- def get_list_endpoint(self, **kwargs):
19
- return reverse(
20
- "wbportfolio:portfolio-instrument-list",
21
- args=[self.view.kwargs["portfolio_id"]],
22
- request=self.request,
23
- )
@@ -21,13 +21,6 @@ class PortfolioEndpointConfig(EndpointViewConfig):
21
21
  class PortfolioPortfolioThroughModelEndpointConfig(EndpointViewConfig):
22
22
  PK_FIELD = "dependency_portfolio"
23
23
 
24
- def get_list_endpoint(self, **kwargs):
25
- return reverse(
26
- "wbportfolio:portfolio-dependencyportfolio-list",
27
- args=[self.view.kwargs["portfolio_id"]],
28
- request=self.request,
29
- )
30
-
31
24
  def get_instance_endpoint(self, **kwargs):
32
25
  return reverse(
33
26
  "wbportfolio:portfolio-list",
@@ -37,23 +30,17 @@ class PortfolioPortfolioThroughModelEndpointConfig(EndpointViewConfig):
37
30
 
38
31
  def get_endpoint(self, **kwargs):
39
32
  if self.request.user.is_superuser:
40
- return self.get_list_endpoint(**kwargs)
33
+ return reverse(
34
+ "wbportfolio:portfolio-dependencyportfolio-list",
35
+ args=[self.view.kwargs["portfolio_id"]],
36
+ request=self.request,
37
+ )
41
38
  return None
42
39
 
43
40
 
44
41
  class PortfolioTreeGraphChartEndpointConfig(EndpointViewConfig):
45
- def get_list_endpoint(self, **kwargs):
46
- return reverse(
47
- "wbportfolio:portfolio-treegraphchart-list",
48
- args=[self.view.kwargs["portfolio_id"]],
49
- request=self.request,
50
- )
42
+ pass
51
43
 
52
44
 
53
45
  class TopDownPortfolioCompositionPandasEndpointConfig(EndpointViewConfig):
54
- def get_list_endpoint(self, **kwargs):
55
- return reverse(
56
- "wbportfolio:portfolio-topdowncomposition-list",
57
- args=[self.view.kwargs["portfolio_id"]],
58
- request=self.request,
59
- )
46
+ pass
@@ -1,4 +1,3 @@
1
- from rest_framework.reverse import reverse
2
1
  from wbcore.metadata.configs.endpoints import EndpointViewConfig
3
2
 
4
3
 
@@ -6,13 +5,7 @@ class AssetPositionPandasEndpointConfig(EndpointViewConfig):
6
5
  def get_endpoint(self, **kwargs):
7
6
  return None
8
7
 
9
- def get_list_endpoint(self, **kwargs):
10
- return reverse("wbportfolio:assetpositiongroupby-list", request=self.request)
11
-
12
8
 
13
9
  class AggregatedAssetPositionLiquidityEndpointConfig(EndpointViewConfig):
14
10
  def get_endpoint(self, **kwargs):
15
11
  return None
16
-
17
- def get_list_endpoint(self, **kwargs):
18
- return reverse("wbportfolio:aggregatedassetpositionliquidity-list", request=self.request)
@@ -9,9 +9,6 @@ class PerformancePandasEndpointConfig(EndpointViewConfig):
9
9
  def get_instance_endpoint(self, **kwargs):
10
10
  return reverse("wbportfolio:product-list", request=self.request)
11
11
 
12
- def get_list_endpoint(self, **kwargs):
13
- return reverse("wbportfolio:productperformance-list", request=self.request)
14
-
15
12
 
16
13
  class PerformanceComparisonEndpointConfig(EndpointViewConfig):
17
14
  def get_endpoint(self, **kwargs):
@@ -20,10 +17,6 @@ class PerformanceComparisonEndpointConfig(EndpointViewConfig):
20
17
  def get_instance_endpoint(self, **kwargs):
21
18
  return reverse("wbportfolio:product-list", request=self.request)
22
19
 
23
- def get_list_endpoint(self, **kwargs):
24
- return reverse("wbportfolio:productperformancecomparison-list", request=self.request)
25
-
26
20
 
27
21
  class ProductPerformanceNetNewMoneyEndpointConfig(PerformancePandasEndpointConfig):
28
- def get_list_endpoint(self, **kwargs):
29
- return reverse("wbportfolio:productperformancennmlist-list", request=self.request)
22
+ pass
@@ -6,9 +6,6 @@ class ProductCustomerEndpointConfig(EndpointViewConfig):
6
6
  def get_endpoint(self, **kwargs):
7
7
  return None
8
8
 
9
- def get_list_endpoint(self, **kwargs):
10
- return reverse("wbportfolio:productcustomer-list", request=self.request)
11
-
12
9
 
13
10
  class ProductPerformanceFeesEndpointConfig(EndpointViewConfig):
14
11
  def get_endpoint(self, **kwargs):
@@ -17,9 +14,6 @@ class ProductPerformanceFeesEndpointConfig(EndpointViewConfig):
17
14
  def get_instance_endpoint(self, **kwargs):
18
15
  return reverse("wbportfolio:product-list", request=self.request)
19
16
 
20
- def get_list_endpoint(self, **kwargs):
21
- return reverse("wbportfolio:feesproductperformance-list", request=self.request)
22
-
23
17
 
24
18
  class InstrumentPriceAUMDataEndpointConfig(EndpointViewConfig):
25
19
  def get_endpoint(self, **kwargs):
@@ -67,16 +67,15 @@ class TradeProposalPortfolioEndpointConfig(TradeProposalEndpointConfig):
67
67
 
68
68
 
69
69
  class TradeTradeProposalEndpointConfig(EndpointViewConfig):
70
- def get_list_endpoint(self, **kwargs):
71
- return reverse(
72
- "wbportfolio:tradeproposal-trade-list", args=[self.view.kwargs["trade_proposal_id"]], request=self.request
73
- )
74
-
75
70
  def get_endpoint(self, **kwargs):
76
71
  if trade_proposal_id := self.view.kwargs.get("trade_proposal_id", None):
77
72
  trade_proposal = TradeProposal.objects.get(id=trade_proposal_id)
78
73
  if trade_proposal.status == TradeProposal.Status.DRAFT:
79
- return self.get_list_endpoint()
74
+ return reverse(
75
+ "wbportfolio:tradeproposal-trade-list",
76
+ args=[self.view.kwargs["trade_proposal_id"]],
77
+ request=self.request,
78
+ )
80
79
  return None
81
80
 
82
81
  def get_delete_endpoint(self, **kwargs):
@@ -1,4 +1,3 @@
1
- from rest_framework.reverse import reverse
2
1
  from wbcore.metadata.configs.endpoints import EndpointViewConfig
3
2
 
4
3
 
@@ -6,18 +5,10 @@ class TransactionEndpointConfig(EndpointViewConfig):
6
5
  def get_endpoint(self, **kwargs):
7
6
  return None
8
7
 
9
- def get_list_endpoint(self, **kwargs):
10
- return reverse("wbportfolio:transaction-list", request=self.request)
11
-
12
8
  def get_instance_endpoint(self, **kwargs):
13
9
  model = "{{transaction_url_type}}"
14
10
  return f"{self.request.scheme}://{self.request.get_host()}/api/portfolio/{model}/"
15
11
 
16
12
 
17
13
  class TransactionPortfolioEndpointConfig(TransactionEndpointConfig):
18
- def get_list_endpoint(self, **kwargs):
19
- return reverse(
20
- "wbportfolio:portfolio-transaction-list",
21
- args=[self.view.kwargs["portfolio_id"]],
22
- request=self.request,
23
- )
14
+ pass
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: wbportfolio
3
- Version: 1.51.1
3
+ Version: 1.51.2rc1
4
4
  Author-email: Christopher Wittlinger <c.wittlinger@stainly.com>
5
5
  License-File: LICENSE
6
6
  Requires-Dist: cryptography==3.4.*
@@ -62,8 +62,8 @@ wbportfolio/factories/dividends.py,sha256=ET2kp0A7U1x8WhNVUn6FM1GF4jfr5NwdULBiIQ
62
62
  wbportfolio/factories/fees.py,sha256=2B2ebj06a0ZI1ra2-TXtW5e0aQ9sXT-Plw6CzV-3_1c,400
63
63
  wbportfolio/factories/indexes.py,sha256=sInyNARyfUNbScxr_ng1HhxtJXIsK3awFf9BF1gr9zU,440
64
64
  wbportfolio/factories/portfolio_cash_flow.py,sha256=e8LWkk5Gy0FU4HoCL9xPseCtLlVIkMrvAmey5swqcfc,727
65
- wbportfolio/factories/portfolio_cash_targets.py,sha256=CoH6xUNtIKW4k88MAhB18CRhzZ349IZxmvlPOi3dbHY,671
66
- wbportfolio/factories/portfolio_swing_pricings.py,sha256=UNxnSL23WDCS0QBzbS2JUTfbg4th7wS0Fy9ok9OUFeg,821
65
+ wbportfolio/factories/portfolio_cash_targets.py,sha256=6bYaKjV56yRbjRaQzime218Dho652pcpkAqwhq63D3g,678
66
+ wbportfolio/factories/portfolio_swing_pricings.py,sha256=CLT9AgZKPwChfPDATl-r2r8IVsM5U6S5gDJ8BzsweyI,828
67
67
  wbportfolio/factories/portfolios.py,sha256=3_wzz-q7Tc3CtVOQNM8eA4UZljds2IizTzGWE9ue1AQ,1524
68
68
  wbportfolio/factories/product_groups.py,sha256=JMtG301j5XehB3qmNSbXt6af56Y9uvG3fgbCMf9FCSc,1987
69
69
  wbportfolio/factories/products.py,sha256=N0V6sM_98sC6l8qN78wgfmtpYq7O2c5rW5hT5ZM5gsA,2880
@@ -193,8 +193,12 @@ wbportfolio/import_export/resources/assets.py,sha256=zjgHlQWpud41jHrKdRyqGUt1KUJ
193
193
  wbportfolio/import_export/resources/trades.py,sha256=_uAI2clV_ZjStX2Gf4rl_wWo2R4AHNOsZO52g0XKcM0,1723
194
194
  wbportfolio/jinja2/wbportfolio/sql/aum_nnm.sql,sha256=BvMnLsVlXIqU5hhwLDbwZ6nBqWULIBDVcgLJ2B4sdS4,4440
195
195
  wbportfolio/kpi_handlers/nnm.py,sha256=hCn0oG0C-6dQ0G-6S4r31nAS633NZdlOT-ntZrzvXZI,7180
196
- wbportfolio/locale/de/LC_MESSAGES/django.po,sha256=s8v30sG4gLJHPQDajmvGuTPjZ_rWgpp-KagT-VEGsww,5787
197
- wbportfolio/locale/fr/LC_MESSAGES/django.po,sha256=PJ9_xbM64SEoz48Viocyz7w7hDnWavtY2ep35rvPtDg,5786
196
+ wbportfolio/locale/de/LC_MESSAGES/django.mo,sha256=FfQ5HV2xg7ZrJASidRJ4L-gCAbPNeQnFm940aRbb0js,378
197
+ wbportfolio/locale/de/LC_MESSAGES/django.po,sha256=Y0CbQMiq1N8SmqKltxPlobdoDhTTtPrFBYBg3_o6O5U,5215
198
+ wbportfolio/locale/en/LC_MESSAGES/django.mo,sha256=UXCQbz2AxBvh-IQ7bGgjoBnijo8h9DfE9107A-2Mgkk,337
199
+ wbportfolio/locale/en/LC_MESSAGES/django.po,sha256=PzxyjsnP5LkX8YQtnuGPk8gQ72YSfeWb1UONZIAOq_s,5165
200
+ wbportfolio/locale/fr/LC_MESSAGES/django.mo,sha256=t4lh3zX7kshbDAFzXa5HU_YGPXkPzKqODNXL2MeZ5KQ,429
201
+ wbportfolio/locale/fr/LC_MESSAGES/django.po,sha256=EdY0xnTQG8al2Fi_Ml2rxEZ7cr-YhRkAT2G3ABjhAZI,5266
198
202
  wbportfolio/metric/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
199
203
  wbportfolio/metric/backends/__init__.py,sha256=jfim5By5KqXfraENRFlhXy3i3gIzmElD6sfwL3qK2KM,108
200
204
  wbportfolio/metric/backends/base.py,sha256=Dv9uTAPizUJtGraTPMaSnrqWpJJSr-ftPid4wttQhkI,2787
@@ -334,7 +338,7 @@ wbportfolio/serializers/portfolio_swing_pricing.py,sha256=a21st7MmcugbAO_xc90QWS
334
338
  wbportfolio/serializers/portfolios.py,sha256=qEbrTAVepeVIPcs9XaWCDJ0ZxSQX8-M9HmRh6ky4KuY,7684
335
339
  wbportfolio/serializers/positions.py,sha256=UK9dvE1wiILw2E209InrsUhme52vfUYDDERBeKCcn_k,2415
336
340
  wbportfolio/serializers/product_group.py,sha256=klPGmAb1MvJpyiKKMRb8uYFIMm6SCZkMFQDu5EH-mkY,3680
337
- wbportfolio/serializers/products.py,sha256=BDMizM77Iohe7JEUncll2ET4GtU8hicQ6c4Vm0srqd4,12374
341
+ wbportfolio/serializers/products.py,sha256=B1udmx6PibxpesFndl7nb7x86P8WPcksDssmqNdZ3Uo,12694
338
342
  wbportfolio/serializers/rebalancing.py,sha256=PloLwOcgDfsna3-LRGLFQ4eYJvlMbhI0rkpm3TR1Mzc,1840
339
343
  wbportfolio/serializers/reconciliations.py,sha256=oFvGCAGioAOBK3xXjfwjMVYOXv3AbSyMg6YK6Olp6ow,7373
340
344
  wbportfolio/serializers/registers.py,sha256=zhdKH_mHEBE0VOhm6xpY54bTMtcSaY5BskEaJxtFd5Q,2737
@@ -402,7 +406,7 @@ wbportfolio/tests/viewsets/test_products.py,sha256=VsLW5iazAGch8yxH0jTgcc2fn4L7i
402
406
  wbportfolio/tests/viewsets/transactions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
403
407
  wbportfolio/tests/viewsets/transactions/test_claims.py,sha256=QEZfMAW07dyoZ63t2umSwGOqvaTULfYfbN_F4ZoSAcw,6368
404
408
  wbportfolio/viewsets/__init__.py,sha256=3kUaQ66ybvROwejd3bEcSt4XKzfOlPDaeoStMvlz7qY,2294
405
- wbportfolio/viewsets/adjustments.py,sha256=5hWCjxSgUIsrPOmJKoDYK3gywdMTI0aYDorEj1FXRVc,1429
409
+ wbportfolio/viewsets/adjustments.py,sha256=ugbX4aFRCaD4Yj1hxL-VIPaNI7GF_wt0FrkN6mq1YjU,1524
406
410
  wbportfolio/viewsets/assets.py,sha256=Gf5QKDM7QR9MC8GJhMNzaY7NzeKV_yOQw0wktKPEc9o,24661
407
411
  wbportfolio/viewsets/assets_and_net_new_money_progression.py,sha256=Jl4vEQP4N2OFL5IGBXoKcj-0qaPviU0I8npvQLw4Io0,4464
408
412
  wbportfolio/viewsets/custodians.py,sha256=CTFqkqVP1R3AV7lhdvcdICxB5DfwDYCyikNSI5kbYEo,2322
@@ -432,7 +436,7 @@ wbportfolio/viewsets/configs/buttons/custodians.py,sha256=AE-VFahGreSlg5nejqQVvO
432
436
  wbportfolio/viewsets/configs/buttons/fees.py,sha256=8z-qo5krw4x_9ujp0s8iR8iY8_5m-wusPNaQkjMxFSA,443
433
437
  wbportfolio/viewsets/configs/buttons/mixins.py,sha256=B6Yr5ASX_gnAwJPmSjuzI61Wcv9i2L6HIPSRXdhGf54,3173
434
438
  wbportfolio/viewsets/configs/buttons/portfolios.py,sha256=y1sqYJwhQG9M0AgUEY8yEE3VTdhhVxoup3YBc2IRm-U,5267
435
- wbportfolio/viewsets/configs/buttons/products.py,sha256=HfMQjpgGAgvTDLEFQRwbHE82tcASEiN14MiaJ83HwUY,1435
439
+ wbportfolio/viewsets/configs/buttons/products.py,sha256=bHOs2ftfaLbIbJ7E8yFqQqSuXCIYD6w3f3peireAUyk,1839
436
440
  wbportfolio/viewsets/configs/buttons/reconciliations.py,sha256=lw4r22GHpqKPUF1MrB6P9dOkL-FHe5iiBJ0--f8D74E,3145
437
441
  wbportfolio/viewsets/configs/buttons/registers.py,sha256=aS89TsYHql83k-NHojOrLDqtBpnpsUUO8x63PiMfrXM,445
438
442
  wbportfolio/viewsets/configs/buttons/signals.py,sha256=6sKBQI_eDvZuZR5bUUwvur5R67A3oChAGxPfayWUelE,2739
@@ -459,25 +463,25 @@ wbportfolio/viewsets/configs/display/roles.py,sha256=SFUyCdxSlHZ3NsMrJmpVBSlg-XK
459
463
  wbportfolio/viewsets/configs/display/trade_proposals.py,sha256=sRLSUjKlarBhnTwg7tX_Juldor3beswJlyvZfFPvNEk,4315
460
464
  wbportfolio/viewsets/configs/display/trades.py,sha256=PbGI8Sjs8YMBLfeYdgXRbv_tvel2aV3dB-7oZXnLwz4,17587
461
465
  wbportfolio/viewsets/configs/display/transactions.py,sha256=DOM3eV1DxBwX6Iiw3C2sJamWh6A_3ZSYC9447Jc3Wmo,2586
462
- wbportfolio/viewsets/configs/endpoints/__init__.py,sha256=E13AYY3CIW4CZtmqwBVMPDYA5zNyKJeRZtiXKtad68Y,2871
463
- wbportfolio/viewsets/configs/endpoints/adjustments.py,sha256=9CcnfNuFcxsZ8YvfUitSeyCvpLxY-jU-gIw3GG0mIp4,697
464
- wbportfolio/viewsets/configs/endpoints/assets.py,sha256=fe_D-x3z4xzzAJ7ktvvvwGuoX51l8iTPdDNugagxHYc,3891
465
- wbportfolio/viewsets/configs/endpoints/claim.py,sha256=H7oUbatjyq6HiSrMzgSMV8KqzH_PNQ5XcwHuL1yX1aA,3650
466
+ wbportfolio/viewsets/configs/endpoints/__init__.py,sha256=i4co3ypdMIPVN4qyzcxqh4i5oLeOPx3WL2SYpyHix-Y,2903
467
+ wbportfolio/viewsets/configs/endpoints/adjustments.py,sha256=KRZLqv4ZeB27d-_s7Qlqj9LI3I9WFJkjc6Mw8agDueE,606
468
+ wbportfolio/viewsets/configs/endpoints/assets.py,sha256=B8W6ATQQfT292TllE4sUDYv5wHUCo99HEqymJuMtFAc,1909
469
+ wbportfolio/viewsets/configs/endpoints/claim.py,sha256=eslxWx41m2kRJdO1Vk799SrFi5yDRg6zqMTEzve7cKw,3282
466
470
  wbportfolio/viewsets/configs/endpoints/custodians.py,sha256=Ve7TxfvFnmvm9x0cx6taO502EVWJb23fdVT9yX3ME5o,194
467
- wbportfolio/viewsets/configs/endpoints/esg.py,sha256=9wGxw1fW8UQJtGd-cT9XWl5gfKN68SSft3wqmkUK4MQ,467
468
- wbportfolio/viewsets/configs/endpoints/fees.py,sha256=BOxBdZAYNjmKERHnLa16sBR6LRywswYKite4nwgUbX0,872
469
- wbportfolio/viewsets/configs/endpoints/portfolio_relationship.py,sha256=zqRiq9I7IxpMD_2hfrIQRkdpiFRAWBdRBprxqYnkgA8,786
470
- wbportfolio/viewsets/configs/endpoints/portfolios.py,sha256=DQKAF6L8Zn1HJArKK9diie_iIfz_-Z7WW8lXxTg3bnU,1847
471
- wbportfolio/viewsets/configs/endpoints/positions.py,sha256=k3wvthHBU0pm3Vt4eQ6mIMAFOjA2wKxsFNkEXW5pmQg,635
471
+ wbportfolio/viewsets/configs/endpoints/esg.py,sha256=vJA7f7k25usSec82V_fxkJZJSZszE_QtOV_UR_KDh8Q,202
472
+ wbportfolio/viewsets/configs/endpoints/fees.py,sha256=883PbLzhMpzCL1dwMNOZ1UoFGQK_q-pva6ioYfCxgg0,317
473
+ wbportfolio/viewsets/configs/endpoints/portfolio_relationship.py,sha256=pJ6lgtKY1kF-0WDbJT1r_C6OwOhsa1hYn-7HhLgpL7U,568
474
+ wbportfolio/viewsets/configs/endpoints/portfolios.py,sha256=A_da7aunssyu30N9_PW6ZRcpR8bjJOe0fHpQgD-ecKY,1343
475
+ wbportfolio/viewsets/configs/endpoints/positions.py,sha256=jZUY6kjpufBxmVkDMd7HavcarzBXMfJhdSMbbhspTLg,320
472
476
  wbportfolio/viewsets/configs/endpoints/product_groups.py,sha256=2pj9DRGAdhQrJZ2Jb1D-N1_pTkaNVsPCXxvOdmP090I,337
473
- wbportfolio/viewsets/configs/endpoints/product_performance.py,sha256=DGnkfUt9npfW2XphEoJOzzcmdLtIhHFmx6IlAXwS2xE,1078
474
- wbportfolio/viewsets/configs/endpoints/products.py,sha256=IhYbPBEs4u9vHOxTb_HnKHfo17csxEd1_chTk9y17Cw,1358
477
+ wbportfolio/viewsets/configs/endpoints/product_performance.py,sha256=X4PbLK1tQfqvWCJJzr2ZwJd5dwwJmCdTdgRWP5gOR5I,687
478
+ wbportfolio/viewsets/configs/endpoints/products.py,sha256=1K0AaQPB12v433RRk3h9Q56w-2eK7EL17_QQtnerMjQ,1101
475
479
  wbportfolio/viewsets/configs/endpoints/rebalancing.py,sha256=D0VqMkWUeC-4mSN-GbZz36X8GNHVXoqXROhmqzcqSfk,195
476
480
  wbportfolio/viewsets/configs/endpoints/reconciliations.py,sha256=xriq1KSctxQa6AE9SgkupMPVa9807OyYSIYhWk9WBpM,1059
477
481
  wbportfolio/viewsets/configs/endpoints/roles.py,sha256=5Nwi2sdUYc85YL0wJ7SUtt87ZBTOVdFnEexUgVrmcX4,367
478
482
  wbportfolio/viewsets/configs/endpoints/trade_proposals.py,sha256=sno7SOHWjKvvF_YdgYx5KthntM--F3DX-9hsrY5vRTM,783
479
- wbportfolio/viewsets/configs/endpoints/trades.py,sha256=5NKMSYaGWDd8OcV16HLRSlAgYYXObLikLf2w4ix2DoE,3483
480
- wbportfolio/viewsets/configs/endpoints/transactions.py,sha256=6u2GWm67o4g1PoAtZXLdLyu3J4qhyOA1dm9Otu1i9f8,813
483
+ wbportfolio/viewsets/configs/endpoints/trades.py,sha256=HeTPWgP8Hjx_gYjQLjdZvUAIKa8dvcBRVj_AjPi8IB4,3456
484
+ wbportfolio/viewsets/configs/endpoints/transactions.py,sha256=-IrGVXAfp4kUcRMlpul0vetXA1Y8vDJ6cc-umnOjem8,440
481
485
  wbportfolio/viewsets/configs/menu/__init__.py,sha256=gzUpv5f8FAK1Bdhn0AhcMLJR3r9RXHRXcHg21vuvGxs,1184
482
486
  wbportfolio/viewsets/configs/menu/adjustments.py,sha256=sQ25Jp2N8nsLSUOEJTJUBE0Y7bIPHK4Y6LE0e1OzX38,316
483
487
  wbportfolio/viewsets/configs/menu/assets.py,sha256=FkddF1_mu01e1mnkJkXPQcE0izI0Q3wU7VBFIkeT-Qw,340
@@ -524,7 +528,7 @@ wbportfolio/viewsets/transactions/rebalancing.py,sha256=6rIrdK0rtKL1afJ-tYfAGdQV
524
528
  wbportfolio/viewsets/transactions/trade_proposals.py,sha256=Uk-K-x4MWKzsciRveALA5Fup6zBkin0z4bIedCIqolM,5988
525
529
  wbportfolio/viewsets/transactions/trades.py,sha256=-yJ4j8NJTu2VWyhCq5BXGNND_925Ietoxx9k07SLVh0,21634
526
530
  wbportfolio/viewsets/transactions/transactions.py,sha256=ixDp-nsNA8t_A06rBCT19hOMJHy0iRmdz1XKdV1OwAs,4450
527
- wbportfolio-1.51.1.dist-info/METADATA,sha256=4kMtnYfNmkkp0V3LGDW8Ci5GkUwDD8Ynb5n68U9jhiE,702
528
- wbportfolio-1.51.1.dist-info/WHEEL,sha256=tkmg4JIqwd9H8mL30xA7crRmoStyCtGp0VWshokd1Jc,105
529
- wbportfolio-1.51.1.dist-info/licenses/LICENSE,sha256=jvfVH0SY8_YMHlsJHKe_OajiscQDz4lpTlqT6x24sVw,172
530
- wbportfolio-1.51.1.dist-info/RECORD,,
531
+ wbportfolio-1.51.2rc1.dist-info/METADATA,sha256=aMS7mwwWJhc4O3oYmjrKuBnckuFFX1NLtTiF7fBZKnQ,705
532
+ wbportfolio-1.51.2rc1.dist-info/WHEEL,sha256=tkmg4JIqwd9H8mL30xA7crRmoStyCtGp0VWshokd1Jc,105
533
+ wbportfolio-1.51.2rc1.dist-info/licenses/LICENSE,sha256=jvfVH0SY8_YMHlsJHKe_OajiscQDz4lpTlqT6x24sVw,172
534
+ wbportfolio-1.51.2rc1.dist-info/RECORD,,