Module Architecture
flowchart TD
TRIAL["sadeem_subscription_trial\nTrial Base"]
DBFILTER["sadeem_saas_dbfilter\nDBFilter SAAS"]
PKG["sadeem.subscription.trial.package (inherit)\nDBFilter server group field\nauto-assigns trial to best server"]
GRP["sadeem.dbfilter.server.group\ngroup of shared Odoo servers\nwith common defaults"]
SRV["sadeem.dbfilter.server\nauto-selected by get_best_server()\nbased on load / capacity"]
SUB["sadeem.subscription\ntype=dbfilter\nserver defaults auto-applied"]
TRIAL --> PKG
DBFILTER --> PKG
PKG --> GRP
GRP --> A1([get_best_server\nselect DBFilter server by capacity])
A1 --> SRV
PKG --> A2([action_create_subscription override\napply dbfilter server group to subscription])
A2 --> SUB
SRV --> A3([_apply_dbfilter_server_group_defaults\nset domain · Nginx · Cloudflare · backup])
A3 --> SUB
SUB --> A4([action_confirm\ncreate DB on shared Odoo server])
EXT[/DBFilter Slave Agent\nremote Odoo server/]
A4 --> EXT
Module Description
SAAS Subscription Trial - DB Filter Extension. Adds DB Filter server group configuration to trial packages, enabling trial subscriptions to be deployed on DB Filter servers.
Dependencies
sadeem_subscription_trialsadeem_saas_dbfilter
Extension
This module extends the trial package with a DB Filter Server Group field. When the subscription type is set to dbfilter, the trial system uses the server group to auto-select the best DB Filter server for the trial subscription.
Additional Trial Package Fields
- Subscription Type - Extended with
DbFilteroption - DB Filter Server Group - Server group for auto-assigning trial subscriptions (required when type is
dbfilter)
How It Works
- Trial package is configured with type
DbFilterand a server group - Customer submits trial form
- System creates trial request and subscription
- The server group's
get_best_server()selects the optimal server - All server-related fields (IP, ports, domain, Cloudflare, Nginx) are auto-populated
- Subscription is confirmed and deployed on the selected DB Filter server
Key Fields
Trial Package — DBFilter additions (sadeem.subscription.trial.package inherit)
| Field | Type | Description |
|---|---|---|
| subscription_type | Selection | Extended with ('dbfilter', 'DB Filter') |
| dbfilter_server_group_id | Many2one | Server group for auto-assigning trial subscriptions to a DBFilter server |
Key Actions
| Action | Model | Description |
|---|---|---|
action_create_subscription (override) |
sadeem.subscription.trial.requests | Creates subscription with DBFilter server group; _apply_dbfilter_server_group_defaults is called to populate server defaults |
_onchange_dbfilter_server_group_trial |
sadeem.subscription (inherit) | Applies DBFilter server group defaults after subscription creation |
_validate_subscription_creation (override) |
sadeem.subscription.trial.requests | Adds DBFilter-specific validation: ensures dbfilter_server_group_id is set |
Warnings & Important Notes
- Server group required:
_validate_subscription_creationraisesValidationErrorifsubscription_type = 'dbfilter'and nodbfilter_server_group_idis configured on the trial package. - No new models: This module only inherits and extends existing models.
subscription_typecleared:@api.onchangeclearsdbfilter_server_group_idwhen switching away fromdbfiltertype.