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
ListTemplatewithListTemplateField,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
CustomFieldand binds toCustomFieldsEntities. - Favorites: Users mark records via
FavoritesUser/Favourite. - Scheduled reports: Configured by
ScheduleReportsController, executed byCommonCronsController.
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
PhpExcelplugin.
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).