Release 1.0.0
[1.0.0] - 2024-06-12
- PV-76 Initializing a barebone django project by @sam-hosseini in #1
- PV-39 Dockerization by @sam-hosseini in #2
- PV-81 Production foundation by @sam-hosseini in #4
- PV-80 Db dockerization by @sam-hosseini in #5
- PV-82 Testing foundation by @sam-hosseini in #6
- PV-85 pre-commit by @sam-hosseini in #9
- PV-86 Documentation and leftover fixes by @sam-hosseini in #10
- New pysakoinnin-verkkokauppa project pipeline yamls. by @AnttiKoistinen431a in #11
- PV-88 Feature/ariadne integration by @sam-hosseini in #12
- PV-106 Foundation/graphql federation by @sam-hosseini in #13
- Add Python VirtualEnv support by @mhieta in #14
- PV-108 non-root-user in Docker by @sam-hosseini in #15
- Adapt project to use RedHat base image with GDAL 3 by @mhieta in #16
- Parking Permits Datamodel by @mhieta in #17
- PV-133 PV-131 PV-161 Feature/add DRF by @sam-hosseini in #18
- Update main by @sam-hosseini in #19
- Merge pull request #19 from City-of-Helsinki/develop by @sam-hosseini in #20
- PV-168 Use container_name in compose file by @sam-hosseini in #21
- Read .env file content to settings on local development by @amanpdyadav in #23
- Feature/product mapping by @amanpdyadav in #24
- Product and Price model with GET product endpoint by @amanpdyadav in #25
- PV-132 Feature/pricing engine low emission by @sam-hosseini in #26
- PV-172 Feature/pricing engine secondary vehicle by @sam-hosseini in #27
- Product mapping by @amanpdyadav in #28
- Product REST API for retrieving products (GET-endpoint) by @amanpdyadav in #29
- PV-170 Part 1 by @sam-hosseini in #22
- Add missing module requests to requirements by @amanpdyadav in #31
- PV-170 Part 2 by @sam-hosseini in #30
- PV-170 Part 3 by @sam-hosseini in #32
- PV-132 PR-1 by @sam-hosseini in #33
- PV-132 PR-2 by @sam-hosseini in #34
- PV-130 PR-1 by @sam-hosseini in #35
- PV-130 PR-1 by @sam-hosseini in #36
- PV-130 PR-2 by @sam-hosseini in #37
- PV-130 PR-3 by @sam-hosseini in #38
- PV-177 PR-1 by @sam-hosseini in #40
- Model update by @amanpdyadav in #41
- Remove product model by @amanpdyadav in #42
- Parking zone importer by @amanpdyadav in #44
- Update views for talpa endpoints by @amanpdyadav in #45
- Model updates by @amanpdyadav in #46
- Order/Payment notify rest end point by @amanpdyadav in #47
- PV-177 extending AddressNode with KMO info by @sam-hosseini in #43
- PV-203 PV-204 graphql mutation foundation by @sam-hosseini in #48
- Feature/frontend helsinki kmo integration by @amanpdyadav in #50
- Feature/Address to have city also in swedish by @amanpdyadav in #51
- Replace all print with logger by @amanpdyadav in #52
- Get shared product id through graphql by @amanpdyadav in #53
- Feature/Graphql permits by @amanpdyadav in #54
- Include Swedish descriptions for parking zones by @mingfeng in #55
- Part 1: Mutations by @amanpdyadav in #56
- Part 2: Mutations bug fixes by @amanpdyadav in #58
- Include isLowEmission field in Vehicle node by @mingfeng in #57
- Refactoring and resolving talpa prices by @amanpdyadav in #59
- Add authentication for endpoints also clean the dead codes by @amanpdyadav in #60
- Apply schema case fallback resolver by @mingfeng in #61
- Minor bug fixes by @amanpdyadav in #62
- Creating parking permits by @amanpdyadav in #63
- Add admin graphql endpoint for parking permits by @mingfeng in #64
- Protect admin graphql with jwt token verifications by @mingfeng in #65
- Update graphql permits query to include more infromation by @mingfeng in #67
- Add missing fields to the priceNode and add endpoint to update registration number by @amanpdyadav in #66
- Apply ordering to permits query results by @mingfeng in #68
- Add Admin UI env variables to env.example by @mhieta in #69
- Refactor parking_permits_app admin by @mingfeng in #72
- Add GHA-configuration for running tests by @mhieta in #70
- Fix the resident ui app graphql endpoint API token verfication by @mingfeng in #71
- Remove pyjwt and JWT_SECRET settings by @mingfeng in #73
- Integrate with SonarCloud by @mhieta in #74
- Implement permit query filtering for permits query resolver by @mingfeng in #75
- Add Talpa orderId and subscriptionId to permit by @amanpdyadav in #76
- Fix minor bug with status value by @amanpdyadav in #77
- Refactor zone price, improve error handling and add some tests by @mingfeng in #78
- Add graphql resolver for permit detail by @mingfeng in #79
- Track change history for parking permits by @mingfeng in #80
- Editing parking permit by @amanpdyadav in #82
- Migration for processing status and using timezone as default date time by @amanpdyadav in #83
- Feature/test delete permit by @amanpdyadav in #84
- Test case for updating parking permit by @amanpdyadav in #85
- Add reversion for permits by @amanpdyadav in #86
- Add admin ui resolver for creating resident permit by @mingfeng in #87
- Use date format only if date exist by @amanpdyadav in #88
- Improve changelog messages by @mingfeng in #89
- Refund model by @amanpdyadav in #90
- Update parking permit status and fix saving resident permit by @mingfeng in #91
- Add more fields to vehicle for create resident permit resolver by @mingfeng in #92
- Talpa api-key authorization by @amanpdyadav in #94
- Talpa status change through notification endpoint on the backend by @amanpdyadav in #95
- Implemented end permit by @mingfeng in #93
- Disable beta subscription manager by @amanpdyadav in #96
- Created a common base exception class for all parking permits exceptions by @mingfeng in #97
- Fix management command for creating parking zone by @amanpdyadav in #98
- Refactor models to accommodate new requirements by @mingfeng in #99
- Mutation for ending valid parking permits by @amanpdyadav in #100
- Update end time calculation by @mingfeng in #102
- Prevent saving names and address information is security ban is checked by @mingfeng in #101
- Increase refund price for secondary vehicle by @mingfeng in #103
- Subscription id can be null by @amanpdyadav in #104
- Fix minor graphql schema error by @mingfeng in #105
- Convert string datetime value to datetime object when updating permit by @mingfeng in #106
- Move talpa order to backend by @amanpdyadav in #108
- Create order and product related models by @mingfeng in #107
- Ending of valid permit should delete all draft permit by @amanpdyadav in #109
- Add backend resolvers for update (edit) resident permit by @mingfeng in #110
- Refactor management commands and make parking zone name unique by @mingfeng in #111
- Update Dockerfile by @mingfeng in #112
- Update Dockerfile by @mingfeng in #113
- Remove id field from ZoneNode by @mingfeng in #114
- Create orders for customer by @mingfeng in #115
- Add properties to get products from zone instances by @mingfeng in #116
- Multiple price support by @amanpdyadav in #117
- Update graphql schema for products by @mingfeng in #118
- Rhel beta images doesn't exist so disabling it by @amanpdyadav in #119
- Store talpa checkout url and receipt url to order instances by @mingfeng in #120
- Feature/django db logger by @amanpdyadav in #121
- Products resolver by @mingfeng in #122
- Fix tests in test_customer_permit by @mingfeng in #123
- Add graphql resolvers for products queries and mutations by @mingfeng in #124
- Allow setting product vat as percentage value by @mingfeng in #125
- Add create product resolver by @mingfeng in #126
- Skip changelogs for draft permits by @mingfeng in #127
- Fix products date range query by @mingfeng in #128
- Feature/age calculation by @amanpdyadav in #129
- Fix subscription issue as it can be null by @amanpdyadav in #130
- Feature/Api docs by @amanpdyadav in #131
- Update graphql schema and resolvers for saving addresses by @mingfeng in #132
- Add zoneByLocation graphql query by @mingfeng in #133
- Feature/Talpa checkout multiple price by @amanpdyadav in #134
- Refactor the refund calculate and order renewal for varying product prices by @mingfeng in #135
- Automatic expiration of parking permit by @amanpdyadav in #136
- Implement GDPR API by @mingfeng in #137
- Add a cron job script that automatically remove obsolte customer data by @mingfeng in #139
- Feature/parkkihubi integration by @amanpdyadav in #138
- Feature/parkkihubi integration by @amanpdyadav in #140
- Add refund detail resolver by @mingfeng in #141
- Fix talpa price calculations by @amanpdyadav in #142
- Fix resident UI end time calculation by @mingfeng in #143
- Return created permit info for createResidentPermit mutation by @mingfeng in #144
- Include page range and count in page info by @mingfeng in #145
- Talpa open ended subscription by @amanpdyadav in #147
- Add a GraphQL query to get price changes for permit changes by @mingfeng in #146
- Calculate price for talpa and resolve right of purchase by @amanpdyadav in #148
- Update main branch from develop by @amanpdyadav in #149
- Fix the refund calculation logic when updating permit by @mingfeng in #150
- Update api docs by @amanpdyadav in #151
- Using entitlement keys instead of personal Red Hat subscriptions by @SuviVappula in #153
- Get meta from orderItem by @amanpdyadav in #152
- Send startdate as UTC format to talpa by @amanpdyadav in #154
- Fix field name for checkout visibility by @amanpdyadav in #155
- Add description field to ParkingPermit model by @mingfeng in #156
- Prevent saving address if non-disclosure is checked by @mingfeng in #157
- Merge develop to main by @mhieta in #158
- Move saving profile address into its own function by @mingfeng in #159
- Add resolvers for changing address and related price changes by @mingfeng in #161
- Merge develop to main by @mhieta in #162
- Fix open ended price change info format by @mingfeng in #163
- Add missing end_date for open ended price change info by @mingfeng in #164
- Change address extra payment case by @mingfeng in #165
- Traficom integration by @amanpdyadav in #160
- Fix management command for bootstraping parking permit by @amanpdyadav in #166
- Add more logging for temporary debug purposes by @mhieta in #168
- Bump django from 3.2 to 3.2.12 by @dependabot in #167
- Merge develop to main by @mhieta in #169
- Remove owner/holder filter for admin vehicle resolver by @mingfeng in #170
- Remove non-exist fields when saving vehicles by @mingfeng in #171
- Add DVV integration by @mingfeng in #172
- Include otherAddress in GraphQL CustomerNode and CustomerInput by @mingfeng in #174
- Merge develop to main by @mhieta in #173
- Add logging for talpa payload and responses by @amanpdyadav in #175
- Refactor address model by @mingfeng in #176
- Upgrade pip-tools to 6.5.1 and resolve incompatible requirements by @mingfeng in #177
- Upgrade black to 22.3.0 by @mingfeng in #178
- Include additional fields in dvv customer and address data by @mingfeng in #179
- Add DVV integration environment variables to .env.example file by @mingfeng in #180
- Traficom integration by @amanpdyadav in #181
- Remove hard coded ssn from resolver by @amanpdyadav in #182
- Minor refactoring on creating renewal order by @mingfeng in #183
- Make parking permit manager utility methods available for both manager and queryset by @mingfeng in #185
- Feat/traficom check by @amanpdyadav in #184
- Query Traficom vehicle details for admin ui vehicle resolver by @mingfeng in #186
- Admin UI Orders list view by @mhieta in #187
- Update graphql vehicle interface to use low emission fields by @mingfeng in #188
- Merge develop to main by @mhieta in #189
- Use order item dates for Talpa product description by @mingfeng in #191
- Prevent creating more than 2 permits for the same customer by @mingfeng in #190
- Add LocaleMiddleware and LOCALE_PATHS settings by @mingfeng in #192
- Bump django from 3.2.12 to 3.2.13 by @dependabot in #193
- Update azure-pipelines-develop.yml by @lorand-ibm in #194
- Add batch trigger to azure-pipelines-release.yml by @mingfeng in #197
- Implement csv exporter by @mingfeng in #196
- Vehicle change by @amanpdyadav in #198
- Add an addresses resolver by @mingfeng in #200
- Vehicle change with refund and talpa order by @amanpdyadav in #202
- Add address maintenance resolvers by @mingfeng in #201
- Refactor subscription and order models by @mingfeng in #199
- Fix order id changes by @amanpdyadav in #203
- Fix refund graphql node by @mingfeng in #204
- Restart the parking permit id sequence by @mingfeng in #205
- Add graphql resolvers for low emission criteria CRUD operations by @mingfeng in #206
- Fix vehicle change price changes by @amanpdyadav in #207
- Refactor permit price calculation for Admin UI by @mingfeng in #208
- Add a total refund amount property by @mingfeng in #210
- Refactor the search filters by @mingfeng in #209
- Add email configurations by @mingfeng in #211
- Send parking permit type to parkkihubi by @amanpdyadav in #213
- Add language field to customer model and a graphql resolve to save customer language by @mingfeng in #212
- Send emails when parking permit is created/updated/ended by @mingfeng in #214
- Low emission fields fix and get updated permits before sending email by @mingfeng in #216
- PDF-report creation by @mhieta in #215
- End parking permit by @amanpdyadav in #217
- Add zone changed property to Permit model by @amanpdyadav in #218
- Email templates styling fixes by @mingfeng in #219
- Various email templates fixes by @mingfeng in #220
- Validate secondary permit validity period by @mingfeng in #221
- Fix low emissin calculation when emission is 0 by @mingfeng in #222
- Fix parking permit not being able to send email by @amanpdyadav in #223
- Activate customer language when rendering email message by @mingfeng in #224
- Adjust Permit PDF according to latest layout by @mhieta in #225
- Fix static files to work with collectstatic by @mhieta in #226
- Update webshop permit create/update resolvers by @mingfeng in #227
- Allow searching refunds with different search criteria by @mingfeng in #229
- Update requirements-test.txt by @mingfeng in #228
- Update requirements by @mhieta in #230
- Refund PDF-report by @mhieta in #231
- Add None-check for paid time by @mhieta in #232
- Add admin resolvers for accepting refunds and requesting for approval by @mingfeng in #233
- Add refund accepted_at and accepted_by by @mingfeng in #234
- Cron to sync permit with parkkihubi every 30 min by @amanpdyadav in #235
- Fix conflicted migrations by @mingfeng in #236
- Send emails to customers when refund is created or accepted by @mingfeng in #237
- Fix parkkihubi error while updating response from talpa by @amanpdyadav in #238
- Refactor object list search, filter and order through object specific forms by @mingfeng in #239
- Encrypted fields for sensitive data by @amanpdyadav in #240
- Update primary/secondary permit fi-translations by @mhieta in #241
- Add receipt URL to the response by @amanpdyadav in #242
- Feat/pv 420 address maintenance by @amanpdyadav in #244
- Temporary vehicle support by @amanpdyadav in #245
- Email templating for temporary vehicles by @amanpdyadav in #246
- Add management commands for the cron jobs by @amanpdyadav in #248
- Feat/use traficom check variable to validate owners by @amanpdyadav in #249
- Add pull request template by @mhieta in #250
- Force Subscription registering process by @mhieta in #251
- Test for dockerfile without redhat image by @amanpdyadav in #252
- Add missing .gitconfig-file by @mhieta in #253
- Remove unneeded .gitconfig-declarations by @mhieta in #254
- Update SECRET_KEY to be DJANGO_SECRET_KEY by @amanpdyadav in #255
- Fix dockerfile by @amanpdyadav in #256
- Fix/talpa endpoints by @amanpdyadav in #257
- Add Sentry-integration by @mhieta in #258
- Update address extractor and exclude saving it to database if not in Helsinki by @amanpdyadav in #259
- Fix bugs related to address after testing sessions by @amanpdyadav in #261
- Use env template for environment variables by @mhieta in #262
- Bump django from 3.2.13 to 3.2.15 by @dependabot in #247
- Fix KMO parse_street_name_and_number by @danipran in #263
- PV-402: Add support for searching orders by @danipran in #260
- Update finnish translations by @mhieta in #264
- Add price and vat information to the refund template by @amanpdyadav in #265
- PV-402: Return only distinct orders by @danipran in #266
- Retrieve both user addresses from DVV by @mhieta in #267
- [Snyk] Security upgrade django from 3.2.15 to 3.2.16 by @mhieta in #269
- Add test address for user Hessu Hesalainen by @amanpdyadav in #270
- Add is is_order_confirmed calculated property to parking permit by @amanpdyadav in #271
- Refactor User address handling by @mhieta in #272
- Translate email-templates by @mhieta in #273
- Add management command for creating group mapping by @amanpdyadav in #274
- Parking permit expiration remind email by @mhieta in #275
- [Snyk] Security upgrade django from 3.2.15 to 3.2.16 by @mhieta in #268
- Send permit end email on automatic permit ending by @mhieta in #276
- Feat/PV-280 Role based access control decorators for users by @amanpdyadav in #277
- Vehicle low emission discount for 3rd party parking providers by @mhieta in #278
- PV-346: Add database model & endpoints for announcements by @danipran in #279
- PV-368: Send announcement emails by @danipran in #280
- PV-421/PV-444: Add customer list, retrieve customer by ID, retrieve more customer data, fix GDPR API view by @danipran in #281
- Show only vehicle registration number third party emails by @mhieta in #282
- PV-458: Return empty queryset by default in customer/refund/permit/order forms by @danipran in #283
- Allow Traficom check overriding through settings by @mhieta in #285
- Role base access control by @amanpdyadav in #284
- PV-459: Add address search parameters by @danipran in #286
- Use original permit start time for validity start by @mhieta in #288
- PV-463: Fix CSV export parameters by @danipran in #287
- Fix GDPR permission issue for super admin by @amanpdyadav in #290
- Fix traficom error for not parsing ssn by @amanpdyadav in #289
- Add low emission consent to a vehcile change by @amanpdyadav in #291
- Update Talpa-checkout layout by @mhieta in #293
- Fix second vehicle adding by @mhieta in #294
- PV-449: Create audit logger app for structured logging by @danipran in #295
- Fix: Add audit_logger to .dockerignore by @danipran in #297
- Feat/vehicle power type by @amanpdyadav in #296
- Add missing vehicle power type from vehicle node by @amanpdyadav in #298
- Update 2022 low-emission criteria default values by @mhieta in #299
- Fix: Change VehiclePowerTypeNode's identifier type to String! by @danipran in #300
- Reset the month count for permits if primary vehicle is changed by @amanpdyadav in #301
- Minimum role to create a permit is customer service by @amanpdyadav in #303
- Fix ending of permit by @amanpdyadav in #304
- Update project translations by @mhieta in #305
- Create a refund only if there is a valid refund amount by @amanpdyadav in #306
- Fix: Fix vehicle power type in vehicle update/create by @danipran in #307
- Update JSON serialization to work with proxies by @mhieta in #308
- Explicitly update also permit address by @mhieta in #309
- Adjust CSV- and PDF-export lowest role to be preparator by @mhieta in #313
- PV-449: Add audit logging in resolvers by @danipran in #310
- Refund should be created for an open ended permit if not started by @amanpdyadav in #314
- Fix Admin UI create permit issues by @mhieta in #315
- End time can not be less than start time by @amanpdyadav in #316
- Send permit email if payment is done in case order is created by @amanpdyadav in #317
- Use current timestamp in low-emission discount emails by @mhieta in #318
- Fix address change refund by @amanpdyadav in #319
- Validate temporary vehicle start time by @mhieta in #320
- Fix webshop permit vehicle- and address-change processes by @mhieta in #321
- Calculate permit total price change with month count by @mhieta in #322
- Fix permit creation issues by @mhieta in #323
- Admin UI: Validate permit creation main cases by @mhieta in #324
- Add temporary vehicle support for admin view by @amanpdyadav in #325
- PV-350: Add parking permit events by @danipran in #327
- Admin UI update permit with change vehicle and change address features by @mhieta in #326
- Use Python v.3.9 in Dockerfile by @mhieta in #328
- PV-350: Remove django-reversion by @danipran in #329
- Update Admin UI searches and PDF-export by @mhieta in #331
- PV-350: Add temporary vehicle events (add, remove), add missing change address event by @danipran in #332
- Fix Admin UI permit ending and exporters by @mhieta in #333
- Admin UI: Prevent secondary permit end date to exceed first active permit by @mhieta in #335
- Update Talpa checkout orders to have two decimals by @mhieta in #336
- Permit emails: Use permit end time only with fixed-period permit by @mhieta in #334
- Order partial refunds support by @mhieta in #337
- Fix: Permit editing admin by @amanpdyadav in #338
- Update GitHub CI Python and PostGIS versions by @mhieta in #341
- PV-363: Add PASI CSV import command by @danipran in #340
- PV-519: Add end time for open-ended permits' order items, show current period end time for open-ended permit exports/emails. by @danipran in #345
- [Snyk] Security upgrade setuptools from 39.0.1 to 65.5.1 by @mhieta in #311
- [Snyk] Security upgrade setuptools from 39.0.1 to 65.5.1 by @snyk-bot in #312
- [Snyk] Security upgrade wheel from 0.37.1 to 0.38.0 by @mhieta in #292
- [Snyk] Security upgrade setuptools from 39.0.1 to 65.5.1 by @mhieta in #342
- [Snyk] Fix for 2 vulnerabilities by @mhieta in #343
- Fix: Round VAT percentage to an integer in Talpa integration by @danipran in #346
- PV-519: Fix typo in permit info email template by @danipran in #350
- Add support for Talpa Subscription events by @mhieta in #358
- Subscription renewals by @mhieta in #364
- Cancel linked Talpa order and subscription by @mhieta in #365
- Add apartment support for addresses by @mhieta in #366
- Make update_or_create_address null-safe by @danipran in #368
- Feature/pv 614 prevent duplicate address creation by @danjacob-anders in #372
- Fix open-ended permit deletion to work with latest Talpa-integration requests by @mhieta in #373
- Permit-form DVV customer search should also take address apartments into account by @danjacob-anders in #374
- Use customer full name in customer notification emails by @mhieta in #375
- Enhance Talpa subscription validation by @mhieta in #376
- Fix subscription data format by @mhieta in #377
- Add checkout_url to GraphQL schema by @danjacob-anders in #378
- Always check subscription existence by @mhieta in #379
- Improve "right of purchase" Talpa webhook handling by @mhieta in #380
- Use vehicle decommissioned status directly by @mhieta in #381
- Adapt to changed Talpa resolve price schema by @mhieta in #382
- Update Subscription renewal process to match latest Talpa-specifications by @mhieta in #383
- Use only valid permits in order renewal phase by @mhieta in #385
- Round refund prices to two-decimal precision without localization by @mhieta in #386
- Improve temporary vehicle email templates by @mhieta in #387
- Improve Talpa-views error handling by @mhieta in #388
- Update customer info retrieval by @mhieta in #392
- Always use permit start- and end-times in permit emails by @mhieta in #393
- Use Base64-encoded PNG-image as Helsinki logo in emails by @mhieta in #394
- Set emission to zero if None by @danjacob-anders in #395
- Handle multiple values and previous vehicles in order search by @danjacob-anders in #396
- Pv 624 order search fixes by @danjacob-anders in #399
- Pv 655 change address bugfix by @danjacob-anders in #400
- Set end_time when start_time is set by @danjacob-anders in #401
- Fix datetime-format to use milliseconds by @mhieta in #402
- Set Helsinki time zone when creating Talpa order by @danjacob-anders in #403
- Update talpa checkout data labels by @mhieta in #404
- Start time should always be parsed before end time calculation by @danjacob-anders in #405
- Ensure start_time is normalized to local timezone before doing by @danjacob-anders in #406
- Improve permit text search by @mhieta in #408
- Fix open-ended permit order item dates by @mhieta in #409
- Remove Traficom checks from PASI CSV-import by @mhieta in #410
- Multiple refunds per order by @danjacob-anders in #411
- Add Talpa resolve product endpoint with tests by @mhieta in #413
- Localize Talpa checkout data by @mhieta in #412
- Talpa Order renewal fixes by @mhieta in #414
- Always bypass Talpa order cancel event handling by @mhieta in #415
- Call Talpa cancels as final step in permit ending by @mhieta in #416
- Allow open-ended permit renewal for address and vehicle changes by @danjacob-anders in #418
- Automatic permit expiration cronjob updates by @mhieta in #420
- Set default emission value from Traficom to 0 if none found. by @danjacob-anders in #421
- When checking if vehicle is low-emission, check 0 as well as None by @danjacob-anders in #424
- Do not create an order if the pricing is equal when updating permit by @danjacob-anders in #425
- Handle open ended permit price change month count by @danjacob-anders in #426
- Add base_price and discount_price to Product in GetPermits resolver by @danjacob-anders in #427
- Skip Refund creation when ending open-ended permit by @danjacob-anders in #428
- Show traficom restrictions by @danjacob-anders in #430
- Apply 2nd vehicle premium to unit price after setting from discount by @danjacob-anders in #431
- Add canBeRefunded to webshop GraphQL schema by @danjacob-anders in #432
- When fetching customer info from DVV, look up active permits from database by @danjacob-anders in #433
- Add totalRefundAmount to webshop permit GraphQL by @danjacob-anders in #434
- When calculating product prices, apply 2nd vehicle premium to base_price by @danjacob-anders in #435
- Update Helsinki profile GDPR implementation by @mhieta in #436
- Add extra check if permit is refundable: if open ended and end time > 1 by @danjacob-anders in #437
- Traficom error message fixes by @danjacob-anders in #438
- Make Helsinki address checks optional by @mhieta in #439
- Check if Swedish address is not null before parsing by @danjacob-anders in #440
- Open-ended permit refund amount should depend on total refund amount by @danjacob-anders in #441
- Remove Traficom attributions from PDF and CSV files. by @danjacob-anders in #443
- Secure cookie/session changes by @danjacob-anders in #444
- Pv 758 vat calculation fixes by @danjacob-anders in #445
- Update VAT and net price calculations for individual orders. by @danjacob-anders in #447
- Pass iban to Subscription.cancel() by @danjacob-anders in #448
- Use calc_vat_price() for permit price list change by @danjacob-anders in #450
- When TRAFICOM_MOCK environment variable is set, fetches Traficom details from local db by @danjacob-anders in #451
- Use correct VAT amounts in refund emails by @danjacob-anders in #452
- Add message change to include data restrictions check. by @danjacob-anders in #454
- Add Traficom service unit tests by @danjacob-anders in #455
- Ensure that the permit prices resolver sets correct timezone for start by @danjacob-anders in #456
- Add the start time to customer active permits in admin GraphQL. by @danjacob-anders in #457
- Use localtime explicitly when checking permit statuses by @mhieta in #458
- Ensure any single quotes in the address passed to WSF are escaped by @danjacob-anders in #459
- Traficom carbon fixes by @danjacob-anders in #460
- Ensure we compare the street name correctly when extracting geometric by @danjacob-anders in #461
- Fix talpa rounding error by @danjacob-anders in #462
- Update resolve-product endpoint to always send also modified order item metadata by @mhieta in #464
- Update Vehicle classes and driving class mappings by @mhieta in #466
- Log closed permit id on expiration of permits by @mhieta in #469
- Bypass traficom setting by @danjacob-anders in #465
- Use only vehicle own weight as weight limit by @mhieta in #470
- Mark permit as cancelled after 15 minutes of order creation by @mhieta in #472
- Permit can be ended if current period end time same day or less than by @danjacob-anders in #473
- Improve mail error handling by @mhieta in #474
- Add one month using localtime by @mhieta in #475
- Cancel order and it's permits in ORDER_CANCELLED-event by @mhieta in #476
- Update low emission discount email contents by @mhieta in #477
- Send announcements only to valid permits by @mhieta in #478
- Update Talpa order cancellation conditions by @mhieta in #479
- Temporarily disable vehicle user check by @mhieta in #480
- Add ParkingPermitExtensionRequest model and workflows by @danjacob-anders in #471
- Add PERMIT_EXTENSIONS_ENABLED flag to allow extending permits by @danjacob-anders in #481
- Update vehicle fetch logic by @mhieta in #482
- Use more explicit JSON key-formats by @mhieta in #484
- Second permit extension month limit by @danjacob-anders in #483
- Call Parkkihubi in ParkingPermit.extend_permit() method by @danjacob-anders in #485
- Validate order only when orderId and userId exists by @mhieta in #486
- Cancel order and it's permits only when the permit was marked to be ended immediately by @mhieta in #487
- Added admin resolver for creating a permit extension. by @danjacob-anders in #488
- Add Parking permit event types for customer and admin extension by @danjacob-anders in #489
- Regard vehicle without emissions as normal vehicle by @mhieta in #490
- Enforce upper case for all manually entered national ID numbers. by @danjacob-anders in #491
- Permit active temporary vehicle should be None if current time outside by @danjacob-anders in #492
- Update vehicle with the exact registration number returned from Traficom by @danjacob-anders in #493
- Set validity period of add/remove temp vehicle permits to the temp by @danjacob-anders in #494
- Normalize address fields returned from DVV by @danjacob-anders in #495
- Calculate Talpa pricing by subtracting VAT from gross to give net. by @danjacob-anders in #497
- Ensure that the end time accounts for DST by @danjacob-anders in #496
- Send permit expiration email only for fixed-period permits by @mhieta in #498
- Allow start and end times for temp vehicles before current time. by @danjacob-anders in #499
- Add command to find and adjust open ended permits with local time 0:59 by @danjacob-anders in #500
- Add modifications to Vehicle Admin: restrictions and users can be empty by @danjacob-anders in #501
- Add direct support for L3e-class vehicles by @mhieta in #502
- Set end time of temp vehicle to permit end time if the latter is before by @danjacob-anders in #503
- Admin UI search fixes by @danjacob-anders in #504
- Cron to delete permits extensions by @danjacob-anders in #505
- Add talpa_update_card_url to Order model. by @danjacob-anders in #506
- Parkkihubi changes by @danjacob-anders in #507
- Set status_changed_at for extension requests in management command. by @danjacob-anders in #508
- Add resolver_utils module for common functionality between resolver and admin resolver by @danjacob-anders in #509
- Avoid re-fetching vehicle after initial lookup by @danjacob-anders in #510
- Update card link by @danjacob-anders in #511
- Add vehicle and permit for order in extended permit by @tonipel in #512
- Add support for more detailed L3-vehicle classes by @mhieta in #513
- Add talpa order id to api by @tonipel in #514
- Add new driving licences and classes by @tonipel in #515
- Fix bug in traficom vehicle api by @tonipel in #516
- Add fallback to L3eA1 for motorcycles in case traficom doesn't return power or vehicle sub class by @tonipel in #517
- Cleanup and refactor L3 -classification in traficom api by @tonipel in #518
- Change admin ui order date search to search orders by @tonipel in #519
- Fix date search by @tonipel in #520
- Add logging to payment view by @tonipel in #521
- Update packages by @tonipel in #522
- Update python and django versions by @tonipel in #523
- Add missing package by @tonipel in #525
- Add new test cases. Handle special chars and if no ssn is received. by @tonipel in #524
New Contributors
- @sam-hosseini made their first contribution in #1
- @AnttiKoistinen431a made their first contribution in #11
- @mhieta made their first contribution in #14
- @amanpdyadav made their first contribution in #23
- @mingfeng made their first contribution in #55
- @SuviVappula made their first contribution in #153
- @dependabot made their first contribution in #167
- @danipran made their first contribution in #263
- @snyk-bot made their first contribution in #312
- @danjacob-anders made their first contribution in #372
- @tonipel made their first contribution in #512
Full Changelog: https://github.com/City-of-Helsinki/parking-permits/commits/release-1.0.0