You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Form fields for filtering in CMSMain are hardcoded - and some of the functionality is duplicated or else needlessly different between this filter functionality and GridFieldFilterHeader.
original POC PR - this PR includes many additional notes and implementation details
Acceptance Criteria
The fields to use for filtering are pulled from the model in the same way GridFieldFilterHeader does (i.e. it uses searchableFields())
SearchContext is used for filtering in CMSMain the same way it is in GridFieldFilterHeader
Any CMSSiteTreeFilter logic is either made generic if possible, or else used by the SearchContext for SiteTree wherever filtering pages is used
i.e. filtering pages in a gridfield uses the same logic as filtering pages in CMSMain
A shared template and shared javascript/css are used for the filter in GridFieldFilter and CMSMain (with the ability to use different custom templates as desired - e.g. by trying to get specific templates by class name first, and falling back to the shared one)
As much as feasible, PHP logic for filtering in GridFieldFilterHeader and CMSMain is shared
PRs
Enable WithinRangeFilter in searchable_fields
This set of PRs is required to match the ranged filtering against LastEdited which is currently only possible for SiteTree inside CMSMain.
Avoid filterByCallback() in CMSSiteTreeFilter subclasses
Important
Reassign to Guy if the above are merged but the below sink CI hasn't gone green yet
This set of PRs is required to migrate the SiteTree filtering functionality to primarily use SearchContext, which requires filtering be done by the ORM not in PHP.
Form fields for filtering in
CMSMain
are hardcoded - and some of the functionality is duplicated or else needlessly different between this filter functionality andGridFieldFilterHeader
.Relevant
Acceptance Criteria
GridFieldFilterHeader
does (i.e. it usessearchableFields()
)SearchContext
is used for filtering inCMSMain
the same way it is inGridFieldFilterHeader
CMSSiteTreeFilter
logic is either made generic if possible, or else used by theSearchContext
forSiteTree
wherever filtering pages is usedCMSMain
GridFieldFilter
andCMSMain
(with the ability to use different custom templates as desired - e.g. by trying to get specific templates by class name first, and falling back to the shared one)GridFieldFilterHeader
andCMSMain
is sharedPRs
Enable
WithinRangeFilter
insearchable_fields
This set of PRs is required to match the ranged filtering against
LastEdited
which is currently only possible forSiteTree
insideCMSMain
.Avoid
filterByCallback()
inCMSSiteTreeFilter
subclassesImportant
Reassign to Guy if the above are merged but the below sink CI hasn't gone green yet
This set of PRs is required to migrate the
SiteTree
filtering functionality to primarily useSearchContext
, which requires filtering be done by the ORM not in PHP.Kitchen sink CI run
The main refactoring
The above should be merged before reviewing these, as some of the code from the above PRs is also included in the below.
The text was updated successfully, but these errors were encountered: