PrestaShop / prestafony-project

Some resources to help you migrate PrestaShop to Symfony 3
https://github.com/PrestaShop/prestafony-project/projects/1
11 stars 8 forks source link

Checklist with Grid component improvements #68

Closed sarjon closed 4 years ago

sarjon commented 6 years ago

This could be a checklist with Grid component improvements that must be finished before 1.7.5 stable.

sarjon commented 6 years ago

@mickaelandrieu please review and update with your input. :)

mickaelandrieu commented 6 years ago

Hello @eternoendless,

note that none of these items are required (except JavaScript stuff) to allow developers to customize their grids! So imo, it's not must but may that we should read in the issue description ^^

We're listing improvements here ^^

@sarjon I'll review on monday, I'm not available this weekend

sarjon commented 6 years ago

@mickaelandrieu dont forget this one. :)

mickaelandrieu commented 6 years ago

Introduce Modifiers for Grid data. (still needs to be discussed)

Will be discussed in 1.7.6

Finish up templating. (PR PrestaShop/PrestaShop#9281)

Must be finished before the 10th of September or postponed to 1.7.6

Introduce GridView object to make presented Grid immutable. (still needs to be discussed)

Will be discussed in 1.7.6

Improve Data factories (PR PrestaShop/PrestaShop#9402)

Must be finished before the 10th of September or postponed to 1.7.6

Improve Filters component to make them accessible in multiple actions (Issue #61, not a Grid component directly, but still important)

Will be discussed in 1.7.6

Add Grid prefix to DefinitionInterface, Definition and FilterFormFactoryInterface to follow current naming. (there could be other classes as well)

Must be finished before the 10th of September or postponed to 1.8

Add more unit tests

Already done, but can be continued until 30th of September

Finish up documentation

Already done, but can be continued until 30th of September

Make Grid filter form (created by FilterFormFactoryInterface) more configurable, like form action, form method, data transformers & etc. (still needs to be discussed)

Will be discussed in 1.7.6

RowActionInterface and GridActionInterface has getIcon() / setIcon() methods, we should either remove them or add same for BulkActionInterface. (still needs to be discussed)

Will be discussed in 1.7.6

Create module with custom Grid and existing Grid modification examples. (Issue #63, PR https://github.com/sarjon/demo-grid-module)

Already in WIP, I hope we will have it for the release

Assets management in modules improvement. (Issue #67)

IMHO not really related to grid management and workarounds can be documented.

mickaelandrieu commented 6 years ago

To sum up my position: after the 10th of September, we don't introduce anything new into the Grid component. I'll assume it, I want a stable component in 1.7.5 /c @eternoendless

sarjon commented 6 years ago

Introduce Modifiers for Grid data. (still needs to be discussed)

Will be discussed in 1.7.6

@mickaelandrieu i think we should add this to 1.7.5, because:

  1. legacy "grid" has this feature
  2. while working on Categories grid i noticed I need it there as well (also Backup grid is waiting for it and i think Currencies grid will need it as well)

This feature is very small but also very important to have, wdyt?

mickaelandrieu commented 6 years ago

also Backup grid

this page is merged so we can work without it for now? 1.7.6 will be released in january imo.

Also, we have already a hook to manipulate Grid data, even if it's a workaround it's good enough to buy us time to do a better system in 1.7.6

sarjon commented 6 years ago

For Backup it was easy to implement as workaround with private methods because backups are loaded from filesystem so i had to make new DataFactory. You can check Backup implementation here

However, it would be much harder for DoctrineDataFactory as it would require to create separate factory like CategoryDataFactory just to make small change. :/

mickaelandrieu commented 6 years ago

I know but it's only workarounds to buy us some time, we can't do everything at the same time and there are already a lot of required tasks to finish.

Believe me, 1.7.6 will be released after 1.7.5: this is not the end, this is the beginning :sunglasses: