[MERGE] misc fix trunk-fp

bzr revid: fp@tinyerp.com-20120928173210-kii9zw1iby67j5ft
This commit is contained in:
Fabien Pinckaers
2012-09-28 19:32:10 +02:00
31 changed files with 91 additions and 141 deletions
+1 -28
View File
@@ -92,34 +92,7 @@
<field name="debit"/>
</group>
</group>
<field name="bank_ids">
<form string="Bank account" version="7.0">
<group col="4">
<field name="state"/>
<field name="acc_number"/>
</group>
<group>
<group name="owner" string="Bank Account Owner">
<field name="partner_id" on_change="onchange_partner_id(partner_id)"/>
<field name="owner_name"/>
<label for="street" string="Address"/>
<div>
<field name="street" placeholder="Street..."/>
<div>
<field name="zip" class="oe_inline" placeholder="ZIP"/>
<field name="city" class="oe_inline" placeholder="City"/>
</div>
<field name="state_id" placeholder="State" options='{"no_open": true}'/>
<field name="country_id" placeholder="Country" options='{"no_open": true}'/>
</div>
</group>
<group name="bank" string="Information About the Bank">
<field name="bank" on_change="onchange_bank_id(bank)"/>
<field name="bank_name"/>
<field name="bank_bic" placeholder="e.g. GEBABEBB"/>
</group>
</group>
</form>
<field name="bank_ids" context="{'default_partner_id': active_id, 'form_view_ref': 'base.view_partner_bank_form'}">
<tree string="Bank Details">
<field name="sequence" invisible="1"/>
<field name="acc_number"/>
+5 -4
View File
@@ -14,12 +14,13 @@
<p class="oe_view_nocontent_create">
Click to create an unqualified lead.
</p><p>
A lead is usually the first step in your sales cycle. It can be
a contact with a new prospect, a company you target, a contact form
filled in your website, etc.
Use leads if you need a qualification step before creating an
opportunity or a customer. It can be a business card you received,
a contact form filled in your website, or a file of unqualified
prospects you import, etc.
</p><p>
Once qualified, the lead can be converted into a business
opportunity and a new customer in your address book.
opportunity and/or a new customer in your address book.
</p>
</field>
</record>
+2 -2
View File
@@ -6,8 +6,8 @@
id="crm_case_categ_phone_create_partner"
name="Schedule a Call"
res_model="crm.phonecall"
view_mode="calendar,tree,form"
context="{'search_default_partner_id': [active_id], 'default_duration': 1.0, 'default_partner_id': active_id}"
view_mode="tree,form,calendar"
context="{'search_default_partner_id': active_id, 'default_duration': 1.0, 'default_partner_id': active_id}"
groups="base.group_sale_salesman"
/>
+10 -6
View File
@@ -26,12 +26,16 @@ class res_partner(osv.osv):
_inherit = 'res.partner'
def _opportunity_meeting_count(self, cr, uid, ids, field_name, arg, context=None):
res = {}
for partner in self.browse(cr, uid, ids, context):
res[partner.id] = {
'opportunity_count': len(partner.opportunity_ids),
'meeting_count': len(partner.meeting_ids),
}
res = dict(map(lambda x: (x,{'opportunity_count': 0, 'meeting_count': 0}), ids))
# the user may not have access rights for opportunities or meetings
try:
for partner in self.browse(cr, uid, ids, context):
res[partner.id] = {
'opportunity_count': len(partner.opportunity_ids),
'meeting_count': len(partner.meeting_ids),
}
except:
pass
return res
_columns = {
+1 -1
View File
@@ -54,7 +54,7 @@
<field name="src_model">res.partner</field>
<field name="res_model">crm.meeting</field>
<field name="view_mode">calendar,tree,form,gantt</field>
<field name="context">{'search_default_partner_ids': active_id}</field>
<field name="context">{'default_partner_ids': [active_id]}</field>
</record>
<!-- open opportunities related to given partner -->
+1 -1
View File
@@ -241,7 +241,7 @@
<attribute name="invisible">False</attribute>
</xpath>
<xpath expr="//page[@name='page_history']" position="inside">
<group name="grp_claim" string="Claim">
<group name="grp_claim" string="Claims">
<field name="claims_ids" colspan="4" nolabel="1">
<tree string="Partners Claim" editable="bottom">
<field name="name"/>
+1 -1
View File
@@ -124,7 +124,7 @@
<field name="inherit_id" ref="base.view_partner_form"/>
<field name="arch" type="xml">
<notebook position="inside">
<page string="Profiling">
<page string="Profiling" groups="base.group_user">
<button string="Use a questionnaire"
name="%(action_open_questionnaire)d" type="action" colspan="1"
icon="gtk-justify-fill" />
@@ -1,6 +1,7 @@
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_crm_profiling_answer_salesman,crm_profiling.answer.salesman,model_crm_profiling_answer,base.group_sale_salesman,1,1,1,0
access_crm_profiling_answer_manager,crm_profiling.answer.manager,model_crm_profiling_answer,base.group_sale_manager,1,1,1,1
access_crm_profiling_answer_user,crm_profiling.answer.user,model_crm_profiling_answer,base.group_user,1,0,0,0
access_crm_profiling_question_salesman,crm_profiling.question.salesman,model_crm_profiling_question,base.group_sale_salesman,1,1,1,0
access_crm_profiling_question_manager,crm_profiling.question.manager,model_crm_profiling_question,base.group_sale_manager,1,1,1,1
access_crm_profiling_questionnarie_salesman,crm_profiling.questionnarie.salesman,model_crm_profiling_questionnaire,base.group_sale_salesman,1,1,1,0
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
2 access_crm_profiling_answer_salesman crm_profiling.answer.salesman model_crm_profiling_answer base.group_sale_salesman 1 1 1 0
3 access_crm_profiling_answer_manager crm_profiling.answer.manager model_crm_profiling_answer base.group_sale_manager 1 1 1 1
4 access_crm_profiling_answer_user crm_profiling.answer.user model_crm_profiling_answer base.group_user 1 0 0 0
5 access_crm_profiling_question_salesman crm_profiling.question.salesman model_crm_profiling_question base.group_sale_salesman 1 1 1 0
6 access_crm_profiling_question_manager crm_profiling.question.manager model_crm_profiling_question base.group_sale_manager 1 1 1 1
7 access_crm_profiling_questionnarie_salesman crm_profiling.questionnarie.salesman model_crm_profiling_questionnaire base.group_sale_salesman 1 1 1 0
+2 -2
View File
@@ -16,7 +16,7 @@
<attribute name="invisible">False</attribute>
</xpath>
<xpath expr="//page[@name='page_history']" position="inside">
<group name="grp_event" string="Event">
<group name="grp_event" string="Events">
<field name="event_ids" colspan="4" nolabel="1">
<tree string="Events">
<field name="name" string="Event"/>
@@ -24,7 +24,7 @@
</tree>
</field>
</group>
<group name="grp_registration" string="Registration">
<group name="grp_registration" string="Registrations">
<field name="event_registration_ids" colspan="4" nolabel="1">
<tree string="Events Registration">
<field name="event_begin_date" string="Date"/>
+8 -8
View File
@@ -372,14 +372,14 @@
<field name="company_id" widget="selection" groups="base.group_multi_company"/>
</group>
</group>
<notebook>
<page string="Description">
<label for="description"/>
<field name="description"/>
<label for="requirements"/>
<field name="requirements"/>
</page>
</notebook>
<div>
<label for="description"/>
<field name="description"/>
</div>
<div>
<label for="requirements"/>
<field name="requirements"/>
</div>
</sheet>
</form>
</field>
@@ -8,5 +8,5 @@ access_survey_hr_user,survey.hr.user,survey.model_survey,base.group_hr_user,1,1,
access_crm_meeting_hruser,crm.meeting.hruser,base_calendar.model_crm_meeting,base.group_hr_user,1,1,1,1
access_hr_recruitment_source_hr_officer,hr.recruitment.source,model_hr_recruitment_source,base.group_hr_user,1,1,1,1
access_hr_recruitment_source_all,hr.recruitment.source,model_hr_recruitment_source,,1,0,0,0
access_hr_applicant_category,hr.applicant_category,model_hr_applicant_category,,1,0,0,0
access_hr_applicant_category,hr.applicant_category,model_hr_applicant_category,,1,1,1,0
access_hr_applicant_category_manager,hr.applicant_category,model_hr_applicant_category,base.group_hr_manager,1,1,1,1
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
8 access_crm_meeting_hruser crm.meeting.hruser base_calendar.model_crm_meeting base.group_hr_user 1 1 1 1
9 access_hr_recruitment_source_hr_officer hr.recruitment.source model_hr_recruitment_source base.group_hr_user 1 1 1 1
10 access_hr_recruitment_source_all hr.recruitment.source model_hr_recruitment_source 1 0 0 0
11 access_hr_applicant_category hr.applicant_category model_hr_applicant_category 1 0 1 0 1 0
12 access_hr_applicant_category_manager hr.applicant_category model_hr_applicant_category base.group_hr_manager 1 1 1 1
@@ -31,7 +31,7 @@ class report_timesheet_line(osv.osv):
'user_id': fields.many2one('res.users', 'User', readonly=True),
'date': fields.date('Date', readonly=True),
'day': fields.char('Day', size=128, readonly=True),
'quantity': fields.float('Quantity', readonly=True),
'quantity': fields.float('Time', readonly=True),
'cost': fields.float('Cost', readonly=True),
'product_id': fields.many2one('product.product', 'Product',readonly=True),
'account_id': fields.many2one('account.analytic.account', 'Analytic Account', readonly=True),
@@ -83,7 +83,7 @@ class report_timesheet_user(osv.osv):
_columns = {
'name': fields.char('Year',size=64,required=False, readonly=True),
'user_id':fields.many2one('res.users', 'User', readonly=True),
'quantity': fields.float('Quantity', readonly=True),
'quantity': fields.float('Time', readonly=True),
'cost': fields.float('Cost', readonly=True),
'month':fields.selection([('01','January'), ('02','February'), ('03','March'), ('04','April'), ('05','May'), ('06','June'),
('07','July'), ('08','August'), ('09','September'), ('10','October'), ('11','November'), ('12','December')],'Month',readonly=True),
@@ -117,7 +117,7 @@ class report_timesheet_account(osv.osv):
'name': fields.char('Year',size=64,required=False, readonly=True),
'user_id':fields.many2one('res.users', 'User', readonly=True),
'account_id':fields.many2one('account.analytic.account', 'Analytic Account', readonly=True),
'quantity': fields.float('Quantity', readonly=True),
'quantity': fields.float('Time', readonly=True),
'month':fields.selection([('01','January'), ('02','February'), ('03','March'), ('04','April'), ('05','May'), ('06','June'),
('07','July'), ('08','August'), ('09','September'), ('10','October'), ('11','November'), ('12','December')],'Month',readonly=True),
@@ -151,7 +151,7 @@ class report_timesheet_account_date(osv.osv):
'name': fields.char('Year',size=64,required=False, readonly=True),
'user_id':fields.many2one('res.users', 'User', readonly=True),
'account_id':fields.many2one('account.analytic.account', 'Analytic Account', readonly=True),
'quantity': fields.float('Quantity', readonly=True),
'quantity': fields.float('Time', readonly=True),
'month':fields.selection([('01','January'), ('02','February'), ('03','March'), ('04','April'), ('05','May'), ('06','June'),
('07','July'), ('08','August'), ('09','September'), ('10','October'), ('11','November'), ('12','December')],'Month',readonly=True),
}
@@ -185,7 +185,7 @@ class report_timesheet_invoice(osv.osv):
'user_id':fields.many2one('res.users', 'User', readonly=True),
'account_id':fields.many2one('account.analytic.account', 'Project', readonly=True),
'manager_id':fields.many2one('res.users', 'Manager', readonly=True),
'quantity': fields.float('Quantity', readonly=True),
'quantity': fields.float('Time', readonly=True),
'amount_invoice': fields.float('To invoice', readonly=True)
}
_rec_name = 'user_id'
@@ -43,7 +43,7 @@ class hr_timesheet_report(osv.osv):
'account_id': fields.many2one('account.analytic.account', 'Analytic Account',readonly=True),
'company_id': fields.many2one('res.company', 'Company',readonly=True),
'cost': fields.float('Cost',readonly=True, digits_compute=dp.get_precision('Account')),
'quantity': fields.float('Quantity',readonly=True),
'quantity': fields.float('Time',readonly=True),
}
def init(self, cr):
@@ -52,7 +52,7 @@ class timesheet_report(osv.osv):
('draft','Draft'),
('confirm','Confirmed'),
('done','Done')], 'Status', readonly=True),
'quantity': fields.float('#Quantity',readonly=True),
'quantity': fields.float('Time',readonly=True),
'cost': fields.float('#Cost',readonly=True),
}
@@ -10,6 +10,9 @@
<group>
<field name='name'/>
</group>
<footer>
<button string="Close" class="oe_highlight" special="cancel" />
</footer>
</form>
</field>
</record>
@@ -104,7 +104,7 @@ class synchronize_google(osv.osv_memory):
_columns = {
'customer': fields.boolean('Customer', help="Check this box to set newly created partner as Customer."),
'supplier': fields.boolean('Supplier', help="Check this box to set newly created partner as Supplier."),
'group_name': fields.selection(_get_group, "Group Name",help="Choose which group to import, By default it takes all."),
'group_name': fields.selection(_get_group, "Group Name", help="Choose which group to import, By default it takes all."),
'calendar_name': fields.selection(_get_calendars, "Calendar Name"),
}
@@ -7,7 +7,7 @@
<field name="arch" type="xml">
<form string="Import contacts from a google account" version="7.0">
<group colspan="4" col="4" width="430">
<field name="group_name" colspan="4"/>
<field name="group_name" colspan="4" required="1"/>
<newline/>
<group colspan="4" col="4">
<separator string="Partner Status for this Group:" colspan="4"/>
@@ -32,7 +32,7 @@
<field name="arch" type="xml">
<form string="Import Google Calendar Events" version="7.0">
<group colspan="4" col="4" width="320">
<field name="calendar_name" />
<field name="calendar_name" required="1"/>
</group>
<footer>
<button name="import_google" string="_Import Events" type="object" class="oe_highlight" />
+2 -1
View File
@@ -36,8 +36,9 @@ class WizardMultiChartsAccounts(osv.osv_memory):
def execute(self, cr, uid, ids, context=None):
"""Override of code in order to be able to link journal with account in XML"""
res = super(WizardMultiChartsAccounts, self).execute(cr, uid, ids, context)
path = addons.get_module_resource(os.path.join('l10n_ch','sterchi_chart','account_journal_rel.xml'))
path = addons.get_module_resource('l10n_ch','sterchi_chart','account_journal_rel.xml')
tools.convert_xml_import(cr, 'l10n_ch', path, idref=None, mode='init', noupdate=True, report=None)
res.update({'type': 'ir.actions.act_window_close'})
return res
WizardMultiChartsAccounts()
+14 -56
View File
@@ -28,34 +28,6 @@
</field>
</field>
</record>
<!-- res.partner.bank in res partner form-->
<!-- Partner -> Bank Details -->
<record model="ir.ui.view" id="l10nch_view_res_partner_bank_add_groups">
<field name="name">res.partner_bank.form.hide.f2</field>
<field name="model">res.partner</field>
<field name="inherit_id" ref="account.view_partner_property_form"/>
<field name="arch" type="xml">
<field name="state" position="after">
<newline/>
<separator colspan="4" string="Account Infos"/>
<group string="Bank account info" colspan="4" attrs="{'invisible': [('state','in', ['bvpost','bvrpost'])]}" >
<field name="acc_number" string="Account/IBAN Number" attrs="{'required': [('state','not in',['bvpost','bvrpost'])]}"/>
<field name="dta_code"/>
<newline/>
</group>
<newline/>
<group string="Postal account info" colspan="4" attrs="{'invisible': [('state','not in', ['bvpost','bvrpost','bvbank','bvrbank'])]}" >
<field name="post_number" attrs="{'required': [('state','in',['bvpost','bvrpost','bvrbank'])]}"/>
<newline/>
</group>
<separator colspan="4" string="Financial Institute Infos"/>
<field name="bank" />
</field>
</field>
</record>
<!-- res.partner.bank base form-->
<!-- Sales -> Configuration -> Address Book -> Bank accounts -->
@@ -66,35 +38,21 @@
<field name="model">res.partner.bank</field>
<field name="inherit_id" ref="base.view_partner_bank_form"/>
<field name="arch" type="xml">
<field name="state" position="after">
<newline/>
<separator colspan="4" string="Account Infos"/>
<newline/>
<group string="Bank account info" colspan="4" attrs="{'invisible': [('state','in', ['bvpost','bvrpost'])]}" >
<field name="acc_number" string="Account/IBAN Number" attrs="{'required': [('state','not in',['bvpost','bvrpost'])]}"/>
<field name="dta_code"/>
<newline/>
<xpath expr="//field[@name='acc_number']" position="attributes">
<attribute name="attrs">{'required': [('state','not in',['bvpost','bvrpost'])]}</attribute>
</xpath>
<xpath expr="//field[@name='acc_number']" position="after">
<field name="post_number" attrs="{'required': [('state','in',['bvpost','bvrpost','bvrbank'])], 'invisible': [('state','not in', ['bvpost','bvrpost','bvbank','bvrbank'])]}"/>
<field name="dta_code" attrs="{'invisible': [('state','in', ['bvpost','bvrpost'])]}"/>
<field name="my_bank" attrs="{'invisible': ['|', ('state', 'not in', ['bvrpost','bvrbank']), ('company_id', '=', False)]}" />
</xpath>
<xpath expr="//group[@name='bank']" position="after">
<group string="BVR print options" attrs="{'invisible': [('my_bank', '!=', True)]}" >
<field name="bvr_adherent_num" attrs="{'invisible': [('state','!=','bvrbank')]}"/>
<field name="print_bank"/>
<field name="print_account"/>
</group>
<newline/>
<group string="Postal account info" colspan="4" attrs="{'invisible': [('state','not in', ['bvpost','bvrpost','bvbank','bvrbank'])]}" >
<field name="post_number" attrs="{'required': [('state','in',['bvpost','bvrpost','bvrbank'])]}"/>
<newline/>
</group>
<separator colspan="4" string="Financial Institute Infos"/>
<newline/>
<group attrs="{'invisible': ['|', ('state', 'not in', ['bvrpost','bvrbank']), ('company_id', '=', False)]}" colspan="4">
<field name="my_bank" attrs="{'invisible': [('company_id', '=', False)]}" />
<group string="BVR print options" colspan="4" attrs="{'invisible': [('my_bank', '!=', True)]}" >
<field name="bvr_adherent_num" attrs="{'invisible': [('state','!=','bvrbank')]}"/>
<field name="print_bank"/>
<field name="print_account"/>
<newline/>
</group>
</group>
<newline/>
<field name="bank" />
</field>
</xpath>
</field>
</record>
@@ -12,7 +12,7 @@
<attribute name="invisible">False</attribute>
</xpath>
<xpath expr="//page[@name='page_history']" position="inside">
<group name="grp_campaign" string="Campaign">
<group name="grp_campaign" string="Campaigns">
<field name="workitem_ids" colspan="4" nolabel="1"/>
</group>
</xpath>
+2 -2
View File
@@ -338,7 +338,7 @@ class Partner(osv.osv):
-Paid Member: A member who has paid the membership amount."""),
'membership_start': fields.function(
_membership_date, multi = 'membeship_start',
string = 'Start Membership Date', type = 'date',
string = 'Membership Start Date', type = 'date',
store = {
'account.invoice': (_get_invoice_partner, ['state'], 10),
'membership.membership_line': (_get_partner_id, ['state'], 10, ),
@@ -346,7 +346,7 @@ class Partner(osv.osv):
}, help="Date from which membership becomes active."),
'membership_stop': fields.function(
_membership_date,
string = 'Stop Membership Date', type='date', multi='membership_stop',
string = 'Membership End Date', type='date', multi='membership_stop',
store = {
'account.invoice': (_get_invoice_partner, ['state'], 10),
'membership.membership_line': (_get_partner_id, ['state'], 10),
+2 -2
View File
@@ -30,9 +30,9 @@ class company(osv.osv):
"today and today+range are skipped for future computation."),
}
_defaults = {
'schedule_range': 80.0,
'schedule_range': 730.0,
}
company()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
+1 -1
View File
@@ -97,7 +97,7 @@ class procurement_order(osv.osv):
'product_uos_qty': fields.float('UoS Quantity', states={'draft':[('readonly',False)]}, readonly=True),
'product_uos': fields.many2one('product.uom', 'Product UoS', states={'draft':[('readonly',False)]}, readonly=True),
'move_id': fields.many2one('stock.move', 'Reservation', ondelete='set null'),
'close_move': fields.boolean('Close Move at end', required=True),
'close_move': fields.boolean('Close Move at end'),
'location_id': fields.many2one('stock.location', 'Location', required=True, states={'draft':[('readonly',False)]}, readonly=True),
'procure_method': fields.selection([('make_to_stock','from stock'),('make_to_order','on order')], 'Procurement Method', states={'draft':[('readonly',False)], 'confirmed':[('readonly',False)]},
readonly=True, required=True, help="If you encode manually a Procurement, you probably want to use" \
-1
View File
@@ -136,7 +136,6 @@
</group>
<group string="Miscellaneous" name="misc">
<field name="date"/>
<field name="parent_id" domain="[('id','!=',analytic_account_id)]" context="{'current_model': 'project.project'}"/>
<field name="priority"/>
<field name="active" attrs="{'invisible':[('state','in',['open', 'pending', 'template'])]}"/>
@@ -102,7 +102,7 @@
<label for="use_phases"/>
</xpath>
<xpath expr="//div[@name='buttons']" position='inside'>
<button icon="terp-gtk-go-back-rtl" name="%(act_project_phases)d"
<button name="%(act_project_phases)d"
string="Phases" type="action"
attrs="{'invisible':[('use_phases','=', 0)]}"/>
</xpath>
+7 -3
View File
@@ -26,9 +26,13 @@ class res_partner(osv.osv):
_inherit = 'res.partner'
def _purchase_order_count(self, cr, uid, ids, field_name, arg, context=None):
res = {}
for partner in self.browse(cr, uid, ids, context=context):
res[partner.id] = len(partner.purchase_order_ids)
res = dict(map(lambda x: (x,0), ids))
# this user may not have access to user rights
try:
for partner in self.browse(cr, uid, ids, context=context):
res[partner.id] = len(partner.purchase_order_ids)
except:
pass
return res
def copy(self, cr, uid, id, default=None, context=None):
+1 -1
View File
@@ -167,4 +167,4 @@
<para style="terp_default_9">[[ user.signature or '' ]]</para>
</pto>
</story>
</document>
</document>
+6
View File
@@ -153,6 +153,12 @@
</pto_header>
<para style="terp_default_8">[[repeatIn(objects,'o')]]</para>
<para style="terp_default_8">[[ setLang(o.partner_id.lang) ]]</para>
<para style="terp_default_8">
<font color="white"> </font>
</para>
<para style="terp_default_8">
<font color="white"> </font>
</para>
<blockTable colWidths="265.0,51.0,225.0" style="Table1">
<tr>
<td>
-4
View File
@@ -12,10 +12,6 @@
<group>
<label for="id" string="Invoicing Process"/>
<div>
<div>
<field name="group_invoice_so_lines" on_change="onchange_invoice_methods(group_invoice_so_lines, group_invoice_deli_orders)" class="oe_inline"/>
<label for="group_invoice_so_lines"/>
</div>
<div name="timesheet">
<field name="timesheet" class="oe_inline" on_change="onchange_timesheet(timesheet)"/>
<label for="timesheet"/>
+7 -3
View File
@@ -26,9 +26,13 @@ class res_partner(osv.osv):
_inherit = 'res.partner'
def _sale_order_count(self, cr, uid, ids, field_name, arg, context=None):
res = {}
for partner in self.browse(cr, uid, ids, context):
res[partner.id] = len(partner.sale_order_ids)
res = dict(map(lambda x: (x,0), ids))
# The current user may not have access rights for sale orders
try:
for partner in self.browse(cr, uid, ids, context):
res[partner.id] = len(partner.sale_order_ids)
except:
pass
return res
def copy(self, cr, uid, record_id, default=None, context=None):
+1 -1
View File
@@ -37,7 +37,7 @@ access_product_ul_sale_manager,product.ul salemanager,product.model_product_ul,b
access_product_category_sale_manager,product.category salemanager,product.model_product_category,base.group_sale_manager,1,1,1,1
access_product_supplierinfo_user,product.supplierinfo.user,product.model_product_supplierinfo,base.group_sale_salesman,1,0,0,0
access_product_supplierinfo_sale_manager,product.supplierinfo salemanager,product.model_product_supplierinfo,base.group_sale_manager,1,1,1,1
access_pricelist_partnerinfo_sale_manager,pricelist.partnerinfo salemanager,product.model_pricelist_partnerinfo,base.group_sale_manager,1,1,1,1
access_pricelist_partnerinfo_sale_manager,pricelist.partnerinfo salemanager,product.model_pricelist_partnerinfo,base.group_sale_manager,1,1,1,1
access_product_price_type_sale_manager,product.price.type salemanager,product.model_product_price_type,base.group_sale_manager,1,1,1,1
access_product_pricelist_type_sale_manager,product.pricelist.type salemanager,product.model_product_pricelist_type,base.group_sale_manager,1,1,1,1
access_product_pricelist_sale_manager,product.pricelist salemanager,product.model_product_pricelist,base.group_sale_manager,1,1,1,1
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
37 access_product_category_sale_manager product.category salemanager product.model_product_category base.group_sale_manager 1 1 1 1
38 access_product_supplierinfo_user product.supplierinfo.user product.model_product_supplierinfo base.group_sale_salesman 1 0 0 0
39 access_product_supplierinfo_sale_manager product.supplierinfo salemanager product.model_product_supplierinfo base.group_sale_manager 1 1 1 1
40 access_pricelist_partnerinfo_sale_manager pricelist.partnerinfo salemanager product.model_pricelist_partnerinfo base.group_sale_manager 1 1 1 1
41 access_product_price_type_sale_manager product.price.type salemanager product.model_product_price_type base.group_sale_manager 1 1 1 1
42 access_product_pricelist_type_sale_manager product.pricelist.type salemanager product.model_product_pricelist_type base.group_sale_manager 1 1 1 1
43 access_product_pricelist_sale_manager product.pricelist salemanager product.model_product_pricelist base.group_sale_manager 1 1 1 1