[MERGE] merge with main branch

bzr revid: mra@mra-laptop-20100715070936-ceznimf80is2erxu
This commit is contained in:
Mustufa Rangwala
2010-07-15 12:39:36 +05:30
65 changed files with 529 additions and 414 deletions
+1 -1
View File
@@ -13,7 +13,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2010-07-14 03:37+0000\n"
"X-Launchpad-Export-Date: 2010-07-15 03:36+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: account_voucher
+1 -1
View File
@@ -14,7 +14,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2010-07-14 03:37+0000\n"
"X-Launchpad-Export-Date: 2010-07-15 03:36+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: account_voucher_payment
@@ -7,55 +7,55 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.6\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
"PO-Revision-Date: 2010-03-20 07:31+0000\n"
"PO-Revision-Date: 2010-07-14 03:49+0000\n"
"Last-Translator: Black Jack <onetimespeed@hotmail.com>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2010-06-22 04:17+0000\n"
"X-Launchpad-Export-Date: 2010-07-15 03:36+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: analytic_journal_billing_rate
#: constraint:ir.ui.view:0
msgid "Invalid XML for View Architecture!"
msgstr "无效的视图结构XML文件!"
msgstr "无效XML视图结构!"
#. module: analytic_journal_billing_rate
#: field:analytic_journal_rate_grid,journal_id:0
msgid "Analytic Journal"
msgstr "辅助核算分类帐"
msgstr "辅助核算记录集合"
#. module: analytic_journal_billing_rate
#: constraint:ir.model:0
msgid ""
"The Object name must start with x_ and not contain any special character !"
msgstr "对象名必须要以X_开头并且不能含有特殊字符!"
msgstr "对象名称必须以“x_”开头且不能包含任何特殊字符!"
#. module: analytic_journal_billing_rate
#: view:analytic_journal_rate_grid:0
msgid "Billing Rate per Journal for this Analytic Account"
msgstr "辅助核算分类帐中每个分类帐的记帐标准"
msgstr "辅助核算记录集合中每个记录集合的开单税率"
#. module: analytic_journal_billing_rate
#: field:analytic_journal_rate_grid,account_id:0
msgid "Analytic Account"
msgstr "辅助核算分类帐"
msgstr "辅助核算项"
#. module: analytic_journal_billing_rate
#: model:ir.model,name:analytic_journal_billing_rate.model_analytic_journal_rate_grid
msgid "Relation table between journals and billing rates"
msgstr "分类帐和记帐标准的关系表"
msgstr "记录集合和开票税率的关系表"
#. module: analytic_journal_billing_rate
#: field:account.analytic.account,journal_rate_ids:0
msgid "Invoicing Rate per Journal"
msgstr "分类帐的开票税率"
msgstr "每个记录集合的的开票税率"
#. module: analytic_journal_billing_rate
#: model:ir.module.module,shortdesc:analytic_journal_billing_rate.module_meta_information
msgid "Analytic Journal Billing Rate"
msgstr "辅助核算分类帐的记帐标准"
msgstr "辅助核算集合的开票税率"
#. module: analytic_journal_billing_rate
#: field:analytic_journal_rate_grid,rate_id:0
+8 -4
View File
@@ -7,19 +7,19 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.6\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
"PO-Revision-Date: 2010-03-20 07:31+0000\n"
"PO-Revision-Date: 2010-07-14 03:52+0000\n"
"Last-Translator: Black Jack <onetimespeed@hotmail.com>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2010-06-22 04:17+0000\n"
"X-Launchpad-Export-Date: 2010-07-15 03:36+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: analytic_user_function
#: constraint:ir.ui.view:0
msgid "Invalid XML for View Architecture!"
msgstr "无效的视图结构XML文件!"
msgstr "无效XML视图结构!"
#. module: analytic_user_function
#: model:ir.model,name:analytic_user_function.model_analytic_user_funct_grid
@@ -51,7 +51,7 @@ msgstr "用户"
#: constraint:ir.model:0
msgid ""
"The Object name must start with x_ and not contain any special character !"
msgstr "对象名必须要以X_开头并且不能含有特殊字符!"
msgstr "对象名称必须以“x_”开头且不能包含任何特殊字符!"
#. module: analytic_user_function
#: model:ir.module.module,shortdesc:analytic_user_function.module_meta_information
@@ -63,6 +63,10 @@ msgstr "辅助核算用的函数"
msgid "User's Product for this Analytic Account"
msgstr "用户的产品辅助核算项"
#, python-format
#~ msgid "Error !"
#~ msgstr "错误!"
#~ msgid ""
#~ "\n"
#~ "\n"
File diff suppressed because it is too large Load Diff
+9 -9
View File
@@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.0\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
"PO-Revision-Date: 2010-07-08 15:37+0000\n"
"Last-Translator: Pomazan Bogdan <Unknown>\n"
"PO-Revision-Date: 2010-07-14 08:08+0000\n"
"Last-Translator: Nikolay Chesnokov <chesnokov_n@msn.com>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2010-07-09 03:56+0000\n"
"X-Launchpad-Export-Date: 2010-07-15 03:36+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: base_contact
@@ -67,7 +67,7 @@ msgstr "Имя"
#. module: base_contact
#: model:ir.model,name:base_contact.model_res_partner_job
msgid "Contact Partner Function"
msgstr ""
msgstr "Функции сотрудника партнера"
#. module: base_contact
#: field:res.partner.job,other:0
@@ -122,7 +122,7 @@ msgstr "Телефон"
#. module: base_contact
#: model:process.transition,note:base_contact.process_transition_contacttofunction0
msgid "Defines contacts and functions."
msgstr ""
msgstr "Определить контакты и функции"
#. module: base_contact
#: field:res.partner.contact,title:0
@@ -196,7 +196,7 @@ msgstr "Категории"
#. module: base_contact
#: field:res.partner.contact,function_id:0
msgid "Main Function"
msgstr ""
msgstr "Личная функция"
#. module: base_contact
#: model:process.transition,note:base_contact.process_transition_partnertoaddress0
@@ -211,12 +211,12 @@ msgstr "Неправильный XML для просмотра архитект
#. module: base_contact
#: model:process.process,name:base_contact.process_process_basecontactprocess0
msgid "Base Contact Process"
msgstr ""
msgstr "Основной контакт"
#. module: base_contact
#: view:res.partner.contact:0
msgid "Seq."
msgstr ""
msgstr "Посл-ть"
#. module: base_contact
#: field:res.partner.job,extension:0
@@ -272,7 +272,7 @@ msgstr "Основной работодатель"
#. module: base_contact
#: model:process.transition,name:base_contact.process_transition_functiontoaddress0
msgid "Function to address"
msgstr ""
msgstr "Адрес функции"
#. module: base_contact
#: model:ir.actions.act_window,name:base_contact.act_res_partner_jobs
+3 -3
View File
@@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.4\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
"PO-Revision-Date: 2010-04-16 13:36+0000\n"
"PO-Revision-Date: 2010-07-14 08:10+0000\n"
"Last-Translator: Nikolay Chesnokov <chesnokov_n@msn.com>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2010-06-22 04:01+0000\n"
"X-Launchpad-Export-Date: 2010-07-15 03:36+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: base_module_record
@@ -32,7 +32,7 @@ msgstr "Информация"
#. module: base_module_record
#: model:ir.model,name:base_module_record.model_ir_module_record
msgid "ir.module.record"
msgstr ""
msgstr "Системный модуль записи"
#. module: base_module_record
#: constraint:ir.model:0
+6 -6
View File
@@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.4\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
"PO-Revision-Date: 2009-12-08 19:44+0000\n"
"Last-Translator: Vadim Peretokin <vperetokin@gmail.com>\n"
"PO-Revision-Date: 2010-07-14 08:14+0000\n"
"Last-Translator: Nikolay Chesnokov <chesnokov_n@msn.com>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2010-06-22 04:13+0000\n"
"X-Launchpad-Export-Date: 2010-07-15 03:36+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: hr_contract
@@ -38,7 +38,7 @@ msgstr ""
#: view:hr.contract:0
#: view:hr.employee:0
msgid "Generalities"
msgstr ""
msgstr "Общее положение"
#. module: hr_contract
#: field:hr.employee,children:0
@@ -73,7 +73,7 @@ msgstr "Сумма на руки"
#. module: hr_contract
#: model:ir.module.module,shortdesc:hr_contract.module_meta_information
msgid "Human Resources Contracts"
msgstr ""
msgstr "Договор с содрудником"
#. module: hr_contract
#: field:hr.contract.wage.type.period,factor_days:0
@@ -189,7 +189,7 @@ msgstr "Зарплатный период"
#. module: hr_contract
#: field:hr.employee,audiens_num:0
msgid "AUDIENS Number"
msgstr ""
msgstr "Номер посещения"
#. module: hr_contract
#: view:hr.contract:0
+6 -5
View File
@@ -8,13 +8,13 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2009-12-08 11:46+0000\n"
"PO-Revision-Date: 2010-07-07 22:52+0000\n"
"Last-Translator: Pomazan Bogdan <Unknown>\n"
"PO-Revision-Date: 2010-07-14 08:17+0000\n"
"Last-Translator: Nikolay Chesnokov <chesnokov_n@msn.com>\n"
"Language-Team: Russian <ru@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2010-07-09 03:56+0000\n"
"X-Launchpad-Export-Date: 2010-07-15 03:36+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: multi_company
@@ -35,6 +35,7 @@ msgstr ""
msgid ""
"Error: The default UOM and the purchase UOM must be in the same category."
msgstr ""
"Ошибка. ЕИМ по умолчанию и закупочная ЕИМ должны иметь одинаковую категорию."
#. module: multi_company
#: constraint:res.partner:0
@@ -115,7 +116,7 @@ msgstr "Ошибка. UOS и UOM должны принадлежать к раз
#. module: multi_company
#: model:product.category,name:multi_company.Odoo1
msgid "Odoo Offers"
msgstr ""
msgstr "Предложения Odoo"
#. module: multi_company
#: constraint:res.company:0
@@ -155,7 +156,7 @@ msgstr "Выражение"
#. module: multi_company
#: model:product.template,name:multi_company.product_product_odoo1_product_template
msgid "Odoo Offer"
msgstr ""
msgstr "Предложение Odoo"
#. module: multi_company
#: field:multi_company.default,sequence:0
+25 -2
View File
@@ -76,7 +76,30 @@
<field name="model">olap.parameters.config.wizard</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Parameters Configure">
<form string="Parameters Configure wizard">
<group colspan="4" col="8">
<group colspan="3" width="180" height="250">
<field name="config_logo" widget="image" width="200" height="100" nolabel="1" colspan="1"/>
<newline/>
<label align="0.0" string="This wizard will automatically configure the web client for Business Intelligence." width="200" colspan="2"/>
</group>
<separator string="" position="vertical" colspan="1" rowspan="12"/>
<group colspan="4">
<separator string=" Business Intelligence Web Client" colspan="4"/>
<field name="host_name" colspan="4"/>
<field name="host_port" colspan="4"/>
</group>
<group colspan="8" col="8">
<separator string="" colspan="8"/>
<group colspan="4" width="220">
<field name="progress" widget="progressbar" nolabel="1" colspan="2"/>
</group>
<button special="cancel" string="Cancel" name="action_cancel" type="object" icon='gtk-cancel'/>
<button name="action_config" string="Configure" icon='gtk-ok' type="object"/>
</group>
</group>
</form>
<!--form string="Parameters Configure">
<separator string="BI Web Client." colspan="4"/>
<label string="This wizard will automatically configure the web client for BI." align="0.0" colspan="4"/>
<field name="host_name" colspan="4"/>
@@ -87,7 +110,7 @@
<button special="cancel" string="Cancel" name="action_cancel" type="object" icon='gtk-cancel'/>
<button name="action_config" string="Configure" icon='gtk-ok' type="object"/>
</group>
</form>
</form-->
</field>
</record>
+21
View File
@@ -30,6 +30,9 @@ from osv import osv
from osv import fields, osv
import netsvc
import cube
import os
import tools
import base64
from cube import levels
@@ -2128,16 +2131,34 @@ class olap_parameters_config_wizard(osv.osv_memory):
Word(alphanums + "_" + " ").suppress()
return s_p.parseString(aid.url)[1]
def _get_image(self, cr, uid, context=None):
path = os.path.join('base','res','config_pixmaps/1.png')
file_data = tools.file_open(path,'rb').read()
return base64.encodestring(file_data)
def _progress(self, cr, uid, context=None):
total = self.pool.get('ir.actions.todo')\
.search_count(cr, uid, [], context)
open = self.pool.get('ir.actions.todo')\
.search_count(cr, uid, [('state','<>','open')], context)
if total:
return round(open*90./total)
return 100.
_columns = {
'host_name': fields.char('Server Name', size = 64, help = "Put here the server address or IP \
Put localhost if its not clear.", required = True),
'host_port': fields.char('Port', size = 4, help = "Put the port for the server. Put 8080 if \
its not clear.", required = True),
'config_logo': fields.binary('Image', readonly=True),
'progress': fields.float('Configuration Progress', readonly=True),
}
_defaults = {
'host_name': _get_host,
'host_port': _get_port,
'progress': _progress,
'config_logo': _get_image,
}
def action_cancel(self, cr, uid, ids, conect = None):
@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
##############################################################################
#
#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
#
@@ -15,11 +15,11 @@
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
import scrum
import project_scrum
import report
import wizard
@@ -51,15 +51,15 @@
'init_xml': [],
'update_xml': [
'security/ir.model.access.csv',
'scrum_report.xml',
'wizard/scrum_backlog_create_task_view.xml',
'scrum_view.xml',
'process/scrum_process.xml',
'wizard/scrum_backlog_sprint_view.xml',
'wizard/scrum_backlog_merger_view.xml',
"board_scrum_view.xml",
'project_scrum_report.xml',
'wizard/project_scrum_backlog_create_task_view.xml',
'project_scrum_view.xml',
'process/project_scrum_process.xml',
'wizard/project_scrum_backlog_sprint_view.xml',
'wizard/project_scrum_backlog_merger_view.xml',
"board_project_scrum_view.xml",
],
'demo_xml': ['scrum_demo.xml'],
'demo_xml': ['project_scrum_demo.xml'],
'installable': True,
'active': False,
'certificate': '0084121063261',
@@ -2,8 +2,8 @@
<openerp>
<data>
<record id="view_scrum_sprint_dashboard_tree" model="ir.ui.view">
<field name="name">scrum.sprint.dashboard.tree</field>
<field name="model">scrum.sprint</field>
<field name="name">project.scrum.sprint.dashboard.tree</field>
<field name="model">project.scrum.sprint</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<tree string="Scrum Sprint">
@@ -14,21 +14,21 @@
<field name="date_start"/>
<field name="progress" widget="progressbar"/>
<field name="effective_hours" sum="Effective hours" widget="float_time"/>
<field name="planned_hours" sum="Planned hours" widget="float_time"/>
<!-- field name="planned_hours" sum="Planned hours" widget="float_time"/> -->
<field name="expected_hours" sum="Expected hours" widget="float_time"/>
<field name="state"/>
<button type="object" string="Open" name="button_open" states="draft,pending" icon="gtk-jump-to"/>
<button type="object" string="Pending" name="button_pending" states="open" icon="gtk-media-pause"/>
<button type="object" string="Close" name="button_close" states="open,pending" icon="gtk-jump-to"/>
<button type="object" string="Set to Draft" name="button_draft" states="cancel,done" icon="gtk-convert"/>
<button name="%(scrum.report_scrum_sprint_burndown_chart)d" states="open,draft,close,cancel"
<button name="%(project_scrum.report_scrum_sprint_burndown_chart)d" states="open,draft,close,cancel"
string="Burndown Chart" type="action" icon="gtk-print"/>
</tree>
</field>
</record>
<record id="action_sprint_all_dashboard_tree" model="ir.actions.act_window">
<field name="name">Sprint's List</field>
<field name="res_model">scrum.sprint</field>
<field name="res_model">project.scrum.sprint</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field name="view_id" ref="view_scrum_sprint_dashboard_tree"/>
@@ -1,14 +1,14 @@
<?xml version="1.0" ?>
<openerp>
<data>
<!--
<!--
Process Node
-->
<record id="process_node_productbacklog0" model="process.node">
<field name="menu_id" ref="scrum.menu_action_product_backlog_form"/>
<field name="model_id" ref="scrum.model_scrum_product_backlog"/>
<field name="menu_id" ref="menu_action_product_backlog_form"/>
<field name="model_id" ref="model_project_scrum_product_backlog"/>
<field eval="&quot;&quot;&quot;state&quot;&quot;&quot;" name="kind"/>
<field eval="&quot;&quot;&quot;Product backlog&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;Create task from backlogs&quot;&quot;&quot;" name="note"/>
@@ -16,11 +16,11 @@
<field eval="&quot;&quot;&quot;object.state=='draft'&quot;&quot;&quot;" name="model_states"/>
<field eval="1" name="flow_start"/>
</record>
<!--
<!--
Process Transition
-->
<record id="process_transition_backlogtask0" model="process.transition">
<field eval="[(6,0,[])]" name="role_ids"/>
<field eval="[(6,0,[])]" name="transition_ids"/>
@@ -29,6 +29,6 @@
<field model="process.node" name="target_node_id" ref="project.process_node_drafttask0"/>
<field model="process.node" name="source_node_id" ref="process_node_productbacklog0"/>
</record>
</data>
</openerp>
</openerp>
@@ -27,7 +27,7 @@ import re
import tools
from tools.translate import _
class scrum_project(osv.osv):
class project_scrum_project(osv.osv):
_inherit = 'project.project'
_columns = {
'product_owner_id': fields.many2one('res.users', 'Product Owner', help="The person who is responsible for the product"),
@@ -39,11 +39,11 @@ class scrum_project(osv.osv):
'sprint_size': 15,
'scrum': 1
}
scrum_project()
project_scrum_project()
class scrum_sprint(osv.osv):
_name = 'scrum.sprint'
_description = 'Scrum Sprint'
class project_scrum_sprint(osv.osv):
_name = 'project.scrum.sprint'
_description = 'Project Scrum Sprint'
def _calc_progress(self, cr, uid, ids, name, args, context):
res = {}
@@ -115,10 +115,10 @@ class scrum_sprint(osv.osv):
'project_id': fields.many2one('project.project', 'Project', required=True, domain=[('scrum','=',1)], help="If you have [?] in the project name, it means there are no analytic account linked to this project."),
'product_owner_id': fields.many2one('res.users', 'Product Owner', required=True,help="The person who is responsible for the product"),
'scrum_master_id': fields.many2one('res.users', 'Scrum Master', required=True,help="The person who is maintains the processes for the product"),
'meeting_ids': fields.one2many('scrum.meeting', 'sprint_id', 'Daily Scrum'),
'meeting_ids': fields.one2many('project.scrum.meeting', 'sprint_id', 'Daily Scrum'),
'review': fields.text('Sprint Review'),
'retrospective': fields.text('Sprint Retrospective'),
'backlog_ids': fields.one2many('scrum.product.backlog', 'sprint_id', 'Sprint Backlog'),
'backlog_ids': fields.one2many('project.scrum.product.backlog', 'sprint_id', 'Sprint Backlog'),
'progress': fields.function(_calc_progress, method=True, string='Progress (0-100)', help="Computed as: Time Spent / Total Time."),
'effective_hours': fields.function(_calc_effective, method=True, string='Effective hours', help="Computed using the sum of the task work done."),
'expected_hours': fields.function(_calc_expected, method=True, string='Planned Hours', help='Estimated time to do the task.'),
@@ -153,10 +153,10 @@ class scrum_sprint(osv.osv):
v['date_stop'] = (DateTime.now() + DateTime.RelativeDateTime(days=int(proj.sprint_size or 14))).strftime('%Y-%m-%d')
return {'value':v}
scrum_sprint()
project_scrum_sprint()
class scrum_product_backlog(osv.osv):
_name = 'scrum.product.backlog'
class project_scrum_product_backlog(osv.osv):
_name = 'project.scrum.product.backlog'
_description = 'Product Backlog'
def name_search(self, cr, uid, name, args=None, operator='ilike', context=None, limit=100):
@@ -200,9 +200,10 @@ class scrum_product_backlog(osv.osv):
return res
def button_cancel(self, cr, uid, ids, context={}):
obj_project_task = self.pool.get('project.task')
self.write(cr, uid, ids, {'state':'cancel'}, context=context)
for backlog in self.browse(cr, uid, ids, context=context):
self.pool.get('project.task').write(cr, uid, [i.id for i in backlog.tasks_id], {'state': 'cancelled'})
obj_project_task.write(cr, uid, [i.id for i in backlog.tasks_id], {'state': 'cancelled'})
return True
def button_draft(self, cr, uid, ids, context={}):
@@ -217,9 +218,10 @@ class scrum_product_backlog(osv.osv):
return True
def button_close(self, cr, uid, ids, context={}):
obj_project_task = self.pool.get('project.task')
self.write(cr, uid, ids, {'state':'done'}, context=context)
for backlog in self.browse(cr, uid, ids, context=context):
self.pool.get('project.task').write(cr, uid, [i.id for i in backlog.tasks_id], {'state': 'done'})
obj_project_task.write(cr, uid, [i.id for i in backlog.tasks_id], {'state': 'done'})
message = _('Product Backlog ') + " '" + backlog.name + "' "+ _("is Closed.")
self.log(cr, uid, backlog.id, message)
return True
@@ -249,7 +251,7 @@ class scrum_product_backlog(osv.osv):
'active' : fields.boolean('Active', help="If Active field is set to true, it will allow you to hide the product backlog without removing it."),
'project_id': fields.many2one('project.project', 'Project', required=True, domain=[('scrum','=',1)], help="If you have [?] in the project name, it means there are no analytic account linked to this project."),
'user_id': fields.many2one('res.users', 'Author'),
'sprint_id': fields.many2one('scrum.sprint', 'Sprint'),
'sprint_id': fields.many2one('project.scrum.sprint', 'Sprint'),
'sequence' : fields.integer('Sequence', help="Gives the sequence order when displaying a list of product backlog."),
'tasks_id': fields.one2many('project.task', 'product_backlog_id', 'Tasks Details'),
'state': fields.selection([('draft','Draft'),('open','Open'),('pending','Pending'),('done','Done'),('cancel','Cancelled')], 'State', required=True),
@@ -265,42 +267,42 @@ class scrum_product_backlog(osv.osv):
'user_id': lambda self, cr, uid, context: uid,
}
_order = "sequence"
scrum_product_backlog()
project_scrum_product_backlog()
class scrum_task(osv.osv):
class project_scrum_task(osv.osv):
_name = 'project.task'
_inherit = 'project.task'
def _get_task(self, cr, uid, ids, context={}):
result = {}
for line in self.pool.get('scrum.product.backlog').browse(cr, uid, ids, context=context):
for line in self.pool.get('project.scrum.product.backlog').browse(cr, uid, ids, context=context):
for task in line.tasks_id:
result[task.id] = True
return result.keys()
_columns = {
'product_backlog_id': fields.many2one('scrum.product.backlog', 'Product Backlog',help="Related product backlog that contains this task. Used in SCRUM methodology"),
'sprint_id': fields.related('product_backlog_id','sprint_id', type='many2one', relation='scrum.sprint', string='Sprint',
'product_backlog_id': fields.many2one('project.scrum.product.backlog', 'Product Backlog',help="Related product backlog that contains this task. Used in SCRUM methodology"),
'sprint_id': fields.related('product_backlog_id','sprint_id', type='many2one', relation='project.scrum.sprint', string='Sprint',
store={
'project.task': (lambda self, cr, uid, ids, c={}: ids, ['product_backlog_id'], 10),
'scrum.product.backlog': (_get_task, ['sprint_id'], 10)
'project.scrum.product.backlog': (_get_task, ['sprint_id'], 10)
}),
}
def onchange_backlog_id(self, cr, uid, backlog_id):
if not backlog_id:
return {}
project_id = self.pool.get('scrum.product.backlog').browse(cr, uid, backlog_id).project_id.id
project_id = self.pool.get('project.scrum.product.backlog').browse(cr, uid, backlog_id).project_id.id
return {'value': {'project_id': project_id}}
scrum_task()
project_scrum_task()
class scrum_meeting(osv.osv):
_name = 'scrum.meeting'
class project_scrum_meeting(osv.osv):
_name = 'project.scrum.meeting'
_description = 'Scrum Meeting'
_order = 'date desc'
_columns = {
'name' : fields.char('Meeting Name', size=64),
'date': fields.date('Meeting Date', required=True),
'sprint_id': fields.many2one('scrum.sprint', 'Sprint', required=True),
'sprint_id': fields.many2one('project.scrum.sprint', 'Sprint', required=True),
'project_id': fields.many2one('project.project', 'Project'),
'question_yesterday': fields.text('Tasks since yesterday'),
'question_today': fields.text('Tasks for today'),
@@ -357,5 +359,5 @@ class scrum_meeting(osv.osv):
return False
return True
scrum_meeting()
project_scrum_meeting()
@@ -13,9 +13,9 @@
<field model="res.users" name="product_owner_id" search="[('login','=','demo')]"/>
</record>
<!-- Resource: scrum.sprint -->
<!-- Resource: project_scrum.sprint -->
<record id="scrum_sprint_0" model="scrum.sprint">
<record id="scrum_sprint_0" model="project.scrum.sprint">
<field name="date_stop">2005-12-20</field>
<field name="name">Sprint for V3.2.0</field>
<field model="res.users" name="scrum_master_id" search="[('login','=','demo')]"/>
@@ -26,7 +26,7 @@
<!-- Resource: project.product.backlog -->
<record id="scrum_product_backlog_0" model="scrum.product.backlog">
<record id="scrum_product_backlog_0" model="project.scrum.product.backlog">
<field name="priority">3</field>
<field name="name">Automatic migration system</field>
<field name="expected_hours">6.0</field>
@@ -35,54 +35,54 @@
<field name="state">done</field>
<field name="project_id" ref="scrum_project_1"/>
</record>
<record id="scrum_product_backlog_1" model="scrum.product.backlog">
<record id="scrum_product_backlog_1" model="project.scrum.product.backlog">
<field name="priority">3</field>
<field name="name">New accounting module</field>
<field name="expected_hours">111.0</field>
<field name="note">The accounting module of Open ERP (financial accounting and management accounting) is being reshaped. New functionnalities will be added: intangible assets, a new way of presenting ledgers and bookings, new stock valuation calculation, and lots of predefined reports. </field>
<field name="sprint_id" ref="scrum_sprint_0"/>
<field name="state">open</field>
<field name="state">open</field>
<field name="project_id" ref="scrum_project_1"/>
</record>
<record id="scrum_product_backlog_2" model="scrum.product.backlog">
<record id="scrum_product_backlog_2" model="project.scrum.product.backlog">
<field name="priority">3</field>
<field name="name">Automated Plugin System to install/uninstall modules</field>
<field name="expected_hours">4.0</field>
<field name="note">We have to develop a plug-in system which will enable to install/remove modules. The basic version of Open ERP will include only the required minimum, and you will select the modules thanks to the plug-in manager. This allows you to limit your system to your real needs: quality management, localisations, project and service management, marketing campaigns, and so on... </field>
<field name="sprint_id" ref="scrum_sprint_0"/>
<field name="state">open</field>
<field name="state">open</field>
<field name="project_id" ref="scrum_project_1"/>
</record>
<record id="scrum_product_backlog_3" model="scrum.product.backlog">
<record id="scrum_product_backlog_3" model="project.scrum.product.backlog">
<field name="name">Review all terms</field>
<field name="expected_hours">8.0</field>
<field name="sprint_id" ref="scrum_sprint_0"/>
<field name="state">done</field>
<field name="state">done</field>
<field name="project_id" ref="scrum_project_1"/>
</record>
<record id="scrum_product_backlog_4" model="scrum.product.backlog">
<record id="scrum_product_backlog_4" model="project.scrum.product.backlog">
<field name="name">Bugfixes</field>
<field name="expected_hours">6.0</field>
<field name="sprint_id" ref="scrum_sprint_0"/>
<field name="state">open</field>
<field name="state">open</field>
<field name="project_id" ref="scrum_project_1"/>
</record>
<record id="scrum_product_backlog_5" model="scrum.product.backlog">
<record id="scrum_product_backlog_5" model="project.scrum.product.backlog">
<field name="name">Test for 3.2.0 Publishing</field>
<field name="expected_hours">5.0</field>
<field name="note">Test Open ERP to release stable 3.2.0 version. (may be 3.2.0-pre1 ?)</field>
<field name="sprint_id" ref="scrum_sprint_0"/>
<field name="project_id" ref="scrum_project_1"/>
</record>
<record id="scrum_product_backlog_6" model="scrum.product.backlog">
<record id="scrum_product_backlog_6" model="project.scrum.product.backlog">
<field name="name">Reshape the complete menu</field>
<field name="expected_hours">4.0</field>
<field name="note">Restructure the Open ERP menu to be more like others ERP.</field>
<field name="sprint_id" ref="scrum_sprint_0"/>
<field name="state">open</field>
<field name="state">open</field>
<field name="project_id" ref="scrum_project_1"/>
</record>
<record id="scrum_product_backlog_7" model="scrum.product.backlog">
<record id="scrum_product_backlog_7" model="project.scrum.product.backlog">
<field name="name">Editable Trees</field>
<field name="expected_hours">12.0</field>
<field name="note">Editable trees in list and one2many_list widgets.</field>
@@ -98,7 +98,7 @@
<field name="project_id" ref="scrum_project_1"/>
<field name="name">Review all English Terms</field>
<field name="state">done</field>
<field eval="time.strftime('%Y-%m-%d')" name="date_close"/>
<field eval="time.strftime('%Y-%m-%d')" name="date_close"/>
<field name="product_backlog_id" ref="scrum_product_backlog_3"/>
</record>
<record id="scrum_task_4" model="project.task">
@@ -107,7 +107,7 @@
<field name="project_id" ref="scrum_project_1"/>
<field name="name">Review all french terms</field>
<field name="state">done</field>
<field eval="time.strftime('%Y-%m-%d')" name="date_close"/>
<field eval="time.strftime('%Y-%m-%d')" name="date_close"/>
<field name="product_backlog_id" ref="scrum_product_backlog_3"/>
</record>
<record id="scrum_task_5" model="project.task">
@@ -116,7 +116,7 @@
<field name="project_id" ref="scrum_project_1"/>
<field name="name">Analytic Accounting features</field>
<field name="state">done</field>
<field eval="time.strftime('%Y-%m-%d')" name="date_close"/>
<field eval="time.strftime('%Y-%m-%d')" name="date_close"/>
<field name="product_backlog_id" ref="scrum_product_backlog_1"/>
</record>
<record id="scrum_task_6" model="project.task">
@@ -149,7 +149,7 @@
<field name="description">Cash book, general ledger, accounts list, aged trial balance</field>
<field name="name">Accounting Report General</field>
<field name="state">open</field>
<field eval="[(6,0,[ref('scrum.scrum_task_8')])]" name="child_ids"/>
<field eval="[(6,0,[ref('scrum_task_8')])]" name="child_ids"/>
<field name="product_backlog_id" ref="scrum_product_backlog_1"/>
</record>
<record id="scrum_task_10" model="project.task">
@@ -164,7 +164,7 @@
<field model="res.users" name="user_id" search="[('login','=','demo')]"/>
<field name="project_id" ref="scrum_project_1"/>
<field name="name">Accounting Report Analytic</field>
<field name="state">open</field>
<field name="state">open</field>
<field name="product_backlog_id" ref="scrum_product_backlog_1"/>
</record>
<record id="scrum_task_12" model="project.task">
@@ -173,7 +173,7 @@
<field name="project_id" ref="scrum_project_1"/>
<field name="name">Bugfix - memory leak</field>
<field name="state">done</field>
<field eval="time.strftime('%Y-%m-%d')" name="date_close"/>
<field eval="time.strftime('%Y-%m-%d')" name="date_close"/>
<field name="product_backlog_id" ref="scrum_product_backlog_4"/>
</record>
<record id="scrum_task_13" model="project.task">
@@ -181,8 +181,8 @@
<field model="res.users" name="user_id" search="[('login','=','demo')]"/>
<field name="project_id" ref="scrum_project_1"/>
<field name="name">Bugfix - Translations</field>
<field name="state">open</field>
<field eval="[(6,0,[ref('scrum.scrum_task_12')])]" name="child_ids"/>
<field name="state">open</field>
<field eval="[(6,0,[ref('scrum_task_12')])]" name="child_ids"/>
<field name="product_backlog_id" ref="scrum_product_backlog_4"/>
</record>
<record id="scrum_task_14" model="project.task">
@@ -205,7 +205,7 @@
<field model="res.users" name="user_id" search="[('login','=','demo')]"/>
<field name="project_id" ref="scrum_project_1"/>
<field name="name">Test 3.2.0 before releasing</field>
<field name="state">open</field>
<field name="state">open</field>
<field name="product_backlog_id" ref="scrum_product_backlog_5"/>
</record>
<record id="scrum_task_17" model="project.task">
@@ -214,10 +214,10 @@
<field name="project_id" ref="scrum_project_1"/>
<field name="description">default values, onchange, required, add on top or bottom and shortcuts (Ctrl S, Ctrl X, ...)</field>
<field name="name">Editable trees</field>
<field name="state">open</field>
<field name="state">open</field>
<field name="product_backlog_id" ref="scrum_product_backlog_7"/>
</record>
<record id="scrum_meeting_0" model="scrum.meeting">
<record id="scrum_meeting_0" model="project.scrum.meeting">
<field name="question_yesterday">
Admin: Worked on the Automatic migration system
Demo: Worked on the Test 3.2.0 before releasing
@@ -228,7 +228,7 @@ Demo: Work on Editable trees</field>
<field name="question_blocks">
Demo :Bugfix - memory leak
</field>
<field name="sprint_id" ref="scrum.scrum_sprint_0"/>
<field name="sprint_id" ref="scrum_sprint_0"/>
<field eval="time.strftime('%Y-%m-%d')" name="date"/>
</record>
<record id="project_task_work_scrum_task1" model="project.task.work">
@@ -247,7 +247,7 @@ Demo :Bugfix - memory leak
<field eval="5.0" name="hours"/>
<field eval="time.strftime('%Y-%m-%d')" name="date"/>
</record>
<record id="project_task_work_scrum_task2" model="project.task.work">
<field name="user_id" ref="base.user_root"/>
<field name="name">Create a script for migration and testing</field>
@@ -264,6 +264,6 @@ Demo :Bugfix - memory leak
<field eval="10.0" name="hours"/>
<field eval="time.strftime('%Y-%m-%d')" name="date"/>
</record>
</data>
</openerp>
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<report auto="False" id="report_scrum_sprint_burndown_chart" model="scrum.sprint" name="scrum.sprint.burndown" string="Burndown Chart"/>
<report auto="False" id="report_scrum_sprint_burndown_chart" model="project.scrum.sprint" name="scrum.sprint.burndown" string="Burndown Chart"/>
</data>
</openerp>
@@ -29,8 +29,8 @@
-->
<record id="view_scrum_product_backlog_tree" model="ir.ui.view">
<field name="name">scrum.product.backlog.tree</field>
<field name="model">scrum.product.backlog</field>
<field name="name">project.scrum.product.backlog.tree</field>
<field name="model">project.scrum.product.backlog</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<tree colors="grey:state in ('cancel','done');blue:state in ('pending')" string="Product Backlog">
@@ -52,8 +52,8 @@
</record>
<record id="view_scrum_product_backlog_form" model="ir.ui.view">
<field name="name">scrum.product.backlog.form</field>
<field name="model">scrum.product.backlog</field>
<field name="name">project.scrum.product.backlog.form</field>
<field name="model">project.scrum.product.backlog</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Product backlog">
@@ -124,8 +124,8 @@
</record>
<record model="ir.ui.view" id="view_scrum_product_backlog_search">
<field name="name">scrum.product.backlog.search</field>
<field name="model">scrum.product.backlog</field>
<field name="name">project.scrum.product.backlog.search</field>
<field name="model">project.scrum.product.backlog</field>
<field name="type">search</field>
<field name="arch" type="xml">
<search string="Product Backlogs">
@@ -177,7 +177,7 @@
<record id="action_product_backlog_form" model="ir.actions.act_window">
<field name="name">Product Backlogs</field>
<field name="res_model">scrum.product.backlog</field>
<field name="res_model">project.scrum.product.backlog</field>
<field name="view_type">form</field>
<field name="context">{'search_default_current': 1}</field>
<field name="search_view_id" ref="view_scrum_product_backlog_search"/>
@@ -193,8 +193,8 @@
-->
<record id="view_scrum_sprint_tree" model="ir.ui.view">
<field name="name">scrum.sprint.tree</field>
<field name="model">scrum.sprint</field>
<field name="name">project.scrum.sprint.tree</field>
<field name="model">project.scrum.sprint</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<tree colors="blue:state in ('pending');grey:state in ('cancel','done')" string="Scrum Sprint">
@@ -215,8 +215,8 @@
</field>
</record>
<record id="view_scrum_sprint_form" model="ir.ui.view">
<field name="name">scrum.sprint.form</field>
<field name="model">scrum.sprint</field>
<field name="name">project.scrum.sprint.form</field>
<field name="model">project.scrum.sprint</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Scrum Sprint">
@@ -265,8 +265,8 @@
</record>
<record model="ir.ui.view" id="view_scrum_sprint_search">
<field name="name">scrum.sprint.search</field>
<field name="model">scrum.sprint</field>
<field name="name">project.scrum.sprint.search</field>
<field name="model">project.scrum.sprint</field>
<field name="type">search</field>
<field name="arch" type="xml">
<search string="Sprints">
@@ -296,7 +296,7 @@
<record id="action_sprint_all_tree" model="ir.actions.act_window">
<field name="name">Sprints</field>
<field name="res_model">scrum.sprint</field>
<field name="res_model">project.scrum.sprint</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field name="view_id" ref="view_scrum_sprint_tree"/>
@@ -312,8 +312,8 @@
-->
<record id="view_scrum_meeting_tree" model="ir.ui.view">
<field name="name">scrum.meeting.tree</field>
<field name="model">scrum.meeting</field>
<field name="name">project.scrum.meeting.tree</field>
<field name="model">project.scrum.meeting</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<tree string="Scrum Sprint">
@@ -324,7 +324,7 @@
</record>
<record id="view_scrum_meeting_form" model="ir.ui.view">
<field name="name">Scrum Meeting</field>
<field name="model">scrum.meeting</field>
<field name="model">project.scrum.meeting</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Scrum Sprint">
@@ -358,8 +358,8 @@
</record>
<record id="view_scrum_meeting_search" model="ir.ui.view">
<field name="name">scrum.meeting.search</field>
<field name="model">scrum.meeting</field>
<field name="name">project_scrum.meeting.search</field>
<field name="model">project.scrum.meeting</field>
<field name="type">search</field>
<field name="arch" type="xml">
<search string="Scrum Sprint">
@@ -383,7 +383,7 @@
<record id="action_meeting_form" model="ir.actions.act_window">
<field name="name">Scrum Meetings</field>
<field name="res_model">scrum.meeting</field>
<field name="res_model">project.scrum.meeting</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field name="context">{'search_default_scrum_daily':1}</field>
@@ -405,14 +405,14 @@
</record>
<record id="ir_scrum_sprint_open_task" model="ir.values">
<field eval=" 'tree_but_open'" name="key2"/>
<field eval="'scrum.sprint'" name="model"/>
<field eval="'project.scrum.sprint'" name="model"/>
<field name="name">View sprint tasks</field>
<field eval="'ir.actions.act_window,'+str(action_sprint_task_open)" name="value"/>
<field eval="True" name="object"/>
</record>
<record id="action_sprint_backlog_open" model="ir.actions.act_window">
<field name="res_model">scrum.product.backlog</field>
<field name="res_model">project.scrum.product.backlog</field>
<field name="name">View sprint backlog</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
@@ -420,7 +420,7 @@
</record>
<record id="ir_scrum_sprint_open_sprint" model="ir.values">
<field eval=" 'tree_but_open'" name="key2"/>
<field eval="'scrum.sprint'" name="model"/>
<field eval="'project.scrum.sprint'" name="model"/>
<field name="name">View sprint backlog</field>
<field eval="'ir.actions.act_window,'+str(action_sprint_backlog_open)" name="value"/>
<field eval="True" name="object"/>
@@ -431,7 +431,7 @@
-->
<record id="dblc_proj" model="ir.actions.act_window">
<field name="res_model">scrum.product.backlog</field>
<field name="res_model">project.scrum.product.backlog</field>
<field name="name">View project's backlog</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
@@ -439,7 +439,7 @@
</record>
<record id="ir_scrum_project_backlog" model="ir.values">
<field eval=" 'tree_but_open'" name="key2"/>
<field eval="'scrum.project'" name="model"/>
<field eval="'project.scrum.project'" name="model"/>
<field name="name">View project's backlog</field>
<field eval="'ir.actions.act_window,'+str(dblc_proj)" name="value"/>
<field eval="True" name="object"/>
@@ -453,7 +453,7 @@
</record>
<record id="ir_scrum_project_task" model="ir.values">
<field eval=" 'tree_but_open'" name="key2"/>
<field eval="'scrum.project'" name="model"/>
<field eval="'project.scrum.project'" name="model"/>
<field name="name">View project's tasks</field>
<field eval="'ir.actions.act_window,'+str(dblc_proj2)" name="value"/>
<field eval="True" name="object"/>
@@ -509,6 +509,7 @@
<field name="project_id" position="after">
<field name="sprint_id" context="{'sprint_invisible':False}">
<filter icon="terp-check" string="Current" context="{'sprint_invisible':False}" domain="[('sprint_id.state','in',('draft','open'))]" help="Current Sprints"/>
<filter icon="terp-check" string="Current" context="{'sprint_invisible':False}" domain="[]" help="View Sprints"/>
</field>
</field>
</field>
@@ -532,8 +533,8 @@
domain="[('sprint_id', '=', active_id)]"
id="act_scrum_sprint_2_product_backlog"
name="Backlogs"
res_model="scrum.product.backlog"
src_model="scrum.sprint"
res_model="project.scrum.product.backlog"
src_model="project.scrum.sprint"
view_mode="tree,form"
view_type="form"/>
@@ -542,7 +543,7 @@
id="act_scrum_sprint_2_project_task"
name="Tasks"
res_model="project.task"
src_model="scrum.sprint"
src_model="project.scrum.sprint"
view_mode="tree,form"
view_type="form"/>
@@ -48,9 +48,9 @@ class report_tasks(report_int):
canv = canvas.init(fname=io, format='pdf')
canv.set_author("Open ERP")
cr.execute('select id,date_start,date_stop from scrum_sprint where id=%s', (datas['id'],))
cr.execute('select id,date_start,date_stop from project_scrum_sprint where id=%s', (datas['id'],))
for (id,date_start,date_stop) in cr.fetchall():
cr.execute('select id from project_task where product_backlog_id in(select id from scrum_product_backlog where sprint_id=%s)', (id,))
cr.execute('select id from project_task where product_backlog_id in(select id from project_scrum_product_backlog where sprint_id=%s)', (id,))
ids = map(lambda x: x[0], cr.fetchall())
datas = _burndown.compute_burndown(cr, uid, ids, date_start, date_stop)
@@ -0,0 +1,9 @@
"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
"access_scrum_sprint","project_scrum.sprint","model_project_scrum_sprint","project.group_project_user",1,0,0,0
"access_scrum_product_backlog","project_scrum.product.backlog","model_project_scrum_product_backlog","project.group_project_user",1,1,1,1
"access_scrum_meeting","project_scrum.meeting","model_project_scrum_meeting","project.group_project_user",1,0,0,0
"access_scrum_meeting_manager","project_scrum.meeting.manager","model_project_scrum_meeting","project.group_project_manager",1,1,1,1
"access_scrum_sprint_manager","project_scrum.sprint.manager","model_project_scrum_sprint","project.group_project_manager",1,1,1,1
"access_scrum_product_backlog_manager","project_scrum.product.backlog manager","model_project_scrum_product_backlog","project.group_project_manager",1,1,1,1
"access_product_uom_project_manager","product.uom project manager","product.model_product_uom","project.group_project_manager",1,1,1,1
"access_product_uom_project_user","product.uom project user","product.model_product_uom","project.group_project_user",1,0,0,0
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
2 access_scrum_sprint project_scrum.sprint model_project_scrum_sprint project.group_project_user 1 0 0 0
3 access_scrum_product_backlog project_scrum.product.backlog model_project_scrum_product_backlog project.group_project_user 1 1 1 1
4 access_scrum_meeting project_scrum.meeting model_project_scrum_meeting project.group_project_user 1 0 0 0
5 access_scrum_meeting_manager project_scrum.meeting.manager model_project_scrum_meeting project.group_project_manager 1 1 1 1
6 access_scrum_sprint_manager project_scrum.sprint.manager model_project_scrum_sprint project.group_project_manager 1 1 1 1
7 access_scrum_product_backlog_manager project_scrum.product.backlog manager model_project_scrum_product_backlog project.group_project_manager 1 1 1 1
8 access_product_uom_project_manager product.uom project manager product.model_product_uom project.group_project_manager 1 1 1 1
9 access_product_uom_project_user product.uom project user product.model_product_uom project.group_project_user 1 0 0 0
@@ -19,9 +19,9 @@
#
##############################################################################
import scrum_backlog_create_task
import scrum_backlog_sprint
import scrum_backlog_merger
import project_scrum_backlog_create_task
import project_scrum_backlog_sprint
import project_scrum_backlog_merger
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
@@ -21,7 +21,7 @@
from osv import osv, fields
class backlog_create_task(osv.osv_memory):
_name = 'backlog.create.task'
_name = 'project.scrum.backlog.create.task'
_description = 'Create Tasks from Product Backlogs'
_columns = {
'user_id': fields.many2one('res.users', 'Assign To')
@@ -30,7 +30,7 @@ class backlog_create_task(osv.osv_memory):
def do_create(self, cr, uid, ids, context=None):
mod_obj = self.pool.get('ir.model.data')
task = self.pool.get('project.task')
backlog_id = self.pool.get('scrum.product.backlog')
backlog_id = self.pool.get('project.scrum.product.backlog')
ids_task = []
if context is None:
@@ -3,8 +3,8 @@
<data>
<record id="view_scrum_backlog_to_task" model="ir.ui.view">
<field name="name">backlog.create.task.form</field>
<field name="model">backlog.create.task</field>
<field name="name">project.scrum.backlog.create.task.form</field>
<field name="model">project.scrum.backlog.create.task</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Create Tasks">
@@ -23,21 +23,21 @@
<record id="action_scrum_backlog_to_task" model="ir.actions.act_window">
<field name="name">Create Tasks</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">backlog.create.task</field>
<field name="res_model">project.scrum.backlog.create.task</field>
<field name="view_type">form</field>
<field name="view_mode">form</field>
<field name="target">new</field>
</record>
<record model="ir.values" id="scrum_backlog_to_task_values">
<field name="model_id" ref="model_scrum_product_backlog" />
<field name="model_id" ref="model_project_scrum_product_backlog" />
<field name="object" eval="1" />
<field name="name">Create Tasks</field>
<field name="key2">client_action_multi</field>
<field name="value" eval="'ir.actions.act_window,' + str(ref('action_scrum_backlog_to_task'))" />
<field name="key">action</field>
<field name="model">scrum.product.backlog</field>
<field name="model">project.scrum.product.backlog</field>
</record>
</data>
</openerp>
</openerp>
@@ -21,15 +21,15 @@
from osv import osv, fields
from tools.translate import _
class scrum_backlog_merge(osv.osv_memory):
_name = 'scrum.backlog.merge'
class project_scrum_backlog_merge(osv.osv_memory):
_name = 'project.scrum.backlog.merge'
_description = 'Merge Product Backlogs'
_columns = {
'project_id': fields.many2one('project.project', 'Project', help="Select project for the new product backlog"),
}
def check_backlogs(self, cr, uid, ids, context=None):
backlog_obj = self.pool.get('scrum.product.backlog')
backlog_obj = self.pool.get('project.scrum.product.backlog')
mod_obj = self.pool.get('ir.model.data')
p_list = []
if context is None:
@@ -50,7 +50,7 @@ class scrum_backlog_merge(osv.osv_memory):
'context': context,
'view_type': 'form',
'view_mode': 'form',
'res_model': 'scrum.backlog.merge',
'res_model': 'project.scrum.backlog.merge',
'views': [(resource_id,'form')],
'type': 'ir.actions.act_window',
'target': 'new',
@@ -58,7 +58,7 @@ class scrum_backlog_merge(osv.osv_memory):
return self.do_merge(cr, uid, ids, context=context)
def do_merge(self, cr, uid, ids, context=None):
backlog_obj = self.pool.get('scrum.product.backlog')
backlog_obj = self.pool.get('project.scrum.product.backlog')
task_obj = self.pool.get('project.task')
task_lines = []
new_exp_hour = []
@@ -99,5 +99,5 @@ class scrum_backlog_merge(osv.osv_memory):
backlog_obj.unlink(cr, uid, context['active_ids'], context=context)
return {}
scrum_backlog_merge()
project_scrum_backlog_merge()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
@@ -3,7 +3,7 @@
<data>
<record id="scrum_backlog_merge_view" model="ir.ui.view">
<field name="name">Merge Backlogs</field>
<field name="model">scrum.backlog.merge</field>
<field name="model">project.scrum.backlog.merge</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Merge Backlogs">
@@ -19,7 +19,7 @@
<record id="action_scrum_backlog_merge" model="ir.actions.act_window">
<field name="name">Merge Backlogs</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">scrum.backlog.merge</field>
<field name="res_model">project.scrum.backlog.merge</field>
<field name="view_type">form</field>
<field name="view_mode">form</field>
<field name="target">new</field>
@@ -27,18 +27,18 @@
</record>
<record model="ir.values" id="scrum_backlog_merge_values">
<field name="model_id" ref="model_scrum_product_backlog" />
<field name="model_id" ref="model_project_scrum_product_backlog" />
<field name="object" eval="1" />
<field name="name">Merge Backlogs</field>
<field name="key2">client_action_multi</field>
<field name="value" eval="'ir.actions.act_window,' + str(ref('action_scrum_backlog_merge'))" />
<field name="key">action</field>
<field name="model">scrum.product.backlog</field>
<field name="model">project.scrum.product.backlog</field>
</record>
<record id="scrum_merge_project_id_view" model="ir.ui.view">
<field name="name">Merge Backlogs</field>
<field name="model">scrum.backlog.merge</field>
<field name="model">project.scrum.backlog.merge</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Merge Backlogs">
@@ -22,10 +22,10 @@ from osv import osv, fields
from tools.translate import _
class backlog_sprint_assign(osv.osv_memory):
_name = 'backlog.assign.sprint'
_name = 'project.scrum.backlog.assign.sprint'
_description = 'Assign sprint to backlogs'
_columns = {
'sprint_id': fields.many2one('scrum.sprint', 'Sprint Name', required=True),
'sprint_id': fields.many2one('project.scrum.sprint', 'Sprint Name', required=True),
'state_open': fields.boolean('Set Open', help="Change the state of product backlogs to open if its in draft state"),
'convert_to_task': fields.boolean('Convert To Task', help="Create Task for Product Backlog")
}
@@ -35,8 +35,8 @@ class backlog_sprint_assign(osv.osv_memory):
}
def assign_sprint(self, cr, uid, ids, context=None):
backlog_obj = self.pool.get('scrum.product.backlog')
sprint_obj = self.pool.get('scrum.sprint')
backlog_obj = self.pool.get('project.scrum.product.backlog')
sprint_obj = self.pool.get('project.scrum.sprint')
task = self.pool.get('project.task')
backlog_ids = []
if context is None:
@@ -3,8 +3,8 @@
<data>
<record id="view_scrum_backlog_to_sprint" model="ir.ui.view">
<field name="name">backlog.assign.sprint.form</field>
<field name="model">backlog.assign.sprint</field>
<field name="name">project.scrum.backlog.assign.sprint.form</field>
<field name="model">project.scrum.backlog.assign.sprint</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Assign Sprint">
@@ -30,20 +30,20 @@
<record id="action_scrum_backlog_to_sprint" model="ir.actions.act_window">
<field name="name">Assign Sprint</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">backlog.assign.sprint</field>
<field name="res_model">project.scrum.backlog.assign.sprint</field>
<field name="view_type">form</field>
<field name="view_mode">form</field>
<field name="target">new</field>
</record>
<record model="ir.values" id="scrum_backlog_to_sprint_values">
<field name="model_id" ref="model_scrum_product_backlog" />
<field name="model_id" ref="model_project_scrum_product_backlog" />
<field name="object" eval="1" />
<field name="name">Assign Sprint</field>
<field name="key2">client_action_multi</field>
<field name="value" eval="'ir.actions.act_window,' + str(ref('action_scrum_backlog_to_sprint'))" />
<field name="key">action</field>
<field name="model">scrum.product.backlog</field>
<field name="model">project.scrum.product.backlog</field>
</record>
</data>
@@ -1,9 +0,0 @@
"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
"access_scrum_sprint","scrum.sprint","model_scrum_sprint","project.group_project_user",1,0,0,0
"access_scrum_product_backlog","scrum.product.backlog","model_scrum_product_backlog","project.group_project_user",1,1,1,1
"access_scrum_meeting","scrum.meeting","model_scrum_meeting","project.group_project_user",1,0,0,0
"access_scrum_meeting_manager","scrum.meeting.manager","model_scrum_meeting","project.group_project_manager",1,1,1,1
"access_scrum_sprint_manager","scrum.sprint.manager","model_scrum_sprint","project.group_project_manager",1,1,1,1
"access_scrum_product_backlog_manager","scrum.product.backlog manager","model_scrum_product_backlog","project.group_project_manager",1,1,1,1
"access_product_uom_project_manager","product.uom project manager","product.model_product_uom","project.group_project_manager",1,1,1,1
"access_product_uom_project_user","product.uom project user","product.model_product_uom","project.group_project_user",1,0,0,0
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
2 access_scrum_sprint scrum.sprint model_scrum_sprint project.group_project_user 1 0 0 0
3 access_scrum_product_backlog scrum.product.backlog model_scrum_product_backlog project.group_project_user 1 1 1 1
4 access_scrum_meeting scrum.meeting model_scrum_meeting project.group_project_user 1 0 0 0
5 access_scrum_meeting_manager scrum.meeting.manager model_scrum_meeting project.group_project_manager 1 1 1 1
6 access_scrum_sprint_manager scrum.sprint.manager model_scrum_sprint project.group_project_manager 1 1 1 1
7 access_scrum_product_backlog_manager scrum.product.backlog manager model_scrum_product_backlog project.group_project_manager 1 1 1 1
8 access_product_uom_project_manager product.uom project manager product.model_product_uom project.group_project_manager 1 1 1 1
9 access_product_uom_project_user product.uom project user product.model_product_uom project.group_project_user 1 0 0 0