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.