Skip to content

MyLA-2022.01.03 Release

Compare
Choose a tag to compare
@jonespm jonespm released this 22 Sep 15:59
8675f95

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