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.
- wbportfolio/factories/portfolio_cash_targets.py +1 -1
- wbportfolio/factories/portfolio_swing_pricings.py +1 -1
- wbportfolio/locale/de/LC_MESSAGES/django.mo +0 -0
- wbportfolio/locale/de/LC_MESSAGES/django.po +51 -52
- wbportfolio/locale/en/LC_MESSAGES/django.mo +0 -0
- wbportfolio/locale/en/LC_MESSAGES/django.po +195 -0
- wbportfolio/locale/fr/LC_MESSAGES/django.mo +0 -0
- wbportfolio/locale/fr/LC_MESSAGES/django.po +52 -53
- wbportfolio/serializers/products.py +5 -1
- wbportfolio/viewsets/adjustments.py +2 -0
- wbportfolio/viewsets/configs/buttons/products.py +15 -4
- wbportfolio/viewsets/configs/endpoints/__init__.py +1 -1
- wbportfolio/viewsets/configs/endpoints/adjustments.py +7 -7
- wbportfolio/viewsets/configs/endpoints/assets.py +6 -60
- wbportfolio/viewsets/configs/endpoints/claim.py +0 -9
- wbportfolio/viewsets/configs/endpoints/esg.py +0 -8
- wbportfolio/viewsets/configs/endpoints/fees.py +2 -14
- wbportfolio/viewsets/configs/endpoints/portfolio_relationship.py +0 -7
- wbportfolio/viewsets/configs/endpoints/portfolios.py +7 -20
- wbportfolio/viewsets/configs/endpoints/positions.py +0 -7
- wbportfolio/viewsets/configs/endpoints/product_performance.py +1 -8
- wbportfolio/viewsets/configs/endpoints/products.py +0 -6
- wbportfolio/viewsets/configs/endpoints/trades.py +5 -6
- wbportfolio/viewsets/configs/endpoints/transactions.py +1 -10
- {wbportfolio-1.51.1.dist-info → wbportfolio-1.51.2rc1.dist-info}/METADATA +1 -1
- {wbportfolio-1.51.1.dist-info → wbportfolio-1.51.2rc1.dist-info}/RECORD +28 -24
- {wbportfolio-1.51.1.dist-info → wbportfolio-1.51.2rc1.dist-info}/WHEEL +0 -0
- {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("
|
|
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("
|
|
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)
|
|
Binary file
|
|
@@ -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-
|
|
12
|
-
"PO-Revision-Date:
|
|
13
|
-
"
|
|
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
|
-
|
|
21
|
-
#:
|
|
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
|
-
#:
|
|
26
|
-
#:
|
|
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
|
-
#:
|
|
31
|
-
#:
|
|
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
|
-
#:
|
|
36
|
-
#:
|
|
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
|
-
#:
|
|
40
|
+
#: contrib/company_portfolio/configs/display.py:124
|
|
41
41
|
msgid "Customer Information"
|
|
42
42
|
msgstr ""
|
|
43
43
|
|
|
44
|
-
#:
|
|
44
|
+
#: models/reconciliations/account_reconciliation_lines.py:118
|
|
45
45
|
msgid "The last share price of the product"
|
|
46
46
|
msgstr ""
|
|
47
47
|
|
|
48
|
-
#:
|
|
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
|
-
#:
|
|
52
|
+
#: models/reconciliations/account_reconciliation_lines.py:133
|
|
53
53
|
msgid "The nominal value computed through the Workbench"
|
|
54
54
|
msgstr ""
|
|
55
55
|
|
|
56
|
-
#:
|
|
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
|
-
#:
|
|
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
|
-
#:
|
|
68
|
+
#: models/reconciliations/account_reconciliation_lines.py:155
|
|
69
69
|
msgid "Account Reconciliation (Product)"
|
|
70
70
|
msgstr ""
|
|
71
71
|
|
|
72
|
-
#:
|
|
72
|
+
#: models/reconciliations/account_reconciliation_lines.py:156
|
|
73
73
|
msgid "Account Reconciliation (Products)"
|
|
74
74
|
msgstr ""
|
|
75
75
|
|
|
76
|
-
#:
|
|
76
|
+
#: models/reconciliations/reconciliations.py:19
|
|
77
77
|
msgid "Approved By"
|
|
78
78
|
msgstr ""
|
|
79
79
|
|
|
80
|
-
#:
|
|
80
|
+
#: models/reconciliations/reconciliations.py:22
|
|
81
81
|
msgid "Approved Timestamp"
|
|
82
82
|
msgstr ""
|
|
83
83
|
|
|
84
|
-
#:
|
|
85
|
-
#:
|
|
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
|
-
#:
|
|
89
|
+
#: models/transactions/rebalancing.py:81
|
|
91
90
|
msgid "Evaluation Frequency"
|
|
92
91
|
msgstr ""
|
|
93
92
|
|
|
94
|
-
#:
|
|
93
|
+
#: models/transactions/rebalancing.py:82
|
|
95
94
|
msgid "The Evaluation Frequency in RRULE format"
|
|
96
95
|
msgstr ""
|
|
97
96
|
|
|
98
|
-
#:
|
|
97
|
+
#: models/transactions/trade_proposals.py:480
|
|
99
98
|
msgid "All trades need to be draft before submitting"
|
|
100
99
|
msgstr ""
|
|
101
100
|
|
|
102
|
-
#:
|
|
101
|
+
#: models/transactions/trade_proposals.py:489
|
|
103
102
|
msgid "There is no valid trade on this proposal"
|
|
104
103
|
msgstr ""
|
|
105
104
|
|
|
106
|
-
#:
|
|
105
|
+
#: models/transactions/trade_proposals.py:557
|
|
107
106
|
msgid "The portfolio does not allow manual rebalanced"
|
|
108
107
|
msgstr ""
|
|
109
108
|
|
|
110
|
-
#:
|
|
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
|
-
#:
|
|
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
|
-
#:
|
|
120
|
+
#: models/transactions/trade_proposals.py:567
|
|
122
121
|
msgid "The pre trades rules did not passed successfully"
|
|
123
122
|
msgstr ""
|
|
124
123
|
|
|
125
|
-
#:
|
|
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
|
-
#:
|
|
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
|
-
#:
|
|
135
|
+
#: models/transactions/trades.py:324
|
|
137
136
|
msgid "Cannot execute a trade without a valid quote price"
|
|
138
137
|
msgstr ""
|
|
139
138
|
|
|
140
|
-
#:
|
|
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
|
-
#:
|
|
145
|
+
#: viewsets/configs/display/portfolios.py:105
|
|
147
146
|
msgid "Linked Instruments"
|
|
148
147
|
msgstr ""
|
|
149
148
|
|
|
150
|
-
#:
|
|
149
|
+
#: viewsets/configs/display/portfolios.py:112
|
|
151
150
|
msgid "Dependency Portfolios"
|
|
152
151
|
msgstr ""
|
|
153
152
|
|
|
154
|
-
#:
|
|
153
|
+
#: viewsets/configs/display/portfolios.py:119
|
|
155
154
|
msgid "Preferred Classification"
|
|
156
155
|
msgstr ""
|
|
157
156
|
|
|
158
|
-
#:
|
|
159
|
-
#:
|
|
157
|
+
#: viewsets/configs/display/products.py:26
|
|
158
|
+
#: viewsets/configs/display/products.py:156
|
|
160
159
|
msgid "Information"
|
|
161
160
|
msgstr ""
|
|
162
161
|
|
|
163
|
-
#:
|
|
162
|
+
#: viewsets/configs/display/products.py:62
|
|
164
163
|
msgid "Performance"
|
|
165
164
|
msgstr ""
|
|
166
165
|
|
|
167
|
-
#:
|
|
166
|
+
#: viewsets/configs/display/products.py:144
|
|
168
167
|
msgid "Classifications"
|
|
169
168
|
msgstr ""
|
|
170
169
|
|
|
171
|
-
#:
|
|
170
|
+
#: viewsets/configs/display/products.py:148
|
|
172
171
|
msgid "Fees"
|
|
173
172
|
msgstr ""
|
|
174
173
|
|
|
175
|
-
#:
|
|
174
|
+
#: viewsets/configs/display/products.py:166
|
|
176
175
|
msgid "White Label Customers"
|
|
177
176
|
msgstr ""
|
|
178
177
|
|
|
179
|
-
#:
|
|
178
|
+
#: viewsets/configs/display/products.py:170
|
|
180
179
|
msgid "Portfolios"
|
|
181
180
|
msgstr ""
|
|
182
181
|
|
|
183
|
-
#:
|
|
182
|
+
#: viewsets/configs/display/products.py:173
|
|
184
183
|
msgid "Related Instruments"
|
|
185
184
|
msgstr ""
|
|
186
185
|
|
|
187
|
-
#:
|
|
186
|
+
#: viewsets/configs/display/products.py:178
|
|
188
187
|
msgid "Index"
|
|
189
188
|
msgstr ""
|
|
190
189
|
|
|
191
|
-
#:
|
|
190
|
+
#: viewsets/configs/display/products.py:180
|
|
192
191
|
msgid "Roles"
|
|
193
192
|
msgstr ""
|
|
194
193
|
|
|
195
|
-
#:
|
|
194
|
+
#: viewsets/configs/display/products.py:183
|
|
196
195
|
msgid "Preferred Classification per Instrument"
|
|
197
196
|
msgstr ""
|
|
Binary file
|
|
@@ -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 ""
|
|
Binary file
|
|
@@ -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-
|
|
12
|
-
"PO-Revision-Date:
|
|
13
|
-
"
|
|
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
|
-
"
|
|
20
|
-
|
|
21
|
-
|
|
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
|
-
#:
|
|
26
|
-
#:
|
|
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
|
-
#:
|
|
31
|
-
#:
|
|
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
|
-
#:
|
|
36
|
-
#:
|
|
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
|
-
#:
|
|
40
|
+
#: contrib/company_portfolio/configs/display.py:124
|
|
41
41
|
msgid "Customer Information"
|
|
42
42
|
msgstr ""
|
|
43
43
|
|
|
44
|
-
#:
|
|
44
|
+
#: models/reconciliations/account_reconciliation_lines.py:118
|
|
45
45
|
msgid "The last share price of the product"
|
|
46
46
|
msgstr ""
|
|
47
47
|
|
|
48
|
-
#:
|
|
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
|
-
#:
|
|
52
|
+
#: models/reconciliations/account_reconciliation_lines.py:133
|
|
53
53
|
msgid "The nominal value computed through the Workbench"
|
|
54
54
|
msgstr ""
|
|
55
55
|
|
|
56
|
-
#:
|
|
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
|
-
#:
|
|
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
|
-
#:
|
|
68
|
+
#: models/reconciliations/account_reconciliation_lines.py:155
|
|
69
69
|
msgid "Account Reconciliation (Product)"
|
|
70
70
|
msgstr ""
|
|
71
71
|
|
|
72
|
-
#:
|
|
72
|
+
#: models/reconciliations/account_reconciliation_lines.py:156
|
|
73
73
|
msgid "Account Reconciliation (Products)"
|
|
74
74
|
msgstr ""
|
|
75
75
|
|
|
76
|
-
#:
|
|
76
|
+
#: models/reconciliations/reconciliations.py:19
|
|
77
77
|
msgid "Approved By"
|
|
78
78
|
msgstr ""
|
|
79
79
|
|
|
80
|
-
#:
|
|
80
|
+
#: models/reconciliations/reconciliations.py:22
|
|
81
81
|
msgid "Approved Timestamp"
|
|
82
82
|
msgstr ""
|
|
83
83
|
|
|
84
|
-
#:
|
|
85
|
-
#:
|
|
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
|
-
#:
|
|
89
|
+
#: models/transactions/rebalancing.py:81
|
|
91
90
|
msgid "Evaluation Frequency"
|
|
92
91
|
msgstr ""
|
|
93
92
|
|
|
94
|
-
#:
|
|
93
|
+
#: models/transactions/rebalancing.py:82
|
|
95
94
|
msgid "The Evaluation Frequency in RRULE format"
|
|
96
95
|
msgstr ""
|
|
97
96
|
|
|
98
|
-
#:
|
|
97
|
+
#: models/transactions/trade_proposals.py:480
|
|
99
98
|
msgid "All trades need to be draft before submitting"
|
|
100
99
|
msgstr ""
|
|
101
100
|
|
|
102
|
-
#:
|
|
101
|
+
#: models/transactions/trade_proposals.py:489
|
|
103
102
|
msgid "There is no valid trade on this proposal"
|
|
104
103
|
msgstr ""
|
|
105
104
|
|
|
106
|
-
#:
|
|
105
|
+
#: models/transactions/trade_proposals.py:557
|
|
107
106
|
msgid "The portfolio does not allow manual rebalanced"
|
|
108
107
|
msgstr ""
|
|
109
108
|
|
|
110
|
-
#:
|
|
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
|
-
#:
|
|
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
|
-
#:
|
|
120
|
+
#: models/transactions/trade_proposals.py:567
|
|
122
121
|
msgid "The pre trades rules did not passed successfully"
|
|
123
122
|
msgstr ""
|
|
124
123
|
|
|
125
|
-
#:
|
|
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
|
-
#:
|
|
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
|
-
#:
|
|
135
|
+
#: models/transactions/trades.py:324
|
|
137
136
|
msgid "Cannot execute a trade without a valid quote price"
|
|
138
137
|
msgstr ""
|
|
139
138
|
|
|
140
|
-
#:
|
|
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
|
-
#:
|
|
145
|
+
#: viewsets/configs/display/portfolios.py:105
|
|
147
146
|
msgid "Linked Instruments"
|
|
148
147
|
msgstr ""
|
|
149
148
|
|
|
150
|
-
#:
|
|
149
|
+
#: viewsets/configs/display/portfolios.py:112
|
|
151
150
|
msgid "Dependency Portfolios"
|
|
152
151
|
msgstr ""
|
|
153
152
|
|
|
154
|
-
#:
|
|
153
|
+
#: viewsets/configs/display/portfolios.py:119
|
|
155
154
|
msgid "Preferred Classification"
|
|
156
155
|
msgstr ""
|
|
157
156
|
|
|
158
|
-
#:
|
|
159
|
-
#:
|
|
157
|
+
#: viewsets/configs/display/products.py:26
|
|
158
|
+
#: viewsets/configs/display/products.py:156
|
|
160
159
|
msgid "Information"
|
|
161
160
|
msgstr ""
|
|
162
161
|
|
|
163
|
-
#:
|
|
162
|
+
#: viewsets/configs/display/products.py:62
|
|
164
163
|
msgid "Performance"
|
|
165
164
|
msgstr ""
|
|
166
165
|
|
|
167
|
-
#:
|
|
166
|
+
#: viewsets/configs/display/products.py:144
|
|
168
167
|
msgid "Classifications"
|
|
169
168
|
msgstr ""
|
|
170
169
|
|
|
171
|
-
#:
|
|
170
|
+
#: viewsets/configs/display/products.py:148
|
|
172
171
|
msgid "Fees"
|
|
173
172
|
msgstr ""
|
|
174
173
|
|
|
175
|
-
#:
|
|
174
|
+
#: viewsets/configs/display/products.py:166
|
|
176
175
|
msgid "White Label Customers"
|
|
177
176
|
msgstr ""
|
|
178
177
|
|
|
179
|
-
#:
|
|
178
|
+
#: viewsets/configs/display/products.py:170
|
|
180
179
|
msgid "Portfolios"
|
|
181
180
|
msgstr ""
|
|
182
181
|
|
|
183
|
-
#:
|
|
182
|
+
#: viewsets/configs/display/products.py:173
|
|
184
183
|
msgid "Related Instruments"
|
|
185
184
|
msgstr ""
|
|
186
185
|
|
|
187
|
-
#:
|
|
186
|
+
#: viewsets/configs/display/products.py:178
|
|
188
187
|
msgid "Index"
|
|
189
188
|
msgstr ""
|
|
190
189
|
|
|
191
|
-
#:
|
|
190
|
+
#: viewsets/configs/display/products.py:180
|
|
192
191
|
msgid "Roles"
|
|
193
192
|
msgstr ""
|
|
194
193
|
|
|
195
|
-
#:
|
|
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["
|
|
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.
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
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
|
|
|
@@ -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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
19
|
-
return reverse(
|
|
20
|
-
"wbportfolio:portfolio-transaction-list",
|
|
21
|
-
args=[self.view.kwargs["portfolio_id"]],
|
|
22
|
-
request=self.request,
|
|
23
|
-
)
|
|
14
|
+
pass
|
|
@@ -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=
|
|
66
|
-
wbportfolio/factories/portfolio_swing_pricings.py,sha256=
|
|
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.
|
|
197
|
-
wbportfolio/locale/
|
|
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=
|
|
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=
|
|
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=
|
|
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=
|
|
463
|
-
wbportfolio/viewsets/configs/endpoints/adjustments.py,sha256=
|
|
464
|
-
wbportfolio/viewsets/configs/endpoints/assets.py,sha256=
|
|
465
|
-
wbportfolio/viewsets/configs/endpoints/claim.py,sha256=
|
|
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=
|
|
468
|
-
wbportfolio/viewsets/configs/endpoints/fees.py,sha256=
|
|
469
|
-
wbportfolio/viewsets/configs/endpoints/portfolio_relationship.py,sha256=
|
|
470
|
-
wbportfolio/viewsets/configs/endpoints/portfolios.py,sha256=
|
|
471
|
-
wbportfolio/viewsets/configs/endpoints/positions.py,sha256=
|
|
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=
|
|
474
|
-
wbportfolio/viewsets/configs/endpoints/products.py,sha256=
|
|
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=
|
|
480
|
-
wbportfolio/viewsets/configs/endpoints/transactions.py,sha256
|
|
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.
|
|
528
|
-
wbportfolio-1.51.
|
|
529
|
-
wbportfolio-1.51.
|
|
530
|
-
wbportfolio-1.51.
|
|
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,,
|
|
File without changes
|
|
File without changes
|