v1.0.0
What's Changed
- Correct path for media file removal by @jamienoss in #157
- Use storage.delete() instead of os.remove() by @jamienoss in #158
- Close file before attempting to remove from fs (required for windows) by @jamienoss in #156
- Bump pytest from 7.4.0 to 7.4.3 by @dependabot in #163
- Bump sphinx-rtd-theme from 1.2.2 to 1.3.0 by @dependabot in #160
- Bump xlsxwriter from 3.1.2 to 3.1.9 by @dependabot in #162
- Bump django from 4.2.5 to 4.2.7 by @dependabot in #161
- Bump pytest-django from 4.5.2 to 4.6.0 by @dependabot in #159
- Clean before saving in uploader.loaddata.save_data_to_db by @jamienoss in #166
- Deactivate data input form by @jamienoss in #168
- Model BioSample.sample_type by @jamienoss in #169
- Model spectralData.spectra_measurement by @jamienoss in #170
- Store spectral data file on file as json and in memory as dataclass by @jamienoss in #167
- Don't use login shell for test action by @jamienoss in #171
- Replace symptom -> observation & disease -> observable by @jamienoss in #173
- Migration for #177 by @jamienoss in #175
- Add models.Observable.category by @jamienoss in #174
- Refactor admin classes adding mixins by @jamienoss in #176
- Cast None as None in uploader.base_models.Types.cast by @jamienoss in #178
- Add nested inline forms to data admin by @jamienoss in #179
- Filter only existing bool pie chart data by @jamienoss in #184
- Check against null self.data.name rather than self.data by @jamienoss in #181
- Restrict access to home to staff users (all pages now require login) by @jamienoss in #180
- Run annotator for new annotation on save and not clean by @jamienoss in #182
- Bump pandas from 2.1.0 to 2.1.3 by @dependabot in #195
- Bump ruff from 0.0.288 to 0.1.7 by @dependabot in #197
- Bump plotly from 5.17.0 to 5.18.0 by @dependabot in #194
- Bump setuptools from 68.2.2 to 69.0.2 by @dependabot in #192
- Restrict access to SQL explorer to superusers only by @jamienoss in #187
- Bump setuptools-scm[toml] from 8.0.3 to 8.0.4 by @dependabot in #191
- Default User.is_staff=True by @jamienoss in #189
- Relate instrument and center by @jamienoss in #185
- Admin tweaks by @jamienoss in #183
- Explicitly set login URL and fix anonymous missing User.is_sqluser attr by @jamienoss in #198
- Bulk upload: find existing patient against CID AND center, not just CID by @jamienoss in #190
- Remove data inpout form by @jamienoss in #199
- Don't chart "empty" data by @jamienoss in #201
- Refactor model bulk upload parsing by @jamienoss in #202
- Expand instrument and measurement fields by @jamienoss in #200
- Add data catalog app by @jamienoss in #196
- Individual persistent docker volumes for media files by @jamienoss in #204
- Bump pytest-django from 4.6.0 to 4.7.0 by @dependabot in #206
- Bump httpx from 0.25.0 to 0.26.0 by @dependabot in #208
- Bump tox from 4.11.3 to 4.11.4 by @dependabot in #205
- Bump bandit from 1.7.5 to 1.7.6 by @dependabot in #209
- List observables by category in inline forms plus other admin tweaks by @jamienoss in #203
- Bump sphinx-rtd-theme from 1.3.0 to 2.0.0 by @dependabot in #207
- Gunicorn, nginx, and (semi) prd deployment by @jamienoss in #210
- SSL support by @jamienoss in #211
- Remove Visit.previous_visit by @jamienoss in #212
- 152 Don't remove *sqlite3 files but only db/*sqlite3 by @jamienoss in #214
- Revert "Remove Visit.previous_visit" by @jamienoss in #215
- Improvements to Visit.previous_visit by @jamienoss in #216
- Add Visit.days_observed and re-handle Observation.days_observed & Observation.severity by @jamienoss in #217
- Delete media files upon deletion from db by @jamienoss in #218
- Update missing catalog migration by @jamienoss in #222
- Make Visit.patient_age -> Observable(category=PATIENT_INFO, name='patient_age') by @jamienoss in #223
- Use GitHub actions cache for pip deps by @jamienoss in #221
- Use DB-side count rather than len(queryset) by @jamienoss in #224
- Add favicon by @jamienoss in #227
- Fix previous_visit formfield_for_foreignkey regression from #216 by @jamienoss in #226
- Bump pytest-django from 4.7.0 to 4.8.0 by @dependabot in #232
- Turn codecov back on for dependabot PRs by @jamienoss in #234
- Bump setuptools from 69.0.2 to 69.0.3 by @dependabot in #233
- Bump bandit from 1.7.6 to 1.7.7 by @dependabot in #230
- Bump pandas from 2.1.3 to 2.2.0 by @dependabot in #231
- Add prune_files management command to delete orphaned files by @jamienoss in #220
- Expand BioSample model fields by @jamienoss in #235
- Only auto-populate Observation.observable for inline forms by @jamienoss in #236
- Remove old model commented-out code by @jamienoss in #237
- Collapsable inline observations by @jamienoss in #240
- Add DB model diagram to README by @jamienoss in #241
- Gender observable by @jamienoss in #239
- Fix formfield_for_foreignkey inheritance call order clobbering by @jamienoss in #228
- Explicit SQL table names by @jamienoss in #243
- Exclude user, catalog, & uploader_center from sql explorer schema by @jamienoss in #244
- Bump tox from 4.11.4 to 4.12.1 by @dependabot in #229
- Return 301 (permanent), not 307 (temporary) redirect http resp by @jamienoss in #247
- Add health checks by @jamienoss in #246
- Fix bulk upload patient center bug & non-form-field validation errors by @jamienoss in #245
- Bump django from 4.2.7 to 4.2.10 in /requirements by @dependabot in #238
- Add
get_column_names.py
management command by @jamienoss in #242 - Don't run Model.clean() when field errors already exist by @jamienoss in #250
- Double down on SQL explorer access perm settings by @jamienoss in #251
- Remove tech support link to ssec by @jamienoss in #252
- Add basic info for url path usage by @jamienoss in #254
- Semantic changes to Observable.center and form auto inlining by @jamienoss in #225
- Docker healthchecks by @jamienoss in #248
- Add password recovery by @jamienoss in #253
- Session expirations settings to auto-expire by @jamienoss in #261
- Separate out deps into more req files by @jamienoss in #263
- Bump plotly from 5.18.0 to 5.19.0 by @dependabot in #256
- Bump django from 4.2.10 -> 4.2.11 by @jamienoss in #264
- Bump django-sql-explorer[charts] from 3.2.1 to 4.0.2 by @dependabot in #260
- Use Django storage API for all file access by @jamienoss in #265
- Use django-crontab to run prune_files as a cronjob by @jamienoss in #266
- Bump httpx from 0.26.0 to 0.27.0 by @dependabot in #258
- Bump pytest from 7.4.3 to 8.1.1 by @dependabot in #267
- Nuke unused sphinx-issues dep by @jamienoss in #269
- Nuke SSEC center and replace usage with spadda by @jamienoss in #270
- Trigger sql-explorer to rebuild schema info by invalidating cached schema entries by @jamienoss in #268
- AWS AppRunner setup w/postgres RDS by @jamienoss in #255
- Exclude from sql-explorer schema health_check & whitenoise app tables by @jamienoss in #272
- Dedupe domain_name setting by @jamienoss in #273
- run prune_files on deployment by @jamienoss in #274
- Add version view by @jamienoss in #262
- Update repo urls by @jamienoss in #280
- Update codecov badge by @jamienoss in #281
- Update zenodo badge by @jamienoss in #282
- Update AWS secret ARNs for apprunner by @jamienoss in #283
- Hook up AWS workmail account via SES and SMTP gateway by @jamienoss in #284
- Auto gen sql view columns from model fields by @jamienoss in #271
- Bump bandit from 1.7.7 to 1.7.8 by @dependabot in #275
- Bump pandas from 2.2.0 to 2.2.1 by @dependabot in #276
- Bump xlsxwriter from 3.1.9 to 3.2.0 by @dependabot in #279
- Bump build from 1.0.3 to 1.1.1 by @dependabot in #278
- Bump sphinx-automodapi from 0.16.0 to 0.17.0 by @dependabot in #277
- Remove explicit urls from Home.html & change app title by @jamienoss in #288
- Add utility funcs & scripts to retrieve AWS secrets, parsed from apprunner.yaml by @jamienoss in #290
- 289 Correct static path in Home.html by @jamienoss in #291
Full Changelog: v0.1.2...v1.0.0