Skip to content

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_trial
  • sadeem_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

  1. Subscription Type - Extended with DbFilter option
  2. DB Filter Server Group - Server group for auto-assigning trial subscriptions (required when type is dbfilter)

How It Works

  1. Trial package is configured with type DbFilter and a server group
  2. Customer submits trial form
  3. System creates trial request and subscription
  4. The server group's get_best_server() selects the optimal server
  5. All server-related fields (IP, ports, domain, Cloudflare, Nginx) are auto-populated
  6. 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_creation raises ValidationError if subscription_type = 'dbfilter' and no dbfilter_server_group_id is configured on the trial package.
  • No new models: This module only inherits and extends existing models.
  • subscription_type cleared: @api.onchange clears dbfilter_server_group_id when switching away from dbfilter type.