Skip to content

528-srv169-web114

@ekassos ekassos tagged this 08 Jan 19:33
This PR introduces new functionality in the Airtable Scripts and changes
the building configuration so that a new image with the appropriate
dependencies can be pushed to `pingpong-scripts`.

## Changes in the Release workflow (`release.yaml`)
The scripts image follows the `srv` image building flow, including the
same conditions for when an image is built or retagged, albeit in a
different repository.

## New Dockerfile
Because of the different dependency groups between server and script
images, we need a separate Dockerfile. The original server Dockerfile
has been renamed to `Dockerfile.srv` and there is a new
`Dockerfile.scripts` file.

## Changes in `docker-compose`
- In `docker-compose.yaml`, there is a new `scripts` service.
- In `docker-compose.prod.yaml`, there is a new `scripts` service.
- In `docker-compose.dev.yaml`, there is a new `scripts` service with
the appropriate command.

## Changes in Airtable Scripts
- New `sync-all-cron` command to run the scripts creating classes or
adding students based on Airtable records.
- New `_process_students_to_add` to add students to a specific class.
Students are notified via email.
- Make the addition of instructors to Groups as Moderators silent, as
they will be receiving separate communication.
- New functions and code changes to support more dynamic determination
of Assistant configuration field values based on specific templates
stored in Airtable and specific course details, like programming
languages used.
- Assistants are now locked after being created to prevent edits.
- Note: `CreateAssistant` replicates the `api.ts` version of the object,
as `schemas.CreateAssistant` generates errors because of typecasting for
`tools`.
Assets 2
Loading