diff --git a/addons/pos_restaurant/restaurant.py b/addons/pos_restaurant/restaurant.py
index d11bf26ad31..70583f06c16 100644
--- a/addons/pos_restaurant/restaurant.py
+++ b/addons/pos_restaurant/restaurant.py
@@ -31,17 +31,22 @@ _logger = logging.getLogger(__name__)
class restaurant_floor(osv.osv):
_name = 'restaurant.floor'
_columns = {
- 'name': fields.char('Floor Name', size=32, required=True, help='An internal identification of the restaurant floor'),
+ 'name': fields.char('Floor Name', required=True, help='An internal identification of the restaurant floor'),
'pos_config_id': fields.many2one('pos.config','Point of Sale'),
'background_image': fields.binary('Background Image', help='A background image used to display a floor layout in the point of sale interface'),
+ 'background_color': fields.char('Background Color', help='The background color of the floor layout, (must be specified in a html-compatible format)'),
'table_ids': fields.one2many('restaurant.table','floor_id','Tables', help='The list of tables in this floor'),
'sequence': fields.integer('Sequence',help='Used to sort Floors'),
}
_defaults = {
'sequence': 1,
+ 'background_color': 'rgb(210, 210, 210)',
}
+ def set_background_color(self, cr, uid, id, background, context=None):
+ self.write(cr, uid, [id], {'background_color': background}, context=context)
+
class restaurant_table(osv.osv):
_name = 'restaurant.table'
_columns = {
diff --git a/addons/pos_restaurant/restaurant_view.xml b/addons/pos_restaurant/restaurant_view.xml
index b676db3f8f3..3094a681b48 100644
--- a/addons/pos_restaurant/restaurant_view.xml
+++ b/addons/pos_restaurant/restaurant_view.xml
@@ -14,6 +14,7 @@
+
diff --git a/addons/pos_restaurant/static/src/js/floors.js b/addons/pos_restaurant/static/src/js/floors.js
index 46cd86483ba..7b5e7d6f9a0 100644
--- a/addons/pos_restaurant/static/src/js/floors.js
+++ b/addons/pos_restaurant/static/src/js/floors.js
@@ -5,7 +5,7 @@ openerp.pos_restaurant.load_floors = function(instance,module){
// At POS Startup, load the floors, and add them to the pos model
module.load_models({
model: 'restaurant.floor',
- fields: ['name','background_image','table_ids','sequence'],
+ fields: ['name','background_color','table_ids','sequence'],
domain: function(self){ return [['pos_config_id','=',self.config.id]] },
loaded: function(self,floors){
self.floors = floors;
@@ -354,6 +354,29 @@ openerp.pos_restaurant.load_floors = function(instance,module){
background_image_url: function(floor) {
return '/web/binary/image?model=restaurant.floor&id='+floor.id+'&field=background_image';
},
+ get_floor_style: function() {
+ var style = "";
+ if (this.floor.background_image) {
+ style += "background-image: url(" + this.background_image_url(this.floor) + "); ";
+ }
+ if (this.floor.background_color) {
+ style += "background-color: " + _.escape(this.floor.background_color) + ";";
+ }
+ return style;
+ },
+ set_background_color: function(background) {
+ this.floor.background_color = background;
+ (new instance.web.Model('restaurant.floor'))
+ .call('set_background_color',[this.floor.id, background]).fail(function(err,event){
+ self.gui.show_popup('error',{
+ 'title':_t('Changes could not be saved'),
+ 'body': _t('Check your internet connection and access rights'),
+ });
+ event.stopPropagation();
+ event.preventDefault();
+ });
+ this.renderElement();
+ },
deselect_tables: function(){
for (var i = 0; i < this.table_widgets.length; i++) {
var table = this.table_widgets[i];
@@ -385,13 +408,18 @@ openerp.pos_restaurant.load_floors = function(instance,module){
}
},
tool_colorpicker_open: function(){
+ this.$('.color-picker').addClass('oe_hidden');
if (this.selected_table) {
- this.$('.color-picker').removeClass('oe_hidden');
+ this.$('.color-picker.fg-picker').removeClass('oe_hidden');
+ } else {
+ this.$('.color-picker.bg-picker').removeClass('oe_hidden');
}
},
tool_colorpicker_pick: function(event,$el){
if (this.selected_table) {
this.selected_table.set_table_color($el[0].style['background-color']);
+ } else {
+ this.set_background_color($el[0].style['background-color']);
}
},
tool_colorpicker_close: function(){
diff --git a/addons/pos_restaurant/static/src/xml/floors.xml b/addons/pos_restaurant/static/src/xml/floors.xml
index dc8ba35eccb..f401bb54f27 100644
--- a/addons/pos_restaurant/static/src/xml/floors.xml
+++ b/addons/pos_restaurant/static/src/xml/floors.xml
@@ -70,7 +70,7 @@
-
+
@@ -86,21 +86,35 @@
-
+
-
+
-
-
-
+
+
+
-
-
-
+
+
+
+
+