0.31 backports - #99
Draft
microstudi wants to merge 162 commits into
Draft
Conversation
commit 6cc62f36552c2ab27d76df75d5d339320f85d9a7 Merge: 31e09c7 82c93ce Author: Ivan Vergés <ivan@pokecode.net> Date: Tue Oct 21 10:37:46 2025 +0200 Merge branch 'develop' into feature/elections-census-check-before-start commit 31e09c7 Author: Anna Topalidi <t.opalidisanna@gmail.com> Date: Tue Oct 21 07:10:47 2025 +0200 fix linter commit 85f1a25 Author: Anna Topalidi <t.opalidisanna@gmail.com> Date: Mon Oct 20 22:08:55 2025 +0200 Allow users to check if they can vote before the election starts commit e503bec Author: Anna Topalidi <t.opalidisanna@gmail.com> Date: Fri Oct 10 15:36:16 2025 +0200 xhange controller, add tests commit 408a174 Author: Anna Topalidi <t.opalidisanna@gmail.com> Date: Fri Oct 10 14:52:00 2025 +0200 change text commit a1ed690 Author: Anna Topalidi <t.opalidisanna@gmail.com> Date: Fri Oct 10 13:55:51 2025 +0200 change test commit 242f0a6 Author: Anna Topalidi <t.opalidisanna@gmail.com> Date: Fri Oct 10 13:33:59 2025 +0200 add check before start
commit 0ddc2b4df70d72348aefab4d1ed2d5f4778228a3 Merge: ad11ec8 82c93ce Author: Ivan Vergés <ivan@pokecode.net> Date: Tue Oct 21 10:40:41 2025 +0200 Merge branch 'develop' into feature/elections-display-question-description commit ad11ec8 Author: Anna Topalidi <t.opalidisanna@gmail.com> Date: Tue Oct 21 09:43:20 2025 +0200 fix title commit 0136d42 Author: Anna Topalidi <t.opalidisanna@gmail.com> Date: Tue Oct 21 08:56:39 2025 +0200 fix tests commit 2523af2 Author: Anna Topalidi <t.opalidisanna@gmail.com> Date: Mon Oct 20 14:44:11 2025 +0200 fix question_description commit 8dfe2c1 Author: Anna Topalidi <t.opalidisanna@gmail.com> Date: Thu Oct 9 11:51:33 2025 +0200 display question description
commit 328e89ce35525d8d3efdbff7a82d01ea24c578f8 Merge: a0d1ea9 8fb3f92 Author: Ivan Vergés <ivan@pokecode.net> Date: Tue Oct 21 12:32:05 2025 +0200 Merge branch 'develop' into feature/elections-max-choices-limit commit 8fb3f92 Author: Alexandru Emil Lupu <contact@alecslupu.ro> Date: Tue Oct 21 12:52:21 2025 +0300 Fix ActiveRecord::AssociationTypeMismatch error in AddDemocraticQualityStaticPage (decidim#15399) commit 3f8a04f Author: Alexandru Emil Lupu <contact@alecslupu.ro> Date: Tue Oct 21 11:35:30 2025 +0300 Fix expiring Cloud Storage tokens (decidim#15005) * Fix expiring Cloud Storage tokens * Fix spellcheck issues * 📝 qlty fmt * Add public env variable * Revert qlty.toml * Revert toml * Apply suggestions from code review Co-authored-by: Andrés Pereira de Lucena <andreslucena@users.noreply.github.com> * Fix liniting issues * Trigger pipeline --------- Co-authored-by: qltysh[bot] <168846912+qltysh[bot]@users.noreply.github.com> Co-authored-by: Andrés Pereira de Lucena <andreslucena@users.noreply.github.com> commit a0d1ea9 Merge: e1952f9 e34bce9 Author: Anna Topalidi <t.opalidisanna@gmail.com> Date: Thu Oct 9 10:11:13 2025 +0200 Merge branch 'develop' into feature/elections-max-choices-limit commit e1952f9 Author: Anna Topalidi <t.opalidisanna@gmail.com> Date: Thu Oct 9 09:54:36 2025 +0200 fix test commit 85e53d2 Author: Anna Topalidi <t.opalidisanna@gmail.com> Date: Wed Oct 8 17:20:28 2025 +0200 fix test commit abe20bc Author: Anna Topalidi <t.opalidisanna@gmail.com> Date: Wed Oct 8 16:19:11 2025 +0200 fix linter commit cf06937 Author: Anna Topalidi <t.opalidisanna@gmail.com> Date: Tue Oct 7 15:24:39 2025 +0200 add max choices limit
|
Important Review skippedDraft detected. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
…ecidim#16159) * JS import configured to select states based on component * Route configured for collection on proposal import new * Imported js entry point of import_proposals. * Configured a new iteration from select on the component origin within the form * Created component_states method within the import controller * Updated some lint issues with the JS script * Updated import controller to retrieve the origin_id instead of component id * Moved the proposals_merge resource route. * Added attribute to select states based on the selected component * Added selectedStates which parses the selected states based on the component * Removed validate :valid_states because pluck token wasn't reterving states on its own componet not from that selected * Fixed the tercary operator on the selected states checkbox * Aligned the method call on the new form to fix lint error * not answered missing from the component states maped to be selected from the componet * Extracted the enforce_permissions method to component_states to parse users who dont have permissions to run the import actions * clean up of unused methods within the proposal import form * Updated object that retrieves the states via the proposal_import * Escaped the html by interpolating the state.token and state.title within the script to encode all handles * reverted private method of valid_states checking the proposal state and plucking the not_answered state server side validation * System spec added to check for dynamically added states from origin component * Updated spec to account for custom states to be detected in drop down * refactored the proposal import change to import from a stimulus controller * modified the new page to call the data attribute of the dynamic states * update to controller based on lint errors * refactored to use the mordern way of stimulus of calling the controller and an absolute path * jS docs added to the controller fetching the states dynamically
* add export button * add serializer * add specs * fix sql & export data --------- Co-authored-by: Ivan Vergés <ivan@pokecode.net>
* New translations en.yml (Catalan) [ci skip] * New translations en.yml (Swedish) [ci skip] * New translations en.yml (Catalan, Algherese) [ci skip] * New translations en.yml (Swedish) [ci skip] * New translations en.yml (French, Canada) [ci skip] * New translations en.yml (Catalan, Algherese) [ci skip] * New translations en.yml (French, Canada) [ci skip] * New translations en.yml (French, Canada) [ci skip] * New translations en.yml (Swedish) [ci skip] * New translations en.yml (Catalan, Algherese) [ci skip]
…n' to v0.31 (decidim#17312) Co-authored-by: andra-panaite <135139066+andra-panaite@users.noreply.github.com> Co-authored-by: Alexandru Emil Lupu <contact@alecslupu.ro>
…decidim#17327) Prompt: """ When changing the "Sort by" order in the Comments sections the focus is lost. """ Assisted-By: Kimi K2.6 (OpenCode) <andreslucena+ai@users.noreply.github.com> Co-authored-by: Andrés Pereira de Lucena <andreslucena@users.noreply.github.com>
…m#17303) Co-authored-by: Andrés Pereira de Lucena <andreslucena@users.noreply.github.com>
…decidim#17324) Co-authored-by: Andrés Pereira de Lucena <andreslucena@users.noreply.github.com>
… v0.31 (decidim#17334) * Fix responsiveness in "Related documents" content block * Fix edge case when the title in the card is a really long word * Implement CodeRabbit feedback Co-authored-by: Andrés Pereira de Lucena <andreslucena@users.noreply.github.com>
…im#17336) * Make idempotent the "show password" toggle Prompt: """ Fix a11y bug where the password visibility toggle button in the login modal receives focus twice and the first instance is non-interactive. Root cause: PasswordTogglerController (decidim-core/app/packs/src/decidim/controllers/password_toggler/controller.js) creates a new <button> and .input-group__password wrapper on every connect(). Because a11y.js moves dialogs to document.body on init, Stimulus disconnects and reconnects the controller, producing nested duplicate elements. disconnect() only removes listeners, not DOM. Changes required: 1. Controller: Make connect() idempotent — detect and reuse an existing .input-group__password wrapper + button + status text instead of always creating new ones. Keep disconnect() removing listeners. 2. Tests: Fix the test fixture in password_toggler.test.js to start from a clean <input type="password"> without pre-rendered wrappers/buttons. Add a test simulating disconnect() then connect() and asserting only one button/wrapper exists afterward. 3. System template: Remove the hardcoded .input-group__password wrapper in decidim-system/app/views/decidim/system/shared/_api_users.html.erb so the controller owns the structure. Verification: After the fix, inspecting #loginModal should show exactly one .input-group__password with one <button> inside it, even after Stimulus reconnects. """ Assisted-By: Kimi K2.6 (OpenCode) <andreslucena+ai@users.noreply.github.com> * Fix spec Co-authored-by: Andrés Pereira de Lucena <andreslucena@users.noreply.github.com>
…system form' to v0.31 (decidim#17341) * Added test case * Add validations for password mismatch in admins' system form * Adapt spec to new behavior * Add specs Prompt: """ Create unit tests for @decidim-system/app/forms/decidim/system/admin_form.rb """ Assisted-By: Kimi K2.6 (OpenCode) <andreslucena+ai@users.noreply.github.com> * Apply suggestions from code review * Fix rubocop offense --------- Co-authored-by: Andrés Pereira de Lucena <andreslucena@users.noreply.github.com> Co-authored-by: andra-panaite <andra.panaite@tremend.com> Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
…m#17346) * Ensure JWT secret exists for * Fix spelling Co-authored-by: Antti Hukkanen <antti.hukkanen@mainiotech.fi>
| @@ -0,0 +1,19 @@ | |||
| # frozen_string_literal: true | |||
| @@ -0,0 +1,19 @@ | |||
| # frozen_string_literal: true | |||
| @@ -0,0 +1,61 @@ | |||
| # frozen_string_literal: true | |||
| @@ -0,0 +1,61 @@ | |||
| # frozen_string_literal: true | |||
| @@ -0,0 +1,61 @@ | |||
| # frozen_string_literal: true | |||
| @@ -0,0 +1,8 @@ | |||
| var blogs = document.getElementById('blogs'); | |||
| @@ -0,0 +1,8 @@ | |||
| var blogs = document.getElementById('blogs'); | |||
| @@ -0,0 +1,8 @@ | |||
| var blogs = document.getElementById('blogs'); | |||
| @@ -0,0 +1,18 @@ | |||
| # frozen_string_literal: true | |||
| @@ -0,0 +1,18 @@ | |||
| # frozen_string_literal: true | |||
…im#17366) * Fix the focus guard in the "QR code" modal Prompt: """ Problem: Opening the QR modal from within the Share modal breaks focus management. Focus leaks back to hidden elements of the parent Share modal, and closing the QR modal does not return focus to its opener. Root cause: FocusGuard only tracks a single dialog. Opening the QR dialog overwrites the guarded element, so the parent Share modal loses its focus trap. The QR modal template also lacks the dialog-title-* id needed for autofocus on open. Goal: Make FocusGuard support nested (stacked) dialogs so each new dialog pushes its state and closing pops back to the previous one, restoring focus to the correct trigger. Ensure QR modals have proper dialog-title-* ids so focus moves to their heading on open """ Assisted-By: Kimi K2.6 (OpenCode) <andreslucena+ai@users.noreply.github.com> * Fix eslint offenses Co-authored-by: Andrés Pereira de Lucena <andreslucena@users.noreply.github.com>
….31 (decidim#17368) Co-authored-by: Ivan Vergés <ivan@pokecode.net>
…' to v0.31 (decidim#17381) Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
…Dropdowns' to v0.31 (decidim#17378)
* New translations en.yml (Basque) [ci skip] * New translations en.yml (Basque) [ci skip] * New translations en.yml (Romanian) [ci skip] * New translations en.yml (Romanian) [ci skip] * New translations en.yml (Romanian) [ci skip] * New translations en.yml (Romanian) [ci skip] * New translations en.yml (Romanian) [ci skip] * New translations en.yml (French) [ci skip] * New translations en.yml (French) [ci skip] * New translations en.yml (French) [ci skip] * New translations en.yml (French) [ci skip] * New translations en.yml (French) [ci skip] * New translations en.yml (Spanish) [ci skip] * New translations en.yml (Spanish) [ci skip] * New translations en.yml (Spanish) [ci skip] * New translations en.yml (Spanish) [ci skip] * New translations en.yml (Spanish) [ci skip] * New translations en.yml (Arabic) [ci skip] * New translations en.yml (Arabic) [ci skip] * New translations en.yml (Arabic) [ci skip] * New translations en.yml (Arabic) [ci skip] * New translations en.yml (Arabic) [ci skip] * New translations en.yml (Bulgarian) [ci skip] * New translations en.yml (Bulgarian) [ci skip] * New translations en.yml (Bulgarian) [ci skip] * New translations en.yml (Bulgarian) [ci skip] * New translations en.yml (Bulgarian) [ci skip] * New translations en.yml (Catalan) [ci skip] * New translations en.yml (Catalan) [ci skip] * New translations en.yml (Catalan) [ci skip] * New translations en.yml (Catalan) [ci skip] * New translations en.yml (Catalan) [ci skip] * New translations en.yml (Czech) [ci skip] * New translations en.yml (Czech) [ci skip] * New translations en.yml (Czech) [ci skip] * New translations en.yml (Czech) [ci skip] * New translations en.yml (Czech) [ci skip] * New translations en.yml (German) [ci skip] * New translations en.yml (German) [ci skip] * New translations en.yml (German) [ci skip] * New translations en.yml (German) [ci skip] * New translations en.yml (German) [ci skip] * New translations en.yml (Greek) [ci skip] * New translations en.yml (Greek) [ci skip] * New translations en.yml (Greek) [ci skip] * New translations en.yml (Greek) [ci skip] * New translations en.yml (Greek) [ci skip] * New translations en.yml (Basque) [ci skip] * New translations en.yml (Basque) [ci skip] * New translations en.yml (Basque) [ci skip] * New translations en.yml (Finnish) [ci skip] * New translations en.yml (Finnish) [ci skip] * New translations en.yml (Finnish) [ci skip] * New translations en.yml (Finnish) [ci skip] * New translations en.yml (Finnish) [ci skip] * New translations en.yml (Hungarian) [ci skip] * New translations en.yml (Hungarian) [ci skip] * New translations en.yml (Hungarian) [ci skip] * New translations en.yml (Hungarian) [ci skip] * New translations en.yml (Hungarian) [ci skip] * New translations en.yml (Italian) [ci skip] * New translations en.yml (Italian) [ci skip] * New translations en.yml (Italian) [ci skip] * New translations en.yml (Italian) [ci skip] * New translations en.yml (Italian) [ci skip] * New translations en.yml (Japanese) [ci skip] * New translations en.yml (Japanese) [ci skip] * New translations en.yml (Japanese) [ci skip] * New translations en.yml (Japanese) [ci skip] * New translations en.yml (Japanese) [ci skip] * New translations en.yml (Lithuanian) [ci skip] * New translations en.yml (Lithuanian) [ci skip] * New translations en.yml (Lithuanian) [ci skip] * New translations en.yml (Lithuanian) [ci skip] * New translations en.yml (Lithuanian) [ci skip] * New translations en.yml (Dutch) [ci skip] * New translations en.yml (Dutch) [ci skip] * New translations en.yml (Dutch) [ci skip] * New translations en.yml (Dutch) [ci skip] * New translations en.yml (Dutch) [ci skip] * New translations en.yml (Norwegian) [ci skip] * New translations en.yml (Norwegian) [ci skip] * New translations en.yml (Norwegian) [ci skip] * New translations en.yml (Norwegian) [ci skip] * New translations en.yml (Norwegian) [ci skip] * New translations en.yml (Polish) [ci skip] * New translations en.yml (Polish) [ci skip] * New translations en.yml (Polish) [ci skip] * New translations en.yml (Polish) [ci skip] * New translations en.yml (Polish) [ci skip] * New translations en.yml (Portuguese) [ci skip] * New translations en.yml (Portuguese) [ci skip] * New translations en.yml (Portuguese) [ci skip] * New translations en.yml (Portuguese) [ci skip] * New translations en.yml (Portuguese) [ci skip] * New translations en.yml (Slovak) [ci skip] * New translations en.yml (Slovak) [ci skip] * New translations en.yml (Slovak) [ci skip] * New translations en.yml (Slovak) [ci skip] * New translations en.yml (Slovak) [ci skip] * New translations en.yml (Swedish) [ci skip] * New translations en.yml (Swedish) [ci skip] * New translations en.yml (Swedish) [ci skip] * New translations en.yml (Swedish) [ci skip] * New translations en.yml (Swedish) [ci skip] * New translations en.yml (Turkish) [ci skip] * New translations en.yml (Turkish) [ci skip] * New translations en.yml (Turkish) [ci skip] * New translations en.yml (Turkish) [ci skip] * New translations en.yml (Turkish) [ci skip] * New translations en.yml (Chinese Simplified) [ci skip] * New translations en.yml (Chinese Simplified) [ci skip] * New translations en.yml (Chinese Simplified) [ci skip] * New translations en.yml (Chinese Simplified) [ci skip] * New translations en.yml (Chinese Simplified) [ci skip] * New translations en.yml (Chinese Traditional) [ci skip] * New translations en.yml (Chinese Traditional) [ci skip] * New translations en.yml (Chinese Traditional) [ci skip] * New translations en.yml (Chinese Traditional) [ci skip] * New translations en.yml (Chinese Traditional) [ci skip] * New translations en.yml (Galician) [ci skip] * New translations en.yml (Galician) [ci skip] * New translations en.yml (Galician) [ci skip] * New translations en.yml (Galician) [ci skip] * New translations en.yml (Galician) [ci skip] * New translations en.yml (Icelandic) [ci skip] * New translations en.yml (Icelandic) [ci skip] * New translations en.yml (Icelandic) [ci skip] * New translations en.yml (Icelandic) [ci skip] * New translations en.yml (Icelandic) [ci skip] * New translations en.yml (Portuguese, Brazilian) [ci skip] * New translations en.yml (Portuguese, Brazilian) [ci skip] * New translations en.yml (Portuguese, Brazilian) [ci skip] * New translations en.yml (Portuguese, Brazilian) [ci skip] * New translations en.yml (Portuguese, Brazilian) [ci skip] * New translations en.yml (Indonesian) [ci skip] * New translations en.yml (Indonesian) [ci skip] * New translations en.yml (Indonesian) [ci skip] * New translations en.yml (Indonesian) [ci skip] * New translations en.yml (Indonesian) [ci skip] * New translations en.yml (Spanish, Mexico) [ci skip] * New translations en.yml (Spanish, Mexico) [ci skip] * New translations en.yml (Spanish, Mexico) [ci skip] * New translations en.yml (Spanish, Mexico) [ci skip] * New translations en.yml (Spanish, Mexico) [ci skip] * New translations en.yml (Latvian) [ci skip] * New translations en.yml (Latvian) [ci skip] * New translations en.yml (Latvian) [ci skip] * New translations en.yml (Latvian) [ci skip] * New translations en.yml (Latvian) [ci skip] * New translations en.yml (French, Canada) [ci skip] * New translations en.yml (French, Canada) [ci skip] * New translations en.yml (French, Canada) [ci skip] * New translations en.yml (French, Canada) [ci skip] * New translations en.yml (French, Canada) [ci skip] * New translations en.yml (Luxembourgish) [ci skip] * New translations en.yml (Luxembourgish) [ci skip] * New translations en.yml (Luxembourgish) [ci skip] * New translations en.yml (Luxembourgish) [ci skip] * New translations en.yml (Spanish, Paraguay) [ci skip] * New translations en.yml (Spanish, Paraguay) [ci skip] * New translations en.yml (Spanish, Paraguay) [ci skip] * New translations en.yml (Spanish, Paraguay) [ci skip] * New translations en.yml (Spanish, Paraguay) [ci skip] * New translations en.yml (Ukrainian with many plural form) [ci skip] * New translations en.yml (Ukrainian with many plural form) [ci skip] * New translations en.yml (Ukrainian with many plural form) [ci skip] * New translations en.yml (Ukrainian with many plural form) [ci skip] * New translations en.yml (Ukrainian with many plural form) [ci skip] * New translations en.yml (Russian with many plural form) [ci skip] * New translations en.yml (Russian with many plural form) [ci skip] * New translations en.yml (Russian with many plural form) [ci skip] * New translations en.yml (Russian with many plural form) [ci skip] * New translations en.yml (Russian with many plural form) [ci skip] * New translations en.yml (Finnish (plain)) [ci skip] * New translations en.yml (Finnish (plain)) [ci skip] * New translations en.yml (Finnish (plain)) [ci skip] * New translations en.yml (Finnish (plain)) [ci skip] * New translations en.yml (Finnish (plain)) [ci skip] * New translations en.yml (Catalan, Algherese) [ci skip] * New translations en.yml (Catalan, Algherese) [ci skip] * New translations en.yml (Catalan, Algherese) [ci skip] * New translations en.yml (Catalan, Algherese) [ci skip] * New translations en.yml (Catalan, Algherese) [ci skip] * New translations en.yml (Czech) [ci skip] * New translations en.yml (Czech) [ci skip] * New translations en.yml (Czech) [ci skip] * New translations en.yml (Czech) [ci skip] * New translations en.yml (Czech) [ci skip] * New translations en.yml (Czech) [ci skip] * New translations en.yml (Czech) [ci skip] * New translations en.yml (Czech) [ci skip] * New translations en.yml (Czech) [ci skip] * New translations en.yml (Czech) [ci skip]
[ci skip]
* New translations en.yml (Polish) [ci skip] * New translations en.yml (French) [ci skip] * New translations en.yml (Turkish) [ci skip] * New translations en.yml (French, Canada) [ci skip] * New translations en.yml (French) [ci skip] * New translations en.yml (French, Canada) [ci skip] * New translations en.yml (French) [ci skip] * New translations en.yml (French, Canada) [ci skip] * New translations en.yml (French) [ci skip] * New translations en.yml (French, Canada) [ci skip] * New translations en.yml (French) [ci skip] * New translations en.yml (Spanish) [ci skip] * New translations en.yml (Catalan) [ci skip] * New translations en.yml (Basque) [ci skip] * New translations en.yml (Finnish) [ci skip] * New translations en.yml (Japanese) [ci skip] * New translations en.yml (Polish) [ci skip] * New translations en.yml (Spanish, Mexico) [ci skip] * New translations en.yml (French, Canada) [ci skip] * New translations en.yml (Spanish, Paraguay) [ci skip] * New translations en.yml (Finnish (plain)) [ci skip] * New translations en.yml (Catalan, Algherese) [ci skip] * New translations en.yml (French) [ci skip] * New translations en.yml (French, Canada) [ci skip] * New translations en.yml (French) [ci skip] * New translations en.yml (French, Canada) [ci skip] * New translations en.yml (French) [ci skip] * New translations en.yml (Finnish) [ci skip] * New translations en.yml (French, Canada) [ci skip] * New translations en.yml (Spanish) [ci skip] * New translations en.yml (Catalan) [ci skip] * New translations en.yml (Basque) [ci skip] * New translations en.yml (Finnish) [ci skip] * New translations en.yml (Japanese) [ci skip] * New translations en.yml (Spanish, Mexico) [ci skip] * New translations en.yml (Spanish, Paraguay) [ci skip] * New translations en.yml (Finnish (plain)) [ci skip] * New translations en.yml (Catalan, Algherese) [ci skip]
Co-authored-by: Alexandru Emil Lupu <contact@alecslupu.ro>
* Use Ubuntu 24.04 in github actions * Addional fix for ubuntu 24 * Fix performance workflow --------- Co-authored-by: Alexandru Emil Lupu <contact@alecslupu.ro>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
NOT TO MERGE