diff --git a/addons/account/account_menuitem.xml b/addons/account/account_menuitem.xml
index dd577f98458..51c26706446 100644
--- a/addons/account/account_menuitem.xml
+++ b/addons/account/account_menuitem.xml
@@ -11,7 +11,7 @@
-
+
diff --git a/addons/account/account_view.xml b/addons/account/account_view.xml
index 206e0b4f6ba..9e1cb3bb7e2 100644
--- a/addons/account/account_view.xml
+++ b/addons/account/account_view.xml
@@ -94,15 +94,15 @@
form
@@ -122,32 +122,11 @@
-
- account.period.search
- account.period
- search
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Periods
account.period
form
- tree,form,search
+ tree,form
diff --git a/addons/account/wizard/account_balance_report_view.xml b/addons/account/wizard/account_balance_report_view.xml
index f50cce039cc..77c615611d3 100644
--- a/addons/account/wizard/account_balance_report_view.xml
+++ b/addons/account/wizard/account_balance_report_view.xml
@@ -8,6 +8,7 @@
form
diff --git a/addons/account/wizard/account_central_journal_view.xml b/addons/account/wizard/account_central_journal_view.xml
index b833af4a9dd..6a9526c415e 100644
--- a/addons/account/wizard/account_central_journal_view.xml
+++ b/addons/account/wizard/account_central_journal_view.xml
@@ -8,14 +8,19 @@
form
diff --git a/addons/account/wizard/account_compare_account_balance_report_view.xml b/addons/account/wizard/account_compare_account_balance_report_view.xml
index 2467928a584..31978dc3e98 100644
--- a/addons/account/wizard/account_compare_account_balance_report_view.xml
+++ b/addons/account/wizard/account_compare_account_balance_report_view.xml
@@ -31,7 +31,8 @@
-
+
+
diff --git a/addons/account/wizard/account_general_journal_view.xml b/addons/account/wizard/account_general_journal_view.xml
index fc39300d390..a3a54843396 100644
--- a/addons/account/wizard/account_general_journal_view.xml
+++ b/addons/account/wizard/account_general_journal_view.xml
@@ -8,14 +8,19 @@
form
diff --git a/addons/account/wizard/account_general_ledger_report_view.xml b/addons/account/wizard/account_general_ledger_report_view.xml
index a2ff3accf5f..b06c24d501d 100644
--- a/addons/account/wizard/account_general_ledger_report_view.xml
+++ b/addons/account/wizard/account_general_ledger_report_view.xml
@@ -8,6 +8,7 @@
form
diff --git a/addons/account/wizard/account_partner_balance_report_view.xml b/addons/account/wizard/account_partner_balance_report_view.xml
index 35a2556982d..f5a8043673f 100644
--- a/addons/account/wizard/account_partner_balance_report_view.xml
+++ b/addons/account/wizard/account_partner_balance_report_view.xml
@@ -8,6 +8,7 @@
form
diff --git a/addons/account/wizard/account_print_journal_view.xml b/addons/account/wizard/account_print_journal_view.xml
index 69a5b5dee39..3c08fa5f697 100644
--- a/addons/account/wizard/account_print_journal_view.xml
+++ b/addons/account/wizard/account_print_journal_view.xml
@@ -1,6 +1,28 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Account Print Journal
@@ -8,21 +30,26 @@
form
-
+
Account Print Journal
ir.actions.act_window
diff --git a/addons/account/wizard/account_third_party_ledger.xml b/addons/account/wizard/account_third_party_ledger.xml
index e731086af2c..9cb0463ea48 100644
--- a/addons/account/wizard/account_third_party_ledger.xml
+++ b/addons/account/wizard/account_third_party_ledger.xml
@@ -8,6 +8,7 @@
form
diff --git a/addons/account/wizard/account_vat_view.xml b/addons/account/wizard/account_vat_view.xml
index fa53ac97a17..8978dc50ee3 100644
--- a/addons/account/wizard/account_vat_view.xml
+++ b/addons/account/wizard/account_vat_view.xml
@@ -8,14 +8,19 @@
form
diff --git a/addons/sale/test/prepaid_sale_order.yml b/addons/sale/test/prepaid_sale_order.yml
index cd33b1bc73e..03f5ddf8aae 100644
--- a/addons/sale/test/prepaid_sale_order.yml
+++ b/addons/sale/test/prepaid_sale_order.yml
@@ -2,41 +2,41 @@
In order to test the sale module in the Open-ERP, I need to configure details regarding product & customer.
-
I am going to sell my Mobile products to the customer with name Cleartrail
--
+-
I create View Account Type.
--
+-
!record {model: account.account.type, id: account_account_type_view0}:
close_method: none
code: View
name: View
sign: 1
--
+-
I create Income Account Type.
--
+-
!record {model: account.account.type, id: account_account_type_income0}:
close_method: unreconciled
code: Income
name: Income
sign: 1
--
+-
I create Expense Account Type.
--
+-
!record {model: account.account.type, id: account_account_type_expense0}:
close_method: unreconciled
code: Expense
name: Expense
sign: 1
--
+-
I create Cash Account Type.
--
+-
!record {model: account.account.type, id: account_account_type_cash0}:
close_method: balance
code: Cash
name: Cash
sign: 1
--
+-
I create Minimal Chart Account.
--
+-
!record {model: account.account, id: account_account_minimalchart0}:
code: '0'
company_id: base.main_company
@@ -46,9 +46,9 @@
parent_right: 12
type: view
user_type: account_account_type_view0
--
+-
I create Payable Account.
--
+-
!record {model: account.account, id: account_account_payable1}:
code: AP
company_id: base.main_company
@@ -60,12 +60,11 @@
reconcile: true
type: payable
user_type: account_account_type_expense0
--
+-
I create Receivable Account.
--
+-
!record {model: account.account, id: account_account_receivable0}:
code: AR
- company_id: base.main_company
currency_mode: current
name: Receivable
parent_id: account_account_minimalchart0
@@ -74,9 +73,9 @@
reconcile: true
type: receivable
user_type: account_account_type_income0
--
+-
I create Cash Account.
--
+-
!record {model: account.account, id: account_account_cash0}:
code: C
company_id: base.main_company
@@ -87,9 +86,9 @@
parent_right: 7
type: other
user_type: account_account_type_cash0
--
+-
I create Purchases Account.
--
+-
!record {model: account.account, id: account_account_purchases0}:
code: P
company_id: base.main_company
@@ -100,9 +99,9 @@
parent_right: 9
type: other
user_type: account_account_type_expense0
--
+-
I create Sales Account.
--
+-
!record {model: account.account, id: account_account_sales0}:
code: S
company_id: base.main_company
@@ -113,9 +112,9 @@
parent_right: 11
type: other
user_type: account_account_type_income0
--
+-
I create Purchase Journal.
--
+-
!record {model: account.journal, id: account_journal_purchasejournal0}:
code: PUJ
company_id: base.main_company
@@ -125,9 +124,9 @@
sequence_id: account.sequence_purchase_journal
type: purchase
view_id: account.account_journal_view
--
+-
I create Sale Journal.
--
+-
!record {model: account.journal, id: account_journal_salejournal0}:
code: SAJ
company_id: base.main_company
@@ -137,84 +136,83 @@
sequence_id: account.sequence_sale_journal
type: sale
view_id: account.account_journal_view
--
+-
I create Bank Journal.
--
+-
!record {model: account.journal, id: account_journal_bankjournal0}:
code: BNK
- company_id: base.main_company
default_credit_account_id: account_account_cash0
default_debit_account_id: account_account_cash0
name: Bank Journal
sequence_id: account.sequence_journal
type: cash
view_id: account.account_journal_bank_view
--
+-
I create ir.property for account payable.
--
+-
!record {model: ir.property, id: ir_property_propertyaccountexpensecateg0}:
company_id: base.main_company
fields_id: account.field_res_partner_property_account_payable
name: property_account_expense_categ
value_reference: account.account,5
--
+-
I create ir.property for account receivable.
--
+-
!record {model: ir.property, id: ir_property_propertyaccountincomecateg0}:
company_id: base.main_company
fields_id: account.field_res_partner_property_account_receivable
name: property_account_income_categ
value_reference: account.account,6
--
+-
I create Partner category Customers.
--
+-
!record {model: res.partner.category, id: res_partner_category_customers0}:
name: Customers
-
I create Cleartrail Customer.
--
+-
!record {model: res.partner, id: res_partner_cleartrail0}:
category_id:
- res_partner_category_customers0
name: Cleartrail
--
+-
I create contact address for Cleartrail.
--
+-
!record {model: res.partner.address, id: res_partner_address_1}:
partner_id: res_partner_cleartrail0
street: onam plaza, 14 B palasia A B Road
type: contact
--
+-
I create invoice address for Cleartrail.
--
+-
!record {model: res.partner.address, id: res_partner_address_2}:
partner_id: res_partner_cleartrail0
street: sarda house 24 B palasia, A B Road
type: invoice
--
+-
I create delivery address for Cleartrail.
--
+-
!record {model: res.partner.address, id: res_partner_address_3}:
partner_id: res_partner_cleartrail0
street: sangam house 15 B palasia, A B Road
type: delivery
-
Customer Cleartrail has specific instrument requirement regarding the stockable products.
--
+-
I define product category Mobile Products Sellable.
--
+-
!record {model: product.category, id: product_category_allproductssellable0}:
name: Mobile Products Sellable
-
-
--
- I define product category Mobile Services.
--
+
+
+-
+ I define product category Mobile Services.
+-
!record {model: product.category, id: product_category_services0}:
name: Mobile Services
--
+-
I define LG Viewty Smart product template.
--
+-
!record {model: product.template, id: product_template_lgviewtysmart0}:
categ_id: product_category_allproductssellable0
cost_method: standard
@@ -227,9 +225,9 @@
type: product
uom_id: product.product_uom_unit
uom_po_id: product.product_uom_unit
--
+-
I define LG Viewty Smart product.
--
+-
!record {model: product.product, id: product_product_lgviewtysmart0}:
categ_id: product_category_allproductssellable0
cost_method: standard
@@ -249,7 +247,7 @@
uom_po_id: product.product_uom_unit
-
I create a Sale Order for LG Viewty Smart for qty 500 having order_policy prepaid.
--
+-
!record {model: sale.order, id: sale_order_so1}:
date_order: '2010-05-03'
invoice_quantity: order
@@ -273,11 +271,11 @@
picking_policy: direct
pricelist_id: product.list0
shop_id: sale.shop
-
-
--
+
+
+-
I confirm the sale order.
--
+-
!workflow {model: sale.order, action: order_confirm, ref: sale_order_so1}
-
I will verify whether the invoice has been generated for SO since Shipping policy is 'Payment Before Delivery'
@@ -285,67 +283,67 @@
!python {model: sale.order}: |
so = self.browse(cr, uid, ref("sale_order_so1"))
assert so.invoice_ids, "Invoices has not been generated for sale_order_so1"
--
+-
I open the Invoice for the SO.
--
+-
!python {model: account.invoice}: |
sale_order_obj = self.pool.get('sale.order')
so = sale_order_obj.browse(cr, uid, ref("sale_order_so1"))
import netsvc
- wf_service = netsvc.LocalService("workflow")
+ wf_service = netsvc.LocalService("workflow")
invoice_ids = so.invoice_ids
for invoice in invoice_ids:
- wf_service.trg_validate(uid, 'account.invoice',invoice.id,'invoice_open', cr)
+ wf_service.trg_validate(uid, 'account.invoice',invoice.id,'invoice_open', cr)
-
Creating a account invoice pay entry.
--
+-
!record {model: account.invoice.pay, id: account_invoice_pay_tst1}:
amount: 85000.0
date: '2010-05-10'
journal_id: sale.account_journal_bankjournal0
name: tst
period_id: account.period_5
--
+-
I pay the invoice.
--
+-
!python {model: account.invoice.pay}: |
sale_order_obj = self.pool.get('sale.order')
- so = sale_order_obj.browse(cr, uid, ref("sale_order_so1"))
+ so = sale_order_obj.browse(cr, uid, ref("sale_order_so1"))
self.wo_check(cr, uid, [ref("account_invoice_pay_tst1")], {"lang": "en_US", "tz":
False, "active_model": 'account.invoice', "active_ids": [so.invoice_ids[0].id], "type":
"out_invoice", "active_id": so.invoice_ids[0].id, })
-
-
--
+
+
+-
Creating an account invoice pay writeoff entry.
--
+-
!record {model: account.invoice.pay.writeoff, id: account_invoice_pay_writeoff_0}:
analytic_id: account.analytic_customers
comment: Write-Off
writeoff_acc_id: account.a_sale
writeoff_journal_id: sale.account_journal_bankjournal0
-
-
--
+
+
+-
Pay and Reconcile the Invoice.
--
+-
!python {model: account.invoice.pay.writeoff}: |
sale_order_obj = self.pool.get('sale.order')
- so = sale_order_obj.browse(cr, uid, ref("sale_order_so1"))
+ so = sale_order_obj.browse(cr, uid, ref("sale_order_so1"))
self.pay_and_reconcile_writeoff(cr, uid, [ref("account_invoice_pay_writeoff_0")],
{"lang": 'en_US', "tz": False, "active_model": 'account.invoice', "active_ids":
[so.invoice_ids[0].id], "type": "out_invoice", "active_id": so.invoice_ids[0].id })
-
-
+
+
-
I will verify the picking associated with the sale order sale_order_so1
--
+-
!python {model: sale.order}: |
so = self.browse(cr, uid, ref("sale_order_so1"))
assert so.picking_ids,"Picking has not been generated for sale_order_so1"
--
+-
Products are delivered to the Cleartrail Customer.
--
+-
!python {model: stock.picking }: |
import time
sale_order_obj = self.pool.get('sale.order')
@@ -371,9 +369,9 @@
-
!python {model: stock.picking }: |
sale_order_obj = self.pool.get('sale.order')
- so = sale_order_obj.browse(cr, uid, ref("sale_order_so1"))
+ so = sale_order_obj.browse(cr, uid, ref("sale_order_so1"))
picking_id = self.search(cr, uid, [('origin','=',so.name),('type','=','out')])
-
+
if picking_id:
pick = self.browse(cr,uid,picking_id[0])
assert (pick.state) =='done', "Picking for SO is not in done state."
diff --git a/addons/sale_journal/__openerp__.py b/addons/sale_journal/__openerp__.py
index 94d343debb9..80643eb5d4d 100644
--- a/addons/sale_journal/__openerp__.py
+++ b/addons/sale_journal/__openerp__.py
@@ -19,7 +19,6 @@
#
##############################################################################
-
{
'name': 'Managing sales and deliveries by journal',
'version': '1.0',
@@ -49,7 +48,7 @@
""",
'author': 'Tiny',
'website': 'http://www.openerp.com',
- 'depends': ['stock', 'sale'],
+ 'depends': ['sale'],
'init_xml': ['sale_journal_data.xml'],
'update_xml': [
'security/ir.model.access.csv',
diff --git a/addons/sale_journal/sale_journal.py b/addons/sale_journal/sale_journal.py
index 9e6144998b0..41d770d5760 100644
--- a/addons/sale_journal/sale_journal.py
+++ b/addons/sale_journal/sale_journal.py
@@ -18,10 +18,10 @@
# along with this program. If not, see .
#
##############################################################################
+import time
from osv import osv, fields
import netsvc
-import time
from tools.translate import _
class sale_journal_invoice_type(osv.osv):
@@ -34,8 +34,8 @@ class sale_journal_invoice_type(osv.osv):
'invoicing_method': fields.selection([('simple','Non grouped'),('grouped','Grouped')], 'Invoicing method', required=True),
}
_defaults = {
- 'active': lambda *a: True,
- 'invoicing_method': lambda *a:'simple'
+ 'active': True,
+ 'invoicing_method': 'simple'
}
sale_journal_invoice_type()
@@ -60,12 +60,12 @@ class sale_journal(osv.osv):
'note': fields.text('Note'),
}
_defaults = {
- 'date': lambda *a: time.strftime('%Y-%m-%d'),
- 'date_created': lambda *a: time.strftime('%Y-%m-%d'),
+ 'date': time.strftime('%Y-%m-%d'),
+ 'date_created': time.strftime('%Y-%m-%d'),
'user_id': lambda self,cr,uid,context: uid,
'state': lambda self,cr,uid,context: 'draft',
}
-
+
def button_sale_cancel(self, cr, uid, ids, context={}):
self.write(cr, uid, ids, {'state':'cancel'})
for id in ids:
@@ -75,9 +75,9 @@ class sale_journal(osv.osv):
wf_service.trg_validate(uid, 'sale.order', saleid, 'cancel', cr)
for (id,name) in self.name_get(cr, uid, ids):
message = _('Sale order of Journal') + " '" + name + "' "+ _("is cancelled")
- self.log(cr, uid, id, message)
+ self.log(cr, uid, id, message)
return True
-
+
def button_sale_confirm(self, cr, uid, ids, context={}):
self.write(cr, uid, ids, {'state':'confirm'})
for id in ids:
@@ -87,30 +87,30 @@ class sale_journal(osv.osv):
wf_service.trg_validate(uid, 'sale.order', saleid, 'order_confirm', cr)
for (id,name) in self.name_get(cr, uid, ids):
message = _('Sale orders of Journal') + " '" + name + "' "+ _("is confirmed")
- self.log(cr, uid, id, message)
+ self.log(cr, uid, id, message)
return True
def button_open(self, cr, uid, ids, context={}):
self.write(cr, uid, ids, {'state':'open'})
for (id,name) in self.name_get(cr, uid, ids):
message = _('Sale orders of Journal') + " '" + name + "' "+ _("is opened")
- self.log(cr, uid, id, message)
+ self.log(cr, uid, id, message)
return True
-
+
def button_draft(self, cr, uid, ids, context={}):
self.write(cr, uid, ids, {'state':'draft'})
for (id,name) in self.name_get(cr, uid, ids):
message = _('Sale orders of Journal') + " '" + name + "' "+ _("is in draft state")
- self.log(cr, uid, id, message)
+ self.log(cr, uid, id, message)
return True
-
+
def button_close(self, cr, uid, ids, context={}):
self.write(cr, uid, ids, {'state':'done', 'date_validation':time.strftime('%Y-%m-%d')})
for (id,name) in self.name_get(cr, uid, ids):
message = _('Sale orders of Journal') + " '" + name + "' "+ _("is closed")
- self.log(cr, uid, id, message)
+ self.log(cr, uid, id, message)
return True
-
+
sale_journal()
class picking_journal(osv.osv):
diff --git a/addons/sale_margin/sale_margin.py b/addons/sale_margin/sale_margin.py
index 77f7be55342..c390bf769e2 100644
--- a/addons/sale_margin/sale_margin.py
+++ b/addons/sale_margin/sale_margin.py
@@ -25,7 +25,8 @@ from tools import config
class sale_order_line(osv.osv):
_name = "sale.order.line"
_inherit = "sale.order.line"
- def _product_margin(self, cr, uid, ids, field_name, arg, context):
+
+ def _product_margin(self, cr, uid, ids, field_name, arg, context=None):
res = {}
for line in self.browse(cr, uid, ids):
res[line.id] = 0
@@ -46,7 +47,7 @@ sale_order_line()
class sale_order(osv.osv):
_inherit = "sale.order"
- def _product_margin(self, cr, uid, ids, field_name, arg, context):
+ def _product_margin(self, cr, uid, ids, field_name, arg, context=None):
result = {}
for sale in self.browse(cr, uid, ids, context=context):
result[sale.id] = 0.0
@@ -69,14 +70,13 @@ class stock_picking(osv.osv):
def create_invoice(self, cr, uid, ids, *args):
# need to carify with new requirement
- res = False
invoice_ids = []
margin_deduce = 0.0
picking_obj = self.pool.get('stock.picking')
picking_obj.write(cr, uid, ids, {'invoice_state' : '2binvoiced'})
res = picking_obj.action_invoice_create(cr, uid, ids, type='out_invoice', context={})
invoice_ids = res.values()
- picking_obj.write(cr, uid, ids,{'invoice_ids':[[6,0,invoice_ids]]})
+ picking_obj.write(cr, uid, ids,{'invoice_ids': [[6,0,invoice_ids]]})
return True
stock_picking()
diff --git a/addons/sale_mrp/__openerp__.py b/addons/sale_mrp/__openerp__.py
index 9ac55911983..1496e46c87e 100644
--- a/addons/sale_mrp/__openerp__.py
+++ b/addons/sale_mrp/__openerp__.py
@@ -25,9 +25,10 @@
'version': '1.0',
'category': 'Generic Modules/Sales & MRP',
'description': """
- This module provides facility to the user to install mrp and sale modules
- at a time. It is basically used when we want to keep track of production
+ This module provides facility to the user to install mrp and sale modules
+ at a time. It is basically used when we want to keep track of production
orders generated from sale orders.
+ It adds sale name and sale Reference on production order
""",
'author': 'Tiny',
'website': 'http://www.openerp.com',
diff --git a/addons/scrum/scrum.py b/addons/scrum/scrum.py
index f76545de8a7..40f17319df7 100644
--- a/addons/scrum/scrum.py
+++ b/addons/scrum/scrum.py
@@ -106,7 +106,7 @@ class scrum_sprint(osv.osv):
'name' : fields.char('Sprint Name', required=True, size=64),
'date_start': fields.date('Starting Date', required=True),
'date_stop': fields.date('Ending Date', required=True),
- 'project_id': fields.many2one('project.project', 'Project', required=True, help="If you have [?] in the project name, it means there are no analytic account linked to this project."),
+ '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 Manager', required=True,help="The person who is maintains the processes for the product"),
'meeting_ids': fields.one2many('scrum.meeting', 'sprint_id', 'Daily Scrum'),
@@ -236,7 +236,7 @@ class scrum_product_backlog(osv.osv):
'name' : fields.char('Feature', size=64, required=True),
'note' : fields.text('Note'),
'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, help="If you have [?] in the project name, it means there are no analytic account linked to this project."),
+ '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', 'Responsible'),
'sprint_id': fields.many2one('scrum.sprint', 'Sprint'),
'sequence' : fields.integer('Sequence', help="Gives the sequence order when displaying a list of product backlog."),
diff --git a/addons/scrum/security/ir.model.access.csv b/addons/scrum/security/ir.model.access.csv
index 76ba229e952..46e4b315a6b 100644
--- a/addons/scrum/security/ir.model.access.csv
+++ b/addons/scrum/security/ir.model.access.csv
@@ -2,8 +2,14 @@
"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_product_uom_project_user","product.uom project user","product.model_product_uom","project.group_project_user",1,0,0,0
+"access_backlog_create_task_user","backlog.create.task user","model_backlog_create_task","project.group_project_user",1,1,1,1
+"access_scrum_backlog_merge_user","scrum.backlog.merge user","model_scrum_backlog_merge","project.group_project_user",1,1,1,1
+"access_backlog_assign_sprint_user ","backlog.assign.sprint user","model_backlog_assign_sprint","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
+"access_backlog_create_task_manager","backlog.create.task manager","model_backlog_create_task","project.group_project_manager",1,1,1,1
+"access_scrum_backlog_merge_manager","scrum.backlog.merge manager","model_scrum_backlog_merge","project.group_project_manager",1,1,1,1
+"access_backlog_assign_sprint_manager","backlog.assign.sprint manager","model_backlog_assign_sprint","project.group_project_manager",1,1,1,1