castellum tagshttps://git.mpib-berlin.mpg.de/castellum/castellum/-/tags2024-03-11T13:56:29Zhttps://git.mpib-berlin.mpg.de/castellum/castellum/-/tags/0.96.10.96.1<ul data-sourcepos="1:1-8:40" dir="auto">
<li data-sourcepos="1:1-5:13">Fix expiration of consents given by parents when a subject turns 16.
This was not handled correctly since 0.79.0 (2022-07-19).
Fortunately, the information can be fully recovered. Also, since the
bug was introduced less than 2 years ago, no consent are actually
affected.</li>
<li data-sourcepos="6:1-6:48">Display study maintenance link for all users</li>
<li data-sourcepos="7:1-7:51">Fix validation of MultiPolygons for geo filters</li>
<li data-sourcepos="8:1-8:40">Fix a type in the german translation</li>
</ul>2024-03-11T13:56:29ZTobias Bengforthttps://git.mpib-berlin.mpg.de/castellum/castellum/-/tags/0.96.00.96.0<h2 data-sourcepos="1:1-1:19" dir="auto">
<a id="user-content-breaking-changes" class="anchor" href="#breaking-changes" aria-hidden="true"></a>breaking changes</h2>
<ul data-sourcepos="3:1-6:0" dir="auto">
<li data-sourcepos="3:1-6:0">Calendar feeds no longer contain contact information of subjects.
The endpoints <code>/execution/resources/<id>/</code> and
<code>/execution/<id>/calendar/feed/</code> have been removed completely.</li>
</ul>
<h2 data-sourcepos="7:1-7:12" dir="auto">
<a id="user-content-bug-fixes" class="anchor" href="#bug-fixes" aria-hidden="true"></a>bug fixes</h2>
<ul data-sourcepos="9:1-12:0" dir="auto">
<li data-sourcepos="9:1-10:14">Fix showing "deprecated" label for consent documents in subject
management</li>
<li data-sourcepos="11:1-12:0">Fix loading static files on Windows</li>
</ul>
<h2 data-sourcepos="13:1-13:15" dir="auto">
<a id="user-content-new-features" class="anchor" href="#new-features" aria-hidden="true"></a>new features</h2>
<ul data-sourcepos="15:1-33:0" dir="auto">
<li data-sourcepos="15:1-21:16">We developed a reusable Django app to automatically create signed
timestamps for uploaded files. This allows to proof that the file
has not been manipulated after the fact. Starting with this release,
that app is installed (but not configured) in the Castellum Docker
image by default. See
<a href="https://git.mpib-berlin.mpg.de/castellum/django-storage-timestamps/">https://git.mpib-berlin.mpg.de/castellum/django-storage-timestamps/</a>
for details.</li>
<li data-sourcepos="22:1-31:55">The participation status system has been overhauled and expanded
<ul data-sourcepos="23:5-31:55">
<li data-sourcepos="23:5-24:25">The new status "completed" allows to free up subjects from
exclusive studies</li>
<li data-sourcepos="25:5-25:67">Dropped out subjects are now freed up for exclusive studies</li>
<li data-sourcepos="26:5-28:20">Dropped out subjects are now excluded in excluded studies
(because they may still have learning effects, even if the data
is not used)</li>
<li data-sourcepos="29:5-29:66">Dropped out subjects are no longer considered for included</li>
<li data-sourcepos="30:5-31:55">The view to change participation status in execution has been
revised and is now integrated in the navigation</li>
</ul>
</li>
<li data-sourcepos="32:1-33:0">Allow to add more then one document for study consent.</li>
</ul>
<h2 data-sourcepos="34:1-34:16" dir="auto">
<a id="user-content-other-changes" class="anchor" href="#other-changes" aria-hidden="true"></a>other changes</h2>
<ul data-sourcepos="36:1-37:0" dir="auto">
<li data-sourcepos="36:1-37:0">The <code>AttributeDescription</code> model has been renamed to <code>Attribute</code>
</li>
</ul>2024-01-29T14:08:02ZTobias Bengforthttps://git.mpib-berlin.mpg.de/castellum/castellum/-/tags/0.95.20.95.2<ul data-sourcepos="1:1-4:0" dir="auto">
<li data-sourcepos="1:1-1:39">Allow to run Castellum without gdal</li>
<li data-sourcepos="2:1-2:36">Add missing migration dependency</li>
<li data-sourcepos="3:1-4:0">Add some missing margins</li>
</ul>2023-11-22T11:02:45ZTobias Bengforthttps://git.mpib-berlin.mpg.de/castellum/castellum/-/tags/0.95.10.95.1<p data-sourcepos="1:1-1:26" dir="auto">Fix support for Python 3.8</p>2023-10-11T15:43:25ZTobias Bengforthttps://git.mpib-berlin.mpg.de/castellum/castellum/-/tags/0.95.00.95.0<p data-sourcepos="1:1-1:60" dir="auto">Starting with this release the release schedule will change:</p>
<ul data-sourcepos="3:1-7:0" dir="auto">
<li data-sourcepos="3:1-4:24">Minor releases will be published roughly every three months instead
of every three weeks</li>
<li data-sourcepos="5:1-5:70">Beta releases might be published to offer previews on new features</li>
<li data-sourcepos="6:1-7:0">Bug fix releases will be published on demand</li>
</ul>
<h2 data-sourcepos="8:1-8:19" dir="auto">
<a id="user-content-breaking-changes" class="anchor" href="#breaking-changes" aria-hidden="true"></a>breaking changes</h2>
<ul data-sourcepos="10:1-11:0" dir="auto">
<li data-sourcepos="10:1-11:0">Study import/export has been removed.</li>
</ul>
<h2 data-sourcepos="12:1-12:12" dir="auto">
<a id="user-content-bug-fixes" class="anchor" href="#bug-fixes" aria-hidden="true"></a>bug fixes</h2>
<ul data-sourcepos="14:1-17:0" dir="auto">
<li data-sourcepos="14:1-17:0">Work around an issue where the data protection dashboard was not
filtered under some circumstances (see
<a href="https://code.djangoproject.com/ticket/33482" rel="nofollow noreferrer noopener" target="_blank">https://code.djangoproject.com/ticket/33482</a>)</li>
</ul>
<h2 data-sourcepos="18:1-18:15" dir="auto">
<a id="user-content-new-features" class="anchor" href="#new-features" aria-hidden="true"></a>new features</h2>
<ul data-sourcepos="20:1-22:0" dir="auto">
<li data-sourcepos="20:1-22:0">The front page now contains a link to the documentation. The URL can
be customized using <code>CASTELLUM_DOCUMENTATION_LINK</code>.</li>
</ul>2023-10-09T14:27:14ZTobias Bengforthttps://git.mpib-berlin.mpg.de/castellum/castellum/-/tags/0.94.00.94.0<h2 data-sourcepos="1:1-1:19" dir="auto">
<a id="user-content-breaking-changes" class="anchor" href="#breaking-changes" aria-hidden="true"></a>breaking changes</h2>
<ul data-sourcepos="3:1-11:0" dir="auto">
<li data-sourcepos="3:1-6:12">The docker image now uses the uwsgi user instead of root to tighten
security. This also means that you can no longer install packages.
If you need to do that, it is recommended to build a custom image
instead.</li>
<li data-sourcepos="7:1-11:0">The default value of <code>CASTELLUM_ENABLE_STUDY_EXPORT</code> changed to
<code>False</code>. We are thinking about removing that feature completly
because the study API provides a better solution in many cases.
Please get in touch if you think you have a valid use case.</li>
</ul>
<h2 data-sourcepos="12:1-12:12" dir="auto">
<a id="user-content-bug-fixes" class="anchor" href="#bug-fixes" aria-hidden="true"></a>bug fixes</h2>
<ul data-sourcepos="14:1-16:0" dir="auto">
<li data-sourcepos="14:1-16:0">Fixed some bugs/unexpected behavior concerning test mails (e.g. for
appointment reminders).</li>
</ul>
<h2 data-sourcepos="17:1-17:15" dir="auto">
<a id="user-content-new-features" class="anchor" href="#new-features" aria-hidden="true"></a>new features</h2>
<ul data-sourcepos="19:1-24:0" dir="auto">
<li data-sourcepos="19:1-20:59">Study management now provides an "Overview by status" that allows to
keep track of studies and explains possible next steps.</li>
<li data-sourcepos="21:1-24:0">Pseudonym domains in study management now also display the number of
pseudonyms that have been accessed. This allows you to identify
domains that have not been used.</li>
</ul>
<h2 data-sourcepos="25:1-25:16" dir="auto">
<a id="user-content-other-changes" class="anchor" href="#other-changes" aria-hidden="true"></a>other changes</h2>
<ul data-sourcepos="27:1-29:0" dir="auto">
<li data-sourcepos="27:1-29:0">
<code>CASTELLUM_APPOINTMENT_MAIL_BODY</code> was extended to explain the impact
of no-shows.</li>
</ul>2023-09-12T17:32:49ZTobias Bengforthttps://git.mpib-berlin.mpg.de/castellum/castellum/-/tags/0.93.10.93.1<ul data-sourcepos="1:1-3:27" dir="auto">
<li data-sourcepos="1:1-1:55">Fix crash in filter trials (regression from 0.93.0)</li>
<li data-sourcepos="2:1-3:27">Do not send recruitment mail reminders to subjects who are no longer
suitable for the study.</li>
</ul>2023-08-23T15:02:10ZTobias Bengforthttps://git.mpib-berlin.mpg.de/castellum/castellum/-/tags/0.93.00.93.0<h2 data-sourcepos="1:1-1:19" dir="auto">
<a id="user-content-breaking-changes" class="anchor" href="#breaking-changes" aria-hidden="true"></a>breaking changes</h2>
<ul data-sourcepos="3:1-8:0" dir="auto">
<li data-sourcepos="3:1-4:9">The working directory in the docker image has changed from /code/ to
/app/</li>
<li data-sourcepos="5:1-8:0">To protect study conductors, subjects who get reported are no
blocked immedately. If the reviewers discard the report, the subject
is un-blocked.</li>
</ul>
<h2 data-sourcepos="9:1-9:12" dir="auto">
<a id="user-content-bug-fixes" class="anchor" href="#bug-fixes" aria-hidden="true"></a>bug fixes</h2>
<ul data-sourcepos="11:1-13:0" dir="auto">
<li data-sourcepos="11:1-13:0">The number of recruitable subjects on the subject management page no
longer includes subjects who are deceased or blocked.</li>
</ul>
<h2 data-sourcepos="14:1-14:15" dir="auto">
<a id="user-content-new-features" class="anchor" href="#new-features" aria-hidden="true"></a>new features</h2>
<ul data-sourcepos="16:1-19:0" dir="auto">
<li data-sourcepos="16:1-19:0">Studies can now select "included studies". Only participants from
included studies will be considered in the recruitment for the
study.</li>
</ul>
<h2 data-sourcepos="20:1-20:16" dir="auto">
<a id="user-content-other-changes" class="anchor" href="#other-changes" aria-hidden="true"></a>other changes</h2>
<ul data-sourcepos="22:1-24:0" dir="auto">
<li data-sourcepos="22:1-24:0">Castellum now uses the browser's default warning message when the
user might lose unsaved changes.</li>
</ul>2023-08-22T13:55:41ZTobias Bengforthttps://git.mpib-berlin.mpg.de/castellum/castellum/-/tags/0.92.00.92.0<h2 data-sourcepos="1:1-1:12" dir="auto">
<a id="user-content-bug-fixes" class="anchor" href="#bug-fixes" aria-hidden="true"></a>bug fixes</h2>
<ul data-sourcepos="3:1-5:0" dir="auto">
<li data-sourcepos="3:1-5:0">adapt the <code>create_demo_users</code> script to the changes to the "subject
manager" group from 0.90.</li>
</ul>
<h2 data-sourcepos="6:1-6:15" dir="auto">
<a id="user-content-new-features" class="anchor" href="#new-features" aria-hidden="true"></a>new features</h2>
<ul data-sourcepos="8:1-18:0" dir="auto">
<li data-sourcepos="8:1-8:64">allow to pre-fill the study creation form via URL parameters</li>
<li data-sourcepos="9:1-15:55">there can now be up to two appointment reminders and study
coordinators can choose how many days before the appointment these
reminders should be sent. The new settings
<code>CASTELLUM_APPOINTMENT_DEFAULT_FIRST_REMINDER_DAYS</code>
<code>CASTELLUM_APPOINTMENT_DEFAULT_SECOND_REMINDER_DAYS</code>
can be used to set defaults. <code>CASTELLUM_APPOINTMENT_REMINDER_PERIOD</code>
is deprecated but still required for the migration.</li>
<li data-sourcepos="16:1-18:0">subject search can now be excluded from the monitoring log with the
new setting <code>CASTELLUM_MONITORING_INCLUDE_SEARCH</code>
</li>
</ul>
<h2 data-sourcepos="19:1-19:16" dir="auto">
<a id="user-content-other-changes" class="anchor" href="#other-changes" aria-hidden="true"></a>other changes</h2>
<ul data-sourcepos="21:1-26:0" dir="auto">
<li data-sourcepos="21:1-22:14">study approvers no longer need to be members of the study they want
to approve</li>
<li data-sourcepos="23:1-26:0">appointment change notifications are sent regardless of when the
appointment will take place (previously it was only sent for
appointments in the upcoming two working days, which was confusing)</li>
</ul>2023-08-02T09:07:18ZTobias Bengforthttps://git.mpib-berlin.mpg.de/castellum/castellum/-/tags/0.91.10.91.1Tobias Bengforthttps://git.mpib-berlin.mpg.de/castellum/castellum/-/tags/0.91.00.91.0<h2 data-sourcepos="1:1-1:12" dir="auto">
<a id="user-content-bug-fixes" class="anchor" href="#bug-fixes" aria-hidden="true"></a>bug fixes</h2>
<ul data-sourcepos="3:1-10:0" dir="auto">
<li data-sourcepos="3:1-6:42">django-axes uses the package django-ipware to detect client IP
addresses. This dependency turned from required to optional in
django-axes 6.0. The new docker images contain django-ipware, so
detection should work correctly again.</li>
<li data-sourcepos="7:1-10:0">Fixed a race condition in mail recruitment where two recruitment
requests could run at the same time, resulting in duplicate mails
send to subjects.</li>
</ul>
<h2 data-sourcepos="11:1-11:14" dir="auto">
<a id="user-content-performance" class="anchor" href="#performance" aria-hidden="true"></a>performance</h2>
<ul data-sourcepos="13:1-17:0" dir="auto">
<li data-sourcepos="13:1-14:50">The CSS generated from <code>BOOTSTRAP_THEME_COLORS</code> is now cached for
24h, so changes might not show up immediately.</li>
<li data-sourcepos="15:1-17:0">The default uwsgi config now sets long <code>Expires</code> headers for static
files to benefit from cache busting.</li>
</ul>
<h2 data-sourcepos="18:1-18:16" dir="auto">
<a id="user-content-other-changes" class="anchor" href="#other-changes" aria-hidden="true"></a>other changes</h2>
<ul data-sourcepos="20:1-23:0" dir="auto">
<li data-sourcepos="20:1-23:0">The admin UI no longer contains all models by default. You can still
including all models by using the <code>CASTELLUM_ADVANCED_ADMIN_UI</code>
setting.</li>
</ul>2023-06-26T09:00:36ZTobias Bengforthttps://git.mpib-berlin.mpg.de/castellum/castellum/-/tags/0.90.20.90.2<ul data-sourcepos="1:1-1:63" dir="auto">
<li data-sourcepos="1:1-1:63">Downgrade fullcalendar to avoid a bug in the latest version</li>
</ul>2023-05-31T15:51:23ZTobias Bengforthttps://git.mpib-berlin.mpg.de/castellum/castellum/-/tags/0.90.10.90.1<h2 data-sourcepos="1:1-1:12" dir="auto">
<a id="user-content-bug-fixes" class="anchor" href="#bug-fixes" aria-hidden="true"></a>bug fixes</h2>
<ul data-sourcepos="3:1-6:0" dir="auto">
<li data-sourcepos="3:1-4:12">remove outdated link to blocking subjects from subject management
overview</li>
<li data-sourcepos="5:1-6:0">improve aria-label for pagination</li>
</ul>
<h2 data-sourcepos="7:1-7:16" dir="auto">
<a id="user-content-other-changes" class="anchor" href="#other-changes" aria-hidden="true"></a>other changes</h2>
<ul data-sourcepos="9:1-9:63" dir="auto">
<li data-sourcepos="9:1-9:63">for the docker image, alpine linux has been updated to 3.17</li>
</ul>2023-05-30T14:34:44ZTobias Bengforthttps://git.mpib-berlin.mpg.de/castellum/castellum/-/tags/0.90.00.90.0<h2 data-sourcepos="1:1-1:11" dir="auto">
<a id="user-content-security" class="anchor" href="#security" aria-hidden="true"></a>security</h2>
<ul data-sourcepos="3:1-7:0" dir="auto">
<li data-sourcepos="3:1-7:0">To limit the impact of study manager privilege escalations, the
"subject manager" study group is no longer created by default. If it
is not required for your usecase, we recommend to remove it there,
too.</li>
</ul>
<h2 data-sourcepos="8:1-8:19" dir="auto">
<a id="user-content-breaking-changes" class="anchor" href="#breaking-changes" aria-hidden="true"></a>breaking changes</h2>
<ul data-sourcepos="10:1-13:0" dir="auto">
<li data-sourcepos="10:1-10:66">The "{name}" placeholder is now required in recruitment mails.</li>
<li data-sourcepos="11:1-13:0">Some configuration options for uwsgi were moved from the Dockerfile
to uwsgi.ini.</li>
</ul>
<h2 data-sourcepos="14:1-14:16" dir="auto">
<a id="user-content-other-changes" class="anchor" href="#other-changes" aria-hidden="true"></a>other changes</h2>
<ul data-sourcepos="16:1-17:0" dir="auto">
<li data-sourcepos="16:1-17:0">The front page icon for today's appointments has been changed.</li>
</ul>2023-05-09T15:19:19ZTobias Bengforthttps://git.mpib-berlin.mpg.de/castellum/castellum/-/tags/0.89.10.89.1<ul data-sourcepos="1:1-1:45" dir="auto">
<li data-sourcepos="1:1-1:45">Add missing timezone data to docker image</li>
</ul>2023-04-18T15:53:40ZTobias Bengforthttps://git.mpib-berlin.mpg.de/castellum/castellum/-/tags/0.89.00.89.0<h2 data-sourcepos="1:1-1:19" dir="auto">
<a id="user-content-breaking-changes" class="anchor" href="#breaking-changes" aria-hidden="true"></a>breaking changes</h2>
<ul data-sourcepos="3:1-11:0" dir="auto">
<li data-sourcepos="3:1-5:36">Django was updated to 4.2. This also means that the minimal
supported version of Python is now 3.8 and the minimal supported
version of PostgreSQL is now 12.</li>
<li data-sourcepos="6:1-9:29">The "waiting for consent" maintenance view has been removed. It was
supposed to help find subjects that have neither given nor denied
recruitment consent. This is not actually an issue so there is no
reason to have that view.</li>
<li data-sourcepos="10:1-11:0">Header and messages are no longer included when printing a page.</li>
</ul>
<h2 data-sourcepos="12:1-12:15" dir="auto">
<a id="user-content-new-features" class="anchor" href="#new-features" aria-hidden="true"></a>new features</h2>
<ul data-sourcepos="14:1-17:0" dir="auto">
<li data-sourcepos="14:1-17:0">The reception tile on the start page as well as the "Receptionist"
user group that had been removed in 0.80.0 have been restored with
minor changes.</li>
</ul>2023-04-18T15:11:12ZTobias Bengforthttps://git.mpib-berlin.mpg.de/castellum/castellum/-/tags/0.88.10.88.1<h2 data-sourcepos="1:1-1:12" dir="auto">
<a id="user-content-bug-fixes" class="anchor" href="#bug-fixes" aria-hidden="true"></a>bug fixes</h2>
<ul data-sourcepos="3:1-7:0" dir="auto">
<li data-sourcepos="3:1-4:49">Use correct encoding when using <code>X-Sendfile</code> if the filesystem uses
a different encoding then the system default.</li>
<li data-sourcepos="5:1-5:69">Fix some unstyled components when using <code>BOOTSTRAP_THEME_COLORS</code>.</li>
<li data-sourcepos="6:1-7:0">Properly close JSON Schema files after parsing them.</li>
</ul>2023-03-28T15:51:24ZTobias Bengforthttps://git.mpib-berlin.mpg.de/castellum/castellum/-/tags/0.88.00.88.0<h2 data-sourcepos="1:1-1:19" dir="auto">
<a id="user-content-breaking-changes" class="anchor" href="#breaking-changes" aria-hidden="true"></a>breaking changes</h2>
<ul data-sourcepos="3:1-5:0" dir="auto">
<li data-sourcepos="3:1-5:0">the default <code>STATIC_ROOT</code> has been changed from
<code>castellum/collected_static/</code> to <code>static/</code>
</li>
</ul>
<h2 data-sourcepos="6:1-6:13" dir="auto">
<a id="user-content-ui-changes" class="anchor" href="#ui-changes" aria-hidden="true"></a>UI changes</h2>
<ul data-sourcepos="8:1-16:0" dir="auto">
<li data-sourcepos="8:1-9:41">The study form has been restructured to explicitly show which fields
are meant to be shared with subjects.</li>
<li data-sourcepos="10:1-16:0">After a subject has been created, there is a grace period in which
we assume that they have been contacted for recruitment consent.
During this grace period the recruitment consent acts as a legal
basis, even though it doesn't exist yet. The subject detail UI no
longer lists recruitment consent as an available legal basis in that
case.</li>
</ul>2023-03-07T14:30:56ZBengforthttps://git.mpib-berlin.mpg.de/castellum/castellum/-/tags/0.87.00.87.0<h2 data-sourcepos="1:1-1:19" dir="auto">
<a id="user-content-breaking-changes" class="anchor" href="#breaking-changes" aria-hidden="true"></a>breaking changes</h2>
<ul data-sourcepos="3:1-4:0" dir="auto">
<li data-sourcepos="3:1-4:0">Entering a Principal investigator for a study is now optional.</li>
</ul>
<h2 data-sourcepos="5:1-5:15" dir="auto">
<a id="user-content-new-features" class="anchor" href="#new-features" aria-hidden="true"></a>new features</h2>
<ul data-sourcepos="7:1-12:0" dir="auto">
<li data-sourcepos="7:1-8:45">Allow to hide study metadata fields via the
<code>CASTELLUM_ENABLE_STUDY_METADATA</code> setting</li>
<li data-sourcepos="9:1-9:36">Allow to enter a URL for studies</li>
<li data-sourcepos="10:1-12:0">The help text for study names has been rephrased to highlight which
kind of name is expected.</li>
</ul>2023-04-12T12:54:56ZTobias Bengforthttps://git.mpib-berlin.mpg.de/castellum/castellum/-/tags/0.86.10.86.1<ul data-sourcepos="1:1-5:0" dir="auto">
<li data-sourcepos="1:1-2:37">Fix downloading uploaded files with non-ASCII characters in the
filename when using <code>X-Sendfile</code>.</li>
<li data-sourcepos="3:1-5:0">No longer pass through the <code>X-Sendfile</code> header with the default
uwsgi configuration.</li>
</ul>2023-02-06T20:27:22ZTobias Bengfort