Crowdfunding

crowdfunding
REPOSITORY
REPOSITORYOCA/crowdfunding
GIT
GIThttps://github.com/OCA/crowdfunding.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/crowdfunding/tree/18.0/crowdfunding
VERSION
VERSION 1.1.0
CATEGORY
CATEGORYCrowdfunding
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Hunki Enterprises BV
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Hunki Enterprises BV
COMMITTERS
COMMITTERSHolger Brunn, Weblate, OCA-git-bot, oca-ci
WEBSITE
WEBSITEhttps://github.com/OCA/crowdfunding
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:30:20
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/server-tools:
    - onchange_helper
odoo/odoo:
    - account_payment
    - account
    - base_setup
    - base
    - web
    - onboarding
    - product
    - mail
    - bus
    - web_tour
    - html_editor
    - uom
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
    - payment
    - website
    - social_media
    - google_recaptcha
    - utm
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES geoip2
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
This module provides the basics to turn Odoo into a crowdfunding platform.

Code Analysis

Views touched (15)
XML IDNameModelTypeStatus
pay_details pay_details ir.ui.view qweb New
pay_partner_details pay_partner_details ir.ui.view qweb New
payment_transaction_form payment.transaction group Inherits payment.payment_transaction_form
portal_invoice_page portal_invoice_page ir.ui.view qweb Inherits account.portal_invoice_page
res_config_settings_view_form res.config.settings form Inherits base.res_config_settings_view_form
template_challenge_detail Crowdfunding ir.ui.view qweb New
template_challenge_detail_discuss Comments ir.ui.view qweb Inherits template_challenge_detail
template_challenge_list Crowdfunding ir.ui.view qweb New
template_challenge_list_footer List footer ir.ui.view qweb Inherits template_challenge_list
template_challenge_list_header List header ir.ui.view qweb Inherits template_challenge_list
view_crowdfunding_challenge_form crowdfunding.challenge form New
view_crowdfunding_challenge_list crowdfunding.challenge list New
view_crowdfunding_challenge_search crowdfunding.challenge search New
view_crowdfunding_invoicing_wizard_form crowdfunding.invoicing.wizard form New
view_move_form account.move notebook Inherits account.view_move_form
Models touched (6)

New fields (4)
  • crowdfunding_challenge_id Many2one → crowdfunding.challenge
    index=True args: 'crowdfunding.challenge'
  • crowdfunding_pledged_amount Monetary
    related='crowdfunding_challenge_id.pledged_amount'
  • crowdfunding_target_amount Monetary
    related='crowdfunding_challenge_id.target_amount'
  • crowdfunding_vendor_amount Monetary
    related='crowdfunding_challenge_id.vendor_amount'
Public methods (0)

No public methods.

New fields (28)
  • claimed_partner_amount Monetary
    compute='_compute_amounts' help='The amount to be paid out' readonly=True store=True string='Unposted Vendor Amount'
  • claimed_partner_id Many2one → res.partner
    string='Vendor' tracking=True args: 'res.partner'
  • company_id Many2one → res.company
    default=<expr> required=True args: 'res.company'
  • currency_id Many2one
    related='company_id.currency_id'
  • description Html
    sanitize=False
  • description_image Binary
    help='Image that will be displayed on the challenge description'
  • description_url Char
    help='URL for more information about this challenge' args: 'Description URL'
  • fee_amount Monetary
    compute='_compute_amounts' help='When a challenge is claimed, this amount will be deducted from the total amount pledged to cover overhead costs' readonly=True store=True string='Commission Fee Amount'
  • fee_percentage Float
    default=<expr> string='Commission Fee %'
  • funding_state Selection
    compute='_compute_funding_state' readonly=True store=True tracking=True args: [('needs_funding', 'Needs funding'), ('funded', 'Funded')]
  • invoice_count Integer
    compute='_compute_invoices' store=True
  • invoice_ids One2many → account.move
    domain=[('move_type', 'in', ['out_invoice', 'out_refund'])] args: 'account.move', 'crowdfunding_challenge_id'
  • name Char
    required=True tracking=True
  • pledge_default_amount Monetary
    help='Fill in a proposed amount pledgers can modify' args: 'Default Pledge Amount'
  • pledged_amount Monetary
    compute='_compute_invoices' readonly=True store=True tracking=True
  • pledged_amount_total Monetary
    compute='_compute_invoices' readonly=True store=True string='Pledges Total' tracking=True
  • pledged_amount_unpaid Monetary
    compute='_compute_invoices' readonly=True store=True string='Unposted Pledges' tracking=True
  • pledged_percentage Float
    compute='_compute_funding_state' readonly=True store=True string='Pledged %' tracking=True
  • state Selection
    default='draft' help='Draft: The challenge is in preparation\nOpen: The challenge is visible for users, payments can be done\nClaimed: Somebody has been assigned to work on the challenge, payments can be done\nSubmitted: Work is submitted, no further payments possible\nDone: Work is done, all payments done' tracking=True args: [('draft', 'Draft'), ('open', 'Open'), ('claimed', 'Claimed'), ('submitted', 'Submitted'), ('done', 'Done')]
  • target_amount Monetary
    tracking=True
  • vendor_amount Monetary
    compute='_compute_vendor_bills' readonly=True store=True tracking=True
  • vendor_amount_total Monetary
    compute='_compute_vendor_bills' readonly=True store=True tracking=True
  • vendor_amount_unpaid Monetary
    compute='_compute_vendor_bills' readonly=True store=True tracking=True args: 'Vendor Amount Unposted'
  • vendor_bill_count Integer
    compute='_compute_vendor_bills' store=True
  • vendor_bill_ids One2many → account.move
    domain=[('move_type', 'in', ['in_invoice', 'in_refund'])] args: 'account.move', 'crowdfunding_challenge_id'
  • website_meta_description Text
    compute='_compute_website_meta_description'
  • website_meta_og_img Char
    compute='_compute_website_meta_og_img'
  • website_meta_title Char
    related='name'
Public methods (8)
  • action_cancel(self)
  • action_claimed(self)
  • action_done(self)
  • action_invoice_wizard(self)
  • action_invoices(self)
  • action_open(self)
  • action_submitted(self)
  • action_vendor_bills(self)

New fields (4)
  • challenge_ids Many2many → crowdfunding.challenge
    args: 'crowdfunding.challenge'
  • percentage Float
    default=1
  • percentage_paid Float
    compute='_compute_percentage_paid' readonly=True
  • vendor_bill_ids Many2many → account.move
    compute='_compute_vendor_bill_ids' string='Existing vendor bills' args: 'account.move'
Public methods (2)
  • action_invoice(self)
  • default_get(self, fields_list)

New fields (1)
  • crowdfunding_challenge_id Many2one
    related='invoice_ids.crowdfunding_challenge_id'
Public methods (0)

No public methods.

New fields (2)
  • crowdfunding_default_fee_percentage Float
    help='The percentage of money pledged for a challenge your organization uses to pay for overhead' args: 'Default fee percentage'
  • crowdfunding_product_id Many2one → product.product
    default=<expr> help='This product is used to create invoices and vendor bills.' string='Product' args: 'product.product'
Public methods (0)

No public methods.

New fields (2)
  • crowdfunding_default_fee_percentage Float
    readonly=False related='company_id.crowdfunding_default_fee_percentage'
  • crowdfunding_product_id Many2one
    readonly=False related='company_id.crowdfunding_product_id'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/crowdfunding
GIT
GIThttps://github.com/OCA/crowdfunding.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/crowdfunding/tree/14.0/crowdfunding
VERSION
VERSION 1.3.1
CATEGORY
CATEGORYCrowdfunding
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Hunki Enterprises BV
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Hunki Enterprises BV
COMMITTERS
COMMITTERSHolger Brunn, Pierre Verkest, Weblate, OCA-git-bot, oca-ci
WEBSITE
WEBSITEhttps://github.com/OCA/crowdfunding
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 18:50:18
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/server-tools:
    - onchange_helper
odoo/odoo:
    - account_payment
    - payment
    - account
    - base_setup
    - base
    - web
    - product
    - mail
    - bus
    - web_tour
    - uom
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
    - website
    - social_media
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
This module provides the basics to turn Odoo into a crowdfunding platform.

Code Analysis

Views touched (15)
XML IDNameModelTypeStatus
assets_tests Website Assets Tests ir.ui.view qweb Inherits web.assets_tests
pay_details pay_details ir.ui.view qweb New
pay_partner_details pay_partner_details ir.ui.view qweb New
res_config_settings_view_form res.config.settings xpath Inherits base.res_config_settings_view_form
template_challenge_detail Crowdfunding ir.ui.view qweb New
template_challenge_detail_discuss Comments ir.ui.view qweb Inherits template_challenge_detail
template_challenge_list Crowdfunding ir.ui.view qweb New
template_challenge_list_footer Crowdfunding list footer ir.ui.view qweb Inherits template_challenge_list
template_challenge_list_header Crowdfunding list header ir.ui.view qweb Inherits template_challenge_list
transaction_form payment.transaction group Inherits payment.transaction_form
view_crowdfunding_challenge_form crowdfunding.challenge form New
view_crowdfunding_challenge_list crowdfunding.challenge tree New
view_crowdfunding_challenge_search crowdfunding.challenge search New
view_crowdfunding_invoicing_wizard_form crowdfunding.invoicing.wizard form New
view_move_form account.move notebook Inherits account.view_move_form
Models touched (6)

New fields (4)
  • crowdfunding_challenge_id Many2one → crowdfunding.challenge
    index=True args: 'crowdfunding.challenge'
  • crowdfunding_pledged_amount Monetary
    related='crowdfunding_challenge_id.pledged_amount'
  • crowdfunding_target_amount Monetary
    related='crowdfunding_challenge_id.target_amount'
  • crowdfunding_vendor_amount Monetary
    related='crowdfunding_challenge_id.vendor_amount'
Public methods (0)

No public methods.

New fields (28)
  • claimed_partner_amount Monetary
    compute='_compute_amounts' help='The amount to be paid out' readonly=True store=True string='Unposted Vendor Amount'
  • claimed_partner_id Many2one → res.partner
    string='Vendor' tracking=True args: 'res.partner'
  • company_id Many2one → res.company
    default=<expr> required=True args: 'res.company'
  • currency_id Many2one
    related='company_id.currency_id'
  • description Html
  • description_image Binary
    help='Image that will be displayed on the challenge description'
  • description_url Char
    help='URL for more information about this challenge' args: 'Description URL'
  • fee_amount Monetary
    compute='_compute_amounts' help='When a challenge is claimed, this amount will be deducted from the total amount pledged to cover overhead costs' readonly=True store=True string='Commission Fee Amount'
  • fee_percentage Float
    default=<expr> string='Commission Fee %'
  • funding_state Selection
    compute='_compute_funding_state' readonly=True store=True tracking=True args: [('needs_funding', 'Needs funding'), ('funded', 'Funded')]
  • invoice_count Integer
    compute='_compute_invoices' store=True
  • invoice_ids One2many → account.move
    domain=[('move_type', 'in', ['out_invoice', 'out_refund'])] args: 'account.move', 'crowdfunding_challenge_id'
  • name Char
    required=True tracking=True
  • pledge_default_amount Monetary
    help='Fill in a proposed amount pledgers can modify' args: 'Default Pledge Amount'
  • pledged_amount Monetary
    compute='_compute_invoices' readonly=True store=True tracking=True
  • pledged_amount_total Monetary
    compute='_compute_invoices' readonly=True store=True string='Pledges Total' tracking=True
  • pledged_amount_unpaid Monetary
    compute='_compute_invoices' readonly=True store=True string='Unposted Pledges' tracking=True
  • pledged_percentage Float
    compute='_compute_funding_state' readonly=True store=True string='Pledged %' tracking=True
  • state Selection
    default='draft' help='Draft: The challenge is in preparation\nOpen: The challenge is visible for users, payments can be done\nClaimed: Somebody has been assigned to work on the challenge, payments can be done\nSubmitted: Work is submitted, no further payments possible\nDone: Work is done, all payments done' tracking=True args: [('draft', 'Draft'), ('open', 'Open'), ('claimed', 'Claimed'), ('submitted', 'Submitted'), ('done', 'Done')]
  • target_amount Monetary
    tracking=True
  • vendor_amount Monetary
    compute='_compute_vendor_bills' readonly=True store=True tracking=True args: 'Vendor Amount'
  • vendor_amount_total Monetary
    compute='_compute_vendor_bills' readonly=True store=True tracking=True args: 'Vendor Amount Total'
  • vendor_amount_unpaid Monetary
    compute='_compute_vendor_bills' readonly=True store=True tracking=True args: 'Vendor Amount Unposted'
  • vendor_bill_count Integer
    compute='_compute_vendor_bills' store=True
  • vendor_bill_ids One2many → account.move
    domain=[('move_type', 'in', ['in_invoice', 'in_refund'])] args: 'account.move', 'crowdfunding_challenge_id'
  • website_meta_description Text
    compute='_compute_website_meta_description'
  • website_meta_og_img Char
    compute='_compute_website_meta_og_img'
  • website_meta_title Char
    related='name'
Public methods (8)
  • action_cancel(self)
  • action_claimed(self)
  • action_done(self)
  • action_invoice_wizard(self)
  • action_invoices(self)
  • action_open(self)
  • action_submitted(self)
  • action_vendor_bills(self)

New fields (4)
  • challenge_ids Many2many → crowdfunding.challenge
    args: 'crowdfunding.challenge'
  • percentage Float
    default=1
  • percentage_paid Float
    compute='_compute_percentage_paid' readonly=True
  • vendor_bill_ids Many2many → account.move
    compute='_compute_vendor_bill_ids' string='Existing vendor bills' args: 'account.move'
Public methods (2)
  • action_invoice(self)
  • default_get(self, fields_list)

New fields (1)
  • crowdfunding_challenge_id Many2one
    related='invoice_ids.crowdfunding_challenge_id'
Public methods (0)

No public methods.

New fields (2)
  • crowdfunding_default_fee_percentage Float
    help='The percentage of money pledged for a challenge your organization uses to pay for overhead' args: 'Default fee percentage'
  • crowdfunding_product_id Many2one → product.product
    default=<expr> help='This product is used to create invoices and vendor bills.' string='Product' args: 'product.product'
Public methods (0)

No public methods.

New fields (2)
  • crowdfunding_default_fee_percentage Float
    readonly=False related='company_id.crowdfunding_default_fee_percentage'
  • crowdfunding_product_id Many2one
    readonly=False related='company_id.crowdfunding_product_id'
Public methods (0)

No public methods.