Configurable Lists, Grids, Templates & Custom Fields

Business perspective: Configurable Screens, Lists & Templates

1. Business Summary

End users and administrators tailor data screens via reusable list templates (filters, joins, fields, search), grid columns (Gridmap), template views (TemplateView/ViewMap), custom fields per entity, favorites, scheduled reports, and per-user/role preferences.

2. Business Value

Without re-coding, the business can adapt screens to evolving processes, brand-specific needs, role differences, and regulatory data requirements.

3. Users / Stakeholders

Power users, department leads, administrators.

4. Workflows

  • Define list template: Admin creates ListTemplate with ListTemplateField, ListTemplateFilter, ListTemplateJoin, ListTemplateSearcher.
  • Apply per role/user: Templates linked to roles/users; resolved at runtime by Gridmap component.
  • Configure grid columns: Per TemplatesViewColumn, TemplatesViewRelatedEntity, TemplatesViewRelatedEntityUser, TemplatesViewsUser.
  • Custom fields: Admin creates CustomField and binds to CustomFieldsEntities.
  • Favorites: Users mark records via FavoritesUser/Favourite.
  • Scheduled reports: Configured by ScheduleReportsController, executed by CommonCronsController.

5. Sub-Features

  • ListTemplate, ListTemplateField/Filter/Join/Searcher, ListTemplateFieldsDuplicate (duplication helper).
  • TemplateView, ViewMap, TemplatesViewColumn/RelatedEntity/User.
  • CustomField, CustomFieldsEntities.
  • Favorites & user preferences.
  • ScheduleReports & ScheduleReportLog.

6. Business Rules

  • Templates can be global, role-based, or user-specific.
  • Searcher templates restrict export/filter capabilities by role.

7. Data Entities

ListTemplate, ListTemplateField, ListTemplateFilter, ListTemplateJoin, ListTemplateSearcher, TemplatesViewColumn, TemplatesViewRelatedEntity, TemplatesViewsUser, TemplateView, ViewMap, CustomField, CustomFieldsEntities, FavoritesUser/Favourite, ScheduleReport, ScheduleReportLog.

8. Entry Points

  • Admin: admin/customFields, admin/customFieldsEntities, list/template config menus.
  • Backend: Gridmap component (used in many list views).

9. Inputs & Outputs

  • Inputs: template definitions, search filters.
  • Outputs: filtered grid views, exports (CSV/Excel via app/Plugin/PhpExcel), scheduled emails.

10. Integrations

  • Email (scheduled report dispatch).
  • Excel via PhpExcel plugin.

11. Calculations / Logic

  • Dynamic SQL composition by Gridmap based on joins/filters.

12. Status Lifecycle

N/A (configuration data).

13. Permissions

Maintenance restricted to admins; templates filter by role/user.

14. Reports & KPIs

  • Scheduled report execution success/failure logs.

15. Risks & Observations

  • Heavy reliance on metadata configuration; corrupted/missing template can break many screens.
  • Possible SQL composition risks if filter values are not parameterized.
  • Many duplicated/triplicated controllers (e.g., CommonController.php, .orig, .orig.orig) suggest experimental patches not cleaned up.

16. Source Code Evidence

  • app/Model/{ListTemplate, ListTemplateField, ListTemplateFilter, ListTemplateJoin, ListTemplateSearcher, TemplatesViewColumn, TemplatesViewRelatedEntity, TemplatesViewsUser, TemplateView, ViewMap, FavoritesUser}.php.
  • app/Plugin/admin/Controller/CustomFieldsController.php, CustomFieldsEntitiesController.php.
  • app/Controller/ScheduleReportsController.php, app/Model/ScheduleReportLog.php.
  • app/Plugin/PhpExcel/* (Excel export).

← Deep dives index