| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/project-agile |
| GIT | |
| GIT | https://github.com/OCA/project-agile.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/project-agile/tree/14.0/project_scrum |
| VERSION | |
| VERSION | 1.0.0 |
| CATEGORY | |
| CATEGORY | Project Management |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | Yes |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA) |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA) |
| COMMITTERS | |
| COMMITTERS | oca-travis, Weblate, OCA-git-bot, Jesús Alan Ramos Rodríguez |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/project-agile |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-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 - 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 | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
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 |
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'
No public methods.
name
Char
required=True
No public methods.
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'
name_get(self)
send_email(self)
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'
get_current_sprint(self, project_id)
onchange_date_start(self)
onchange_project_id(self)
time_cal(self)
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'
No public methods.
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
moscow
Selection
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
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
create(self, vals)
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
moscow
Selection
risk
Selection
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
get_formview_id(self, access_uid=None)
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/project-agile |
| GIT | |
| GIT | https://github.com/OCA/project-agile.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/project-agile/tree/12.0/project_scrum |
| VERSION | |
| VERSION | 1.0.0 |
| CATEGORY | |
| CATEGORY | Project Management |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | Yes |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA) |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA) |
| COMMITTERS | |
| COMMITTERS | OCA Transbot, oca-travis, Weblate, OCA-git-bot, Jesús Alan Ramos Rodríguez |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/project-agile |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:29:20 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
OCA/project: - project_task_code - project_stage_state odoo/odoo: - base_setup - base - web - project - 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 | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
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 |
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'
No public methods.
name
Char
required=True
No public methods.
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'
name_get(self)
send_email(self)
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'
get_current_sprint(self, project_id)
onchange_date_start(self)
onchange_project_id(self)
time_cal(self)
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'
No public methods.
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'
create(self, vals)
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
moscow
Selection
risk
Selection
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
get_formview_id(self)
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/project-agile |
| GIT | |
| GIT | https://github.com/OCA/project-agile.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/project-agile/tree/10.0/project_scrum |
| VERSION | |
| VERSION | 1.0.1 |
| CATEGORY | |
| CATEGORY | Project Management |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | Yes |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA) |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA) |
| COMMITTERS | |
| COMMITTERS | Holger Brunn, OCA Transbot, oca-travis, OCA-git-bot, Giovanni Francesco Capalbo |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/project-agile |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-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 - bus - web_tour - report - analytic - resource - web_planner |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
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 |
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'
No public methods.
name
Char
required=True
No public methods.
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'
name_get(self)
send_email(self)
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'
get_current_sprint(self, project_id)
onchange_date_start(self)
onchange_project_id(self)
time_cal(self)
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'
No public methods.
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'
create(self, vals)
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
moscow
Selection
risk
Selection
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
get_formview_id(self)