| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/vertical-association |
| GIT | |
| GIT | https://github.com/OCA/vertical-association.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/vertical-association/tree/18.0/membership_extension |
| VERSION | |
| VERSION | 1.1.0 |
| CATEGORY | |
| CATEGORY | Membership |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Tecnativa, Odoo Community Association (OCA), Onestein |
| MAINTAINERS | |
| MAINTAINERS | Tecnativa, Odoo Community Association (OCA), Onestein |
| COMMITTERS | |
| COMMITTERS | Jairo Llopis, Weblate, OCA-git-bot, oca-ci, Bhavesh Heliconia |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/vertical-association |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 19:30:14 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - membership - account - base_setup - base - web - onboarding - product - bus - web_tour - html_editor - uom - analytic - portal - web_editor - http_routing - auth_signup - digest - resource |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| 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. |
| 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 | field | Inherits membership.membership_product_search_form_view |
membership_products_form |
Add membership category field | product.template | field | Inherits membership.membership_products_form |
membership_products_tree |
Membership extension | product.template | field | Inherits membership.membership_products_tree |
view_partner_form |
Membership extension | res.partner | field | Inherits membership.view_partner_form |
view_res_partner_member_filter |
Membership extension filters | res.partner | xpath | Inherits membership.view_res_partner_member_filter |
No new fields.
Public methods (3)action_post(self)
button_cancel(self)
button_draft(self)
membership_lines
One2many → membership.membership_line
comodel_name='membership.membership_line'
inverse_name='account_invoice_line'
create(self, vals_list)
unlink(self)
company_id
Many2one → res.company
name
Char
required=True
translate=True
No public methods.
category_id
Many2one → membership.membership_category
comodel_name='membership.membership_category'
related='membership_id.membership_category_id'
date_from
Date
readonly=False
date_to
Date
readonly=False
member_price
Float
compute='_compute_member_price'
readonly=False
store=True
partner
Many2one
ondelete='restrict'
state
Selection
compute='_compute_state'
readonly=False
unlink(self)
No new fields.
Public methods (0)No public methods.
membership_category_id
Many2one → membership.membership_category
comodel_name='membership.membership_category'
compute='_compute_membership_category_id'
readonly=False
store=True
string='Membership category'
No public methods.
associate_member
Many2one
index=True
is_adhered_member
Boolean
compute='_compute_is_adhered_member'
help='A member who is associated to another one, but whose membership are independent.'
readonly=False
store=True
membership_cancel
Date
compute='_compute_membership_date'
help='Date on which membership has been cancelled.'
readonly=True
recursive=True
store=True
string='Cancel Membership Date'
membership_category_ids
Many2many → membership.membership_category
comodel_name='membership.membership_category'
compute='_compute_membership_state'
readonly=True
recursive=True
store=True
string='Membership Categories'
membership_last_start
Date
compute='_compute_membership_date'
help='Date when the partner became a member for the last time.'
readonly=True
recursive=True
store=True
string='Membership Last Start Date'
membership_start
Date
compute='_compute_membership_date'
help='Earliest historical date this partner ever became a member.'
readonly=True
recursive=True
store=True
string='Membership Start Date'
membership_start_adhered
Date
default=fields.Date.today()
help='Date from which partner is adhered.'
string='Membership Adhered Start Date'
membership_state
Selection
compute='_compute_membership_state'
index=True
recursive=True
selection=STATE
store=True
membership_stop
Date
compute='_compute_membership_date'
help="Date when the latest partner's membership ends."
readonly=True
recursive=True
store=True
string='Membership End Date'
check_membership_all(self)
check_membership_expiry(self)
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/vertical-association |
| GIT | |
| GIT | https://github.com/OCA/vertical-association.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/vertical-association/tree/17.0/membership_extension |
| VERSION | |
| VERSION | 1.0.3 |
| CATEGORY | |
| CATEGORY | Membership |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Tecnativa, Odoo Community Association (OCA), Onestein |
| MAINTAINERS | |
| MAINTAINERS | Tecnativa, Odoo Community Association (OCA), Onestein |
| COMMITTERS | |
| COMMITTERS | Pedro M. Baeza, Weblate, OCA-git-bot, Hans Henrik Gabelgaard, oca-ci, Roger |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/vertical-association |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 19:20:07 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - membership - account - base_setup - base - web - onboarding - product - bus - web_tour - uom - analytic - portal - web_editor - http_routing - auth_signup - digest - resource |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| 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. |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
membership_category_tree_view |
Membership Categories | membership.membership_category | tree | New |
membership_product_search_form_view |
Add membership category field | product.template | field | Inherits membership.membership_product_search_form_view |
membership_products_form |
Add membership category field | product.template | field | Inherits membership.membership_products_form |
membership_products_tree |
Membership extension | product.template | field | Inherits membership.membership_products_tree |
view_partner_form |
Membership extension | res.partner | field | Inherits membership.view_partner_form |
view_res_partner_member_filter |
Membership extension filters | res.partner | xpath | Inherits membership.view_res_partner_member_filter |
No new fields.
Public methods (3)action_post(self)
button_cancel(self)
button_draft(self)
membership_lines
One2many → membership.membership_line
comodel_name='membership.membership_line'
inverse_name='account_invoice_line'
create(self, vals_list)
unlink(self)
company_id
Many2one → res.company
name
Char
required=True
translate=True
No public methods.
category_id
Many2one → membership.membership_category
comodel_name='membership.membership_category'
related='membership_id.membership_category_id'
date_from
Date
readonly=False
date_to
Date
readonly=False
member_price
Float
compute='_compute_member_price'
readonly=False
store=True
partner
Many2one
ondelete='restrict'
state
Selection
compute='_compute_state'
inverse='_inverse_state'
readonly=False
store=True
unlink(self)
No new fields.
Public methods (0)No public methods.
membership_category_id
Many2one → membership.membership_category
comodel_name='membership.membership_category'
compute='_compute_membership_category_id'
readonly=False
store=True
string='Membership category'
No public methods.
associate_member
Many2one
index=True
is_adhered_member
Boolean
compute='_compute_is_adhered_member'
help='A member who is associated to another one, but whose membership are independent.'
readonly=False
store=True
membership_cancel
Date
compute='_compute_membership_date'
help='Date on which membership has been cancelled.'
readonly=True
recursive=True
store=True
string='Cancel Membership Date'
membership_category_ids
Many2many → membership.membership_category
comodel_name='membership.membership_category'
compute='_compute_membership_state'
readonly=True
recursive=True
store=True
string='Membership Categories'
membership_last_start
Date
compute='_compute_membership_date'
help='Start date of last membership period.'
readonly=True
recursive=True
store=True
string='Membership Last Start Date'
membership_start
Date
compute='_compute_membership_date'
help='Date from which membership becomes active.'
readonly=True
recursive=True
store=True
string='Membership Start Date'
membership_start_adhered
Date
default=fields.Date.today()
help='Date from which partner is adhered.'
string='Membership Adhered Start Date'
membership_state
Selection
compute='_compute_membership_state'
index=True
recursive=True
selection=STATE
store=True
membership_stop
Date
compute='_compute_membership_date'
help='Date until which membership remains active.'
readonly=True
recursive=True
store=True
string='Membership End Date'
check_membership_all(self)
check_membership_expiry(self)
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/vertical-association |
| GIT | |
| GIT | https://github.com/OCA/vertical-association.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/vertical-association/tree/16.0/membership_extension |
| VERSION | |
| VERSION | 3.1.0 |
| CATEGORY | |
| CATEGORY | Membership |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Tecnativa, Odoo Community Association (OCA), Onestein |
| MAINTAINERS | |
| MAINTAINERS | Tecnativa, Odoo Community Association (OCA), Onestein |
| COMMITTERS | |
| COMMITTERS | Pedro M. Baeza, Jairo Llopis, Víctor Martínez, Weblate, OCA-git-bot, Hans Henrik Gabelgaard, Pierrick Brun, Carmen Bianca BAKKER, oca-ci, anjeel.haria, Simon Hick |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/vertical-association |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:53:50 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - membership - account - base_setup - base - web - product - bus - web_tour - uom - analytic - portal - web_editor - http_routing - auth_signup - digest - resource |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
membership_category_tree_view |
Membership Categories | membership.membership_category | tree | New |
membership_product_search_form_view |
Add membership category field | product.template | field | Inherits membership.membership_product_search_form_view |
membership_products_form |
Add membership category field | product.template | field | Inherits membership.membership_products_form |
membership_products_tree |
Membership extension | product.template | field | Inherits membership.membership_products_tree |
view_partner_form |
Membership extension | res.partner | field | Inherits membership.view_partner_form |
view_res_partner_member_filter |
Membership extension filters | res.partner | xpath | Inherits membership.view_res_partner_member_filter |
No new fields.
Public methods (3)action_post(self)
button_cancel(self)
button_draft(self)
membership_lines
One2many → membership.membership_line
comodel_name='membership.membership_line'
inverse_name='account_invoice_line'
create(self, vals_list)
unlink(self)
company_id
Many2one → res.company
name
Char
required=True
translate=True
No public methods.
category_id
Many2one → membership.membership_category
comodel_name='membership.membership_category'
related='membership_id.membership_category_id'
date_from
Date
readonly=False
date_to
Date
readonly=False
member_price
Float
compute='_compute_member_price'
readonly=False
store=True
partner
Many2one
ondelete='restrict'
state
Selection
compute='_compute_state'
readonly=False
unlink(self)
No new fields.
Public methods (0)No public methods.
membership_category_id
Many2one → membership.membership_category
comodel_name='membership.membership_category'
compute='_compute_membership_category_id'
readonly=False
store=True
string='Membership category'
No public methods.
associate_member
Many2one
index=True
is_adhered_member
Boolean
compute='_compute_is_adhered_member'
help='A member who is associated to another one, but whose membership are independent.'
readonly=False
store=True
membership_cancel
Date
compute='_compute_membership_date'
help='Date on which membership has been cancelled.'
readonly=True
recursive=True
store=True
string='Cancel Membership Date'
membership_category_ids
Many2many → membership.membership_category
comodel_name='membership.membership_category'
compute='_compute_membership_state'
readonly=True
recursive=True
store=True
string='Membership Categories'
membership_last_start
Date
compute='_compute_membership_date'
help='Date when the partner became a member for the last time.'
readonly=True
recursive=True
store=True
string='Membership Last Start Date'
membership_start
Date
compute='_compute_membership_date'
help='Earliest historical date this partner ever became a member.'
readonly=True
recursive=True
store=True
string='Membership Start Date'
membership_start_adhered
Date
default=fields.Date.today()
help='Date from which partner is adhered.'
string='Membership Adhered Start Date'
membership_state
Selection
compute='_compute_membership_state'
index=True
recursive=True
selection=STATE
store=True
membership_stop
Date
compute='_compute_membership_date'
help="Date when the latest partner's membership ends."
readonly=True
recursive=True
store=True
string='Membership End Date'
check_membership_all(self)
check_membership_expiry(self)
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/vertical-association |
| GIT | |
| GIT | https://github.com/OCA/vertical-association.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/vertical-association/tree/15.0/membership_extension |
| VERSION | |
| VERSION | 1.1.2 |
| CATEGORY | |
| CATEGORY | Membership |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Tecnativa, Odoo Community Association (OCA), Onestein |
| MAINTAINERS | |
| MAINTAINERS | Tecnativa, Odoo Community Association (OCA), Onestein |
| COMMITTERS | |
| COMMITTERS | Pedro M. Baeza, Weblate, OCA-git-bot, Hans Henrik Gabelgaard, oca-ci, anjeel.haria, Fabrizio Arzeni |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/vertical-association |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:46:36 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - membership - account - base_setup - base - web - product - bus - web_tour - uom - analytic - portal - web_editor - http_routing - auth_signup - digest - resource |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
membership_category_tree_view |
Membership Categories | membership.membership_category | tree | New |
membership_product_search_form_view |
Add membership category field | product.template | field | Inherits membership.membership_product_search_form_view |
membership_products_form |
Add membership category field | product.template | field | Inherits membership.membership_products_form |
membership_products_tree |
Membership extension | product.template | field | Inherits membership.membership_products_tree |
view_partner_form |
Membership extension | res.partner | field | Inherits membership.view_partner_form |
view_res_partner_member_filter |
Membership extension filters | res.partner | xpath | Inherits membership.view_res_partner_member_filter |
No new fields.
Public methods (3)action_post(self)
button_cancel(self)
button_draft(self)
membership_lines
One2many → membership.membership_line
comodel_name='membership.membership_line'
inverse_name='account_invoice_line'
create(self, vals_list)
unlink(self)
company_id
Many2one → res.company
name
Char
required=True
translate=True
No public methods.
category_id
Many2one → membership.membership_category
comodel_name='membership.membership_category'
related='membership_id.membership_category_id'
date_from
Date
readonly=False
date_to
Date
readonly=False
member_price
Float
compute='_compute_member_price'
readonly=False
store=True
partner
Many2one
ondelete='restrict'
state
Selection
compute='_compute_state'
inverse='_inverse_state'
readonly=False
store=True
unlink(self)
No new fields.
Public methods (0)No public methods.
membership_category_id
Many2one → membership.membership_category
comodel_name='membership.membership_category'
compute='_compute_membership_category_id'
readonly=False
store=True
string='Membership category'
No public methods.
associate_member
Many2one
index=True
is_adhered_member
Boolean
compute='_compute_is_adhered_member'
help='A member who is associated to another one, but whose membership are independent.'
readonly=False
store=True
string='Adhered member'
membership_cancel
Date
compute='_compute_membership_date'
help='Date on which membership has been cancelled.'
readonly=True
recursive=True
store=True
string='Cancel Membership Date'
membership_categories
Char
compute='_compute_membership_state'
index=True
readonly=True
store=True
membership_category_ids
Many2many → membership.membership_category
comodel_name='membership.membership_category'
compute='_compute_membership_state'
readonly=True
recursive=True
store=True
string='Membership categories'
membership_last_start
Date
compute='_compute_membership_date'
help='Start date of last membership period.'
readonly=True
recursive=True
store=True
string='Membership Last Start Date'
membership_start
Date
compute='_compute_membership_date'
help='Date from which membership becomes active.'
readonly=True
recursive=True
store=True
string='Membership Start Date'
membership_start_adhered
Date
default=fields.Date.today()
help='Date from which partner is adhered.'
string='Membership Adhered Start Date'
membership_state
Selection
compute='_compute_membership_state'
index=True
recursive=True
selection=STATE
store=True
membership_stop
Date
compute='_compute_membership_date'
help='Date until which membership remains active.'
readonly=True
recursive=True
store=True
string='Membership End Date'
check_membership_all(self)
check_membership_expiry(self)
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/vertical-association |
| GIT | |
| GIT | https://github.com/OCA/vertical-association.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/vertical-association/tree/14.0/membership_extension |
| VERSION | |
| VERSION | 1.2.0 |
| CATEGORY | |
| CATEGORY | Membership |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Tecnativa, Odoo Community Association (OCA), Onestein |
| MAINTAINERS | |
| MAINTAINERS | Tecnativa, Odoo Community Association (OCA), Onestein |
| COMMITTERS | |
| COMMITTERS | Sergio Zanchetta, sbejaoui, OCA Transbot, oca-travis, Weblate, OCA-git-bot, oca-git-bot |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/vertical-association |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:41:03 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - membership - account - base_setup - base - web - product - bus - web_tour - uom - analytic - portal - web_editor - http_routing - auth_signup - digest - resource |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
membership_category_tree_view |
Membership Categories | membership.membership_category | tree | New |
membership_product_search_form_view |
Add membership category field | product.template | field | Inherits membership.membership_product_search_form_view |
membership_products_form |
Add membership category field | product.template | field | Inherits membership.membership_products_form |
membership_products_tree |
Membership extension | product.template | field | Inherits membership.membership_products_tree |
view_partner_form |
Membership extension | res.partner | field | Inherits membership.view_partner_form |
view_res_partner_member_filter |
Membership extension filters | res.partner | xpath | Inherits membership.view_res_partner_member_filter |
No new fields.
Public methods (3)button_cancel(self)
button_draft(self)
post(self)
membership_lines
One2many → membership.membership_line
comodel_name='membership.membership_line'
inverse_name='account_invoice_line'
create(self, vals_list)
unlink(self)
company_id
Many2one → res.company
name
Char
required=True
translate=True
No public methods.
category_id
Many2one → membership.membership_category
comodel_name='membership.membership_category'
related='membership_id.membership_category_id'
date_from
Date
readonly=False
date_to
Date
readonly=False
member_price
Float
compute='_compute_member_price'
readonly=False
store=True
partner
Many2one
ondelete='restrict'
state
Selection
compute='_compute_state'
inverse='_inverse_state'
readonly=False
store=True
unlink(self)
No new fields.
Public methods (0)No public methods.
membership_category_id
Many2one → membership.membership_category
comodel_name='membership.membership_category'
compute='_compute_membership_category_id'
readonly=False
store=True
string='Membership category'
No public methods.
associate_member
Many2one
index=True
is_adhered_member
Boolean
compute='_compute_is_adhered_member'
help='A member who is associated to another one, but whose membership are independent.'
readonly=False
store=True
string='Adhered member'
membership_cancel
Date
compute='_compute_membership_date'
help='Date on which membership has been cancelled.'
readonly=True
store=True
string='Cancel Membership Date'
membership_categories
Char
compute='_compute_membership_state'
index=True
readonly=True
store=True
string='Membership Categories'
membership_category_ids
Many2many → membership.membership_category
comodel_name='membership.membership_category'
compute='_compute_membership_state'
readonly=True
store=True
string='Membership categories'
membership_last_start
Date
compute='_compute_membership_date'
help='Start date of last membership period.'
readonly=True
store=True
string='Membership Last Start Date'
membership_start
Date
compute='_compute_membership_date'
help='Date from which membership becomes active.'
readonly=True
store=True
string='Membership Start Date'
membership_start_adhered
Date
default=fields.Date.today()
help='Date from which partner is adhered.'
string='Membership Adhered Start Date'
membership_state
Selection
compute='_compute_membership_state'
index=True
selection=STATE
store=True
membership_stop
Date
compute='_compute_membership_date'
help='Date until which membership remains active.'
readonly=True
store=True
string='Membership End Date'
check_membership_all(self)
check_membership_expiry(self)
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/vertical-association |
| GIT | |
| GIT | https://github.com/OCA/vertical-association.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/vertical-association/tree/13.0/membership_extension |
| VERSION | |
| VERSION | 1.0.0 |
| CATEGORY | |
| CATEGORY | Membership |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Tecnativa, Odoo Community Association (OCA), Onestein |
| MAINTAINERS | |
| MAINTAINERS | Tecnativa, Odoo Community Association (OCA), Onestein |
| COMMITTERS | |
| COMMITTERS | Andrea, OCA Transbot, oca-travis, Weblate, OCA-git-bot |
| WEBSITE | |
| WEBSITE | https://github.com/oca/vertical-association |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:34:15 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - membership - account - base_setup - base - web - product - bus - web_tour - uom - analytic - portal - web_editor - http_routing - auth_signup - digest - resource |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
membership_category_tree_view |
Membership Categories | membership.membership_category | tree | New |
membership_product_search_form_view |
Add membership category field | product.template | field | Inherits membership.membership_product_search_form_view |
membership_products_form |
Add membership category field | product.template | field | Inherits membership.membership_products_form |
membership_products_tree |
Membership extension | product.template | field | Inherits membership.membership_products_tree |
view_partner_form |
Membership extension | res.partner | field | Inherits membership.view_partner_form |
view_res_partner_member_filter |
Membership extension filters | res.partner | xpath | Inherits membership.view_res_partner_member_filter |
No new fields.
Public methods (3)button_cancel(self)
button_draft(self)
post(self)
membership_lines
One2many → membership.membership_line
comodel_name='membership.membership_line'
inverse_name='account_invoice_line'
create(self, vals_list)
unlink(self)
company_id
Many2one → res.company
name
Char
required=True
translate=True
No public methods.
category_id
Many2one → membership.membership_category
comodel_name='membership.membership_category'
related='membership_id.membership_category_id'
date_from
Date
readonly=False
date_to
Date
readonly=False
member_price
Float
compute='_compute_member_price'
readonly=False
store=True
partner
Many2one
ondelete='restrict'
state
Selection
compute='_compute_state'
inverse='_inverse_state'
readonly=False
store=True
unlink(self)
No new fields.
Public methods (0)No public methods.
membership_category_id
Many2one → membership.membership_category
comodel_name='membership.membership_category'
compute='_compute_membership_category_id'
readonly=False
store=True
string='Membership category'
No public methods.
associate_member
Many2one
index=True
is_adhered_member
Boolean
compute='_compute_is_adhered_member'
help='A member who is associated to another one, but whose membership are independent.'
readonly=False
store=True
string='Adhered member'
membership_cancel
Date
compute='_compute_membership_date'
help='Date on which membership has been cancelled.'
readonly=True
store=True
string='Cancel Membership Date'
membership_categories
Char
compute='_compute_membership_state'
index=True
readonly=True
store=True
string='Membership Categories'
membership_category_ids
Many2many → membership.membership_category
comodel_name='membership.membership_category'
compute='_compute_membership_state'
readonly=True
store=True
string='Membership categories'
membership_last_start
Date
compute='_compute_membership_date'
help='Start date of last membership period.'
readonly=True
store=True
string='Membership Last Start Date'
membership_start
Date
compute='_compute_membership_date'
help='Date from which membership becomes active.'
readonly=True
store=True
string='Membership Start Date'
membership_start_adhered
Date
default=fields.Date.today()
help='Date from which partner is adhered.'
string='Membership Adhered Start Date'
membership_state
Selection
compute='_compute_membership_state'
index=True
selection=STATE
store=True
membership_stop
Date
compute='_compute_membership_date'
help='Date until which membership remains active.'
readonly=True
store=True
string='Membership End Date'
check_membership_all(self)
check_membership_expiry(self)
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/vertical-association |
| GIT | |
| GIT | https://github.com/OCA/vertical-association.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/vertical-association/tree/12.0/membership_extension |
| VERSION | |
| VERSION | 1.0.3 |
| CATEGORY | |
| CATEGORY | Membership |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Tecnativa, Odoo Community Association (OCA), Onestein |
| MAINTAINERS | |
| MAINTAINERS | Tecnativa, Odoo Community Association (OCA), Onestein |
| COMMITTERS | |
| COMMITTERS | Pedro M. Baeza, Andrea, OCA Transbot, oca-travis, Weblate, OCA-git-bot, David, amcor |
| WEBSITE | |
| WEBSITE | https://github.com/oca/vertical-association |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:29:20 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - membership - base - product - decimal_precision - base_setup - web - bus - web_tour - uom - account - analytic - portal - http_routing - digest |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
membership_category_tree_view |
Membership Categories | membership.membership_category | tree | New |
membership_product_search_form_view |
Add membership category field | product.template | field | Inherits membership.membership_product_search_form_view |
membership_products_form |
Add membership category field | product.template | field | Inherits membership.membership_products_form |
membership_products_tree |
Membership extension | product.template | field | Inherits membership.membership_products_tree |
view_partner_form |
Membership extension | res.partner | field | Inherits membership.view_partner_form |
view_res_partner_member_filter |
Membership extension filters | res.partner | xpath | Inherits membership.view_res_partner_member_filter |
No new fields.
Public methods (4)action_cancel(self)
action_invoice_draft(self)
action_invoice_paid(self)
invoice_validate(self)
membership_lines
One2many → membership.membership_line
comodel_name='membership.membership_line'
inverse_name='account_invoice_line'
create(self, vals)
unlink(self)
company_id
Many2one → res.company
name
Char
required=True
translate=True
No public methods.
category_id
Many2one → membership.membership_category
comodel_name='membership.membership_category'
readonly=True
related='membership_id.membership_category_id'
string='Category'
date_from
Date
readonly=False
date_to
Date
readonly=False
partner
Many2one
ondelete='restrict'
state
Selection
compute=False
inverse=False
unlink(self)
No new fields.
Public methods (0)No public methods.
membership_category_id
Many2one → membership.membership_category
comodel_name='membership.membership_category'
string='Membership category'
No public methods.
associate_member
Many2one
index=True
is_adhered_member
Boolean
help='A member who is associated to another one, but whose membership are independent.'
string='Adhered member'
membership_cancel
Date
compute='_compute_membership_date'
help='Date on which membership has been cancelled.'
readonly=True
store=True
string='Cancel Membership Date'
membership_categories
Char
compute='_compute_membership_state'
index=True
readonly=True
store=True
string='Membership Categories'
membership_category_ids
Many2many → membership.membership_category
comodel_name='membership.membership_category'
compute='_compute_membership_state'
readonly=True
store=True
string='Membership categories'
membership_last_start
Date
compute='_compute_membership_date'
help='Start date of last membership period.'
readonly=True
store=True
string='Membership Last Start Date'
membership_start
Date
compute='_compute_membership_date'
help='Date from which membership becomes active.'
readonly=True
store=True
string='Membership Start Date'
membership_start_adhered
Date
default=fields.Date.today()
help='Date from which partner is adhered.'
string='Membership Adhered Start Date'
membership_state
Selection
compute='_compute_membership_state'
index=True
selection=STATE
store=True
membership_stop
Date
compute='_compute_membership_date'
help='Date until which membership remains active.'
readonly=True
store=True
string='Membership End Date'
check_membership_all(self)
check_membership_expiry(self)
onchange_associate_member(self)
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/vertical-association |
| GIT | |
| GIT | https://github.com/OCA/vertical-association.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/vertical-association/tree/11.0/membership_extension |
| VERSION | |
| VERSION | 1.1.1 |
| CATEGORY | |
| CATEGORY | Membership |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Tecnativa, Odoo Community Association (OCA) |
| MAINTAINERS | |
| MAINTAINERS | Tecnativa, Odoo Community Association (OCA) |
| COMMITTERS | |
| COMMITTERS | Pedro M. Baeza, Andrea, OCA Transbot, oca-travis, Weblate, OCA-git-bot, David |
| WEBSITE | |
| WEBSITE | https://github.com/oca/vertical-association |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:23:59 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - membership - base - product - decimal_precision - base_setup - web - bus - web_tour - account - analytic - web_planner - portal - http_routing |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
membership_category_tree_view |
Membership Categories | membership.membership_category | tree | New |
membership_product_search_form_view |
Add membership category field | product.template | field | Inherits membership.membership_product_search_form_view |
membership_products_form |
Add membership category field | product.template | field | Inherits membership.membership_products_form |
membership_products_tree |
Membership extension | product.template | field | Inherits membership.membership_products_tree |
view_partner_form |
Membership extension | res.partner | field | Inherits membership.view_partner_form |
view_res_partner_member_filter |
Membership extension filters | res.partner | xpath | Inherits membership.view_res_partner_member_filter |
No new fields.
Public methods (4)action_cancel(self)
action_invoice_draft(self)
action_invoice_paid(self)
invoice_validate(self)
membership_lines
One2many → membership.membership_line
comodel_name='membership.membership_line'
inverse_name='account_invoice_line'
create(self, vals)
unlink(self)
name
Char
required=True
translate=True
No public methods.
category_id
Many2one → membership.membership_category
comodel_name='membership.membership_category'
readonly=True
related='membership_id.membership_category_id'
string='Category'
date_from
Date
readonly=False
date_to
Date
readonly=False
partner
Many2one
ondelete='restrict'
state
Selection
compute=False
inverse=False
unlink(self)
No new fields.
Public methods (0)No public methods.
membership_category_id
Many2one → membership.membership_category
comodel_name='membership.membership_category'
string='Membership category'
No public methods.
associate_member
Many2one
index=True
is_adhered_member
Boolean
help='A member who is associated to another one, but whose membership are independent.'
string='Adhered member'
membership_cancel
Date
compute='_compute_membership_date'
help='Date on which membership has been cancelled.'
readonly=True
store=True
string='Cancel Membership Date'
membership_categories
Char
compute='_compute_membership_state'
index=True
readonly=True
store=True
string='Membership categories'
membership_category_ids
Many2many → membership.membership_category
comodel_name='membership.membership_category'
compute='_compute_membership_state'
readonly=True
store=True
string='Membership categories'
membership_last_start
Date
compute='_compute_membership_date'
help='Start date of last membership period.'
readonly=True
store=True
string='Membership Last Start Date'
membership_start
Date
compute='_compute_membership_date'
help='Date from which membership becomes active.'
readonly=True
store=True
string='Membership Start Date'
membership_start_adhered
Date
default=fields.Date.today()
help='Date from which partner is adhered.'
string='Membership Start Date'
membership_state
Selection
compute='_compute_membership_state'
index=True
selection=STATE
store=True
membership_stop
Date
compute='_compute_membership_date'
help='Date until which membership remains active.'
readonly=True
store=True
string='Membership End Date'
check_membership_all(self)
check_membership_expiry(self)
onchange_associate_member(self)
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/vertical-association |
| GIT | |
| GIT | https://github.com/OCA/vertical-association.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/vertical-association/tree/10.0/membership_extension |
| VERSION | |
| VERSION | 1.2.2 |
| CATEGORY | |
| CATEGORY | Membership |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Tecnativa, Odoo Community Association (OCA) |
| MAINTAINERS | |
| MAINTAINERS | Tecnativa, Odoo Community Association (OCA) |
| COMMITTERS | |
| COMMITTERS | Pedro M. Baeza, GitHub, Denis Roussel, OCA Transbot, oca-travis, Weblate, Rafael Blasco, OCA-git-bot, David Vidal, Lucas Huber |
| WEBSITE | |
| WEBSITE | https://github.com/oca/vertical-association |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:19:58 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - membership - base - product - decimal_precision - base_setup - web_kanban - web - bus - web_tour - report - account - analytic - web_planner |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
membership_category_tree_view |
Membership Categories | membership.membership_category | tree | New |
membership_product_search_form_view |
Add membership category field | product.template | field | Inherits membership.membership_product_search_form_view |
membership_products_form |
Add membership category field | product.template | field | Inherits membership.membership_products_form |
membership_products_tree |
Membership extension | product.template | field | Inherits membership.membership_products_tree |
view_partner_form |
Membership extension | res.partner | field | Inherits membership.view_partner_form |
view_res_partner_member_filter |
Membership extension filters | res.partner | xpath | Inherits membership.view_res_partner_member_filter |
No new fields.
Public methods (4)action_cancel(self)
action_invoice_draft(self)
action_invoice_paid(self)
invoice_validate(self)
membership_lines
One2many → membership.membership_line
comodel_name='membership.membership_line'
inverse_name='account_invoice_line'
create(self, vals)
unlink(self)
name
Char
required=True
translate=True
No public methods.
category_id
Many2one → membership.membership_category
comodel_name='membership.membership_category'
readonly=True
related='membership_id.membership_category_id'
string='Category'
date_from
Date
readonly=False
date_to
Date
readonly=False
partner
Many2one
ondelete='restrict'
state
Selection
compute=False
inverse=False
unlink(self)
No new fields.
Public methods (0)No public methods.
membership_category_id
Many2one → membership.membership_category
comodel_name='membership.membership_category'
string='Membership category'
No public methods.
associate_member
Many2one
index=True
is_adhered_member
Boolean
help='A member who is associated to another one, but whose membership are independent.'
string='Adhered member'
membership_cancel
Date
compute='_compute_membership_date'
help='Date on which membership has been cancelled.'
readonly=True
store=True
string='Cancel Membership Date'
membership_categories
Char
compute='_compute_membership_state'
index=True
readonly=True
store=True
string='Membership categories'
membership_category_ids
Many2many → membership.membership_category
comodel_name='membership.membership_category'
compute='_compute_membership_state'
readonly=True
store=True
string='Membership categories'
membership_last_start
Date
compute='_compute_membership_date'
help='Start date of last membership period.'
readonly=True
store=True
string='Membership Last Start Date'
membership_start
Date
compute='_compute_membership_date'
help='Date from which membership becomes active.'
readonly=True
store=True
string='Membership Start Date'
membership_start_adhered
Date
default=fields.Date.today()
help='Date from which partner is adhered.'
string='Membership Start Date'
membership_state
Selection
compute='_compute_membership_state'
index=True
selection=STATE
store=True
membership_stop
Date
compute='_compute_membership_date'
help='Date until which membership remains active.'
readonly=True
store=True
string='Membership End Date'
check_membership_all(self)
check_membership_expiry(self)
onchange_associate_member(self)
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/vertical-association |
| GIT | |
| GIT | https://github.com/OCA/vertical-association.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/vertical-association/tree/8.0/membership_extension |
| VERSION | |
| VERSION | 1.0.1 |
| CATEGORY | |
| CATEGORY | Association |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Tecnativa, Odoo Community Association (OCA) |
| MAINTAINERS | |
| MAINTAINERS | Tecnativa, Odoo Community Association (OCA) |
| COMMITTERS | |
| COMMITTERS | Pedro M. Baeza, GitHub, OCA Transbot, oca-travis, Weblate |
| WEBSITE | |
| WEBSITE | https://odoo-community.org/ |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:11:24 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - membership - base - product - decimal_precision - base_setup - web_kanban - web - report - account - analytic - board - edi - email_template |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
membership_category_tree_view |
Membership Categories | membership.membership_category | tree | New |
membership_product_search_form_view |
Add membership category field | product.template | field | Inherits membership.membership_product_search_form_view |
membership_products_form |
Add membership category field | product.template | xpath | Inherits membership.membership_products_form |
membership_products_tree |
Membership extension | product.template | field | Inherits membership.membership_products_tree |
product_template_form_view |
Add membership category field | product.template | field | Inherits membership.product_template_form_view |
view_partner_form |
Membership extension | res.partner | field | Inherits membership.view_partner_form |
view_res_partner_member_filter |
Membership extension filters | res.partner | filter | Inherits membership.view_res_partner_member_filter |
No new fields.
Public methods (4)action_cancel(self)
action_cancel_draft(self)
confirm_paid(self)
invoice_validate(self)
membership_lines
One2many → membership.membership_line
comodel_name='membership.membership_line'
inverse_name='account_invoice_line'
create(self, vals)
unlink(self)
name
Char
required=True
translate=True
No public methods.
category_id
Many2one → membership.membership_category
comodel_name='membership.membership_category'
readonly=True
related='membership_id.membership_category_id'
string='Category'
date_from
Date
readonly=False
date_to
Date
readonly=False
state
Selection
compute='_compute_state'
inverse='_inverse_state'
readonly=False
selection=STATE
unlink(self)
No new fields.
Public methods (0)No public methods.
membership_category_id
Many2one → membership.membership_category
comodel_name='membership.membership_category'
string='Membership category'
No public methods.
associate_member
Many2one
index=True
membership_cancel
Date
compute='_compute_membership_date'
help='Date on which membership has been cancelled.'
readonly=True
store=True
string='Cancel Membership Date'
membership_categories
Char
compute='_compute_membership_state'
index=True
readonly=True
store=True
string='Membership categories'
membership_category_ids
Many2many → membership.membership_category
comodel_name='membership.membership_category'
compute='_compute_membership_state'
readonly=True
store=True
string='Membership categories'
membership_last_start
Date
compute='_compute_membership_date'
help='Start date of last membership period.'
readonly=True
store=True
string='Membership Last Start Date'
membership_start
Date
compute='_compute_membership_date'
help='Date from which membership becomes active.'
readonly=True
store=True
string='Membership Start Date'
membership_state
Selection
compute='_compute_membership_state'
index=True
selection=STATE
store=True
membership_stop
Date
compute='_compute_membership_date'
help='Date until which membership remains active.'
readonly=True
store=True
string='Membership End Date'
check_membership_all(self)
check_membership_expiry(self)