Skip to content

Releases: tl-its-umich-edu/my-learning-analytics

2024.02.01

26 Sep 13:19
6307829
Compare
Choose a tag to compare

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)
    • Changes to env_sample.hjson is here
    • Include a privacy redirect URL and OneTrust script domain, if available, for use of google analytics integration (see project)

Full Changelog: 2024.01.01...2024.02.01

2024.01.01

01 Feb 17:39
a73f8d2
Compare
Choose a tag to compare

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)
    • Changes to cron_udp.hjson is here
    • Changes to env_sample.hjson is here

Full Changelog: 2023.02.01...2024.01.01

MyLA 2023.02.01 Release

27 Sep 13:23
05b29ba
Compare
Choose a tag to compare

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

10 Apr 14:22
5c57e16
Compare
Choose a tag to compare

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 or TIME_ZONE in the env.hjson should be set to match your Canvas instance's default time zone. The value of TZ is the time the container is set to, which is what the application defaults to unless TIME_ZONE is set.

Full Changelog: 2023.01.01...2023.01.02

MyLA-2023.01.01 Release

31 Jan 21:45
58dd7f6
Compare
Choose a tag to compare

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

Configuration updates needed for release:

None

Full Changelog: 2022.02.01...2023.01.01

MyLA 2022.02.01 Release

19 Dec 20:59
8ef3a65
Compare
Choose a tag to compare

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

22 Sep 15:59
8675f95
Compare
Choose a tag to compare

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.

  1. Insert the following entry into the RESOURCE_VALUES list:
    "pages": {"types": ["canvas_pages"],"icon": "fas fa-file-code fa-lg"},

  2. 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

  1. Log in to the Django Administration for MyLA
  2. Go to the Courses page
  3. 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.
  4. From the Action dropdown at the top, select "clear selected last updated values"
  5. 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

27 Jun 20:58
0dcee25
Compare
Choose a tag to compare

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

  • Remove unused block for registration from urls.py (#1072)
  • Update NumPy from 1.21.2 to 1.22.0 (#1386)
  • Update LTIError to lti_error in Pylance (#1365)

MyLA First 2022 Release

29 Apr 19:08
2008dea
Compare
Choose a tag to compare

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 to npm and the package-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 with pip package fontawesomefree (#1363)

MyLA Fall First Release - 2021.03.01 Release Notes

09 Nov 18:16
f4a4bdc
Compare
Choose a tag to compare

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 use config/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