[MERGE] forward port of branch saas-4 up to 0a1e4a0
authorDenis Ledoux <dle@odoo.com>
Fri, 8 Aug 2014 15:27:29 +0000 (17:27 +0200)
committerDenis Ledoux <dle@odoo.com>
Fri, 8 Aug 2014 15:27:29 +0000 (17:27 +0200)
15 files changed:
1  2 
addons/account/account_invoice.py
addons/account_voucher/account_voucher.py
addons/calendar/calendar.py
addons/calendar/calendar_view.xml
addons/crm_claim/crm_claim_view.xml
addons/mail/mail_followers.py
addons/mail/static/src/xml/mail.xml
addons/point_of_sale/point_of_sale_view.xml
addons/point_of_sale/static/src/xml/pos.xml
addons/purchase/edi/purchase_order_action_data.xml
addons/stock/stock.py
addons/web_kanban/static/src/js/kanban.js
addons/website/models/ir_http.py
addons/website/views/website_templates.xml
openerp/report/report_sxw.py

Simple merge
@@@ -900,9 -851,19 +900,18 @@@ class calendar_event(osv.Model)
          'active': fields.boolean('Active', help="If the active field is set to true, it will allow you to hide the event alarm information without removing it."),
          'categ_ids': fields.many2many('calendar.event.type', 'meeting_category_rel', 'event_id', 'type_id', 'Tags'),
          'attendee_ids': fields.one2many('calendar.attendee', 'event_id', 'Attendees', ondelete='cascade'),
 -        'partner_ids': fields.many2many('res.partner', string='Invitations', states={'done': [('readonly', True)]}),
 -        'alarm_ids': fields.many2many('calendar.alarm', string='Reminders', ondelete="restrict"),
 -
 +        'partner_ids': fields.many2many('res.partner', 'calendar_event_res_partner_rel', string='Attendees', states={'done': [('readonly', True)]}),
 +        'alarm_ids': fields.many2many('calendar.alarm', 'calendar_alarm_calendar_event_rel', string='Reminders', ondelete="restrict"),
      }
+     def _get_default_partners(self, cr, uid, ctx=None):
+         ret = [self.pool['res.users'].browse(cr, uid, uid, context=ctx).partner_id.id]
+         active_id = ctx.get('active_id')
+         if ctx.get('active_model') == 'res.partner' and active_id:
+             if active_id not in ret:
+                 ret.append(active_id)
+         return ret
      _defaults = {
          'end_type': 'count',
          'count': 1,
Simple merge
Simple merge
Simple merge
Simple merge
              <br />
              <t t-esc="widget.pos.company.name"/><br />
              Phone: <t t-esc="widget.pos.company.phone || ''"/><br />
-             User: <t t-esc="widget.pos.user.name"/><br />
+             User: <t t-esc="widget.pos.cashier.name"/><br />
 -            Shop: <t t-esc="widget.pos.shop.name"/><br />
              <br />
              <t t-if="widget.pos.config.receipt_header">
                  <div style='text-align:center'>
@@@ -18,9 -18,9 +18,9 @@@
      <data noupdate="1">
          <!--Email template -->
          <record id="email_template_edi_purchase" model="email.template">
 -            <field name="name">Purchase Order - Send by mail</field>
 +            <field name="name">RFQ - Send by Email</field>
-             <field name="email_from">${object.validator.email or ''}</field>
-             <field name="subject">${object.company_id.name} Order (Ref ${object.name or 'n/a' })</field>
+             <field name="email_from">${(object.validator.email or '')|safe}</field>
+             <field name="subject">${object.company_id.name|safe} Order (Ref ${object.name or 'n/a' })</field>
              <field name="partner_to">${object.partner_id.id}</field>
              <field name="model_id" ref="purchase.model_purchase_order"/>
              <field name="auto_delete" eval="True"/>
@@@ -1957,15 -1928,15 +1957,14 @@@ class stock_move(osv.osv)
          ctx = {'lang': lang}
  
          product = self.pool.get('product.product').browse(cr, uid, [prod_id], context=ctx)[0]
 -        uos_id  = product.uos_id and product.uos_id.id or False
 +        uos_id = product.uos_id and product.uos_id.id or False
          result = {
+             'name': product.partner_ref,
              'product_uom': product.uom_id.id,
              'product_uos': uos_id,
 -            'product_qty': 1.00,
 -            'product_uos_qty' : self.pool.get('stock.move').onchange_quantity(cr, uid, ids, prod_id, 1.00, product.uom_id.id, uos_id)['value']['product_uos_qty'],
 -            'prodlot_id' : False,
 +            'product_uom_qty': 1.00,
 +            'product_uos_qty': self.pool.get('stock.move').onchange_quantity(cr, uid, ids, prod_id, 1.00, product.uom_id.id, uos_id)['value']['product_uos_qty'],
          }
-         if not ids:
-             result['name'] = product.partner_ref
          if loc_id:
              result['location_id'] = loc_id
          if loc_dest_id:
Simple merge
                  and main_object.website_meta_keywords or website_meta_keywords"/>
              <title><t t-esc="title"/></title>
  
 -            <!-- Load stylesheets before scripts to avoid blocking -->
 -            <link rel='stylesheet' href='/web/static/lib/fontawesome/css/font-awesome.css'/>
 -
 -            <t t-call="website.theme"/>
 -
 -            <script type="text/javascript" src="/web/static/lib/es5-shim/es5-shim.min.js"></script>
 -            <script type="text/javascript" src="/web/static/lib/underscore/underscore.js"></script>
 -            <script type="text/javascript" src="/web/static/lib/underscore.string/lib/underscore.string.js"></script>
 -            <script type="text/javascript" src="/web/static/lib/jquery/jquery.js"></script>
 -            <script type="text/javascript" src="/web/static/lib/jquery.form/jquery.form.js"></script>
 -            <script type="text/javascript">
 -                // Bootstrap and jQuery UI conflicts
 -                $.fn.bstooltip = $.fn.tooltip;
 -                $.fn.bsbutton = $.fn.button;
 -            </script>
 -
 -            <script type="text/javascript" src="/web/static/lib/qweb/qweb2.js"></script>
 -            <script type="text/javascript" src="/web/static/src/js/openerpframework.js"></script>
 -
 -            <script type="text/javascript" src="/website/static/src/js/website.js"></script>
 +            <t t-set="languages" t-value="website.get_languages()"/>
 +            <t t-if="request.website_multilang">
 +                <t t-foreach="languages" t-as="lg">
 +                    <t t-set="force_lang" t-value="lg[0] if lg[0] != website.default_lang_code else None"/>
 +                    <link rel="alternate" t-att-href="url_for(request.httprequest.path + '?' + keep_query(), lang=force_lang)" t-att-hreflang="lg[0].replace('_', '-').lower()" />
 +                </t>
 +            </t>
  
 -            <script t-if="not translatable" type="text/javascript" src="/website/static/src/js/website.snippets.animation.js"></script>
 -            <script type="text/javascript" src="/web/static/lib/bootstrap/js/bootstrap.js"></script>
 +            <t t-call-assets="web.assets_common"/>
 +            <t t-call-assets="website.assets_frontend"/>
  
              <t t-raw="head or ''" name='layout_head'/>
-             <t t-if="website.google_analytics_key">
-                 <script>
 -
+              <t t-if="website.google_analytics_key">
+                <script>
                      (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
                      (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
                      m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
-                     })(window,document,'script','//www.google-analytics.com/analytics.js','_gaw');
+                     })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
  
-                     _gaw('create',_.str.trim('<t t-esc="website.google_analytics_key"/>'));
-                     _gaw('send','pageview');
+                     ga('create',_.str.trim('<t t-esc="website.google_analytics_key"/>'));
+                     ga('send','pageview');
                  </script>
 -
              </t>
          </head>
          <body>
Simple merge