wbportfolio 1.51.0__py2.py3-none-any.whl → 1.51.2__py2.py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of wbportfolio might be problematic. Click here for more details.
- wbportfolio/analysis/claims.py +9 -13
- 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/serializers/signals.py +1 -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/viewsets/configs/menu/trades.py +0 -1
- {wbportfolio-1.51.0.dist-info → wbportfolio-1.51.2.dist-info}/METADATA +1 -1
- {wbportfolio-1.51.0.dist-info → wbportfolio-1.51.2.dist-info}/RECORD +31 -27
- {wbportfolio-1.51.0.dist-info → wbportfolio-1.51.2.dist-info}/WHEEL +0 -0
- {wbportfolio-1.51.0.dist-info → wbportfolio-1.51.2.dist-info}/licenses/LICENSE +0 -0
wbportfolio/analysis/claims.py
CHANGED
|
@@ -57,15 +57,15 @@ class ConsolidatedTradeSummary:
|
|
|
57
57
|
self.pivot = pivot
|
|
58
58
|
self.pivot_label = pivot_label
|
|
59
59
|
self.queryset = self.queryset.annotate(
|
|
60
|
-
net_value=InstrumentPrice.subquery_closest_value(
|
|
61
|
-
"net_value", date_name="date", instrument_pk_name="product__pk", date_lookup="exact"
|
|
62
|
-
),
|
|
63
|
-
fx_rate=CurrencyFXRates.get_fx_rates_subquery("date", lookup_expr="exact"),
|
|
64
|
-
aum=ExpressionWrapper(F("fx_rate") * F("net_value") * F("shares"), output_field=DecimalField()),
|
|
65
60
|
internal_trade=F("trade__marked_as_internal"),
|
|
66
61
|
date_considered=ExpressionWrapper(
|
|
67
62
|
Greatest("trade__transaction_date", "date") + 1, output_field=DateField()
|
|
68
63
|
),
|
|
64
|
+
net_value=InstrumentPrice.subquery_closest_value(
|
|
65
|
+
"net_value", date_name="date_considered", instrument_pk_name="product__pk", date_lookup="exact"
|
|
66
|
+
),
|
|
67
|
+
fx_rate=CurrencyFXRates.get_fx_rates_subquery("date_considered", lookup_expr="exact"),
|
|
68
|
+
aum=ExpressionWrapper(F("fx_rate") * F("net_value") * F("shares"), output_field=DecimalField()),
|
|
69
69
|
)
|
|
70
70
|
self.queryset = Account.annotate_root_account_info(self.queryset)
|
|
71
71
|
|
|
@@ -154,7 +154,7 @@ class ConsolidatedTradeSummary:
|
|
|
154
154
|
def get_aum_df(self) -> pd.DataFrame:
|
|
155
155
|
df = self.df.copy().drop(columns=["internal_trade"])
|
|
156
156
|
df.loc[df.date <= self.start_date, "sum_shares_start"] = df.shares
|
|
157
|
-
df.loc[df.date
|
|
157
|
+
df.loc[df.date < self.end_date, "sum_shares_end"] = df.shares
|
|
158
158
|
df = df.fillna(0)
|
|
159
159
|
# Prepare dataframe
|
|
160
160
|
df["sum_aum_start"] = df.sum_shares_start * df.price_start
|
|
@@ -190,7 +190,7 @@ class ConsolidatedTradeSummary:
|
|
|
190
190
|
df.loc[df["aum"] < 0, "aum"] = 0
|
|
191
191
|
elif only_negative:
|
|
192
192
|
df.loc[df["aum"] > 0, "aum"] = 0
|
|
193
|
-
df = df[(df["date"]
|
|
193
|
+
df = df[((df["date"] > self.start_date) & (df["date"] <= self.end_date))]
|
|
194
194
|
df["date"] = pd.to_datetime(df["date"])
|
|
195
195
|
df["period"] = "sum_nnm_" + df.date.dt.year.astype(str) + "-" + df.date.dt.month.map("{:02}".format)
|
|
196
196
|
df = df[["id", "period", "aum"]].groupby(["id", "period"]).sum().reset_index()
|
|
@@ -228,12 +228,8 @@ class ConsolidatedTradeSummary:
|
|
|
228
228
|
),
|
|
229
229
|
fill_value=0,
|
|
230
230
|
)
|
|
231
|
-
df = df.reset_index()
|
|
232
|
-
return (
|
|
233
|
-
df.groupby("id")
|
|
234
|
-
.apply(lambda o: list(zip(o["date"].dt.strftime("%Y-%m-%d"), o["aum_sparkline"])))
|
|
235
|
-
.rename("aum_sparkline")
|
|
236
|
-
)
|
|
231
|
+
df = df.reset_index(level=1)[["date", "aum_sparkline"]].apply(tuple, axis=1).rename("aum_sparkline")
|
|
232
|
+
return df.groupby("id").apply(list)
|
|
237
233
|
return pd.DataFrame()
|
|
238
234
|
|
|
239
235
|
def get_initial_investment_date_df(self) -> pd.DataFrame:
|
|
@@ -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
|