diff --git a/addons/account/product_view.xml b/addons/account/product_view.xml index 659a4f6ac36..5f417825032 100644 --- a/addons/account/product_view.xml +++ b/addons/account/product_view.xml @@ -7,7 +7,7 @@ - + diff --git a/addons/event/event_view.xml b/addons/event/event_view.xml index 27829129c15..dce96e4c3cf 100644 --- a/addons/event/event_view.xml +++ b/addons/event/event_view.xml @@ -244,7 +244,7 @@
- +
@@ -253,7 +253,7 @@
-

+

@
Organized by
diff --git a/addons/event_sale/event_sale_view.xml b/addons/event_sale/event_sale_view.xml index 82c1c05b714..53e8a4cc18f 100644 --- a/addons/event_sale/event_sale_view.xml +++ b/addons/event_sale/event_sale_view.xml @@ -9,7 +9,7 @@ - + diff --git a/addons/hr/hr_view.xml b/addons/hr/hr_view.xml index 0dcc675e665..99d7af027e9 100644 --- a/addons/hr/hr_view.xml +++ b/addons/hr/hr_view.xml @@ -130,11 +130,11 @@

- +

- () + ()

  • diff --git a/addons/mail/mail_group_view.xml b/addons/mail/mail_group_view.xml index a71ec972326..d21d32a3893 100644 --- a/addons/mail/mail_group_view.xml +++ b/addons/mail/mail_group_view.xml @@ -25,10 +25,10 @@
    - +
    -

    +

    • diff --git a/addons/mrp/mrp_view.xml b/addons/mrp/mrp_view.xml index c394544574d..9cb3d8dbfa2 100644 --- a/addons/mrp/mrp_view.xml +++ b/addons/mrp/mrp_view.xml @@ -981,11 +981,21 @@ + + product.normal.form.mrp.inherit + product.product + + + + + + + product.normal.form.mrp.inherit product.product - + diff --git a/addons/pad/pad.py b/addons/pad/pad.py index 40569fcd589..3431e196b59 100644 --- a/addons/pad/pad.py +++ b/addons/pad/pad.py @@ -8,6 +8,11 @@ from tools.translate import _ class pad_common(osv.osv_memory): _name = 'pad.common' _pad_fields = [] + + def pad_content(self, cr, uid, url ,context=None): + content = urllib2.urlopen('%s/export/html'%url).read() + return content + def pad_generate_url(self, cr, uid, context=None): pad_url_template = self.pool.get('res.users').browse(cr,uid, uid, context).company_id.pad_url_template s = string.ascii_uppercase + string.digits @@ -20,6 +25,13 @@ class pad_common(osv.osv_memory): url = pad_url_template % template_vars return url + # TODO + # add attribute on columns pad_content_field = + # override default write to load the content at write and store it in the field + # reverse engineer protocol to be setHtml without using the api key + # override default get to generate urls + # override read to generate url and store the content if empty + def copy(self, cr, uid, id, default=None, context=None): if not default: default = {} diff --git a/addons/pad/res_company.py b/addons/pad/res_company.py index bd955cd0481..703e655219b 100644 --- a/addons/pad/res_company.py +++ b/addons/pad/res_company.py @@ -1,7 +1,8 @@ # -*- coding: utf-8 -*- from osv import fields, osv -DEFAULT_PAD_TEMPLATE = 'http://beta.etherpad.org/p/%(db)s-%(model)s-%(salt)s' +DEFAULT_PAD_TEMPLATE = 'http://pad.openerp.com/p/%(db)s-%(model)s-%(salt)s' +DEFAULT_PAD_TEMPLATE = '' class company_pad(osv.osv): _inherit = 'res.company' diff --git a/addons/pad/static/src/css/etherpad.css b/addons/pad/static/src/css/etherpad.css index a0240afcab7..8ea7972071e 100644 --- a/addons/pad/static/src/css/etherpad.css +++ b/addons/pad/static/src/css/etherpad.css @@ -1,52 +1,39 @@ -.oe_etherpad_head{ +.oe_pad_head { width: 100%; display: block; - padding-left:3px; - cursor:pointer; + padding: 4px; } -.oe_etherpad_fullscreen div.oe_etherpad_head .oe_normal { - display: none; + +.oe_pad_readonly { + border: 1px solid #ddd; + padding: 8px; } -.oe_etherpad_normal div.oe_etherpad_head .oe_fullscreen { - display: none; -} -.oe_etherpad_fullscreen { + +.oe_pad_fullscreen { position: fixed; top: 0px; left: 0px; width: 100%; height: 100%; background-color: white; - z-index:10001 !important; -} -.etherpad_default{ - width: 100%; - height: 450px; -} -.oe_etherpad_fullscreen .etherpad_default{ - height: 100% + z-index: 1000; } -.etherpad_body{ - overflow:hidden; +.oe_pad_fullscreen .oe_pad_content { + height: 100%; } -.etherpad_readonly{ - width: 100%; - height: 450px; - overflow:auto; +.etherpad_readonly ul, .etherpad_readonly ol { + margin-before: 1em; + margin-after: 1em; + margin-start: 0px; + margin-end: 0px; + padding-start: 40px !important; } -.etherpad_readonly ul,.etherpad_readonly ol{ - -webkit-margin-before: 1em; - -webkit-margin-after: 1em; - -webkit-margin-start: 0px; - -webkit-margin-end: 0px; - -webkit-padding-start: 40px !important; -} -.etherpad_readonly ul li{ +.etherpad_readonly ul li{ list-style-type: disc; } -.etherpad_readonly ol li{ +.etherpad_readonly ol li{ list-style-type: decimal; } .etherpad_readonly .indent li{ diff --git a/addons/pad/static/src/js/pad.js b/addons/pad/static/src/js/pad.js index df182650afe..a295e860a51 100644 --- a/addons/pad/static/src/js/pad.js +++ b/addons/pad/static/src/js/pad.js @@ -1,32 +1,47 @@ openerp.pad = function(instance) { -instance.web.form.FieldPad = instance.web.form.AbstractField.extend(instance.web.form.ReinitializeFieldMixin, { +instance.web.form.FieldPad = instance.web.form.AbstractField.extend({ template: 'FieldPad', - initialize_content: function() { + start: function() { + this._super(); var self = this; - this.$textarea = undefined; - this.$el.find('div.oe_etherpad_head').click(function(ev) { - self.$el.toggleClass('oe_etherpad_fullscreen').toggleClass('oe_etherpad_normal'); + this.$el.find('div.oe_pad_head').click(function(ev) { + self.$el.toggleClass('oe_pad_fullscreen'); + }); + this.on("change:effective_readonly", this, function() { + this.render_value(); }); }, - set_value: function(value_) { - this._super(value_); - this.render_value(); + set_value: function(val) { + var self = this; + var _super = self._super; + _super.apply(self,[val]); + if (val === false || val === "") { + self.field_manager.dataset.call('pad_generate_url').then(function(r) { + _super.apply(self,[r]); + self.render_value(); + }); + } else { + self.render_value(); + } }, render_value: function() { + console.log("display"); var self = this; var value = this.get('value'); - if(value !== false) { - var url = value.split('\n')[0]; + + if (!_.str.startsWith(value, "http")) { + self.$('.oe_pad_content').html(instance.web.qweb.render('FieldPad.unconfigured')); + } else { if (!this.get("effective_readonly")) { var pad_username = this.session.username; - var code = ''; - this.$el.find('div.oe_etherpad_default').html(code); + var code = ''; + this.$('.oe_pad_content').html(code); } else { - $.get(url+'/export/html').success(function(data) { - self.$el.html('
      '+data+'
      '); + $.get(value+'/export/html').success(function(data) { + self.$('.oe_pad_content').html('
      '+data+'
      '); }).error(function() { - self.$el.text('Unable to load pad'); + self.$('.oe_pad_content').text('Unable to load pad'); }); } } diff --git a/addons/pad/static/src/xml/pad.xml b/addons/pad/static/src/xml/pad.xml index e128fb183fb..58266a2594a 100644 --- a/addons/pad/static/src/xml/pad.xml +++ b/addons/pad/static/src/xml/pad.xml @@ -2,17 +2,19 @@ - - -
      -
      - Fullscreen - Return to Record -
      -
      +
      +
      + Fullscreen
      - +
      +
      + + + Please configure your etherpad server.
      + OpenERP Entreprise customers may safely use pad.openerp.com as a server using the following template:
      +
      + http://pad.openerp.com/p/%(db)s-%(model)s-%(salt)s +
      - diff --git a/addons/pad_project/project_task.py b/addons/pad_project/project_task.py index 46c2c54cd46..513fc3fef5d 100644 --- a/addons/pad_project/project_task.py +++ b/addons/pad_project/project_task.py @@ -9,6 +9,3 @@ class task(osv.osv): _columns = { 'description_pad': fields.char('Description PAD', size=250) } - _defaults = { - 'description_pad': lambda self, cr, uid, context: self.pad_generate_url(cr, uid, context), - } diff --git a/addons/point_of_sale/point_of_sale_view.xml b/addons/point_of_sale/point_of_sale_view.xml index dce19ab77b6..0f8e5e57e5f 100644 --- a/addons/point_of_sale/point_of_sale_view.xml +++ b/addons/point_of_sale/point_of_sale_view.xml @@ -625,7 +625,7 @@ product.normal.form.inherit product.product - + diff --git a/addons/portal_hr_employees/hr_employee_view.xml b/addons/portal_hr_employees/hr_employee_view.xml index f36e2a4d2d8..dc1b1bae56c 100644 --- a/addons/portal_hr_employees/hr_employee_view.xml +++ b/addons/portal_hr_employees/hr_employee_view.xml @@ -38,7 +38,7 @@

      - () + ()

      • diff --git a/addons/portal_project_issue/portal_project_issue_view.xml b/addons/portal_project_issue/portal_project_issue_view.xml index 14e944ab32e..5d0b4ce081e 100644 --- a/addons/portal_project_issue/portal_project_issue_view.xml +++ b/addons/portal_project_issue/portal_project_issue_view.xml @@ -18,7 +18,7 @@
        -

        +


        diff --git a/addons/procurement/procurement_view.xml b/addons/procurement/procurement_view.xml index dbdc65c6763..f2a8dc98cb0 100644 --- a/addons/procurement/procurement_view.xml +++ b/addons/procurement/procurement_view.xml @@ -286,7 +286,7 @@ product.normal.form.orderpoint.inherit product.product - + diff --git a/addons/product/product.py b/addons/product/product.py index aa1bc3954a0..214445204bb 100644 --- a/addons/product/product.py +++ b/addons/product/product.py @@ -541,7 +541,7 @@ class product_product(osv.osv): 'active': fields.boolean('Active', help="If the active field is set to False, it will allow you to hide the product without removing it."), 'variants': fields.char('Variants', size=64), 'product_tmpl_id': fields.many2one('product.template', 'Product Template', required=True, ondelete="cascade"), - 'ean13': fields.char('EAN13', size=13, help="The numbers encoded in EAN-13 bar codes are product identification numbers."), + 'ean13': fields.char('EAN13 Barcode', size=13, help="The numbers encoded in EAN-13 bar codes are product identification numbers."), 'packaging' : fields.one2many('product.packaging', 'product_id', 'Logistical Units', help="Gives the different ways to package the same product. This has no impact on the picking order and is mainly used if you use the EDI module."), 'price_extra': fields.float('Variant Price Extra', digits_compute=dp.get_precision('Product Price')), 'price_margin': fields.float('Variant Price Margin', digits_compute=dp.get_precision('Product Price')), diff --git a/addons/product/product_view.xml b/addons/product/product_view.xml index 70651a0a795..17b4a7ecc68 100644 --- a/addons/product/product_view.xml +++ b/addons/product/product_view.xml @@ -86,12 +86,11 @@ - - + - + @@ -118,28 +117,6 @@ - - - - - - - - - - - - - - - - - - - - - - diff --git a/addons/product/security/product_security.xml b/addons/product/security/product_security.xml index 1d2c795083a..73ab6f8a3d5 100644 --- a/addons/product/security/product_security.xml +++ b/addons/product/security/product_security.xml @@ -23,7 +23,12 @@ Purchase Pricelists - + + + Costing Method + + + Manage Multiple Units of Measure diff --git a/addons/project_mrp/project_mrp_view.xml b/addons/project_mrp/project_mrp_view.xml index ffceb33a611..841a61e6c31 100644 --- a/addons/project_mrp/project_mrp_view.xml +++ b/addons/project_mrp/project_mrp_view.xml @@ -14,7 +14,7 @@ product.form.view.inherit product.product - + diff --git a/addons/purchase/purchase_view.xml b/addons/purchase/purchase_view.xml index aec55bf93c2..f513e2a60e8 100644 --- a/addons/purchase/purchase_view.xml +++ b/addons/purchase/purchase_view.xml @@ -554,5 +554,20 @@ + + + + + product.normal.supplier.form.inherit + product.product + + + + + + + + + diff --git a/addons/purchase/res_config.py b/addons/purchase/res_config.py index 6beac5a4cd0..3d9c858cec5 100644 --- a/addons/purchase/res_config.py +++ b/addons/purchase/res_config.py @@ -40,6 +40,9 @@ class purchase_config_settings(osv.osv_memory): 'group_uom':fields.boolean("manage different units of measure for products", implied_group='product.group_uom', help="""Allows you to select and maintain different units of measure for products."""), + 'group_costing_method':fields.boolean("compute product cost price based on average cost", + implied_group='product.group_costing_method', + help="""Allows you to compute product cost price based on average cost."""), 'group_purchase_delivery_address': fields.boolean("allow a different address for incoming products and invoicings", implied_group='purchase.group_delivery_invoice_address', help="Allows you to specify different delivery and invoice addresses on a purchase order."), diff --git a/addons/purchase/res_config_view.xml b/addons/purchase/res_config_view.xml index 23d89f1a7f1..00e0b6108e8 100644 --- a/addons/purchase/res_config_view.xml +++ b/addons/purchase/res_config_view.xml @@ -59,6 +59,10 @@
        +
        + +