Diagrams¶
This page will show various diagrams about the framework structure.
Class View Diagram Tree¶
All class views tree reflect functionality each layer is responsible for a certain goal. You will be essentially using BaseViews, IndexViews and the leafs ModelView, chart views and form views.
Next is a summary explanation for each class:
- BaseView:
Collects all the exposed methods, creates the Flask blueprint and registers the URLs, initializes base permissions.
- UtilView:
Implements exposes back for special back UI functionality.
- IndexView:
Special view for rendering the index page.
- SimpleFormView:
Subclass it to render WTForms.
- PublicFormView:
Same as SimpleFormView but with public access only.
- BaseModelView:
Class responsible for an initial datamodel layer, implements search form and filters.
- BaseChartView:
Basic chart view functionality.
- GroupByChartView:
Subclass it to render Google charts with group by queries.
- DirectByChartView:
Subclass it to render Google charts with queries.
- BaseCRUDView:
Implement base functionality for add, edit, delete, creates all forms.
- RestCRUDView:
Exposes the JSON REST API for CRUD methods and more.
- ModelView:
Subclass it to render your views based on models, with complete CRUD UI functionality.
- MasterDetailView:
Renders a master ModelView and multiple detail ModelViews thar are database related.
- MultipleView:
Renders multiple views on the same page (ex: ModelView and GroupByChartView)
Class Data Diagram Tree¶
All classes for data access aim for abstracting the backend.
- BaseInterface:
Interface class, imposes a unique API layer for data access.
- SQLAInterface:
Data access for SQLAlchemy.
- MongoEngineInterface:
Data access for MongoEngine (MongoDB).
- GenericInterface:
Data access for custom data structures.
Class Security Diagram Tree¶
Classes that are involved in implementing security. Register security views, implement various methods of authentication manage permissions (insert/remove all permission on the backend).
- BaseManager:
Base class for all Manager classes, holds AppBuilder class.
- AbstractSecurityManager:
Abstract class for Security managers, defines the must have methods.
- BaseSecurityManager:
Base class for security, registers security views, implements authentication, inserts/removes all permission on the database, manages roles/users and views.
- sqla.SecurityManager:
Implements BaseSecurityManager for SQAlchemy.
- mongoengine.SecurityManager:
Implements BaseSecurityManager for MongoEngine.
Security Models ERD¶
This is the ERD of the frameworks security models.