wbportfolio 1.51.0__py2.py3-none-any.whl → 1.51.1__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.

@@ -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 <= self.end_date, "sum_shares_end"] = df.shares
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"] < self.end_date) & (df["date"] >= self.start_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().dropna()[["id", "date", "aum_sparkline"]]
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:
@@ -140,7 +140,7 @@ def claim_adding_additional_resource(sender, serializer, instance, request, user
140
140
  start = current_quarter_date_start()
141
141
  return {
142
142
  "claims": reverse("wbportfolio:entry-claim-list", args=[instance.id], request=request),
143
- "aum": f'{reverse("wbportfolio:aumtable-list", args=[], request=request)}?group_by=PRODUCT&account_owner={instance.id}&date_gte={start:%Y-%m-%d}&date_lte={date.today():%Y-%m-%d}',
143
+ "aum": f'{reverse("wbportfolio:aumtable-list", args=[], request=request)}?group_by=PRODUCT&account_owner={instance.id}&date={start:%Y-%m-%d},{date.today():%Y-%m-%d}',
144
144
  }
145
145
 
146
146
 
@@ -11,7 +11,6 @@ TRADE_MENUITEM = MenuItem(
11
11
  SUBSCRIPTION_REDEMPTION_MENUITEM = MenuItem(
12
12
  label="Subscription/Redemption",
13
13
  endpoint="wbportfolio:subscriptionredemption-list",
14
- # endpoint_get_parameters={'is_customer_trade': True},
15
14
  permission=ItemPermission(
16
15
  permissions=["wbportfolio.view_trade"], method=lambda request: is_internal_user(request.user)
17
16
  ),
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: wbportfolio
3
- Version: 1.51.0
3
+ Version: 1.51.1
4
4
  Author-email: Christopher Wittlinger <c.wittlinger@stainly.com>
5
5
  License-File: LICENSE
6
6
  Requires-Dist: cryptography==3.4.*
@@ -25,7 +25,7 @@ wbportfolio/admin/transactions/rebalancing.py,sha256=FUMazUUxp7P2M9YhWpqKCS-Em4m
25
25
  wbportfolio/admin/transactions/trades.py,sha256=QCYMtP6ZBEEy6iMTdFKg3HjTe5DvXdPu5PqNmEwB0Cw,1708
26
26
  wbportfolio/admin/transactions/transactions.py,sha256=xxy9J8zO0gtqzVUP_Y2OjTXfkNGqrW9f4wWmITir7HQ,1275
27
27
  wbportfolio/analysis/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
28
- wbportfolio/analysis/claims.py,sha256=hZm06BARTM2AVoojn7IwHB22aNHk5coqR61QYVNKGfM,10788
28
+ wbportfolio/analysis/claims.py,sha256=islJVmHg6jKr6Q1b84Vt5Au2bzy9aDjWGEVGNtPFQd4,10688
29
29
  wbportfolio/contrib/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
30
30
  wbportfolio/contrib/company_portfolio/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
31
31
  wbportfolio/contrib/company_portfolio/admin.py,sha256=roUsuOjYDWX0OGWVBjCcW3MAcwJHJYHnqZ_pLpwakmQ,549
@@ -339,7 +339,7 @@ wbportfolio/serializers/rebalancing.py,sha256=PloLwOcgDfsna3-LRGLFQ4eYJvlMbhI0rk
339
339
  wbportfolio/serializers/reconciliations.py,sha256=oFvGCAGioAOBK3xXjfwjMVYOXv3AbSyMg6YK6Olp6ow,7373
340
340
  wbportfolio/serializers/registers.py,sha256=zhdKH_mHEBE0VOhm6xpY54bTMtcSaY5BskEaJxtFd5Q,2737
341
341
  wbportfolio/serializers/roles.py,sha256=T-9NqTldpvaEMFy-Bib5MB6MeboygEOqcMP61mzzD3Q,2146
342
- wbportfolio/serializers/signals.py,sha256=WThxAFVHG-_UnOi2-iEKVj-VabgQF80wMmCvA1sBYAA,7290
342
+ wbportfolio/serializers/signals.py,sha256=1rf3EPmDAPCuUUEmg9A2Z8d1nHSz_mw4EnuLYg8cqvA,7277
343
343
  wbportfolio/serializers/transactions/__init__.py,sha256=5ekvvAKnuEt8eBQfIhJ2ZXosWuHSEQvxEZWfDiPGbdw,896
344
344
  wbportfolio/serializers/transactions/claim.py,sha256=kC4E2RZRrpd9i8tGfoiV-gpWDk3ikR5F1Wf0v_IGIvw,11599
345
345
  wbportfolio/serializers/transactions/dividends.py,sha256=EULwKDumHBv4r2HsdEGZMZGFaye4dRUNNyXg6-wZXzc,520
@@ -494,7 +494,7 @@ wbportfolio/viewsets/configs/menu/products.py,sha256=EvxfcijRir1s4QPIPbseDbRNs53
494
494
  wbportfolio/viewsets/configs/menu/reconciliations.py,sha256=AkIu5h2nd5JGteAWTSQFTjP8egPES8fR1xlBKU3X8EM,277
495
495
  wbportfolio/viewsets/configs/menu/registers.py,sha256=s4TU9y5nTPWHf8ycWg-cu4mp7LvyXnUwk3PAOG7vyMw,349
496
496
  wbportfolio/viewsets/configs/menu/roles.py,sha256=rWS0SQdTgDJ2Hzyt8JdlrUCy1gjLVghzZRH61-mrP9U,642
497
- wbportfolio/viewsets/configs/menu/trades.py,sha256=niba68xOzOsxzoKd7OPdST6tqO8Q0uhtFWI0xFUQwyU,676
497
+ wbportfolio/viewsets/configs/menu/trades.py,sha256=Hkvo6Eosk0NLL5V4xk7SLgDRmnjlkjMuoZXWatFARX4,617
498
498
  wbportfolio/viewsets/configs/menu/transactions.py,sha256=ErSoDRsyf6PTvOjY9VRvU0cviKNQsN-_adxYR0qwMhw,301
499
499
  wbportfolio/viewsets/configs/previews/__init__.py,sha256=hzKMMlZf9hJ-p4WpCN44CzjzNYp1gKiRrGfH181gm2I,47
500
500
  wbportfolio/viewsets/configs/previews/portfolios.py,sha256=uAQfvChGcBaVW-oNyXqByjGGMupvW288-2nxpkU41Kw,523
@@ -524,7 +524,7 @@ wbportfolio/viewsets/transactions/rebalancing.py,sha256=6rIrdK0rtKL1afJ-tYfAGdQV
524
524
  wbportfolio/viewsets/transactions/trade_proposals.py,sha256=Uk-K-x4MWKzsciRveALA5Fup6zBkin0z4bIedCIqolM,5988
525
525
  wbportfolio/viewsets/transactions/trades.py,sha256=-yJ4j8NJTu2VWyhCq5BXGNND_925Ietoxx9k07SLVh0,21634
526
526
  wbportfolio/viewsets/transactions/transactions.py,sha256=ixDp-nsNA8t_A06rBCT19hOMJHy0iRmdz1XKdV1OwAs,4450
527
- wbportfolio-1.51.0.dist-info/METADATA,sha256=axzUSsWaTl5s2gffvUFIEoAEmtuHQ5DQmdNT_u_ub8s,702
528
- wbportfolio-1.51.0.dist-info/WHEEL,sha256=tkmg4JIqwd9H8mL30xA7crRmoStyCtGp0VWshokd1Jc,105
529
- wbportfolio-1.51.0.dist-info/licenses/LICENSE,sha256=jvfVH0SY8_YMHlsJHKe_OajiscQDz4lpTlqT6x24sVw,172
530
- wbportfolio-1.51.0.dist-info/RECORD,,
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,,