[MERGE] forward port branch saas-10 up to 477482e

This commit is contained in:
Christophe Simonis
2016-09-22 13:41:33 +02:00
17 changed files with 956 additions and 927 deletions
+11 -10
View File
@@ -264,16 +264,17 @@ class ir_model_fields_anonymize_wizard(osv.osv_memory):
for anon_field in anon_fields:
field = fields_by_id.get(anon_field.field_id.id)
values = {
'model_name': field.model_id.name,
'model_code': field.model_id.model,
'field_code': field.name,
'field_name': field.field_description,
'state': anon_field.state,
}
summary += u" * %(model_name)s (%(model_code)s) -> %(field_name)s (%(field_code)s): state: (%(state)s)\n" % values
if field:
values = {
'model_name': field.model_id.name,
'model_code': field.model_id.model,
'field_code': field.name,
'field_name': field.field_description,
'state': anon_field.state,
}
summary += u" * %(model_name)s (%(model_code)s) -> %(field_name)s (%(field_code)s): state: (%(state)s)\n" % values
else:
summary += u"* Missing local model (%s) and field (%s): state: (%s) \n" % (anon_field.model_name, anon_field.field_name, anon_field.state)
return summary
def default_get(self, cr, uid, fields_list, context=None):
+1 -1
View File
@@ -569,7 +569,7 @@
<field name="name">Departments</field>
<field name="res_model">hr.department</field>
<field name="view_type">form</field>
<field name="view_mode">kanban,form</field>
<field name="view_mode">kanban,tree,form</field>
<field name="search_view_id" ref="view_department_filter"/>
<field name="help" type="html">
<p class="oe_view_nocontent_create">
+37 -37
View File
@@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: Odoo Server 9.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-09-18 16:56+0200\n"
"PO-Revision-Date: 2015-09-18 17:09+0200\n"
"PO-Revision-Date: 2016-09-19 16:51+0200\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Poedit 1.8.4\n"
"X-Generator: Poedit 1.8.9\n"
"Last-Translator: \n"
"Language: nl_BE\n"
@@ -495,17 +495,17 @@ msgstr "Resultaten uit de omrekening van vreemde valuta"
#. module: l10n_be
#: model:account.account.template,name:l10n_be.a175111
msgid "Effets à payer \\ Fournisseurs C.E.E."
msgstr ""
msgstr "Te betalen wissels: Leveranciers van de EEG"
#. module: l10n_be
#: model:account.account.template,name:l10n_be.a175110
msgid "Effets à payer \\ Fournisseurs belges"
msgstr ""
msgstr "Te betalen wissels: Belgische leveranciers"
#. module: l10n_be
#: model:account.account.template,name:l10n_be.a175112
msgid "Effets à payer \\ Fournisseurs importation"
msgstr ""
msgstr "Te betalen wissels: Import leveranciers"
#. module: l10n_be
#: model:account.account.template,name:l10n_be.a4166
@@ -521,7 +521,7 @@ msgstr "Bedienden"
#. module: l10n_be
#: model:account.account.template,name:l10n_be.a3200
msgid "En cours de fabrication"
msgstr ""
msgstr "Goederen in bewerking"
#. module: l10n_be
#: model:account.account.template,name:l10n_be.a440
@@ -571,7 +571,7 @@ msgstr "Leveranciers"
#. module: l10n_be
#: model:account.account.template,name:l10n_be.a612
msgid "Fournitures"
msgstr ""
msgstr "Diverse leveringen"
#. module: l10n_be
#: model:account.account.template,name:l10n_be.a260
@@ -596,22 +596,22 @@ msgstr "Kosten van onderzoek en ontwikkeling"
#. module: l10n_be
#: model:account.tax.template,name:l10n_be.attn_VAT-IN-V82-CAR-EXC-C2
msgid "Frais de voiture - TVA 50% Deductible (Prix Excl.)"
msgstr ""
msgstr "Auto kosten - BTW 50% aftrekbaar (exl. prijs)"
#. module: l10n_be
#: model:account.tax.template,name:l10n_be.attn_VAT-IN-V82-CAR-EXC-C1
msgid "Frais de voiture - TVA 50% Non Deductible"
msgstr ""
msgstr "Auto kosten - BTW 50% niet aftrekbaar"
#. module: l10n_be
#: model:account.account.template,name:l10n_be.a3500
msgid "Immeubles destinés à la vente"
msgstr ""
msgstr "Onroerende goederen bestemd voor verkoop"
#. module: l10n_be
#: model:account.account.template,name:l10n_be.a2800
msgid "Immobilisations Financières"
msgstr ""
msgstr "Financiële vaste activa"
#. module: l10n_be
#: model:account.account.template,name:l10n_be.a4120
@@ -641,17 +641,17 @@ msgstr "Goederen"
#. module: l10n_be
#: model:account.account.template,name:l10n_be.a300
msgid "Matières premières"
msgstr ""
msgstr "Grondstoffen"
#. module: l10n_be
#: model:account.account.template,name:l10n_be.a24011
msgid "Matériel de bureau de bâtiments administratifs et commerciaux"
msgstr ""
msgstr "Kantooruitrusting voor gebouwen met adminestratieve en commerciële functie"
#. module: l10n_be
#: model:account.account.template,name:l10n_be.a24010
msgid "Matériel de bureau de bâtiments industriels"
msgstr ""
msgstr "Kantooruitrusting voor gebouwen met industriële functie"
#. module: l10n_be
#: model:account.account.template,name:l10n_be.a2521
@@ -681,22 +681,22 @@ msgstr "Bedragen komende van het resultaat"
#. module: l10n_be
#: model:account.account.template,name:l10n_be.a4541
msgid "ONSS. 1er trimestre"
msgstr ""
msgstr "R.S.Z. 1ste kwartaal"
#. module: l10n_be
#: model:account.account.template,name:l10n_be.a4542
msgid "ONSS. 2ème trimestre"
msgstr ""
msgstr "R.S.Z. 2de kwartaal"
#. module: l10n_be
#: model:account.account.template,name:l10n_be.a4543
msgid "ONSS. 3ème trimestre"
msgstr ""
msgstr "R.S.Z. 3de kwartaal"
#. module: l10n_be
#: model:account.account.template,name:l10n_be.a4544
msgid "ONSS. 4ème trimestre"
msgstr ""
msgstr "R.S.Z. 4de kwartaal"
#. module: l10n_be
#: model:account.account.template,name:l10n_be.a4540
@@ -762,7 +762,7 @@ msgstr "Dienstverlening buiten de E.E.G. (export)"
#. module: l10n_be
#: model:account.account.template,name:l10n_be.a11
msgid "Primes d'émission"
msgstr ""
msgstr "Uitgifte premies"
#. module: l10n_be
#: model:account.account.template,name:l10n_be.a4930
@@ -782,12 +782,12 @@ msgstr "Diverse financiële opbrengsten"
#. module: l10n_be
#: model:account.account.template,name:l10n_be.a7600
msgid "Produits exceptionnels"
msgstr ""
msgstr "Uitzonderlijke opbrengsten"
#. module: l10n_be
#: model:account.account.template,name:l10n_be.a3300
msgid "Produits finis"
msgstr ""
msgstr "Gereed product"
#. module: l10n_be
#: model:account.account.template,name:l10n_be.a404
@@ -803,7 +803,7 @@ msgstr "Voorziening voor eindejaarspremie"
#. module: l10n_be
#: model:account.account.template,name:l10n_be.a1600
msgid "Provisions pour risques et charges"
msgstr ""
msgstr "Voorzieningen voor risico's en kosten"
#. module: l10n_be
#: model:account.account.template,name:l10n_be.a4533
@@ -823,12 +823,12 @@ msgstr "Onttrekking aan het kapitaal en aan de uitgiftepremies"
#. module: l10n_be
#: model:account.account.template,name:l10n_be.a780
msgid "Prélèvements sur les impôts différés"
msgstr ""
msgstr "Onttrekking aan de uitgestelde belastingen"
#. module: l10n_be
#: model:account.account.template,name:l10n_be.a789
msgid "Prélèvements sur les réserves immunisées"
msgstr ""
msgstr "Onttrekking aan de reserves"
#. module: l10n_be
#: model:account.account.template,name:l10n_be.a706
@@ -909,27 +909,27 @@ msgstr "Regularisering van geraamde belastingen"
#. module: l10n_be
#: model:account.account.template,name:l10n_be.a6200
msgid "Rémunérations: Administrateurs ou gérants"
msgstr ""
msgstr "Bezoldigingen: Bestuurders of zaakvoerders"
#. module: l10n_be
#: model:account.account.template,name:l10n_be.a6204
msgid "Rémunérations: Autres membres du personnel"
msgstr ""
msgstr "Bezoldigingen: Andere personeelsleden, verbonden met een arbeidsovereenkomst"
#. module: l10n_be
#: model:account.account.template,name:l10n_be.a6202
msgid "Rémunérations: Employés"
msgstr ""
msgstr "Bezoldigingen: Arbeiders"
#. module: l10n_be
#: model:account.account.template,name:l10n_be.a6203
msgid "Rémunérations: Ouvriers"
msgstr ""
msgstr "Bezoldigingen: Bedienden"
#. module: l10n_be
#: model:account.account.template,name:l10n_be.a6201
msgid "Rémunérations: Personnel de direction"
msgstr ""
msgstr "Bezoldigingen: Directiepersoneel"
#. module: l10n_be
#: model:account.account.template,name:l10n_be.a130
@@ -959,7 +959,7 @@ msgstr "Kapitaal- en interestsubsidies"
#. module: l10n_be
#: model:account.account.template,name:l10n_be.a150
msgid "Subsides obtenus"
msgstr ""
msgstr "Verkregen subsidies"
#. module: l10n_be
#: model:account.account.template,name:l10n_be.a41670
@@ -1204,7 +1204,7 @@ msgstr "Terreinen"
#. module: l10n_be
#: model:account.account.template,name:l10n_be.trans
msgid "Transferts"
msgstr ""
msgstr "Transferten"
#. module: l10n_be
#: model:account.tax.template,name:l10n_be.attn_VAT-IN-V81-06-CC-C1
@@ -1509,32 +1509,32 @@ msgstr "VAT-IN-V83-21-ROW-CC-C2"
#. module: l10n_be
#: model:account.account.template,name:l10n_be.a7001
msgid "Ventes dans les pays membres de la C.E.E. (marchandises)"
msgstr ""
msgstr "Verkopen: leden van de Europese gemeenschap (handelsgoederen)"
#. module: l10n_be
#: model:account.account.template,name:l10n_be.a7011
msgid "Ventes dans les pays membres de la C.E.E. (produits finis)"
msgstr ""
msgstr "Verkopen: leden van de Europese gemeenschap (gereed product)"
#. module: l10n_be
#: model:account.account.template,name:l10n_be.a7000
msgid "Ventes en Belgique (marchandises)"
msgstr ""
msgstr "Verkopen: België (handelsgoederen)"
#. module: l10n_be
#: model:account.account.template,name:l10n_be.a7010
msgid "Ventes en Belgique (produits finis)"
msgstr ""
msgstr "Verkopen: België (gereed product)"
#. module: l10n_be
#: model:account.account.template,name:l10n_be.a7002
msgid "Ventes à l'exportation (marchandises)"
msgstr ""
msgstr "Verkopen: export (handelsgoederen)"
#. module: l10n_be
#: model:account.account.template,name:l10n_be.a7012
msgid "Ventes à l'exportation (produits finis)"
msgstr ""
msgstr "Verkopen: export (gereed product)"
#. module: l10n_be
#: model:account.account.template,name:l10n_be.a24100
File diff suppressed because it is too large Load Diff
+18 -1
View File
@@ -91,7 +91,24 @@ class pad_common(models.AbstractModel):
def create(self, cr, uid, vals, context=None):
self._set_pad_value(cr, uid, vals, context)
return super(pad_common, self).create(cr, uid, vals, context=context)
res = super(pad_common, self).create(cr, uid, vals, context=context)
# In case the pad is created programmatically, the content is not filled in yet since it is
# normally initialized by the JS layer
pad_urls = {}
for k, field in self._fields.iteritems():
if hasattr(field, 'pad_content_field') and k not in vals:
ctx = dict(context or {})
ctx.update({
'model': self._name,
'field_name': k,
'object_id': res,
})
pad = self.pad_generate_url(cr, uid, ctx)
pad_urls[k] = pad.get('url')
if pad_urls:
self.write(cr, uid, res, pad_urls, context=context)
return res
# Set the pad content in vals
def _set_pad_value(self, cr, uid, vals, context=None):
+1 -1
View File
@@ -561,7 +561,7 @@ class PosOrder(models.Model):
Move += Move.create({
'name': line.name,
'product_uom': line.product_id.uom_id.id,
'picking_id': picking_id.id,
'picking_id': picking_id and picking_id.id or False,
'picking_type_id': picking_type.id,
'product_id': line.product_id.id,
'product_uom_qty': abs(line.qty),
+2 -1
View File
@@ -1,5 +1,6 @@
from openerp import http
import json
from openerp.tools import ustr
from openerp.http import request, serialize_exception as _serialize_exception
from openerp.tools.misc import xlwt
from cStringIO import StringIO
@@ -67,7 +68,7 @@ class TableExporter(http.Controller):
# Step 3: writing data
x = 0
for row in jdata['rows']:
worksheet.write(y, x, row['indent'] * ' ' + row['title'], header_plain)
worksheet.write(y, x, row['indent'] * ' ' + ustr(row['title']), header_plain)
for cell in row['values']:
x = x + 1
if cell.get('is_bold', False):
+1 -1
View File
@@ -516,7 +516,7 @@ var RTE = Widget.extend({
// add contenteditable on link to improve its editing behaviour
$target.attr('contenteditable', true);
setTimeout(function () {
$editable.attr('contenteditable', false);
$editable.not($target).attr('contenteditable', false);
});
// once clicked outside, remove contenteditable on link
var reactive_editable = function(e){
+10 -2
View File
@@ -784,7 +784,9 @@ var fontIconsDialog = Widget.extend({
});
function createVideoNode(url) {
function createVideoNode(url, options) {
options = options || {};
// video url patterns(youtube, instagram, vimeo, dailymotion, youku)
var ytRegExp = /^(?:(?:https?:)?\/\/)?(?:www\.)?(?:youtu\.be\/|youtube\.com\/(?:embed\/|v\/|watch\?v=|watch\?.+&v=))((\w|-){11})(?:\S+)?$/;
var ytMatch = url.match(ytRegExp);
@@ -842,6 +844,10 @@ function createVideoNode(url) {
.attr('src', url);
}
if (options.autoplay) {
$video.attr("src", $video.attr("src") + "?autoplay=1");
}
$video.attr('frameborder', 0);
return $video;
@@ -856,6 +862,7 @@ var VideoDialog = Widget.extend({
events : _.extend({}, Dialog.prototype.events, {
'click input#urlvideo ~ button': 'get_video',
'click input#embedvideo ~ button': 'get_embed_video',
'change input#autoplay': 'get_video',
'change input#urlvideo': 'change_input',
'keyup input#urlvideo': 'change_input',
'change input#embedvideo': 'change_input',
@@ -874,6 +881,7 @@ var VideoDialog = Widget.extend({
if ($media.hasClass("media_iframe_video")) {
var src = $media.data('src');
this.$("input#urlvideo").val(src);
this.$("input#autoplay").prop("checked", (src || "").indexOf("autoplay") >= 0);
this.get_video();
}
return this._super();
@@ -898,7 +906,7 @@ var VideoDialog = Widget.extend({
},
get_video: function (event) {
if (event) event.preventDefault();
var $video = createVideoNode(this.$("input#urlvideo").val());
var $video = createVideoNode(this.$("input#urlvideo").val(), {autoplay: this.$("input#autoplay").is(":checked")});
this.$iframe.replaceWith($video);
this.$iframe = $video;
return false;
+1 -1
View File
@@ -355,7 +355,7 @@
</div>
<div class="text-center mt32">
<div class="checkbox">
<label>
<label title="The feature might not be supported for every video type">
<input id="autoplay" type="checkbox"/>Autoplay</label>
</div>
</div>
+1 -1
View File
@@ -142,7 +142,7 @@ class WebsiteBlog(http.Controller):
blog_posts = blog_post_obj.browse(cr, uid, blog_post_ids, context=context)
pager = request.website.pager(
url=request.httprequest.path,
url=request.httprequest.path.partition('/page/')[0],
total=len(blog_posts),
page=page,
step=self._blog_post_per_page,
-1
View File
@@ -5,7 +5,6 @@
<xpath expr="//div[@name='mail_button']" position="replace">
<div>
<form action="/website_form/" method="post" data-model_name="crm.lead" data-success_page="/page/website_crm.contactus_thanks" class="s_website_form form-horizontal container-fluid mt32" enctype="multipart/form-data">
<input type="hidden" name="csrf_token" t-att-value="request.csrf_token()"/>
<div class="form-group form-field o_website_form_required_custom">
<label class="col-md-3 col-sm-4 control-label" for="contact_name">Your Name</label>
<div class="col-md-7 col-sm-8">
@@ -140,7 +140,7 @@
<template id="apply">
<t t-call="website.layout">
<t t-set="additional_title">Apply Job</t>
<div id="wrap" class="container">
<h1 class="text-center">
Job Application Form
@@ -152,7 +152,6 @@
<div class="row">
<section id="forms">
<form action="/website_form/" method="post" class="s_website_form form-horizontal container-fluid mt32" enctype="multipart/form-data" data-model_name="hr.applicant" data-success_page="/page/website_hr_recruitment.thankyou" t-att-data-form_field_department_id="job and job.department_id.id or False" t-att-data-form_field_job_id="job and job.id or False">
<input type="hidden" name="csrf_token" t-att-value="request.csrf_token()"/>
<div class="form-group form-field o_website_form_required_custom">
<div class="col-md-3 col-sm-4 text-right">
<label class="control-label" for="partner_name">Your Name</label>
+1 -1
View File
@@ -1952,7 +1952,7 @@ msgstr ""
#. module: website_sale
#: model:ir.ui.view,arch_db:website_sale.products
msgid "Use the <i>'Content'</i> top menu to create a new product."
msgid "Use the <i>'New page'</i> top menu to create a new product."
msgstr ""
#. module: website_sale
+1 -1
View File
@@ -197,7 +197,7 @@
<div class="text-center text-muted">
<h3 class="css_editable_display">No product defined.</h3>
<t groups="base.group_website_publisher">
<p groups="base.group_sale_manager">Use the <i>'Content'</i> top menu to create a new product.</p>
<p groups="base.group_sale_manager">Use the <i>'New page'</i> top menu to create a new product.</p>
</t>
</div>
</t>
+4
View File
@@ -130,6 +130,10 @@ preserve order.
* ``record in set`` returns whether ``record`` (which must be a 1-element
recordset) is present in ``set``. ``record not in set`` is the inverse
operation
* ``set1 <= set2`` and ``set1 < set2`` return whether ``set1`` is a subset
of ``set2`` (resp. strict)
* ``set1 >= set2`` and ``set1 > set2`` return whether ``set1`` is a superset
of ``set2`` (resp. strict)
* ``set1 | set2`` returns the union of the two recordsets, a new recordset
containing all records present in either source
* ``set1 & set2`` returns the intersection of two recordsets, a new recordset
+1 -1
View File
@@ -341,7 +341,7 @@ The ``request_sftp_access`` method returns a JSON dictionary containing the foll
SSH_KEYS=/path/to/your/authorized_keys
KEY="Aw7pItGVKFuZ_FOR3U8VFQ=="
REQUEST_ID="10534"
URL_PARAMS="key=${KEY}&request=${REQUEST}"
URL_PARAMS="key=${KEY}&request=${REQUEST_ID}"
curl -sS "${REQUEST_SFTP_ACCESS_URL}?${URL_PARAMS}" -F ssh_keys=@${SSH_KEYS} > request_sftp_result.json