Changes
=======

0.4.13
------
- update breadcrumbs and branding for admin templates (edc-model-admin)
- update and add fontawesomefree to requirements
- require "fontawesomefree" in INSTALLED_APPS
- add theme variables thru "edc_model_admin.context_processors.admin_theme"
  if added to TEMPLATES context_processor
- add simple themes configured from settings.EDC_MODEL_ADMIN_CSS_THEME
- add attr to TemplateModelAdminMixin to override view_on_site and history
  labels in object-tools
- add TEST/LIVE badge, site name and number to admin templates
- improve navigation between admin and edc
- change topbar on subject dashboard to always show subject identifier
- register auth models with edc_auth_admin, update urls

0.4.12
------
- add to admin list_display, update imports (edc-auth)
- carry over required fields from randomizer to importer
  to verifier (edc-randomization)

0.4.11
------
- refactor randomizer, verify on every import, add assignment description map,
  add system check to validate blinded user list (edc-randomization).
- remove formatted html from verbose names (edc-glucose)
- rename get_subject_screening_model_name to get_subject_screening_model
  (edc-consent)
- add ActionItemModelAdminMixin to BloodResultsModelAdminMixin (edc-lab-results)
- update admin templates to have consistent topbar (edc-model-admin)
- remove coerce to datetime with astype() (edc-pdutil)

0.4.10
-----
- add admin mixin, weight param (edc-egfr)
- add func to 'get' references name (edc-reportable)
- minor changes to update imports / lint (edc-data-manager, edc-lab-results,
  edc-action, edc-timepoint, edc-registration, edc-metadata, edc-crf, edc-action-item)

0.4.9
-----
- bump edc-egfr

0.4.8
-----
- move all eGFR code to edc-egfr module
  (edc-egfr, edc-lab-results, edc-reportables)

0.4.7
-----
- add pre-commit to changed modules, update tests

0.4.6
-----
- fix minor issues with date timezone using gettz instead of ZoneInfo
- enforce base timepoint in schedules, don't floor first timepoint
  lower bound date for base visits (edc-visit-schedule)
- add pre-commit to changed modules

0.4.5
-----
- update more  modeladmin mixins to return tuples
- add pre-commit to changed modules

0.4.4
-----
- update more  modeladmin mixins to return tuples
- add pre-commit to changed modules

0.4.3
-----
- expect all modeladmin mixins to return tuples
- add pre-commit to changed modules

0.4.2
-----
- minimize use of arrow across all modules in favor of
  get_utcnow() or datetime and ZoneInfo
- gradually add pre-commit to changed modules
- expand testing to py3.10/dj4.1
- fix holiday using dict instead of model instance and queryset (edc-facility)

0.4.1
-----
- fix permissions error when attempting to add an unscheduled appointment
  (edc-appointment)
- expect all modeladmin mixins to return tuples (edc-adverse-event)

0.4.0
-----
- add site_id as param for simpleidentifier to use in migrations (edc-identifier)

0.3.99
------
- fix ethinicty factor from 0.1.50 to 0.1.59 in 2009 CKI-GFR calculator (edc-reportable)
- check permissions before creating unscheduled appointment (edc-appointment)
- add quantifier as default field in result factory (edc-lab-panel
- fix perms param not iterable in listboard (edc-dashboard)

0.3.98
------
- add egfr_drop to rft panel (edc-lab-panel)
- add egfr and egfr_drop to DAIDS and normal range;
  fix egfr_percent func to return percents
  (edc-reportables)
- add subject_identifier attrs to modelform Meta
  (edc-action-item)
- add custom appt_datetime listfilter to appointment modeladmin
  (edc-appointment)
- add custom sites listfilter to user modeladmin (edc-auth,
  edc-action-item))
- remove support for sentry
- move custom modelform fields to attrs on Meta (edc-adverse-event)

0.3.97
------
- add fields `missing`, `missing_count` to blood result models to
  be viewed in admin to track missing results within an instance.
  Will trigger a schema migration for your project. You will need
  to write a data migration to update existing records.
  See also: meta_edc.meta_subject migration 0124.
  (edc-lab-results)

0.3.96
------
- add refresh button to subject dashboard, refreshes metadata for
  the current visit (edc-subject-dashbaord)
- fix date validation against report_datetime failing on inlines
  (edc-model-admin)
- add method for persistant singletons to predicate collection
  (edc-metadata)

0.3.95
------
- minor fixes to urls from admin changelist to subject dashboard
  (edc-prn, edc-metadata)
- add DATA MANAGER models to AUDITOR role
- fix dashboard url from admin (edc-dashboard)
- fix verbose name (edc-adherence)

0.3.94
------
- bump django-simple-history add migrations
- add BP funcs (edc-vitals)
- improve refill/dispense calculations, rename stock/product
  models (edc-pharmacy)

0.3.93
------
- display message on changelist if data manager (edc-data-manager)
- include subjectvisitmissed in REQUIRED CRFs when determining
  completed CRFs (edc-metadata)
- get subjectvisit from instance if not in cleaned data in
  reporatbles form validator (edc-reportable)
- accept site_id when creating simple identifier (edc-identifier)

0.3.92
------
- is_baseline works for CRFs (edc-visit-schedule)
- add calculator for egfr percent change (edc-reportable)
- add protocol incident model (edc-protocol-violation)
- not_applicable_if_true (edc-form-validators)
- enforce a sensible appt_status on save (edc-appointment)


0.3.91
------
- add missing install requires (edc-notification)

0.3.90
------
- refactor some references to settings to do so thru funcs
  (e.g. EDC_BOOTSTRAP)

0.3.88
------
- interim release

0.3.87
------
- fix validation issues with consent modelform mixins / validator
  (edc-consent)

0.3.86
------
- add migrations (edc-appointment,, edc-protocol-violation)
- refactor paths in edc_model, fix references in other modules

0.3.85
------
- rebuild edc-data-manager

0.3.84
------
- refactor paths in edc_model, fix references in other modules

0.3.83
------
- refactor paths in edc_model, fix references in other modules
- add django-multisite-edc to install_requires, remove git+url
- configure new build for more edc modules

0.3.82
------
- improve context sensitive showing of subject dashboard's unscheduled appt
  button (edc-appointment, edc-subject-dashboard)
- reorder unscheduled appointments if a deletion breaks the sequence
  (edc-appointment)
- cascade changed appointment visit_code_sequence to subject visit and
  crf/requisition metadata (edc-appointment, edc-visit-tracking)
- declare metadata helper mixin as a model mixin also (edc-metadata)
- add metadata helper to appointment and visit tracking models

0.3.81
------
- remove dependencies: ipware, django-import-export

0.3.80
------
- fix issues with test runners and install requires

0.3.79
------
- improvements to handling of window period, duplicate appointment and visit dates, etc
  (edc-appointment, edc-visit-tracking, edc-visit-schedule, edc-metadata)
- improve handling of missed visits, ensure metadata-rules do not create
  unwanted required forms when missed. (edc-metadata, edc-visit-tracking,
  edc-apointment)
- add appt_timing field (edc-appointment)
- improve subject dashboard to always force user to validate data through
  appointment and visit tracking forms, and other minor improvements
  (edc-subject-dashboard, edc-metadata)
- use _meta.get_fields instead of _meta.fields where found

0.3.71
------
- auto-create subject-visit with reason=missed if appointment is missed
  tighen up window period restriction
  recalculate appointment dates relative to baseline appointment
  (edc-appointment)
- tighten up report datetime relative to the appointment
  add window period checks (edc-visit-tracking)
- add option to skip baseline when recalculating appointment dates
  (edc-visit-schedule)
- add _clean method to call default behaviour
  fix module typo (edc-form-validators)
- convert form date to utc to compare with db date (edc-crf)
- fix issue with PRN metadata entry status (edc-metadata)
- change build system (multiple modules)

0.3.70
------
- add date validators relative to report_datetime (edc-form-validators)
- fix not returning to subject dashboard after CRF delete
  (edc-model-admin)
- add form validator mixins for FBG abd OGTT (edc-glucose)

0.3.69
------
- change fasting blood glucode abbreviation from ifg to fbg.
  Affects field names (edc-glucose)
- add date validator method much like model validator date funcs
  (edc-form-validators)

0.3.68
------
- rename IFG to FBG (edc-blood-result)
- rename IFG to FBG, add model factory for FBG, add utestid as field
  name prefix in factories and form validators (edc-glucose)
- bump edc-pharmacy to 0.1.7

0.3.67
------
- remove code in model save() duplicated in ScreeninEligibility class

0.3.66
------
- move field class factory to edc-lab-panel (edc-blood-result)
- add additional panels (edc-lab-panel)
- add additional assertions for tests (edc-form-validator)
- add model mixins for CRFs with requisitions (edc-lab)

0.3.65
------
- correctly handle ranges in FC of eligibility (edc-screening)
- update site ID from model in update_action_identifier (edc-action-item)
- add minor (alter) migration (edc-auth, edc-export)
- consider panel name when validating requisition metadata (edc-metadata)

0.3.64
------
- add func to register actions (edc-action-item)

0.3.63
------
- fix misspelled settings attr to EDC_LTFU_MODEL_NAME- (edc-ltfu)

0.3.62
------
- add duration field class (edc-model)
- add form validator asserts for tests (edc-form-validators)
- enforce sid count for tests (edc-randomization)
- add settings attr for severe HTN (edc-vitals)

0.3.61
------
- add additional validation to eligibility base class (edc-screening)
- change file not found exception to RandomizationListFileNotFound (edc-randomization)

0.3.60
------
- add migrations and auths (edc-dx_review)


0.3.59
------
- change screening eligibility mixin add abstract methods.
  Review your code before upgrading.(edc-screening)
- change auth group names. Review your code before
  upgrading. (edc-randomization)
- move auth objects to owner app from edc-auth (edc-auth and other apps)


0.3.58
------
- edc-pharmacy models changed

0.3.54
------
- fix issue when adding a RequisitionPanelGroup, instead of a RequisitionPanel, in LapProfile (edc-lab)

0.3.53
------
- use objects manager, instead of _default_manager, on select PRN forms (edc-data-manager)
- prevent add/edit access if site does not match current (edc-subject-dashboard)
- add link to subject schedule history on Subject Review dashboard (edc-review-dashboard)

0.3.52
------
- change options for dashboard url (edc-metadata)
- methods to list visits for required forms (edc-visit-schedule)

0.3.51
------
- calculate ALP, AST, Creatinine relative to ULN. (edc-reportable)
- when registering references ranges with `site_reportables`
  a new parameter can limit the list of reportable grades. Defaults to
  grade3/4 only. (edc-reportable)
- fix issue where assigning a role on User `add` raises
  an ObjectDoesNotExist exception. (edc-auth)

0.3.50
------
- add management command to update metadata (edc-metadata)

0.3.49
------
- add groups to default roles from edc-auth (edc-screening, edc-offstudy)
- refresh user roles as last step in AuthUpdater (edc-auth)
- allow data manager to lock a generated data query that
  cannot be resolved and should not be re-opened (edc-data-manager)

0.3.48
------
- minor fixes to 0.3.47

0.3.47
------
- add management command to update query rules (edc-data-manager)
- fix metadata inspector to not filter on site ID.
  Add management command to update metadata and run metadata rules
  (edc-medadata)

0.3.46
------
- fix looping on undistinct list when updateing query rules. Add management
  command to run rules. Create query on save. (edc-data-manager)

0.3.45
------
- remove custom "export" codenames

0.3.44
------
- add and update auths config for edc modules. Move app specific objects
  from edc_auth to edc_***.auths and edc_***.auth_objects (edc_auth)

0.3.42
------
- add and update auths config for edc modules. Move app specific objects
  from edc_auth to edc_***.auths and edc_***.auth_objects (edc_auth)

0.3.41
------
- minor fixes

0.3.40
------
- allow opt out of requisition if POC (edc-blood-results)
- add extra fields as a separate model mixin for the death report
  (edc-adverse-event)
- add site_auth global to discover auths configurations in modules
  instead of defining all permissions in edc-auth (edc-auth)
- update edc modules to use new site_auth, auths.py (edc_xxx)
- add edc-unblinding of models for managing blinding/unblinding
  in RCTs (edc-unblinding)

0.3.39
------
- add role for statistician (edc-auth)
- add new module to handle vitals, BP, weight, height (edc-vitals)
- refactor BMI/EGFR. fix syntax in uric acid string (edc-reportable)
- get_by_model defaults to model randomizationlist (edc_randomization)
- util to detect inline models (edc-model)
- add grade and grade description field to capture result of realtime
  assessment against reference list (edc-blood-results)
- move APPT_REASON_CHOICES to form class to avoid triggering a
  migration when using a custom set of CHOICES (edc-appointment)

0.3.38
------
- model form mixin for inline CRFs (edc-crf)
- bypass query updates for inline models (edc-data-manager)
- allow required_if to access inline fields (edc-form-validators)
- add util to detect inline models (edc-model)
- model form mixin for parent form or inlines (edc-model-form)
- move crf model mixin to edc-crf (edc-visit-tracking)

0.3.37
------
- add back deprecated field class paths (edc-model)

0.3.36
------
- add codenames for (edc-auth)
- introduce edc-vitals, move `vitals` field classes from edc-model
  to edc-vitals (edc-vitals)
- bloodpressure model mixins for both single and double measurement.
  Calculate average if two measurements. Use BMI for validation (edc-vitals)
- Add models, etc for Insulin (edc-blood-results)
- Add form validator to intercept errors from ConsentObject (edc-consent)
- Add BP avg calculator to blood result mixin (edc-dx-review)
- Add option N/A to glucose units (edc-glucose)
- Add panel for insulin (edc-lab-panel)
- make `check_loaded` a class method (edc-randomization)
- remove code that passed on LookupError (edc-registration)
- fix syntax error in uric-acid parse string, add dummy parser for
  utest_ids without defined ranges, refactor BMI/EGFR calculators (edc-reportable)



0.3.35
------
- remove `identity_or_pk` field from registered_subject (edc-registration)
- improve edc-dx, edc-dx-review
- several minor Q/A fixes
- improve test coverage on some modules

0.3.34
------
- raise on duplicates, replace default list data, remove unique
  field update function (edc-list-data)

0.3.33
------
- edc-adherence
- edc-dx

0.3.31
------
- access list imported through randomizer class, add methods that can be
  overriden to add extra stratification criteria (edc-randomization)
- get registered subject model by func (edc-registration)
- add mcv, mch, mchc, amyl, chol, creat (edc-blood-results, edc-lab-panel)
- refactor objects to use `ltfu` in naming (edc-ltfu)

0.3.26
------
- improve field attr consistency for glucose, fasting, etc
- improve form validators for glucose

0.3.24
------
- add panel groups, add list of utest-ids to panels (edc-lab)
- add edc-lab-panels, edc-blood-result dependencies

0.3.22
------
- fix missing attr in AdminSite (edc-action-item)
- get current schedule objects from current appointment
  (edc-subject-dashboard, edc-subject-model-wrapper)
- include Roles in AdminSite (edc-auth)

0.3.18
------
- fix issue with setup.py (edc-model-admin)
- add django-log-entry@master to requirements

0.3.17
------
- default EDC adminsite to urls catch_all_view=False (edc-model-admin)
- bump to Django 3.2

0.3.16
------
- fix validation error in data query form (edc-data-manager)
- update tests/test env. Add migration (edc-pharmacy)

0.3.15
------
- fix inlines not showing edc custom submit row by making the modified inline
  change_form.html the default for all forms (edc-model-admin)

0.3.14
------
- fix to set screening identifier in one place only; ScreeningModelMixin
  (edc-screening)
- modify tox and gh-actions configs for py38, py39 and dj31, dj32 (all).
- change default auto id to bigintautofield if not uuidautofield
- add default_auto_field to apps config where needed (edc-export,
  edc-sites, edc-data-manager)
- add css for custom changelist buttons (edc-dashboard)

0.3.12
------
- fix grade notification not emitting on grade escalation (edc-adverse-event)
- expand model notification to consider C(r)UD operations (edc-notification)
- subclass graded event notification from model notification (edc-notification)

0.3.11
------
- minor

0.3.8
-----
- start adding typing hints
- merge edc-metadata-rules into edc-metadata
- Django 3.1.7

0.3.6
-----
- gh-actions, isort, black (for all requirements, the rest ...)

0.3.5
-----
- add django-defender

0.3.4
-----
- Django 3.1.6 (for all requirements)
- gh-actions, isort, black (for all requirements)

0.1.73
------
- bump to django 3.1.5

0.1.72
------
- add migrations for model Meta class changes

0.1.71
------
- add missing model Meta class inheritance (edc_action, edc-adverse-event)
- load permissions through post-migrate (edc-auth)
- load sites through post-migrate (edc-sites)
- load lists through post-migrate (edc-list-data)
- add LIST_MODEL_APP_LABEL settings attribute (edc-list-data)q
- remove ugettext, force_text (several modules)

0.1.68
------
- minor fixes

0.1.65
------
- add ltfu_date to model mixin, form validator to check model
  exists and date matches (edc-ltfu)
- set action item as singleton (edc-offstudy)
- fix assessment of current visit schedule / schedule for
  view mixin (edc-visit-schedule)

0.1.64
------
- track LTFU model in schedule, fix view detecting wrong schedule
  if more than one exists (edc-visit-schedule)
- fix incorrect action description, get next action using LTFU
  model name (edc-visit-tracking)

0.1.62
------
- fix required_if_true to equate blank and None (edc-form-validator)
- fix issues with subjectvisitmissed validator (edc-visit-tracking)

0.1.61
------
- add new requirement (edc-ltfu)

0.1.60
------
- also inspect crfs_missed when querying CrfMetadata for subject
  visit (edc-metadata)
- add testcase methods for getting appointment and next appointment
  (edc-appointment)
- add subjectvisitmissed formvalidator mixin, model mixin, action item
  (edc-visit-tracking)
- more constants (edc-constants)
- allow to opt-out of TMG workflow in actions, add attr for offschedule
  reason field (edc-adverse-event)
- add method `m2m_applicable_if_true` (edc-form-validators)
- move load_list_data to function (edc-list-data)
- refer to action by name using constant (edc-locator)
- add slider widget and resources for adherence visual scale
  (edc-model-fields)
- add off study action item (edc-offstudy)
- register CRFs listed in crfs_missed (edc-reference)





0.1.59
------
- modify how facility selects an available appt date by changing the
  order of precedence (edc-facility)
- enforce window period defined on the visit object
  from edc-visit-schedule (edc-appointment)
- enforce window period using visit lower/upper for scheduled appointments
  and lower as visit.lower and upper as next_visit.lower for
  unscheduled appointments (edc-visit-schedule)
- rename method `visit` to `visit_from_schedule` to avoid being overriden
  by AppointmentModelMixin. Keep `visit` available as a wrapper for
  `visit_from_schedule` (edc-visit-schedule)
- add days, `d`, to duration YMD field and validation (edc-model)
- add slider widget (edc-model)
- add `in` operator to predicate evaluation (edc-metadata-rules)
- default responses to `other` in m2m_other_specify (edc-form-validators)
- add `export_format` to user profile (edc-auth)
- remove `site` framework from model (edc-reference)


0.1.56
------
- check metadata_obj exists when evaluating rule (edc-metadata-rule)

0.1.54
------
- remove site framework from app (edc-reference)

0.1.53
------
- carry site id from visit instance (edc-reference, edc-metadata)
- raise exception if invalid visit code refered to (edc-appointment)
- remove any code referring to unused reviewer site id (edc-sites)

0.1.52
------
- query references using objects manager instead of on_site manager (edc-reference)
- minor pep8 / code cleanup

0.1.51
------
- hold at Django == 3.0.9
- add export user (edc-auth)

0.1.50
------
- hold at Django == 3.0.9
- add manager migration (edc-appointment)

0.1.48
------
- hold at Django == 3.0.9
- minor, mostly tests and pep8
- update interface to ipware (edc-device)
- bypass validation for reason_unscheduled if not in cleaned data (edc-visit-tracking)

0.1.47
------
- hold at Django == 3.0.9
- add EDC_APPOINTMENT_APPT_REASON (edc-appointment)
- preload list data in autodiscover instead of in app `list_data` files (edc-list-data)

0.1.32
------
- evaluate actions on m2m-change (edc-action-item)
- use `get_subject_visit` to get more reliably (edc-consent)
- add m2m "not" other specify method (edc-form-validators)
- use get visit model (edc-data-manager)
- recover if metadata is out of sync (edc-metadata)

0.1.30
------
- add crfs_missed to Visit object

0.1.29
------
- fix minor issues with "export" permission updater (edc-auth)
- fix "appointment_mark_as_done" admin action (edc-appointment)
- increase systolic max for BP field class (edc-model)
- add crf collection option for "missed" visits (edc-metadata)

0.1.26
------
- update MANIFEST.in files in edc-auth, edc-crf
- move fix for export permissions to edc-auth
- add offschedule datetime to appointment export resource

0.1.25
------
- minor fix (edc-model)

0.1.24
------
- add "export" as a default permission to ``BaseUuidModelMixin.Meta`` (edc_model)
- add ``CrfStatus`` model to track the ``crf_status`` of models using
  the mixin (edc_crf)
- add "export" as a default permission to ``CrfModelMixin.Meta`` (edc_crf)
- fix change_list in CrfMetadata (edc_metadata)
- add dashboard link to change_list, and admin action to bulk update ``appt_status``
  (edc_appointment)
- integrate ``django-import-export`` as a new dependency.
- add ``export`` codenames to be referred to in change_list when
  exporting using ``django-import-export`` (edc-auth)
- add links to CRF metadata, CRF status, appointments in home template (edc_data_manager)
- separate ``get_country`` and ``get_current_country`` into separate funcs (edc-sites)

0.1.23
------
- add base.html and load lab specific css/js (edc-lab-dashboard)

0.1.22
------
- in base.html, update bootstrap3 version to latest (edc-dashboard)
- in base.html, update jquery 1 version to latest (edc-dashboard)
- in base.html and overridden admin forms, update fontawesome (edc-dashboard, edc-model-admin)
- in base.html, pull js and css from cdn (bootstrap/jquery) (edc-dashboard)
- in base.html, remove unused js and css (edc-dashboard)
- include minor migration (edc-data-manager)

0.1.20
------
- additional constants/choices (edc-constants)
- other very minor changes / formatting

0.1.19
------
- add additional constants/choices (edc-constants)
- other very minor changes / formatting

0.1.18
------
- fix date comparison error when submitting requisitions that traced back to verifying
  the report_datetime to the consent_datetime. (edc-consent)
- raise a custom EDC exception if the DoB is not provided when calculating age. (edc-utils)

0.1.17
------
- register `holiday` system checks to run on deploy only. Run the `check` management
  command with the `--deploy` option. (edc-facility)
- register `rando` checks to run on deploy only. Add utility to generate
  dummy randomization list for trials that do not randomized at the patient
  level. (edc-randomization)
- raise an exception if settings.EDC_PROTOCOL_NUMBER is not set. (edc-protocol)
- add `enrolment` codenames by default. Add `my` codenames used by ListView to
  filter the queryset for records created by the current user only. (edc-auth)

0.1.16
------
- improve handling of sites grouped by country. (edc-sites)
- fix problem with exportables class that broke the export html page. (edc-export)

0.1.15
------
- Add django's ``site`` and ``auth`` models to the list of exportable models. (edc-export)
- Add edc_sites` model to the list of exportables. (edc-site)

0.1.14
------
- minor bug fixes. (edc-sites, edc-facility)

0.1.13
------
- change approach to multi-country, multi-site deployments to that of django-multisite.
  Add ``django-multisite`` as a requirement.
  Using erikvw/django-multisite until PR is accepted.
- SITE_ID is now extracted from the site name in the url (django-multisite)
- use SingleSite class to wrap site information (edc-sites)
- get country and other site attributes from edc-sites class instead from settings (edc-facility)
- fix model backend incorrectly referring to site_id instead of site.id (edc-auth)

0.1.12
------
- add site utils for multi-country, multi-site deployments (edc-sites)
- update all modules to get subject and screening identifier patterns from edc-protocol

0.1.10
------
- fix model_mixin import in test app (edc-review-dashboard)
- add `fasting` as a default field for normal and grading references (edc-reportable)
- add back settings attribute to overwrite the default randomizer's assignment map, `EDC_RANDOMIZATION_ASSIGNMENT_MAP` (edc-randomization)

0.1.9
-----
- `get_datetime_from_env` to convert env list to timezone-aware datetime
  (edc-utils)
- test on django 3 / python 3.8
- add SUBJECT_SCREENING_MODEL settings attr used by, for example,
  consent form validator mixin (edc-screening, edc-consent, edc-test-utils)
- change to django-simple-history branch admin_revert_permissions2 (dj3)
- simple-history modeladmin change_message (edc-model-admin)
- removed dependency to django.utils.six in offline serializers (django-collect-offline)
