Repository
OCA/vertical-association · module folder · Try on Runboat
Module version
1.0.0
Category
Association
Folder size
0.3 MB
License
AGPL-3
Application
No
Auto-installable
No
Website
https://github.com/OCA/vertical-association
Last tracking update
2026-08-07 09:06:34
Authors
Odoo Community Association (OCA), Onestein, Tecnativa
Maintainers
Odoo Community Association (OCA), Onestein, Tecnativa
Committers
Carlos Lopez, OCA-git-bot, oca-ci
Odoo dependencies
OCA/vertical-association:
odoo/odoo:
- web
- bus
- uom
Python dependencies
None
System dependencies
None
Required by
None
Description
Current membership module allows to set products that define a fixed
period for a membership. This is good when the quotas are defined
periodically, and when you become a member, you are until the end of
that quota cycle.

But a lot of times, membership quotas express an amount of time that you
gain the membership. For example, one year since the subscription.

This module allows to make it in Odoo, using current membership
features, and adapting them for this purpose. As now the quota is not
attached to a fixed period, you can also invoice more than one quantity
for being a member for the corresponding number of periods.

Finally, a cron has been included that triggers the recalculation of the
membership state, allowing to have "old members", which doesn't work
well on standard.

Code Analysis

Views touched (1)
XML IDNameModelTypeStatus
membership_products_form_period Membership Products (variable period) product.template form Inherits membership.membership_products_form
HTTP endpoints (0)

No HTTP endpoints found for this module.

Models touched (2)

New fields (0)

No new fields.

Public methods (2)
  • create(self, vals_list)
    @api.model_create_multi
  • write(self, vals)
    Create before the lines of membership with variable period.

New fields (3)
  • membership_interval_qty Integer
    default=1 required=True string='Interval quantity'
  • membership_interval_unit Selection
    default='years' required=True selection=[('days', 'days'), ('weeks', 'weeks'), ('months', 'months'), ('years', 'years')] string='Interval Unit'
  • membership_type Selection
    default='fixed' required=True selection=[('fixed', 'Fixed dates'), ('variable', 'Variable periods')]
Public methods (2)
  • create(self, vals_list)
    @api.model_create_multi
  • write(self, vals)

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…