Releases: tl-its-umich-edu/my-learning-analytics
2024.02.01
MyLA-2024.02.01 Release Notes
Overview
This release includes the ability to add MyLA admins designated as Staff users who can support MyLA without having super-user access. It also includes a signficant number of accessibility improvements to the Assignment Planning view. Additionally, the release includes security updates to keep the application code up to date.
New & Improved
- Allow Staff users to be created in MyLA Django Admin without being Super Users. These Staff users can access MyLA courses without being enrolled in those courses. (#1583)
- Accessibility improvements for Assignment Planning
- Prevent the aria label on the progress bar from being read twice (#1597)
- Match the text for the aria-label to the tooltip text for assignment progress bar (#1598)
- Add aria-labels to the assignment filter dropdowns (#1594)
- Add aria-labels to the Lock Goal checkbox for assignments (#1591)
- When using filtering, communicate the number of returned results to assistive technologies (#1593)
- Make sure status icons are voiced by assistive technologies (#1596)
- Ensure a reasonable interval between a change to course and assignment goals before the snackbar displays and the update is voiced (#1589)
- Add Unique Ids to TextFields (#1592)
- Change the "Clear" button to "Clear Minimum Goal" for clarity (#1595)
- Add Google Analytics consent verification as required for users in the European Economic Area (EEA) (#1580)
- Include IP addresses in event logging for MyLA (#1578)
Fixes
- Improve the time it takes to display the Resources Accessed page for courses with many students and resources (#1573)
Configuration & Operations Changes
- Update django from 4.2.7 to 4.2.15 (#1563, #1565, #1588, #1608)
- Update mysqlclient from 2.2.0 to 2.2.4 (#1567)
- Update gunicorn from 21.2.0 to 22.0.0 (#1570)
- Update pkg versions of github actions (#1566)
- Update ws from 7.5.9 to 7.5.10 (#1585)
- Update braces from 3.0.2 to 3.0.3 (#1584)
- Update webpack from 5.89.0 to 5.94.0 (#1617)
- Update micromatch from 4.0.5 to 4.0.8 (#1620)
- Remove .git from git https remote #1358
- Allow for workflow dispatch actions to run anywhere (#1603)
- Add last_accessed_date field to the courses table (#1609)
- Remove unneccessary logging (#1388)
- Clean up redundant and confusing names in models to improve admin interface (#1420)
- Change Postgres cron queries to BigQuery queries (#1557)
- Update Contributing to mention backup information (#1569)
Configuration updates needed for release:
- Changes in env_sample.hjson (#1580)
Full Changelog: 2024.01.01...2024.02.01
2024.01.01
MyLA-2024.01.01 Release Notes
Overview
This release includes accessibility and display improvements as well as fixes to two minor display bugs. The release also includes significant updates to front and backend code for security improvements and to keep the application code up to date.
New & Improved
- Supplement color-coding of bars in the Resources Accessed view with patterns to improve accessibility (#1250)
- Display dates and times in the user's local time (#1491, #1490)
Fixes
- Fix a bug that caused the branch to display instead of the release tag in the MyLA footer for MyLA administrators. (#1512)
- Fix a bug that caused the wrong error message to display when a student tried to access MyLA before the instructor fully set it up on a course (#1540)
Configuration & Operations Changes
- Update python/node Dockerfile base to use Debian bookworm (#1513)
- Update Django from 3.2.20 to 3.2.23 (#1550)
- Update graphql from 16.3.0 to 16.8.1 (#1541)
- Update postcss from 8.4.12 to 8.4.31 (#1543)
- Update @babel/traverse from 7.17.9 to 7.23.2 (#1546)
- Update to React 18 and MUIv5 (#1529)
- Update pycryptodome from 3.19.0 to 3.18.1 (#1560)
- Add a sample Kaltura query to env_sample.json (#1551)
Configuration updates needed for release:
- Changes in cron_udp.hjson and env_sample.hjson (#1544)
Full Changelog: 2023.02.01...2024.01.01
MyLA 2023.02.01 Release
MyLA-2023.02.1 Release Notes
Overview
This release includes the removal of the legacy Assignment Planning view and the cron queries that used the Unizin Data Warehouse as a data source. Additional configuration settings and improvements to administrative reports are also included along with security updates and bug fixes.
New & Improved
- Add a configuration option for administrators to restrict the Grade Distribution view's availability based on number of students in class (#1288)
- Remove the legacy version of the Assignment Planning view (#1492)
- Add the username to the csv output in the MyLA event log data (#1501)
- Add a date field to the courses table to capture when the course was added to MyLA (#1135)
Fixes
- Fix a bug in Assignment Planning so that it no longer displays an error message when the student has not set goal and all assignments are graded. (#1497)
- Resolve issue for No Term from UDP course query (#1504)
- Fix a bug that prevented MyLA Admins from updating courses in Django Admin (#1509)
Configuration & Operations Changes
- GraphQL Introspection has been disabled in MyLA
- Uncomment TIME_ZONE in env_sample.hjson to prompt MyLA admins to set their local time zone (#1500)
- Switch build to reference (Debian) bullseye explicitly (#1511)
- Update npm build to consider package-lock.json (#1527)
- Remove cron.hjson (UDW queries) (#1493)
- Add more detail as comment to the metadata query in MyLA cron_udp.json (#1502)
- Upgrade to Node 18 (#1515)
- Get the Repo values from environment for Github actions/registry (#1533)
Configuration updates needed for release:
VIEWS_DISABLED
needs to be updated. The "Assignment Planning V1" view is no longer available, so the view configuration value that refers to it,show_assignment_planning_v1
, is now invalid. This change was made in #1492. That configuration item should now be defined as"VIEWS_DISABLED": [],
, if no other view needs to be disabled. If an institution has other views disabled, then this configuration item should list those other view values.
Full Changelog: 2023.01.02...2023.02.01
MyLA 2023.01.02 Release
MyLA-2023.01.02 Release Notes
Overview
This release includes improvements to accessibility as well as security updates and bug fixes.
New & Improved
- Make Resources Accessed bar chart keyboard accessible (#1190)
- Add improved detailed narrative text to the Resources Accessed and Grade Distribution views for screen readers (#1479)
- Add an option for MyLA Django Administrators to set a default limit on the number of resources in a course that display in the Resources Accessed View (#1466)
Fixes
- Correct time zone imports for local time zones (#1484)
- Fix console error about an invalid prop name of class (as opposed to className) (#1494)
Configuration & Operations Changes
- Bump django from 3.2.16 to 3.2.18 (#1481)
- Bump webpack from 5.72.0 to 5.76.0 (#1498)
- Remove Cypress Tests (#1418)
- Remove unused development dependencies to reduce security impacts (#1482)
- Update Google Analytics to support GA4 (#1371)
Configuration updates needed for release:
Google Analytics 4
- If you had previously configured Google Analytics you'll have to get a GA4 account and set the GA_ID config value. The only value won't work.
- You also need to set new CSP values if using GA4.
- Refer to this wiki page for more information.
Time zone
- The value of
TZ
in the .env orTIME_ZONE
in the env.hjson should be set to match your Canvas instance's default time zone. The value ofTZ
is the time the container is set to, which is what the application defaults to unlessTIME_ZONE
is set.
Full Changelog: 2023.01.01...2023.01.02
MyLA-2023.01.01 Release
MyLA-2023.01.01 Release Notes
Overview
This release includes improvements to security and accessibility as well as minor bug fixes
New & Improved
- Improve accessibility on the MyLA home page with the view cards to allow keyboard use to navigate to the views and improve screenreader text - (#1473) by @ssciolla in #1475
- Prevent admins from editing a course ID in the Django admin pages. Instead if a course ID needs to be changed, the incorrect ID must be deleted and the correct course ID can be added as a new course - (#613) by @ssciolla in #1468
Fixes
- Fixing the page display error that occurred when a user clicked on the brush tool outside the shaded area on the Resources Accessed View (@pushyamig in #1470)
- Fix log warning of added courses (#1476) by @ssciolla in #1477
Configuration & Operations Changes
- Bump json5 from 1.0.1 to 1.0.2 by @dependabot in #1469
- Update Django Cron to 0.6.0 - (#1400) by @jonespm in #1471
- Move the git commit parsing out of the start.sh and into the build- (#1462) by @jonespm in #1463
Configuration updates needed for release:
None
Full Changelog: 2022.02.01...2023.01.01
MyLA 2022.02.01 Release
MyLA-2022.02.01 Release Notes
Overview
This release includes the option to pull data for MyLA from the Unizin Data Platform (UDP) or the Unizin Data Warehouse (UDW). The release also includes improvements to security and minor bug fixes
New & Improved
- Update the MyLA cron queries and configuration options to get Canvas data from the UDP (#489)
- Improve the cron query to handle courses that do not yet have Canvas data available. These courses will be skipped in the cron and the last updated date will remain null until the Canvas data is available. (#1327)
- Improve security by not storing user's full names in the MyLA database. Instead get the name from the LTI launch to use in MyLA. (#1344)
- Improve the readability and navigation of the README file and update content (#661 & #719)
- Improvements to the cron query (#827, #1428, & #1443)
Fixes
- Fix the logic on the Resources Accessed view to include events only from users with a StudentEnrollment type (#764)
- Fix a bug that left the course field null for a user in the user table (#1435)
- Fix a bug that displayed an assignment score when a quiz had both automated and manual scoring and the manual scoring was not completed and the grade was not released. (#1435)
- Fix a bug that caused a failure of the MyLA Administrator option "View on Site" to see MyLA for a course (#1411)
Configuration & Operations Changes
- Allow for environment variable override of env.hjson values (#787)
- Update loader-utils from 2.0.3 to 2.0.4 (#1458)
- Update django from 3.2.15 to 3.2.16 (#1450)
- Update LTI pylti1p3 library to 1.12.1 (#1447)
- Switch mysql-server in docker-compose.ym. to mysql (#1446)
- Update d3 to version 7 (#1367)
Configuration updates needed for release:
- Set
"CRON_QUERY_FILE": "/code/config/cron_udp.hjson"
- Set
"DATA_WAREHOUSE"
JSON object with UDP connection strings - If using Kaltura Caliper events, update is needed for the
user_login_name
field. Please check the query detail as documented in this MyLA wiki page
Full Changelog: 2022.01.02...2022.01.03
MyLA-2022.01.03 Release
MyLA-2022.01.03 Release Notes
Overview
This release includes the addition of Canvas Pages to the Resources Accessed view as well as an administrative option to prompt a full reload and backfill of MyLA data. The release also includes improvements to security, bug fixes, and fixes to support LTI certification from 1EdTech.
MyLA has been certified for Learning Tools Interoperability (LTI) v1.3 by 1EdTech.
New & Improved
- Add Canvas Pages to the Resources Accessed view (#1332) and have links to Canvas pages open in a new browser tab (#1437)
- Improve display of binned grades on the Grade Distribution view to further protect student privacy (#794)
- Add the option for MyLA Administrators to clear the last updated date so that a full data refresh with backfilled data occurs the next time the cron runs (#1399)
- Add security to expire a user's Django section after 24 hours (#1029)
Fixes
- Fix a bug that caused the week numbers to calculate incorrectly when a course used the Term dates in course settings (#1430)
- Fix the logic of the LTI launch to remove a message that indicated users "must be admin" if a recognized role is not sent (#1381)
- Fix the LTI launch to require deployment IDs (#1396)
Configuration & Operations Changes
- Support alternatives for local LTI development (Loophole) (#1402)
- Update Django from 3.2.13 to 3.2.15 (#1390 & #1394)
- Update Terser from 5.12.1 to 5.14.2 (#1393)
- Update Python to 3.10 to address existing vulnerability (#1406)
- Remove Vim to address existing vulnerability (#1408)
- Update configuration value "STUDENT_DASHBOARD_LTI" to "ENABLE_LTI" (#1094)
Steps to add Pages Data to the Resources Accessed View for Existing Courses
Existing courses in MyLA will not have events to track page views for a Canvas course. In order to populate this data in existing courses, the query to retrieve the pages data needs to be added to the configuration. Once this is done, a MyLA administrator needs to clear out the date that the data was last updated for the courses that need to have the page views backfilled. With the last updated date removed, the next time the cron runs, it will backfill the pages events and refresh the data for the course. Page views will then display in the Canvas course.
Steps to add the Canvas pages query
There are two configuration updates that need to be made to add the query for the pages data. Update the RESOURCE_VALUES list and the RESOURCE_ACCESS_CONFIG to include pages as shown in the Deploy: Institution Architectures wiki.
-
Insert the following entry into the RESOURCE_VALUES list:
"pages": {"types": ["canvas_pages"],"icon": "fas fa-file-code fa-lg"},
-
Insert the following into the RESOURCE_ACCESS_CONFIG (replacing values like umich.instructure.com to match your institution domain):
"canvas_pages": {
"query":
'''
SELECT 'canvas_pages' AS resource_type,
REPLACE(JSON_EXTRACT_SCALAR(extensions_json, '$['com.instructure.canvas'][request_url]'), 'https://umich.instructure.com/courses', '') as resource_id,
CAST(REGEXP_EXTRACT(membership.id, r'.:(.)') AS INT64) AS user_id,
cast(null as string) AS user_login_name,
CAST(REGEXP_EXTRACT(group
.id, r'.:(.)') AS INT64) AS course_id,
JSON_EXTRACT_SCALAR(object.extensions, '$['com.instructure.canvas'][asset_name]') as name,
datetime(EVENT_TIME) as access_time
FROM event_store.expanded
where
JSON_EXTRACT_SCALAR(ed_app.json, '$.id') IN UNNEST(['http://m.canvas.umich.edu/' , 'http://umich.instructure.com/' ])
and type = 'NavigationEvent'
and object.type = 'Page'
and action = 'NavigatedTo'
and membership.id is not null
and not CONTAINS_SUBSTR(JSON_EXTRACT_SCALAR(extensions_json, '$['com.instructure.canvas'][request_url]'), '/api/v1/')
and REGEXP_EXTRACT(group
.id, r'.:(.)') IN UNNEST(@course_ids)
''',
"app_display_name": "Canvas Files",
"canvas_course_id_format": "LONG",
"urls": {
"prefix": "https://umich.instructure.com/courses",
"postfix": ""
}
},
Steps to populate the Pages data for courses
- Log in to the Django Administration for MyLA
- Go to the Courses page
- Select the courses that you want to backfill data in by checking the checkboxes. You can use the checkbox at the top of the list to select all courses.
- From the Action dropdown at the top, select "clear selected last updated values"
- Click Go
All the values will be cleared from the last updated date for the selected courses. That will trigger a full data refresh the next time the cron runs to repopulate the database, including adding the pages accessed events.
Full Changelog: 2022.01.02...2022.01.03
2022.01.02 Release
MyLA-2022.01.02 Release Notes
Overview
This release includes minor bug fixes and updates.
New & Improved
- Add a contributors page to the GitHub project (#1116)
Fixes
- Fix a bug that prevented the Resources Accessed visualization from displaying when a course has files with a semi-colon in the name. (#1378)
- Fix a bug that had the wrong ID pulled for Lecture Capture (an LTI video tool used at U-M) (#1385)
Configuration & Operations Changes
MyLA First 2022 Release
MyLA-2022.01.01 Release Notes
Overview
This release includes minor bug fixes and updates.
Fixes
- Provide a clearer error message when a student opens MyLA before the instructor has finished setting it up.
- Update the warning for course start or end date missing to an INFO statement in the MyLA log and add the course or term identifier
- Open the GitHub SHA link for MyLA administrators in a new window
Configuration & Operations Changes
- Improve security by changing the DJANGO_DEBUG setting to false in the config/env_sample.hjson
- Improve data privacy by removing sis_id from the MyLA user table as it is no longer used
- Update Django from 3.2.6 to 3.2.13 (#1373)
- Upgrade to
node
16 (from 14), which includes updates tonpm
and thepackage-lock.json
format (#1363, #1375) - Update
npm
packages including (React, Webpack, Apollo, Material UI) and remove unused dependencies (jquery
,node-sass
) (#1363) - Replace use of
django-npm
withpip
packagefontawesomefree
(#1363)
MyLA Fall First Release - 2021.03.01 Release Notes
Overview
This release includes adding functionality to MyLA administration and updates to libraries. It also includes initial queries and configuration options that move MyLA closer to being able to use Canvas data from the Unizin Data Platform (UDP) instead of the Unizin Data Warehouse (UDW). This shift to UDP will be finalized in a future release.
New & Improved
- In the MyLA administration (Django), administrators can filter Logs by timestamp and/or action and export the filtered log file.
- In the MyLA administration (Django), the unneeded option to manually add or remove cron logs and event logs has been removed.
- This preserves the accuracy of the logs, which were intended to be read-only to avoid accidental alterations.
Fixes
- Fixed a bug that resulted in access counts being inflated in the Resources Accessed view when a student is enrolled in multiple courses in MyLA
- Fixed a bug where MySQL passwords with certain special characters (like @) weren't allowed #1341
Configuration & Operations Changes
- Updated backend dependency (including Django and related dependencies) #1300 and the associated issues for more information.
- Replaced env_sample.json with env_sample.hjson to support better user interface of JSON file
- The previous JSON config file you have will still work with MyLA, but hjson allows for improvements such as real comments, multi-line statements, no need for trailing commas and more. To keep up with future config changes you should consider switching formats.
- Removed SAML-related configuration variables in env_sample.hjson file that are no longer in use.
- If you still are using SAML you'll need to switch to LTI before picking up this release.
- New configuration option related to the UDP shift is
CRON_QUERY_FILE
. These are queries extracted from the cron process. By default MyLA will useconfig/cron.hjson
.- You can alter this file and use a custom file if you have a custom data source.
- The future intention is to switch over to using
config/cron_udp.hjson