Sale project task recurrency

sale_project_task_recurrency
REPOSITORY
REPOSITORYOCA/project
GIT
GIThttps://github.com/OCA/project.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/project/tree/18.0/sale_project_task_recurrency
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYSales
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSTecnativa, Odoo Community Association (OCA)
MAINTAINERS
MAINTAINERSTecnativa, Odoo Community Association (OCA)
COMMITTERS
COMMITTERSWeblate, OCA-git-bot, oca-ci, Bhavesh Heliconia
WEBSITE
WEBSITEhttps://github.com/OCA/project
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:30:14
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - sale_project
    - sale_management
    - sale
    - sales_team
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - html_editor
    - account_payment
    - account
    - onboarding
    - product
    - uom
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
    - payment
    - utm
    - sale_service
    - project_account
    - project
    - rating
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
This module allows configuring the recurrence of tasks created from sales orders directly in the product form.

Code Analysis

Views touched (1)
XML IDNameModelTypeStatus
view_product_template_form view.product.template.form product.template xpath Inherits sale_project.product_template_form_view_invoice_policy_inherit_sale_project
Models touched (3)

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (10)
  • recurring_task Boolean
    string='Is recurring task?'
  • task_force_month Selection
    args: [('1', 'January'), ('2', 'February'), ('3', 'March'), ('4', 'April'), ('5', 'May'), ('6', 'June'), ('7', 'July'), ('8', 'August'), ('9', 'September'), ('10', 'October'), ('11', 'November'), ('12', 'December')], 'Force Month'
  • task_force_month_quarter Selection
    help='Force the month to be used inside the quarter' args: [('1', 'First month'), ('2', 'Second month'), ('3', 'Third month')], 'Force Month Quarter'
  • task_force_month_semester Selection
    help='Force the month to be used inside the semester' args: [('1', 'First month'), ('2', 'Second month'), ('3', 'Third month'), ('4', 'Fourth month'), ('5', 'Fifth month'), ('6', 'Sixth month')], 'Force Month Semester'
  • task_repeat_interval Integer
    default=1 string='Repeat Every'
  • task_repeat_number Integer
    default=1 string='# Repeats'
  • task_repeat_type Selection
    default='forever' string='Until' args: [('forever', 'Forever'), ('repeat', 'Repeat'), ('until', 'Until')]
  • task_repeat_unit Selection
    default='week' args: [('day', 'Days'), ('week', 'Weeks'), ('month', 'Months'), ('quarter', 'Quarters'), ('semester', 'Semesters'), ('year', 'Years')]
  • task_repeat_until Date
    string='End Date'
  • task_start_date_method Selection
    default='current_date' help="This field allows to define how the start date of the task will\n be calculated:\n\n - Current date: The start date will be Current date.\n - Start of current period: The start date will be the first day of the actual\n period selected. Example: If we are on 2024/08/27\n and the period selected is 'Year(s)' the start date will be 2024/01/01.\n - End of current period: The start date will be the last day of the actual\n period selected. Example: If we are on 2024/08/27\n and the period selected is 'Year(s)' the start date will be 2024/12/31.\n - Start of next period: The start date will be the first day of the next\n period selected. Example: If we are on 2024/08/27\n and the period selected is 'Year(s)' the start date will be 2025/01/01.\n - End of next period: The start date will be the last day of the actual\n period selected. Example: If we are on 2024/08/27\n and the period selected is 'Year(s)' the start date will be 2025/12/31.\n " args: [('current_date', 'Current date'), ('start_this', 'Start of current period'), ('end_this', 'End of current period'), ('start_next', 'Start of next period'), ('end_next', 'End of next period')], 'Start Date Method'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/project
GIT
GIThttps://github.com/OCA/project.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/project/tree/17.0/sale_project_task_recurrency
VERSION
VERSION 1.2.0
CATEGORY
CATEGORYSales
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSTecnativa, Odoo Community Association (OCA)
MAINTAINERS
MAINTAINERSTecnativa, Odoo Community Association (OCA)
COMMITTERS
COMMITTERSCarlos Lopez, Weblate, OCA-git-bot, oca-ci
WEBSITE
WEBSITEhttps://github.com/OCA/project
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:20:06
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - sale_project
    - sale_management
    - sale
    - sales_team
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - account_payment
    - account
    - onboarding
    - product
    - uom
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
    - payment
    - utm
    - sale_service
    - project_account
    - project
    - rating
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
This module allows configuring the recurrence of tasks created from sales orders directly in the product form.

Code Analysis

Views touched (1)
XML IDNameModelTypeStatus
view_product_template_form view.product.template.form product.template xpath Inherits sale_project.product_template_form_view_invoice_policy_inherit_sale_project
Models touched (3)

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (10)
  • recurring_task Boolean
    string='Is recurring task?'
  • task_force_month Selection
    args: [('1', 'January'), ('2', 'February'), ('3', 'March'), ('4', 'April'), ('5', 'May'), ('6', 'June'), ('7', 'July'), ('8', 'August'), ('9', 'September'), ('10', 'October'), ('11', 'November'), ('12', 'December')], 'Force Month'
  • task_force_month_quarter Selection
    help='Force the month to be used inside the quarter' args: [('1', 'First month'), ('2', 'Second month'), ('3', 'Third month')], 'Force Month'
  • task_force_month_semester Selection
    help='Force the month to be used inside the semester' args: [('1', 'First month'), ('2', 'Second month'), ('3', 'Third month'), ('4', 'Fourth month'), ('5', 'Fifth month'), ('6', 'Sixth month')], 'Force Month'
  • task_repeat_interval Integer
    default=1 string='Repeat Every'
  • task_repeat_number Integer
    default=1 string='# Repeats'
  • task_repeat_type Selection
    default='forever' string='Until' args: [('forever', 'Forever'), ('repeat', 'Repeat'), ('until', 'Until')]
  • task_repeat_unit Selection
    default='week' args: [('day', 'Days'), ('week', 'Weeks'), ('month', 'Months'), ('quarter', 'Quarters'), ('semester', 'Semesters'), ('year', 'Years')]
  • task_repeat_until Date
    string='End Date'
  • task_start_date_method Selection
    default='current_date' help="This field allows to define how the start date of the task will\n be calculated:\n\n - Current date: The start date will be Current date.\n - Start of current period: The start date will be the first day of the actual\n period selected. Example: If we are on 2024/08/27\n and the period selected is 'Year(s)' the start date will be 2024/01/01.\n - End of current period: The start date will be the last day of the actual\n period selected. Example: If we are on 2024/08/27\n and the period selected is 'Year(s)' the start date will be 2024/12/31.\n - Start of next period: The start date will be the first day of the next\n period selected. Example: If we are on 2024/08/27\n and the period selected is 'Year(s)' the start date will be 2025/01/01.\n - End of next period: The start date will be the last day of the actual\n period selected. Example: If we are on 2024/08/27\n and the period selected is 'Year(s)' the start date will be 2025/12/31.\n " args: [('current_date', 'Current date'), ('start_this', 'Start of current period'), ('end_this', 'End of current period'), ('start_next', 'Start of next period'), ('end_next', 'End of next period')], 'Start Date Method'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.