Toolhub/Progress reports/2020-12-04

Report on activities in the Toolhub project for the week ending 2020-12-04.

Display of toolinfo records edit

Tracked in Phabricator:
Task T264971

Work continued this week on both the backend and frontend for viewing the toolinfo data collected by the crawler. Work on phab:T268789 made the tool records returned by the API more homogeneous by normalizing input differences allowed by the JSON schema for submitting toolinfo data before returning them from the API. With this normalization in place Srishti was able to complete her initial implementation of a paginated card view of all toolinfo records and associated detail pages that the user can drill down to to find expanded details.

Guidelines for using Vuetify spacing styles edit

Tracked in Phabricator:
Task T269056 resolved

Thanks to the progress that Srishti has made on adding RTL support to the Vue frontend, we have discovered a new project guideline for which spacing classes we should be using in our layouts. Vuetify provides a number of handy css classes for adjusting horizontal and vertical spacing. These classes generally follow the naming convention of "{property}{direction}-{size}". The "direction" designates which side of the affected element is adjusted. When creating layouts that are easily mirrored for RTL languages, rather than using "l" and "r" for "left" and "right", we should use "s" and "e" for "start" and "end". The "l" and "r" directions are physical, but the "s" and "e" directions are logical and mirror as desired when $vuetify.rtl is toggled.

We have added a primitive linter to check for these problematic css classes in the future.

Audit log backend edit

Tracked in Phabricator:
Task T264809 resolved

The backend tracking models for audit logging and API to query this data has been merged. The current integration is tracking creation, modification, and deletion of toolinfo.json URLs and the toolinfo records generated when those URLs are crawled. We are also tracking creation of user models which is similar to auto-attach account creations in MediaWiki. The API returns these events as a timestamp, a user who caused the change (null in the case of a "system" action), the object that was the target of the action, and the action taken. The storage and response model also have a place for a description message related to the change, but none of the current tracked events populate that message.

Some follow on changes are expected to the API response as work on building the front end discovers things that can be done on the API side to make displaying this information to a user easier.

Miscellaneous changes edit

  • phab:T268357: Pass user chosen locale from Vue frontend to Django backend
  • gerrit:638701: Navigation drawer improvements
  • gerrit:644395: Add stylelint and stylelint-config-wikimedia ruleset for css liniting
  • gerrit:644626: Add eslint-plugin-vuetify checks for a few deprecated Vuetify usages
  • gerrit:644613: Add banana-checker and make translation files comply

Wrap up edit

Having the frontend displaying toolinfo records is a big milestone! We hope to push forward in the coming week with creating a demonstration environment for the project in Cloud VPS so that members of the advisory council and others in the community can start to use the UI and provide feedback.

The OAuth for API consumers work has now officially been pushed to the upcoming Q3 plan (January-March). In future planning we will try to keep "stretch" goals in a separate list from the committed work to reduce confusion about our capacity and prioritization.