TIP: You can type at any time to perform a new search.
Membership extension
membership_extension · OCA/vertical-association
- Repository
- OCA/vertical-association · module folder · Try on Runboat
- Module version
- 1.1.0
- Category
- Membership
- Folder size
- 1.17 MB
- License
- AGPL-3
- Application
- No
- Auto-installable
- No
- Website
- https://github.com/OCA/vertical-association
- Last tracking update
- 2026-08-07 08:43:01
- Authors
- Odoo Community Association (OCA), Onestein, Tecnativa
- Maintainers
- Odoo Community Association (OCA), Onestein, Tecnativa
- Committers
- Jairo Llopis, Weblate, OCA-git-bot, oca-ci, Bhavesh Heliconia
- Odoo dependencies
- Python dependencies
- None
- System dependencies
- None
- Required by
- membership_variable_period, membership_withdrawal, oca_all, oca_membership, oca_sponsor
- Description
This module extends Odoo's membership management with the following features: - Membership category - Membership lines editable - Do not calculate membership state from invoice status - Start date of last membership period - Partner's with member lines can't be deleted. - When a partner has an associated member there is the option to make member start date independent from the associated member one so joining dates can be tracked for those members. - Adds a category for Membership management security group so a user with only that permission can access to the membership menu.
Code Analysis ⓘ
Views touched (6)
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
membership_category_tree_view |
Membership Categories | membership.membership_category | list | New |
membership_product_search_form_view |
Add membership category field | product.template | form | Inherits membership.membership_product_search_form_view |
membership_products_form |
Add membership category field | product.template | form | Inherits membership.membership_products_form |
membership_products_tree |
Membership extension | product.template | tree | Inherits membership.membership_products_tree |
view_partner_form |
Membership extension | res.partner | form | Inherits membership.view_partner_form |
view_res_partner_member_filter |
Membership extension filters | res.partner | Inherits membership.view_res_partner_member_filter |
HTTP endpoints (0)
No HTTP endpoints found for this module.
Models touched (7)
New fields (0)
No new fields.
Public methods (3)-
action_post(self)Handle validated refunds for cancelling membership lines -
button_cancel(self)Cancel membership for customer invoices and restore previous membership state for customer refunds. Harmless on supplier ones. -
button_draft(self)
New fields (1)
-
membership_linesOne2many → membership.membership_linecomodel_name='membership.membership_line'inverse_name='account_invoice_line'
-
create(self, vals_list)@api.model_create_multi -
unlink(self)
New fields (2)
-
company_idMany2one → res.companyargs: 'res.company' -
nameCharrequired=Truetranslate=True
No public methods.
New fields (6)
-
category_idMany2one → membership.membership_categorycomodel_name='membership.membership_category'related='membership_id.membership_category_id' -
date_fromDatereadonly=False -
date_toDatereadonly=False -
member_priceFloatcompute='_compute_member_price'readonly=Falsestore=True -
partnerMany2oneondelete='restrict' -
stateSelectioncompute='_compute_state'readonly=False
-
unlink(self)
New fields (0)
No new fields.
Public methods (0)No public methods.
New fields (1)
-
membership_category_idMany2one → membership.membership_categorycomodel_name='membership.membership_category'compute='_compute_membership_category_id'readonly=Falsestore=Truestring='Membership category'
No public methods.
New fields (9)
-
associate_memberMany2oneindex=True -
is_adhered_memberBooleancompute='_compute_is_adhered_member'help='A member who is associated to another one, but whose membership are independent.'readonly=Falsestore=True -
membership_cancelDatecompute='_compute_membership_date'help='Date on which membership has been cancelled.'readonly=Truerecursive=Truestore=Truestring='Cancel Membership Date' -
membership_category_idsMany2many → membership.membership_categorycomodel_name='membership.membership_category'compute='_compute_membership_state'readonly=Truerecursive=Truestore=Truestring='Membership Categories' -
membership_last_startDatecompute='_compute_membership_date'help='Date when the partner became a member for the last time.'readonly=Truerecursive=Truestore=Truestring='Membership Last Start Date' -
membership_startDatecompute='_compute_membership_date'help='Earliest historical date this partner ever became a member.'readonly=Truerecursive=Truestore=Truestring='Membership Start Date' -
membership_start_adheredDatedefault=fields.Date.today()help='Date from which partner is adhered.'string='Membership Adhered Start Date' -
membership_stateSelectioncompute='_compute_membership_state'index=Truerecursive=Trueselection=STATEstore=True -
membership_stopDatecompute='_compute_membership_date'help="Date when the latest partner's membership ends."readonly=Truerecursive=Truestore=Truestring='Membership End Date'
-
check_membership_all(self)@api.modelForce a recalculation on partners with member lines -
check_membership_expiry(self)@api.modelForce a recalculation on expired members
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…