Browse Source

[MIG] web_widget_color: Migration to 11.0

pull/777/head
Enric Tobella 7 years ago
parent
commit
d16218b671
No known key found for this signature in database GPG Key ID: 1A2546A1B7BA2451
  1. 23
      web_widget_color/README.rst
  2. 4
      web_widget_color/__manifest__.py
  3. 2
      web_widget_color/static/lib/jscolor/jscolor.js
  4. 77
      web_widget_color/static/src/js/widget.js
  5. 16
      web_widget_color/static/src/xml/widget.xml

23
web_widget_color/README.rst

@ -30,16 +30,7 @@ Features
Usage
=====
You need to declare a char field of at least size 7::
_columns = {
'color': fields.char(
u"Couleur",
help=u"Toutes couleur valid css, exemple blue ou #f57900"
),
}
OR
You need to declare a char field::
color = fields.Char(
string="Color",
@ -53,12 +44,19 @@ In the view declaration, put widget='color' attribute in the field tag::
<field name="arch" type="xml">
<tree string="View name">
...
<field name="name"/>
<field name="color" widget="color"/>
...
</tree>
</field>
...
<field name="arch" type="xml">
<form string="View name">
...
<field name="color" widget="color"/>
...
</form>
</field>
...
.. |picker| image:: ./images/picker.png
.. |formview| image:: ./images/form_view.png
@ -66,7 +64,7 @@ In the view declaration, put widget='color' attribute in the field tag::
.. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas
:alt: Try me on Runbot
:target: https://runbot.odoo-community.org/runbot/162/10.0
:target: https://runbot.odoo-community.org/runbot/162/11.0
Bug Tracker
===========
@ -83,6 +81,7 @@ Contributors
------------
* Adil Houmadi <adil.houmadi@gmail.com>
* Enric Tobella <etobella@creublanca.es>
* Nicolas JEUDY (Sudokeys) <https://www.github.com/njeudy>
Maintainer

4
web_widget_color/__manifest__.py

@ -4,11 +4,11 @@
# Copyright (C) 2014 Anybox <http://anybox.fr>
# Copyright (C) 2015 Taktik SA <http://taktik.be>
#
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).#
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).#
{
'name': "Web Widget Color",
'category': "web",
'version': "10.0.1.0.0",
'version': "11.0.1.0.0",
"author": "Savoir-faire Linux, "
"Anybox, "
"Taktik SA, "

2
web_widget_color/static/lib/jscolor/jscolor.js

@ -2,7 +2,7 @@
* jscolor, JavaScript Color Picker
*
* @version 1.4.4
* @license GNU Lesser General Public License, http://www.gnu.org/copyleft/lesser.html
* @license GNU Lesser General Public License, https://www.gnu.org/copyleft/lesser.html
* @author Jan Odvarko, http://odvarko.cz
* @created 2008-06-15
* @updated 2014-12-09

77
web_widget_color/static/src/js/widget.js

@ -1,88 +1,53 @@
odoo.define('web.web_widget_color', function(require) {
"use strict";
var core = require('web.core');
var widget = require('web.form_widgets');
var FormView = require('web.FormView');
var QWeb = core.qweb;
var _lt = core._lt;
var basic_fields = require('web.basic_fields');
var field_registry = require('web.field_registry');
var FormController = require('web.FormController');
var field_utils = require('web.field_utils');
var _super_getDir = jscolor.getDir.prototype;
jscolor.getDir = function () {
var dir = _super_getDir.constructor();
if (dir.indexOf('web_widget_color') === -1) {
jscolor.dir = 'web_widget_color/static/lib/jscolor/';
jscolor.dir = '/web_widget_color/static/lib/jscolor/';
}
return jscolor.dir;
};
var FieldColor = widget.FieldChar.extend({
var FieldColor = basic_fields.FieldChar.extend({
template: 'FieldColor',
widget_class: 'oe_form_field_color',
is_syntax_valid: function () {
var $input = this.$('input');
if (!this.get("effective_readonly") && $input.size() > 0) {
var val = $input.val();
var isOk = /^#[0-9A-F]{6}$/i.test(val);
if (!isOk) {
return false;
}
try {
this.parse_value(this.$('input').val(), '');
return true;
} catch (e) {
return false;
}
}
return true;
_getValue: function() {
return field_utils.format.char(this.$('input').val());
},
store_dom_value: function() {
if (!this.silent) {
if (!this.get('effective_readonly') &&
this.$('input').val() !== '' &&
this.is_syntax_valid()) {
// We use internal_set_value because we were called by
// ``.commit_value()`` which is called by a ``.set_value()``
// itself called because of a ``onchange`` event
this.internal_set_value(
this.parse_value(
this.$('input').val())
);
}
}
},
render_value: function () {
var show_value = this.format_value(this.get('value'), '');
if (!this.get("effective_readonly")) {
_render: function () {
var show_value = field_utils.format.char(this.value);
jscolor.init(this.$el[0]);
if (this.mode !== 'readonly') {
var $input = this.$el.find('input');
$input.val(show_value);
$input.css("background-color", show_value);
jscolor.init(this.$el[0]);
this.$input = $input;
this.$(".oe_form_char_content").text(show_value);
this.$('span').css("background-color", show_value);
} else {
this.$(".oe_form_char_content").text(show_value);
this.$('span').css("background-color", show_value);
}
}
});
core.form_widget_registry.add('color', FieldColor);
field_registry.add('color', FieldColor);
/*
* Init jscolor for each editable mode on view form
*/
FormView.include({
on_button_edit: function () {
this._super();
jscolor.init(this.$el[0]);
},
on_button_create: function () {
this._super();
FormController.include({
_updateEnv : function (parentID) {
this._super(parentID);
jscolor.init(this.$el[0]);
}
});
return {
FieldColor: FieldColor
};
return FieldColor
});

16
web_widget_color/static/src/xml/widget.xml

@ -1,18 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<templates>
<t t-name="FieldColor">
<span t-att-class="'oe_form_field '+widget.widget_class" t-att-style="widget.node.attrs.style">
<t t-if="!widget.get('effective_readonly')">
<span t-att-class="'oe_form_field '+widget.widget_class" t-att-style="widget.attrs.style">
<input type="text"
t-att-id="widget.id_for_label"
t-att-tabindex="widget.node.attrs.tabindex"
t-att-autofocus="widget.node.attrs.autofocus"
t-att-placeholder="widget.node.attrs.placeholder"
t-att-tabindex="widget.attrs.tabindex"
t-att-autofocus="widget.attrs.autofocus"
t-att-placeholder="widget.attrs.placeholder"
t-att-maxlength="widget.field.size"
class="color {hash:true}"
/>
</t>
<t t-if="widget.get('effective_readonly')">
class="color {hash:true} o_input"
t-if="widget.mode !== 'readonly'"/>
<t t-else="">
<div/>
<span class="oe_form_char_content"></span>
</t>

Loading…
Cancel
Save