-
Notifications
You must be signed in to change notification settings - Fork 127
/
Copy pathchangelog
500 lines (328 loc) · 15.6 KB
/
changelog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
Roadmap
=======
1.5
* Uses Web Component for browser-based client components
* removes deprecated AngularJS browser app
1.0
* completes documentation of new features in 0.20
(initially we anticipated to support Vue3 but there are so many features
in Vue2 that lead us to pick Vue from a front-end UI framework, and that
were removed in Vue3, that it does not make sense to migrate to Vue3)
Released versions
=================
0.20.5
* fixes role request while a role grant is pending
* saves meta information in role
* repares profile/user relationship whenever possible
* shows discount type correctly in template
-- Sebastien Mirolo <smirolo@djaodjin.com> Mon, 26 Jul 2024 07:15:00 -0700
0.20.4
* accounts for upper/lower case email during group buy
* enables filter by provider in /api/pricing
* removes b'' marker in downloads while being py27-compatible
-- Sebastien Mirolo <smirolo@djaodjin.com> Wed, 1 May 2024 16:25:00 -0700
0.20.3
* adds back `created_at` in registered-not-subscribed API
* uses db router for lifetime and balances-due APIs
* fixes bad refactoring of balance sheet API
* restores group buy checkbox as default option
-- Sebastien Mirolo <smirolo@djaodjin.com> Fri, 26 Apr 2024 12:50:00 -0700
0.20.2
* matches period_sales_report notification context to API format
* supports queryset and list in TypeaheadPagination
* makes profile redirect page consistent with deployutils
* adds contact info in CSV downloads
* adds feature flag for group buy functionality
* handles alpha channel properly in profile pictures (UI)
* attaches error message to input field or toplevel - not both (UI)
-- Sebastien Mirolo <smirolo@djaodjin.com> Fri, 12 Apr 2024 16:00:00 -0700
0.20.1
* uses Django formats to localize money and dates (renamed `|short_date`)
* uses same template context for e-mail and PDF charge receipts
* prevents deleted subscribers to show in subscribers API results
* fixes 500 when balance due on a one-time charge
-- Sebastien Mirolo <smirolo@djaodjin.com> Thu, 14 Mar 2024 14:10:00 -0700
0.20.0
* adds field to manage otp code requirements per role
* computes number of periods that cover more than 1 year correctly
-- Sebastien Mirolo <smirolo@djaodjin.com> Thu, 15 Feb 2024 06:30:00 -0700
0.19.1
* packages missing static/data/currencies.json
-- Sebastien Mirolo <smirolo@djaodjin.com> Wed, 27 Dec 2023 14:20:00 -0700
0.19.0
* adds API endpoint to retrieve customers with balances due
* adds API endpoint for broker to retrieve in-progress carts
* extends metrics APIs to support period_type and nb_periods parameters
* notifies when use charges are above limit in period
* supports OpenAPI 3 schema for API documentation
* fixes revenue recognition when subscription is resumed after pause
* fixes denying role request with no role description
-- Sebastien Mirolo <smirolo@djaodjin.com> Wed, 27 Dec 2023 12:00:00 -0700
0.18.0
* adds APIs for agreements
* adds expiration date to roles (migrations)
* renames `agreement.modified` to `agreement.updated_at` (migrations)
* reduces number of query in list APIs by using `select_related`
* simplifies personal profile to organization profile convertion
* fixes `expand` argument specified twice (#270)
* fixes display of coupons restricted to plan
-- Sebastien Mirolo <smirolo@djaodjin.com> Fri, 15 Aug 2023 15:40:00 -0700
0.17.1
* compatibles with Bootstrap5
* verifies request.user e-mail whenever we attempt an implicit grant
* only returns active profiles in typeahead (fix)
* limits refund per line item (fix)
-- Sebastien Mirolo <smirolo@djaodjin.com> Fri, 2 Aug 2023 10:35:00 -0700
0.17.0
* defaults to {profile} in url patterns
* adds POST /api/billing/{profile}/balance for Usage-based pricing
* returns last unpaid orders in balance API
* fixes last_payment to return most recent payment
* creates implicit personal profile if hint is present in plan
* search for exact slugs returns more than MAX_TYPEAHEAD_CANDIDATES results
-- Sebastien Mirolo <smirolo@djaodjin.com> Fri, 7 Jul 2023 09:20:00 -0700
0.16.2
* searches profiles by e-mail domain even if a qualified e-mail is provided
-- Sebastien Mirolo <smirolo@djaodjin.com> Thu, 18 May 2023 16:40:00 -0700
0.16.1
* integrates nicely with projects login users through `auth_user.email`
-- Sebastien Mirolo <smirolo@djaodjin.com> Fri, 21 Feb 2023 15:50:00 -0700
0.16.0
* publishes distribution using pyproject.toml
* fixes UI for import of offline payments
* merges workflow to connect and create a profile
* does not record/notify automatic extensions of `is_not_priced` plans
* integrates with djaodjin-signup users pages
* normalizes metrics APIs returned results to match djaodjin-survey
-- Sebastien Mirolo <smirolo@djaodjin.com> Fri, 21 Feb 2023 09:55:00 -0700
0.15.5
* removes dependency on vue-infinite-loading for pagination
* makes broker fee functional
* enables override of product_url
-- Sebastien Mirolo <smirolo@djaodjin.com> Sat, 25 Feb 2023 06:54:00 -0700
0.15.4
* uses unique slug for RoleDescription to be consistent with Plan
* escapes comma instead of spaces in typeahead search to improve usability
* fixes `fail_subcription` when dealing with a single Plan
-- Sebastien Mirolo <smirolo@djaodjin.com> Wed, 4 Jan 2023 12:05:00 -0700
0.15.3
* supports list of plans in fail_subcription
* fixes search by ForeignKey in roles page
* adds computed boolean `outdated` query params
* redirects when creating a profile as part of workflow
-- Sebastien Mirolo <smirolo@djaodjin.com> Fri, 16 Dec 2022 21:22:00 -0700
0.15.2
* adds optional URL to download a PDF version of a receipt
* unsubscribes only subscriber through a plan API (fixes regression)
-- Sebastien Mirolo <smirolo@djaodjin.com> Fri, 7 Oct 2022 13:35:00 -0700
0.15.1
* uses serialized transactions in notifications (fixes regression)
* fitlers by a search term (fixes regression)
-- Sebastien Mirolo <smirolo@djaodjin.com> Mon, 3 Oct 2022 14:45:00 -0700
0.15.0
* reworks API for active, all and churned subscriptions for consistency
* reverts to detail serializer in key list APIs
* fixes unengaged db query (ORM did not produce expected code)
* fixes regression to show registered users to broker
-- Sebastien Mirolo <smirolo@djaodjin.com> Fri, 16 Sep 2022 13:40:00 -0700
0.14.0
* consistently uses profile fields in serializers
* searches one of space-separated terms (use "" for `and`)
* makes definition of SAAS_ORGANIZATION_MODEL optionnal (regression 0.12.0)
* expects `full_name` when creating subscription
-- Sebastien Mirolo <smirolo@djaodjin.com> Thu, 25 Aug 2022 20:58:00 -0700
0.12.0
* removes trailing '/' for all API endpoints
* adds profile slug in charge APIs (/api/billing/{profile}/charges/{charge})
* returns plan title in CartItemSerializer
* supports Django4.0
* upgrades testsite to default to Django3.2
* moves HTML views urls to urls.views module
* prepares change from organization_url_kwarg to profile_url_kwarg
Thank you to [Amir Raouf](https://github.com/amirraouf)
for the following contributions:
* Add abstract classes for Role and Organization Model
* Map foreign keys to settings ORGANIZATION_MODEL instead of explicit
Organization model
* Fix model choices to be tuple instead of set
-- Sebastien Mirolo <smirolo@djaodjin.com> Wed, 20 July 2022 19:00:00 -0700
0.11.0
* fixes balance when extending a subscription through a group buy
* fixes line items when checkout a group buy (#154, #155)
* adds engaged/unengaged subscribers APIs
* moves create shadow profile to /api/accounts/profiles/
* adds inital compatibility with Django4.0
-- Sebastien Mirolo <smirolo@djaodjin.com> Tue, 24 May 2022 19:47:00 -0700
0.10.3
* adds API to retrieve inactive profiles
* fixes multiple issues with create profile and optional fields
-- Sebastien Mirolo <smirolo@djaodjin.com> Tue, 7 Dec 2021 03:12:00 -0700
0.10.2
* restores backward compatibility - subscriptions key in profile detail API
-- Sebastien Mirolo <smirolo@djaodjin.com> Thu, 27 Oct 2021 12:46:00 -0700
0.10.1
* moves serializers.UserSerializer to serializers_overrides.UserSerializer
* enables broker profile manager to update global RoleDescriptions
* normalizes phone number before saving them into the database
* prevents use of Coupon above nb_attempts limit (fix)
* enables to customize html/css for pagination links
-- Sebastien Mirolo <smirolo@djaodjin.com> Thu, 30 Sep 2021 00:00:00 -0700
0.10.0
* works with with Django3.2
* prepares compatibility with Vue3
* moves all i18n translation server-side
* renames `subscriptions` key into `subscribes_to` as it points to a Plan
* categorizes a double-POST of the same Stripe token as a CardError
-- Sebastien Mirolo <smirolo@djaodjin.com> Sun, 18 Jul 2021 17:30:00 -0700
0.9.5
* keeps user model fields in sync with personal billing profile
* prints last4 as exactly 4 digits on receipts
* fixes index error in the presence of 100% discount and advance payments
* fixes statement balances in the presence of GroupBuy
* fixes PaymentIntent not found while using StripeConnect accounts
* redirects to login page on redirects-to-profile if user not authenticated
-- Sebastien Mirolo <smirolo@djaodjin.com> Mon, 26 Apr 2021 22:25:00 -0700
0.9.4
* adds processor in checkout and card APIs
* fixes computed balance due when subscription is free
* re-raises all StripeError as ProcessorError
-- Sebastien Mirolo <smirolo@djaodjin.com> Thu, 25 Mar 2021 11:01:00 -0700
0.9.3
* migrates to Stripe PaymentIntent for SCA
* adds balance due in checkout page
* computes customers lifetime value (LTV) for a provider
* reports error details when the payment processor has issues
-- Sebastien Mirolo <smirolo@djaodjin.com> Tue, 23 Feb 2021 09:30:00 -0700
0.9.2
* fixes translation of Transaction description when using period discounts
-- Sebastien Mirolo <smirolo@djaodjin.com> Wed, 2 Sep 2020 10:43:00 -0700
0.9.1
* translates Transaction description on display
* fixes regression when creating code through the API
* increases length of processor keys to 255
-- Sebastien Mirolo <smirolo@djaodjin.com> Tue, 1 Sep 2020 17:34:00 -0700
0.9.0
* reworks discount with an AdvanceDiscount model
* adds pricing api
* compatibles with Django3
* fixes recording CartItem twice
-- Sebastien Mirolo <smirolo@djaodjin.com> Thu, 7 Jun 2020 15:30:00 -0700
0.8.4
* claims organization with no roles based on e-mail address
* fixes implicit role grants
-- Sebastien Mirolo <smirolo@djaodjin.com> Thu, 5 Mar 2020 09:35:00 -0700
0.8.3
* adds implicit role to user when none exists
* uses class name instead of HTML node indexes as hooks in checkout pages
* uses consistent balance_amount/balance_unit accross APIs
* replaces django-urldecorators by djaodjin-rules in testsite
-- Sebastien Mirolo <smirolo@djaodjin.com> Wed, 22 Jan 2020 10:15:00 -0700
0.8.2
* fixes add roles and subscriptions in multiple profile/user configurations
* works around for Django/SQLite bug (#230)
-- Sebastien Mirolo <smirolo@djaodjin.com> Fri, 13 Dec 2019 13:25:00 -0700
0.8.0
* uses inline-template for Vue.js components
* uploads profile picture
* signals when processor is not connected and a charge is attempted
-- Sebastien Mirolo <smirolo@djaodjin.com> Sat, 26 Oct 2019 13:10:00 -0700
0.7.0
* adds marketplace processing fee
* restricts coupon to plan or number of use through UI
* fixes invite new organizations with erroneous slugs
-- Sebastien Mirolo <smirolo@djaodjin.com> Sat, 14 Sep 2019 02:18:56 -0700
0.6.3
* updates card-on-file directly in /billing/cart/ page
* makes /api/accounts/ a search API instead of a typeahead API
* fixes default search fields when looking for subscribers
* adds remove card-on-file button in page templates
-- Sebastien Mirolo <smirolo@djaodjin.com> Tue, 13 Aug 2019 15:12:00 -0700
0.6.2
* enables multiple StripeConnect authorize url (live/test)
* fixes infinitescroll
* fixes connect DELETE method to unsubscribes
-- Sebastien Mirolo <smirolo@djaodjin.com> Wed, 7 Aug 2019 00:00:00 -0700
0.6.1
* improves API documentation
* creates billing profile implicitely in various workflows
* adds hooks for infinitescroll
-- Sebastien Mirolo <smirolo@djaodjin.com> Tue, 30 Jul 2019 00:00:00 -0700
0.6.0
* supports sort by multiple columns (#182)
* adds day_periods function (#199)
* displays invited/requested roles first
* populates organization fields when it is created alongside a subscription
-- Sebastien Mirolo <smirolo@djaodjin.com> Mon, 10 Jun 2019 12:26:00 -0700
0.5.1
* adss API to accept a role grant
* fixes calculations of `invited_count` and `requested_count` through filters
-- Sebastien Mirolo <smirolo@djaodjin.com> Fri, 3 May 2019 13:33:00 -0700
0.5.0
* adss role_status filter (active/invited/requested) to roles APIs
* improves support of search accounts APIs for typeahead
* adds sign agreement API
* moves is_broker from saas.models to saas.utils
* inserts only views related to the type of organization in `urls` context
such that it is simpler to generate menu bars.
-- Sebastien Mirolo <smirolo@djaodjin.com> Tue, 23 Apr 2019 09:12:03 -0700
0.4.1
* separates search api for type-ahead candidate lists
* adds filter and sort to plans API
* fixes #180
-- Sebastien Mirolo <smirolo@djaodjin.com> Fri, 5 Apr 2019 12:04:48 -0700
0.4.0
* defaults to vuejs front-end
* merges Organization and User profile APIs
* adds i18n translations to javascript
* adds picture field to Organization
* adds API endpoint to re-send an invitation.
* removes default natural `start_at` date on queries. it wasn't so natural
after all.
-- Sebastien Mirolo <smirolo@djaodjin.com> Sun, 31 Mar 2019 09:38:37 -0700
0.3.4
* adds experimental vue.js front-end
* triggers more signals when getting closer to renewal time
* uses broker as a candidate in fail_direct
-- Sebastien Mirolo <smirolo@djaodjin.com> Tue, 4 Dec 2018 14:26:47 -0800
0.3.2
* Compatible with Django 2.0.x
* Adds command to reconcile payouts with processor
* Generates revenue reports in utc and local time
-- Sebastien Mirolo <smirolo@djaodjin.com> Fri, 27 Apr 2018 08:25:09 -0700
0.3.0
* Grants and requests for double opt-in on roles and subscriptions.
* Adds logic for use charges
-- Sebastien Mirolo <smirolo@djaodjin.com> Wed, 13 Dec 2017 12:12:20 -0700
0.2.6
* Compatible with Python 3.6
-- Sebastien Mirolo <smirolo@djaodjin.com> Tue, 27 Jun 2017 12:12:20 -0700
0.2.4
* Generic roles
* Cancel total balance due (#95)
-- Sebastien Mirolo <smirolo@djaodjin.com> Wed, 7 Sep 2016 00:00:00 -0900
0.2.3
* API to checkout cart
-- Sebastien Mirolo <smirolo@djaodjin.com> Sun, 26 Jun 2016 00:00:00 -0900
0.2.2
* Create dashboard views
* Generate requests for a role on an organization
* Add Razorpay backend
-- Sebastien Mirolo <smirolo@djaodjin.com> Tue, 24 May 2016 00:00:00 -0900
0.2.0
* Generalize role relationship
* Replace Stripe Recipients by use of StripeConnect
-- Sebastien Mirolo <smirolo@djaodjin.com> Fri, 5 Feb 2016 00:00:00 -0900
0.1.8
* Refactor ledger to fully support backlog accounting
-- Sebastien Mirolo <smirolo@djaodjin.com> Thu, 13 Aug 2015 00:00:00 -0900
0.1.7
* Update support to Django 1.7 and django-restframework 3.1
-- Sebastien Mirolo <smirolo@djaodjin.com> Wed, 13 May 2015 00:00:00 -0900
0.1.4
* Create coupon metrics pages
* Clean REST API
* Simplify template names
-- Sebastien Mirolo <smirolo@djaodjin.com> Thu, 14 Aug 2014 15:16:57 -0700
0.1.3
* Initial Release.
-- Sebastien Mirolo <smirolo@djaodjin.com> Mon, 26 May 2014 00:08:22 -0700