Skip to content

Replace searchlight with ransack which is already a core dependency#8748

Merged
andreslucena merged 113 commits intodecidim:developfrom
mainio:refactor/remove-searchlight
Feb 16, 2022
Merged

Replace searchlight with ransack which is already a core dependency#8748
andreslucena merged 113 commits intodecidim:developfrom
mainio:refactor/remove-searchlight

Conversation

@ahukkanen
Copy link
Copy Markdown
Contributor

@ahukkanen ahukkanen commented Jan 24, 2022

🎩 What? Why?

This migrates the participant view resource searching and filtering from the Searchlight implementation to Ransack because we don't need two separate ways of doing filtering within Decidim.

This is related to a larger Decidim refactoring effort of replacing gems with small communities with better maintained alternatives as well as removing unnecessary dependencies from Decidim that are essentially doing the same thing.

This is a breaking change and will require changes in 3rd party modules/applications that have:

  1. Customized some of the filtering views
  2. Implemented their own Searchlight based searches

📌 Related Issues

Testing

  • Test all the participant facing search interfaces that are now running their searches on top of Ransack
  • Test that no admin search views are broken by these changes (I assume the specs should spot these)

📋 Checklist

  • CONSIDER adding a unit test if your PR resolves an issue.
  • ✔️ DO check open PR's to avoid duplicates.
  • ✔️ DO keep pull requests small so they can be easily reviewed.
  • ✔️ DO build locally before pushing.
  • ✔️ DO make sure tests pass.
  • ✔️ DO make sure any new changes are documented in docs/.
  • ✔️ DO add and modify seeds if necessary.
  • ✔️ DO add CHANGELOG upgrade notes if required.
  • ✔️ DO add to GraphQL API if there are new public fields.
  • ✔️ DO add link to MetaDecidim if it's a new feature.
  • AVOID breaking the continuous integration build.
  • AVOID making significant changes to the overall architecture.

Do not convert number 1 to `true` within the searches.
This base class is needed for searches that need context
information such as the current user or current component.
This is in order to distinguish the ransackable_scopes between the
admin users and the general users.
The filter class will not work for controllers/views which do not
define a dedicated search_collection such as the global search
page. For this reason, we revert back to the params based proxy
class for building the forms.

The `Ransack::Search` classes work just as well with the forms but
they need to have a searchable collection behind them.
@ahukkanen
Copy link
Copy Markdown
Contributor Author

@andreslucena Thanks for the thorough testing!

I found a few bugs in the accountability component through your issue report. These issues are now fixed.

I also improved the E2E test suite for accountability to catch these issues in the testing pipeline and also to test the particular issue you reported about.

Copy link
Copy Markdown
Member

@andreslucena andreslucena left a comment

Choose a reason for hiding this comment

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

As I said, I couldn't find any other bug, so I'm approving and merging it. The API seems clearer that the old one 😄

@andreslucena andreslucena merged commit 7435bcd into decidim:develop Feb 16, 2022
@ahukkanen ahukkanen deleted the refactor/remove-searchlight branch February 16, 2022 15:16
entantoencuanto added a commit that referenced this pull request Feb 18, 2022
* develop: (134 commits)
  Remove Rectify::Presenter references (#8758)
  Clarify the locales on the list of admins (#8838)
  Fix activity cell disappearing author images (#8826)
  Fix notifications when there is a note proposal in other spaces than processes (#8822)
  Fix accountability text search (#8831)
  Fix displaying hidden meetings in show process page (#8823)
  Fix docs for install-decidim.sh permissions (#8839)
  Fix report moderation for all the spaces (#8813)
  Clarify the comment at the resource search class (#8829)
  Fix displaying hidden related resources (#8812)
  Replace Decidim mentions in UI with 'the platform' (#8827)
  Add natively a .keep file to empty directory to include on git committing (#8830)
  Fix scope validation on initiative's creation (#8755)
  Replace `searchlight` with `ransack` which is already a core dependency (#8748)
  Fix characters not encoded in highlighted participatory process group title (#8820)
  Test ensuring the moderated comments are not computed in stats (#8816)
  Update rails to 6.0.4.6 and puma to 5.6.2 (#8817)
  Fix displaying hidden meetings in processes group's "upcoming meetings" content block (#8818)
  Fix displaying hidden meetings in homepage's "upcoming meetings" content block (#8809)
  Improve "Release Candidates" release docs (#8804)
  ...
@alecslupu alecslupu added this to the 0.27.0 milestone Jul 14, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file or issues that talk about updating dependencies module: core target: developer-experience

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Flaky test when admin filters proposals by assigned valuator

3 participants