Skip to content

Make nil acceptable course offering editor#53005

Merged
juanmanzojr merged 16 commits into
stagingfrom
make-nil-acceptable-course-offering-editor
Jul 26, 2023
Merged

Make nil acceptable course offering editor#53005
juanmanzojr merged 16 commits into
stagingfrom
make-nil-acceptable-course-offering-editor

Conversation

@juanmanzojr

@juanmanzojr juanmanzojr commented Jul 25, 2023

Copy link
Copy Markdown
Contributor

Added allows_blank to validations in order for certain fields in the course offering editor to be set back to null. Before the fields were not allowed to be set back to the none option, null.
The issue was brought up here.

curriculum type , marketing_initiative and professional_learning_program all set to non null values.

Screenshot 2023-07-26 at 10 09 15 AM

curriculum type , marketing_initiative and professional_learning_program all set back to null after selecting the (None) option

Screenshot 2023-07-26 at 10 09 29 AM

Testing story

Local

PR Checklist:

  • Tests provide adequate coverage
  • Privacy and Security impacts have been assessed
  • Code is well-commented
  • New features are translatable or updates will not break translations
  • Relevant documentation has been added or updated
  • User impact is well-understood and desirable
  • Pull Request is labeled appropriately
  • Follow-up work items (including potential tech debt) are tracked and linked

@juanmanzojr juanmanzojr marked this pull request as ready for review July 26, 2023 16:49
@juanmanzojr juanmanzojr requested a review from a team July 26, 2023 16:49
Comment thread dashboard/app/models/course_offering.rb Outdated
validates :category, acceptance: {accept: Curriculum::SharedCourseConstants::COURSE_OFFERING_CATEGORIES, message: "must be one of the course offering categories. Expected one of: #{Curriculum::SharedCourseConstants::COURSE_OFFERING_CATEGORIES}. Got: \"%{value}\"."}
validates :curriculum_type, acceptance: {accept: Curriculum::SharedCourseConstants::COURSE_OFFERING_CURRICULUM_TYPES.to_h.values, message: "must be one of the course offering curriculum types. Expected one of: #{Curriculum::SharedCourseConstants::COURSE_OFFERING_CURRICULUM_TYPES.to_h.values}. Got: \"%{value}\"."}
validates :marketing_initiative, acceptance: {accept: Curriculum::SharedCourseConstants::COURSE_OFFERING_MARKETING_INITIATIVES.to_h.values, message: "must be one of the course offering marketing initiatives. Expected one of: #{Curriculum::SharedCourseConstants::COURSE_OFFERING_MARKETING_INITIATIVES.to_h.values}. Got: \"%{value}\"."}
validates :curriculum_type, acceptance: {accept: Curriculum::SharedCourseConstants::COURSE_OFFERING_CURRICULUM_TYPES.to_h.values, message: "must be one of the course offering curriculum types. Expected one of: #{Curriculum::SharedCourseConstants::COURSE_OFFERING_CURRICULUM_TYPES.to_h.values}. Got: \"%{value}\"."}, allow_blank: true

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Was there a reason you went with allow_blank instead of allow_nil? I believe allow_nil would be slightly cleaner so that we're sure we avoid a situation where we have both empty strings and nil values in this column

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ill make this change, I was not sure if we would like to account for both since there are some empty strings in the db now.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah, thanks for looking! Do you know what fields those empty strings are for? I think we want to avoid that for these particular fields, but I suppose that sometimes there's a "real" distinction we'd want to make between nil and '' and allow for both

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No need to spend more time investigating my question! Just curious. Once the allow_nil change is made, feel free to merge without a re-approval

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actually im sorry im taking a look now and I dont see any fields set to empty string. I confused myself during testing this and saw empty strings in the db before making the change to nil. Sounds good thanks!

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No worries, makes sense! Thanks for circling back

@megcrenshaw megcrenshaw left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One small question, but this looks great! Love the simple approach you took to make this work.

…om:code-dot-org/code-dot-org into make-nil-acceptable-course-offering-editor
@juanmanzojr juanmanzojr merged commit 1dabe84 into staging Jul 26, 2023
@juanmanzojr juanmanzojr deleted the make-nil-acceptable-course-offering-editor branch July 26, 2023 20:15
sureshc added a commit that referenced this pull request Aug 2, 2023
* P20-317: Create unit tests for courses i18n sync-in

* Seed/serialize rubrics from levelbuilder to other environments (#52864)

* Serialize rubrics in script_json files

* Update tests given learning goal import

* Fix and add tests

* Fix test failures due to level being required

* Update comment

* [i18n-dev] update crontab

* Serialize self paced pl course offering (#52990)

* Removed self paced pl column and added self paced pl ID column with foreign key

* Removed dropped column from test

* Removed dropped column from summary methods

* Add association to self paced pl Id

* Fixed name error

* Changed to use belongs_to associatation

* Added self paced pl course offering id to test and summary methods

* Serialized self paced pl course offering id field

* Delete .yarn-integrity

* add nvm to PATH

* updating runtime method signature and machine ID setting to be more readable

* Add family name to manage students table (#52779)

* Add family name to manage students table

* Change text, add HelpTip

* Only show in non-PL sections

* Fix key issue; add test

* Remove unused string

* Remove unused styles

* Put everything behind the feature flag

* P20-318: Create unit tests for markdown i18n sync-in

* Make nil acceptable course offering editor (#53005)

* Removed self paced pl column and added self paced pl ID column with foreign key

* Removed dropped column from test

* Removed dropped column from summary methods

* Add association to self paced pl Id

* Fixed name error

* Changed to use belongs_to associatation

* Added self paced pl course offering id to test and summary methods

* Serialized self paced pl course offering id field

* Nil acceptable for professional learning

* Added nil acceptor for marketing initiative and curriculum type

* Ternary Operator

* Delete .yarn-integrity

* Changed to allow_nil

* Revert "adding 4 special certificates for Korea HoC"

* Update styling for dialog to accomodate different screen sizes (#52997)

* Update styling for dialog to accomodate different screen sizes

* Update styling based on feedback

* Reformat

* Fix hr display none

* Revert "Revert "[AI Chat] Add Open AI backend controller"" (#52977)

Revert "Revert "[AI Chat] Add Open AI backend controller""

* cleaning up syntax and adding comments

* Add family name to teacher panel (#53021)

* Added self paced pl dropdown list (#52999)

* Added self paced pl dropdown list

* Removed console.log

* Revert "P20-318: Create unit tests for markdown i18n sync-in"

This reverts commit c2d56a6.

* Updated cookbook versions

* Revert "Update Chef Client to 18.0.185"

* Updated cookbook versions

* levelbuilder content changes (-robo-commit)

* P20-318: Create unit tests for markdown i18n sync-in

* P20-318: Fix I18n::Resources::Apps::ExternalSourcesTest

* P20-316: Move copying of external oceans.json from in.sh

* P20-324: Create unit tests for scripts i18n sync-in

* updated crowdin upload success message in sync-up (#53044)

* [AI Chat] Update PanelContainer for general lab2 use (#53026)

[AI Chat] Update PanelContainer for general lab2 use

* Update rubrics editing page for Curriculum Writers (#52985)

* UI for Curriculum Writer Rubric experience

* modifying the link to the rubrics edit page

* added tests to files

* Modified tests to use shallow instead of mount

* appended disclaimer to embedded projects dialog

* levelbuilder content changes (-robo-commit)

* P20-328: Create unit tests for hourofcode i18n sync-in

* Update `aws-sdk-core` Gem to 3.180 (#53069)

* Publish Database Secrets to Match Updated Naming Convention (#50285)

* Add method that fetches current Stack Name

* Add method that fetches current Stack Name

* Add method that constructs path to stack-specific secret.

* Return  Secret path when not running on a system provisioned via CloudFormation.

* Use stack specific secret to set configuration setting if it exists.

* Temporarily comment out new logic to test on an adhoc.

* Temporarily remove / comment out new functionality.

* Fix missing require.

* Check stack-specific secret first and fallback to environment-type secret.

* Lookup stack-specific secret first, then fallback to environment-type secret.

* Update version of ActiveSupport installed in Chef environment to match the application.

* Handle use case when application is not deployed by a CloudFormation Stack.

* Try loading all the new gems that are needed now to initialize the CDO object.

* Try to avoid requiring lib/cdo/aws/cloud_formation when initializing the CDO object from the Chef execution environment.

* Remove unused Chef recipe that I accidentally added back when resolving a merge conflict.

* Remove experiment.

* Revert experiments.

* Switch from separate username/password configuration settings to a single credentials setting that contains both in the format expected by RDS Proxy.

* Add new `StackSecrets` Designation

And split up the existing WIP implementation of stack-aware secrets to
make a distinction between secrets that actually want to implement the
extra checks required for that awareness and secrets that we want to be
exclusively environment-specific and not stack-specific.

* Add new db_credential_ configuration setting to replace username/password settings.

* Refactor Secrets Config

Specifically, move a lot of functionality into the Secrets and StackSecrets classes themselves, and refactor them a bit to be slighty smarter about how they store their data.

* Change names of database credential secrets.

* Use Stack secret to populate database credentials.

* Switch db cluster id and endpoint config settings to be stack-specific secrets.

* Fix string interpolation syntax error.

* Start transition to new config naming convention.

* Check pick Aurora engine upgrade.

* Change cluster_id and endpoint secrets to be Stack-specific.

* Ensure that we set the Stack-specific path to lookup when eager-loading required Secrets during web application server initialization.

* Remove usage of CDO, since this might be invoked when initializing CDO. Speculatively increasing HTTP timeouts to resolve intermittent AWS client errors.

* Move stack name lookup to the SecretsConfig module to ensure that initializing CDO has as few dependencies as possible.

* Require Net:HTTP

* Explicitly set Region when initializing EC2 client.

* Update tests now that the stack name method is implemented within the SecretsConfig module.

* Wait until RDS Proxy has provisioned before starting to provision daemon and console EC2 Instances.

* Fix current_stack_name method.

* Fix invocation of stack_name method.

* Restore changes lost during resolution of merge conflict when bringing in refactoring of CDO.

* Fix invocation of class method and remove incorrect comment about CloudFormation.

* Stack-specific secrets functionality does not require fixing dependency on provisioning of the RDS Proxy.

* Reminding my self to fix this corner of the secrets lookup logic.

* Ensure that EC2 Instances do not start provisioning until the RDS Proxy is deployed.

* Stop using Chef cookbook logic to determine whether to use RDS Proxy to connect to the database.

* Add proxy writer and reader endpoint configuration settings.

* Publish RDS Proxy Writer & Reader Endpoints to Stack Secrets so they can populate CDO config settings in the future.

* Set value of config settings to be JSON objects, and not strings that happen to be JSON objects.

* Resume provisioning the db_cluster_id Stack secret.

* Set values of Secrets that populate configuration settings when an adhoc does not use an RDS database.

---------

Co-authored-by: Elijah Hamovitz <elijahhamovitz@gmail.com>

* Fix indentation and wrap JSON values in quotes. (#53078)

* Hard code writer and reader proxy endpoints in production with placeholder values. (#53084)

* levelbuilder content changes (-robo-commit)

* staging content changes (-robo-commit)

* Add beginning components for rubrics teacher experience (#53023)

* Very beginning of FAB button

* Rename/refactor component

* Move container style to scss file and add some structure

* Add the menu bar and move content to a new component

* Add test for RubricFloatingActionButton

* Undo changes to show the floating action button for now

* I18n-ize eventual user-facing string

* fixxed broken string (#53067)

* Update SETUP.md doc for Ubuntu using EC2 instance (#53048)

Update SETUP.md doc for Ubuntu using EC2 instance

* [AI Chat] Convert panelContainer to .tsx file (#53025)

[AI Chat] Convert panelContainer to .tsx file

* Add AI PL homepage and skinny banners (#52943)

* add DCDO flag

* update hero banner graphics and styles

* add announcements banner on teacher homepage

* add skinny banner on teach page

* move curriculum skinny banner on the homepage

* add homepage hero banner

* add comments

* update description copy

* Delete Pegasus type spec page (#53050)

* Replace symlink with actual file (#52998)

* Project Beats: make when run block undeletable and immovable (#53070)

* Authorization Server - JWKS endpoint (#52994)

- Add route and controller
- Add unit test
- Add `bin/generate-jwks` script  
- Add new jwks values to config files
- Add documentation at `docs/jwks.md`
- Push private key to AWS Secrets Manager

Signed-off-by: Nick Lathe <nick.lathe@code.org>

* collapse on press Escape (#53053)

* Fix bin/i18n tests

* etags updates

* pegasus i18n updates

* pegasus i18n markdown updates

* dashboard i18n updates - Arabic

* dashboard i18n updates - Azerbaijani

* dashboard i18n updates - Bulgarian

* dashboard i18n updates - Bengali

* dashboard i18n updates - Bosnian

* dashboard i18n updates - Catalan

* dashboard i18n updates - Corsican

* dashboard i18n updates - Czech

* dashboard i18n updates - Danish

* dashboard i18n updates - German

* dashboard i18n updates - Dhivehi

* dashboard i18n updates - Greek

* dashboard i18n updates - English, United Kingdom

* dashboard i18n updates - Spanish

* dashboard i18n updates - Spanish, Mexico

* dashboard i18n updates - Estonian

* dashboard i18n updates - Basque

* dashboard i18n updates - Dari

* dashboard i18n updates - Persian

* dashboard i18n updates - Finnish

* dashboard i18n updates - Filipino

* dashboard i18n updates - French

* dashboard i18n updates - Irish

* dashboard i18n updates - Galician

* dashboard i18n updates - Hawaiian

* dashboard i18n updates - Hebrew

* dashboard i18n updates - Hindi

* dashboard i18n updates - Croatian

* dashboard i18n updates - Hungarian

* dashboard i18n updates - Armenian

* dashboard i18n updates - Indonesian

* dashboard i18n updates - Icelandic

* dashboard i18n updates - Italian

* dashboard i18n updates - Japanese

* dashboard i18n updates - Georgian

* dashboard i18n updates - Kazakh

* dashboard i18n updates - Kannada

* dashboard i18n updates - Khmer

* dashboard i18n updates - Korean

* dashboard i18n updates - Kurdish

* dashboard i18n updates - Kyrgyz

* dashboard i18n updates - Lithuanian

* dashboard i18n updates - Latvian

* dashboard i18n updates - Maori

* dashboard i18n updates - Macedonian

* dashboard i18n updates - Mongolian

* dashboard i18n updates - Marathi

* dashboard i18n updates - Malay

* dashboard i18n updates - Maltese

* dashboard i18n updates - Burmese

* dashboard i18n updates - Nepali

* dashboard i18n updates - Dutch

* dashboard i18n updates - Norwegian Nynorsk

* dashboard i18n updates - Norwegian

* dashboard i18n updates - Polish

* dashboard i18n updates - Pashto

* dashboard i18n updates - Portuguese, Brazilian

* dashboard i18n updates - Portuguese

* dashboard i18n updates - Romanian

* dashboard i18n updates - Russian

* dashboard i18n updates - Northern Sami

* dashboard i18n updates - Samoan

* dashboard i18n updates - Sinhala

* dashboard i18n updates - Slovak

* dashboard i18n updates - Slovenian

* dashboard i18n updates - Albanian

* dashboard i18n updates - Serbian (Cyrillic)

* dashboard i18n updates - Swedish

* dashboard i18n updates - Tamil

* dashboard i18n updates - Telugu

* dashboard i18n updates - Tajik

* dashboard i18n updates - Thai

* dashboard i18n updates - Turkish

* dashboard i18n updates - Ukrainian

* dashboard i18n updates - Urdu (Pakistan)

* dashboard i18n updates - Uzbek

* dashboard i18n updates - Vietnamese

* dashboard i18n updates - Chinese Simplified

* dashboard i18n updates - Chinese Traditional

* dashboard i18n updates - Zulu

* apps i18n updates

* hoc i18n updates

* dashboard i18n sync

* apps i18n sync

* hoc i18n sync

* [Google Blockly] Shareable procedures blocks (#52932)

* add support for color overrides for button fields

* add shareable procedure block definitions

* register custom procedure blocks

* enabled modal function editor on google blockly levels

* register shareable procedure blocks in music lab, no svg frames

* bump to 1.2.10

* add serializer to wrapper

* sort definitions to front of block lists

* copy block array before sorting

* re-sort blocks before positioning

* Revert "re-sort blocks before positioning"

This reverts commit 4e206dd.

* reorder blocks before positioning

* add parameter to sort function

* reorganize functions

* add comments

* remove unnecessary unregistering

* revert remove unregister

was breaking unit tests

* add unit tests

* rename procedureDefinitionTypes

* specify any type for value option in button fields

* typo

* no-op for blocks without any inputs

* replace sort logic with partitioning

* remove extra copy

* remove DCDO flag (#53060)

* Music/Lab2: add start over dialog (#53065)

* Music/Lab2: add start over dialog

* PR feedback

* rename undo redo buttons

* Add course deprecation page (#52930)

* Make new course deprecation partial, add i18n strings, temporarily route 404 there for development

* Update image, styling, copy

* Correct button style, text color, link address

* Fix link, use remove nested button

* Move design system link button to application.css, clean up

* Clean up

* Use more semantic p tag

* Use readable class names locally (#53064)

* Sort By Family Name Dropdown (#53022)

* first draft of dropdown component

* switching to localStorage

* formatted correctly

* adding dcdo flag

* adding test file

* attempting tooltip, redux work

* simplifying to most basic version

* fixing test

* added a red disclaimer under the embed sharing option on app/game lab

* implemented syntax changes for cleaner code

* levelbuilder content changes (-robo-commit)

* Update copy on the hero banner for CSF and CSP pages (#53100)

* update copy on the hero banner for csf and csp pages

* remove test string name

* Add video field to course offering editor (#53056)

* Added self paced pl dropdown list

* Removed console.log

* Added video field selector to course offering editor

* Removed Id from summary and fixed props in test

* Fixed tests

* Fixed Spacing

* Remove setters/getters for value property for text areas (#53074)

* remove text area value

* add text prop

* multiline

* Revert to initial approach to displaying textarea content in editor

* Fix test

---------

Co-authored-by: Ubuntu <ubuntu@ip-10-0-0-55.ec2.internal>

* Music: start converting block definitions to TypeScript (#53098)

* used spread syntax

* factor out filter component (#53071)

* Revert "appended disclaimer to embedded projects dialog"

This reverts commit 249d74f.

* add quotes around field id string (#53118)

* Add published date field to course offering editor (#53077)

* Added self paced pl dropdown list

* Removed console.log

* Added video field selector to course offering editor

* Removed Id from summary and fixed props in test

* Fixed tests

* Added published date field to course offering editor

* Added Date Picker component

* Fixed Date Picker and added props to test

* Added clear button

* Styling

* Update Maker micro:bit PDF links - Summer 2023 (#53116)

* update course booklet PDF links

these are fetched from AWS

* update photo links

* deprecate old links

* levelbuilder content changes (-robo-commit)

* P20-75: Fix function_defenitions DE translations

* Update Scripts that Launch MySQL Command Line Client (#50763)

---------

Signed-off-by: Nick Lathe <nick.lathe@code.org>
Co-authored-by: Continuous Integration <dev@code.org>
Co-authored-by: Dmytro Antonyuk <137330041+dmantonyuk@users.noreply.github.com>
Co-authored-by: Artem Vavilov <11708250+artem-vavilov@users.noreply.github.com>
Co-authored-by: Artem Vavilov <artem.vavilov.7@gmail.com>
Co-authored-by: Bethany Connor <46464143+bethanyaconnor@users.noreply.github.com>
Co-authored-by: Erin Ferreirae <erin.ferreirae@code.org>
Co-authored-by: juanmanzojr <137838584+juanmanzojr@users.noreply.github.com>
Co-authored-by: Nick Lathe <nick.lathe@code.org>
Co-authored-by: Anna Xu <annaxu@wustl.edu>
Co-authored-by: Ryan Shipp <1382374+rshipp@users.noreply.github.com>
Co-authored-by: annaxuphoto <anna@code.org>
Co-authored-by: Meg Crenshaw <meg@code.org>
Co-authored-by: Vijaya Manohararaj <124813947+vijayamanohararaj@users.noreply.github.com>
Co-authored-by: fisher-alice <107423305+fisher-alice@users.noreply.github.com>
Co-authored-by: Elijah Hamovitz <elijahhamovitz@gmail.com>
Co-authored-by: Mario Gil Correa <66776217+mgc1194@users.noreply.github.com>
Co-authored-by: Kaitie O <kaitie@code.org>
Co-authored-by: Afifah Kashif <kashifafifah@gmail.com>
Co-authored-by: suresh <suresh@code.org>
Co-authored-by: Kelby Hawn <9256643+kelbyhawn@users.noreply.github.com>
Co-authored-by: bencodeorg <ben@code.org>
Co-authored-by: Sanchit Malhotra <85528507+sanchitmalhotra126@users.noreply.github.com>
Co-authored-by: Turner Riley <56283563+TurnerRiley@users.noreply.github.com>
Co-authored-by: Erin Ferreirae <131800576+elf-code@users.noreply.github.com>
Co-authored-by: Molly Moen <molly@code.org>
Co-authored-by: Mike Harvey <43474485+mikeharv@users.noreply.github.com>
Co-authored-by: Dayne <dayne@code.org>
Co-authored-by: Hannah Bergam <hannahbergam@gmail.com>
Co-authored-by: Ubuntu <ubuntu@ip-10-0-0-55.ec2.internal>
Co-authored-by: Brendan Reville <breville@users.noreply.github.com>
Co-authored-by: Afifah <31292421+AfifahK@users.noreply.github.com>
Co-authored-by: wilkie <david.wilkinson@code.org>
sureshc added a commit that referenced this pull request Aug 3, 2023
* P20-317: Create unit tests for courses i18n sync-in

* Seed/serialize rubrics from levelbuilder to other environments (#52864)

* Serialize rubrics in script_json files

* Update tests given learning goal import

* Fix and add tests

* Fix test failures due to level being required

* Update comment

* [i18n-dev] update crontab

* Serialize self paced pl course offering (#52990)

* Removed self paced pl column and added self paced pl ID column with foreign key

* Removed dropped column from test

* Removed dropped column from summary methods

* Add association to self paced pl Id

* Fixed name error

* Changed to use belongs_to associatation

* Added self paced pl course offering id to test and summary methods

* Serialized self paced pl course offering id field

* Delete .yarn-integrity

* add nvm to PATH

* updating runtime method signature and machine ID setting to be more readable

* Add family name to manage students table (#52779)

* Add family name to manage students table

* Change text, add HelpTip

* Only show in non-PL sections

* Fix key issue; add test

* Remove unused string

* Remove unused styles

* Put everything behind the feature flag

* P20-318: Create unit tests for markdown i18n sync-in

* Make nil acceptable course offering editor (#53005)

* Removed self paced pl column and added self paced pl ID column with foreign key

* Removed dropped column from test

* Removed dropped column from summary methods

* Add association to self paced pl Id

* Fixed name error

* Changed to use belongs_to associatation

* Added self paced pl course offering id to test and summary methods

* Serialized self paced pl course offering id field

* Nil acceptable for professional learning

* Added nil acceptor for marketing initiative and curriculum type

* Ternary Operator

* Delete .yarn-integrity

* Changed to allow_nil

* Revert "adding 4 special certificates for Korea HoC"

* Update styling for dialog to accomodate different screen sizes (#52997)

* Update styling for dialog to accomodate different screen sizes

* Update styling based on feedback

* Reformat

* Fix hr display none

* Revert "Revert "[AI Chat] Add Open AI backend controller"" (#52977)

Revert "Revert "[AI Chat] Add Open AI backend controller""

* cleaning up syntax and adding comments

* Add family name to teacher panel (#53021)

* Added self paced pl dropdown list (#52999)

* Added self paced pl dropdown list

* Removed console.log

* Revert "P20-318: Create unit tests for markdown i18n sync-in"

This reverts commit c2d56a6.

* Updated cookbook versions

* Revert "Update Chef Client to 18.0.185"

* Updated cookbook versions

* levelbuilder content changes (-robo-commit)

* P20-318: Create unit tests for markdown i18n sync-in

* P20-318: Fix I18n::Resources::Apps::ExternalSourcesTest

* P20-316: Move copying of external oceans.json from in.sh

* P20-324: Create unit tests for scripts i18n sync-in

* updated crowdin upload success message in sync-up (#53044)

* [AI Chat] Update PanelContainer for general lab2 use (#53026)

[AI Chat] Update PanelContainer for general lab2 use

* Update rubrics editing page for Curriculum Writers (#52985)

* UI for Curriculum Writer Rubric experience

* modifying the link to the rubrics edit page

* added tests to files

* Modified tests to use shallow instead of mount

* appended disclaimer to embedded projects dialog

* levelbuilder content changes (-robo-commit)

* P20-328: Create unit tests for hourofcode i18n sync-in

* Update `aws-sdk-core` Gem to 3.180 (#53069)

* Publish Database Secrets to Match Updated Naming Convention (#50285)

* Add method that fetches current Stack Name

* Add method that fetches current Stack Name

* Add method that constructs path to stack-specific secret.

* Return  Secret path when not running on a system provisioned via CloudFormation.

* Use stack specific secret to set configuration setting if it exists.

* Temporarily comment out new logic to test on an adhoc.

* Temporarily remove / comment out new functionality.

* Fix missing require.

* Check stack-specific secret first and fallback to environment-type secret.

* Lookup stack-specific secret first, then fallback to environment-type secret.

* Update version of ActiveSupport installed in Chef environment to match the application.

* Handle use case when application is not deployed by a CloudFormation Stack.

* Try loading all the new gems that are needed now to initialize the CDO object.

* Try to avoid requiring lib/cdo/aws/cloud_formation when initializing the CDO object from the Chef execution environment.

* Remove unused Chef recipe that I accidentally added back when resolving a merge conflict.

* Remove experiment.

* Revert experiments.

* Switch from separate username/password configuration settings to a single credentials setting that contains both in the format expected by RDS Proxy.

* Add new `StackSecrets` Designation

And split up the existing WIP implementation of stack-aware secrets to
make a distinction between secrets that actually want to implement the
extra checks required for that awareness and secrets that we want to be
exclusively environment-specific and not stack-specific.

* Add new db_credential_ configuration setting to replace username/password settings.

* Refactor Secrets Config

Specifically, move a lot of functionality into the Secrets and StackSecrets classes themselves, and refactor them a bit to be slighty smarter about how they store their data.

* Change names of database credential secrets.

* Use Stack secret to populate database credentials.

* Switch db cluster id and endpoint config settings to be stack-specific secrets.

* Fix string interpolation syntax error.

* Start transition to new config naming convention.

* Check pick Aurora engine upgrade.

* Change cluster_id and endpoint secrets to be Stack-specific.

* Ensure that we set the Stack-specific path to lookup when eager-loading required Secrets during web application server initialization.

* Remove usage of CDO, since this might be invoked when initializing CDO. Speculatively increasing HTTP timeouts to resolve intermittent AWS client errors.

* Move stack name lookup to the SecretsConfig module to ensure that initializing CDO has as few dependencies as possible.

* Require Net:HTTP

* Explicitly set Region when initializing EC2 client.

* Update tests now that the stack name method is implemented within the SecretsConfig module.

* Wait until RDS Proxy has provisioned before starting to provision daemon and console EC2 Instances.

* Fix current_stack_name method.

* Fix invocation of stack_name method.

* Restore changes lost during resolution of merge conflict when bringing in refactoring of CDO.

* Fix invocation of class method and remove incorrect comment about CloudFormation.

* Stack-specific secrets functionality does not require fixing dependency on provisioning of the RDS Proxy.

* Reminding my self to fix this corner of the secrets lookup logic.

* Ensure that EC2 Instances do not start provisioning until the RDS Proxy is deployed.

* Stop using Chef cookbook logic to determine whether to use RDS Proxy to connect to the database.

* Add proxy writer and reader endpoint configuration settings.

* Publish RDS Proxy Writer & Reader Endpoints to Stack Secrets so they can populate CDO config settings in the future.

* Set value of config settings to be JSON objects, and not strings that happen to be JSON objects.

* Resume provisioning the db_cluster_id Stack secret.

* Set values of Secrets that populate configuration settings when an adhoc does not use an RDS database.

---------

Co-authored-by: Elijah Hamovitz <elijahhamovitz@gmail.com>

* Fix indentation and wrap JSON values in quotes. (#53078)

* Hard code writer and reader proxy endpoints in production with placeholder values. (#53084)

* levelbuilder content changes (-robo-commit)

* staging content changes (-robo-commit)

* Add beginning components for rubrics teacher experience (#53023)

* Very beginning of FAB button

* Rename/refactor component

* Move container style to scss file and add some structure

* Add the menu bar and move content to a new component

* Add test for RubricFloatingActionButton

* Undo changes to show the floating action button for now

* I18n-ize eventual user-facing string

* fixxed broken string (#53067)

* Update SETUP.md doc for Ubuntu using EC2 instance (#53048)

Update SETUP.md doc for Ubuntu using EC2 instance

* [AI Chat] Convert panelContainer to .tsx file (#53025)

[AI Chat] Convert panelContainer to .tsx file

* Add AI PL homepage and skinny banners (#52943)

* add DCDO flag

* update hero banner graphics and styles

* add announcements banner on teacher homepage

* add skinny banner on teach page

* move curriculum skinny banner on the homepage

* add homepage hero banner

* add comments

* update description copy

* Delete Pegasus type spec page (#53050)

* Replace symlink with actual file (#52998)

* Project Beats: make when run block undeletable and immovable (#53070)

* Authorization Server - JWKS endpoint (#52994)

- Add route and controller
- Add unit test
- Add `bin/generate-jwks` script  
- Add new jwks values to config files
- Add documentation at `docs/jwks.md`
- Push private key to AWS Secrets Manager

Signed-off-by: Nick Lathe <nick.lathe@code.org>

* collapse on press Escape (#53053)

* Fix bin/i18n tests

* etags updates

* pegasus i18n updates

* pegasus i18n markdown updates

* dashboard i18n updates - Arabic

* dashboard i18n updates - Azerbaijani

* dashboard i18n updates - Bulgarian

* dashboard i18n updates - Bengali

* dashboard i18n updates - Bosnian

* dashboard i18n updates - Catalan

* dashboard i18n updates - Corsican

* dashboard i18n updates - Czech

* dashboard i18n updates - Danish

* dashboard i18n updates - German

* dashboard i18n updates - Dhivehi

* dashboard i18n updates - Greek

* dashboard i18n updates - English, United Kingdom

* dashboard i18n updates - Spanish

* dashboard i18n updates - Spanish, Mexico

* dashboard i18n updates - Estonian

* dashboard i18n updates - Basque

* dashboard i18n updates - Dari

* dashboard i18n updates - Persian

* dashboard i18n updates - Finnish

* dashboard i18n updates - Filipino

* dashboard i18n updates - French

* dashboard i18n updates - Irish

* dashboard i18n updates - Galician

* dashboard i18n updates - Hawaiian

* dashboard i18n updates - Hebrew

* dashboard i18n updates - Hindi

* dashboard i18n updates - Croatian

* dashboard i18n updates - Hungarian

* dashboard i18n updates - Armenian

* dashboard i18n updates - Indonesian

* dashboard i18n updates - Icelandic

* dashboard i18n updates - Italian

* dashboard i18n updates - Japanese

* dashboard i18n updates - Georgian

* dashboard i18n updates - Kazakh

* dashboard i18n updates - Kannada

* dashboard i18n updates - Khmer

* dashboard i18n updates - Korean

* dashboard i18n updates - Kurdish

* dashboard i18n updates - Kyrgyz

* dashboard i18n updates - Lithuanian

* dashboard i18n updates - Latvian

* dashboard i18n updates - Maori

* dashboard i18n updates - Macedonian

* dashboard i18n updates - Mongolian

* dashboard i18n updates - Marathi

* dashboard i18n updates - Malay

* dashboard i18n updates - Maltese

* dashboard i18n updates - Burmese

* dashboard i18n updates - Nepali

* dashboard i18n updates - Dutch

* dashboard i18n updates - Norwegian Nynorsk

* dashboard i18n updates - Norwegian

* dashboard i18n updates - Polish

* dashboard i18n updates - Pashto

* dashboard i18n updates - Portuguese, Brazilian

* dashboard i18n updates - Portuguese

* dashboard i18n updates - Romanian

* dashboard i18n updates - Russian

* dashboard i18n updates - Northern Sami

* dashboard i18n updates - Samoan

* dashboard i18n updates - Sinhala

* dashboard i18n updates - Slovak

* dashboard i18n updates - Slovenian

* dashboard i18n updates - Albanian

* dashboard i18n updates - Serbian (Cyrillic)

* dashboard i18n updates - Swedish

* dashboard i18n updates - Tamil

* dashboard i18n updates - Telugu

* dashboard i18n updates - Tajik

* dashboard i18n updates - Thai

* dashboard i18n updates - Turkish

* dashboard i18n updates - Ukrainian

* dashboard i18n updates - Urdu (Pakistan)

* dashboard i18n updates - Uzbek

* dashboard i18n updates - Vietnamese

* dashboard i18n updates - Chinese Simplified

* dashboard i18n updates - Chinese Traditional

* dashboard i18n updates - Zulu

* apps i18n updates

* hoc i18n updates

* dashboard i18n sync

* apps i18n sync

* hoc i18n sync

* [Google Blockly] Shareable procedures blocks (#52932)

* add support for color overrides for button fields

* add shareable procedure block definitions

* register custom procedure blocks

* enabled modal function editor on google blockly levels

* register shareable procedure blocks in music lab, no svg frames

* bump to 1.2.10

* add serializer to wrapper

* sort definitions to front of block lists

* copy block array before sorting

* re-sort blocks before positioning

* Revert "re-sort blocks before positioning"

This reverts commit 4e206dd.

* reorder blocks before positioning

* add parameter to sort function

* reorganize functions

* add comments

* remove unnecessary unregistering

* revert remove unregister

was breaking unit tests

* add unit tests

* rename procedureDefinitionTypes

* specify any type for value option in button fields

* typo

* no-op for blocks without any inputs

* replace sort logic with partitioning

* remove extra copy

* remove DCDO flag (#53060)

* Music/Lab2: add start over dialog (#53065)

* Music/Lab2: add start over dialog

* PR feedback

* rename undo redo buttons

* Add course deprecation page (#52930)

* Make new course deprecation partial, add i18n strings, temporarily route 404 there for development

* Update image, styling, copy

* Correct button style, text color, link address

* Fix link, use remove nested button

* Move design system link button to application.css, clean up

* Clean up

* Use more semantic p tag

* Use readable class names locally (#53064)

* Sort By Family Name Dropdown (#53022)

* first draft of dropdown component

* switching to localStorage

* formatted correctly

* adding dcdo flag

* adding test file

* attempting tooltip, redux work

* simplifying to most basic version

* fixing test

* added a red disclaimer under the embed sharing option on app/game lab

* implemented syntax changes for cleaner code

* levelbuilder content changes (-robo-commit)

* Update copy on the hero banner for CSF and CSP pages (#53100)

* update copy on the hero banner for csf and csp pages

* remove test string name

* Add video field to course offering editor (#53056)

* Added self paced pl dropdown list

* Removed console.log

* Added video field selector to course offering editor

* Removed Id from summary and fixed props in test

* Fixed tests

* Fixed Spacing

* Remove setters/getters for value property for text areas (#53074)

* remove text area value

* add text prop

* multiline

* Revert to initial approach to displaying textarea content in editor

* Fix test

---------

Co-authored-by: Ubuntu <ubuntu@ip-10-0-0-55.ec2.internal>

* Music: start converting block definitions to TypeScript (#53098)

* used spread syntax

* factor out filter component (#53071)

* Revert "appended disclaimer to embedded projects dialog"

This reverts commit 249d74f.

* add quotes around field id string (#53118)

* Add published date field to course offering editor (#53077)

* Added self paced pl dropdown list

* Removed console.log

* Added video field selector to course offering editor

* Removed Id from summary and fixed props in test

* Fixed tests

* Added published date field to course offering editor

* Added Date Picker component

* Fixed Date Picker and added props to test

* Added clear button

* Styling

* Update Maker micro:bit PDF links - Summer 2023 (#53116)

* update course booklet PDF links

these are fetched from AWS

* update photo links

* deprecate old links

* levelbuilder content changes (-robo-commit)

* P20-75: Fix function_defenitions DE translations

* Update Scripts that Launch MySQL Command Line Client (#50763)

---------

Signed-off-by: Nick Lathe <nick.lathe@code.org>
Co-authored-by: Continuous Integration <dev@code.org>
Co-authored-by: Dmytro Antonyuk <137330041+dmantonyuk@users.noreply.github.com>
Co-authored-by: Artem Vavilov <11708250+artem-vavilov@users.noreply.github.com>
Co-authored-by: Artem Vavilov <artem.vavilov.7@gmail.com>
Co-authored-by: Bethany Connor <46464143+bethanyaconnor@users.noreply.github.com>
Co-authored-by: Erin Ferreirae <erin.ferreirae@code.org>
Co-authored-by: juanmanzojr <137838584+juanmanzojr@users.noreply.github.com>
Co-authored-by: Nick Lathe <nick.lathe@code.org>
Co-authored-by: Anna Xu <annaxu@wustl.edu>
Co-authored-by: Ryan Shipp <1382374+rshipp@users.noreply.github.com>
Co-authored-by: annaxuphoto <anna@code.org>
Co-authored-by: Meg Crenshaw <meg@code.org>
Co-authored-by: Vijaya Manohararaj <124813947+vijayamanohararaj@users.noreply.github.com>
Co-authored-by: fisher-alice <107423305+fisher-alice@users.noreply.github.com>
Co-authored-by: Elijah Hamovitz <elijahhamovitz@gmail.com>
Co-authored-by: Mario Gil Correa <66776217+mgc1194@users.noreply.github.com>
Co-authored-by: Kaitie O <kaitie@code.org>
Co-authored-by: Afifah Kashif <kashifafifah@gmail.com>
Co-authored-by: Kelby Hawn <9256643+kelbyhawn@users.noreply.github.com>
Co-authored-by: bencodeorg <ben@code.org>
Co-authored-by: Sanchit Malhotra <85528507+sanchitmalhotra126@users.noreply.github.com>
Co-authored-by: Turner Riley <56283563+TurnerRiley@users.noreply.github.com>
Co-authored-by: Erin Ferreirae <131800576+elf-code@users.noreply.github.com>
Co-authored-by: Molly Moen <molly@code.org>
Co-authored-by: Mike Harvey <43474485+mikeharv@users.noreply.github.com>
Co-authored-by: Dayne <dayne@code.org>
Co-authored-by: Hannah Bergam <hannahbergam@gmail.com>
Co-authored-by: Ubuntu <ubuntu@ip-10-0-0-55.ec2.internal>
Co-authored-by: Brendan Reville <breville@users.noreply.github.com>
Co-authored-by: Afifah <31292421+AfifahK@users.noreply.github.com>
Co-authored-by: wilkie <david.wilkinson@code.org>
snickell pushed a commit that referenced this pull request Feb 3, 2024
* P20-317: Create unit tests for courses i18n sync-in

* Seed/serialize rubrics from levelbuilder to other environments (#52864)

* Serialize rubrics in script_json files

* Update tests given learning goal import

* Fix and add tests

* Fix test failures due to level being required

* Update comment

* [i18n-dev] update crontab

* Serialize self paced pl course offering (#52990)

* Removed self paced pl column and added self paced pl ID column with foreign key

* Removed dropped column from test

* Removed dropped column from summary methods

* Add association to self paced pl Id

* Fixed name error

* Changed to use belongs_to associatation

* Added self paced pl course offering id to test and summary methods

* Serialized self paced pl course offering id field

* Delete .yarn-integrity

* add nvm to PATH

* updating runtime method signature and machine ID setting to be more readable

* Add family name to manage students table (#52779)

* Add family name to manage students table

* Change text, add HelpTip

* Only show in non-PL sections

* Fix key issue; add test

* Remove unused string

* Remove unused styles

* Put everything behind the feature flag

* P20-318: Create unit tests for markdown i18n sync-in

* Make nil acceptable course offering editor (#53005)

* Removed self paced pl column and added self paced pl ID column with foreign key

* Removed dropped column from test

* Removed dropped column from summary methods

* Add association to self paced pl Id

* Fixed name error

* Changed to use belongs_to associatation

* Added self paced pl course offering id to test and summary methods

* Serialized self paced pl course offering id field

* Nil acceptable for professional learning

* Added nil acceptor for marketing initiative and curriculum type

* Ternary Operator

* Delete .yarn-integrity

* Changed to allow_nil

* Revert "adding 4 special certificates for Korea HoC"

* Update styling for dialog to accomodate different screen sizes (#52997)

* Update styling for dialog to accomodate different screen sizes

* Update styling based on feedback

* Reformat

* Fix hr display none

* Revert "Revert "[AI Chat] Add Open AI backend controller"" (#52977)

Revert "Revert "[AI Chat] Add Open AI backend controller""

* cleaning up syntax and adding comments

* Add family name to teacher panel (#53021)

* Added self paced pl dropdown list (#52999)

* Added self paced pl dropdown list

* Removed console.log

* Revert "P20-318: Create unit tests for markdown i18n sync-in"

This reverts commit c2d56a6.

* Updated cookbook versions

* Revert "Update Chef Client to 18.0.185"

* Updated cookbook versions

* levelbuilder content changes (-robo-commit)

* P20-318: Create unit tests for markdown i18n sync-in

* P20-318: Fix I18n::Resources::Apps::ExternalSourcesTest

* P20-316: Move copying of external oceans.json from in.sh

* P20-324: Create unit tests for scripts i18n sync-in

* updated crowdin upload success message in sync-up (#53044)

* [AI Chat] Update PanelContainer for general lab2 use (#53026)

[AI Chat] Update PanelContainer for general lab2 use

* Update rubrics editing page for Curriculum Writers (#52985)

* UI for Curriculum Writer Rubric experience

* modifying the link to the rubrics edit page

* added tests to files

* Modified tests to use shallow instead of mount

* appended disclaimer to embedded projects dialog

* levelbuilder content changes (-robo-commit)

* P20-328: Create unit tests for hourofcode i18n sync-in

* Update `aws-sdk-core` Gem to 3.180 (#53069)

* Publish Database Secrets to Match Updated Naming Convention (#50285)

* Add method that fetches current Stack Name

* Add method that fetches current Stack Name

* Add method that constructs path to stack-specific secret.

* Return  Secret path when not running on a system provisioned via CloudFormation.

* Use stack specific secret to set configuration setting if it exists.

* Temporarily comment out new logic to test on an adhoc.

* Temporarily remove / comment out new functionality.

* Fix missing require.

* Check stack-specific secret first and fallback to environment-type secret.

* Lookup stack-specific secret first, then fallback to environment-type secret.

* Update version of ActiveSupport installed in Chef environment to match the application.

* Handle use case when application is not deployed by a CloudFormation Stack.

* Try loading all the new gems that are needed now to initialize the CDO object.

* Try to avoid requiring lib/cdo/aws/cloud_formation when initializing the CDO object from the Chef execution environment.

* Remove unused Chef recipe that I accidentally added back when resolving a merge conflict.

* Remove experiment.

* Revert experiments.

* Switch from separate username/password configuration settings to a single credentials setting that contains both in the format expected by RDS Proxy.

* Add new `StackSecrets` Designation

And split up the existing WIP implementation of stack-aware secrets to
make a distinction between secrets that actually want to implement the
extra checks required for that awareness and secrets that we want to be
exclusively environment-specific and not stack-specific.

* Add new db_credential_ configuration setting to replace username/password settings.

* Refactor Secrets Config

Specifically, move a lot of functionality into the Secrets and StackSecrets classes themselves, and refactor them a bit to be slighty smarter about how they store their data.

* Change names of database credential secrets.

* Use Stack secret to populate database credentials.

* Switch db cluster id and endpoint config settings to be stack-specific secrets.

* Fix string interpolation syntax error.

* Start transition to new config naming convention.

* Check pick Aurora engine upgrade.

* Change cluster_id and endpoint secrets to be Stack-specific.

* Ensure that we set the Stack-specific path to lookup when eager-loading required Secrets during web application server initialization.

* Remove usage of CDO, since this might be invoked when initializing CDO. Speculatively increasing HTTP timeouts to resolve intermittent AWS client errors.

* Move stack name lookup to the SecretsConfig module to ensure that initializing CDO has as few dependencies as possible.

* Require Net:HTTP

* Explicitly set Region when initializing EC2 client.

* Update tests now that the stack name method is implemented within the SecretsConfig module.

* Wait until RDS Proxy has provisioned before starting to provision daemon and console EC2 Instances.

* Fix current_stack_name method.

* Fix invocation of stack_name method.

* Restore changes lost during resolution of merge conflict when bringing in refactoring of CDO.

* Fix invocation of class method and remove incorrect comment about CloudFormation.

* Stack-specific secrets functionality does not require fixing dependency on provisioning of the RDS Proxy.

* Reminding my self to fix this corner of the secrets lookup logic.

* Ensure that EC2 Instances do not start provisioning until the RDS Proxy is deployed.

* Stop using Chef cookbook logic to determine whether to use RDS Proxy to connect to the database.

* Add proxy writer and reader endpoint configuration settings.

* Publish RDS Proxy Writer & Reader Endpoints to Stack Secrets so they can populate CDO config settings in the future.

* Set value of config settings to be JSON objects, and not strings that happen to be JSON objects.

* Resume provisioning the db_cluster_id Stack secret.

* Set values of Secrets that populate configuration settings when an adhoc does not use an RDS database.

---------

Co-authored-by: Elijah Hamovitz <elijahhamovitz@gmail.com>

* Fix indentation and wrap JSON values in quotes. (#53078)

* Hard code writer and reader proxy endpoints in production with placeholder values. (#53084)

* levelbuilder content changes (-robo-commit)

* staging content changes (-robo-commit)

* Add beginning components for rubrics teacher experience (#53023)

* Very beginning of FAB button

* Rename/refactor component

* Move container style to scss file and add some structure

* Add the menu bar and move content to a new component

* Add test for RubricFloatingActionButton

* Undo changes to show the floating action button for now

* I18n-ize eventual user-facing string

* fixxed broken string (#53067)

* Update SETUP.md doc for Ubuntu using EC2 instance (#53048)

Update SETUP.md doc for Ubuntu using EC2 instance

* [AI Chat] Convert panelContainer to .tsx file (#53025)

[AI Chat] Convert panelContainer to .tsx file

* Add AI PL homepage and skinny banners (#52943)

* add DCDO flag

* update hero banner graphics and styles

* add announcements banner on teacher homepage

* add skinny banner on teach page

* move curriculum skinny banner on the homepage

* add homepage hero banner

* add comments

* update description copy

* Delete Pegasus type spec page (#53050)

* Replace symlink with actual file (#52998)

* Project Beats: make when run block undeletable and immovable (#53070)

* Authorization Server - JWKS endpoint (#52994)

- Add route and controller
- Add unit test
- Add `bin/generate-jwks` script  
- Add new jwks values to config files
- Add documentation at `docs/jwks.md`
- Push private key to AWS Secrets Manager

Signed-off-by: Nick Lathe <nick.lathe@code.org>

* collapse on press Escape (#53053)

* Fix bin/i18n tests

* etags updates

* pegasus i18n updates

* pegasus i18n markdown updates

* dashboard i18n updates - Arabic

* dashboard i18n updates - Azerbaijani

* dashboard i18n updates - Bulgarian

* dashboard i18n updates - Bengali

* dashboard i18n updates - Bosnian

* dashboard i18n updates - Catalan

* dashboard i18n updates - Corsican

* dashboard i18n updates - Czech

* dashboard i18n updates - Danish

* dashboard i18n updates - German

* dashboard i18n updates - Dhivehi

* dashboard i18n updates - Greek

* dashboard i18n updates - English, United Kingdom

* dashboard i18n updates - Spanish

* dashboard i18n updates - Spanish, Mexico

* dashboard i18n updates - Estonian

* dashboard i18n updates - Basque

* dashboard i18n updates - Dari

* dashboard i18n updates - Persian

* dashboard i18n updates - Finnish

* dashboard i18n updates - Filipino

* dashboard i18n updates - French

* dashboard i18n updates - Irish

* dashboard i18n updates - Galician

* dashboard i18n updates - Hawaiian

* dashboard i18n updates - Hebrew

* dashboard i18n updates - Hindi

* dashboard i18n updates - Croatian

* dashboard i18n updates - Hungarian

* dashboard i18n updates - Armenian

* dashboard i18n updates - Indonesian

* dashboard i18n updates - Icelandic

* dashboard i18n updates - Italian

* dashboard i18n updates - Japanese

* dashboard i18n updates - Georgian

* dashboard i18n updates - Kazakh

* dashboard i18n updates - Kannada

* dashboard i18n updates - Khmer

* dashboard i18n updates - Korean

* dashboard i18n updates - Kurdish

* dashboard i18n updates - Kyrgyz

* dashboard i18n updates - Lithuanian

* dashboard i18n updates - Latvian

* dashboard i18n updates - Maori

* dashboard i18n updates - Macedonian

* dashboard i18n updates - Mongolian

* dashboard i18n updates - Marathi

* dashboard i18n updates - Malay

* dashboard i18n updates - Maltese

* dashboard i18n updates - Burmese

* dashboard i18n updates - Nepali

* dashboard i18n updates - Dutch

* dashboard i18n updates - Norwegian Nynorsk

* dashboard i18n updates - Norwegian

* dashboard i18n updates - Polish

* dashboard i18n updates - Pashto

* dashboard i18n updates - Portuguese, Brazilian

* dashboard i18n updates - Portuguese

* dashboard i18n updates - Romanian

* dashboard i18n updates - Russian

* dashboard i18n updates - Northern Sami

* dashboard i18n updates - Samoan

* dashboard i18n updates - Sinhala

* dashboard i18n updates - Slovak

* dashboard i18n updates - Slovenian

* dashboard i18n updates - Albanian

* dashboard i18n updates - Serbian (Cyrillic)

* dashboard i18n updates - Swedish

* dashboard i18n updates - Tamil

* dashboard i18n updates - Telugu

* dashboard i18n updates - Tajik

* dashboard i18n updates - Thai

* dashboard i18n updates - Turkish

* dashboard i18n updates - Ukrainian

* dashboard i18n updates - Urdu (Pakistan)

* dashboard i18n updates - Uzbek

* dashboard i18n updates - Vietnamese

* dashboard i18n updates - Chinese Simplified

* dashboard i18n updates - Chinese Traditional

* dashboard i18n updates - Zulu

* apps i18n updates

* hoc i18n updates

* dashboard i18n sync

* apps i18n sync

* hoc i18n sync

* [Google Blockly] Shareable procedures blocks (#52932)

* add support for color overrides for button fields

* add shareable procedure block definitions

* register custom procedure blocks

* enabled modal function editor on google blockly levels

* register shareable procedure blocks in music lab, no svg frames

* bump to 1.2.10

* add serializer to wrapper

* sort definitions to front of block lists

* copy block array before sorting

* re-sort blocks before positioning

* Revert "re-sort blocks before positioning"

This reverts commit 4e206dd.

* reorder blocks before positioning

* add parameter to sort function

* reorganize functions

* add comments

* remove unnecessary unregistering

* revert remove unregister

was breaking unit tests

* add unit tests

* rename procedureDefinitionTypes

* specify any type for value option in button fields

* typo

* no-op for blocks without any inputs

* replace sort logic with partitioning

* remove extra copy

* remove DCDO flag (#53060)

* Music/Lab2: add start over dialog (#53065)

* Music/Lab2: add start over dialog

* PR feedback

* rename undo redo buttons

* Add course deprecation page (#52930)

* Make new course deprecation partial, add i18n strings, temporarily route 404 there for development

* Update image, styling, copy

* Correct button style, text color, link address

* Fix link, use remove nested button

* Move design system link button to application.css, clean up

* Clean up

* Use more semantic p tag

* Use readable class names locally (#53064)

* Sort By Family Name Dropdown (#53022)

* first draft of dropdown component

* switching to localStorage

* formatted correctly

* adding dcdo flag

* adding test file

* attempting tooltip, redux work

* simplifying to most basic version

* fixing test

* added a red disclaimer under the embed sharing option on app/game lab

* implemented syntax changes for cleaner code

* levelbuilder content changes (-robo-commit)

* Update copy on the hero banner for CSF and CSP pages (#53100)

* update copy on the hero banner for csf and csp pages

* remove test string name

* Add video field to course offering editor (#53056)

* Added self paced pl dropdown list

* Removed console.log

* Added video field selector to course offering editor

* Removed Id from summary and fixed props in test

* Fixed tests

* Fixed Spacing

* Remove setters/getters for value property for text areas (#53074)

* remove text area value

* add text prop

* multiline

* Revert to initial approach to displaying textarea content in editor

* Fix test

---------

Co-authored-by: Ubuntu <ubuntu@ip-10-0-0-55.ec2.internal>

* Music: start converting block definitions to TypeScript (#53098)

* used spread syntax

* factor out filter component (#53071)

* Revert "appended disclaimer to embedded projects dialog"

This reverts commit 249d74f.

* add quotes around field id string (#53118)

* Add published date field to course offering editor (#53077)

* Added self paced pl dropdown list

* Removed console.log

* Added video field selector to course offering editor

* Removed Id from summary and fixed props in test

* Fixed tests

* Added published date field to course offering editor

* Added Date Picker component

* Fixed Date Picker and added props to test

* Added clear button

* Styling

* Update Maker micro:bit PDF links - Summer 2023 (#53116)

* update course booklet PDF links

these are fetched from AWS

* update photo links

* deprecate old links

* levelbuilder content changes (-robo-commit)

* P20-75: Fix function_defenitions DE translations

* Update Scripts that Launch MySQL Command Line Client (#50763)

---------

Signed-off-by: Nick Lathe <nick.lathe@code.org>
Co-authored-by: Continuous Integration <dev@code.org>
Co-authored-by: Dmytro Antonyuk <137330041+dmantonyuk@users.noreply.github.com>
Co-authored-by: Artem Vavilov <11708250+artem-vavilov@users.noreply.github.com>
Co-authored-by: Artem Vavilov <artem.vavilov.7@gmail.com>
Co-authored-by: Bethany Connor <46464143+bethanyaconnor@users.noreply.github.com>
Co-authored-by: Erin Ferreirae <erin.ferreirae@code.org>
Co-authored-by: juanmanzojr <137838584+juanmanzojr@users.noreply.github.com>
Co-authored-by: Nick Lathe <nick.lathe@code.org>
Co-authored-by: Anna Xu <annaxu@wustl.edu>
Co-authored-by: Ryan Shipp <1382374+rshipp@users.noreply.github.com>
Co-authored-by: annaxuphoto <anna@code.org>
Co-authored-by: Meg Crenshaw <meg@code.org>
Co-authored-by: Vijaya Manohararaj <124813947+vijayamanohararaj@users.noreply.github.com>
Co-authored-by: fisher-alice <107423305+fisher-alice@users.noreply.github.com>
Co-authored-by: Elijah Hamovitz <elijahhamovitz@gmail.com>
Co-authored-by: Mario Gil Correa <66776217+mgc1194@users.noreply.github.com>
Co-authored-by: Kaitie O <kaitie@code.org>
Co-authored-by: Afifah Kashif <kashifafifah@gmail.com>
Co-authored-by: suresh <suresh@code.org>
Co-authored-by: Kelby Hawn <9256643+kelbyhawn@users.noreply.github.com>
Co-authored-by: bencodeorg <ben@code.org>
Co-authored-by: Sanchit Malhotra <85528507+sanchitmalhotra126@users.noreply.github.com>
Co-authored-by: Turner Riley <56283563+TurnerRiley@users.noreply.github.com>
Co-authored-by: Erin Ferreirae <131800576+elf-code@users.noreply.github.com>
Co-authored-by: Molly Moen <molly@code.org>
Co-authored-by: Mike Harvey <43474485+mikeharv@users.noreply.github.com>
Co-authored-by: Dayne <dayne@code.org>
Co-authored-by: Hannah Bergam <hannahbergam@gmail.com>
Co-authored-by: Ubuntu <ubuntu@ip-10-0-0-55.ec2.internal>
Co-authored-by: Brendan Reville <breville@users.noreply.github.com>
Co-authored-by: Afifah <31292421+AfifahK@users.noreply.github.com>
Co-authored-by: wilkie <david.wilkinson@code.org>
snickell pushed a commit that referenced this pull request Feb 3, 2024
* P20-317: Create unit tests for courses i18n sync-in

* Seed/serialize rubrics from levelbuilder to other environments (#52864)

* Serialize rubrics in script_json files

* Update tests given learning goal import

* Fix and add tests

* Fix test failures due to level being required

* Update comment

* [i18n-dev] update crontab

* Serialize self paced pl course offering (#52990)

* Removed self paced pl column and added self paced pl ID column with foreign key

* Removed dropped column from test

* Removed dropped column from summary methods

* Add association to self paced pl Id

* Fixed name error

* Changed to use belongs_to associatation

* Added self paced pl course offering id to test and summary methods

* Serialized self paced pl course offering id field

* Delete .yarn-integrity

* add nvm to PATH

* updating runtime method signature and machine ID setting to be more readable

* Add family name to manage students table (#52779)

* Add family name to manage students table

* Change text, add HelpTip

* Only show in non-PL sections

* Fix key issue; add test

* Remove unused string

* Remove unused styles

* Put everything behind the feature flag

* P20-318: Create unit tests for markdown i18n sync-in

* Make nil acceptable course offering editor (#53005)

* Removed self paced pl column and added self paced pl ID column with foreign key

* Removed dropped column from test

* Removed dropped column from summary methods

* Add association to self paced pl Id

* Fixed name error

* Changed to use belongs_to associatation

* Added self paced pl course offering id to test and summary methods

* Serialized self paced pl course offering id field

* Nil acceptable for professional learning

* Added nil acceptor for marketing initiative and curriculum type

* Ternary Operator

* Delete .yarn-integrity

* Changed to allow_nil

* Revert "adding 4 special certificates for Korea HoC"

* Update styling for dialog to accomodate different screen sizes (#52997)

* Update styling for dialog to accomodate different screen sizes

* Update styling based on feedback

* Reformat

* Fix hr display none

* Revert "Revert "[AI Chat] Add Open AI backend controller"" (#52977)

Revert "Revert "[AI Chat] Add Open AI backend controller""

* cleaning up syntax and adding comments

* Add family name to teacher panel (#53021)

* Added self paced pl dropdown list (#52999)

* Added self paced pl dropdown list

* Removed console.log

* Revert "P20-318: Create unit tests for markdown i18n sync-in"

This reverts commit c2d56a6.

* Updated cookbook versions

* Revert "Update Chef Client to 18.0.185"

* Updated cookbook versions

* levelbuilder content changes (-robo-commit)

* P20-318: Create unit tests for markdown i18n sync-in

* P20-318: Fix I18n::Resources::Apps::ExternalSourcesTest

* P20-316: Move copying of external oceans.json from in.sh

* P20-324: Create unit tests for scripts i18n sync-in

* updated crowdin upload success message in sync-up (#53044)

* [AI Chat] Update PanelContainer for general lab2 use (#53026)

[AI Chat] Update PanelContainer for general lab2 use

* Update rubrics editing page for Curriculum Writers (#52985)

* UI for Curriculum Writer Rubric experience

* modifying the link to the rubrics edit page

* added tests to files

* Modified tests to use shallow instead of mount

* appended disclaimer to embedded projects dialog

* levelbuilder content changes (-robo-commit)

* P20-328: Create unit tests for hourofcode i18n sync-in

* Update `aws-sdk-core` Gem to 3.180 (#53069)

* Publish Database Secrets to Match Updated Naming Convention (#50285)

* Add method that fetches current Stack Name

* Add method that fetches current Stack Name

* Add method that constructs path to stack-specific secret.

* Return  Secret path when not running on a system provisioned via CloudFormation.

* Use stack specific secret to set configuration setting if it exists.

* Temporarily comment out new logic to test on an adhoc.

* Temporarily remove / comment out new functionality.

* Fix missing require.

* Check stack-specific secret first and fallback to environment-type secret.

* Lookup stack-specific secret first, then fallback to environment-type secret.

* Update version of ActiveSupport installed in Chef environment to match the application.

* Handle use case when application is not deployed by a CloudFormation Stack.

* Try loading all the new gems that are needed now to initialize the CDO object.

* Try to avoid requiring lib/cdo/aws/cloud_formation when initializing the CDO object from the Chef execution environment.

* Remove unused Chef recipe that I accidentally added back when resolving a merge conflict.

* Remove experiment.

* Revert experiments.

* Switch from separate username/password configuration settings to a single credentials setting that contains both in the format expected by RDS Proxy.

* Add new `StackSecrets` Designation

And split up the existing WIP implementation of stack-aware secrets to
make a distinction between secrets that actually want to implement the
extra checks required for that awareness and secrets that we want to be
exclusively environment-specific and not stack-specific.

* Add new db_credential_ configuration setting to replace username/password settings.

* Refactor Secrets Config

Specifically, move a lot of functionality into the Secrets and StackSecrets classes themselves, and refactor them a bit to be slighty smarter about how they store their data.

* Change names of database credential secrets.

* Use Stack secret to populate database credentials.

* Switch db cluster id and endpoint config settings to be stack-specific secrets.

* Fix string interpolation syntax error.

* Start transition to new config naming convention.

* Check pick Aurora engine upgrade.

* Change cluster_id and endpoint secrets to be Stack-specific.

* Ensure that we set the Stack-specific path to lookup when eager-loading required Secrets during web application server initialization.

* Remove usage of CDO, since this might be invoked when initializing CDO. Speculatively increasing HTTP timeouts to resolve intermittent AWS client errors.

* Move stack name lookup to the SecretsConfig module to ensure that initializing CDO has as few dependencies as possible.

* Require Net:HTTP

* Explicitly set Region when initializing EC2 client.

* Update tests now that the stack name method is implemented within the SecretsConfig module.

* Wait until RDS Proxy has provisioned before starting to provision daemon and console EC2 Instances.

* Fix current_stack_name method.

* Fix invocation of stack_name method.

* Restore changes lost during resolution of merge conflict when bringing in refactoring of CDO.

* Fix invocation of class method and remove incorrect comment about CloudFormation.

* Stack-specific secrets functionality does not require fixing dependency on provisioning of the RDS Proxy.

* Reminding my self to fix this corner of the secrets lookup logic.

* Ensure that EC2 Instances do not start provisioning until the RDS Proxy is deployed.

* Stop using Chef cookbook logic to determine whether to use RDS Proxy to connect to the database.

* Add proxy writer and reader endpoint configuration settings.

* Publish RDS Proxy Writer & Reader Endpoints to Stack Secrets so they can populate CDO config settings in the future.

* Set value of config settings to be JSON objects, and not strings that happen to be JSON objects.

* Resume provisioning the db_cluster_id Stack secret.

* Set values of Secrets that populate configuration settings when an adhoc does not use an RDS database.

---------

Co-authored-by: Elijah Hamovitz <elijahhamovitz@gmail.com>

* Fix indentation and wrap JSON values in quotes. (#53078)

* Hard code writer and reader proxy endpoints in production with placeholder values. (#53084)

* levelbuilder content changes (-robo-commit)

* staging content changes (-robo-commit)

* Add beginning components for rubrics teacher experience (#53023)

* Very beginning of FAB button

* Rename/refactor component

* Move container style to scss file and add some structure

* Add the menu bar and move content to a new component

* Add test for RubricFloatingActionButton

* Undo changes to show the floating action button for now

* I18n-ize eventual user-facing string

* fixxed broken string (#53067)

* Update SETUP.md doc for Ubuntu using EC2 instance (#53048)

Update SETUP.md doc for Ubuntu using EC2 instance

* [AI Chat] Convert panelContainer to .tsx file (#53025)

[AI Chat] Convert panelContainer to .tsx file

* Add AI PL homepage and skinny banners (#52943)

* add DCDO flag

* update hero banner graphics and styles

* add announcements banner on teacher homepage

* add skinny banner on teach page

* move curriculum skinny banner on the homepage

* add homepage hero banner

* add comments

* update description copy

* Delete Pegasus type spec page (#53050)

* Replace symlink with actual file (#52998)

* Project Beats: make when run block undeletable and immovable (#53070)

* Authorization Server - JWKS endpoint (#52994)

- Add route and controller
- Add unit test
- Add `bin/generate-jwks` script  
- Add new jwks values to config files
- Add documentation at `docs/jwks.md`
- Push private key to AWS Secrets Manager

Signed-off-by: Nick Lathe <nick.lathe@code.org>

* collapse on press Escape (#53053)

* Fix bin/i18n tests

* etags updates

* pegasus i18n updates

* pegasus i18n markdown updates

* dashboard i18n updates - Arabic

* dashboard i18n updates - Azerbaijani

* dashboard i18n updates - Bulgarian

* dashboard i18n updates - Bengali

* dashboard i18n updates - Bosnian

* dashboard i18n updates - Catalan

* dashboard i18n updates - Corsican

* dashboard i18n updates - Czech

* dashboard i18n updates - Danish

* dashboard i18n updates - German

* dashboard i18n updates - Dhivehi

* dashboard i18n updates - Greek

* dashboard i18n updates - English, United Kingdom

* dashboard i18n updates - Spanish

* dashboard i18n updates - Spanish, Mexico

* dashboard i18n updates - Estonian

* dashboard i18n updates - Basque

* dashboard i18n updates - Dari

* dashboard i18n updates - Persian

* dashboard i18n updates - Finnish

* dashboard i18n updates - Filipino

* dashboard i18n updates - French

* dashboard i18n updates - Irish

* dashboard i18n updates - Galician

* dashboard i18n updates - Hawaiian

* dashboard i18n updates - Hebrew

* dashboard i18n updates - Hindi

* dashboard i18n updates - Croatian

* dashboard i18n updates - Hungarian

* dashboard i18n updates - Armenian

* dashboard i18n updates - Indonesian

* dashboard i18n updates - Icelandic

* dashboard i18n updates - Italian

* dashboard i18n updates - Japanese

* dashboard i18n updates - Georgian

* dashboard i18n updates - Kazakh

* dashboard i18n updates - Kannada

* dashboard i18n updates - Khmer

* dashboard i18n updates - Korean

* dashboard i18n updates - Kurdish

* dashboard i18n updates - Kyrgyz

* dashboard i18n updates - Lithuanian

* dashboard i18n updates - Latvian

* dashboard i18n updates - Maori

* dashboard i18n updates - Macedonian

* dashboard i18n updates - Mongolian

* dashboard i18n updates - Marathi

* dashboard i18n updates - Malay

* dashboard i18n updates - Maltese

* dashboard i18n updates - Burmese

* dashboard i18n updates - Nepali

* dashboard i18n updates - Dutch

* dashboard i18n updates - Norwegian Nynorsk

* dashboard i18n updates - Norwegian

* dashboard i18n updates - Polish

* dashboard i18n updates - Pashto

* dashboard i18n updates - Portuguese, Brazilian

* dashboard i18n updates - Portuguese

* dashboard i18n updates - Romanian

* dashboard i18n updates - Russian

* dashboard i18n updates - Northern Sami

* dashboard i18n updates - Samoan

* dashboard i18n updates - Sinhala

* dashboard i18n updates - Slovak

* dashboard i18n updates - Slovenian

* dashboard i18n updates - Albanian

* dashboard i18n updates - Serbian (Cyrillic)

* dashboard i18n updates - Swedish

* dashboard i18n updates - Tamil

* dashboard i18n updates - Telugu

* dashboard i18n updates - Tajik

* dashboard i18n updates - Thai

* dashboard i18n updates - Turkish

* dashboard i18n updates - Ukrainian

* dashboard i18n updates - Urdu (Pakistan)

* dashboard i18n updates - Uzbek

* dashboard i18n updates - Vietnamese

* dashboard i18n updates - Chinese Simplified

* dashboard i18n updates - Chinese Traditional

* dashboard i18n updates - Zulu

* apps i18n updates

* hoc i18n updates

* dashboard i18n sync

* apps i18n sync

* hoc i18n sync

* [Google Blockly] Shareable procedures blocks (#52932)

* add support for color overrides for button fields

* add shareable procedure block definitions

* register custom procedure blocks

* enabled modal function editor on google blockly levels

* register shareable procedure blocks in music lab, no svg frames

* bump to 1.2.10

* add serializer to wrapper

* sort definitions to front of block lists

* copy block array before sorting

* re-sort blocks before positioning

* Revert "re-sort blocks before positioning"

This reverts commit 4e206dd.

* reorder blocks before positioning

* add parameter to sort function

* reorganize functions

* add comments

* remove unnecessary unregistering

* revert remove unregister

was breaking unit tests

* add unit tests

* rename procedureDefinitionTypes

* specify any type for value option in button fields

* typo

* no-op for blocks without any inputs

* replace sort logic with partitioning

* remove extra copy

* remove DCDO flag (#53060)

* Music/Lab2: add start over dialog (#53065)

* Music/Lab2: add start over dialog

* PR feedback

* rename undo redo buttons

* Add course deprecation page (#52930)

* Make new course deprecation partial, add i18n strings, temporarily route 404 there for development

* Update image, styling, copy

* Correct button style, text color, link address

* Fix link, use remove nested button

* Move design system link button to application.css, clean up

* Clean up

* Use more semantic p tag

* Use readable class names locally (#53064)

* Sort By Family Name Dropdown (#53022)

* first draft of dropdown component

* switching to localStorage

* formatted correctly

* adding dcdo flag

* adding test file

* attempting tooltip, redux work

* simplifying to most basic version

* fixing test

* added a red disclaimer under the embed sharing option on app/game lab

* implemented syntax changes for cleaner code

* levelbuilder content changes (-robo-commit)

* Update copy on the hero banner for CSF and CSP pages (#53100)

* update copy on the hero banner for csf and csp pages

* remove test string name

* Add video field to course offering editor (#53056)

* Added self paced pl dropdown list

* Removed console.log

* Added video field selector to course offering editor

* Removed Id from summary and fixed props in test

* Fixed tests

* Fixed Spacing

* Remove setters/getters for value property for text areas (#53074)

* remove text area value

* add text prop

* multiline

* Revert to initial approach to displaying textarea content in editor

* Fix test

---------

Co-authored-by: Ubuntu <ubuntu@ip-10-0-0-55.ec2.internal>

* Music: start converting block definitions to TypeScript (#53098)

* used spread syntax

* factor out filter component (#53071)

* Revert "appended disclaimer to embedded projects dialog"

This reverts commit 249d74f.

* add quotes around field id string (#53118)

* Add published date field to course offering editor (#53077)

* Added self paced pl dropdown list

* Removed console.log

* Added video field selector to course offering editor

* Removed Id from summary and fixed props in test

* Fixed tests

* Added published date field to course offering editor

* Added Date Picker component

* Fixed Date Picker and added props to test

* Added clear button

* Styling

* Update Maker micro:bit PDF links - Summer 2023 (#53116)

* update course booklet PDF links

these are fetched from AWS

* update photo links

* deprecate old links

* levelbuilder content changes (-robo-commit)

* P20-75: Fix function_defenitions DE translations

* Update Scripts that Launch MySQL Command Line Client (#50763)

---------

Signed-off-by: Nick Lathe <nick.lathe@code.org>
Co-authored-by: Continuous Integration <dev@code.org>
Co-authored-by: Dmytro Antonyuk <137330041+dmantonyuk@users.noreply.github.com>
Co-authored-by: Artem Vavilov <11708250+artem-vavilov@users.noreply.github.com>
Co-authored-by: Artem Vavilov <artem.vavilov.7@gmail.com>
Co-authored-by: Bethany Connor <46464143+bethanyaconnor@users.noreply.github.com>
Co-authored-by: Erin Ferreirae <erin.ferreirae@code.org>
Co-authored-by: juanmanzojr <137838584+juanmanzojr@users.noreply.github.com>
Co-authored-by: Nick Lathe <nick.lathe@code.org>
Co-authored-by: Anna Xu <annaxu@wustl.edu>
Co-authored-by: Ryan Shipp <1382374+rshipp@users.noreply.github.com>
Co-authored-by: annaxuphoto <anna@code.org>
Co-authored-by: Meg Crenshaw <meg@code.org>
Co-authored-by: Vijaya Manohararaj <124813947+vijayamanohararaj@users.noreply.github.com>
Co-authored-by: fisher-alice <107423305+fisher-alice@users.noreply.github.com>
Co-authored-by: Elijah Hamovitz <elijahhamovitz@gmail.com>
Co-authored-by: Mario Gil Correa <66776217+mgc1194@users.noreply.github.com>
Co-authored-by: Kaitie O <kaitie@code.org>
Co-authored-by: Afifah Kashif <kashifafifah@gmail.com>
Co-authored-by: Kelby Hawn <9256643+kelbyhawn@users.noreply.github.com>
Co-authored-by: bencodeorg <ben@code.org>
Co-authored-by: Sanchit Malhotra <85528507+sanchitmalhotra126@users.noreply.github.com>
Co-authored-by: Turner Riley <56283563+TurnerRiley@users.noreply.github.com>
Co-authored-by: Erin Ferreirae <131800576+elf-code@users.noreply.github.com>
Co-authored-by: Molly Moen <molly@code.org>
Co-authored-by: Mike Harvey <43474485+mikeharv@users.noreply.github.com>
Co-authored-by: Dayne <dayne@code.org>
Co-authored-by: Hannah Bergam <hannahbergam@gmail.com>
Co-authored-by: Ubuntu <ubuntu@ip-10-0-0-55.ec2.internal>
Co-authored-by: Brendan Reville <breville@users.noreply.github.com>
Co-authored-by: Afifah <31292421+AfifahK@users.noreply.github.com>
Co-authored-by: wilkie <david.wilkinson@code.org>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants