TIP: You can type at any time to perform a new search.
Variable period for memberships
membership_variable_period · OCA/vertical-association
- 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
- 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 ID | Name | Model | Type | Status |
|---|---|---|---|---|
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_qtyIntegerdefault=1required=Truestring='Interval quantity' -
membership_interval_unitSelectiondefault='years'required=Trueselection=[('days', 'days'), ('weeks', 'weeks'), ('months', 'months'), ('years', 'years')]string='Interval Unit' -
membership_typeSelectiondefault='fixed'required=Trueselection=[('fixed', 'Fixed dates'), ('variable', 'Variable periods')]
-
create(self, vals_list)@api.model_create_multi -
write(self, vals)
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…