TIP: You can type at any time to perform a new search.

Security findings

Repository
OCA/vertical-abbey · module folder · Try on Runboat
Module version
1.0.0
Category
Religion
Folder size
0.2 MB
License
AGPL-3
Application
No
Auto-installable
No
Website
https://github.com/OCA/vertical-abbey
Last tracking update
2026-08-27 11:15:04
Authors
Akretion, Odoo Community Association (OCA), Barroux Abbey
Maintainers
Akretion, Odoo Community Association (OCA), Barroux Abbey
Committers
Alexis de Lattre, OCA-git-bot, oca-ci
Odoo dependencies
Python dependencies
None
System dependencies
None
Required by
None
Description
This module manages mass requests and the planning of masses. Mass requests can be created manually or from a donation.

This module has an impact on accounting: \* a mass request in waiting or
started state is considered as a stock from an accounting point of view.
\* when a mass is celebrated, i.e. when the mass is validated in Odoo,
an account move is automatically generated to move the amount of the
donation associed to the mass line from the stock account to the revenue
account.

When a donation is validated with a mass in one of the donation lines, a
new mass request is automatically created and the account move
associated to the donation will send the amount of that donation line to
a stock account. When the mass is celebrated, i.e. when the mass is
validated in Odoo, an accounting entry is generated from the stock
account to a revenue account.

This module also allows to transfer masses to an external celebrant.
When validating the mass transfer, a journal entry is created that moves
the corresponding donation amount from the mass stock account to the
payable account of the external celebrant.

This module has been developped by the [Barroux
Abbey](https://www.barroux.org/) which is a French Catholic Abbey. It is
specific to the management of christian masses.

Code Analysis info_outline

Views touched (33)
XML IDNameModelTypeStatus
donation_form donation.donation form Inherits donation.donation_form
donation_line_form mass.donation.line.form donation.line form Inherits donation.donation_line_form
donation_line_tree mass.donation.line.tree donation.line tree Inherits donation.donation_line_tree
mass_journal_generate_form mass.journal.generate.form mass.journal.generate form New
mass_journal_validate_form mass.journal.validate.form mass.journal.validate form New
mass_line_form mass.line.form mass.line form New
mass_line_graph mass.line.graph mass.line graph New
mass_line_pivot mass.line.pivot mass.line pivot New
mass_line_search mass.line.search mass.line search New
mass_line_tree mass.line.list mass.line list New
mass_request_form mass.request.form mass.request form New
mass_request_graph mass.request.graph mass.request graph New
mass_request_pivot mass.request.pivot mass.request pivot New
mass_request_search mass.request.search mass.request search New
mass_request_transfer_form mass.request.transfer.form mass.request.transfer form New
mass_request_transfer_graph mass.request.transfer.graph mass.request.transfer graph New
mass_request_transfer_pivot mass.request.transfer.pivot mass.request.transfer pivot New
mass_request_transfer_search mass.request.transfer.search mass.request.transfer search New
mass_request_transfer_tree mass.request.transfer.list mass.request.transfer list New
mass_request_tree mass.request.list mass.request list New
mass_request_type_form mass.request.type.form mass.request.type form New
mass_request_type_search mass.request.type search New
mass_request_type_tree mass.request.type.list mass.request.type list New
product_template_form_view product.template form Inherits donation_base.product_template_form_view
religious_community_form religious.community.form religious.community form New
religious_community_search religious.community.search religious.community search New
religious_community_tree religious.community.list religious.community list New
report_massline report_massline ir.ui.view qweb New
report_massrequesttransfer report_massrequesttransfer ir.ui.view qweb New
res_config_settings_view_form res.config.settings form Inherits donation.res_config_settings_donation
swap_celebrant_form swap.celebrant.form swap.celebrant form New
view_partner_form mass.res.partner.form res.partner form Inherits base.view_partner_form
view_res_partner_filter mass.res.partner.search res.partner search Inherits base.view_res_partner_filter
HTTP endpoints (0)

No HTTP endpoints found for this module.

Models touched (14)

New fields (2)
  • mass_request_count Integer
    compute='_compute_mass_request_count' string='# of Mass Requests'
  • mass_request_ids One2many → mass.request
    readonly=True string='Masses' args: 'mass.request', 'donation_id'
Public methods (3)
  • done2cancel(self)
  • goto_mass_requests(self)
  • validate(self)

New fields (4)
  • celebrant_id Many2one → res.partner
    domain=[('celebrant', '=', 'internal')] ondelete='restrict' args: 'res.partner'
  • intention Char
  • mass_request_date Date
    string='Celebration Requested Date'
  • mass_request_ids One2many → mass.request
    string='Masses' args: 'mass.request', 'donation_line_id'
Public methods (0)

No public methods.

New fields (2)
  • celebrant_ids Many2many → res.partner
    column1='partner_id' column2='wizard_id' default=<expr> domain=[('celebrant', '=', 'internal')] string='List of celebrants' args: 'res.partner'
  • journal_date Date
    default=<expr> required=True
Public methods (2)
  • generate_journal(self)
  • journal_date_on_change(self)
    @api.onchange('journal_date')

New fields (3)
  • company_id Many2one → res.company
    default=<expr> required=True args: 'res.company'
  • end_date Date
    compute='_compute_end_date' readonly=False required=True store=True
  • start_date Date
    default=<expr> required=True
Public methods (1)
  • validate_journal(self)

New fields (14)
  • celebrant_id Many2one → res.partner
    domain=[('celebrant', '=', 'internal')] index=True ondelete='restrict' required=True args: 'res.partner'
  • company_currency_id Many2one → res.currency
    related='request_id.company_id.currency_id' store=True string='Company Currency' args: 'res.currency'
  • company_id Many2one → res.company
    related='request_id.company_id' store=True args: 'res.company'
  • conventual_id Many2one → religious.community
    index=True ondelete='restrict' string='Conventual' args: 'religious.community'
  • date Date
    required=True string='Celebration Date'
  • intention Char
    related='request_id.intention' string='Intention'
  • move_id Many2one → account.move
    readonly=True string='Journal Entry' args: 'account.move'
  • partner_id Many2one → res.partner
    related='request_id.partner_id' store=True string='Donor' args: 'res.partner'
  • product_id Many2one
    related='request_id.product_id' store=True
  • request_date Date
    related='request_id.request_date' store=True string='Mass Request Date'
  • request_id Many2one → mass.request
    index=True ondelete='cascade' string='Mass Request' args: 'mass.request'
  • state Selection
    default='draft' readonly=True args: [('draft', 'Draft'), ('done', 'Done')]
  • type_id Many2one
    related='request_id.product_id.mass_request_type_id' store=True
  • unit_offering Monetary
    currency_field='company_currency_id' string='Offering'
Public methods (1)
  • unlink(self)

New fields (22)
  • celebrant_id Many2one → res.partner
    domain=[('celebrant', '=', 'internal')] help='If the donor want the mass to be celebrated by a particular celebrant, select it here. Otherwise, leave empty.' index=True ondelete='restrict' args: 'res.partner'
  • company_currency_id Many2one
    related='company_id.currency_id' store=True string='Company Currency'
  • company_id Many2one → res.company
    default=<expr> ondelete='restrict' required=True args: 'res.company'
  • donation_date Date
    required=True
  • donation_id Many2one
    related='donation_line_id.donation_id' store=True string='Related Donation'
  • donation_line_id Many2one → donation.line
    check_company=True readonly=True string='Related Donation Line' args: 'donation.line'
  • intention Char
  • line_ids One2many → mass.line
    string='Mass Lines' args: 'mass.line', 'request_id'
  • mass_quantity Integer
    compute='_compute_unit_offering' precompute=True store=True string='Total Mass Quantity'
  • mass_remaining_quantity Integer
    compute='_compute_state_mass_remaining_quantity' store=True
  • offering Monetary
    compute='_compute_offering' currency_field='company_currency_id' help='The total offering amount in company currency.' precompute=True readonly=False store=True
  • partner_id Many2one → res.partner
    index=True ondelete='restrict' required=True string='Donor' args: 'res.partner'
  • product_id Many2one → product.product
    check_company=True domain="[('company_id', 'in', (False, company_id)), ('type', '=', 'service'), ('donation_type', '=', 'mass')]" ondelete='restrict' readonly=True required=True string='Mass Product' args: 'product.product'
  • quantity Integer
    default=1
  • remaining_offering Monetary
    compute='_compute_state_mass_remaining_quantity' currency_field='company_currency_id' store=True
  • request_date Date
    help='If the donor want the mass to be celebrated at a particular date, select it here. Otherwise, leave empty.' string='Celebration Requested Date'
  • state Selection
    compute='_compute_state_mass_remaining_quantity' store=True args: [('waiting', 'Waiting'), ('started', 'Started'), ('transfered', 'Transfered'), ('done', 'Done')]
  • stock_account_id Many2one → account.account
    check_company=True default=<expr> domain="[('company_ids', 'parent_of', company_id), ('deprecated', '=', False)]" required=True args: 'account.account'
  • transfer_id Many2one → mass.request.transfer
    check_company=True copy=False string='Transfer Operation' args: 'mass.request.transfer'
  • type_id Many2one
    related='product_id.mass_request_type_id' store=True string='Mass Request Type'
  • uninterrupted Boolean
    related='type_id.uninterrupted'
  • unit_offering Monetary
    compute='_compute_unit_offering' currency_field='company_currency_id' help='This field is the offering amount per mass in company currency.' precompute=True store=True string='Offering per Mass'
Public methods (2)
  • create_transfer_button(self)
  • unlink(self)

New fields (10)
  • amount_total Monetary
    compute='_compute_transfer_totals' currency_field='company_currency_id' store=True tracking=True
  • celebrant_id Many2one → res.partner
    domain=[('celebrant', '=', 'external')] index=True ondelete='restrict' required=False tracking=True args: 'res.partner'
  • company_currency_id Many2one → res.currency
    related='company_id.currency_id' store=True string='Company Currency' args: 'res.currency'
  • company_id Many2one → res.company
    default=<expr> ondelete='restrict' required=True tracking=True args: 'res.company'
  • mass_request_ids One2many → mass.request
    string='Mass Requests' args: 'mass.request', 'transfer_id'
  • mass_total Integer
    compute='_compute_transfer_totals' store=True string='Total Mass Quantity' tracking=True
  • move_id Many2one → account.move
    check_company=True readonly=True string='Journal Entry' args: 'account.move'
  • number Char
    copy=False default=<expr> readonly=True string='Transfer Number'
  • state Selection
    default='draft' readonly=True tracking=True args: [('draft', 'Draft'), ('done', 'Done')]
  • transfer_date Date
    default=fields.Date.context_today required=True tracking=True
Public methods (4)
  • back_to_draft(self)
  • create(self, vals_list)
    @api.model_create_multi
  • unlink(self)
  • validate(self)

New fields (4)
  • code Char
    size=5 string='Mass Request Code'
  • name Char
    required=True string='Mass Request Type'
  • quantity Integer
  • uninterrupted Boolean
Public methods (0)

No public methods.

New fields (2)
  • donation_type Selection
    ondelete={'mass': 'set donation'} selection_add=[('mass', 'Mass')]
  • mass_request_type_id Many2one → mass.request.type
    ondelete='restrict' args: 'mass.request.type'
Public methods (0)

No public methods.

New fields (3)
  • active Boolean
    default=True
  • long_name Char
    string='Community Name'
  • name Char
    required=True size=12 string='Community Code'
Public methods (0)

No public methods.

New fields (3)
  • mass_post_move Boolean
    default=True string='Post Move'
  • mass_stock_account_id Many2one → account.account
    check_company=True args: 'account.account'
  • mass_validation_journal_id Many2one → account.journal
    check_company=True args: 'account.journal'
Public methods (0)

No public methods.

New fields (3)
  • mass_post_move Boolean
    readonly=False related='company_id.mass_post_move'
  • mass_stock_account_id Many2one
    domain="[('company_ids', 'parent_of', company_id), ('deprecated', '=', False)]" readonly=False related='company_id.mass_stock_account_id'
  • mass_validation_journal_id Many2one
    domain="[('company_id', '=', company_id), ('type', 'in', ('sale', 'general'))]" readonly=False related='company_id.mass_validation_journal_id'
Public methods (0)

No public methods.

New fields (1)
  • celebrant Selection
    args: [('internal', 'Internal'), ('external', 'External')]
Public methods (0)

No public methods.

New fields (1)
  • line_ids Many2many → mass.line
    readonly=True string='Mass Lines to Swap' args: 'mass.line'
Public methods (2)
  • default_get(self, fields_list)
    @api.model
  • swap_celebrant(self)

Loading…

Loading…

Loading…

Loading…

Loading…