openerp-community team mailing list archive
-
openerp-community team
-
Mailing list archive
-
Message #02221
[Merge] lp:~akretion-team/openerp-product-attributes/no-stock-dep into lp:openerp-product-attributes
Raphaël Valyi - http://www.akretion.com has proposed merging lp:~akretion-team/openerp-product-attributes/no-stock-dep into lp:openerp-product-attributes.
Requested reviews:
Product Core Editors (product-core-editors)
For more details, see:
https://code.launchpad.net/~akretion-team/openerp-product-attributes/no-stock-dep/+merge/147797
Hello,
the commits message says it all:
[MIGR][openerp-product-attributes] removed the stock module dependency while keeping exactly the same features
HOWEVER, before merging, you are advised to first merge this branch:
https://code.launchpad.net/~akretion-team/openerp-product-attributes/product-attributes-port70-codesprint
That I assumed merged already (I merged it locally) before doing my change.
Regards.
--
https://code.launchpad.net/~akretion-team/openerp-product-attributes/no-stock-dep/+merge/147797
Your team OpenERP Community is subscribed to branch lp:openerp-product-attributes.
=== modified file 'product_brand/__openerp__.py'
--- product_brand/__openerp__.py 2013-01-21 06:49:06 +0000
+++ product_brand/__openerp__.py 2013-02-11 23:00:37 +0000
@@ -26,7 +26,7 @@
###################################################################################
{
'name': 'Product Brand Manager',
- 'version': '6.1.0',
+ 'version': '0.1',
'category': 'Product',
'description': """This module allows your user to easily manage product brand. You can define brand, attach it a logo and a description.
It also allows to attach a partner to a brand.
=== modified file 'product_custom_attributes/__openerp__.py'
--- product_custom_attributes/__openerp__.py 2013-01-21 06:49:06 +0000
+++ product_custom_attributes/__openerp__.py 2013-02-11 23:00:37 +0000
@@ -23,28 +23,25 @@
{
'name': 'product_custom_attributes',
- 'version': '6.1.0',
+ 'version': '0.1',
'category': 'Generic Modules/Others',
'license': 'AGPL-3',
- 'description': """
- This module adds the posibility to easily create custom fields on products.
- Each product can be linked to an attribute set (such as camera, fridge...)
- and each attribute set has custom fields (for example you don't need the same field for a frigde and a camera)
-
- Need to install the lib unicode2ascii, http://github.com/akretion/unicode2ascii.git
+ 'description': """This module adds the possibility to easily create custom fields on products.
+Each product can be linked to an attribute set (like camera, fridge...).
+Each attribute has custom fields (for example, you don't need the same field for a frigde and a camera).
""",
'author': 'Akretion',
'website': 'http://www.akretion.com/',
- 'depends': ['product','stock'],
+ 'depends': ['product'],
'init_xml': [],
'update_xml': [
- 'ir_model_view.xml',
+ 'security/ir.model.access.csv',
'product_attribute_view.xml',
'product_view.xml',
'wizard/open_product_by_attribute_set.xml',
],
'demo_xml': [],
- 'installable': False,
+ 'installable': True,
'active': False,
}
=== removed file 'product_custom_attributes/ir_model_view.xml'
--- product_custom_attributes/ir_model_view.xml 2012-08-03 14:33:51 +0000
+++ product_custom_attributes/ir_model_view.xml 1970-01-01 00:00:00 +0000
@@ -1,46 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
- product_custom_attributs for OpenERP
- Copyright (C) 2011 Akretion Benoît GUILLOT <benoit.guillot@xxxxxxxxxxxx>
- The licence is in the file __openerp__.py
--->
-
-<openerp>
- <data>
-
- <!-- INHERITED VIEW FOR THE OBJECT : ir_model_fields -->
-
-<!-- <record id="ir_model_fields_view_form" model="ir.ui.view">-->
-<!-- <field name="name">product_custom_attributs.ir_model_fields.view_form</field>-->
-<!-- <field name="model">ir.model.fields</field>-->
-<!-- <field name="inherit_id" ref="module_name_to_inherit.view_id" />-->
-<!-- <field eval="16" name="priority"/>-->
-<!-- <field name="type">form</field>-->
-<!-- <field name="arch" type="xml">-->
-<!-- <data>-->
-<!-- <field name="field_reference" position="after">-->
-<!-- </field>-->
-<!-- </data>-->
-<!-- </field>-->
-<!-- </record>-->
-
-<!-- <record id="ir_model_fields_view_tree" model="ir.ui.view">-->
-<!-- <field name="name">product_custom_attributs.ir_model_fields.view_tree</field>-->
-<!-- <field name="model">ir.model.fields</field>-->
-<!-- <field name="inherit_id" ref="module_name_to_inherit.view_id" />-->
-<!-- <field eval="16" name="priority"/>-->
-<!-- <field name="type">tree</field>-->
-<!-- <field name="arch" type="xml">-->
-<!-- <data>-->
-<!-- <field name="field_reference" position="after">-->
-<!-- </field>-->
-<!-- </data>-->
-<!-- </field>-->
-<!-- </record>-->
-<!-- -->
-
-
-
-
- </data>
-</openerp>
=== modified file 'product_custom_attributes/product.py'
--- product_custom_attributes/product.py 2012-11-21 11:48:51 +0000
+++ product_custom_attributes/product.py 2013-02-11 23:00:37 +0000
@@ -43,10 +43,10 @@
}
def _fix_size_bug(self, cr, uid, result, context=None):
- #When created a field text dynamicaly, its size is limited to 64 in the view.
- #The bug is fixed but not merged
- #https://code.launchpad.net/~openerp-dev/openerp-web/6.1-opw-579462-cpa/+merge/128003
- #TO remove when the fix will be merged
+ #When created a field text dynamicaly, its size is limited to 64 in the view.
+ #The bug is fixed but not merged
+ #https://code.launchpad.net/~openerp-dev/openerp-web/6.1-opw-579462-cpa/+merge/128003
+ #TO remove when the fix will be merged
for field in result['fields']:
if result['fields'][field]['type'] == 'text':
if 'size' in result['fields'][field]: del result['fields'][field]['size']
@@ -103,8 +103,8 @@
return notebook, toupdate_fields
def fields_view_get(self, cr, uid, view_id=None, view_type='form', context=None, toolbar=False, submenu=False):
- if context==None:
- context={}
+ if context is None:
+ context = {}
result = super(product_product, self).fields_view_get(cr, uid, view_id,view_type,context,toolbar=toolbar, submenu=submenu)
if view_type == 'form' and context.get('set_id'):
eview = etree.fromstring(result['arch'])
@@ -121,7 +121,7 @@
elif context.get('open_product_by_attribute_set'):
main_page = etree.Element('page', string=_('Custom Attributes'))
main_page.append(attributes_notebook)
- info_page = eview.xpath("//page[@string='Information']")[0]
+ info_page = eview.xpath("//page[@string='%s']" % (_('Information'),))[0]
info_page.addnext(main_page)
result['arch'] = etree.tostring(eview, pretty_print=True)
result = self._fix_size_bug(cr, uid, result, context=context)
=== modified file 'product_custom_attributes/product_attribute.py'
--- product_custom_attributes/product_attribute.py 2012-11-21 11:48:51 +0000
+++ product_custom_attributes/product_attribute.py 2013-02-11 23:00:37 +0000
@@ -60,7 +60,7 @@
'based_on': fields.selection([('product_template','Product Template'),
('product_product','Product Variant')],
'Based on', required=True),
- 'option_ids': fields.one2many('attribute.option', 'attribute_id', 'Attribute Option'),
+ 'option_ids': fields.one2many('attribute.option', 'attribute_id', 'Attribute Options'),
'create_date': fields.datetime('Created date', readonly=True),
}
@@ -91,7 +91,7 @@
if field_description:
name = unidecode('x_%s' % field_description.replace(' ', '_').lower())
return {'value' : {'name' : name}}
-
+
def onchange_name(self, cr, uid, ids, name, context=None):
if not name.startswith('x_'):
name = 'x_%s' % name
@@ -102,14 +102,23 @@
_description = "Attribute Location"
_order="sequence"
_inherits = {'product.attribute': 'attribute_id'}
+
+
+ def _get_attribute_loc_from_group(self, cr, uid, ids, context=None):
+ return self.pool.get('attribute.location').search(cr, uid, [('attribute_group_id', 'in', ids)], context=context)
+
_columns = {
'attribute_id': fields.many2one('product.attribute', 'Product Attribute', required=True, ondelete="cascade"),
- 'attribute_set_id': fields.related('attribute_group_id', 'attribute_set_id', type='many2one', relation='attribute.set', string='Attribute Set', store=True, readonly=True),
+ 'attribute_set_id': fields.related('attribute_group_id', 'attribute_set_id', type='many2one', relation='attribute.set', string='Attribute Set', readonly=True,
+store={
+ 'attribute.group': (_get_attribute_loc_from_group, ['attribute_set_id'], 10),
+ }),
'attribute_group_id': fields.many2one('attribute.group', 'Attribute Group', required=True),
'sequence': fields.integer('Sequence'),
}
+
class attribute_group(Model):
_name= "attribute.group"
_description = "Attribute Group"
=== modified file 'product_custom_attributes/product_attribute_view.xml'
--- product_custom_attributes/product_attribute_view.xml 2012-10-15 15:28:34 +0000
+++ product_custom_attributes/product_attribute_view.xml 2013-02-11 23:00:37 +0000
@@ -1,31 +1,29 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
product_custom_attributes for OpenERP
- Copyright (C) 2011 Akretion Benoît GUILLOT <benoit.guillot@xxxxxxxxxxxx>
+ Copyright (C) 2011-2013 Akretion (http://www.akretion.com/)
+ @author: Benoît GUILLOT <benoit.guillot@xxxxxxxxxxxx>
The licence is in the file __openerp__.py
-->
<openerp>
<data>
- <!-- CREATED VIEW FOR THE OBJECT : product_attribute -->
-
<menuitem
- id="menu_attribute_in_config_stock_product" name="Attributes"
- parent="stock.menu_product_in_config_stock" sequence="20"/>
+ id="menu_attribute_in_config_product" name="Attributes"
+ parent="product.prod_config_main" sequence="20"/>
<record id="attribute_set_form_view" model="ir.ui.view">
<field name="name">attribute.set.form</field>
<field name="model">attribute.set</field>
- <field name="type">form</field>
<field name="arch" type="xml">
- <form string="Attribute Set" col="4">
- <field name="name" colspan="1"/>
- <field name="attribute_group_ids" colspan="4" nolabel="1" >
+ <form string="Attribute Set">
+ <field name="name" colspan="4"/>
+ <field name="attribute_group_ids" colspan="4" >
<form string="Attribute Groups">
- <field name="name" colspan="1"/>
- <field name="sequence" colspan="1"/>
- <field name="attribute_ids" colspan="6" nolabel="1">
+ <field name="name" />
+ <field name="sequence" />
+ <field name="attribute_ids" colspan="4">
<form string="Attribute Location">
<field name="attribute_id" />
<field name="sequence" />
@@ -36,7 +34,7 @@
</field>
</form>
<tree string="Attribute Groups">
- <field name="name" colspan="1"/>
+ <field name="name" />
</tree>
</field>
</form>
@@ -46,13 +44,12 @@
<record id="attribute_group_form_view" model="ir.ui.view">
<field name="name">attribute.group.form</field>
<field name="model">attribute.group</field>
- <field name="type">form</field>
<field name="arch" type="xml">
- <form string="Attribute Group" col="6">
- <field name="name" colspan="1"/>
- <field name="sequence" colspan="1"/>
- <field name="attribute_set_id" colspan="1"/>
- <field name="attribute_ids" colspan="6" nolabel="1">
+ <form string="Attribute Group">
+ <field name="name" />
+ <field name="sequence" />
+ <field name="attribute_set_id" />
+ <field name="attribute_ids" colspan="4" nolabel="1">
<form string="Attribute Location">
<field name="attribute_id" />
<field name="sequence" />
@@ -68,7 +65,6 @@
<record id="attribute_location_form_view" model="ir.ui.view">
<field name="name">attribute.location.form</field>
<field name="model">attribute.location</field>
- <field name="type">form</field>
<field name="arch" type="xml">
<form string="Attribute Location">
<field name="attribute_id" />
@@ -82,20 +78,20 @@
<record id="product_attribute_form_view" model="ir.ui.view">
<field name="name">product.attribute.form</field>
<field name="model">product.attribute</field>
- <field name="type">form</field>
<field name="arch" type="xml">
- <form string="Product Attribute" col="8">
- <field name="field_description" colspan="1" on_change="onchange_field_description(field_description, context)"/>
- <field name="name" colspan="1" attrs="{'readonly':[('create_date', '!=', False)]}" on_change="onchange_name(name, context)"/>
- <field name="attribute_type" colspan="1"/>
- <field name="based_on" colspan="1"/>
- <field name="serialized" colspan="1"/>
- <field name="size" colspan="1" attrs="{'invisible':[('attribute_type', '!=', 'char')]}"/>
- <field name="translate" colspan="1" attrs="{'invisible':[('attribute_type', 'not in', ('char', 'text'))]}"/>
- <field name="option_ids" colspan="8" attrs="{'invisible':[('attribute_type', 'not in', ['select', 'multiselect'])]}" widget="one2many_list" nolabel="1">
+ <form string="Product Attribute">
+ <field name="field_description" on_change="onchange_field_description(field_description, context)"/>
+ <field name="name" attrs="{'readonly':[('create_date', '!=', False)]}" on_change="onchange_name(name, context)"/>
+ <field name="attribute_type" />
+ <field name="based_on" />
+ <field name="serialized" />
+ <field name="size" attrs="{'invisible':[('attribute_type', '!=', 'char')]}"/>
+ <field name="translate" attrs="{'invisible':[('attribute_type', 'not in', ('char', 'text'))]}"/>
+ <newline />
+ <field name="option_ids" colspan="4" attrs="{'invisible':[('attribute_type', 'not in', ['select', 'multiselect'])]}" widget="one2many_list" nolabel="1">
<tree string="Attribute Options" editable="top" >
- <field name="sequence" colspan="1"/>
- <field name="name" colspan="7"/>
+ <field name="sequence" />
+ <field name="name" />
</tree>
</field>
<field name="create_date" invisible="1"/>
@@ -106,12 +102,11 @@
<record id="attribute_option_form_view" model="ir.ui.view">
<field name="name">attribute.option.form</field>
<field name="model">attribute.option</field>
- <field name="type">form</field>
<field name="arch" type="xml">
<form string="Attribute Option" col="6">
- <field name="name" colspan="1"/>
- <field name="sequence" colspan="1"/>
- <field name="attribute_id" colspan="1"/>
+ <field name="name" colspan="2"/>
+ <field name="sequence" colspan="2"/>
+ <field name="attribute_id" colspan="2"/>
</form>
</field>
</record>
@@ -119,7 +114,6 @@
<record id="attribute_set_tree_view" model="ir.ui.view">
<field name="name">attribute.set.tree</field>
<field name="model">attribute.set</field>
- <field name="type">tree</field>
<field name="arch" type="xml">
<tree string="Attribute Set" >
<field name="name" />
@@ -130,7 +124,6 @@
<record id="attribute_group_tree_view" model="ir.ui.view">
<field name="name">attribute.group.tree</field>
<field name="model">attribute.group</field>
- <field name="type">tree</field>
<field name="arch" type="xml">
<tree string="Attribute Group">
<field name="name" />
@@ -143,7 +136,6 @@
<record id="attribute_location_tree_view" model="ir.ui.view">
<field name="name">attribute.location.tree</field>
<field name="model">attribute.location</field>
- <field name="type">tree</field>
<field name="arch" type="xml">
<tree string="Attribute Location">
<field name="attribute_id" />
@@ -157,7 +149,6 @@
<record id="product_attribute_tree_view" model="ir.ui.view">
<field name="name">product.attribute.tree</field>
<field name="model">product.attribute</field>
- <field name="type">tree</field>
<field name="arch" type="xml">
<tree string="Product Attribute">
<field name="name" />
@@ -169,7 +160,6 @@
<record id="prio_attribute_option_tree_view" model="ir.ui.view">
<field name="name">attribute.option.tree.prio</field>
<field name="model">attribute.option</field>
- <field name="type">tree</field>
<field eval="1" name="priority"/>
<field name="arch" type="xml">
<tree string="Attribute Option">
@@ -181,7 +171,6 @@
<record id="attribute_option_tree_view" model="ir.ui.view">
<field name="name">attribute.option.tree</field>
<field name="model">attribute.option</field>
- <field name="type">tree</field>
<field eval="20" name="priority"/>
<field name="arch" type="xml">
<tree string="Attribute Option">
@@ -195,10 +184,9 @@
<record id="view_attribute_set_search" model="ir.ui.view">
<field name="name">attribute.set.list</field>
<field name="model">attribute.set</field>
- <field name="type">search</field>
<field name="arch" type="xml">
<search string="Search Attribute Sets">
- <field name="name" select="1"/>
+ <field name="name"/>
</search>
</field>
</record>
@@ -206,10 +194,9 @@
<record id="view_attribute_group_search" model="ir.ui.view">
<field name="name">attribute.group.list</field>
<field name="model">attribute.group</field>
- <field name="type">search</field>
<field name="arch" type="xml">
<search string="Search Attribute Groups">
- <field name="name" select="1"/>
+ <field name="name"/>
<field name="attribute_set_id"/>
</search>
</field>
@@ -218,10 +205,9 @@
<record id="view_attribute_location_search" model="ir.ui.view">
<field name="name">attribute.location.list</field>
<field name="model">attribute.location</field>
- <field name="type">search</field>
<field name="arch" type="xml">
<search string="Search Attribute Locations">
- <field name="name" select="1"/>
+ <field name="name"/>
<field name="attribute_set_id"/>
<field name="attribute_group_id"/>
</search>
@@ -231,10 +217,9 @@
<record id="view_product_attribute_search" model="ir.ui.view">
<field name="name">product.attribute.list</field>
<field name="model">product.attribute</field>
- <field name="type">search</field>
<field name="arch" type="xml">
<search string="Search Product Attributes">
- <field name="name" select="1"/>
+ <field name="name"/>
</search>
</field>
</record>
@@ -242,7 +227,6 @@
<record id="view_attribute_option_search" model="ir.ui.view">
<field name="name">attribute.option.list</field>
<field name="model">attribute.option</field>
- <field name="type">search</field>
<field name="arch" type="xml">
<search string="Search Attribute Options">
<field name="name" />
@@ -253,10 +237,9 @@
<record id="attribute_set_form_action" model="ir.actions.act_window">
<field name="name">Attribute Sets</field>
- <field name="type">ir.actions.act_window</field>
<field name="res_model">attribute.set</field>
<field name="view_type">form</field>
- <field name="view_mode">tree,form,calendar,graph</field>
+ <field name="view_mode">tree,form</field>
<field name="search_view_id" ref="view_attribute_set_search"/>
<field name="context">{"search_default_user_id":uid}</field>
<field name="help"></field>
@@ -264,10 +247,9 @@
<record id="attribute_group_form_action" model="ir.actions.act_window">
<field name="name">Attribute Groups</field>
- <field name="type">ir.actions.act_window</field>
<field name="res_model">attribute.group</field>
<field name="view_type">form</field>
- <field name="view_mode">tree,form,calendar,graph</field>
+ <field name="view_mode">tree,form</field>
<field name="search_view_id" ref="view_attribute_group_search"/>
<field name="context">{"search_default_user_id":uid}</field>
<field name="help"></field>
@@ -275,10 +257,9 @@
<record id="attribute_location_form_action" model="ir.actions.act_window">
<field name="name">Attribute Locations</field>
- <field name="type">ir.actions.act_window</field>
<field name="res_model">attribute.location</field>
<field name="view_type">form</field>
- <field name="view_mode">tree,form,calendar,graph</field>
+ <field name="view_mode">tree,form</field>
<field name="search_view_id" ref="view_attribute_location_search"/>
<field name="context">{"search_default_user_id":uid}</field>
<field name="help"></field>
@@ -286,10 +267,9 @@
<record id="product_attribute_form_action" model="ir.actions.act_window">
<field name="name">Product Attributes</field>
- <field name="type">ir.actions.act_window</field>
<field name="res_model">product.attribute</field>
<field name="view_type">form</field>
- <field name="view_mode">tree,form,calendar,graph</field>
+ <field name="view_mode">tree,form</field>
<field name="search_view_id" ref="view_product_attribute_search"/>
<field name="context">{"search_default_user_id":uid}</field>
<field name="help"></field>
@@ -297,10 +277,9 @@
<record id="attribute_option_form_action" model="ir.actions.act_window">
<field name="name">Attribute Options</field>
- <field name="type">ir.actions.act_window</field>
<field name="res_model">attribute.option</field>
<field name="view_type">form</field>
- <field name="view_mode">tree,form,calendar,graph</field>
+ <field name="view_mode">tree,form</field>
<field name="view_id" ref="attribute_option_tree_view"/>
<field name="search_view_id" ref="view_attribute_option_search"/>
<field name="context">{"search_default_user_id":uid}</field>
@@ -309,19 +288,19 @@
<menuitem
action="attribute_set_form_action" id="menu_attribute_set_action"
- parent="product_custom_attributes.menu_attribute_in_config_stock_product" sequence="1"/>
+ parent="product_custom_attributes.menu_attribute_in_config_product" sequence="1"/>
<menuitem
action="attribute_group_form_action" id="menu_attribute_group_action"
- parent="product_custom_attributes.menu_attribute_in_config_stock_product" sequence="2"/>
+ parent="product_custom_attributes.menu_attribute_in_config_product" sequence="2"/>
<menuitem
action="attribute_location_form_action" id="menu_attribute_location_action"
- parent="product_custom_attributes.menu_attribute_in_config_stock_product" sequence="3"/>
+ parent="product_custom_attributes.menu_attribute_in_config_product" sequence="3"/>
<menuitem
action="product_attribute_form_action" id="menu_product_attribute_action"
- parent="product_custom_attributes.menu_attribute_in_config_stock_product" sequence="4"/>
+ parent="product_custom_attributes.menu_attribute_in_config_product" sequence="4"/>
<menuitem
action="attribute_option_form_action" id="menu_attribute_option_action"
- parent="product_custom_attributes.menu_attribute_in_config_stock_product" sequence="5"/>
+ parent="product_custom_attributes.menu_attribute_in_config_product" sequence="5"/>
</data>
</openerp>
=== modified file 'product_custom_attributes/product_view.xml'
--- product_custom_attributes/product_view.xml 2012-08-03 14:33:51 +0000
+++ product_custom_attributes/product_view.xml 2013-02-11 23:00:37 +0000
@@ -1,47 +1,43 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
product_custom_attributes for OpenERP
- Copyright (C) 2011 Akretion Benoît GUILLOT <benoit.guillot@xxxxxxxxxxxx>
+ Copyright (C) 2011-2013 Akretion (http://www.akretion.com/)
+ @author: Benoît GUILLOT <benoit.guillot@xxxxxxxxxxxx>
The licence is in the file __openerp__.py
-->
<openerp>
<data>
- <!-- CREATED VIEW FOR THE OBJECT : product_product -->
-
<record model="ir.ui.view" id="product_product_form_view_set_button">
<field name="name">attributes.product.normal.form</field>
<field name="model">product.product</field>
<field name="inherit_id" ref="product.product_normal_form_view" />
- <field name="type">form</field>
<field name="arch" type="xml">
- <data>
- <xpath expr="/form/group/group/field[@name='name']" position="after">
- <group name="attribute_fields" colspan="2" col="4" >
- <field name="attribute_set_id" colspan="3"/>
- <button name="open_attributes" string="Open Attributes" type="object" icon="gtk-ok" colspan="1" attrs="{'invisible':[('attribute_set_id', '=', False)]}"/>
- </group>
- </xpath>
- </data>
+ <xpath expr="/form/sheet/notebook/page[@string='Information']/group/group/field[@name='variants']/.." position="after">
+ <group name="attribute_fields">
+ <field name="attribute_set_id" />
+ <button name="open_attributes" string="Open Attributes" type="object" icon="gtk-ok" attrs="{'invisible':[('attribute_set_id', '=', False)]}"/>
+ </group>
+ </xpath>
</field>
</record>
<record model="ir.ui.view" id="product_attributes_form_view">
<field name="name">product.attributes.normal.wizard</field>
<field name="model">product.product</field>
- <field name="type">form</field>
<field name="arch" type="xml">
- <form string="Product">
- <group name="name_set" colspan='4' col='8'>
+ <form string="Product" version="7.0">
+ <group name="name_set">
<field name="name"/>
<field name="attribute_set_id" />
</group>
<separator string="attributes_placeholder" colspan="4"/>
- <group colspan='4' col='4'>
- <button icon="gtk-cancel" special="cancel" string="Cancel"/>
- <button icon="gtk-ok" name="save_and_close_product_attributes" string="Save and Close" type="object"/>
- </group>
+ <footer>
+ <button name="save_and_close_product_attributes" string="Save and Close" type="object" class="oe_highlight"/>
+ or
+ <button special="cancel" string="Cancel" class="oe_link"/>
+ </footer>
</form>
</field>
</record>
=== added directory 'product_custom_attributes/security'
=== added file 'product_custom_attributes/security/ir.model.access.csv'
--- product_custom_attributes/security/ir.model.access.csv 1970-01-01 00:00:00 +0000
+++ product_custom_attributes/security/ir.model.access.csv 2013-02-11 23:00:37 +0000
@@ -0,0 +1,16 @@
+"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
+"access_product_custom_attributes_attribute_set_salemanager","product_custom_attributes_attribute_set","product_custom_attributes.model_attribute_set","base.group_sale_manager",1,1,1,1
+"access_product_custom_attributes_attribute_group_salemanager","product_custom_attributes_attribute_group","product_custom_attributes.model_attribute_group","base.group_sale_manager",1,1,1,1
+"access_product_custom_attributes_attribute_location_salemanager","product_custom_attributes_attribute_location","product_custom_attributes.model_attribute_location","base.group_sale_manager",1,1,1,1
+"access_product_custom_attributes_product_attribute_salemanager","product_custom_attributes_product_attribute","product_custom_attributes.model_product_attribute","base.group_sale_manager",1,1,1,1
+"access_product_custom_attributes_attribute_option_salemanager","product_custom_attributes_attribute_option","product_custom_attributes.model_attribute_option","base.group_sale_manager",1,1,1,1
+"access_product_custom_attributes_attribute_set_manager","product_custom_attributes_attribute_set","product_custom_attributes.model_attribute_set","product.group_product_variant",1,1,1,1
+"access_product_custom_attributes_attribute_group_manager","product_custom_attributes_attribute_group","product_custom_attributes.model_attribute_group","product.group_product_variant",1,1,1,1
+"access_product_custom_attributes_attribute_location_manager","product_custom_attributes_attribute_location","product_custom_attributes.model_attribute_location","product.group_product_variant",1,1,1,1
+"access_product_custom_attributes_product_attribute_manager","product_custom_attributes_product_attribute","product_custom_attributes.model_product_attribute","product.group_product_variant",1,1,1,1
+"access_product_custom_attributes_attribute_option_manager","product_custom_attributes_attribute_option","product_custom_attributes.model_attribute_option","product.group_product_variant",1,1,1,1
+"access_product_custom_attributes_attribute_set_user","product_custom_attributes_attribute_set","product_custom_attributes.model_attribute_set","base.group_user",1,0,0,0
+"access_product_custom_attributes_attribute_group_user","product_custom_attributes_attribute_group","product_custom_attributes.model_attribute_group","base.group_user",1,0,0,0
+"access_product_custom_attributes_attribute_location_user","product_custom_attributes_attribute_location","product_custom_attributes.model_attribute_location","base.group_user",1,0,0,0
+"access_product_custom_attributes_product_attribute_user","product_custom_attributes_product_attribute","product_custom_attributes.model_product_attribute","base.group_user",1,0,0,0
+"access_product_custom_attributes_attribute_option_user","product_custom_attributes_attribute_option","product_custom_attributes.model_attribute_option","base.group_user",1,0,0,0
=== modified file 'product_custom_attributes/wizard/open_product_by_attribute_set.py'
--- product_custom_attributes/wizard/open_product_by_attribute_set.py 2012-08-21 14:10:21 +0000
+++ product_custom_attributes/wizard/open_product_by_attribute_set.py 2013-02-11 23:00:37 +0000
@@ -1,8 +1,9 @@
# -*- encoding: utf-8 -*-
###############################################################################
# #
-# product_custom_attributes for OpenERP #
-# Copyright (C) 2011 Akretion Benoît GUILLOT <benoit.guillot@xxxxxxxxxxxx> #
+# product_custom_attributes for OpenERP #
+# Copyright (C) 2011-2013 Akretion (http://www.akretion.com/) #
+# @author: Benoît GUILLOT <benoit.guillot@xxxxxxxxxxxx> #
# #
# This program is free software: you can redistribute it and/or modify #
# it under the terms of the GNU Affero General Public License as #
@@ -28,7 +29,7 @@
_description = 'Wizard to open product by attributes set'
_columns = {
- 'attribute_set_id':fields.many2one('attribute.set', 'Attribute Set'),
+ 'attribute_set_id': fields.many2one('attribute.set', 'Attribute Set'),
}
def open_product_by_attribute(self, cr, uid, ids, context=None):
@@ -44,7 +45,6 @@
if context is None:
context = {}
attribute_set = self.browse(cr, uid, ids[0], context=context).attribute_set_id
- data = self.read(cr, uid, ids, [], context=context)[0] # XXX used?
result = mod_obj.get_object_reference(cr, uid, 'product', 'product_normal_action')
id = result[1] if result else False
result = act_obj.read(cr, uid, [id], context=context)[0]
=== modified file 'product_custom_attributes/wizard/open_product_by_attribute_set.xml'
--- product_custom_attributes/wizard/open_product_by_attribute_set.xml 2012-08-03 14:33:51 +0000
+++ product_custom_attributes/wizard/open_product_by_attribute_set.xml 2013-02-11 23:00:37 +0000
@@ -1,29 +1,33 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
product_custom_attributes for OpenERP
- Copyright (C) 2011 Akretion Benoît GUILLOT <benoit.guillot@xxxxxxxxxxxx>
+ Copyright (C) 2011-2013 Akretion (http://www.akretion.com/)
+ @author: Benoît GUILLOT <benoit.guillot@xxxxxxxxxxxx>
The licence is in the file __openerp__.py
-->
<openerp>
<data>
- <record model="ir.ui.view" id="open_product_by_attribute_set_view">
+ <record id="open_product_by_attribute_set_view" model="ir.ui.view">
<field name="name">open.product.by.attribute.set.view</field>
<field name="model">open.product.by.attribute.set</field>
- <field name="type">form</field>
<field name="arch" type="xml">
- <form string="Open product by attributes set">
- <field name="attribute_set_id" colspan="4"/>
- <button icon="gtk-cancel" special="cancel" string="Cancel"/>
- <button icon="gtk-ok" name="open_product_by_attribute" string="Open Product By attribute" type="object"/>
+ <form string="Open product by attributes set" version="7.0">
+ <group>
+ <field name="attribute_set_id" />
+ </group>
+ <footer>
+ <button name="open_product_by_attribute" string="Open Product By attribute" type="object" class="oe_highlight"/>
+ or
+ <button special="cancel" string="Cancel" class="oe_link"/>
+ </footer>
</form>
</field>
</record>
<record id="open_product_by_attribute_set" model="ir.actions.act_window">
<field name="name">Open Product By Attribute Set</field>
- <field name="type">ir.actions.act_window</field>
<field name="res_model">open.product.by.attribute.set</field>
<field name="view_type">form</field>
<field name="target">new</field>
@@ -31,8 +35,7 @@
<field name="help"></field>
</record>
- <menuitem action="open_product_by_attribute_set" id="open_product_wizard" parent="stock.menu_stock_product" sequence="20"/>
-
+ <menuitem action="open_product_by_attribute_set" id="open_product_wizard" parent="base.menu_product" sequence="20"/>
</data>
</openerp>
=== modified file 'product_gift/__openerp__.py'
--- product_gift/__openerp__.py 2013-01-21 06:49:06 +0000
+++ product_gift/__openerp__.py 2013-02-11 23:00:37 +0000
@@ -22,7 +22,7 @@
{
'name': 'product_gift',
- 'version': '6.1.0',
+ 'version': '0.1',
'category': 'Generic Modules',
'license': 'AGPL-3',
'description': """This module adds the gift_wrap feature and gives the possibility to add a gift message on the order or the order line.""",
=== modified file 'product_m2mcategories/__openerp__.py'
--- product_m2mcategories/__openerp__.py 2013-01-30 13:08:37 +0000
+++ product_m2mcategories/__openerp__.py 2013-02-11 23:00:37 +0000
@@ -18,7 +18,7 @@
{
"name" : "Product - Many Categories",
- "version" : "7.0.0",
+ "version" : "0.1",
"author" : "Sharoon Thomas",
"website" : "",
"category" : "Generic Modules",
=== modified file 'product_multi_price/__openerp__.py'
--- product_multi_price/__openerp__.py 2013-01-21 06:49:06 +0000
+++ product_multi_price/__openerp__.py 2013-02-11 23:00:37 +0000
@@ -22,7 +22,7 @@
{
'name': 'product_multi_price',
- 'version': '6.1.0',
+ 'version': '0.1',
'category': 'Generic Modules/Others',
'license': 'AGPL-3',
'description': """empty""",
=== modified file 'product_prices_on_variant/__openerp__.py'
--- product_prices_on_variant/__openerp__.py 2013-01-21 06:49:06 +0000
+++ product_prices_on_variant/__openerp__.py 2013-02-11 23:00:37 +0000
@@ -23,7 +23,7 @@
{
'name': 'product_prices_on_variant',
- 'version': '6.1.0',
+ 'version': '0.1',
'category': 'Generic Modules/Others',
'license': 'AGPL-3',
'description': """
=== modified file 'product_quick_stock_rule/__openerp__.py'
--- product_quick_stock_rule/__openerp__.py 2013-01-21 06:49:06 +0000
+++ product_quick_stock_rule/__openerp__.py 2013-02-11 23:00:37 +0000
@@ -23,7 +23,7 @@
{
'name': 'product_quick_stock_rule',
- 'version': '6.1.0',
+ 'version': '0.1',
'category': 'Stock',
'license': 'AGPL-3',
'description': """
=== modified file 'product_sequence/__openerp__.py'
--- product_sequence/__openerp__.py 2013-02-06 09:12:47 +0000
+++ product_sequence/__openerp__.py 2013-02-11 23:00:37 +0000
@@ -22,7 +22,7 @@
{
'name' : 'Product Sequence',
- 'version' : '7.0',
+ 'version' : '0.1',
"author": "Zikzakmedia SL",
"website": "http://www.zikzakmedia.com",
"license" : "AGPL-3",
Follow ups