Make nil acceptable course offering editor#53005
Conversation
…-to-course-offering
| 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 |
There was a problem hiding this comment.
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
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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
There was a problem hiding this comment.
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
There was a problem hiding this comment.
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!
There was a problem hiding this comment.
No worries, makes sense! Thanks for circling back
megcrenshaw
left a comment
There was a problem hiding this comment.
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
* 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>
* 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>
* 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>
* 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>
Added
allows_blankto 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_initiativeandprofessional_learning_programall set to non null values.curriculum type,marketing_initiativeandprofessional_learning_programall set back to null after selecting the (None) optionTesting story
Local
PR Checklist: