SODAR Changelog
Changelog for the SODAR project. Loosely follows the Keep a Changelog guidelines.
Unreleased
Added
- General
Python v3.12 and v3.13 support (#2334)
django-axessupport for login security (#1976, #2334)app_landingzones_transfer.rstlanding zone file deletion note (#2478)
- Samplesheets
Vue3 app (#994, #2389, #2390, #2403, #2457, #2458)
Vite integration using
django-vite(#994)use_vue3_appapp setting (#994)
Changed
- General
Upgrade to Django v5.2.13 (#2317, #2334)
Upgrade to django-sodar-core v1.3.2 (#2317, #2334, #2358)
Upgrade to python-irodsclient v3.3.0 (#2253, #2471)
Upgrade to django-rest-knox v5.0 (#2334)
Upgrade to irods-docker v4.3.4-2 in CI (#2472)
Upgrade to Sentry Javascript SDK v10.27 (#2357)
Upgrade general Python dependencies (#2317, #2334)
Upgrade to Node.js v24 (#2444)
Upgrade Docker build Javascript dependencies (#2355, #2357)
Upgrade Docker build for Python v3.13 (#2397)
Upgrade GitHub Actions in CI (#2443)
Use
zoneinfoinstead ofpytz(#2334)Use
SODARUserAdminasUsermodel admin (#2334)Update base test classes (#2334)
Update
AppAlertandTimelineEventtest assertions for common helpers (#2334)Rename
api_projectroles.rsttoapi_sodar_core.rst(#2334)Reorganize
Makefile(#2398, #2435)Replace black and flake8 with ruff for linting and formatting (#2428)
Reformat Python code with ruff (#2428)
Update CI ordering of code checks and tests (#2434)
- Landingzones
Update
resetzoneandverifyzonearg help texts (#2368)
- Samplesheets
Upgrade critical Vue app dependencies (#2317)
Rename
SheetEditConfigUpdateAjaxView(#2469)Rename
StudyDisplayConfigUpdateAjaxView(#2469)
Fixed
- General
Makefilemissingdefaulttarget (#2398)
- Landingzones
Unsupported
assayfield choice setup inLandingZoneForm(#2376)
- Samplesheets
HPO term copying fails with
SHEETS_ONTOLOGY_URL_TEMPLATEset (#2386)Vue2 app ontology edit modal search input disabling (#2454)
Removed
- General
Python v3.9 and v3.10 support (#2334)
Makefiledemotarget (#2435)Black and flake8 dependencies (#2428)
Legacy flake8 and pycodestyle configuration (#2428)
v1.2.9 (2026-04-29)
Changed
- General
Upgrade to Django v4.2.30 (#2462)
Upgrade to lxml v6.1.0 (#2462)
Upgrade critical Vue app dependencies (#2462)
Update IGV omit pattern documentation for pattern matching (#2464)
Fixed
- Samplesheets
Vue app ontology edit modal search input disabling (from v1.3.0-WIP) (#2454)
IrodsAccessTicketobjects deleted on sheet replace (#2460)Study app
check_igv_file_path()partial path matching (#2464)Germline study app redundant
get_pedigree_file_path()calls (#2465)
v1.2.8 (2026-03-19)
Added
- Samplesheets
Germline IGV session VCF file cache search by family ID (#2439)
Changed
- Samplesheets
Reduce germline
IGVSessionFileRenderViewiRODS queries (#2440)
Fixed
- Samplesheets
Germline IGV session VCF file cache search by source name (#2442)
v1.2.7 (2026-03-19)
Added
- Samplesheets
SODAR cache support in germline study app
IGVSessionFileRenderView(#1524)Germline study app
get_pedigree_file_path()obj_listarg (#1525)
Changed
- Samplesheets
Upgrade critical Vue app dependencies (#2436)
Fixed
- Samplesheets
Germline study app
IGVSessionFileRenderViewredundant queries (#1525)
v1.2.6 (2026-03-13)
Changed
- General
Upgrade to Django v4.2.29 (#2417)
Upgrade to Selenium v4.36.0 (#2417)
Upgrade to Werkzeug v3.1.6 (#2417)
Upgrade critical Vue app dependencies (#2417)
Fixed
- Landingzones
Zone status change ignoring project member notify settings (#2416)
- Samplesheets
IrodsDirModaldata request button icon alignment (#1829)ColumnToggleModalincorrect save button size (from v1.3.0) (#2379, #2427)SheetTableHeaderinfo button icon alignment (#2427)
v1.2.5 (2026-01-29)
Added
- General
.vitein.gitignore(#2383)
Changed
- Irodsbackend
Refactor
get_objs_recursively()(#2381)
Fixed
- Irodsbackend
get_objs_recursively()returns SHA256 checksums as base64 (#2380)
- Ontologyaccess
owl_to_obo()logging for URL access (#2378)
v1.2.4 (2026-01-16)
Changed
- General
Upgrade to Werkzeug v3.1.5 (#2372)
- Samplesheets
Upgrade critical Vue app dependencies (#2373)
- Taskflowbackend
Unnecessary landing zone status info truncating for flow exceptions (#2365)
Fixed
- Samplesheets
Uncaught exceptions if
SHEETS_SYNC_ENABLE==False(#2371)Missing study and assay UUIDs in
Overview.vue(#2366)Duplicate
sodar-ss-table-detail-containerattribute IDs (#2374)
v1.2.3 (2025-12-05)
Changed
- General
Upgrade to django-sodar-core v1.2.5 (#2361)
Upgrade to Django v4.2.27 (#2361)
Upgrade to Werkzeug v3.1.4 (#2361)
- Samplesheets
Upgrade critical Vue app dependencies (#2361)
Fixed
- Landingzones
Superuser user settings view crash from missing
zone_file_lst_collsdescription (#2360)
v1.2.2 (2025-11-26)
Added
- General
CI documentation building check (#2347)
SENTRY_TRACES_SAMPLE_RATEandSENTRY_ENVIRONMENTDjango settings (#2351)
Changed
- General
Update Sentry and GlitchTip support (#2351)
Fixed
- Taskflowbackend
landing_zone_verifyflow failure updates status of moved zone (#2346)MOVEDzone status updated inTaskflowAPIexception handling (#2346)
Removed
- General
wheeldependency (#2350)
v1.2.1 (2025-11-21)
Added
- Landingzones
zone_move_verify_sitesite app setting (#2338)Zone move verification override with site app setting (#2338)
Changed
- General
Upgrade to Django v4.2.26 (#2336)
Update REST API examples in documentation (#2342)
- Samplesheets
Upgrade critical Vue app dependencies (#2336)
Fixed
- Landingzones
LandingZone.coll_creationpopulated with invalid value (#2339)Zone reset Celery task check failing (#2341)
Removed
- General
django-auth-knoxURL routes (#2335)
v1.2.0 (2025-10-22)
Added
- General
pyproject.tomlconfiguration file (#2187)Type hints (#2196, #2255)
- Irodsadmin
irodsorphanscommand optional project limiting (#2283)
- Irodsbackend
setPeriodicStatsUpdate()in JQuery (#2243)get_stats()include_checksumarg (#2293)
- Landingzones
Project viewer role support (#2200)
notify_alert_zone_statususer app setting (#2205)ZoneSettingsRetrieveAPIViewREST API view (#2174, #2294)Periodic celery task setup logging (#2275)
zone_file_list_collsuser app setting (#2284)File list modal collection display toggling (#2284, #2300, #2324)
zone_access_restrictproject app setting (#2199)Landing zone contributor access restricting (#2199)
ZoneIrodsFileListAPIViewREST API view (#2291)Zone file list modal UI tests (#2169)
LANDINGZONES_ZONE_MOVE_VERIFYDjango setting (#2309)SubmitZoneVerifyFlowTasktaskflow task (#2309)LandingZone.coll_creationfield (#1534, #2325, #2330)Administrator landing zone state resetting (#1534)
resetzonemanagement command (#1534, #2328)verifyzonemanagement command (#2326)sodar_uuidfield in zone creation timeline event extra data (#2329)
- Samplesheets
Project viewer role support (#2200)
Category statistics for sample count and iRODS statistics (#2213)
Project iRODS stats caching (#2213)
ProjectAppPlugin.update_irods_stats_cache()helper (#2213)notify_alert_irods_requestuser app setting (#2205)UpdateProjectSheetCacheTaskTaskflow task (#2254)ProjectIrodsFileListAPIViewinclude_collsparameter (#2256, #2292)checksampleaccesscommand debug logging (#2261)syncstudytablescheckarg (#1794)SheetContextAjaxViewassay details and comments (#1827)TableDetailModalVue app component for displaying study and assay details (#1827, #2265, #2303)SheetContextAjaxViewadditional study details (#2265)TableDetailListandTableDetailListRowVue app components (#2011, #2268, #2303)Assay details in sheet overview (#2011)
SHEETS_SYNC_ENABLEDjango setting (#2247)Periodic celery task setup logging (#2247)
Disabled iRODS data request batch selection checkbox tooltips (#2295)
perform_project_sync()iRODS ticket updating (#2133)
- Taskflowbackend
Project viewer role support (#2200)
userarg forTaskflowAPI.submit()(#2157)constantsmodule for common constants (#2225)TaskflowUITestBasebase test class (#2168)landing_zone_deletetimeline event extra data file list (#2307)landing_zone_verifyflow (#2309)set_icat_checksum()test helper (#2309)BatchVerifySampleChecksumsTaskiRODS task (#2309)landing_zone_resetflow (#1534)
Changed
- General
Upgrade to Django v4.2.25 (#2232)
Upgrade to django-sodar-core v1.2.4 (#2187, #2232, #2245)
Upgrade to Nodejs v22 (#2229)
Upgrade supported develoment and CI platform to Ubuntu v24.04 (#2067)
Upgrade general Python depedencies (#2187, #2232, #2310)
Upgrade to irods-docker v4.3.4-1 in CI (#2276)
Upgrade minimum supported iRODS version to v4.3.4 (#2276)
Refactor plugin helpers to use
PluginAPI(#2187)Move black configuration to
pyproject.toml(#2187)Reformat migrations (#2187)
Reformat JQuery (#2187, #2287)
Update format strings (#2197)
Refactor iRODS path handling (#2218)
Update
test.pysettings hardcoding (#2281)Use
headless=newmode in UI tests (#2305)Pin redis CI dependency to v8.x (#2310)
Unify app alert message formatting (#2318)
- Irodsadmin
Refactor
irodsorphanscommand (#2207, #2246)Refactor
irodsorphanstests (#2279)
- Irodsbackend
Update app for
public_accesssupport (#2202)
- Landingzones
Update views for project access blocking support (#2233)
Hide project list zone column content for guest roles and below (#2200)
Update app for
public_accesssupport (#2202)Upgrade landingzones REST API version to v1.1 (#2174)
Move project sheet cache update to
UpdateProjectSheetCacheTask(#2254)Upgrade Sample Sheets REST API version to v1.2 (#2256)
Refactor server side variables for JQuery (#2286)
Refactor rules (#2199)
Disable vertical centering for zone file list modal (#2298)
Update zone creation form collection creation UI (#2325)
Skip
TriggerZoneMoveTaskexecution if active jobs for task exist (#2323)
- Samplesheets
Update views for project access blocking support (#2233)
Update app for
public_accesssupport (#2202)Refactor
ProjectAppPlugin.update_cache()(#2213)Upgrade critical Vue app dependencies (#2232)
Refactor
SheetContextAjaxView(#2262)Update overview study detail displaying to reuse
TableDetailList(#2268)Improve table details metadata displaying (#2012)
Improve sheet overview layout (#2012, #2013)
Hide assay row links if no plugin enabled (#1454)
Hide project form sheet sync settings with
SHEETS_SYNC_ENABLEunset (#2247)Set
IRODS_WEBDAV_IGV_PROXYdefault toFalse(#2289)Disable study title and header name reformatting (#1776)
Optimize magic number generation for cell width estimation (#1284)
Refactor
IrodsDataRequestUI creation and update (#1865)Refactor
IrodsAccessTicketUI creation and update (#2306)Improve cache update debug logging (#1501)
- Taskflowbackend
Update iRODS ACL handling for v4.3+ scheme (#2215)
Grant
delete_objectaccess instead ofownfor landing zone owner (#2215)Move iRODS constants to
constants(#2215, #2258)Refactor iRODS ACL constant use (#2225)
Remove redundant
landing_zone_moveadmin access setting task (#2257)Remove
landing_zone_moveaccess cleanup (#2260)Refactor
TaskflowProjectTestMixinto not requirelogin()(#2167)Refactor task tests (#2226)
Update batch checksum tasks to support sample data verification (#2309)
Update “flow finished” log message to include flow name (#2314)
Fixed
- General
Local settings used for
geticonsandcollectstaticin CI (#2251)metadata_advanced.rstreferences broken in docs (#2274)
- Irodsadmin
Redundant queries for category iRODS paths in
irodsorphans(#2280)Nested paths set by assay plugin reported as orphaned (#2207)
- Landingzones
Missing investigation setup in certain
TestProjectZoneViewtests (#2290)Missing
HTTPRefererMixininheritance in views (#206)
- Samplesheets
Details card iRODS stats badge fails with guest role (#2243, #2271)
Sheet Operations dropdown disabled for guest user (#2244)
Assay table title row content wrapping (#2267)
Vue app modal close button alignment (#2304)
Missing
HTTPRefererMixininheritance in views (#206)Redundant
AppSettingobject deletion in_update_public_access()(#2308)update_assay_shortcut_cache()returnsTruefor empty collections (#1501)get_irods_content()enables iRODS link withfile_count==0(#2321)
- Taskflowbackend
Incorrect user in landing zone move sheet cache update timeline event (#2152)
BatchCalculateChecksumTaskforcekwarg not working (#2311)
Removed
- General
django-cprofile-middleware dependency (#2249)
local.txtdependencies from CI (#2250)Legacy
local_extra.txtdependency file (#2252)Legacy
ENABLE_IRODSDjango setting (#2100)
- Landingzones
zone_access_cleanupsite app setting (#2260)
- Samplesheets
ListRowVue app component (#2273)
- Taskflowbackend
Legacy iRODS ACL value support (#2225)
CleanupAccessTaskiRODS task (#2260)
v1.1.4 (2025-08-12)
Added
- General
CELERY_LOGLEVELenv var indocker-entrypoint.sh(#2234)
- Landingzones
zone_access_cleanupsite app setting (#2235)
Changed
- Samplesheets
Upgrade critical Vue app dependencies (#2237)
- Taskflowbackend
Make
landing_zone_moveaccess cleanup optional (#2235)
Fixed
- Samplesheets
IrodsDirModalfiltering not case insensitive (#2236)IrodsDirModalfiltering not working with full subpath (#2239)
v1.1.3 (2025-07-16)
Added
- Irodsadmin
checksampleaccessmanagement command (#2216)
- Taskflowbackend
CleanupAccessTaskiRODS task (#2217)
Changed
- General
Upgrade Docker image to
python:3.11-bookworm(#2220)Upgrade to python-irodsclient v3.1.1 (#2219)
Fixed
- General
Docker build failing due to outdated release links (#2220)
- Taskflowbackend
Potential unwanted user access not unset in
landing_zone_move(#2217)
v1.1.2 (2025-06-18)
Added
- Samplesheets
save_cachearg inSampleSheetTableBuilder.get_study_tables()(#2190)
- Taskflowbackend
Percentages in zone progress counters (#2189, #2194, #2195)
Changed
- General
Upgrade to Django v4.2.23 (#2184)
Upgrade critical dependencies (#2184)
- Irodsadmin
Do not recreate cached tables in
irodsorphansmanagement command (#2191)
Fixed
- Samplesheets
Germline plugin cache update crash with missing row path from assay plugin (#2193)
- Taskflowbackend
Incorrect file count in
BatchMoveDataObjectsTaskprogress counter (#2186)Legacy landing zone move failing with missing iRODS owner group (#2192)
v1.1.1 (2025-05-28)
Added
- Landingzones
Zone creation and validation limit badges in zone list UI (#2173)
Django check for
LANDINGZONES_ZONE_VALIDATE_LIMIT(#2179)
- Taskflowbackend
landing_zone_movetimeline extra data in validate mode (#2172)
Changed
- Landingzones
Set
LANDINGZONES_ZONE_VALIDATE_LIMITdefault to1(#2179)Disallow setting
LANDINGZONES_ZONE_VALIDATE_LIMITtoNone(#2179)Update zone file list modal page refresh rendering (#2181)
Update
LANDINGZONES_FILE_LIST_PAGINATIONdefault value (#2177)Update zone file list modal pagination control rendering (#2182)
- Taskflowbackend
Update checksum calculation progress on initial file (#2171)
Refactor zone progress updating (#2178)
Fixed
- Taskflowbackend
Legacy project update failing with missing iRODS owner group (#2180)
Removed
- Landingzones
get_zone_create_limit()andget_zone_validate_limit()helpers (#2173)
v1.1.0 (2025-05-23)
Added
- General
drf-spectacular support (#2051)
PROJECTROLES_SUPPORT_CONTACTsetting support (#2095)viminstall in Docker build (#2113)IRODS_HASH_SCHEMEDjango setting (#2149)
- Irodsbackend
get_objects()checksum support (#2038)get_objects()offset support (#1997, #2159)get_group_name()owner/delegate group support (#2109)issue_ticket()allowed hosts support (#1439, #2141)IrodsAPI.update_ticket()method (#1439, #2141)get_stats()collection stats support (#2160)SHA256 checksum support (#2149)
- Landingzones
Site read-only mode support (#2051)
File type prohibiting by file name suffix (#2064)
file_name_prohibitapp setting (#2064)cleanup_file_prohibit()utility method (#2064)Missing project owner group creation on zone create (#1934)
Owner and delegate own access to all zones in project (#1934)
ZoneStatusInfoRetrieveAjaxViewAjax view (#1308)Full display of truncated zone status info (#1308)
ZoneIrodsListRetrieveAjaxViewAjax view (#1730)UI alert for locked project (#2146, #2151)
LANDINGZONES_ZONE_CREATE_LIMITDjango setting (#2148)Landing zone creation limit per project (#2148)
Landing zone validation limit per project (#2150)
LANDINGZONES_FILE_LIST_PAGINATIONDjango setting (#1881)ZoneIrodsListRetrieveAjaxViewpagination support (#1881)ZoneChecksumStatusRetrieveAjaxViewAjax view (#1881)Landing zone file list modal pagination (#1881)
SHA256 checksum support (#2149)
- Samplesheets
Site read-only mode support (#2051)
checksumfield inProjectIrodsFileListAPIViewreturn data (#2039)ProjectIrodsFileListAPIViewpagination (#1996)ProjectIrodsFileListAPIViewpermission tests (#2104)SHEETS_PARSER_WARNING_SAVE_LIMITDjango setting (#2120)Database saving limit for AltamISA warnings (#2120)
iRODS access ticket allowed hosts support (#1439, #2143)
IrodsAccessTicket.allowed_hostsfield andget_allowed_hosts_list()helper (#1439)SHEETS_IRODS_TICKET_HOSTSDjango setting (#1439)SHA256 checksum support (#2149)
- Taskflowbackend
Project deletion support (#2051)
Zone validation and moving progress indicators (#2024)
TASKFLOW_ZONE_PROGRESS_INTERVALDjango setting (#2024)BatchCheckFileSuffixTaskiRODS task (#2064)TimelineEventExtraDataUpdateTaskSODAR task (#2105)File list in
landing_zone_movetimeline event extra data (#1202, #2124)iRODS project owner/delegate group management (#2109)
TaskflowAPI.get_flow_role()helper (#1934)TaskflowAPI.is_locked()helper (#2048)Taskflowbackend REST API (#2048)
ProjectLockStatusAPIViewREST API view (#2048)SHA256 checksum support (#2149)
BatchCheckFileExistTasktests (#2149)
Changed
- General
Upgrade to django-sodar-core v1.1.6 (#2051, #2068, #2095, #2108, #2156)
Upgrade to python-irodsclient v3.1 (#2068, #2079, #2128)
Display SODAR Core version in footer example (#2101)
Upgrade to gunicorn v23 (#2068)
Upgrade critical Python dependencies (#2068)
Upgrade critical Vue app dependencies (#2068)
Upgrade to tooz v6.3 (#2048)
- Irodsbackend
Allow use of
include_md5andlimittogether inget_objs_recursively()(#1887)Rename
get_user_group_name()toget_group_name()(#2121)Only set
write-filevalue for write mode access tickets (#2134)Rename
date_expireskwarg inissue_ticket()(#2141)Rename
get_object_stats()toget_stats()(#2160)Raise encountered exceptions in
get_stats()(#2161)Update
IrodsAPITaskflow tests (#2162, #2163)
- Landingzones
Define app settings as
PluginAppSettingDefobjects (#2051)Do not mute zone title and description with busy zones (#2092)
Exclude inactive users from email sending and alert creation (#2114)
Display
status_infonewlines in UI (#1308)Change
LandingZone.status_infotoTextField(#1308)Prevent redundant refreshing of unchganged zone status (#2126)
Update zone list title column layout (#1852, #2127)
Update
ProjectZoneViewto display project zones in one table (#2129)Move irodsbackend dir list modal JQuery to
landingzones.js(#1730)Disable zone controls for locked project (#1512, #1850)
Display icons for zone list alerts (#2147)
- Samplesheets
Define app settings as
PluginAppSettingDefobjects (#2051)Return
500for iRODS query exceptions inProjectIrodsFileListAPIView(#2103)Exclude inactive users from email sending and alert creation (#2114)
Display disabled path field in iRODS access ticket update form (#2139)
Allow iRODS access ticket creation for data objects in UI (#2138)
- Taskflowbackend
Enable no role for old owner in
perform_owner_transfer()(#2051)Rename
BatchCheckFileTasktoBatchCheckFileExistTask(#2064)Move
landing_zone_movefile check tasks before checksum computing (#2099)Update path argument naming in iRODS tasks (#2093)
Add missing
super().execute()call inBatchCheckFileExistTask(#2097)Rename
get_batch_role()toget_flow_role()(#2109)Refactor
role_updateflow usage (#2117)Newline separators in landing zone exception messages (#1308)
Do not create timeline events for flows failed by locked project (#1970)
Collect all failed checksums in
BatchValidateChecksumsTask(#1073)Move
lock_project()test helper inProjectLockMixin(#2146)Disable project locking if
validate_onlyis set (#1850)Update test helpers to support SHA256 checksums (#2149)
Fixed
- General
LegacyKeyValueFormatwarnings in Docker build (#2089)
- Irodsbackend
get_objects()limitarg not working correctly withinclude_colls(#2159)
- Landingzones
Zone delete timeline status not updated with missing collection (#2096)
Sample Sheets link not displayed in UI after zone move (#2106)
LandingZone.set_status()not enforcing database refresh (#2175)
- Samplesheets
iRODS access ticket expiry date not updated on ticket update (#2140)
- Taskflowbackend
Checksum calculation failing silently if maximum retries reached (#2131)
Checksum calculation retry done for all exception types (#2132)
Invalid logger names in multiple modules (#2155)
Removed
- General
DRF generateschema support (#2051)
SODAR_SUPPORT_EMAILandSODAR_SUPPORT_EMAILsettings (#2095)Migrations squashed in v1.0 (#2052)
- Irodsbackend
IrodsObjectListAjaxViewAjax view (#1730)iRODS dir modal javascript (#1730)
- Landingzones
get_zone_list_url()template tag (#1730)
- Samplesheets
Legacy iRODS test files (#2102)
edit_config_min_roleapp setting (#2110)
- Taskflowbackend
Unused
role_deleteflow (#2115)Unused
role_updateflow (#2117)
v1.0.1 (2025-03-12)
Changed
- General
Upgrade to Django v4.2.20 (#2081)
Upgrade to django-sodar-core v1.0.6 (#2081)
Upgrade critical Python dependencies (#2081)
Upgrade GitHub Actions CI runner to Ubuntu v22.04 (#2067)
Fixed
- Landingzones
Project details card status column width (#2083)
v1.0.0 (2025-03-03)
Added
- General
Python v3.11 support (#1922, #1978)
SESSION_COOKIE_AGEandSESSION_EXPIRE_AT_BROWSER_CLOSEDjango settings (#2015)Administrator upgrade guide in documentation (#2047)
- Irodsbackend
Token auth support in
BasicAuthView(#1999)Django checks for enabled authentication methods (#1999)
api_formatarg inget_objects()andget_objs_recursively()(#2045)REST API compatible date format support in
get_objects()(#2045)
- Irodsinfo
Alert on token usage for OIDC users (#1999)
- Landingzones
REST API list view pagination (#1994)
notify_email_zone_statususer app setting (#1939)Tests for taskflow tasks (#1916)
- Samplesheets
REST API list view pagination (#1994)
notify_email_irods_requestuser app setting (#1939)Assay app unit tests (#1980)
Missing assay plugin
__init__.pyfiles (#2014)Study plugin override via ISA-Tab comments (#1885)
Token auth support in study plugin IGV XML serving views (#1999, #2021)
Support for newlines in altamISA error messages (#2033)
Support for comment, performer and contact field values as list (#1789, #2033)
Support for numeric field values as list (#1789, #2033)
SHEETS_API_FILE_EXISTS_RESTRICTDjango setting (#2078)
- Taskflowbackend
TaskflowAPI.raise_submit_api_exception()helper (#1847)UTF-8 BOM header support for MD5 files (#1818)
Changed
- General
Upgrade to django-sodar-core v1.0.5 (#1922, #1959)
Upgrade to Postgres v16 (#1922)
Upgrade Python and Vue app dependencies (#1922, #1959)
Unify base test class naming (#2001)
Update
Dockerfilefor v1.0 upgrades (#2003, #2004)Upgrade to iRODS v4.3.3 in CI (#1815)
Upgrade to python-irodsclient v2.2.0 (#2007, #2023)
Upgrade to altamisa v0.3.0 (#2033)
Upgrade minimum supported iRODS version to v4.3.3 (#1815, #2007)
Use constants for timeline event status types (#2010)
Squash migrations (#1967)
Upgrade to
coverallsapp/github-action@v2in CI (#2069)
- Irodsbackend
Rename
LocalAuthAPIViewtoBasicAuthView(#1999)Change
BasicAuthViewrequest toGET(#1999)Add API token info for OIDC users in
create_irods_user()(#2077)
- Irodsinfo
Update REST API versioning (#1936)
Return iRODS environment as JSON file if client-side cert not set (#2044)
Link to
data_transfer_irodsin template (#2073)
- Landingzones
Update REST API versioning (#1936)
Update REST API views for OpenAPI compatibility (#1951)
Return
503inZoneSubmitMoveAPIViewif project is locked (#1847)Return
503inZoneCreateAPIViewif no investigation or iRODS collections (#2036)Replace REST API
SODARUserSerializerfields with UUIDSlugRelatedField(#2057)
- Samplesheets
Update REST API versioning (#1936)
Update REST API views for OpenAPI compatibility (#1951)
Send iRODS delete request emails to all addresses of user (#2000)
Disable ontology term select box while querying (#1974)
Refactor
SampleSheetAssayPluginPoint.get_assay_path()(#2016)Return
503inIrodsCollsCreateAPIViewif project is locked (#1847)Return
503inIrodsDataRequestAcceptAPIViewif project is locked (#1847)Return
ProjectIrodsFileListAPIViewresults as list withoutirods_dataobject (#2040)Remove length limitation from
Process.performer(#1789, #1942, #2033)Replace REST API
SODARUserSerializerfields with UUIDSlugRelatedField(#2057)Enable
SampleDataFileExistsAPIViewaccess restriction to guests and above (#2078)
- Taskflowbackend
Refactor task tests (#2002)
Unify user name parameter naming in flows (#1653)
Refactor
landing_zone_moveflow (#1846)Move
lock_project()intoTaskflowTestMixin(#1847)Make MD5 checksum comparison case insensitive (#2032)
Improve
BatchValidateChecksumsTaskerror display on empty MD5 value in file (#2050)
Fixed
- Irodsbackend
iRODS file list modal content overflow with long file paths (#2056)
- Landingzones
Timeline link active for
DELETEDandNOT_CREATEDzones (#2005)Create Zone button visible with iRODS collections not created (#2066)
ZoneCreateViewaccess with iRODS collections not created (#2066)
- Samplesheets
Timeline event status not updated in
SheetDeleteVieWwith iRODS collections enabled (#1798)Assay plugin
update_row()setting links for empty file names (#2017)Sporadic test failure in
TestIrodsAccessTicketCreateView(#2026)IrodsDataRequestModifyMixin.accept_request()always sets OK status for timeline event (#2027, #2060)Accepting previously rejected iRODS data requests allowed (#2058)
- Taskflowbackend
BatchValidateChecksumsTaskfile opening handling (#2049)
Removed
- General
Python v3.8 support (#1922)
Postgres <v12 support (#1922)
iRODS <v4.3 support (#1815, #2007)
- Irodsbackend
get_access_lookup()helper (#2009)
- Taskflowbackend
iRODS <v4.3 ACL support (#2009)
v0.15.1 (2024-09-12)
Changed
- Samplesheets
Upgrade Vue app dependencies (#1986)
Fixed
- Landingzones
Invalid CSS classes set by zone status update (#1995)
- Samplesheets
genericassay plugin inline links pointing toResultsReports(#1982)genericassay plugin cache update crash with row path built from ontology column (#1984)
v0.15.0 (2024-08-08)
Added
- General
Cyberduck documentation (#1931)
- Isatemplates
isatemplatesapp for custom ISA-Tab template management (#1961)isatemplates_backendplugin for template retrieval (#1961)
- Samplesheets
template_output_dir_displayuser setting (#1960)Display BAM/CRAM/VCF omit patterns in study shortcut modal (#1963)
Row links display override using assay comment (#1968)
genericassay app plugin (#1946)
- Taskflowbackend
BatchCalculateChecksumTaskretrying in case of timeouts (#1941)
Changed
- General
Upgrade critical Python dependencies (#1930)
Upgrade to black v24.3.0 (#1930)
Reformat with black (#1930)
- Irodsbackend
Remove Bootstrap tooltips from iRODS buttons (#1949)
- Landingzones
Remove Bootstrap tooltip updating for iRODS buttons (#1949)
- Samplesheets
Upgrade Vue app dependencies (#1930, #1971, #1972)
Sanitize iRODS paths in
get_row_path()calls (#1947)indexarg inSampleSheetAssayPluginPoint.update_row()(#1957)Hide template output dir field by default (#1960)
Improve
StudyLinksAjaxViewreturn data (#1963, #1966)Optimize
irodsbackendAPI retrieval inplugins(#1952)
- Taskflowbackend
Increase default for
TASKFLOW_IRODS_CONN_TIMEOUT(#1900)Disable lock requirement for role and project update flows (#1948)
Fixed
- General
README.rstbadge rendering (#1938)
- Landingzones
Bootstrap tooltips preventing zone button clicking with certain conditions (#1949)
Zone with
NOT CREATEDstatus displayed as active in project list (#1962)
- Samplesheets
Invalid assay measurement type in
i_minimal*test data (#1954)Error message handling in
StudyShortcutModal(#1965)Overwrite warning displayed in
OntologyEditModalwith empty initial value (#1973)ColumnToggleModal“toggle all” button misaligned with filtering enabled (#1975)
- Taskflowbackend
Malformed exception message in
BatchValidateChecksumsTask(#1943)Exceeded zone status info char limit in
_raise_flow_exception()(#1953)Uncaught exception in
BatchCreateCollectionsTask(#1958)
v0.14.2 (2024-03-15)
Added
- General
Django settings for reverse proxy setup (#1917)
- Irodsbackend
Sanitize and validate
IRODS_ROOT_PATHinget_root_path()(#1891)
- Landingzones
Create assay plugin shortcut collections for zones (#1869)
Zone statistics for siteinfo (#1898)
UI tests for project details card (#1902)
- Samplesheets
IrodsDataRequesttimeline event extra data (#1912)CRAM file support in study apps (#1908)
check_igv_file_suffix()helper instudyapps.utils(#1908)Path checking for IGV omit settings (#1923)
Glob pattern support for IGV omit settings (#1923)
- Taskflowbackend
Django settings in siteinfo (#1901)
BatchSetAccessTaskin iRODS tasks (#1905)IrodsAccessMixintask helper mixin (#1905)
Changed
- General
Upgrade to Django v3.2.25 (#1854)
Upgrade to django-sodar-core v0.13.4 (#1899)
Upgrade critical Vue app dependencies (#1854)
Upgrade to cubi-isa-templates v0.1.2 (#1854)
Update installation documentation (#1871)
- Irodsbackend
Reduce redundant object queries (#1883)
Change method logic in
get_objects()andget_objs_recursively()(#1883)Use
get_root_path()withinIrodsAPI(#1890)Refactor
IrodsStatisticsAjaxViewand related JQuery (#1903)
- Samplesheets
Improve Django messages for
IrodsDataRequestexceptions (#1858)Change
IrodsDataRequestdescription if created in Ajax view (#1862)Refactor
IrodsDataRequestModifyMixintimeline helpers (#1913)Rename
get_igv_omit_override()toget_igv_omit_list()(#1924)Rename
check_igv_file_name()tocheck_igv_file_path()(#1923)Named process pooling and renaming in sheet editor (#1904)
- Taskflowbackend
Optimize
landing_zone_moveiRODS path retrieval (#1882)Set zone status on uncaught errors in
run_flow()(#1458)Change
TASKFLOW_IRODS_CONN_TIMEOUTdefault value to960(#1900)
Fixed
- General
Invalid env var retrieval for
AUTH_LDAP*_START_TLS(#1853)
- Irodsbackend
Invalid path returned by
get_path()ifIRODS_ROOT_PATHis set (#1889)Stats badge stuck in updating with non-200 POST status (#1327, #1886)
- Landingzones
Stats badge displayed to superusers for
DELETEDzones (#1866)Zone status updating not working in project details card (#1902)
Modifying finished lock status allowed in
SetLandingZoneStatusTask(#1909)
- Samplesheets
Invalid WebDAV URLs generated in
IrodsDataRequestListView(#1860)Superuser not allowed to edit iRODS request from other users in UI (#1863)
IrodsDataRequestuser changed on object update (#1864)IrodsDataRequest._validate_action()failing withdeleteaction (#1858)Protocol ref editable for new row if disabled in column config (#1875)
Sheet template creation failure with slash characters in title/ID fields (#1896)
get_pedigree_file_path()used in cancer study app tests (#1914)IGV omit settings not correctly set on project creation (#1925)
Germline study cache build crash with no family column (#1921)
Source name editing failing in assay table after row insert (#1928)
- Taskflowbackend
Hardcoded iRODS path length in
landing_zone_move(#1888)Uncaught exceptions in
SetAccessTask(#1906)Crash in
landing_zone_createwith large amount of collections (#1905)Finished landing zone status modified by lock exception (#1909)
Removed
- General
LDAP settings
OPT_X_TLS_REQUIRE_CERTworkaround (#1853)
- Taskflowbackend
get_subcoll_obj_paths()andget_subcoll_paths()helpers (#1882)
v0.14.1 (2023-12-12)
Added
- Irodsbackend
get_version()helper (#1592, #1817, #1831)get_access_lookup()helper (#1832)
- Irodsinfo
iRODS v4.3 auth scheme support in client environment (#1834)
- Samplesheets
Custom validation for
sheet_sync_urlandsheet_sync_token(#1310, #1384)hpo.jax.orginSHEETS_ONTOLOGY_URL_SKIP(#1821)Missing Django settings in siteinfo (#1830)
- Taskflowbackend
iRODS v4.3 support (#1592, #1817, #1832)
BatchCalculateChecksumTaskexception logging (#1843)
Changed
- General
Upgrade to Django v3.2.23 (#1811)
Upgrade to django-sodar-core v0.13.3 (#1810)
- Irodsbackend
iRODS collection modal copy button icon (#1851)
- Landingzones
Disable locked zone controls in template for non-superusers (#1808)
Rename and refactor
disable_zone_ui()template tag (#1808)
- Samplesheets
Upgrade Vue app dependencies (#1811)
Change default IGV genome to
b37_1kg(#1812)Update existing
b37IGV genome settings with a migration (#1812)
- Taskflowbackend
Improve
landing_zone_movezone status info messages for validation (#1840)
Fixed
- General
Add workaround for
AUTH_LDAP_CONNECTION_OPTIONSduplication (#1853)
- Irodsbackend
Opening redundant iRODS connection in server version retrieval (#1831)
- Landingzones
No wait for async
CurrentUserRetrieveAPIViewcall result (#1732, #1807)BaseLandingZoneStatusTask.set_status()failure with concurrent sheet replacing (#1839)
- Samplesheets
ColumnToggleModalstudy checkbox states rendered under assay (#1848)ColumnToggleModalgroup toggle not updating checkboxes in UI (#1849)
- Taskflowbackend
project_createtimeline event user reference (bihealth/sodar_core#1301, #1819)Incorrect write access messages in
landing_zone_movewhen validating only (#1845)
Removed
- Taskflowbackend
Duplicate
SetAccessTasktests (#1833)
v0.14.0 (2023-09-27)
Added
- General
Release cleanup issue template (#1797)
LDAP settings for TLS and user filter (#1803)
- Irodsbackend
get_trash_path()helper (#1658)iRODS trash statistics for siteinfo (#1658)
- Irodsinfo
IrodsEnvRetrieveAPIViewfor retrieving iRODS environment (#1685)
- Landingzones
Landing zone updating (#1267)
“Nothing to do” check for landing zone validation and moving (#339)
iRODS path clipboard copying button in iRODS collection list modal (#1282)
constantsmodule for zone constants (#1398)Assay link from zone assay icon (#1747)
Missing permission tests (#1739)
- Samplesheets
User setting for study and assay table height (#1283)
Study table cache disabling (#1639)
SHEETS_ENABLE_STUDY_TABLE_CACHEsetting (#1639)cytofassay plugin (#1642)New ISA-Tab templates from
cubi-isa-templates(#1697, #1757)General iRODS access ticket management for assay collections (#804, #1717)
Disabled row delete button tooltips (#1731)
IrodsDataRequestREST API views (#1588, #1706, #1734, #1735, #1736)Davrods links in iRODS delete request list (#1339)
Batch accepting and rejecting for iRODS delete requests (#1340, #1751)
Cookiecutter prompt support in sheet templates (#1726)
“Create” tag for sheet versions (#1296)
Template tag tests (#1723)
iRODS file count in sheet overview tab (#1295)
get_url()helpers forInvestigation,StudyandAssaymodels (#1748)normalizesheetsmanagement command for sheet cleanup (#1661)Boolean field support in sheet templates (#1757)
iRODS access ticket REST API views (#1707, #1800, #1801)
- Taskflowbackend
BatchCalculateChecksumTaskiRODS task (#1634)Automated generation of missing checksums in
landing_zone_move(#1634, #1767)Cleanup of trash collections in testing (#1658)
TaskflowPermissionTestBasebase test class (#1718)Taskflow session timeout management (#1768)
TASKFLOW_IRODS_CONN_TIMEOUTDjango setting (#1768)
Changed
- General
Upgrade to django-sodar-core v0.13.2 (#1617, #1720, #1775, #1792)
Upgrade to cubi-isa-templates v0.1.0 (#1757)
Upgrade to python-irodsclient v1.1.8 (#1538)
Upgrade Python dependencies (#1620)
Upgrade Vue app dependencies (#1620)
Upgrade to nodejs v18 (#1765, #1766)
Update deprecated Nodejs install method in Docker and dev (#1769)
Timeline event names and descriptions if called from syncmodifyapi (#1761)
Update tour help (#1583)
Enable setting
ADMINSvia environment variable (#1796)Update
ADMINSdefault value (#1796)
- Irodsadmin
Output
irodsorphansresults during execution (#1319)Order
irodsorphansresults by project (#1741)
- Landingzones
Move iRODS object helpers to
TaskflowTestMixin(#1699)Enable superuser landing zone controls for locked zones (#1607)
Add
DELETINGto locked states in UI (#1657)Query for landing zone status in batch (#1684, #1752)
Create expected collections if zone sync is called from syncmodifyapi (#1761)
Define and use zone status constants (#1398)
- Samplesheets
Sample sheet table viewport background color (#1692)
Contract sheet table height to fit content (#1693)
Hide internal fields from ISA-Tab templates (#1698, #1733)
Refactor
IrodsDataRequestmodel and tests (#1706)Update
get_sheets_url()helper to only handleProjectobjects (#1771)Display full path under assay for iRODS data requests in UI (#1749)
Return full path under assay from
IrodsDataRequest.get_short_path()(#1749)Make
requestoptional inSheetVersionMixin.save_version()
- Taskflowbackend
Move iRODS object helpers from
LandingZoneTaskflowMixin(#1699)Move iRODS test cleanup to
TaskflowTestMixin.clear_irods_test_data()(#1722)Refactor base test classes (#1722)
Fixed
- General
Local Chromedriver install failure (#1753, bihealth/sodar-core#1255)
- Ontologyaccess
Batch import tests failing from forbidden obolibrary access (#1694)
- Samplesheets
perform_project_sync()crash with no iRODS collections created (#1687)iRODS delete request modification UI view permission checks failing for non-creator contributors (#1737)
Investigation object ref broken in timeline
sheet_replaceevents (#1774)External links column width estimation crash in table rendering (#1787)
Comment field editing with semicolon in data (#1790)
Ontology URLs not encoded if passed as query string in wrapper template (#1762)
Removed
- Landingzones
Unused
data_tablesreferences from templates (#1710)get_zone_samples_url()template tag (#1748)
- Samplesheets
SHEETS_TABLE_HEIGHTDjango setting (#1283)Duplicate
IrodsAccessTicketMixinfromtest_views_ajax(#1703)IRODS_DATA_REQUEST_STATUS_CHOICESconstant (#1706)HIDDEN_SHEET_TEMPLATE_FIELDSconstant (#1733)sheet_export*timeline events (#1773)SHEETS_ENABLED_TEMPLATESDjango setting (#1756)tumor_normal_tripletsISA-Tab template (#1757)
v0.13.4 (2023-05-15)
Changed
- Samplesheets
Update ISA-Tab template dependency to
cubi-isa-templates(#1667)Allow assay tables with no materials after sample (#1676)
Fixed
- General
django-autocomplete-lightDocker build crash withwhitenoise(#1666)Chrome install script issues (#1677)
- Samplesheets
Multi-file upload not working (#1670)
Template create form allowing multiple ISA-Tabs per project (#1672)
v0.13.3 (2023-05-10)
Added
- Samplesheets
ProjectIrodsFileListAPIViewin REST API (#1619)SIMPLE_LINK_TEMPLATEhelper for simple link creation
Changed
- General
Upgrade to Django v3.2.19 (#1646, #1652)
Upgrade Vue app dependencies (#1646)
Update URL patterns to use path (#1631)
- Samplesheets
Refactor
meta_msto removeSPECIAL_FILE_LINK_HEADERSuse (#1641)Display study and assay plugin icons to contributors and above (#1354)
Fixed
- Samplesheets
Crash from
ClearableFileInputwith Django v3.2.19+ (#1652)
Removed
- General
Unused
sodar.usersviews and URLs (#1663)
- Samplesheets
SPECIAL_FILE_LINK_HEADERShack (#817, #1641)
v0.13.2 (2023-04-18)
Changed
- General
Upgrade Python dependencies (#1620)
Minor manual updates (#1622)
- Irodsbackend
Refactor
IrodsAPI._sanitize_coll_path()intosanitize_path()(#1632)Handle unwanted parent strings in iRODS paths (#1632)
- Samplesheets
Refactor iRODS access ticket tests
Fixed
- Landingzones
Zone list content with user access disabled not displayed for superuser (#1623)
Incorrect “saving version failed” message in
sheet_edit_finish(#1628)
- Samplesheets
Cell width estimation for simple links and contact columns (#1621)
Removed
- Landingzones
Unused
ProjectZoneViewcontext items (#1624)
v0.13.1 (2023-03-31)
Added
- General
API examples in manual (#1600)
- Landingzone
Save zone creation metadata as timeline event extra data (#1609)
Allow disabling landing zone operations from non-superusers (#1616)
LANDINGZONES_DISABLE_FOR_USERSsetting (#1616)
Changed
- General
Upgrade critical Python dependencies (#1604)
- Landingzones
Enable zone deletion if zone root collection is not found (#1606)
- Samplesheets
Upgrade Vue app dependencies (#1597, #1604)
Enable sheet deletion with data for delegates (#1605)
Fixed
- Samplesheets
Sheet version export crash with certain old projects (#1596)
Cancer app
get_shortcut_column()crash if library name not in cache (#1599)Assay plugin override ignored in
_update_cache_rows()(#1603, #1610)Inherited owners unable to delete sheets with data (#1605)
v0.13.0 (2023-02-08)
Added
- Irodsbackend
Create iRODS user accounts at login for users with LDAP/SODAR auth (#1315, #1587)
- Landingzones
Optional zone write access restriction to created collections (#1050, #1540)
Project archiving support (#1573)
UI warning for user without access for zone updating (#1581)
- Samplesheets
Mac keyboard shortcut support for multi-cell copying (#1531)
Study render table caching (#1509)
syncstudytablesmanagement command (#1509)get_last_material_index()helper (#1554)get_latest_file_path()helper (#1554)“Not found” element for iRODS modal filter (#1562)
Existing iRODS file check in material name editing (#1494)
Omit IGV session files by file name suffix (#1575, #1577)
SHEETS_IGV_OMIT_BAMandSHEETS_IGV_OMIT_VCFDjango settings (#1575, #1595)get_igv_omit_override()andcheck_igv_file_name()in study app utils (#1575, #1577)Project archiving support (#1572)
igv_omit_bam,igv_omit_vcfandigv_genomeproject settings (#1478, #1577)Project-wide genome selecting for IGV session generation (#1478)
Changed
- General
Upgrade to django-sodar-core v0.12.0 (#1567, #1576)
Use default Gunicorn worker class in production (#1536)
Upgrade to fastobo v0.12.2 (#1561)
Update
.coveragerc(#1582)Upgrade
checkoutandsetup-pythonGitHub actions (#1591)
- Irodsbackend
Update backend iRODS connection handling (#909, #1542, #1545)
Rename
IrodsAPI.get_child_colls()
- Landingzones
Refactor permissions (#1573)
- Samplesheets
Upgrade critical Vue app dependencies (#1527, #1571)
Remove redundant node UUIDs from render tables (#708)
Improve IGV session file XML generating (#1585)
Do not create
sheet_edit_starttimeline events (#1570)Use role ranking in
EditConfigMixin(#1589)
- Taskflowbackend
Remove legacy
landing_zone_createbuild error handling (#1530)
Fixed
- General
Missing
LDAP_ALT_DOMAINSDjango setting (#1594)
- Irodsbackend
Unhandled backend init exception in
IrodsStatisticsAjaxView(#1539)iRODS session disconnection issues (#909, #1542)
Ajax view access for inherited owners (#1566)
- Landingzones
Typo in
LANDINGZONES_TRIGGER_MOVE_INTERVAL(#1541)
- Samplesheets
Crash from incompatibility with
packaging==0.22(#1550)Cancer shortcuts expecting specific naming convention (#1554, #1563)
Cancer shortcut caching with identical library names in study (#1560, #1564)
iRODS modal filter input not cleared on modal re-open (#1555)
Column config editing access for inherited owners (#1568)
iRODS delete request accept view crash with collection request (#1584)
Germline study shortcuts enabled if sample not found in assay (#1579)
Removed
- Irodsbackend
Backend API
connargument (#909)IrodsAPI.collection_exists()helper (#1546)IrodsAPI.get_coll_by_path()helper
- Landingzones
Legacy
LandingZoneOldListAPIView(#1580)
- Samplesheets
Unused
config_setandnum_colheader parameters (#1551)get_sample_libraries()helper (#1554)get_study_libraries()helper (#1554)GenericMaterial.get_samples()(#1557)
v0.12.1 (2022-11-09)
Added
- Landingzones
LANDINGZONES_TRIGGER_ENABLEDjango setting (#1508)
Changed
- General
Upgrade to Django v3.2.16+ (#1515)
Move include examples to
include_examples(#1493)
- Samplesheets
Upgrade Vue app dependencies (#1518)
Improve study app logging (#1507)
Optimize germline study app
get_shortcut_column()(#1519)Add study app tests (#1523)
Optimize germline study app cache updating (#1506)
Improve default IGV BAM track colour (#1514)
- Taskflowbackend
Improve project lock error messages (#1496, #1500, #1511)
Fixed
- General
Invalid
REDIS_URLdefault value (#1497)Invalid modify API settings in production config (#1503)
- Landingzones
Missing zone status check in
ZoneMoveView(#1520)
- Samplesheets
Uncaught project lock exceptions in iRODS delete request accepting (#1495)
Missing CSS classes for failed iRODS delete requests (#1513)
User alerts/emails sent for own iRODS delete requests (#1502)
- Taskflowbackend
Unhandled project lock exceptions (#1496, #1500, #1511)
Landing zone status not updated on flow lock/build errors (#1498)
Role deletion failing for categories (#1521)
Removed
- Samplesheets
.gitkeepforconfigdirectory (#1493)
v0.12.0 (2022-10-14)
Added
- General
Coverage reporting with Coveralls (#1471)
_login_extend.htmlexample (#1462)Overview video link in docs and
README(#1452)Sentry JS include for production (#1393)
- Irodsbackend
get_zone_path()helper (#1399)get_user_group_name()helper (#1397)get_ticket()method
- Landingzones
LandingZone.can_display_files()helper (#1401)
- Samplesheets
Statistics badge in iRODS dir modal (#1434)
External links column hyperlink support (#1475, #1476)
SHEETS_EXTERNAL_LINK_PATHDjango setting (#1477)get_ext_link_labels()helper (#1477)samplesheets/configdirectory for config files (#1477)
- Taskflowbackend
Add app from SODAR Core (#691)
Add Taskflow functionality from SODAR Taskflow (#691, #1464)
Changed
- General
Refactor Taskflow functionality for integrated code (#691, #1397, #1466, #1469, #1480)
Use general
REDIS_URLDjango setting (#1396)Replace
get_taskflow_sync_data()methods with modify API calls (#1397)Upgrade to django-sodar-core v0.11.0 (#1459)
Upgrade general Python dependencies (#1453)
Upgrade minimum PostgreSQL version to v11 (bihealth/sodar-core#303)
Enable all tests in GitHub Actions CI (#1168)
Replace hardcoded include templates with examples (#1462)
- Irodsbackend
Disable iRODS environment debug logging (#1455)
- Landingzones
Move Celery tasks into
tasks_celery(#1400)
- Samplesheets
Move Celery tasks into
tasks_celery(#1400)Ignore whitespace in simple link regex (#1474)
Read external link labels from JSON file (#1477)
Do not provide
external_link_labelsto UI without investigation
Fixed
- General
Docker build tagging failing for release tags (#1451)
URL config entrypoint for nonexistent
about.html(#1481)Postgres role errors in CI (#1465)
- Landingzones
iRODS file status displayed for zones with unsuitable status (#1401)
- Samplesheets
iRODS delete request error messages not updated in modal (#1463)
Ticket created for new iRODS collections with disabled anon access (#1479)
Removed
- General
get_taskflow_sync_data()methods (#1397)GitLab CI support (#1168)
test_localsettings file (#1395)Codacy support (#1471)
Legacy docs URL in
urls.py(#1489)
- Samplesheets
Taskflow API views (#691, #1397)
BIH specific hardcoded external link labels (#1477)
SHEETS_EXTERNAL_LINK_LABELSDjango setting (#1477)
v0.11.3 (2022-07-20)
Added
- General
GitHub issue templates (#1441)
Contributing and code of conduct docs (#1426)
- Samplesheets
Enable
bulk_rnaseqISA-Tab template (#1430)Enable
microarrayISA-Tab template (#1430)Enable
single_cell_rnaseqISA-Tab template (#1430)Enable
tumor_normal_tripletsISA-Tab template (#1430)
Changed
- General
Upgrade to django-sodar-core v0.10.13 (#1391, #1406, #1418)
Upgrade to black v22.3.0 (bihealth/sodar-core#972)
Default
BASICAUTH_REALMmessage (#1410)Add
LocalAuthAPIViewURL toSECURE_REDIRECT_EXEMPT(#1411)Rename default iRODS zone into
sodarZone(#1417)Manual updates (#1386, #1387, #1408)
Combine development documentation into manual (#1345)
Update
READMEbadges for recreated GitHub repository (#1428)Update
.pylintrc(#1429)General code cleanup (#1429)
Upgrade cubi-tk (#1430)
Upgrade to python-irodsclient v1.1.3 (#1431)
Update
env.exampleforsodar-docker-composedev environmentUpgrade to Node v16 (#1432, #1448)
Upgrade to lxml v4.9.1 (#1450)
- Samplesheets
Update Vue app browserslist (#1424)
Upgrade Vue app to ag-grid v28 (#1447)
Upgrade general Vue app dependencies (#1330, #1448)
Hide sheet template fields not meant to be edited (#1443)
Fixed
- General
build-docker.shfailing with special characters in tag name (#1385)
- Irodsinfo
Info page title (#1416)
Manual link pointing to expired URL (#1442)
- Ontologyaccess
Redundant file info in import logging (#1436)
- Samplesheets
Unset study protocol export ordering (#1419)
Bootstrap tooltip issues in sheet tables (#1415)
cubi-tkinstall failure due to missinglibbz2-dev(#1425)OntologyEditModalwarning message for missing ontologies (#1444)OntologyEditModalsearch input not trimmed (#1446)Sheet table horizontal scrolling on Firefox (#1445)
Removed
- General
Login page user domain autofill (#1409)
Custom login template (#1409)
Separate development documentation (#1345)
v0.11.2 (2022-03-04)
Added
- General
.readthedocs.yamlfile (#1362)
- Samplesheets
Investigation.get_assays()helper (#1359)View tests for search (#556)
Changed
- General
Upgrade to django-sodar-core v0.10.10 (#1361, #1376)
Link manual to readthedocs.io (#1358)
Upgrade to python-irodsclient v1.1.2 (#1389)
- Landingzones
Make
descriptionoptional in_make_landing_zone()(#1360)
- Samplesheets
Allow replacing sheets if unfinished landing zones exist (#1356)
Update project list file column legend (#1366)
Upgrade Vue app dependencies (#1369)
Upgrade Vue app to ag-grid v27 (#1370)
Improve search results layout (#1373)
Fixed
- General
Invalid Python version in readthedocs build (#1362)
- Landingzones
Zone list title column layout issues (#1380)
- Samplesheets
LandingZoneobjects deleted by API sheet replacing (#1356)Invalid
Investigationtimeline object reference for sheet replacing (#1357)IrodsStatsBadgequery error handling (#1371)Keyword
type:filenot limiting search (#1374)Redundant iRODS connections in search result rendering (#1375)
Tooltip hide not working in ontology column config (#1379)
Removed
- General
Local manual build (#1358)
- Landingzones
Unused
sodar-popup-overlayelements fromproject_zones.html(#1363)
v0.11.1 (2022-02-04)
Added
- Irodsbackend
format_env()helper for iRODS environments (#1351)
- Irodsinfo
Use
IRODS_HOST_FQDNfor client environment and display (#1349)
- Samplesheets
Toggle WebDAV IGV proxy with
IRODS_WEBDAV_IGV_PROXY(#1324)
Changed
- General
Upgrade minimum Python version to v3.8, add v3.10 support (bihealth/sodar-core#885)
Upgrade to django-sodar-core v0.10.8 (#1337)
Upgrade Python dependencies (#673, #1337, #1348, bihealth/sodar-core#884, bihealth/sodar-core#901, bihealth/sodar-core#902)
Upgrade to Chromedriver v97 (bihealth/sodar-core#905)
- Samplesheets
Upgrade Vue app dependencies (#1330)
Fixed
- General
Manual building in readthedocs (#1343)
- Irodsinfo
Invalid value formats in iRODS environment generation (#1351)
- Ontologyaccess
Opening OWL data for parsing not working for specific URLs (#1352)
v0.11.0 (2021-12-16)
Added
- General
Siteinfo app in default
LOGGING_APPSvalue (#1219)LOGGING_LEVELsetting (bihealth/sodar-core#822)PROJECTROLES_EMAIL_HEADERandPROJECTROLES_EMAIL_FOOTERsettings (#1231)Codacy coverage reporting (#1169)
- Irodsbackend
collsparameter in list retrieval (#1156)IRODS_ENV_DEFAULTsetting (#1260)LocalAuthAPIViewREST API view andIRODS_SODAR_AUTHsetting (#1263)
- Landingzones
busyzonesmanagement command (#1212, #1314)App alerts for sheet cache updates (#1000)
App alerts for zone owner for zone actions (#1204, #1240)
member_notify_moveapp setting (#1203)Project member notifications from zone moving (#1203, #1232)
LandingZone.user_messagefield (#1203)finishedparameter forLandingZoneListAPIView(#1234)LandingZone.is_locked()helper (#321)Zone locked status in UI and
LandingZoneRetrieveAPIView(#321)Display collections in iRODS file list (#1156)
UI documentation in user manual (#1181)
- Ontologyaccess
App documentation in user manual (#1301)
- Samplesheets
Simple link support for string cell rendering (#1001)
generic_rawassay plugin (#1128)Overriding assay plugin via assay comment (#1128)
App alerts for sheet cache updates (#1000, #1265)
Tooltip to clarify the Finish Editing button (#1109)
Tooltips for buttons disabled due to an unsaved row (#1056)
Default ontology column value (#1061)
Confirmation for field value overwrite on node rename (#1060)
Sheet version description (#754)
Batch sheet version deletion (#773)
Assay app support for “transcriptome profiling” measurement type (#1255)
Saving version with description in editor UI (#1109)
Automatic study/assay table filtering from search results (#634)
UI documentation in user manual (#1180)
Changed
- General
Upgrade to django-sodar-core v0.10.7 (#1217, #1220, #1243, #1272, #1332)
Upgrade to python-irodsclient v1.0.0 (#1223)
Upgrade to Chromedriver v96 (bihealth/sodar-core#772, #1254, bihealth/sodar-core#847, bihealth/sodar-core#852)
Upgrade to Node v12
Improve production logging (#1257)
Upgrade to django-webpack-loader v1.4.1 (#1198)
Upgrade to redis v3.5.3 (#1297)
Use
ManagementCommandLoggerfor command output (#1276)Update user manual (#1304, #1318)
Replace deprecated
MAINTAINERlabel in Dockerfile (#1316)Enable setting
SECURE_REDIRECT_EXEMPTin env vars (#1331)
- Irodsbackend
Retrieve iRODS config from
IRODS_ENV_BACKENDsetting (#1221)Use data attributes in templates (bihealth/sodar-core#530)
Rename
data_objectstoirods_datain return data (#1156)Get default iRODS environment values from default env (#1260)
- Irodsinfo
Retrieve iRODS config from
IRODS_ENV_CLIENTsetting (#1221)Display
IRODS_ENV_CLIENTin siteinfo viainfo_settingsGet default iRODS environment values from default env (#1260)
- Landingzones
Do not load finished landing zones in zone list view (#1205)
Rename
STATUS_ALLOW_CLEARtoSTATUS_FINISHED(#1205)UI improvements in project zone list (#1235)
Hide zones with
NOT CREATEDstatus from detail card (#1236)Handle
NOT CREATEDlanding zone status (#1237)Use
CurrentUserFormMixinin forms (#660)Enable automated collection generation by default in UI (#1266)
Clarify collection creation message in UI (#1275)
Default status info for
MOVING(#1305)Do not count inactive zones in project list (#1306)
- Samplesheets
Move
TestSheetSyncBaseintotest_views_taskflowUpdate app setting labels (#1230)
Use
CurrentUserFormMixinin forms (#660)Rename
get_name()andget_full_name()inISATabmodel (#1247)Update sheet version list layout (#1246)
Replace version compare menu with operation dropdown entry (#1251)
Update subpage navigation (#1252)
General refactoring (#1248, #1250, #1253)
Move Ajax view version saving to
SheetVersionMixin(#1109)Use
AppSettingAPI.delete_setting()for display config deletion (#854)Make UI specific data optional in
build_study_tables()(#694)Do not require user for
sheet_sync_task(#1273)Hide navigation dropdown if no sheets are available (#1285)
Reverse import/create order in Sheet Operations dropdown (#1286)
Improve ontology editor layout (#1293)
Improve study and assay title layout (#1291)
Improve iRODS access ticket list layout (#1302)
Remote sheet sync refactoring (#1317, #1325, #1326)
Upgrade Vue app dependencies (#1328, #1329)
Fixed
- General
API version settings not updated (#1218)
Disable cache as workaround for Docker build issues (#1225)
Github Actions CI failure by old package version (bihealth/sodar-core#821)
Build warning in
docs_dev(#1182)
- Irodsadmin
Missing cleanup in command test
tearDown()(#1244)
- Irodsbackend
Redundant slash prefix for root level items in collection list (#1245)
IRODS_ENV_BACKENDvalue conversion issues (#1259)Unavailable iRODS connection not handled in
BaseIrodsAjaxView(#1322)
- Landingzones
PROJECTROLES_SEND_EMAILnot checked in Taskflow views (#1229)Collection hint alert from zone list UI (#1266)
Zone move failure on Celery task crash in
TaskflowZoneStatusSetAPIView(#1298)status_infooverflow crash inTaskflowZoneStatusSetAPIView(#1307)Uncaught exceptions in
inactivezones(#1311)
- Ontologyaccess
Minor layout issues (#1312)
- Samplesheets
Missing label for
public_access_ticketapp setting (#1230)Incorrect
ISATabtimestamp in export and compare dropdown (#1247)Unhandled backend exceptions in
update_project_cache_task()(#1265)Vue app study navigation failure with additional URL params (#1269)
Assay shortcut card extra link icons (#1271)
Source map errors in production (#1198)
Numeric column default value invalid if range is unset (#1281)
ColumnToggleModalerrors on entering/exiting edit mode (#1280)Editability not updated in
ColumnToggleModalwithout grid reload (#1279)First column width breaking in Parser Warnings table (#1287)
Template creation link visible in sheet replace form (#1288)
Default suffix icon in
ColumnConfigModal(#1290)Ontology editor edit/check button icon misalignment (#1292)
iRODS file list modal button column alignment (#1299)
Random crash in
StudyShortcutsRendererunit tests (#1294)Sheet import and create view access permitted with sheet sync enabled (#1309)
Project list sheet import link visible with sheet sync enabled (#1309)
No placeholder for missing investigation title in details card (#1313)
Removed
- General
ADMIN_URLsetting fromproduction.py(#1228)
- Irodsbackend
IRODS_ENV_PATHsetting (#1221)
- Irodsinfo
IRODSINFO_ENV_PATHsetting (#1221)IRODSINFO_SSL_VERIFYsetting (#1226)
- Landingzones
ZoneClearViewUI view (#1205)_list_buttons.htmltemplate (#1205)
- Samplesheets
SampleSheetVersionCompareForm(#1251)Unused
configargument fromSampleSheetIO.save_isa()Unused
basic_valarg from_add_cell()(#1262)
v0.10.1 (2021-07-07)
Added
- General
LABELandMAINTAINERinDockerfile(#1186)Manual building in Docker setup (#1195)
SAML configuration (#990)
LOGGING_APPSandLOGGING_FILE_PATHDjango settings (#1209)
Changed
- General
Upgrade to django-sodar-core v0.10.3 (#1201)
Allow modifying all relevant SODAR Django settings from env
- Samplesheets
Upgrade vue app dependencies (#1185)
Refactor vue app code and tests for new dependencies (#1185)
Preserve line breaks in parser warnings (#1188)
Move
DEFAULT_EXTERNAL_LINK_LABELStoconstants
Fixed
- General
Docker entry points for Celery and Celerybeat (#1193)
Docker image build issues (#1194)
Missing migrations for
JSONFieldand site (#1196)irodsadmindebug logging disabled (#1209)Manual layout broken by
docutils>=0.17(#1210)
- Samplesheets
Loading icon in vue app iRODS status badge (#1192)
Workaround for Webpack source map file crash (#1198)
v0.10.0 (2021-06-11)
Added
- General
Release notes and changelog sections in manual (#1098)
setup_database.shfrom SODAR CoreEnable
appalertsapp (#1124)Display relevant Django settings values in
siteinfoapp (#1123)taskflowbackendin site logging (#1137)New Docker setup (#1129, #1163, #1165)
GitHub Actions CI (#1033)
iRODS study and assay data linking documentation in manual (#1127)
- Irodsbackend
Support for
IRODS_ROOT_PATHsetting (#1067)get_root_path()andget_projects_path()helpers (#1067)Optional
user_nameanduser_passinIrodsAPIinit kwargs (#1139)Public guest access support for Ajax queries (#1140, #1144)
- Landingzones
Optional automated creation of expected zone collections (#391)
_assert_zone_coll()helper inLandingZoneTaskflowMixin
- Samplesheets
Warning for unrecognized assay plugin in sample sheet import (#1070)
Sheet creation from templates using cubi-tk (#1068)
clean_sheet_dir_name()helperiRODS delete requests for data objects and collections (#277, #1087, #1089, #1090, #1093, #1134)
Allow per-project restriction of column config updates (#995)
Diff comparison for sheet versions (#1007, #1110, #1117)
Enable remote sync for sample sheets (#959, #1102, #1103)
Iconcomponent in vue app for django-iconify icon access (#1113)App alerts for iRODS data request actions (#1084)
Public guest access support for sample data (#1100)
get_webdav_url()helper (#1100)view_versionspermission (#1138)Management command tests (#1170)
Changed
- General
Upgrade to django-sodar-core v0.10.2 (#1096, #1113, #1118, #1121, #1135, #1158, #1166)
Upgrade to Python v3.8 and Django v3.2 (#1113)
Update project icons (#1113, #1125, #1154)
Unify ISA-Tab naming (#1082)
Upgrade to Chromedriver v90 (bihealth/sodar-core#731)
Upgrade to altamISA v0.2.9 (#1099, #1106)
Upgrade versioneer
Upgrade general python dependencies (#1112)
Update taskflow actions for SODAR Taskflow v0.5 compatibility
Cleanup for public GitHub release (#1119)
- Irodsbackend
Split long queries in
get_objs_recursively()(#1132)Refactor Ajax views (#841)
Require
projectanduserargs forget_webdav_url()template tag (#1144)
- Irodsinfo
Move iRODS connecting guide into the user manual (#262)
- Samplesheets
Fail gracefully for ISAtab import with empty tables (#903, #1075)
Implement study/assay app retrieval in model
get_plugin()helpers (#1076)Change timeline event names for sheet import/create/replace (#1079)
Refactor and simplify view pagination settings
Provide sodar context alert data as HTML instead of string (#1089)
Unify iRODS URL patterns (#1086)
Duplicate
sodar_uuidviews in REST API nested lists (#1074)Unify subpage navigation (#1085)
Reorder critical warning check and render test in sheet import (#1107)
Upgrade Vue app dependencies (#1114)
Rename
IrodsCollsCreateViewEnable public guest access to project sheets view (#1141)
Enable sheet export for project guests (#1138)
Enable sheet version viewing and export for project guests (#1138)
Allow no user in
update_project_cache_task()(#1171)Use logging in
syncnames(#1170)
Fixed
- General
Production config requirement in
docs_manual
- Irodsadmin
Irodsorphans project UUID not returned if path ends in project UUID (#1071)
- Irodsbackend
Long queries raising
CAT_SQL_ERRin iRODS (#1132)Redundant iRODS connection opened by
_check_collection_perm()(#1142)Missing permission check in
IrodsStatisticsAjaxViewPOSTrequest (#1143)
- Irodsinfo
Server status card layout on low resolutions (#1176)
- Landingzones
Root level backend plugin retrieval in template tags
CSS in project zone list (#1027)
Uncaught irodsbackend exceptions in
TriggerZoneMoveTask(#1148)Project list column retrieval failing with anonymous user (#1155)
Inactive zones deleted from all projects on zone clear (#1150)
- Samplesheets
MaxQuant results not correctly linked in
pep_msassay app (#1072)Incorrect timeline event for
sheet_create(#1080)Assay shortcut card layout breaking on Chrome (#1094)
Node names not properly sanitized on sheet import (#798)
Root level backend plugin retrieval in template tags
Removed
- General
Legacy
ravendependency (#1147)References to unused
django-db-file-storagecomponent (#1153)Legacy Docker setup (#1129)
syncgroupsuser command, updated version found inprojectroles(#1172)Unused
sodar.users.utils(#1172)Unused
.travis.ymlbackports.lzmadependency (#1197)
- Irodsbackend
Support for Ajax queries without project
Unused template tags
get_webdav_url_anon()andget_webdav_user_anon()is_webdav_enabled()template tag, useget_django_setting()instead
- Samplesheets
find_study_plugin()helper, useStudy.get_plugin()instead (#1076)find_assay_plugin()helper, useAssay.get_plugin()instead (#1076)
v0.9.0 (2021-02-05)
Added
- General
Missing user model migration
Makefilefor selected management commands (#989)
- Irodsadmin
Add app for iRODS data administration (#972)
irodsorphansmanagement command (#972, #997, #1035, #1045)
- Irodsbackend
get_query()helper forSpecificQueryinitialization (#1003)Support for multi-term search (#1065)
- Landingzones
Zone UUID clipboard copying link (#970)
inactivezonesmanagement command (#1010, #1046)
- Ontologyaccess
Add site app for ontology storage and access (#937, #947)
importoboandimportomimmanagement commands (#937, #980)ontologyaccess_backendbackend plugin (#958)
- Samplesheets
microarrayassay app (#941)_update_cache_rows()helper for assay app plugins (#954)NodeMixinfor node field/header helpers (#922)Ontology term editing (#688, #699)
Extract label editing as string (#964)
Simple editing for external links columns (#976)
SampleDataFileExistsAPIViewfor querying file status by checksum (#1003)Track hub and iRODS ticket support for UCSC Genome Browser integration (#238)
Django setting
SHEETS_ONTOLOGY_URL_SKIPfor template skip patterns (#1022)Support for multi-term search (#1065)
Changed
- General
Upgrade to altamISA v0.2.7
Upgrade to Bootstrap v4.5.3 and jQuery v3.5.1 (#1011)
Upgrade to Chromedriver v87
Upgrade to python-irodsclient v0.8.6 (#1009, #1058)
Upgrade to django-sodar-core v0.9.0 (#1051)
Refactor
Project.get_full_title()usage (#1062)Update iRODS install instructions in
docs_dev(#1028)
- Irodsbackend
Standardize Ajax view output (#841)
Support
name_likeas a list inget_objs_recursively()(#1065)
- Irodsinfo
Update iCommands instructions (#1028)
- Samplesheets
Display assay plugin icon for all users with sheet edit permissions (#940)
Refactor assay row cache updating (#954)
Refactor ontology value rendering (#693)
Move
ATTR_HEADER_MAPtomodelsRefactor recognizing ontology/unit columns in rendering (#962)
Disable “Finish Editing” link with unsaved rows (#987)
General vue app refactoring (#747)
Prevent insertion of identical rows (#1023)
Move iRODS content setup for ajax views to
plugins.get_irods_content()Rename Ajax views and standardize output (#857, #858)
Change default value of
allow_editingtoTrue(#1069)
Fixed
- General
Missing raven dependency in production config (#1048)
- Samplesheets
Assay iRODS links enabled if null path is returned by assay app (#951)
Empty ontology/unit column type not recognized in rendering (#962)
Legacy
fieldheader type still in useRow insert failing if the last node is a process (#974, #975)
Row insert failing with single column source node (#965, #986)
Sample deleted from study not removed from assay sample selection (#988)
Default value in column config not validated against range (#1031)
Editor input not correctly trimmed (#1032)
Icon updating on row deletion cancel (#1012)
Ontology URL template forced on incompatible accession URLs (#1022)
Redundant iRODS queries for empty paths in
_update_cache_rows()(#957)Saving multi-column node for a new row using default suffix (#1040)
UNITcolumn type override if empty unit given in config (#1052)Column config copy/paste enabled for contact, date and external links (#1053)
Incompatible format not handle in column config paste (#1029)
Removed
- General
Management commands replaced by
Makefile(#989)
- Irodsbackend
_get_obj_list()and_get_obj_stats()helpers (#1066)
- Samplesheets
Workarounds for legacy sample sheet imports (#946)
v0.8.0 (2020-09-15)
Added
- General
Celery beat setup (#702)
Configuration of support contact info in footer via site settings (#863)
- Landingzones
Automated triggering of landing zone validation/moving by iRODS file (#702)
- Samplesheets
ISAtab export through the REST API via
SampleSheetISAExportAPIView(#849, #851)Sample sheet column display configuration saving (#539)
Material and process renaming (#852)
Study and assay iRODS paths in
InvestigationRetrieveAPIView(#895)Protocol selection (#871)
Editing of performer, perform date and contacts (#881)
Editing of non-ontology list values (#886)
Display
name_typefor processesSet default protocol automatically in edit config (#879)
Row insertion (#834)
Row deletion (#868)
Sheet config versioning (#904)
Automated rebuilding of expired sheet configs (#904)
Node name suffix config and automated filling (#912, #925)
get_node_obj()helper (#922)Update sheet config default protocols on sheet restore (#901)
Export unarchiving notification for Windows users (#894)
Changed
- General
Upgrade to django-sodar-core v0.8.3-WIP
Move ISAtab export functionality to
SampleSheetISAExportMixin(#849)Upgrade to Chromedriver v85 (bihealth/sodar-core#569)
- Irodsbackend
Improve connection error logging
- Irodsinfo
Improve iRODS server/backend status (#908, #909)
- Landingzones
Refactor zone modification mixins in
landingzones.views
- Samplesheets
Re-initialize Vue app with Vue-CLI v4 (#837)
Partial refactoring and cleanup of Vue app code (#537, #837)
Always store original header name in table rendering
Allow column config editing with
edit_sheetpermission (#880)Allow empty
DATAmaterial names in editing (#898)Refactor helpers in
SampleSheetTableBuilderRefactor sheet config helpers into
SheetConfigAPI(#905)Include top header in column width estimation for rendering (#649)
Use node header for recognizing unit enabled columns without data (#914)
Prevent simultaneous editing of cells in multiple tables (#765)
Preserve display configs on sheet replace if headers match (#906, #933)
Fixed
- General
Hardcoded plugin settings in
productionconfig (#910)
- Samplesheets
Row sorting not working with updated column type definitions (#847)
Lists of strings assigned
ONTOLOGYcolumn type in rendering (#885)Last single column node not visible in
ColumnToggleModal(#877)Column config update randomly breaking table rendering (#850)
Whole cell copying active when in cell edit mode (#882)
File link CSS in edit mode (#896)
Data material name regex not accepting common file name characters (#875)
Incorrect padding for edit button in field header CSS (#862)
Prevent user for enabling unit for columns where it isn’t supported (#889)
Keyboard event handling issues in
DataCellEditor(#690, #917, #919)Do not look for iRODS link columns in vue app if in edit mode (#866)
Contact column width estimation (#887)
Removed
- General
Unused
Pillowdependency (bihealth/sodar-core#575)
v0.7.1 (2020-04-27)
Added
- Samplesheets
IrodsCollsCreateAPIViewfor iRODS collections creation via API (#826)Host name input confirmation for sample sheet and data deletion (#833)
SampleSheetImportAPIViewfor ISAtab import via REST API (#802)Study identifier display in Overview (#791)
Pagination in sheet version list (#743)
- Tokens
Enable app from django-sodar-core v0.8.0+ (#822)
Changed
- General
Upgrade to Django v1.11.29
Upgrade to django-sodar-core v0.8.1 (#835, #845)
Upgrade Python requirements to match djagno-sodar-core v0.8.0 (#835)
Upgrade to Chromedriver v80
Rename references to iRODS collections (#785)
Rename
IRODS_SAMPLE_COLLandIRODS_LANDING_ZONE_COLLsettings (#785)Rename the
samplesheets.create_collspermission (#785)Use base Ajax API view classes from SODAR Core (#805)
- Landingzones
Disallow replacing sample sheets if active landing zones exist (#713)
Display moved and deleted zones of other users with
view_zones_allperm (#806)Return landing zone iRODS path on creation (#843)
Use
SODARUserSerializerinLandingZoneSerializer(#842)
- Samplesheets
Upgrade non-breaking Vue app dependencies (#836)
Reorganize views and URL patterns (#801)
Refactor Ajax views and URL patterns (#736, #824)
Improve sheet import logging (#832)
Move ISAtab Zip archive validation to
SampleSheetIO.get_zip_file()Move ISAtab multi-file reading to
SampleSheetIO.get_isa_from_files()Refactor
SampleSheetImportMixinto work with API viewsHide path from sheet configuration information (#779)
Improve notation for missing study shortcut file types (#799)
Temporarily disable Bootstrap tooltips in custom project list cells (#787)
Fixed
- Irodsbackend
Ajax view permission checking and status codes
Hardcoded time zone reference in
api._get_datetime()(#807)
- Landingzones
REST API view permission checks not working with Knox token auth (#823)
Title suffix not optional in
LandingZoneserializer (#825)Initial workaround for active landing zone deletion on sheet replace (#713)
- Samplesheets
REST API view permission checks not working with Knox token auth (#823)
Crashes caused by sheet config not correctly updated on sheet replace (#829)
Sample sheet version saved for unsuccessful replace (#838)
Editor select box padding for Firefox and Chrome (#726)
CSS issue with
sodar-list-btnand Chrome (#844, bihealth/sodar-core#529)
Removed
- General
Unused
django-db-file-storagerequirement
- Samplesheets
Unused
models.get_zone_dir()andio.get_assay_dirs()helpersBase API view classes moved to SODAR Core (#800)
Unneeded
SheetSubmitBaseAPIViewbase class
v0.7.0 (2020-02-12)
Added
- General
Support for local third party JS/CSS includes (#770)
Sentry support (#476)
ENABLE_IRODSDjango setting (#796)
- Irodsbackend
Enforce MD5 hash scheme in client configuration (#740)
Enable
connkeyword argument in API initialization (#793)
- Landingzones
Extra columns for project list (#579)
Missing permission and view tests
Initial REST API (#780)
- Samplesheets
Editing of selected sample sheet column values (#550)
Project settings for sample sheet configuration (#687)
manage_sheetpermission (#696)Column management UI for sample sheet configuring (#698)
get_name()helper inISATabSaved sample sheet version browsing and deletion (#662)
Sample sheet version export (#739)
Sample sheet version restoring (#701)
Save and restore sheet configuration with
ISATabversionDeletion of
ISATabversions on sheet delete (#746)Extra columns for project list (#579)
MiscFilesassay shortcut for all assays (#766)ResultsReportsassay shortcut for all assays (#767)Investigation info retrieval API view (#780)
utils.get_top_header()helper (#817)Linking for metabolite assignment files in
meta_msassay app (#817)Hack for “Report File” column file linking (#817)
Changed
- General
Upgrade to django-sodar-core v0.7.2
Upgrade to python-irodsclient v0.8.2 (#731)
Upgrade to altamISA v0.2.6
Upgrade to Chromedriver v79
Upgrade to Django v1.11.27
Enable logging propagation (#792)
Only log
ERRORlevel messages if not in debug mode (#526)
- Irodsbackend
Refactor
api.get_info()Refactor iRODS connection handling in API (#793)
- Irodsinfo
Display iRODS server information when connection fails (#761)
- Landingzones
Prevent opening unnecessary iRODS connections with irodsbackend API (#796)
Reorganize views and URL patterns (#801)
- Samplesheets
Rename
table_datamember totablesin rendered table data (#219)Move
_get_isatab_files()and_fail_isa()intoSampleSheetIOMixinRefactor
utils.get_index_by_header()Replace
v-clipboardpackage withvue-clipboard2(#719)Move UI notifications to
NotifyBadge.vue(#718)Refactor column data retrieval in
ColumnToggleModal(#710)Rename
getGridOptions()toinitGridOptions()(#721)Dynamically add/omit cell unit, link and tooltip in rendering (#708)
Improve column type detection (#730)
Refactor sample sheet import/replace handling in views (#701)
Replace extra content table with standard assay shortcut table (#782)
Change assay sub-app
get_extra_table()intoget_shortcuts()(#782)Change
ExtraContentTable.vueintoAssayShortcutCard.vue(#782)Prevent opening unnecessary iRODS connections with irodsbackend API (#796)
Remove file suffix restriction from assay app data file linking (#817)
Fixed
- Irodsbackend
Cleanup skipped by uncaught exceptions in
init_irods()(#723)Data object replicates included in file and stats queries (#722)
- Landingzones
Cache update initiated synchronously in TaskflowZoneStatusSetAPIView (#783)
Missing zone status checks in zone deletion/moving views (#813)
- Samplesheets
getGridOptionsByUuid()returned column API instead of grid options (#706)getGridOptionsByUuid()returned initial options without applied updates (#721)Incorrect Investigation UUID passed to
ISATabon replace (#742)Restrictive tooltip boundary value in
IrodsButtons.vueStudy UUID changed if modifying study identifier when replacing sheets (#789)
Removed
- General
Unused raven requirement (#476)
- Filesfolders
Remove app as files will be placed under
MiscFilesin iRODS (#766)
- Irodsbackend
test_connection()helper (#795)
- Samplesheets
Unused
study_row_limitsetting (#641)Support for SODAR v0.5.1 parsing of characteristics lists (#619)
Support for old style comments parsing (#631)
Redundant
columnValuesstructure (#711)link_file,num_colandalignparameters from rendering (#708)get_assay_list_url()template tag (#737)Unused
SourceIDQueryAPIViewand related classes (#820)
v0.6.1 (2019-11-15)
Added
- Irodsbackend
Supply optional iRODS options in environment file (#714)
IRODS_ENV_PATHsettings variable (#714)
- Irodsinfo
Supply optional iRODS options in environment file (#717)
IRODSINFO_ENV_PATHsettings variable (#717)Logging for environment generating and certificate loading
Changed
- Irodsbackend
Enable reading
IRODS_CERT_PATHfrom environment variablesImprove connection logging
Refactor
api.test_connection()(#715)
Fixed
- Landingzones
Misleading alert text in
landingzone_confirm_move.html(#689)
- Samplesheets
Initial study context sorted by title instead of parsing order (#692)
Rendering crash from missing value type check for units (#697)
v0.6.0 (2019-10-21)
Added
- General
Missing Celery broker URL in
env.example(#607)
- Samplesheets
ISAtab export (#95)
Model support and parsing for multiple missing ISAtab fields (#95, #581, #626)
extra_material_typefield inGenericMaterialarchive_namefield inInvestigationTemporary
get_comment()andget_comments()helpers (#629, #631)Timeline logging for import and export warnings (#639)
Timeline logging for failed ISAtab import (#642)
SHEETS_ALLOW_CRITICALsetting for handling critical import warnings (#573)PacBio support in
dna_sequencingassay app (#628)Rendering for Assay Design REF columns (#652)
Rendering for First Dimension and Second Dimension columns (#652, #653)
Saving of original ISAtab data into the SODAR database (#651)
get_igv_irods_url()helper (#402)IGV merge shortcuts in study links modal (#402)
ISAtab import from multiple uncompressed files (#593)
ISAtab export option for
RemoteSheetGetAPIView(#670)Support for
StudyandAssayinget_object_link()Timeline logging for ISAtab and Excel export
Assay app
meta_msfor metabolite profiling / mass spectrometry (#675)Ability to define alerts in context API view (#681)
Alert for sheets parsed with an old altamISA version (#681)
Changed
- General
Upgrade site to django-sodar-core v0.7.0
Upgrade Python requirements to match django-sodar-core v0.7.0
Move graph creation dependencies to
local_extra.txt(#609)Move redis requirement to base.txt (#610)
Include backend Javascript and CSS as implemented in django-sodar-core v0.7.0 (#533)
Upgrade to Chromedriver v77
- Samplesheets
Color potentially dangerous links (bihealth/sodar-core#64)
Refactor sheet cell data access and sorting (#597)
Upgrade Vue.js app dependencies (#580)
Update ISAtab importing to support altamISA v0.2+ (#617)
Improve characteristics list parsing (#616, #618)
Always import
material_typefield forGenericMaterialDo not replace title or description in
Investigationif not providedDisplay configuration in Overview as badge
Improve comments display in Overview (#632)
Refactor
iomodule into a class (#562)Suppress altamISA warnings during testing (#637)
Fail when encountering critical altamISA warnings in ISAtab import (#573)
Use file name as study/assay key in parser warning data (#644)
Upgrade to altamISA v0.2.5 (#676)
Rename and refactor
get_igv_session_url()(#402)Use reference table building classes from altamISA
Enforce ordering in
Study.get_nodes()to maintain row order (#510)Ignore file name when searching for germline study pedigree files (#602)
Replace TSV table export with Excel file export (#613)
Allow
ACTIVElanding zones when replacing sample sheetsSort displayed studies and assays by parsing order instead of file name (#683)
Fixed
- General
Missing .venv ignore in Flake8 config (bihealth/sodar-core#300)
Installation document omissions (#606)
Columns with integer and float values sorted lexicographically (#596)
- Samplesheets
“Sequence item 1” render error manifesting with BII-I-1 example (#620)
Redundant unit/value parsing for comments during import (#629)
Missing label for unknown configuration in Overview (#638)
Overview statistics table margin change (#630)
Leftover database objects from ISAtab import crash (#643)
Extract label rendering as an ontology term (#563)
Cache updated on sheet replace with iRODS collections not created (#622)
Name column rendering for Labeled Extract Name materials (#652)
Data File name column rendering (#652)
Crash in importing First Dimension and Second Dimension fields (#653)
Display value copied to clipboard instead of full value in multi-cell select (#521)
Multi-cell clipboard copying wrong cells with custom row ordering (#664)
Crash in search if iRODS connection fails (#680)
Parser warnings layout breaking with long strings (#685)
Removed
- General
Unused storage requirements from production config (#610)
- Samplesheets
Reference table building classes from
rendering.pywrite_csv_table()helper fromsamplesheets.utils(#613)
v0.5.1 (2019-07-09)
Added
- Samplesheets
iRODS data corruption warning in sheet replacing (#557)
Temporary setting
SHEETS_ENABLE_CACHEto fix CI (#556)Investigationmodel fieldsparser_versionandparser_warning(#527)Multiple new model fields to support AltamISA v0.1 API (#527)
_get_value()helper in renderingaltamISA version storing and logging in rendering (#527)
altamISA v0.1 validation (#527)
Handling of altamISA warnings (#527)
Helper script
run_demo.shto run in local demo modeVue.js app view for displaying parser warnings
Support for altamISA v0.1 column sorting (#86, #566)
Display comments, performer and perform date in tables
_get_ontology_url()helper inSampleSheetTableBuilder
Changed
- General
Upgrade site to django-sodar-core v0.6.2 (#569)
Update
setup.py(#551)
- Samplesheets
Update project iRODS cache when replacing sheets (#554)
Use
delete_cache()inTaskflowSheetDeleteAPIView(bihealth/sodar-core#257)Upgrade to CUBI altamISA parser v0.1 (#527)
Update ISAtab importing for altamISA v0.1 (#527)
Update models for altamISA v0.1 (#527)
Raise exception from parser errors when in debug mode
Update test ISAtab files for altamISA v0.1 (#527)
Refactor
iomoduleImprove
iomodule loggingChange
GenericMaterial.extract_labelinto a JSON field (#527)Update project iRODS cache when creating or updating iRODS collections (#565)
Disable operations dropdown for guest users (#497)
Refactor Vue.js subpage navigation
Refactor legacy table rendering (#111, #566)
Store ontology URL template in
settings.SHEETS_ONTOLOGY_URL_TEMPLATEAlign columns uniformly with cells containing integer or float values (#598)
Clarify “sample repository available” message on details page card (#587)
Fixed
- Samplesheets
Assay UUIDs modified when replacing sheets (#554)
Default
fetch()credentials failing with certain old browsers (#559)Crash in germline study app
get_shortcut_column()with empty family column (#560)Germline study app
update_cache()failing with empty family columnSheet deletion error not displayed to user (#568)
Crash in
SampleSheetStudyTablesGetAPIViewifStudyobject not found (#578)Leading or trailing spaces in parsed field values (#584)
Crash in germline study app
get_shortcut_column()if IGV URL was not generated (#589)Errors in
DataCellRenderertrying to access unsetrenderData(#595)Contact fields not rendered if using non-standard notation (#595)
Removed
- Samplesheets
Model fields
characteristic_catandunit_catfromStudyModel field
headerfromStudyandAssayModel field
scan_namefromProcessRedundant warning for missing protocol reference in ISAtab import
Duplicate database indexes (#582)
v0.5.0 (2019-06-05)
Added
- General
Unsupported browser warning (#535)
- Irodsbackend
API function
get_url()(#438)iRODS collection path sanitizing (#488)
Statistics for the siteinfo app (#503)
API function
test_connection()(#514)
- Irodsinfo
IRODSINFO_SSL_VERIFYsetting for toggling SSL verification in iRODS configuration JSON (#516)
- Landingzones
Call samplesheets project cache updating after moving zone files (#508)
- Samplesheets
New Vue.js based sample sheets viewer (#426)
Get shortcut table data from study apps using
get_shortcut_table()get_sheets_url()helperSodarcache iRODS file info caching for study apps (#241)
set_configuration()helper for unit testsget_igv_url()helper in study app utilsget_study_libraries()helper in samplesheets.utilsget_extra_table()function inSampleSheetAssayPluginPointapp_namemember inSampleSheetAssayPluginPointMulti-cell selection and clipboard copying
Temporary manual sample sheet cache updating (#474)
Deletion of project samplesheets cache on sheet/data deletion (#509)
Temporary view
RemoteSheetGetAPIViewfor remote sample sheet access (#388, #523)UI for toggling column visibility (#466)
Filtering for iRODS collection list modal (#18, #467)
Changed
- General
Upgrade site to django-sodar-core v0.6.0
Update login template to match django-sodar-core v0.6.0
- Irodsbackend
Modify stats badge appearance
Refactor URL arguments and URL patterns regarding query strings (#455)
Properly URL encode query strings (#456)
Always return JSON from API views (#457)
Update title and description in plugin
Rename
get_subdir()intoget_sub_path()(#495)Disable loading backend javascript for each page (#532, bihealth/sodar-core#261)
- Landingzones
Use
get_info_link()for zone descriptions (#501)Temporarily load
irodsbackend.jsby a manual include (#532, bihealth/sodar-core#261)
- Samplesheets
Update and refactor server side rendering for client-side sheet UI (#426)
URL patterns for
samplesheets:project_sheetupdated for Vue.js routes (#426)Refactor and update sample sheet rendering for new renderer (#111, #426)
Expect full table data with headers for assay app
get_row_path()Add table data to
get_last_material_name()argsReturn iRODS path instead of Davrods URL from study app file locating helpers
Redesign study apps to work with Vue.js viewer (#436)
Display study shortcuts as link column instead of separate table (#464)
Do not display shortcuts in cancer study app for mass spectrometry assays (workaround for #482)
Move
get_material_count()from views into Investigation modelDisable sheet replacing if active landing zones exist in the project (#525)
Temporarily load
irodsbackend.jsby a manual include in details card (#532, bihealth/sodar-core#261)Move TSV table generation into
utils.write_csv_table()(#523)
Fixed
- Irodsbackend
Exceptions raised by API for collection paths with trailing slash (#488)
Crash from invalid iRODS authentication in multiple locations (#514)
- Irodsinfo
Crash from invalid iRODS authentication in
IrodsInfoView(#514)
- Samplesheets
Crash from certain queries if inactive
Investigationobjects are present for project (#544)
Removed
- Irodsinfo
iRODS certificate issue workaround (#516)
- Landingzones
Unused
get_info()definition in project app plugin (#541)
- Samplesheets
DataTables sample sheet rendering (#100, #223)
Unused views, templates and templatetags from main and sub apps (#462)
Member variable
study_templateinSampleSheetStudyPluginPoint(#462)JQuery updating in
samplesheets.js(#462, #473)Local DataTables includes (#462)
JQuery Dragscroll (#462)
Old “hide study columns” functionality from assay tables (#466)
Unused
get_info()definition in project app plugin (#541)
v0.4.6 (2019-04-25)
Added
- Samplesheets
Validate existence and uniqueness of study identifiers during import (#483)
Changed
- General
Upgrade site to django-sodar-core v0.5.1 (#480)
Upgrade to ChromeDriver v74 (bihealth/sodar-core#221)
- Samplesheets
Identify studies in investigation replacing by identifier instead of title (#483)
Fixed
- Samplesheets
Crash in investigation replacing if study titles are not unique (#483)
v0.4.5 (2019-04-11)
Fixed
- Samplesheets
Hard coded WebDAV URL in IGV links (#468)
Add missing SODAR Core v0.5.0 settings variables (#469)
v0.4.4 (2019-04-03)
Added
- Samplesheets
Copying HPO term IDs into clipboard (#454)
Changed
- General
Upgrade to django-sodar-core v0.5.0
Fixed
- Irodsbackend
Repeated CSS overrides moved to
irodsbackend.css(#452)
- Samplesheets
Tooltips broke study app table layout in small tables (#458)
v0.4.3 (2019-03-07)
Added
- Irodsbackend
IRODS_QUERY_BATCH_SIZEsetting for batch queries (#432)
- Samplesheets
Support for multiple ontology links in
_get_ontology_link()(#431)Hack for providing correct HPO ontology into links (#431)
Rendering for HPO term links (#431)
Rendering for performer and perform date (#187)
Transcription profiling support in dna_sequencing assay app (#443)
Use
IRODS_QUERY_BATCH_SIZEfor iRODS updating (#432)External link label
x-generic-remote(#448)
Changed
- General
Upgrade to django-sodar-core v0.4.5
- Landingzones
Secure Taskflow API views with
BaseTaskflowAPIView(#435)Adjust form textarea height (#437)
- Samplesheets
Improve exception reporting in
SampleSheetTableBuilder(#433)Secure Taskflow API views with
BaseTaskflowAPIView(#435)Support email link rendering for “contact” fields (#439)
Refactor contact field rendering (#439)
Query iRODS stats in batches (#432)
Enable iRODS buttons by default (#432)
Display external ID if label is not found (#449)
Fixed
- General
Add missing
.coveragercexcludes (#427)
- Samplesheets
iRODS button status updating for Proteomics projects (#428)
General iRODS button status only updated once per page load (#429)
Performance issues in iRODS stats querying with large data (#432)
iRDOS buttons not disabled if iRODS collections not created (#445)
ISAtab upload wiget error not displayed without Bootstrap 4 workarounds (bihealth/sodar-core#164)
Removed
- General
Old Bootstrap 4 workarounds for django-crispy-forms (bihealth/sodar-core#157)
- Samplesheets
iRODS wait icon from study apps and assay tables (#430)
v0.4.2 (2019-02-04)
Added
- General
Formatting with Black
Flake8 and Black checks in CI (#422)
General code cleanup and refactoring (#422)
IRODSBACKEND_STATUS_INTERVALsetting passed to JQuery (#423)
- Irodsbackend
Support for POST in Ajax views (#416)
App specific rules (#418)
Client side enabling/disabling of iRODS links buttons (#260)
Get status updating interval from setting variable (#423)
API view permission tests (#386, #417)
- Samplesheets
Support alternative notation in contact fields (#382)
Changed
- General
Upgrade minimum Python version requirement to 3.6 (bihealth/sodar-core#102)
Update and cleanup Gitlab-CI setup (bihealth/sodar-core#85)
Update Chrome Driver for UI tests
Cleanup Chrome setup
Update
login.htmloverride to add site messages (bihealth/sodar-core#105)Update site dependency utilities to match django-sodar-core v0.4.1+ (bihealth/sodar-core#90)
Upgrade to django-sodar-core v0.4.3
Upgrade dependencies to match django-sodar-core v0.4.2+ (#420)
Disable
USE_I18N(bihealth/sodar-core#117)Changed
CONTRIBUTORS.txtintoAUTHORS.rst
- Irodsbackend
Refactor Ajax API views (#416)
Limit the amount of iRODS queries (#414)
- Landingzones
Rename Taskflow specific API views (bihealth/sodar-core#104)
- Samplesheets
Rename Taskflow specific API views (bihealth/sodar-core#104)
Only allow superuser or project owner to delete sheet with iRODS data (#424)
Fixed
- General
Login URL was not set to
sodar/users/login.htmlDjango docs references (bihealth/sodar-core#131)
ProjectAccessMixin.get_project()calls
- Samplesheets
DataTables scrolling issue with Bootstrap 4.2.1 (#421)
Workaround for DataTables vertical overflow bug (#369)
Removed
- General
Unused templates in
sodar/pagesUnused URL mapping to
about.htmlLocal JS/CSS includes for JQuery, Bootstrap and other JS helpers (#379, #420)
Legacy Python2
super()calls (bihealth/sodar-core#118)Redundant
is_superuserpredicates from rules (bihealth/sodar-core#138)
- Irodsbackend
Unused module
admin.py
- Samplesheets
Unused dropup app buttons mode in templates (bihealth/sodar-core#108)
v0.4.1 (2018-12-19)
Added
- General
TASKFLOW_TEST_MODEsetting for test iRODS server support (bihealth/sodar-core#67)Missing LDAP dev setup script (#385)
- Irodsbackend
Project UUID parsing support for
get_uuid_from_path()
Changed
- General
Update list button and dropdown classes (#381)
Upgrade to django-sodar-core v0.4.0
Use
TASKFLOW_SODAR_SECRETfor securing Taskflow API views (bihealth/sodar-core#46)
- Filesfolders
Import app from django-sodar-core v0.4.0 (#403)
- Landingzones
Use
SODAR_API_DEFAULT_HOSTin email generation (#396)Hide deleted zones in project overview (#394)
- Samplesheets
Normalize alternative material names as lowercase to optimize search (#390)
Add real material name in
alt_namesas lowercase (#390)Reduce Django queries to optimize iRODS file search (#393)
Replace IRODS query limit settings with
SHEETS_IRODS_LIMIT(#393)Cancer study app: only show shortcuts for genome/exome seq assays (#398)
Move germline specific template tags in germline study app (#399)
Refactor study app views (#406)
Fixed
- General
Potential inheritance issues in test classes (bihealth/sodar-core#74)
- Irodsbackend
TypeErroringet_path()not correctly raised with invalid object class name (#404)iRODS connections not properly cleaned up in Ajax API views (#413)
Ensure iRODS connection cleanup after exiting a decorated function
- Irodsinfo
NetworkExceptionnot caught if iRODS server is unavailable (#395)
- Landingzones
Invalid URLs in zone status update emails (#396)
- Samplesheets
Cancer study app source query not filtered by study (#389)
Handle cancer app library assay linking errors (#404)
Assay links in study overview card (#405)
Study app shortcut exceptions always redirected to default study (#406)
Cancer study IGV shortcut crash if samples not found (#407)
Removed
- General
Unneeded gunicorn dependency in
settings/local.py(#383)
- Filesfolders
Local app removed (#403)
- Landingzones
Unused
get_irods_cmd()template tag
v0.4.0 (2018-10-26)
Added
- Adminalerts
Import app from djagno-sodar-core
- Projectroles
Import app from django-sodar-core
- Taskflowbackend
Import app from django-sodar-core
- Timeline
Import app from django-sodar-core
- Userprofile
Import app from django-sodar-core
Changed
- General
Update Django to v1.11.16 (#370)
Update requirements to match django-sodar-core v0.3.0 (#370)
Update SODAR app requirements to current versions
Rebrand project and site as
sodar(#166)Update
SODAR_CONSTANTSdependencies in local apps (#370)Update
sodar_uuidmodel fields and references in local apps (#370)Update
sodar_urlreferences in local apps (#370)Update default templates (#370)
Move login Javascript to
login.jsUpdate development documentation
- Samplesheets
Improve data table CSS during DataTables init (#359)
Fixed
- Irodsbackend
Viewing iRODS file list on an empty collection failed (#375)
WebDAV URL copying tooltip not rendered correctly inside DataTables (#377)
- Samplesheets
IGV session file generating crash if VCF file was not found (#372)
Removed
- General
Local Django apps included in SODAR Core v0.3.0 (#370)
Unused django-extra-views requirement
Unused user templates (#370)
- Samplesheets
Duplicate DataTables CSS includes
v0.3.3 (2018-09-25)
Added
- Samplesheets
Cancer study app (#371)
Generic IGV session file generating function
get_igv_xml()instudyapps.utilsget_sources()helper inStudymodelget_samples()helper inGenericMaterialmodelget_sample_libraries()helper insamplesheets.utils
Changed
- Samplesheets
Use
get_igv_xml()in germline study appUse
get_sample_libraries()in DNA sequencing assay app
v0.3.2 (2018-09-11)
Added
- General
BIH Proteomics data transfer docs (Mathias Kuhring)
Changed
- Projectroles
Use
omics-search-card-bodyinstead ofomics-card-body-table(#364)
Fixed
- General
Dropdown menu overflow hiding in
omics-card-body-tableclasses (#364)
- Samplesheets
Investigation parsing failure when replacing isatab deleted previous version (#365)
Removed
- Landingzones
Usage of
popupNoFilesHtml(will be removed from omics_core)
v0.3.1 (2018-08-24)
Added
- General
SITE_SUBTITLEsetting to show beta status or something similar (#311)API settings
SODAR_API_DEFAULT_VERSIONandSODAR_API_MEDIA_TYPEDomain/system user groups set on login or by management command
syncgroups(#313)CSS classes for
badge-group(#349)
- Adminalerts
Enable Markdown in alert description (#196)
Display user in alert details (#330)
- Filesfolders
Text style depending on item flag (#303)
Optional automated unpacking for uploaded zip files (#327)
Setting
FILESFOLDERS_MAX_ARCHIVE_SIZE(#327)search()function in plugin (#335)
- Irodsbackend
Generic iRODS file statistics view, template tags and Javascript (#181, #188)
Missing support for Investigation objects in
get_path()(#292)iRODS collection query Javascript (#295)
Display collection name in iRODS collection list
IrodsObjectListAPIViewfor iRODS collection list queries (#308)BaseIrodsAPIViewfor implementing viewsLogging for error cases (#310)
get_sample_path()andget_uuid_from_path()helpers (#289)Param
like_nameinto data object querying (#289)
- Landingzones
Send email when zone status is set as
MOVEDorFAILED(#280)Unit tests for
ZoneStatusSetAPIViewDisplay iRODS stats in details card (#188)
Ability to add extra flow parameters with
get_extra_flow_data()(#297)Script user workaround for non-working tickets in the proteomics use case (#297)
Option for validating files without moving (#333)
Missing unit tests for
LandingZoneMoveView(#248)
- Projectroles
Helper
email.send_generic_mail()(#280)Common template tag
check_backend()Define backend app javascript include in plugin (#300)
Common template tag
get_setting()CurrentUserFormMixinfor providing current using to forms ascurrent_userHelper mixin
KnoxAuthMixinfor views testingSanitize search input (#332)
Handle project list title cell overflow (#306)
No results alert for search (#288)
DataTables rendering for search results (#328)
Result count in search results (#338)
Settings variable
PROJECTROLES_SEARCH_PAGINATION(#328)Pagination for search results (#328)
Filtering for search results (#328)
- Samplesheets
Display original study/assay filenames as tooltips (#283)
Display assays for samples in search results (#157)
Helper function
GenericMaterial.get_sample_assays()(#157)Auto-populate field
alt_namesin theGenericMaterialmodel (#285)Management command
syncnamesto updatealt_names(#285)Display project/study file statistics using irodsbackend (#188)
Display stats on the project details page card (#188)
Proof-of-concept ID Querying API with token authentication
iRODS files searchable in site search (#289)
Highlighting of search strings (#341)
Custom display for “external links” fields (#349)
Settings variable
SHEETS_EXTERNAL_LINK_LABELS(#349)Custom display for different “contact” fields
Handle sheet table cell overflow
Settings variable
SHEETS_MAX_COLUMN_WIDTHsearch()function in plugin (#335)Settings variables
SHEETS_IRODS_LIMIT_PROJECTandSHEETS_IRODS_LIMIT_TOTAL(#289)
Changed
- General
Search button CSS (#351)
Refactor search views to allow multiple result sets from apps (#335)
Implement search in
ProjectAppPlugin.search()instead of template tags (#335)
- Adminalerts
Update user when updating alert (#179)
- Filesfolders
Refactor timeline event creation for object modification
Unify project title printing in search with other apps (#335)
- Irodsbackend
Optimize iRODS queries for increased performance (#242)
Improve collection listing popup layout
Check user perms for iRODS collection when performing queries
Omit
icpfrom iRODS path when copying to clipboard (#319)
- Landingzones
Use irodsbackend code for statistics queries (#188)
Refactor
irods_backendreferences in templatesMove javascript to separate file (#181)
Hide deleted zones from “other zones” (#302)
Use irodsbackend code for collection listing (#295)
Sort zones in list by zone tiele (#312)
- Projectroles
Minor email refactoring (#280)
Hide system users from normal users’ UI in member selection (#347)
Hide search elements if no results are found (#288)
- Samplesheets
Search for VCF files under all family members in germline app (#275)
Include
alt_namein GenericMaterial search (#285)Improve search results layout
Display investigation title on project card (#293)
Refactor
irods_backendreferences in templatesUse irodsbackend code for collection listing (#295)
Move irods buttons to irodsbackend (#301)
Move irods clipboard javascript to irodsbackend (#301)
Move javascript to separate file (#181)
Allow multiple assay field combinations for selecting assay plugin (#315)
Enable genome_seq_nucleotide_seq app also for exomes (#315)
Rename genome_seq_nucleotide_seq into dna_sequencing (#315)
Refactor site search (#289)
Exclude “name” column from automated aligning (#350)
Fixed
- General
Popover width in CSS (#291)
- Irodsbackend
Handle missing user auth in API views without raising an exception (#337)
- Landingzones
Incorrectly calculated
LANDINGZONES_STATUS_INTERVAL(#305)
- Projectroles
Extra spaces and tabs broke search (#290)
Search not enabled if selecting previous input with mouse (#307)
Case conversion issue caused
highlight_search_term()to fail (#341)
- Samplesheets
Show correct target in germline app
FileRedirectViewmessage (#275)Source/sample name search resulted in a template crash (#287)
CSS highlight bug in nav dropdown
Content app DataTable header broke layout if following assay anchor (#224)
Wrong CSS class in pep_ms (#318)
Assays not filtered by project in sample search (#358)
- Timeline
Not found label did not reflect timeline_mode (#346)
Removed
- General
Unused
ProjectAppPluginPoint.search_titleattribute (#335)
- Filesfolders
find_filesfolders_items()template tag (#335)
- Landingzones
LandingZoneIrodsStatisticsGetAPIViewand related redundant JQuery scriptsLANDINGZONES_STATISTICS_INTERVALsettings variableLandingZoneIrodsObjectListAPIView, use view in irodsbackend instead (#308)
- Projectroles
find_projects()template tag (#335)
- Samplesheets
MD5 display from file list view
Deprecated
irods_base_dirfrom viewsIrodsObjectListAPIView, use view in irodsbackend instead (#308)samplesheets_common.js, functionality now in irodsbackend (#301)utils.get_last_material_index(), no longer used (#317)find_samplesheets_items()template tag (#335)
v0.3.0 (2018-07-03)
Added
- General
Sphinx-based online user manual (#50)
Site favicon (#166)
- Irodsbackend
Proper cleanup of iRODS session on API deletion
Temporary iRODS ticket operations (#240)
- Landingzones
Status types
DELETINGandDELETED(#228)Landing zone special configurations (#240)
Configapp sub-app plugin point (#240)
Configapp plugin for
bih_proteomics_smb(#240)More unit tests for views (#248)
- Projectroles
Tag
force_wrap()in common template tags
- Samplesheets
Add genome_seq_nucleotide_seq assay app (#249)
Add pep_ms assay app (#245)
Object metadata in sample sheet table rendering (#254)
Show investigation configuration in study details table
WebDAV clipboard copying links (#257)
IGV integration and auth-basic support for germline study app
Changed
- General
Update installation and development documentation (#237)
Rebrand site as SODAR (#166)
Separate manual from development docs (#50, #237)
Use Bootstrap4 modal instead of jquery.popupoverlay (#180)
Improve login user experience (#229)
- Landingzones
Make landing zone deletion async (#228)
Refactor zone list item rendering
Include iRODS buttons from
_irods_buttons.htmlDisplay full zone title in project overview
Call
cleanup_zone()in configapps when setting status to MOVED or DELETED (#240)
- Projectroles
Use modal for email preview popups (#180)
- Samplesheets
Clarify ISA parsing error message (#236)
Separate configapps into study and assay apps (#249)
Move
get_row_path()to assay app (#249)Make links column hideable by assay app (#249)
Move iRODS buttons in separate template for including
Change
get_assay_path()into a more generalget_irods_path()in template tags (#257)Display study and assay links on the project details page (#257)
Move commonly used javascript to
samplesheets_common.js(#181)iCommands button copies link to clipboard without popup (#257)
Improve germline study app layout
General table layout updates
Fixed
- Landingzones
Buttons not correctly activated during status update (#215)
Long landing zone names broke zone list table
iRODS client
NetworkExceptionnot caught byLandingZoneStatisticsGetAPIView(#255)
- Samplesheets
Escape cell values (#233)
Study and Assay UUIDs changed during replace (#234)
Missing iCommands path in popup (#250)
Improve study and assay layout
Linking of BAM and VCF files if no assay plugin was found (#264)
Incorrectly filled
Familyfield broke germline study rendering (#270)
- Timeline
Long labels broke timeline table (#225)
Removed
- General
jquery.popupoverlay dependencies (#180)
- Landingzones
ZoneDeleteAPIView as it’s not needed anymore due to async deletion (#228)
v0.3.0b (2018-06-05)
Added
- General
Admin link for superuser (#134)
Common
popupWaitHtmlandpopupNoFilesHtmlJavascript variablesClipboard.js for helping clipboard operations
CSS styling for
.omics-code-inputHeight check for project sidebar and dropdown menu switching (#156)
- Irodsbackend
Add irodsbackend app (#139)
Add
get_path()for retrieving iRODS paths for Django objectsTemplate tag
get_irods_path()to get object iRODS path in templateAdd
get_session()for direct iRODS API accessAdd
collection_exists()to check collection availability
- Irodsinfo
Add irodsinfo site app (#183)
- Landingzones
Add landingzones app (#139)
- Projectroles
Settings updating to Taskflow for project creation and modification (#139)
Add
get_all_settings()andget_default_setting()inproject_settingsAdd
get_class()inprojectroles_common_tags
- Samplesheets
iRODS directory creation (#139)
iRODS link and iCommands display (#139)
Render optional hidden HTML attributes for cell meta data (#139)
Add
get_dir()andget_display_name()helpers to Study and AssayAdd
SampleSheetTaskflowMixinfor Taskflow test helpersRow numbers for sample sheet tables (#155)
Tour help (#145)
Row limit to prevent import and rendering of huge data (#192)
Render extract label column
Project setting
study_row_limit(#192)Replacing sample sheets for limited modifications (#195)
SampleSheetConfigPluginfor sheet configuration specific sub-apps (#201)Config app
bih_germlineas an example (#201)Add
get_configuration()in theInvestigationmodel (#201)Add
get_irods_row_path()to iRODS path to sample sheet row (#172)
- Taskflowbackend
Add taskflowbackend app (#139)
Add optional
omics_urlkwarg tosubmit()
Changed
- General
Upgrade to Django 1.11.13
Upgrade to django-crispy-forms 1.7.1 (#153)
Upgrade to Boostrap 4.1.1 (#144)
Improve tour help layout
Upgrade to Gunicorn 19.8.1
Switch ordering of Filesfolders and Landingzones in project menu (#217)
- Filesfolders
Don’t show empty folder label if subfolders exist (#135)
- Irodsbackend
Implement functionality of omics_irods_rest directly in the app
Rename
get_object_list()intoget_objects()Improve error handling in
get_objects()
- Projectroles
Use Taskflowbackend only for creating and modifying
PROJECTtype projectsModify Taskflow API URLs
Refactor
get_active_plugins()Refactor email sending
Properly log and report errors in email sending (#151)
Require email sending to succeed for creating invites (#149)
Modify ProjectStarringAPIView to use common permission mixins
Rename
TestTaskflowViewBasetoTestTaskflowBaseIntegrate
TaskflowMixinintoTestTaskflowBaseImprove project list layout (#171)
Move iRODS info page into the irodsinfo app (#183)
Modify signature of
_get_project()inProjectAccessMixinAllow
get_all_settings()andget_project_setting()with no project inproject_settings
- Samplesheets
Rename top header “legend” to “value” (#129)
Allow sample sheet upload for project contributor (#137)
Allow sample sheet deletion for project contributor (#168)
In taskflow operations, use
omics_uuidinstead ofpk(#99)Refactor table HTML rendering
Improve URLs for ontology linking (#170)
Hide columns with no data (#184)
Do not allow importing sheet or creating iRODS dirs if rendering fails (#192)
Upgrade altamISA to commit
ddf54e9ab9b47d2b5a7d54ce65ea8aa673375f87(#191)Display material subtype in top column (#200)
Display Process name if set (#207)
- Taskflowbackend
Use
omics_uuidinstead ofpk(#139)Only set up
PROJECTtype projects insynctaskflow
Fixed
- General
Add missing email settings in production config (#149)
Add
python3-distutilsto Xenial requirements to fix failing tests caused by recent updatesUser links visible when logged out on low resolutions (#197)
Fix
omics-card-table-borderedCSS
- Filesfolders
Broken link for subfolders with depth >1 (#136)
- Projectroles
Invalid URL in
build_invite_url()caused a crash (#149)Project creation failure using taskflow caused database corruption (#162)
Proper redirect from failed project creation to home or parent category
Project partially modified instead of rollback if update with taskflow failed (#163)
Project settings not correctly populated in
TestTaskflowBaseAllow
_get_project()with top level app models from nested apps (#201)README not modified when updating project with Taskflow enabled (#209)
- Samplesheets
Delete investigation if import fails (#138)
Assay sorting was not defined
Assay data could end up in the wrong table with multiple assays under a study (#169)
Correctly use
request.session.real_refererfor back/cancel links (#175)Error rendering sheet tables caused app to crash (#182)
Building a redirect URL in export view caused a crash
Prevent double importing of Investigation (#189)
Zip file upload failed on Windows browsers (#198)
Remove possible duplicate sample rows from study tables (#199)
Extract label not correctly parsed
Back link not working in
IrodsDirView(#206)Invalid HTML from rendering extra cell classes together with
text-rightCorrectly parse study description (#208)
Numerical value check for right-aligning (#218)
- Timeline
Fix event id parameter in Taskflow view
Removed
- General
Removed Flynn workarounds, deploying on Flynn no longer supported (#133)
- Projectroles
“View Details” link in details page, not needed thanks to project sidebar
get_description()templatetag
v0.2.0 (2018-04-13)
Added
- General
Automated version numbering in footer (#130)
ProjectPermissionMixinfor project appsProjectAccessMixinfor retrieving project from UUID URL kwargsThe
omics_uuidfield in models where it was missing (#97)Graph output with pygraphviz for local development
- Projectroles
Add
get_project_link()in templatetags
- Samplesheets
Add samplesheets app
ISA specification compatible data model (#76)
Importing ISA investigations as sample sheets (#77)
Rendering and navigation of sample sheets (#79)
Simple sample sheet search (#87)
DataTables rendering of sheets (#81)
Changed
- General
Upgrade site to Django 1.11.11
Upgrade site to Boostrap 4.0.0 Stable (#78)
Use
omics_uuidinstead ofpkin URLs and templates (#97)Rework URL scheme for consistency and compactness (#105)
Modify subtitle and page content containers for all apps
Sticky subtitle nav menu for pages with operations menus or navigation
Site-wide CSS tweaks
Rename
details_positiontoplugin_orderingin plugins (#90)Refactor app views with redundant
SingleObjectMixinincludes (#106)Squashed/recreated database migrations (#120) (Note: site must be deployed on a fresh database in this version)
- Projectroles
Search view improvements
Refactor roles and invites views
Split
get_link_statetag intoget_app_link_stateandget_pr_link_stateto support new URLs (#105)
- Timeline
Use
omics_uuidfor object lookup inplugins.get_object_link()(#97)
Fixed
- General
Update ChromeDriver to eliminate UI test crashes (#85)
User dropdown rendering depth (#82)
Error template layout breaking (#108)
- Filesfolders
Public link form widget always disabled when updating a file (#102)
Content type correctly returned for uploaded files and folder READMEs (#131)
Removed
- General
Role “project staff” (#121)
v0.1 (2018-01-26)
Added
- General
Create new base project using the current version of cookiecutter-django
Additional unit tests for site apps
Changelog in
CHANGELOG.rstUser profile page (#29)
Highlight help link for new users (#30)
Support for multiple LDAP backends (#69)
- Adminalerts
Add adminalerts app (#17)
- Filesfolders
Import app from prototype
Page title to main files list
File, folder and link search (#21)
Item flagging (#38)
History links for items (#35)
Folder readme file rendering (#36)
- Projectroles
Import app from prototype
Sub-navbar with project breadcrumb (#20)
Move app and project editing links to project sidebar (#20)
Helper functions for project settings
Initial project and app object search (#16, #21)
More helper functions in Project model:
get_parents(),get_full_title()Project list filtering (#32)
Project tagging/starring functionality (#37)
History links for project members (#35)
Import roles from another owned project (#9)
User HTML tag in common templatetags (#71)
- Timeline
Import app and backend plugin from prototype
Object event view history and API (#35)
Project model support in event references
Changed
- General
Update site for Django 1.11.9 (#1) and Python 3.6.3 (#2)
Update site to Bootstrap 4 Beta 3 (#70)
Update third-party libraries to their latest versions
Layout redesign (#20)
Switch from PhantomJS to Headless Chrome for UI tests (improved performance and stability, Bootstrap 4 Beta compatibility)
Include CSS and JS imports in testing configs and CI
General code refactoring and cleanup
Update installation instructions in
INSTALL.rstRename “actions” into “operations” (#41)
Message alert boxes made dismissable (#25)
Make tables and navs responsive to browser width
- Filesfolders
Redesign data model with inheritance to avoid field repetition
Internal app name is now
filesfoldersProject setting
allow_public_linksis now False by default (#43)Include extra data in item creation and updating
Only allow one readme.* file in each folder (#36)
- Projectroles
Remove two-level restriction for project and category nesting in models
Only allow creation of categories on top level
Improved project list layout
Move
OMICS_CONSTANTSfrom configuration intomodels.pyPopulate Role objects in a migration script instead of a fixture
Import patched
django-pluginsfrom GitHub instead of including in project directlyInclude extra data in project creation and updating
Move Project settings helper functions to
project_settings.pyDisable help link instead of hiding if no tour help is available
Show notice card if no ReadMe is available for project (#42)
Refactor URL kwargs
Allow users with roles under category children to view category (#47)
Update text labels for role management to refer to “members” (#40)
Separate common template tags into
projectroles_common_tagsMove project settings forms to project creation/update view (#44)
Provide reload-safe referer URL in
request.session.real_referer(#67)
- Timeline
Enable event details popover on the project details page
Limit details page list to successful events
Allow guest user to see non-classified events
Function
add_event()raises properValueErrorexceptions
Fixed
- Filesfolders
Redirects in exception cases in
FilePublicLinkViewUnexpected characters in file name broke the
file_serveview (ODA #109)Check for existing file if moving file during update (#56)
- Projectroles
Check for project title uniqueness
Don’t allow matching titles for subproject and parent
App plugin element IDs in templates
Project context for role invite revocation page
Project type correctly displayed for user (#27)
- Timeline
Tour help anchoring for list navigation buttons
User column link was missing the
mailto:protocol syntax
Removed
- General
The unused
get_info()function and its implementations fromplugins(providedetails_templateinstead)Unused user app features
- Filesfolders
Redundant and deprecated fields/functions from the data model
Example project settings
- Projectroles
Temporary settings variables for demo and UI testing hacks