Project Scrum

project_scrum
REPOSITORY
REPOSITORYOCA/project-agile
GIT
GIThttps://github.com/OCA/project-agile.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/project-agile/tree/14.0/project_scrum
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYProject Management
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONYes
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA)
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA)
COMMITTERS
COMMITTERSoca-travis, Weblate, OCA-git-bot, Jesús Alan Ramos Rodríguez
WEBSITE
WEBSITEhttps://github.com/OCA/project-agile
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:41:02
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/project:
    - project_task_code
    - project_stage_state
odoo/odoo:
    - base_setup
    - base
    - web
    - project
    - analytic
    - mail
    - bus
    - web_tour
    - uom
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - rating
    - resource
    - digest
    - hr_timesheet
    - hr
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (25)
XML IDNameModelTypeStatus
edit_project Edit Project project.project xpath Inherits project.edit_project
edit_ps_project project.scrum.project.form project.project button Inherits project.edit_project
project_ps_view project.project.tree project.project field Inherits project.view_project
view_ps_kanban project.scrum.project.kanban project.project field Inherits project.view_project_kanban
view_ps_meeting_calendar project.scrum.meeting.calendar project.scrum.meeting calendar New
view_ps_meeting_form project.scrum.meeting.form project.scrum.meeting form New
view_ps_meeting_search project.scrum.meeting.search project.scrum.meeting search New
view_ps_meeting_tree project.scrum.meeting.tree project.scrum.meeting tree New
view_ps_sprint_calendar project.scrum.sprint.calendar project.scrum.sprint calendar New
view_ps_sprint_form project.scrum.sprint.form project.scrum.sprint form New
view_ps_sprint_gantt project.scrum.sprint.gantt project.scrum.sprint gantt New
view_ps_sprint_graph project.scrum.sprint.graph project.scrum.sprint graph New
view_ps_sprint_search project.scrum.sprint.search project.scrum.sprint search New
view_ps_sprint_task_form2 project.scrum.task.form project.task field Inherits project.view_task_form2
view_ps_sprint_task_tree2 project.scrum.task.tree project.task field Inherits project.view_task_tree2
view_ps_sprint_tree project.scrum.sprint.tree project.scrum.sprint tree New
view_ps_task_search project.scrum.sprint.task project.task field Inherits project.view_task_search_form
view_ps_tc_form project.scrum.test.form project.scrum.test form New
view_ps_tc_kanban project.scrum.test.kanban project.scrum.test kanban New
view_ps_tc_search project.scrum.test.search project.scrum.test search New
view_ps_tc_tree project.scrum.test.tree project.scrum.test tree New
view_ps_us_form project.scrum.us.form project.scrum.us form New
view_ps_us_kanban project.scrum.us.kanban project.scrum.us kanban New
view_ps_us_search project.scrum.us.search project.scrum.us search New
view_ps_us_tree project.scrum.us.tree project.scrum.us tree New
Models touched (7)

New fields (12)
  • default_sprintduration Integer
    default=14 help='Default Sprint time for this project, in days' required=False string='Calendar'
  • description Html
  • manhours Integer
    help="How many hours you expect this project needs before it's finished" required=False string='Man Hours'
  • meeting_count Integer
    compute='_compute_meeting_count' string='# Meetings'
  • meeting_ids One2many → project.scrum.meeting
    comodel_name='project.scrum.meeting' inverse_name='project_id' string='Meetings'
  • sprint_count Integer
    compute='_compute_sprint_count' index=True string='# Sprints'
  • sprint_ids One2many → project.scrum.sprint
    comodel_name='project.scrum.sprint' inverse_name='project_id' string='Sprints'
  • test_case_count Integer
    compute='_compute_test_case_count' string='# Test Cases'
  • test_case_ids One2many → project.scrum.test
    comodel_name='project.scrum.test' inverse_name='project_id' string='Test Cases'
  • use_scrum Boolean
  • user_story_count Integer
    compute='_compute_user_story_count' string='# User Stories'
  • user_story_ids One2many → project.scrum.us
    comodel_name='project.scrum.us' inverse_name='project_id' string='User Stories'
Public methods (0)

No public methods.

New fields (1)
  • name Char
    required=True
Public methods (0)

No public methods.

New fields (9)
  • company_id Many2one
    related='project_id.company_id'
  • datetime_meeting Datetime
    required=True string='Date and Time of the meeting'
  • project_id Many2one → project.project
    change_default=True comodel_name='project.project' index=True ondelete='cascade' required=True string='Project' tracking=True
  • question_backlog Selection
    default='yes' required=False string='Backlog Accurate?' args: [('yes', 'Yes'), ('no', 'No')]
  • question_blocks Html
    required=False string='Description'
  • question_today Html
    required=True string='Description Today'
  • question_yesterday Html
    required=True string='Description Yesterday'
  • sprint_id Many2one → project.scrum.sprint
    comodel_name='project.scrum.sprint' string='Sprint'
  • user_id_meeting Many2one → res.users
    comodel_name='res.users' default=<expr> required=True string='Meeting Organizer'
Public methods (2)
  • name_get(self)
  • send_email(self)

New fields (18)
  • company_id Many2one
    related='project_id.company_id'
  • date_start Date
    string='Starting Date'
  • date_stop Date
    string='Ending Date'
  • description Text
  • meeting_ids One2many → project.scrum.meeting
    comodel_name='project.scrum.meeting' inverse_name='sprint_id' string='Daily Scrum'
  • name Char
    required=True string='Sprint Name'
  • planned_hours Float
    help='Estimated time to do the task, usually set by the project manager when the task is in draft state.'
  • product_owner_id Many2one → res.users
    comodel_name='res.users' help='The person who responsible for the product' required=False string='Product Owner'
  • project_id Many2one → project.project
    change_default=True comodel_name='project.project' help='If you have [?] in the project name, it means there are no analytic account linked to this project.' index=True ondelete='cascade' required=True string='Project' tracking=True
  • retrospective Html
    default='\n <h1 style="color:blue">\n <ul>What will you start doing in next sprint?</ul></h1>\n <br/><br/>\n <h1 style="color:blue">\n <ul>What will you stop doing in next sprint?</ul></h1>\n <br/><br/>\n <h1 style="color:blue">\n <ul>What will you continue doing in next sprint?</ul></h1>\n <br/><br/>' string='Sprint Retrospective'
  • review Html
    default='\n <h1 style="color:blue">\n <ul>What was the goal of this sprint?</ul>\n </h1><br/><br/>\n <h1 style="color:blue">\n <ul>Has the goal been reached?</ul></h1>\n <br/><br/>' string='Sprint Review'
  • scrum_master_id Many2one → res.users
    comodel_name='res.users' help='The person who maintains the processes for the product' required=False string='Scrum Master'
  • sequence Integer
    help='Gives the sequence order when displaying a list of tasks.'
  • state Selection
    required=False args: [('draft', 'Draft'), ('open', 'Open'), ('pending', 'Pending'), ('cancel', 'Cancelled'), ('done', 'Done')]
  • task_count Integer
    compute='_compute_task_count'
  • task_ids One2many → project.task
    comodel_name='project.task' inverse_name='sprint_id'
  • us_ids Many2many → project.scrum.us
    comodel_name='project.scrum.us' string='User Stories'
  • user_id Many2one → res.users
    comodel_name='res.users' index=True string='Assigned to'
Public methods (4)
  • get_current_sprint(self, project_id)
  • onchange_date_start(self)
    @api.onchange('date_start')
  • onchange_project_id(self)
    @api.onchange('project_id')
  • time_cal(self)

New fields (9)
  • color Integer
    related='project_id.color'
  • company_id Many2one
    related='project_id.company_id'
  • description_test Html
    string='Description'
  • name Char
    required=True
  • project_id Many2one → project.project
    change_default=True comodel_name='project.project' index=True ondelete='cascade' required=True string='Project' tracking=True
  • sequence_test Integer
    index=True string='Sequence'
  • sprint_id Many2one → project.scrum.sprint
    comodel_name='project.scrum.sprint' string='Sprint'
  • stats_test Selection
    required=False string='State' args: [('draft', 'Draft'), ('in progress', 'In Progress'), ('cancel', 'Cancelled')]
  • user_story_id_test Many2one → project.scrum.us
    comodel_name='project.scrum.us' string='User Story'
Public methods (0)

No public methods.

New fields (19)
  • actor_ids Many2many → project.scrum.actors
    comodel_name='project.scrum.actors' string='Actor'
  • color Integer
    related='project_id.color'
  • company_id Many2one
    related='project_id.company_id' store=True
  • description Html
  • kanban_state Selection
    default='blocked' args: [('normal', 'Mark as impeded'), ('blocked', 'Mark as waiting'), ('done', 'Mark item as defined and ready for implementation')]
  • kano Selection
    args: '_get_kano_field'
  • moscow Selection
    args: '_get_moscow_field'
  • name Char
    required=True string='User Story'
  • project_id Many2one → project.project
    change_default=True comodel_name='project.project' index=True ondelete='restrict' required=True string='Project' tracking=True
  • reference Char
    copy=False default='/' index=True readonly=True args: 'Number'
  • risk Selection
    args: '_get_risk_field'
  • sequence Integer
  • sprint_ids Many2many → project.scrum.sprint
    comodel_name='project.scrum.sprint' group_expand='_read_group_sprint_id' string='Sprint'
  • task_count Integer
    compute='_compute_task_count' store=True
  • task_ids One2many → project.task
    comodel_name='project.task' inverse_name='us_id'
  • task_test_ids One2many → project.scrum.test
    comodel_name='project.scrum.test' inverse_name='user_story_id_test'
  • test_count Integer
    compute='_compute_test_count' store=True
  • test_ids One2many → project.scrum.test
    comodel_name='project.scrum.test' inverse_name='user_story_id_test'
  • value Selection
    args: '_get_value_field'
Public methods (1)
  • create(self, vals)
    @api.model

New fields (10)
  • actor_ids Many2many → project.scrum.actors
    comodel_name='project.scrum.actors' string='Actor'
  • color Integer
    related='project_id.color'
  • current_sprint Boolean
    compute='_compute_current_sprint' search='_search_current_sprint'
  • kano Selection
    args: '_get_kano_field'
  • moscow Selection
    args: '_get_moscow_field'
  • risk Selection
    args: '_get_risk_field'
  • sprint_id Many2one → project.scrum.sprint
    comodel_name='project.scrum.sprint' string='Sprint'
  • us_id Many2one → project.scrum.us
    comodel_name='project.scrum.us' index=True string='User Stories'
  • use_scrum Boolean
    readonly=1 related='project_id.use_scrum'
  • value Selection
    args: '_get_value_field'
Public methods (1)
  • get_formview_id(self, access_uid=None)
REPOSITORY
REPOSITORYOCA/project-agile
GIT
GIThttps://github.com/OCA/project-agile.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/project-agile/tree/12.0/project_scrum
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYProject Management
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONYes
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA)
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA)
COMMITTERS
COMMITTERSOCA Transbot, oca-travis, Weblate, OCA-git-bot, Jesús Alan Ramos Rodríguez
WEBSITE
WEBSITEhttps://github.com/OCA/project-agile
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:29:20
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/project:
    - project_task_code
    - project_stage_state
odoo/odoo:
    - base_setup
    - base
    - web
    - project
    - mail
    - bus
    - web_tour
    - portal
    - http_routing
    - rating
    - resource
    - digest
    - hr_timesheet
    - hr
    - analytic
    - decimal_precision
    - uom
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (25)
XML IDNameModelTypeStatus
edit_project Edit Project project.project xpath Inherits project.edit_project
edit_ps_project project.scrum.project.form project.project button Inherits project.edit_project
project_ps_view project.project.tree project.project field Inherits project.view_project
view_ps_kanban project.scrum.project.kanban project.project field Inherits project.view_project_kanban
view_ps_meeting_calendar project.scrum.meeting.calendar project.scrum.meeting calendar New
view_ps_meeting_form project.scrum.meeting.form project.scrum.meeting form New
view_ps_meeting_search project.scrum.meeting.search project.scrum.meeting search New
view_ps_meeting_tree project.scrum.meeting.tree project.scrum.meeting tree New
view_ps_sprint_calendar project.scrum.sprint.calendar project.scrum.sprint calendar New
view_ps_sprint_form project.scrum.sprint.form project.scrum.sprint form New
view_ps_sprint_gantt project.scrum.sprint.gantt project.scrum.sprint gantt New
view_ps_sprint_graph project.scrum.sprint.graph project.scrum.sprint graph New
view_ps_sprint_search project.scrum.sprint.search project.scrum.sprint search New
view_ps_sprint_task_form2 project.scrum.task.form project.task field Inherits project.view_task_form2
view_ps_sprint_task_tree2 project.scrum.task.tree project.task field Inherits project.view_task_tree2
view_ps_sprint_tree project.scrum.sprint.tree project.scrum.sprint tree New
view_ps_task_search project.scrum.sprint.task project.task field Inherits project.view_task_search_form
view_ps_tc_form project.scrum.test.form project.scrum.test form New
view_ps_tc_kanban project.scrum.test.kanban project.scrum.test kanban New
view_ps_tc_search project.scrum.test.search project.scrum.test search New
view_ps_tc_tree project.scrum.test.tree project.scrum.test tree New
view_ps_us_form project.scrum.us.form project.scrum.us form New
view_ps_us_kanban project.scrum.us.kanban project.scrum.us kanban New
view_ps_us_search project.scrum.us.search project.scrum.us search New
view_ps_us_tree project.scrum.us.tree project.scrum.us tree New
Models touched (7)

New fields (12)
  • default_sprintduration Integer
    default=14 help='Default Sprint time for this project, in days' required=False string='Calendar'
  • description Html
  • manhours Integer
    help="How many hours you expect this project needs before it's finished" required=False string='Man Hours'
  • meeting_count Integer
    compute='_compute_meeting_count' string='# Meetings'
  • meeting_ids One2many → project.scrum.meeting
    comodel_name='project.scrum.meeting' inverse_name='project_id' string='Meetings'
  • sprint_count Integer
    compute='_compute_sprint_count' index=True string='# Sprints'
  • sprint_ids One2many → project.scrum.sprint
    comodel_name='project.scrum.sprint' inverse_name='project_id' string='Sprints'
  • test_case_count Integer
    compute='_compute_test_case_count' string='# Test Cases'
  • test_case_ids One2many → project.scrum.test
    comodel_name='project.scrum.test' inverse_name='project_id' string='Test Cases'
  • use_scrum Boolean
  • user_story_count Integer
    compute='_compute_user_story_count' string='# User Stories'
  • user_story_ids One2many → project.scrum.us
    comodel_name='project.scrum.us' inverse_name='project_id' string='User Stories'
Public methods (0)

No public methods.

New fields (1)
  • name Char
    required=True
Public methods (0)

No public methods.

New fields (9)
  • company_id Many2one
    related='project_id.company_id'
  • datetime_meeting Datetime
    required=True string='Date and Time of the meeting'
  • project_id Many2one → project.project
    change_default=True comodel_name='project.project' index=True ondelete='cascade' required=True string='Project' track_visibility='onchange'
  • question_backlog Selection
    default='yes' required=False string='Backlog Accurate?' args: [('yes', 'Yes'), ('no', 'No')]
  • question_blocks Html
    required=False string='Description'
  • question_today Html
    required=True string='Description Today'
  • question_yesterday Html
    required=True string='Description Yesterday'
  • sprint_id Many2one → project.scrum.sprint
    comodel_name='project.scrum.sprint' string='Sprint'
  • user_id_meeting Many2one → res.users
    comodel_name='res.users' default=<expr> required=True string='Meeting Organizer'
Public methods (2)
  • name_get(self)
    @api.multi
  • send_email(self)
    @api.multi

New fields (18)
  • company_id Many2one
    related='project_id.company_id'
  • date_start Date
    string='Starting Date'
  • date_stop Date
    string='Ending Date'
  • description Text
  • meeting_ids One2many → project.scrum.meeting
    comodel_name='project.scrum.meeting' inverse_name='sprint_id' string='Daily Scrum'
  • name Char
    required=True string='Sprint Name'
  • planned_hours Float
    help='Estimated time to do the task, usually set by the project manager when the task is in draft state.' multi='planned_hours' string='Planned Hours'
  • product_owner_id Many2one → res.users
    comodel_name='res.users' help='The person who responsible for the product' required=False string='Product Owner'
  • project_id Many2one → project.project
    change_default=True comodel_name='project.project' help='If you have [?] in the project name, it means there are no analytic account linked to this project.' index=True ondelete='cascade' required=True string='Project' track_visibility='onchange'
  • retrospective Html
    default='\n <h1 style="color:blue">\n <ul>What will you start doing in next sprint?</ul></h1>\n <br/><br/>\n <h1 style="color:blue">\n <ul>What will you stop doing in next sprint?</ul></h1>\n <br/><br/>\n <h1 style="color:blue">\n <ul>What will you continue doing in next sprint?</ul></h1>\n <br/><br/>' string='Sprint Retrospective'
  • review Html
    default='\n <h1 style="color:blue">\n <ul>What was the goal of this sprint?</ul>\n </h1><br/><br/>\n <h1 style="color:blue">\n <ul>Has the goal been reached?</ul></h1>\n <br/><br/>' string='Sprint Review'
  • scrum_master_id Many2one → res.users
    comodel_name='res.users' help='The person who maintains the processes for the product' required=False string='Scrum Master'
  • sequence Integer
    help='Gives the sequence order when displaying a list of tasks.'
  • state Selection
    required=False string='State' args: [('draft', 'Draft'), ('open', 'Open'), ('pending', 'Pending'), ('cancel', 'Cancelled'), ('done', 'Done')]
  • task_count Integer
    compute='_compute_task_count'
  • task_ids One2many → project.task
    comodel_name='project.task' inverse_name='sprint_id'
  • us_ids Many2many → project.scrum.us
    comodel_name='project.scrum.us' string='User Stories'
  • user_id Many2one → res.users
    comodel_name='res.users' index=True string='Assigned to'
Public methods (4)
  • get_current_sprint(self, project_id)
  • onchange_date_start(self)
    @api.onchange('date_start')
  • onchange_project_id(self)
    @api.onchange('project_id')
  • time_cal(self)

New fields (9)
  • color Integer
    related='project_id.color'
  • company_id Many2one
    related='project_id.company_id'
  • description_test Html
    string='Description'
  • name Char
    required=True
  • project_id Many2one → project.project
    change_default=True comodel_name='project.project' index=True ondelete='cascade' required=True string='Project' track_visibility='onchange'
  • sequence_test Integer
    index=True string='Sequence'
  • sprint_id Many2one → project.scrum.sprint
    comodel_name='project.scrum.sprint' string='Sprint'
  • stats_test Selection
    required=False string='State' args: [('draft', 'Draft'), ('in progress', 'In Progress'), ('cancel', 'Cancelled')]
  • user_story_id_test Many2one → project.scrum.us
    comodel_name='project.scrum.us' string='User Story'
Public methods (0)

No public methods.

New fields (19)
  • actor_ids Many2many → project.scrum.actors
    comodel_name='project.scrum.actors' string='Actor'
  • color Integer
    related='project_id.color'
  • company_id Many2one
    related='project_id.company_id' store=True
  • description Html
    string='Description'
  • kanban_state Selection
    default='blocked' args: [('normal', 'Mark as impeded'), ('blocked', 'Mark as waiting'), ('done', 'Mark item as defined and ready for implementation')], 'Kanban State'
  • kano Selection
    string='Kano' args: '_get_kano_field'
  • moscow Selection
    string='Moscow' args: '_get_moscow_field'
  • name Char
    required=True string='User Story'
  • project_id Many2one → project.project
    change_default=True comodel_name='project.project' index=True ondelete='set null' required=True string='Project' track_visibility='onchange'
  • reference Char
    copy=False default='/' index=True readonly=True args: 'Number'
  • risk Selection
    string='Risk' args: '_get_risk_field'
  • sequence Integer
  • sprint_ids Many2many → project.scrum.sprint
    comodel_name='project.scrum.sprint' group_expand='_read_group_sprint_id' string='Sprint'
  • task_count Integer
    compute='_compute_task_count' store=True
  • task_ids One2many → project.task
    comodel_name='project.task' inverse_name='us_id'
  • task_test_ids One2many → project.scrum.test
    comodel_name='project.scrum.test' inverse_name='user_story_id_test'
  • test_count Integer
    compute='_compute_test_count' store=True
  • test_ids One2many → project.scrum.test
    comodel_name='project.scrum.test' inverse_name='user_story_id_test'
  • value Selection
    string='Value' args: '_get_value_field'
Public methods (1)
  • create(self, vals)
    @api.model

New fields (10)
  • actor_ids Many2many → project.scrum.actors
    comodel_name='project.scrum.actors' string='Actor'
  • color Integer
    related='project_id.color'
  • current_sprint Boolean
    compute='_compute_current_sprint' search='_search_current_sprint' string='Current Sprint'
  • kano Selection
    args: '_get_kano_field'
  • moscow Selection
    args: '_get_moscow_field'
  • risk Selection
    args: '_get_risk_field'
  • sprint_id Many2one → project.scrum.sprint
    comodel_name='project.scrum.sprint' string='Sprint'
  • us_id Many2one → project.scrum.us
    comodel_name='project.scrum.us' index=True string='User Stories'
  • use_scrum Boolean
    readonly=1 related='project_id.use_scrum'
  • value Selection
    args: '_get_value_field'
Public methods (1)
  • get_formview_id(self)
    @api.multi
REPOSITORY
REPOSITORYOCA/project-agile
GIT
GIThttps://github.com/OCA/project-agile.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/project-agile/tree/10.0/project_scrum
VERSION
VERSION 1.0.1
CATEGORY
CATEGORYProject Management
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONYes
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA)
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA)
COMMITTERS
COMMITTERSHolger Brunn, OCA Transbot, oca-travis, OCA-git-bot, Giovanni Francesco Capalbo
WEBSITE
WEBSITEhttps://github.com/OCA/project-agile
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:19:58
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/project:
    - project_task_code
    - project_stage_state
odoo/odoo:
    - base_setup
    - base
    - web_kanban
    - web
    - project
    - product
    - decimal_precision
    - mail
    - bus
    - web_tour
    - report
    - analytic
    - resource
    - web_planner
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (25)
XML IDNameModelTypeStatus
edit_project Edit Project project.project field Inherits project.edit_project
edit_ps_project project.scrum.project.form project.project button Inherits project.edit_project
project_ps_view project.project.tree project.project field Inherits project.view_project
view_ps_kanban project.scrum.project.kanban project.project field Inherits project.view_project_kanban
view_ps_meeting_calendar project.scrum.meeting.calendar project.scrum.meeting calendar New
view_ps_meeting_form project.scrum.meeting.form project.scrum.meeting form New
view_ps_meeting_search project.scrum.meeting.search project.scrum.meeting search New
view_ps_meeting_tree project.scrum.meeting.tree project.scrum.meeting tree New
view_ps_sprint_calendar project.scrum.sprint.calendar project.scrum.sprint calendar New
view_ps_sprint_form project.scrum.sprint.form project.scrum.sprint form New
view_ps_sprint_gantt project.scrum.sprint.gantt project.scrum.sprint gantt New
view_ps_sprint_graph project.scrum.sprint.graph project.scrum.sprint graph New
view_ps_sprint_search project.scrum.sprint.search project.scrum.sprint search New
view_ps_sprint_task_form2 project.scrum.task.form project.task field Inherits project.view_task_form2
view_ps_sprint_task_tree2 project.scrum.task.tree project.task field Inherits project.view_task_tree2
view_ps_sprint_tree project.scrum.sprint.tree project.scrum.sprint tree New
view_ps_task_search project.scrum.sprint.task project.task field Inherits project.view_task_search_form
view_ps_tc_form project.scrum.test.form project.scrum.test form New
view_ps_tc_kanban project.scrum.test.kanban project.scrum.test kanban New
view_ps_tc_search project.scrum.test.search project.scrum.test search New
view_ps_tc_tree project.scrum.test.tree project.scrum.test tree New
view_ps_us_form project.scrum.us.form project.scrum.us form New
view_ps_us_kanban project.scrum.us.kanban project.scrum.us kanban New
view_ps_us_search project.scrum.us.search project.scrum.us search New
view_ps_us_tree project.scrum.us.tree project.scrum.us tree New
Models touched (7)

New fields (12)
  • default_sprintduration Integer
    default=14 help='Default Sprint time for this project, in days' required=False string='Calendar'
  • description Html
  • manhours Integer
    help="How many hours you expect this project needs before it's finished" required=False string='Man Hours'
  • meeting_count Integer
    compute='_compute_meeting_count' string='Meetings'
  • meeting_ids One2many → project.scrum.meeting
    comodel_name='project.scrum.meeting' inverse_name='project_id' string='Meetings'
  • sprint_count Integer
    compute='_compute_sprint_count' index=True string='Sprints'
  • sprint_ids One2many → project.scrum.sprint
    comodel_name='project.scrum.sprint' inverse_name='project_id' string='Sprints'
  • test_case_count Integer
    compute='_compute_test_case_count' string='Test Cases'
  • test_case_ids One2many → project.scrum.test
    comodel_name='project.scrum.test' inverse_name='project_id' string='Test Cases'
  • use_scrum Boolean
  • user_story_count Integer
    compute='_compute_user_story_count' string='User Stories'
  • user_story_ids One2many → project.scrum.us
    comodel_name='project.scrum.us' inverse_name='project_id' string='User Stories'
Public methods (0)

No public methods.

New fields (1)
  • name Char
    required=True
Public methods (0)

No public methods.

New fields (9)
  • company_id Many2one
    related='project_id.analytic_account_id.company_id'
  • datetime_meeting Datetime
    required=True string='Date and Time of the meeting'
  • project_id Many2one → project.project
    change_default=True comodel_name='project.project' index=True ondelete='cascade' required=True string='Project' track_visibility='onchange'
  • question_backlog Selection
    default='yes' required=False string='Backlog Accurate?' args: [('yes', 'Yes'), ('no', 'No')]
  • question_blocks Html
    required=False string='Description'
  • question_today Html
    required=True string='Description'
  • question_yesterday Html
    required=True string='Description'
  • sprint_id Many2one → project.scrum.sprint
    comodel_name='project.scrum.sprint' string='Sprint'
  • user_id_meeting Many2one → res.users
    comodel_name='res.users' default=<expr> required=True string='Meeting Organizer'
Public methods (2)
  • name_get(self)
    @api.multi
  • send_email(self)
    @api.multi

New fields (18)
  • company_id Many2one
    related='project_id.analytic_account_id.company_id'
  • date_start Date
    string='Starting Date'
  • date_stop Date
    string='Ending Date'
  • description Text
  • meeting_ids One2many → project.scrum.meeting
    comodel_name='project.scrum.meeting' inverse_name='sprint_id' string='Daily Scrum'
  • name Char
    required=True string='Sprint Name'
  • planned_hours Float
    help='Estimated time to do the task, usually set by the project manager when the task is in draft state.' multi='planned_hours' string='Planned Hours'
  • product_owner_id Many2one → res.users
    comodel_name='res.users' help='The person who responsible for the product' required=False string='Product Owner'
  • project_id Many2one → project.project
    change_default=True comodel_name='project.project' help='If you have [?] in the project name, it means there are no analytic account linked to this project.' index=True ondelete='cascade' required=True string='Project' track_visibility='onchange'
  • retrospective Html
    default='\n <h1 style="color:blue">\n <ul>What will you start doing in next sprint?</ul></h1>\n <br/><br/>\n <h1 style="color:blue">\n <ul>What will you stop doing in next sprint?</ul></h1>\n <br/><br/>\n <h1 style="color:blue">\n <ul>What will you continue doing in next sprint?</ul></h1>\n <br/><br/>' string='Sprint Retrospective'
  • review Html
    default='\n <h1 style="color:blue">\n <ul>What was the goal of this sprint?</ul>\n </h1><br/><br/>\n <h1 style="color:blue">\n <ul>Has the goal been reached?</ul></h1>\n <br/><br/>' string='Sprint Review'
  • scrum_master_id Many2one → res.users
    comodel_name='res.users' help='The person who maintains the processes for the product' required=False string='Scrum Master'
  • sequence Integer
    help='Gives the sequence order when displaying a list of tasks.'
  • state Selection
    required=False string='State' args: [('draft', 'Draft'), ('open', 'Open'), ('pending', 'Pending'), ('cancel', 'Cancelled'), ('done', 'Done')]
  • task_count Integer
    compute='_compute_task_count'
  • task_ids One2many → project.task
    comodel_name='project.task' inverse_name='sprint_id'
  • us_ids Many2many → project.scrum.us
    comodel_name='project.scrum.us' string='User Stories'
  • user_id Many2one → res.users
    comodel_name='res.users' index=True string='Assigned to'
Public methods (4)
  • get_current_sprint(self, project_id)
  • onchange_date_start(self)
    @api.onchange('date_start')
  • onchange_project_id(self)
    @api.onchange('project_id')
  • time_cal(self)

New fields (9)
  • color Integer
    related='project_id.color'
  • company_id Many2one
    related='project_id.analytic_account_id.company_id'
  • description_test Html
    string='Description'
  • name Char
    required=True
  • project_id Many2one → project.project
    change_default=True comodel_name='project.project' index=True ondelete='cascade' required=True string='Project' track_visibility='onchange'
  • sequence_test Integer
    index=True string='Sequence'
  • sprint_id Many2one → project.scrum.sprint
    comodel_name='project.scrum.sprint' string='Sprint'
  • stats_test Selection
    required=False string='State' args: [('draft', 'Draft'), ('in progress', 'In Progress'), ('cancel', 'Cancelled')]
  • user_story_id_test Many2one → project.scrum.us
    comodel_name='project.scrum.us' string='User Story'
Public methods (0)

No public methods.

New fields (19)
  • actor_ids Many2many → project.scrum.actors
    comodel_name='project.scrum.actors' string='Actor'
  • color Integer
    related='project_id.color'
  • company_id Many2one
    related='project_id.analytic_account_id.company_id' store=True
  • description Html
    string='Description'
  • kanban_state Selection
    default='blocked' args: [('normal', 'Mark as impeded'), ('blocked', 'Mark as waiting'), ('done', 'Mark item as defined and ready for implementation')], 'Kanban State'
  • kano Selection
    string='Kano' args: '_get_kano_field'
  • moscow Selection
    string='Moscow' args: '_get_moscow_field'
  • name Char
    required=True string='User Story'
  • project_id Many2one → project.project
    change_default=True comodel_name='project.project' index=True ondelete='set null' required=True string='Project' track_visibility='onchange'
  • reference Char
    copy=False default='/' index=True readonly=True args: 'Number'
  • risk Selection
    string='Risk' args: '_get_risk_field'
  • sequence Integer
  • sprint_ids Many2many → project.scrum.sprint
    comodel_name='project.scrum.sprint' group_expand='_read_group_sprint_id' string='Sprint'
  • task_count Integer
    compute='_compute_task_count' store=True
  • task_ids One2many → project.task
    comodel_name='project.task' inverse_name='us_id'
  • task_test_ids One2many → project.scrum.test
    comodel_name='project.scrum.test' inverse_name='user_story_id_test'
  • test_count Integer
    compute='_compute_test_count' store=True
  • test_ids One2many → project.scrum.test
    comodel_name='project.scrum.test' inverse_name='user_story_id_test'
  • value Selection
    string='Value' args: '_get_value_field'
Public methods (1)
  • create(self, vals)
    @api.model

New fields (10)
  • actor_ids Many2many → project.scrum.actors
    comodel_name='project.scrum.actors' string='Actor'
  • color Integer
    related='project_id.color'
  • current_sprint Boolean
    compute='_compute_current_sprint' search='_search_current_sprint' string='Current Sprint'
  • kano Selection
    args: '_get_kano_field'
  • moscow Selection
    args: '_get_moscow_field'
  • risk Selection
    args: '_get_risk_field'
  • sprint_id Many2one → project.scrum.sprint
    comodel_name='project.scrum.sprint' string='Sprint'
  • us_id Many2one → project.scrum.us
    comodel_name='project.scrum.us' index=True string='User Stories'
  • use_scrum Boolean
    readonly=1 related='project_id.use_scrum'
  • value Selection
    args: '_get_value_field'
Public methods (1)
  • get_formview_id(self)
    @api.multi