Changes
=======

0.4.56
------
- remove editable=False from eligibility model fields to show them as readonly
  on modeladmin section (edc-screening)

0.4.55
------
- fix missing method call in `get_changelist_url` (edc-model)
- add new Names model mixin for legal_name, familiar_name (edc-model)
- update consent to handle legal_name, familiar_name (edc-consent)
- new attrs for modeladmin to add help and notes to custom changelist
  (edc-model-admin)

0.4.54
------
- allow to override criteria to select an unallocated registration instance
  (edc-randomization)

0.4.53
------
- add `get_changelist_url` to default model mixin (edc-model)
- randomizer may identifier fields other than
  `subject_identifier` (edc-randomization)
- may use custom registration model (edc-registration)

0.4.52
------
- fix regression in test sites following update to SingleSite init signature (edc-sites)
- add PrnModelAdminMixin (edc-prn)
- additional constants (edc-constants)

0.4.51
------
- fix regressions causing list filter to always return an empty queryset
  caused by not distinguishing `no date` (null) from filter not selected
  (edc-model-admin, edc-constants)

0.4.50
------
- * move list filter code as base class to edc-model-admin;
  * ignore validation if appointment is cancelled;
  * refactor missed appointment handling. (edc-appointment)

0.4.49
------
- move reason updater to appointment (edc-appointment, edc-visit-tracking)
- default offschedule action (edc-visit-schedule)
- add current site to form class (edc-sites)
- add mixins to query current site on screening form (edc-screening)

0.4.48
------
- remove edc-egfr as a dependency

0.4.47
------
- never export rando tables, even if user is unblinded (edc-export)
- refactor blinded/unblined funcs (edc-randomization)
- take code out of app_config and move to funcs in utils (edc-facility)
- slight refactor, typing hints (edc-screening)

0.4.46
------
- add css hack for wrapping radiolists in admin forms (edc-model-admin)
- fix func signature (edc-form-describer)

0.4.45
------
- fix regression that dropped linked to jQuery in edc base template
  (edc-dashboard)
- update rel.to to related_model for inlines (edc-crf)

0.4.44
------
- add migration for help_text changes (edc-appointment)

0.4.43
------
- change TabularInlineMixin to insert an inline before a fieldset
  instead of after a field. Revert to using Django original
  fieldset.html. Default to insert inlines before the audit
  fieldset. (edc-model-admin)
- move edc_protocol vars used in template context to middleware
  (edc_protocol, edc-auth, edc-dashboard)
- fix appointment radio widget missing class-radiolist
- use new 4.1 template block to disable dark mode, update all
  local admin templates (edc-model-admin)
- set logout view to use default template. (edc-auth)
- changes require you to run collectstatic and to clear
  the cache on the browser to ensure jquery 3.6.0 loads.


0.4.42
------
- drop mixin in favor of directly accessing func
  `estimated_date_from_ago` (edc-dx-review)
- fix signal attempting to delete unrleated action items
  (edc-action-item)
- remove code in AppConfig that auto creates export folders
  (edc-export, edc-pdutils)
- slight refactor (edc-timepoint)
- clarify in exception message that edc-appointment has a reverse
  relation to the related visit model (edc-appointment)
- change blood result question prompt for field assay_datetime to
  "Assay date and time" (edc-lab)
- move save code to model method for consistency (edc-offstudy)
- add additional unique_together constraint plus migration
  (edc-appointment)
- fix tests, test on py3.10 / DJ 4.1.1 primarily

0.4.41
------
- add missing migration (edc-appointment)
- fix import path (edc-glucose)

0.4.40
------
- tighten up date validations across model/form/validators.
- handle a number of regressions

0.4.39
------
- update tests

0.4.38
------
- update test models

0.4.37
------
- handle a number of regressions
- consolidate model managers and managers on model mixins
  to make it easier to predict the _default_manager. Users
  should add unitests to confirm concrete model classes
  have the expected _default_manager (all with model mixins)
- floor sec/microsec on datetimes when comparing in form
  and form-validator validation (edc-appointment
  edc-visit-schedule, edc-visit-tracking, edc-crf)
- remove `SiteModelMixin` from default on/off schedule
  model mixins. Add this mixin manually to the concrete
  class.

0.4.36
------
- add related visit methods to historical model (edc-model)
- minor fixes to off/on schedule models

0.4.35
------
- added base method to access offschedule_datetime, typing (edc-crf)
- removed features/fields that create `next refill` on submission of
  study medication report (edc-pharmacy)
- trivial (edc-protocol-incident)
- fixed issue that incorrectly compares int to str when confirming
  that the grade from the user matches the grade from the evaluator
  (edc-reportable)

0.4.34
------
- rename module edc-protocol-deviation to edc-protocol-incident. This
  requires manually renaming tables to reflect the app name and updating
  the django_migration table app column with the new app name. Migrations
  have been squashed for future users (edc-protocol-incident)
- deprecate path form_validator_mixin for  form_validator_mixins
  (edc-form-validator)

0.4.31
------
- refactor modelform, model, and view mixins to derive subject_identifier,
  report_datetime, related_visit_model_attr, related_visit in a consistent
  manner. Changes added to most modules.
  modules.
- remove ContextMixin from view mixins. Add this to the concrete View.
- add new typing hints in 3.10 style, convert existing ones to 3.10 style.
- add form validation to compare user select grade with evaluated grade
  (edc-reportable).
- increase BMI upper bound to 75 (edc-reportable)
- fix validation on modelform/validator mixin (edc-glucose)

0.4.25
------
- fix issue where egfr calculator defaults to ethnicity = OTHER.
- change rounding strategy (edc-utils and apps that round up).
- add plural_name field to list models.

0.4.24
------
- add data migrations to remove residual permissions
  (edc-dashboard, edc-navbar).
- minor update to group updater handling duplicates (edc-auth).

0.4.21 - 0.4.23
---------------
- refactor `visit_model_attr` to `related_visit_model_attr`
- refactor model mixin method `visit` to avoid conflict with same
  method name used in edc-visit-schedule. Use `related_visit` to
  return a visit model instance and `visit` to return a schedule
  visit object.
- introduce py3.10 typing style
- remove visit code/sequence link between study medication reports
  and pharmacy refills (edc-pharmacy)
- fix issue with pharmacy codenames not appearing in pharmacy
  groups (edc-pharmacy)
- enforce use of end date for a pharmacy refill. Adjust dates
  if a refill is inserted between scheduled visits (edc-pharmacy)
- confirm a group exists before adding to a role (edc-auth)

0.4.20
------
- remove tracking identifier from all modules
- make action_identifier nullable and blank=True (edc-action-item)
- update custom tuple

0.4.19
------
- minor updates (edc-utils, edc-appointment, edc-consent)

0.4.18
------
- store custom permissions in owner app. default model is now
  <app_label>.edcpermissions. Move away from storing all custom
  permissions in edc-dashboard and edc-navbar. clean up auths
  modules (most modules)
- update references to perms in templates and navbars
- add context-processors for apps that own constants
  (edc-appointment, edc-constants, edc-visit-tracking)
- add dashboard middleware (edc_review_dashboard)
- add system checks to enforce context processors


0.4.17
------
- fix regression deepcopy/copy (edc_form_validators)
- add migrations for modules with models that use action_identifier

0.4.15
------
- hold back support for Django 4.1 (problems with m2m on admin page)
- move imports out of root __init__ in edc_model_admin
- override delete_confirmation.html in admin

0.4.14
------

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)
