From d1c3948a05acbe73fc6965833a442a1b35efdbf8 Mon Sep 17 00:00:00 2001 From: Yannick Tivisse Date: Tue, 8 Jan 2019 13:12:33 +0100 Subject: [PATCH] Revert "[IMP] lunch: automatize lunch orders" This reverts commit f727b8f0b57aad49f2ea8c54600ab73bbd02570f. --- addons/lunch/__init__.py | 3 +- addons/lunch/__manifest__.py | 7 +- addons/lunch/controllers/__init__.py | 1 - addons/lunch/controllers/main.py | 67 ---- addons/lunch/data/ir_cron_data.xml | 17 - addons/lunch/data/lunch_data.xml | 15 +- addons/lunch/data/lunch_demo.xml | 155 +++------ addons/lunch/models/__init__.py | 2 +- addons/lunch/models/lunch_alert.py | 85 +++++ addons/lunch/models/lunch_cashmove.py | 7 +- addons/lunch/models/lunch_order.py | 297 +++++++++++++----- addons/lunch/models/lunch_product.py | 87 +++-- addons/lunch/models/lunch_supplier.py | 180 ----------- addons/lunch/security/ir.model.access.csv | 4 +- addons/lunch/static/img/4formaggio.png | Bin 8362 -> 0 bytes addons/lunch/static/img/Coke.png | Bin 7469 -> 0 bytes addons/lunch/static/img/bacon_burger.png | Bin 8027 -> 0 bytes addons/lunch/static/img/brie.png | Bin 6794 -> 0 bytes addons/lunch/static/img/cheeseburger.png | Bin 7020 -> 0 bytes addons/lunch/static/img/chicken_curry.png | Bin 7147 -> 0 bytes addons/lunch/static/img/chirashi.png | Bin 7221 -> 0 bytes addons/lunch/static/img/club.png | Bin 7011 -> 0 bytes addons/lunch/static/img/coke_zero.png | Bin 7153 -> 0 bytes addons/lunch/static/img/fanta.png | Bin 5855 -> 0 bytes addons/lunch/static/img/fuze_black.png | Bin 5623 -> 0 bytes addons/lunch/static/img/fuze_green.png | Bin 4724 -> 0 bytes addons/lunch/static/img/gouda.png | Bin 7864 -> 0 bytes addons/lunch/static/img/italiana.png | Bin 11549 -> 0 bytes addons/lunch/static/img/lipton.png | Bin 6784 -> 0 bytes addons/lunch/static/img/maki.png | Bin 8806 -> 0 bytes addons/lunch/static/img/mozza.png | Bin 6191 -> 0 bytes addons/lunch/static/img/napoli.png | Bin 9099 -> 0 bytes addons/lunch/static/img/pasta_bolognese.png | Bin 6727 -> 0 bytes addons/lunch/static/img/pizza_funghi.png | Bin 9213 -> 0 bytes addons/lunch/static/img/pizza_margherita.png | Bin 8597 -> 0 bytes addons/lunch/static/img/pizza_veggie.png | Bin 7354 -> 0 bytes addons/lunch/static/img/salmon_sushi.png | Bin 6885 -> 0 bytes addons/lunch/static/img/temaki.png | Bin 9244 -> 0 bytes addons/lunch/static/img/tuna_sandwich.png | Bin 6425 -> 0 bytes addons/lunch/static/src/js/lunch.js | 94 ++++++ .../static/src/js/lunch_kanban_controller.js | 190 ----------- .../lunch/static/src/js/lunch_kanban_model.js | 19 -- .../static/src/js/lunch_kanban_record.js | 22 -- .../static/src/js/lunch_kanban_renderer.js | 29 -- .../lunch/static/src/js/lunch_kanban_view.js | 42 --- .../static/src/js/lunch_kanban_widget.js | 87 ----- .../static/src/js/lunch_payment_dialog.js | 24 -- addons/lunch/static/src/scss/lunch.scss | 14 + .../lunch/static/src/scss/lunch_kanban.scss | 48 --- addons/lunch/static/src/xml/lunch_kanban.xml | 118 ------- addons/lunch/static/tests/lunch_tests.js | 145 +++++++++ .../lunch/static/tests/test_lunch_kanban.js | 207 ------------ addons/lunch/tests/__init__.py | 3 +- addons/lunch/tests/common.py | 75 ----- addons/lunch/tests/test_lunch.py | 143 +++++++++ addons/lunch/tests/test_supplier.py | 158 ---------- addons/lunch/views/lunch_alert_views.xml | 134 ++++++++ addons/lunch/views/lunch_orders_views.xml | 31 +- addons/lunch/views/lunch_product_views.xml | 92 ++---- addons/lunch/views/lunch_supplier_views.xml | 113 ------- addons/lunch/views/lunch_templates.xml | 17 +- addons/lunch/views/lunch_views.xml | 8 +- addons/lunch/wizard/__init__.py | 2 +- addons/lunch/wizard/lucky_order.py | 44 +++ addons/lunch/wizard/lucky_order_view.xml | 35 +++ addons/lunch/wizard/lunch_line_wizard.py | 77 ----- .../lunch/wizard/lunch_line_wizard_views.xml | 35 --- addons/lunch_hr/__init__.py | 4 - addons/lunch_hr/__manifest__.py | 19 -- addons/lunch_hr/data/lunch_hr_demo.xml | 28 -- addons/lunch_hr/models/__init__.py | 5 - addons/lunch_hr/models/lunch_product.py | 33 -- addons/lunch_hr/models/lunch_supplier.py | 10 - addons/lunch_hr/views/lunch_product_views.xml | 13 - .../lunch_hr/views/lunch_supplier_views.xml | 13 - 75 files changed, 1083 insertions(+), 1975 deletions(-) delete mode 100644 addons/lunch/controllers/__init__.py delete mode 100644 addons/lunch/controllers/main.py delete mode 100644 addons/lunch/data/ir_cron_data.xml create mode 100644 addons/lunch/models/lunch_alert.py delete mode 100644 addons/lunch/models/lunch_supplier.py delete mode 100644 addons/lunch/static/img/4formaggio.png delete mode 100644 addons/lunch/static/img/Coke.png delete mode 100644 addons/lunch/static/img/bacon_burger.png delete mode 100644 addons/lunch/static/img/brie.png delete mode 100644 addons/lunch/static/img/cheeseburger.png delete mode 100644 addons/lunch/static/img/chicken_curry.png delete mode 100644 addons/lunch/static/img/chirashi.png delete mode 100644 addons/lunch/static/img/club.png delete mode 100644 addons/lunch/static/img/coke_zero.png delete mode 100644 addons/lunch/static/img/fanta.png delete mode 100644 addons/lunch/static/img/fuze_black.png delete mode 100644 addons/lunch/static/img/fuze_green.png delete mode 100644 addons/lunch/static/img/gouda.png delete mode 100644 addons/lunch/static/img/italiana.png delete mode 100644 addons/lunch/static/img/lipton.png delete mode 100644 addons/lunch/static/img/maki.png delete mode 100644 addons/lunch/static/img/mozza.png delete mode 100644 addons/lunch/static/img/napoli.png delete mode 100644 addons/lunch/static/img/pasta_bolognese.png delete mode 100644 addons/lunch/static/img/pizza_funghi.png delete mode 100644 addons/lunch/static/img/pizza_margherita.png delete mode 100644 addons/lunch/static/img/pizza_veggie.png delete mode 100644 addons/lunch/static/img/salmon_sushi.png delete mode 100644 addons/lunch/static/img/temaki.png delete mode 100644 addons/lunch/static/img/tuna_sandwich.png create mode 100644 addons/lunch/static/src/js/lunch.js delete mode 100644 addons/lunch/static/src/js/lunch_kanban_controller.js delete mode 100644 addons/lunch/static/src/js/lunch_kanban_model.js delete mode 100644 addons/lunch/static/src/js/lunch_kanban_record.js delete mode 100644 addons/lunch/static/src/js/lunch_kanban_renderer.js delete mode 100644 addons/lunch/static/src/js/lunch_kanban_view.js delete mode 100644 addons/lunch/static/src/js/lunch_kanban_widget.js delete mode 100644 addons/lunch/static/src/js/lunch_payment_dialog.js create mode 100644 addons/lunch/static/src/scss/lunch.scss delete mode 100644 addons/lunch/static/src/scss/lunch_kanban.scss delete mode 100644 addons/lunch/static/src/xml/lunch_kanban.xml create mode 100644 addons/lunch/static/tests/lunch_tests.js delete mode 100644 addons/lunch/static/tests/test_lunch_kanban.js delete mode 100644 addons/lunch/tests/common.py create mode 100644 addons/lunch/tests/test_lunch.py delete mode 100644 addons/lunch/tests/test_supplier.py create mode 100644 addons/lunch/views/lunch_alert_views.xml delete mode 100644 addons/lunch/views/lunch_supplier_views.xml create mode 100644 addons/lunch/wizard/lucky_order.py create mode 100644 addons/lunch/wizard/lucky_order_view.xml delete mode 100644 addons/lunch/wizard/lunch_line_wizard.py delete mode 100644 addons/lunch/wizard/lunch_line_wizard_views.xml delete mode 100644 addons/lunch_hr/__init__.py delete mode 100644 addons/lunch_hr/__manifest__.py delete mode 100644 addons/lunch_hr/data/lunch_hr_demo.xml delete mode 100644 addons/lunch_hr/models/__init__.py delete mode 100644 addons/lunch_hr/models/lunch_product.py delete mode 100644 addons/lunch_hr/models/lunch_supplier.py delete mode 100644 addons/lunch_hr/views/lunch_product_views.xml delete mode 100644 addons/lunch_hr/views/lunch_supplier_views.xml diff --git a/addons/lunch/__init__.py b/addons/lunch/__init__.py index 88710707227..b6f07433380 100644 --- a/addons/lunch/__init__.py +++ b/addons/lunch/__init__.py @@ -1,6 +1,5 @@ # -*- coding: utf-8 -*- # Part of Odoo. See LICENSE file for full copyright and licensing details. -from . import controllers -from . import models from . import wizard +from . import models diff --git a/addons/lunch/__manifest__.py b/addons/lunch/__manifest__.py index 5268ecca6a7..e28b88a82f2 100644 --- a/addons/lunch/__manifest__.py +++ b/addons/lunch/__manifest__.py @@ -27,17 +27,16 @@ If you want to save your employees' time and avoid them to always have coins in 'report/lunch_order_views.xml', 'report/lunch_order_templates.xml', 'views/lunch_templates.xml', - 'wizard/lunch_line_wizard_views.xml', + 'wizard/lucky_order_view.xml', + 'views/lunch_alert_views.xml', 'views/lunch_cashmove_views.xml', 'views/lunch_orders_views.xml', 'views/lunch_product_views.xml', - 'views/lunch_supplier_views.xml', 'views/lunch_views.xml', 'data/lunch_data.xml', - 'data/ir_cron_data.xml' ], 'demo': ['data/lunch_demo.xml'], - 'qweb': ['static/src/xml/lunch_kanban.xml', ], + 'qweb': ['static/src/xml/lunch.xml', ], 'installable': True, 'application': True, 'certificate': '001292377792581874189', diff --git a/addons/lunch/controllers/__init__.py b/addons/lunch/controllers/__init__.py deleted file mode 100644 index 12a7e529b67..00000000000 --- a/addons/lunch/controllers/__init__.py +++ /dev/null @@ -1 +0,0 @@ -from . import main diff --git a/addons/lunch/controllers/main.py b/addons/lunch/controllers/main.py deleted file mode 100644 index 314cf5ad292..00000000000 --- a/addons/lunch/controllers/main.py +++ /dev/null @@ -1,67 +0,0 @@ -# -*- coding: utf-8 -*- -# Part of Odoo. See LICENSE file for full copyright and licensing details. - -from odoo import http, fields -from odoo.http import request - - -class LunchController(http.Controller): - @http.route('/lunch/infos', type='json', auth='user') - def infos(self, user_id=None): - user = request.env['res.users'].browse(user_id) if user_id else request.env.user - - infos = { - 'order': False, - 'wallet': request.env['lunch.cashmove'].get_wallet_balance(user), - 'username': user.sudo().name, - 'userimage': '/web/image?model=res.users&id=%s&field=image_small' % user.id, - 'is_manager': request.env.user.has_group('lunch.group_lunch_manager'), - 'users': request.env['res.users'].search_read([('groups_id', 'not in', [request.env.ref('base.group_portal').id])], ['name']), - } - - order = self._get_current_order(user.id) - if order: - lines = [{'id': line.id, - 'product': (line.product_id.name, line.product_id.price), - 'toppings': [(topping.name, topping.price) for topping in line.topping_ids], - 'quantity': line.quantity, - 'price': line.price} for line in order.order_line_ids] - infos.update({ - 'order': order.id, - 'total': order.total, - 'state': order.state, - 'lines': lines, - }) - return infos - - @http.route('/lunch/trash', type='json', auth='user') - def trash(self, user_id=None): - user = request.env['res.users'].browse(user_id) if user_id else request.env.user - - order = self._get_current_order(user.id) - order.unlink() - - @http.route('/lunch/pay', type='json', auth='user') - def pay(self, user_id=None): - user = request.env['res.users'].browse(user_id) if user_id else request.env.user - - order = self._get_current_order(user.id) - if order: - wallet_balance = request.env['lunch.cashmove'].get_wallet_balance(user) - - if order.state == 'new' and order.total <= wallet_balance: - return self._make_payment(order) - - return False - - @http.route('/lunch/payment_message', type='json', auth='user') - def payment_message(self): - return {'message': request.env['ir.qweb'].render('lunch.lunch_payment_dialog', {})} - - def _get_current_order(self, user_id): - order = request.env['lunch.order'].search([('user_id', '=', user_id), ('date', '=', fields.Date.today())], limit=1) - return order - - def _make_payment(self, order): - order.action_order() - return True diff --git a/addons/lunch/data/ir_cron_data.xml b/addons/lunch/data/ir_cron_data.xml deleted file mode 100644 index 19275e67f21..00000000000 --- a/addons/lunch/data/ir_cron_data.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - Lunch: automatic email send - - code - model._auto_email_send() - - - 10 - minutes - -1 - - - - diff --git a/addons/lunch/data/lunch_data.xml b/addons/lunch/data/lunch_data.xml index 0f269f42d0c..2332d2e5272 100644 --- a/addons/lunch/data/lunch_data.xml +++ b/addons/lunch/data/lunch_data.xml @@ -1,12 +1,23 @@ + + Lunch: Order meals + + + code + +if records: + action = records.order() + + + Lunch: Receive meals code - records.action_confirm() + records.confirm() @@ -14,7 +25,7 @@ code - records.action_cancel() + records.cancel() diff --git a/addons/lunch/data/lunch_demo.xml b/addons/lunch/data/lunch_demo.xml index f91a57a183d..bd36db1f0af 100644 --- a/addons/lunch/data/lunch_demo.xml +++ b/addons/lunch/data/lunch_demo.xml @@ -28,7 +28,7 @@ Chirashi - + Coin gourmand Tirana @@ -37,13 +37,7 @@ coin.gourmand@yourcompany.example.com - - - 8 - 23 - - - + Pizza Inn New Delhi TN @@ -62,12 +56,6 @@ info@corner.com - - - 8 - 23 - - Sushi Shop Paris @@ -77,228 +65,178 @@ order@sushi.com - - - 8 - 23 - - Bacon 7.5 - + Beef, Bacon, Salad, Cheddar, Fried Onion, BBQ Sauce - Cheese Burger 7.0 - + Beef, Cheddar, Salad, Fried Onions, BBQ Sauce - Chicken Curry 3.0 - - + Spicy Tuna 3.0 - - + Mozzarella 3.9 - + Mozzarella, Pesto, Tomatoes - Club 3.4 - + Ham, Cheese, Vegetables - Lunch Maki 18pc 12.0 - + 6 Maki Salmon - 6 Maki Tuna - 6 Maki Shrimp/Avocado - Lunch Salmon 20pc 13.80 - + 4 Sushi Salmon - 6 Maki Salmon - 4 Sashimi Salmon - Lunch Temaki mix 3pc 14.0 - - 1 Avocado - 1 Salmon - 1 Eggs - 1 Tuna - + + 1 Avocado/Cooked Tuna - 1 Salmon/Eggs - 1 Salmon/Avocado - 1 Tuna/Mango Salmon and Avocado 9.25 - - 2 Tempuras, Cabbages, Onions, Sesame Sauce - - - - - - mail - - 11 - 8 - 23 - reccurent - - - - - + + Shrimp Tempura, Yam Tempura, Chinese Cabbage, Pickled Onions, Sesame Sauce Cheese And Ham 3.30 - + Cheese, Ham, Salad, Tomatoes, cucumbers, eggs - The Country 3.30 - + Brie, Honey, Walnut Kernels - Tuna 2.50 - + Tuna, Mayonnaise - Gouda Cheese 2.50 - + - Chicken Curry 2.60 - + - Pizza Margherita 6.90 - + Tomatoes, Mozzarella - Pizza Funghi 7.00 - + Tomatoes, Mushrooms, Mozzarella - Pizza Vegetarian 7.00 - + Tomatoes, Mozzarella, Mushrooms, Peppers, Olives - Pizza Italiana 7.40 - + Fresh Tomatoes, Basil, Mozzarella - Bolognese Pasta 7.70 - + - Napoli Pasta 7.70 - + Tomatoes, Basil - - - - - Olives - 0.30 - - 4 Formaggi 5.50 - + Tomato sauce, Olive oil, Fresh Tomatoes, Onions, Vegetables, Parmesan - @@ -306,7 +244,6 @@ new - @@ -314,7 +251,6 @@ confirmed - @@ -322,7 +258,6 @@ confirmed - @@ -338,9 +273,9 @@ 7.70 new - + + +Emmental - 1 @@ -349,9 +284,9 @@ 7.40 confirmed - + + +Mushrooms - 1 @@ -360,9 +295,9 @@ 2.50 cancelled - + + +Salad +Tomatoes +Cucumbers - 1 @@ -371,9 +306,9 @@ 2.60 confirmed - + + +Salad +Tomatoes +Eggs - 1 @@ -382,7 +317,7 @@ 5.50 confirmed - + @@ -391,7 +326,7 @@ Pizza Italiana -7.40 - + order @@ -400,7 +335,7 @@ Chicken curry -2.60 - + order @@ -425,8 +360,22 @@ Pasta 4 Formaggi -5.50 - + order + + + week + + + + + + + + 7 + 23 + Lunch must be ordered before 10:30 AM + diff --git a/addons/lunch/models/__init__.py b/addons/lunch/models/__init__.py index 58a34e7891b..f99750c87d0 100644 --- a/addons/lunch/models/__init__.py +++ b/addons/lunch/models/__init__.py @@ -1,6 +1,6 @@ # -*- coding: utf-8 -*- +from . import lunch_alert from . import lunch_cashmove from . import lunch_order from . import lunch_product -from . import lunch_supplier diff --git a/addons/lunch/models/lunch_alert.py b/addons/lunch/models/lunch_alert.py new file mode 100644 index 00000000000..325a64f4385 --- /dev/null +++ b/addons/lunch/models/lunch_alert.py @@ -0,0 +1,85 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +import datetime + +from odoo import api, fields, models, _ + + +class LunchAlert(models.Model): + """ Alerts to display during a lunch order. An alert can be specific to a + given day, weekly or daily. The alert is displayed from start to end hour. """ + _name = 'lunch.alert' + _description = 'Lunch Alert' + _rec_name = 'message' + + display = fields.Boolean(compute='_compute_display_get') + message = fields.Text('Message', required=True) + alert_type = fields.Selection([('specific', 'Specific Day'), + ('week', 'Every Week'), + ('days', 'Every Day')], + string='Recurrence', required=True, index=True, default='specific') + partner_id = fields.Many2one('res.partner', string="Vendor", + help="If specified, the selected vendor can be ordered only on selected days") + specific_day = fields.Date('Day', default=fields.Date.context_today) + monday = fields.Boolean('Monday') + tuesday = fields.Boolean('Tuesday') + wednesday = fields.Boolean('Wednesday') + thursday = fields.Boolean('Thursday') + friday = fields.Boolean('Friday') + saturday = fields.Boolean('Saturday') + sunday = fields.Boolean('Sunday') + start_hour = fields.Float('Between', oldname='active_from', required=True, default=7) + end_hour = fields.Float('And', oldname='active_to', required=True, default=23) + active = fields.Boolean(default=True) + + @api.multi + def name_get(self): + return [(alert.id, '%s %s' % (_('Alert'), '#%d' % alert.id)) for alert in self] + + @api.depends('alert_type', 'specific_day', 'monday', 'tuesday', 'thursday', + 'friday', 'saturday', 'sunday', 'start_hour', 'end_hour') + def _compute_display_get(self): + """ + This method check if the alert can be displayed today + if alert type is specific : compare specific_day(date) with today's date + if alert type is week : check today is set as alert (checkbox true) eg. self['monday'] + if alert type is day : True + return : Message if can_display_alert is True else False + """ + days_codes = {'0': 'sunday', + '1': 'monday', + '2': 'tuesday', + '3': 'wednesday', + '4': 'thursday', + '5': 'friday', + '6': 'saturday'} + fullday = False + now = datetime.datetime.now() + if self.env.context.get('lunch_date'): + # lunch_date is a fields.Date -> 00:00:00 + lunch_date = fields.Datetime.from_string(self.env.context['lunch_date']) + # if lunch_date is in the future, planned lunch, ignore hours + fullday = lunch_date > now + now = max(lunch_date, now) + mynow = fields.Datetime.context_timestamp(self, now) + + for alert in self: + can_display_alert = { + 'specific': (str(alert.specific_day) == fields.Date.to_string(mynow)), + 'week': alert[days_codes[mynow.strftime('%w')]], + 'days': True + } + + if can_display_alert[alert.alert_type]: + hour_to = int(alert.end_hour) + min_to = int((alert.end_hour - hour_to) * 60) + to_alert = datetime.time(hour_to, min_to) + hour_from = int(alert.start_hour) + min_from = int((alert.start_hour - hour_from) * 60) + from_alert = datetime.time(hour_from, min_from) + + if fullday or (from_alert <= mynow.time() <= to_alert): + alert.display = True + else: + alert.display = False diff --git a/addons/lunch/models/lunch_cashmove.py b/addons/lunch/models/lunch_cashmove.py index 2cb71a77c69..7d4a6b56ae4 100644 --- a/addons/lunch/models/lunch_cashmove.py +++ b/addons/lunch/models/lunch_cashmove.py @@ -2,7 +2,6 @@ # Part of Odoo. See LICENSE file for full copyright and licensing details. from odoo import api, fields, models, _ -from odoo.tools import float_round class LunchCashMove(models.Model): @@ -15,14 +14,10 @@ class LunchCashMove(models.Model): date = fields.Date('Date', required=True, default=fields.Date.context_today) amount = fields.Float('Amount', required=True, help='Can be positive (payment) or negative (order or payment if user wants to get his money back)') description = fields.Text('Description', help='Can be an order or a payment') - order_line_id = fields.Many2one('lunch.order.line', 'Order', ondelete='cascade') + order_id = fields.Many2one('lunch.order.line', 'Order', ondelete='cascade') state = fields.Selection([('order', 'Order'), ('payment', 'Payment')], 'Is an order or a payment', default='payment') @api.multi def name_get(self): return [(cashmove.id, '%s %s' % (_('Lunch Cashmove'), '#%d' % cashmove.id)) for cashmove in self] - - @api.model - def get_wallet_balance(self, user): - return float_round(sum(move['amount'] for move in self.search_read([('user_id', '=', user.id)], ['amount'])), precision_digits=2) diff --git a/addons/lunch/models/lunch_order.py b/addons/lunch/models/lunch_order.py index 623a9cada50..f4354913db8 100644 --- a/addons/lunch/models/lunch_order.py +++ b/addons/lunch/models/lunch_order.py @@ -1,15 +1,19 @@ # -*- coding: utf-8 -*- # Part of Odoo. See LICENSE file for full copyright and licensing details. +from collections import OrderedDict + +import json + from odoo import api, fields, models, _ -from odoo.exceptions import UserError, ValidationError +from odoo.exceptions import AccessError, ValidationError from odoo.addons import decimal_precision as dp class LunchOrder(models.Model): """ A lunch order contains one or more lunch order line(s). It is associated to a user for a given - date. + date. When creating a lunch order, applicable lunch alerts are displayed. """ _name = 'lunch.order' _description = 'Lunch Order' @@ -35,29 +39,24 @@ class LunchOrder(models.Model): states={'new': [('readonly', False)], False: [('readonly', False)]}) total = fields.Float(compute='_compute_total', string="Total", store=True) state = fields.Selection([('new', 'New'), - ('ordered', 'Ordered'), ('confirmed', 'Received'), ('cancelled', 'Cancelled')], - 'Status', readonly=True, index=True, copy=False, default='new') + 'Status', readonly=True, index=True, copy=False, + compute='_compute_order_state', store=True) + alerts = fields.Text(compute='_compute_alerts_get', string="Alerts") company_id = fields.Many2one('res.company', related='user_id.company_id', store=True, readonly=False) currency_id = fields.Many2one('res.currency', related='company_id.currency_id', readonly=True, store=True) cash_move_balance = fields.Monetary(compute='_compute_cash_move_balance', multi='cash_move_balance') balance_visible = fields.Boolean(compute='_compute_cash_move_balance', multi='cash_move_balance') + previous_order_ids = fields.Many2many('lunch.order.line', compute='_compute_previous_order') + previous_order_widget = fields.Text(compute='_compute_previous_order') - mail_sent = fields.Boolean('Mail Sent', readonly=True) - supplier_ids = fields.Many2many('lunch.supplier', compute='_compute_supplier_ids', store=True) - - @api.depends('order_line_ids', 'order_line_ids.supplier_id', 'order_line_ids.product_id') - def _compute_supplier_ids(self): - for order in self: - order.supplier_ids = order.mapped('order_line_ids.supplier_id') - - @api.depends('order_line_ids', 'order_line_ids.quantity', 'order_line_ids.price') + @api.one + @api.depends('order_line_ids') def _compute_total(self): """ get and sum the order lines' price """ - self.ensure_one() self.total = sum( orderline.price for orderline in self.order_line_ids) @@ -65,55 +64,96 @@ class LunchOrder(models.Model): def name_get(self): return [(order.id, '%s %s' % (_('Lunch Order'), '#%d' % order.id)) for order in self] + @api.depends('state') + def _compute_alerts_get(self): + """ + get the alerts to display on the order form + """ + alert_msg = [alert.message + for alert in self.env['lunch.alert'].search([]) + if alert.display] + + if self.state == 'new': + self.alerts = alert_msg and '\n'.join(alert_msg) or False + + @api.multi + @api.depends('user_id', 'state') + def _compute_previous_order(self): + self.ensure_one() + self.previous_order_widget = json.dumps(False) + + prev_order = self.env['lunch.order.line'].search([('user_id', '=', self.env.uid), ('product_id.active', '!=', False)], limit=20, order='date desc, id desc') + # If we use prev_order.ids, we will have duplicates (identical orders). + # Therefore, this following part removes duplicates based on product_id and note. + self.previous_order_ids = list({ + (order.product_id, order.note): order.id + for order in prev_order + }.values()) + + if self.previous_order_ids: + lunch_data = {} + for line in self.previous_order_ids: + lunch_data[line.id] = { + 'line_id': line.id, + 'product_id': line.product_id.id, + 'product_name': line.product_id.name, + 'supplier': line.supplier.name, + 'note': line.note, + 'price': line.price, + 'date': fields.Date.to_string(line.date), + 'currency_id': line.currency_id.id, + } + # sort the old lunch orders by (date, id) + lunch_data = OrderedDict(sorted(lunch_data.items(), key=lambda t: (t[1]['date'], t[0]), reverse=True)) + self.previous_order_widget = json.dumps(lunch_data) + + @api.one @api.depends('user_id') def _compute_cash_move_balance(self): - self.ensure_one() domain = [('user_id', '=', self.user_id.id)] lunch_cash = self.env['lunch.cashmove'].read_group(domain, ['amount', 'user_id'], ['user_id']) - if lunch_cash: + if len(lunch_cash): self.cash_move_balance = lunch_cash[0]['amount'] self.balance_visible = (self.user_id == self.env.user) or self.user_has_groups('lunch.group_lunch_manager') + @api.one @api.constrains('date') def _check_date(self): """ Prevents the user to create an order in the past """ - self.ensure_one() date_order = self.date date_today = fields.Date.context_today(self) if date_order < date_today: raise ValidationError(_('The date of your order is in the past.')) - def action_order(self): - for order in self: - for line in order.order_line_ids: - self.env['lunch.cashmove'].sudo().create({ - 'user_id': line.user_id.id, - 'amount': -line.price, - 'description': line.product_id.name, - 'order_line_id': line.id, - 'state': 'order', - 'date': line.date, - }) + @api.one + @api.depends('order_line_ids.state') + def _compute_order_state(self): + """ + Update the state of lunch.order based on its orderlines. Here is the logic: + - if at least one order line is cancelled, the order is set as cancelled + - if no line is cancelled but at least one line is not confirmed, the order is set as new + - if all lines are confirmed, the order is set as confirmed + """ + if not self.order_line_ids: + self.state = 'new' + else: + isConfirmed = True + for orderline in self.order_line_ids: + if orderline.state == 'cancelled': + self.state = 'cancelled' + return + elif orderline.state == 'confirmed': + continue + else: + isConfirmed = False - self.mapped('order_line_ids').write({'state': 'ordered'}) - self.write({'state': 'ordered'}) - - def action_confirm(self, supplier=None): - for order in self: - if supplier: - order.order_line_ids.filtered(lambda line: line.state == 'ordered' and line.supplier_id == supplier).write({'state': 'confirmed'}) + if isConfirmed: + self.state = 'confirmed' else: - order.order_line_ids.filtered(lambda line: line.state == 'ordered').write({'state': 'confirmed'}) - order.write({'state': 'confirmed', - 'mail_sent': True}) - - def action_cancel(self): - for order in self: - # RLI FIXME maybe we don't need to filter - order.order_line_ids.filtered(lambda line: line.state != 'confirmed').action_cancel() - order.write({'state': 'cancelled'}) + self.state = 'new' + return class LunchOrderLine(models.Model): @@ -123,58 +163,153 @@ class LunchOrderLine(models.Model): name = fields.Char(related='product_id.name', string="Product Name", readonly=True) order_id = fields.Many2one('lunch.order', 'Order', ondelete='cascade', required=True) - topping_ids = fields.Many2many('lunch.product', string='Toppings') - product_id = fields.Many2one('lunch.product', string="Product", domain=[('is_topping', '=', False)], required=True) + product_id = fields.Many2one('lunch.product', 'Product', required=True, + domain=[('available', '=', True)]) category_id = fields.Many2one('lunch.product.category', string='Product Category', related='product_id.category_id', readonly=True, store=True) date = fields.Date(string='Date', related='order_id.date', readonly=True, store=True) - supplier_id = fields.Many2one('lunch.supplier', string='Vendor', related='product_id.supplier_id', - readonly=True, store=True, index=True) + supplier = fields.Many2one('res.partner', string='Vendor', related='product_id.supplier', + readonly=True, store=True) user_id = fields.Many2one('res.users', string='User', related='order_id.user_id', readonly=True, store=True) note = fields.Text('Note') - price = fields.Float('Total Price', compute='_compute_total_price', readonly=True, store=True, + price = fields.Float(related='product_id.price', readonly=True, store=True, digits=dp.get_precision('Account')) state = fields.Selection([('new', 'New'), - ('ordered', 'Ordered'), ('confirmed', 'Received'), + ('ordered', 'Ordered'), ('cancelled', 'Cancelled')], 'Status', readonly=True, index=True, default='new') - cashmove = fields.One2many('lunch.cashmove', 'order_line_id', 'Cash Move') + cashmove = fields.One2many('lunch.cashmove', 'order_id', 'Cash Move') currency_id = fields.Many2one('res.currency', related='order_id.currency_id', readonly=False) - quantity = fields.Float('Quantity', required=True, default=1) - @api.depends('topping_ids', 'product_id', 'quantity') - def _compute_total_price(self): - for line in self: - line.price = line.quantity * sum(product.price for product in line.product_id | line.topping_ids) + def _check_supplier_availibility(self): + products = self.mapped('product_id') + if not all(product.available for product in products): + supplier_name = ", ".join(product.supplier.display_name for product in products if not product.available) + raise ValidationError(_("Vendor(s) '%s' is not available today") % supplier_name) - def update_quantity(self, increment): - for line in self: - old_cost = line.price - line.quantity += increment - new_cost = line.price - if new_cost - old_cost > self.env['lunch.cashmove'].get_wallet_balance(line.user_id): - raise UserError(_('Your wallet does not contain enough money to order that.' - 'To add some money to your wallet, please contact your lunch manager.')) - cashmove = self.env['lunch.cashmove'].search([('order_line_id', '=', line.id)], limit=1) - if cashmove: - cashmove.amount = -new_cost - if line.quantity <= 0: - order_id = line.order_id - line.sudo().unlink() - if not order_id.order_line_ids: - order_id.sudo().unlink() + @api.model + def create(self, vals): + """ Override as an onchange would not apply if using the history buttons """ + res = super(LunchOrderLine, self).create(vals) + res.with_context(lunch_date=res.order_id.date)._check_supplier_availibility() + return res - def action_confirm(self): - self.write({'state': 'confirmed'}) + @api.model + def write(self, vals): + """ Override as an onchange would not apply if using the history buttons """ + res = super(LunchOrderLine, self).write(vals) + if vals.get('product_id'): + for line in self: + line.with_context(lunch_date=line.order_id.date)._check_supplier_availibility() + return res - for order in self.mapped('order_id'): - if all(line.state == 'confirmed' for line in order.order_line_ids): - order.write({'state': 'confirmed', 'mail_sent': True}) + def order(self): + """ + The order_line is ordered to the vendor but isn't received yet + """ + if self.user_has_groups("lunch.group_lunch_manager"): + self.write({'state': 'ordered'}) - def action_cancel(self): - for line in self: - line.cashmove.sudo().unlink() + order = { + 'supplier': False, + 'company': False, + 'currency': False, + } + group_lines = {} + for line in self: + if not line.supplier: + # do not send emails for products with no suppliers + continue - self.write({'state': 'cancelled'}) + if order['supplier'] and line.supplier != order['supplier']: + raise ValidationError(_("Validate order for one supplier at a time to send emails (mixed orders from %s and %s)") % ( + order['supplier'].display_name, line.supplier.display_name)) + order['supplier'] = line.supplier + + if order['company'] and line.order_id.company_id != order['company']: + raise ValidationError(_("Validate order for one company at a time to send emails (mixed orders from %s and %s)") % ( + order['company'].name, line.order_id.company_id.name)) + order['company'] = line.order_id.company_id + + if order['currency'] and line.currency_id != order['currency']: + raise ValidationError(_("Validate order for one currency at a time to send emails (mixed orders from %s and %s)") % ( + order['currency'].name, line.currency_id.name)) + order['currency'] = line.currency_id + + # group the order by products and note + key = (line.product_id, line.note) + group_lines.setdefault(key, 0) + group_lines[key] += 1 + + order['company_name'] = order['company'].name + order['currency_id'] = order['currency'].id + order['supplier_id'] = order['supplier'].id + order['supplier_name'] = order['supplier'].name + order['supplier_email'] = order['supplier'].email_formatted + + lines = [] + # sort by product name, note + for product, note in sorted(group_lines, key=lambda k: (k[0].name, bool(k[1]))): + quantity = group_lines[(product, note)] + lines.append({ + 'product': product.name, + 'note': note or '', + 'quantity': quantity, + 'price': product.price * quantity, + }) + + order['amount_total'] = sum(l['price'] for l in lines) + + template = self.env.ref('lunch.lunch_order_mail_supplier', raise_if_not_found=False) + ctx = dict( + default_composition_mode='mass_mail', + default_use_template=bool(template), + default_template_id=template.id, + default_lang=order['supplier'].lang or self.env.user.lang, + order=order, + lines=lines, + ) + return { + 'type': 'ir.actions.act_window', + 'view_type': 'form', + 'view_mode': 'form', + 'res_model': 'mail.compose.message', + 'target': 'new', + 'context': ctx, + } + + else: + raise AccessError(_("Only your lunch manager processes the orders.")) + + @api.one + def confirm(self): + """ + confirm one or more order line, update order status and create new cashmove + """ + if self.user_has_groups("lunch.group_lunch_manager"): + if self.state != 'confirmed': + values = { + 'user_id': self.user_id.id, + 'amount': -self.price, + 'description': self.product_id.name, + 'order_id': self.id, + 'state': 'order', + 'date': self.date, + } + self.env['lunch.cashmove'].create(values) + self.state = 'confirmed' + else: + raise AccessError(_("Only your lunch manager sets the orders as received.")) + + @api.one + def cancel(self): + """ + cancel one or more order.line, update order status and unlink existing cashmoves + """ + if self.user_has_groups("lunch.group_lunch_manager"): + self.state = 'cancelled' + self.cashmove.unlink() + else: + raise AccessError(_("Only your lunch manager cancels the orders.")) diff --git a/addons/lunch/models/lunch_product.py b/addons/lunch/models/lunch_product.py index 1751ea7a6e1..8ded108fc81 100644 --- a/addons/lunch/models/lunch_product.py +++ b/addons/lunch/models/lunch_product.py @@ -1,11 +1,10 @@ # -*- coding: utf-8 -*- # Part of Odoo. See LICENSE file for full copyright and licensing details. -from dateutil.relativedelta import relativedelta - -from odoo import api, fields, models, tools, _ +from odoo import api, fields, models, _ from odoo.addons import decimal_precision as dp +from odoo.osv import expression class LunchProductCategory(models.Model): @@ -21,52 +20,44 @@ class LunchProduct(models.Model): _name = 'lunch.product' _description = 'Lunch Product' - name = fields.Char('Name', required=True) - category_id = fields.Many2one('lunch.product.category', 'Product Category') + name = fields.Char('Product', required=True) + category_id = fields.Many2one('lunch.product.category', 'Product Category', required=True) description = fields.Text('Description') - price = fields.Float('Price', digits=dp.get_precision('Account'), required=True) - supplier_id = fields.Many2one('lunch.supplier', 'Vendor', required=True) + price = fields.Float('Price', digits=dp.get_precision('Account')) + supplier = fields.Many2one('res.partner', 'Vendor') active = fields.Boolean(default=True) - is_topping = fields.Boolean("This product is an extra garniture") + available = fields.Boolean(compute='_get_available_product', search='_search_available_products') - # image: all image fields are base64 encoded and PIL-supported - image = fields.Binary( - "Image", attachment=True, - help="This field holds the image used as image for the product, limited to 1024x1024px.") - image_medium = fields.Binary( - "Medium-sized image", attachment=True, - help="Medium-sized image of the product. It is automatically " - "resized as a 128x128px image, with aspect ratio preserved, " - "only when the image exceeds one of those sizes. Use this field in form views or some kanban views.") - image_small = fields.Binary( - "Small-sized image", attachment=True, - help="Small-sized image of the product. It is automatically " - "resized as a 64x64px image, with aspect ratio preserved. " - "Use this field anywhere a small image is required.") - - already_ordered = fields.Boolean('Has Already Been Ordered', compute='_compute_already_ordered') - - @api.model - def search_read(self, domain=None, fields=None, offset=0, limit=None, order=None): - res = super(LunchProduct, self).search_read(domain, fields, offset, limit, order) - - if not order and 'already_ordered' in fields: - res = sorted(res, key=lambda x: x['already_ordered'], reverse=True) - - return res - - @api.model_create_multi - def create(self, vals_list): - for values in vals_list: - tools.image_resize_images(values) - return super(LunchProduct, self).create(vals_list) - - def write(self, values): - tools.image_resize_images(values) - return super(LunchProduct, self).write(values) - - def _compute_already_ordered(self): - last_ordered = fields.Date.today() - relativedelta(weeks=2) + @api.depends('supplier') + def _get_available_product(self): for product in self: - product.already_ordered = bool(self.env['lunch.order.line'].search_count( - [('product_id', '=', product.id), ('date', '>=', last_ordered), ('user_id', '=', self.env.user.id)])) + if not product.supplier: + product.available = True + else: + alerts = self.env['lunch.alert'].search([ + ('partner_id', '=', self.supplier.id) + ]) + if alerts and not any(alert.display for alert in alerts): + # every alert is not available + product.available = False + else: + # no alert for the supplier or at least one is not available + product.available = True + + def _search_available_products(self, operator, value): + alerts = self.env['lunch.alert'].search([]) + supplier_w_alerts = alerts.mapped('partner_id') + available_suppliers = alerts.filtered(lambda a: a.display).mapped('partner_id') + available_products = self.search([ + '|', + ('supplier', 'not in', supplier_w_alerts.ids), + ('supplier', 'in', available_suppliers.ids) + ]) + + if (operator in expression.NEGATIVE_TERM_OPERATORS and value) or \ + (operator not in expression.NEGATIVE_TERM_OPERATORS and not value): + # e.g. (available = False) or (available != True) + return [('id', 'not in', available_products.ids)] + else: + # e.g. (available = True) or (available != False) + return [('id', 'in', available_products.ids)] diff --git a/addons/lunch/models/lunch_supplier.py b/addons/lunch/models/lunch_supplier.py deleted file mode 100644 index 07286aa1ff0..00000000000 --- a/addons/lunch/models/lunch_supplier.py +++ /dev/null @@ -1,180 +0,0 @@ -# -*- coding: utf-8 -*- -# Part of Odoo. See LICENSE file for full copyright and licensing details. - -import math -import pytz - -from datetime import datetime, time - -from odoo import api, fields, models -from odoo.osv import expression -from odoo.tools import float_round - -from odoo.addons.base.models.res_partner import _tz_get - - -WEEKDAY_TO_NAME = ['monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday', 'sunday'] - -def float_to_time(hours, tz=None): - """ Convert a number of hours into a time object. """ - if hours == 24.0: - return time.max - fractional, integral = math.modf(hours) - res = time(int(integral), int(float_round(60 * fractional, precision_digits=0)), 0) - if tz: - res = res.replace(tzinfo=pytz.timezone(tz)) - return res - -def time_to_float(t): - return float_round(t.hour + t.minute/60 + t.second/3600, precision_digits=2) - -class LunchSupplier(models.Model): - _name = 'lunch.supplier' - _description = 'Lunch Supplier' - - partner_id = fields.Many2one('res.partner', string='Linked partner', required=True) - - name = fields.Char('Name', related='partner_id.name') - description = fields.Text('Description') - - email = fields.Char(related='partner_id.email') - email_formatted = fields.Char(related='partner_id.email_formatted', readonly=True) - phone = fields.Char(related='partner_id.phone') - street = fields.Char(related='partner_id.street') - street2 = fields.Char(related='partner_id.street2') - zip_code = fields.Char(related='partner_id.zip') - city = fields.Char(related='partner_id.city') - state_id = fields.Many2one("res.country.state", related='partner_id.state_id') - country_id = fields.Many2one('res.country', related='partner_id.country_id') - - vat = fields.Char(related='partner_id.vat') - - image = fields.Binary(related='partner_id.image', readonly=False) - image_medium = fields.Binary(related='partner_id.image_medium', readonly=False) - image_small = fields.Binary(related='partner_id.image_small', readonly=False) - - send_by = fields.Selection([ - ('phone', 'Phone'), - ('mail', 'Email'), - ], 'Send Order By', default='phone') - automatic_email_send = fields.Boolean('Automatic Email Sending') - automatic_email_time = fields.Float('Hour') - - recurrency = fields.Selection([('once', 'Specific Day'), ('reccurent', 'Reccurent')], 'Recurrency', default='once') - recurrency_from = fields.Float('From') - recurrency_to = fields.Float('To') - recurrency_date = fields.Date('Day', default=fields.Date.today()) - recurrency_date_from = fields.Datetime('from', compute='_compute_recurrency_date_from', store=True) - recurrency_date_to = fields.Datetime('to', compute='_compute_recurrency_date_to', store=True) - recurrency_monday = fields.Boolean('Monday') - recurrency_tuesday = fields.Boolean('Tuesday') - recurrency_wednesday = fields.Boolean('Wednesday') - recurrency_thursday = fields.Boolean('Thursday') - recurrency_friday = fields.Boolean('Friday') - recurrency_saturday = fields.Boolean('Saturday') - recurrency_sunday = fields.Boolean('Sunday') - - available_today = fields.Boolean('This is True when if the supplier is available today', - compute='_compute_available_today', search='_search_available_today') - - tz = fields.Selection(_tz_get, string='Timezone', required=True, default='UTC') - - _sql_constraints = [ - ('automatic_email_time_range', 'CHECK(automatic_email_time >= 0 AND automatic_email_time <= 24)', 'Automatic Email Sending Time should be between 0 and 24'), - ('recurrency_from', 'CHECK(recurrency_from >= 0 AND recurrency_from <= 24)', 'Recurrency From should be between 0 and 24'), - ('recurrency_to', 'CHECK(recurrency_to >= 0 AND recurrency_to <= 24)', 'Recurrency To should be between 0 and 24') - ] - - @api.model - def _auto_email_send(self): - """ - This method is called every 10 minutes via a cron. - Its job is simply to get all the orders made for each supplier and send an email - automatically to the supplier if the supplier is configured for it and we are ready - to send it (usually at 11am or so) - """ - records = self.search([('automatic_email_send', '=', True)]) - - for supplier in records: - send_at = datetime.combine(fields.Date.today(), float_to_time(supplier.automatic_email_time, supplier.tz)).astimezone(pytz.UTC).replace(tzinfo=None) - if supplier.available_today and fields.Datetime.now() > send_at: - orders = self.env['lunch.order'].search([('mail_sent', '=', False), ('supplier_ids', 'in', [supplier.id]), ('state', '=', 'ordered')]) - - if orders: - order = { - 'company_name': orders[0].company_id.name, - 'currency_id': orders[0].currency_id.id, - 'supplier_id': supplier.partner_id.id, - 'supplier_name': supplier.name, - 'supplier_email': supplier.email_formatted - } - - lines = orders.mapped('order_line_ids').filtered(lambda line: line.supplier_id == supplier) - lines = [{'product': line.product_id.name, 'note': line.note, 'quantity': line.quantity, 'price': line.price} for line in lines] - - order['amount_total'] = sum(line['price'] for line in lines) - - self.env.ref('lunch.lunch_order_mail_supplier').with_context(order=order, lines=lines).send_mail(supplier.id) - - orders.action_confirm(supplier) - - @api.depends('recurrency_date', 'recurrency_from') - def _compute_recurrency_date_from(self): - for supplier in self: - if supplier.recurrency_date and supplier.recurrency_from: - supplier.recurrency_date_from = datetime.combine(supplier.recurrency_date, float_to_time(supplier.recurrency_from)) - - @api.depends('recurrency_date', 'recurrency_to') - def _compute_recurrency_date_to(self): - for supplier in self: - if supplier.recurrency_date and supplier.recurrency_to: - supplier.recurrency_date_to = datetime.combine(supplier.recurrency_date, float_to_time(supplier.recurrency_to)) - - @api.depends('recurrency', 'recurrency_date', 'recurrency_from', 'recurrency_to', 'recurrency_monday', - 'recurrency_tuesday', 'recurrency_wednesday', 'recurrency_thursday', - 'recurrency_friday', 'recurrency_saturday', 'recurrency_sunday') - def _compute_available_today(self): - now = fields.Datetime.now().replace(tzinfo=pytz.UTC) - - for supplier in self: - now = now.astimezone(pytz.timezone(supplier.tz)) - time_from = float_to_time(supplier.recurrency_from) - time_to = float_to_time(supplier.recurrency_to) - - if supplier.recurrency == 'once': - supplier.available_today = (supplier.reccurrency_date_from <= now <= supplier.reccurrency_date_to) - else: - fieldname = 'recurrency_%s' % (WEEKDAY_TO_NAME[now.weekday()]) - supplier.available_today = supplier[fieldname] and (time_from <= now.time() <= time_to) - - def _search_available_today(self, operator, value): - if (not operator in ['=', '!=']) or (not value in [True, False]): - return [] - - searching_for_true = (operator == '=' and value) or (operator == '!=' and not value) - now = fields.Datetime.now() - float_now = time_to_float(now.time()) - fieldname = 'recurrency_%s' % (WEEKDAY_TO_NAME[now.weekday()]) - - if searching_for_true: - specific = expression.AND([ - [('recurrency', '=', 'once')], - [('recurrency_date_from', '<=', now)], - [('recurrency_date_to', '>=', now)] - ]) - else: - specific = expression.AND([ - [('recurrency', '=', 'once')], - expression.OR([ - [('recurrency_date_from', '>=', now)], - [('recurrency_date_to', '<=', now)] - ]) - ]) - - recurrence = expression.AND([ - [(fieldname, operator, value)], - [('recurrency_from', '<=' if searching_for_true else '>=', float_now)], - [('recurrency_to', '>=' if searching_for_true else '<=', float_now)] - ]) - - return expression.OR([specific, recurrence]) diff --git a/addons/lunch/security/ir.model.access.csv b/addons/lunch/security/ir.model.access.csv index 1efb5be6c6d..244fbf11f18 100644 --- a/addons/lunch/security/ir.model.access.csv +++ b/addons/lunch/security/ir.model.access.csv @@ -4,10 +4,10 @@ order_line_manager,"Order Line user",model_lunch_order_line,group_lunch_manager, cashmove_manager,"Cashmove user",model_lunch_cashmove,group_lunch_manager,1,1,1,1 product_manager,"Product user",model_lunch_product,group_lunch_manager,1,1,1,1 product_category_manager,"Product category user",model_lunch_product_category,group_lunch_manager,1,1,1,1 +alert_manager,"Alert user",model_lunch_alert,group_lunch_manager,1,1,1,1 order_user,"Order user",model_lunch_order,group_lunch_user,1,1,1,0 order_line_user,"Order Line user",model_lunch_order_line,group_lunch_user,1,1,1,1 cashmove_user,"Cashmove user",model_lunch_cashmove,group_lunch_user,1,0,0,0 product_user,"Product user",model_lunch_product,group_lunch_user,1,0,0,0 product_category_user,"Product category user",model_lunch_product_category,group_lunch_user,1,0,0,0 -lunch_supplier_user,"Lunch Supplier User Rights",model_lunch_supplier,group_lunch_user,1,0,0,0 -lunch_supplier_manager,"Lunch Supplier Manager Rights",model_lunch_supplier,group_lunch_manager,1,1,1,1 +alert_user,"Alert user",model_lunch_alert,group_lunch_user,1,0,0,0 diff --git a/addons/lunch/static/img/4formaggio.png b/addons/lunch/static/img/4formaggio.png deleted file mode 100644 index f19c95ac934cb4eacc0593a8ab5e061c858d1bec..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8362 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≪eL#IFXFqC&bqEKJnM)M*zj4z5NE zHOlMz*;bB##%0bxAc5s&YO>=QdcRmbWZob`atvv}WT|GJnw&&`YARcOdIBLVrpeQ7 zqqL!+km0XAGUE9!79x7{_x!!~rXQszJe%zHmI zjfPB{@$aFIWT|LkSm(W@8XAJeE~biTrb)@D7Gc2?A%s63AQu*koe#o*^zW0jU_w+$ zEC~P^0)m6I@D}7SEGDu+7b6l*!iNy8A2n1P15Q_q8e?2rm59 z?%Ih;_;LSmf5!R5)cYiy5ObfAsYTaZay=a~McZeTXHz-b5RBsLXv^Z}1g{yDTtrv7~Rc(^?8C=mJCoN1rFv2=?3s54a=v=N}Hlp*k zs+X-|T(%E4`EbWu@aC^qeZRPY>Z|6eHxdm3gN`I$XsE)l#F41>C@ARTnL=9=us!}A PZUJ&q%96F>rXl|aSn6r~ diff --git a/addons/lunch/static/img/Coke.png b/addons/lunch/static/img/Coke.png deleted file mode 100644 index e822a2656ac540f141412b85819afc29010a7075..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7469 zcmZvBWl)?=u0#uxN013j__W3GM_Z5Zrx(1q;5oySpZM&>+Fx_VS&3 z|J~Cw-B0)Yc&etWYpQEHLQO>$7mET5003NhIVp{24ERqmke}_vdi?D(pje43ivvJ) zEcU}k)aMxFq9H2*RE$&Y0RWP)x0bG}#zzl2N9WI$Hue^Du3nB7be;~50050n)|O9L z;>2m)B=$lIP4Ry()eYZcl5SvOJ1Jk4vnvY>Wvbr)wC_ougF(Wjn3^4F zkUvZ@S3TK)avrMq<$mruE-POOpuB_$n`aa8Uw3T@;n=4d*O26#?6IOYe>6Cn(35c8Ibt|S~tkXmf z{kl7$fy66)4{Id^vmcFcrce&4uXk8}T<#0Az_A-llQocqfktk`5- zkZkkTWP7!XjVV`RKP`vD7K1Pt!KXDb$vSN=#dKDUA+S$tN9A}c7Y>U@X(TifBr%2y=%xu`T;rT>>YvhcLA1hD?ISakm*+}v2a zZ~38o0(^X&&%!IfE5QBn*@6BS{r`e>nT+hn;e|dS#{zI(MLAOi*KnB#5w4@OT#M9H$1LAR!hUwusKs-J##MATP zvwwe!Ks-D=E>JVCQ@zZhqMo8>--NIu9uWIfY>21FVOoYE2DWXg*H2G3i?kdQG|YL_ z^hs1S^|VYT0BD|p?GAC@Psg}R&UE{Tn4w`>qj~L%OAtj)>5Pneg+R2@F?G?iARg|j zY3W12q<%=K_jh*(ly8dZ>1QeFt&ovVDPBh)p_D_IR!HcNh+p2_U0)#X7LbV%kLQHxBkv`nT4G{~!Up>ileD2=r=a3* z;*lO95WQ%mJ1wmv_>`w7C(AgL`$vb<$XI_-C}#-hV`E~*sVI{Gl$+(1dK$_`EK(;t z0>th8aAx|Jn|lc*1LEQDaz|A*!*Dj|4c#N1v>RYTvP=C zeePS){oS3ug!s8Pd{-;uldP=q1+W|pA{YbRO=aE1-O~UE^FmhA0TSjWyU6}j*QA)z zeQQ@oOvK64$)L7=xu4g~{b4&hbFH7xO-$tD{^q5I*{+U`B`(pXjZINgYa1!uMqv0} zOl+avhXVnbYf^?eIm5g1;s$%i%JPb2X3n(u#Fp0P3>?apfyOgBu^9u?24>Dbh{ye` zq^9>K1D5tRTq6F$;ybgWr%zkOcGlJ76Hl6A&;Zq#$AFN#MQW_hIYDMmD z-{{#M+u=2wtc%OD-%=8%Je_TMh5lvajW7%EUaj2wxIUcyy1jb3&Wd^n4m;YNU5ZKX z-`(i*@wpY%aaC42$SZS*iJfe1kI~bc(p3AAk>MdGjo7)q+&uFCo}XS>^~Ka&1|9Da z@f7{Z!NSpjkA>d)==2u=kj%(SiEDW-9;W)M5m`|T1Y?FM>%#Shn8Y*8hiFiA=)@$D zP>{oDxxxbiFd5`D#poFW*W<%s67gLE-Z4}(Bx$U47;||6=ptP`-d3klKEwF<6C|Ih z*mTOcb%g%?&iuK`)MfPelPA^D|MrpLSonB+>vrp2c%uEYT)~2O`SV7oy9%z1)i=MW z8K{4CUlZiaP_xL>JY}qGzNEL~y#8Q}Q#JDM$6;8bfV&*KeXyAq`O|fmYB2HHni0~# zXT$oZA4DTR^u&X{-@D(jk0^jwrp_? ziF{Ktcs_Krmw{+AEGPfligM({C}m6dV*5r@AQ_(XiJ z9ywpUdpMt+O^p5eb?wWOTiMs55zx&PGpyrg0soznib{-9Ow=eZKfiI+o{I$OYl5lK z(b2Cxv>lH{MQiPzFO=UmQRU!R9V4OEzQF-P>Q&z z7oNWa!0~y48w;zeI7Zoe^zq>kjA?6635b^-T}FNT_X!jx4dfqVSXq0{fI9jUuZdMA zKRVGY`f)DeF8v?24aK1IAv`}M-$!Km^E=!?%Q9EzquQ4kOD%M8l3mFHGV>_?nJ=8yP5 zgK)B^-%U*swie>$O)8`_rPjxKl`y+nzCbi^{D>R+FzrHK@f16Yvx698vJBGlX7;-f z41l7IpOKLxjv*DW#NPpS(@#MehQtb(k*7h1GJyn|-Vw(UGHa#ZhG7cHr1L zI`Fs|abbuO5-&bu)i5gH`Yl}GJ0&Rz37JY#4ra@8d+$W1k(|;dF|~ZU+IltPEh;|N zxOs4nyV_Jc&1{H^1EVL_4VTlGrt`0HgyC13DRP_i$o$@2Rp!F~WY&C@{S9^eyJfwk z?+aQg|K(V;1%H-L4wh57zBH*pmbZ)sp0`Q$|)_f#OBl;XF;H!<^ z(K#P7WJJIbhP#1Ukg@VBJKL)=r!+yHU7%IKs?7RHhvK)QhR}RjZP zNusBqIc`M;i^Qp@w=+hcpAutW0uk;}mDZD&DY6aB(yMJrK9?cZsy3g~ONEq!hdRRo z!<2fDIw@6?>9N**zYyZCABYTBZ1tDB1FmmblG+5gnycHn``UXDjpWXaPO7z{D`pTh zw4vh5oAlr`Quc6`u9qtLf4txAf=>QYv-x^#!~!$0S#?9hR2wJNJCA|>r<4}R<{{oh zO`Z@YT5Uzip1iWC9B@OR93E+{uC-gat0nqwHP)CsVS{LJ!!)7rw|~kSzdV6c{Z;0s zeTJMDgOjA~MBC=34IR1Zkn8oq90`c5cJbW?{OwD&s^MFT-t$`}EdSKmwSfh9>dEMe z?g5wnu^dLtOs9h5R3EJl5v}Bl)P5LB6`pwjm*k}_EIs$w~_D2pz|+Qrn^;ohzVbfC6yJKPaFB=<~0p(Co%6Yfv}c z&bUi8J{`TU(q_{b*bcQP$8c$tIcRIuT{freq*#D?ri3g&CDXRe-mJw5B^5Q<*pE0mjLom*eC-K`)){?$jz+Q5YfYxzY0(CvTlAqz7(2#AI^hx_HP0sh~a=pWE25pnOA-!Af3 zuDWx&bV|B;OWJB&8h(0(B#z`%q~=jbml*Hsvs)M^+iN4I6gLBWam@mL)!_hoQ+XM8 zIzL&z8dgC#+>F!jQ~WYD6Wv!v1_L29i}RLk+HpNZW$ZXAUT_WYpoN<` z8GRXjItmF&guVMOVvkt@b*uO8OqQm39f$b$Fz?^*0?uiD&qUX*y}s{e<#YX6lUMW4 z$-{p~l(+mYjFX3sb2?UPXGMtL_z~v%`pt!bjZ}}+itTxngKd4mw_7Rc5p2T0gAy|z z_@v)b^xPCdr6i;`NFGSPimO+G#9Yleg_2SSNq;q=b|2j3z(p(v27jloI!B(abSJz{ za8EVOtqx^M6#VsuF6@-qn1f_M_`xMgp<7<9afEXn1-ME2VccPN1p{ZdBrnv8m?uA} zyENH~$7fRR(_ScWuH}L2-;^?Z?DS|iB4ZtQY6FI{bM_uXKM`4#1}qt z3YJXp%g$t)HvI_c=8=z3fSPn-50M(Og*5He~ z`?*EENF}M-qIH$ALE?KjB{!iS-zVogq7b3?HMoJjoc&-5RPMMif}A7l0IIdW9`d)f zf~*#*kmJ^kP(J~aw}NAaHIXjo<8`N%A;(Ot)CW>=fx3VgZ959&HDE0Tl4W=Ratcdo z!Z>W3Rp&N_eZcb;K5kv{5?;r*l{khSZVmWnmn4(9otOdXleqC->pTIQNMhz~{=VtP z`PS>G+WH7@$cMzKb9Y&zMZ`!BjsJoxB0^5JB>O!&p;>p)OCX^4)r}SsfDr-`eQR;k zJ6(h=^OY=7_^}yLgi~U0)!4c8vU#!NuWugd-&KxchHxt21P$QtmH3NP1#ynfDLhT6 zYAEh&)XMy(T=B-%P8WI;3vKEv-uG^}APpAt`iP7cutLBtzJA`BYIj5KSXs?mE%SHw zQ?W}dxF~m;trmYeLDR8g`7IuT4>6mdT`KHmOd>uSb^nu0KST<1c@m0AYDhW`Y5=07 z%ysm(+gx=HZVYH%rY=%UYtUE^2)BOvG>B5L^bdb`ocyAVv@Fz$yUP|0z-SEv0xqR` z7@eT)!L zI8s3S2`7Mo7ewcIbvC7%MjD-`a-XNgHer0Mhp$!j*E4YMGv)CGnmVQ18kS7WNP7-Z zziAvGC!F}Lr$?si%Xq(JmoUwk?627K*T2SA@9Oo;qH5WqN`IEhEt=eK)GZAYcA@fQ zhO=3N9bkZI00_bkiH2L!h|NU_<`^}{T5gF17_vjVJZg+bEjqmCYWOR5*_Sjtw%!eJ z-mMcBn7+V);H*mu)1=4!fWLPow=!bBCpqS%?j>Ry>pr)?TZYYeMVd_3X=j1~wJ0=Y zFnQ;I9fmvHgpj6GNlDeb?npIrAqv^g;1!>Px8kZe7wuNf0v&OPmJ^ zZ^$&dual91rI)7?&`Na%(GkX9OJiJS6(?5Q=Gh%H+Yq@OUMgmko_Xq6SoCoH5l`E@ zJs+Ud?_A0Z|KNOM%un;2%H~vm4iGf(BSOJwFGuXgPQg}1^+`-z+dtO#XWruUqG!>8 zJN9?uX5+wW{a6<=yk)Y)i2qXfYs`958x*Z%$qI+JI4vjQMgQCRem>_jYZI9uv#`CV zm1LkuT}8k)ypp`M-|G=z+vkcWMXtc&3Ii|yoIlml`N#`TaFAH@XIwGyEmwbo7(v!w&< z$P=kVTG>DU%6fzZGe0QUp@4roy!N0#YwgSxL&IA`Zxv^j`shM75MhPHuxD?rYx1Z1 zZ_~LA!z= z^c=%iquHKIda0FNdHuo2QOdh>g*bk_Bg2y=)@XeXW;wDOuuB#yjX{UmwZ&;FhDOgq zhkQ+lxmP=Fa9dh0}gf;RT2T%=X|>bNi=P ze;PH?R;$5+C&kTd=^4&7i}A;0NC2S-hAOsprF^UK3?C6R2c^VBppOn2V8p;j9)U21 zzd3y4Ns-Y4U0O2nxL{0mEP?YyJGj4>VUB9S=T7Qno{#bS#X9rxW#n5Ck3G_VqYa1X573^m$X8Sa5_SS?ra%ie(C<8z zbt}JWI0b_Hb+u2Q*XS`6MUh|?QJBAc2SsTf&IC@nQo178!z9Bytpt?_Uz2PP15^^t zAVU0YqX}(XuWt?JXCaH&8OE3}uy-|ub) zv(`OR^ZAac80o(#lUf|ZKhvB9 zqdb{{B#L$|l&zWd^=G6Nck2=~1su{+^+RPg>(Cr=C2)r+S*vGCJ~^=Qv+mB4R?Zi*#sQ!q=#$X-D%d+FUOm z2o)7iHC4pWm8_7*$kkb2)DQYuM3Y^VLy#A#owc9-l8qN55x>&XppkOCtjo?)C)~Ng0dTzH_go)h4`hFJ0$zAWGUIu<{&2p;N|!pr76?u zg5k=?@&OlPo@vt347ezZeyV(tyGz57yHpkWzp}14obobNs(kEC<`&Dw$RyG{8z2b$F;YsMU7Ua z4tI}lbqrt;Sa!N((2L)f>AH0;pPp8?@{j)cu@LD}G_~0ElUphTQgf!pR?bXv!r}GB zrQVAx`}@6ZrKOl69cz8IE+1-Y4m4>{IhGIaaL&%k7~g+*egy7J5>VzzQA7R9+Gh}IqR=6yF3w5&{5ua3O9YTPg`G%`3lTUs*CaMIn_Sax9I zm45x<0Wb}>nrKHyf#>Gz7%3~yrWX64TV7LR{J|oatukG(GB+VEY<+1yH96T}m1hEp63sh=7`&X>S>a4{DU8o$# zze4r4%NrFc4wq7?-71+VadIlGqmhEfSE%^aVaj2lK=w~6I74<>JK+>1C0$b zCPV)?h0LN5sC59fxd*d;DHJra!%op0kom%6YjTXZN<_OVTP3c|a(Ow*RX%t*D*VRE yJcoZ>Mj=QJGoG>rIVv#oBRDEZofAtA1?Xo;JdrkV9C;od0rJu+QWX*=LH`Gde=Xqv diff --git a/addons/lunch/static/img/bacon_burger.png b/addons/lunch/static/img/bacon_burger.png deleted file mode 100644 index ad4177d8ac2fb4014e691fd2294908c61b18d70e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8027 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 qBTru$(_mr;0 diff --git a/addons/lunch/static/img/cheeseburger.png b/addons/lunch/static/img/cheeseburger.png deleted file mode 100644 index f9d5a3e5c01567d6172ca96feac8c7db9e1f2831..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7020 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 diff --git a/addons/lunch/static/img/chirashi.png b/addons/lunch/static/img/chirashi.png deleted file mode 100644 index 651437118481a32b702ca4971fd45bd5f3da75bd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7221 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 UOC`2{M-G6JoVskiv_-^!0b%%*M*si- diff --git a/addons/lunch/static/img/club.png b/addons/lunch/static/img/club.png deleted file mode 100644 index 5f3e36f3f375562bd6fcef3323ff58d9072929fc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7011 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 JtCBSf{V%(`^KJkD diff --git a/addons/lunch/static/img/fanta.png b/addons/lunch/static/img/fanta.png deleted file mode 100644 index b7a48332e0d9686c81787d1bbe7d3eb6972df084..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5855 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 diff --git a/addons/lunch/static/img/fuze_black.png b/addons/lunch/static/img/fuze_black.png deleted file mode 100644 index 1daac338d906216ae9da5161159fb79040a0848b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5623 zcmZvAS2&yv)a^SAMjxWrAqYV*M2j%G5xq=`UXzgMq8q)3M2RjsA$o}31<{EfErRI1 zkD259&$&DQdY--3Ui)HQt*afWqoqnt!bAc9069`kN$*wz{u>DXEuSoZyu20gOLYr z&b&aA3%u@)!{ocygFZ`jWujfCnqBcG)#AuGnJ=)qXWW9V(&DysGKq-)O_j^fn)zs|xE#a9)G`1X-93UQ z630NH^6))9GG5z5hQ=VN`(Di+Rpg=^#*PTZTEmrsVwwUa;^(EYdqc29!(RI+k;#}v z`oRV(n=d~_W-lHb(7f+wqs+B95OJ8HO(2zMgQ@cUky`9dY4$N^>hq2gc-glf@S2l7 zya(T#&GikU7k@9$XS00Mp4UT7v2B#c&r;2?wm}t}J;Xtt2@`4?TPLcYFbKciILAoY zWg(yPYw38)L>6uT-G}ueVqHA5{+>`CPdSjK5c(_LmP*e}`G4t=jpu7yfaE_Wf&CBQ za1ybH5|ZLl;^M-$5R(#6YdVJo(>`8xD<`~y#2nO++SLt8|zU?JONo5Mk6^q;t zWvCl3!S*&jDU@BS%DpVSgFC~nH5C4IFy--vs(zJ}4i@}wq&k%m`8~qFFE@U*=+jj# zWG*S-UxZJYjj?jBB%vPRPDvW3wG4N0deg)*;cj=`UbB@GH~J-Q$?xs_=J;7zp>~D* zdUD7?1_9Yy;@SMT!NIZpg?n$M-bo_g*_Ke2usueW*%XGSI}$4!$gewkngas7al#tS$!=EUv8oG!YkjM040dKc!4; z?aFY3J=m`oKXWoYIX$Z}xEopF$ImNjltt^CM6~8?KW|CI3^e+4hvBgwq_ML-zFH_gmSw%`o1*>Qi`>Aq-VPr$hm7~b{ujh40?>%0 zr0bRE73Cz8yG>@v#&t=iH=UH!gy`*xuY05 zz`w9C7rQ&nj}&`nkGe|88cVy^y*XLQMl?W6wR(xU{9AM(&Ht}H{#&BxvkcEyU#z$P zl3xF?tN&r%uvSz)k*IaFF$4gVnMfsh1JAjgS$hqm4Mrj-tIPyfizyM5fVGuSZ6%ejui1w;?_sIw57%xo&%K6yLL+~5u}AVW^{D);6OMuXe2H|jSBMXYL-VMl;b2BpsF_i`Z9<* z0?dgscP3GO=22={YkC3^AKsoo zodQ)$Jla{xKV0;H_-Y<^C-GO>q3j6(uw^6I7frlK)Q6s{5PP$C#}-bqz5*GRS$-*M zp1J8?|FFq)lQ&wApej^ym0RtGvHf&dXA?+Q#D*{e%h_h@f)F(2L6nb`+|q|Oxs?^M z6(<=hpmOGKp;C9?d!RXVAEY-ax*%j``odA)r(QBY7tI$2qYLEz$y+5hGCNz$b9$t# ztI?PF$fF&#Y!;!n<|F!h-fTgO<@n;9^U4QMrosaSR6p2vE3ygCJ@Jl;Pu0lrS4atB ze@VUHVsA;B&LflZA#{w=oZt|KO4BG|Wn(x%c|KimMK#Q!!NOsS#KijDJE?kqtDo0c znC-}iDA3*jF}=Z~Vj{@rs)a>F&01e3q?+rC3B&K4ntG}|3*n=9LpWX?={_!?l|YArl)V4i#LSxuwf)bCG|lXgWDf4FK34L&;S3MQx= zI?)v35Y#l_JG_9Kd(vy)rz3|^@5XhQeQOJqSuuGXiVPyD^MqZ5O|xh zdANBxwYAmIu(d_u(VI2DYwEtg<3|33?;|hwQrm?y-X!w%z7fZCpT(w|9H zl+^Z*>77wjue#u5Che!p6>0)GAb&Zugl%fM*EH#u2fPuqiB4yul*NIHzX9fyAp1&tP&(i5@$y3_W;wCe&Xgc@IQ7B1- z01$0o51>x;GhF9@=PeJ8mkrfDN$+>Ctf_Bp>9ikVs(nfOa+VKg)UHGfV~ZQoO!zpS z<$YW;?ofQfG5z(SBNNMh?jjx{xkZ-WUZ(VymM$3x3Q@@xd-!~6)s^O(T+`JDpCgM| zl?h~#k9B^lU;c!t8Ch0aRU(*_DxFj@2G9W*=1+!Pe7uMMt~Or`J!J+T3fNf>IZN9jEsi2@cvSu$RCN8$s^U$&}*V5eF zd~W+x+UAOv%-EVSEl?>nV~`6e*x4G@9P zZUKP}*V@``<1XXc&g3epHKzis1sZp8|xUGtC2g-T8yZrZ31sS;@8J+C)NjkPh+{la_ zFm7_^Z}KfE=Dqjw+ZX{#fgzOPA|)0=cQo!h-j-qZrNz|eM7yX0yS|N$Nm~>$GP-^N zLg3d0h^rt2bl5;emwOKMvMp29E{YTu zY z30AiFwqdzHI%Y;bmzAZBeP`3uc90&%ZR6djmztGX#{VVm<#Jy1_2f*7i#W3?U~cCSKcgm+m(hTfKDc)v|(wj8j5lHxQ~=%<~;{ zLqm(VE4^`brJtfdVHBTm5fc-qU3zJHx$1fyug>WALw^1lT?&z*AbQD-rdcpDGCXyw zEU>u_)SG}2bIIq8{c}q@azQE{ueug#b-jWnbF@#!<;qoDDNc@db{>DaR)7Bkham#q z>*f7Qvj6Fkr=3ZK2jJssR-9(kIzneghW(r`FFQLGEL1YJQa_CT#+ZTrbzOR8I!K&# zGSa1Y-5E!VtT^ikU=4QI+a&!lN6Y5Bvm>GoQy}?l{6y&j^hu-in!{3$HQg|AE_(nW zLC(P>Wh~lL;Oe4k;Ir=q5{;W?Y-*C`j-cT3Yb`H#_&$8L)-&PXj-Gq?d9?ddEY?0@ zU7K0dk}HIT8p8I6yU(6NMUf_+I*%V@rtCMVo|A2_``sa${xJj&nP?GE_8gdphgzg` zDugdI(2x{_CO5cIJpQgTWAS9^-MhuEBlz^q?C`Q8O51|IQDcy^)VWIwmTw+Lq3yp74lpt#s>tV_A^T-EjB6- z)(#GYf(JgzU2Io`tE!sw`(I-w4diaVEybGFxSB5QfQ)4&2rGK*ngKS!uH!jgR>~hY z9pXXlmWvplU)T(PIO!IzXmKHjx| zQS_==QUDMSHF`u(5>(F2UA{i;rnL#+vrTIcB&jbX-f4Lwv_S^^IkT8Sef6H;wX>t< z+`%&wn1c}_GQXwD$|TxI#TTFD4h)9?@0u*$@D*@-ny&B?!lObdBHGBOzJuhioCJC` zYb1Bd@PTed0KBmEx+HB)DT)d?yiasyB;U5+@O_u6!unK~gV!KWD()^v`!k8?3gz1B z_yQ>vbvRc(eV{;FQor>a>-$ne=2Mkb4sa|WP%q-^s2`D}D8@|{-*;l<7c^ik@HlS^ z)nUx~5D|8?HY7SCv#kX2C4I1C?$^Wsi>QhAH=EnW)is}g(cWV$&>2O!`;8wy-6FT} z>)B8co?!$=oSLK~y1P5REY$Am^WH_LzB0bHN}skXDWJXoJ`7L@ki-|>2m&E&a0|)f z=*8yOtS##3#)!mNasQg7=a)#{e5aBr4aisqy(@>S7Lc8yJrgT&#y{625j%v75wIY>{rf%By*l)ZYg#|5Oxep~u-2}A{Y?UV`e~__+tW&qU=I6S+{2y<~XM$1` z$7+>KcCoKKJXF2Cm+Hi0cgP>5Xnp=c#7;E-;E=tCzB*`GKf;5@Ndm$+ z2$WBOMl-a%>+kg?D*AUIEGUN|7G|dy_%vy~dOFl978uNXGNhI_wo=}(T*29|LN|P7yJt^2KL!J<&LQ;f=sFbyw1~&iv0o;2CSNfS}#Q0^%V{(KV%KKBx_=4&)rrfuOI zD3oHNee!nR6AZYk-G1o$K)|w^gqv4$d!VT(Gl}c+UyI%ef}W^~5;IT)5fK~UG7P}j zDDh&~)L|^y3CK*+G=KZQBRWeguva>SFru^xX!gGy#ddExDo_3-O#(a%b#-d)$tZTh z0t|k@$)k2BKbtx7mu3Y2avh~ptgS$tNS$Tl2PL*LuGN@H5CSm@1M}4;yB4ypMlZfR z(2E(lkK!SovQkq|?!z2O5VeA=M>?Fg!0jHgKqYM%KS54*2m?|*zD!n07Egvrn1Gjm zjFvLC$(FJ*V7TjG-03SZd4oe_2_%v$b*W!5n+gbo!wRLcdADE6lBr}c47Cq#zjwGt zLXcw>VN+VhoJ|}Sp#$OMj>wJ_c7oBCmJ11Wn8&8K;9tlP3Mr?PPb6wKbsN$O=SOM$ z41h%Ca!_G_0L1;qhH8k_%peHr#AQ=eFk}0I&7*0-%~ubuq$_5}9S?CXc@ZDaLgXzk z;NAMY&$4_Lry7zi>9XAKhuzT3_!2qPPmQuNbdC>m>ixjRE diff --git a/addons/lunch/static/img/fuze_green.png b/addons/lunch/static/img/fuze_green.png deleted file mode 100644 index 9a274ab6796cae525404271f4f843461328a502b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4724 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 JS|ywC{{a_l`T+m{ diff --git a/addons/lunch/static/img/gouda.png b/addons/lunch/static/img/gouda.png deleted file mode 100644 index c50d6d8dfbf2fdafe4c777427da35815e1b28f88..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7864 zcmZvBRa6{6o9y5W?!g%dI=Dk1I0SbH794_mAlTp#AV6?;cbCE4-QC>@?l=G5d(S@X z);U$x^-^Cyd{5n>%8FmmQHW6h006p-w1nzE_x%r%;r{8(X7uAfga0n7APN9fN1?tL zA^giQ&Z=L;02Sk;M*ski?u$id0p+|tGjR zdMyM*oev07(DXE-@Qg-ih%bk12?83Uc!0uMHU`Ox9}8oERjpnen;tG_lziP*$EWI8 z?jK&SH;a1>oo?Y{kU5$6mGV#?>)oTImZE?Q(#l8 zz>|t@b`egv)NiLl-xFsVV5XGDyzd{{T&M-3R86ql^if2=Zt82%_AqdVgO~_3=V^Wu z+?DK$h8Q#%I`g|Isee&EH15K-wUJ#Z=0>q((=F()HjY-tAGIWDOAmsocF;uQY^I-F zyKT(;KdjbQa72UI0ZL|+skS4A4eG-{E-R(zyXxy)g|BG-yi?+{qgPX?fv=v<@M$5U-}PU zU*6wq5Mke6o`ynXN|0ge965%6t7OB&)F|V2y79cW>kkm2^drMQ_Zzh$!RKpIzrX)& zb`{_1EAI*t>k3qXVk68I`VRSsOgPiln6ZvW>%I4Bj=1w24Cqg18MRU%tyG6r>VX;p zwku(eW;#~?(i%^+Dv(6&jxeYSv1-=AFUixL zZ%XP&b{feOYz_Rj*J;&YK|9}F*yT*OQ{~i|!4VIHSCy)|MqaO^va! z)IZW)-)7Cx)T};8 z`0ijSFIzg@+vw))eXdR^!$qjijK0p3=Xj?3a=Ux$YX5M3rQ4inPK|bMWAfqcx+%)& z>G5zNC%DY>YfrR#SDtH%27a?H!+cZz=x6-D18!-=NNpm()gJeaV$r$z&IP~Euh$nd z)8l=$-}*|pHU?WJGQ5-2m``gJ2boc~syzb`VaH7HcJ_7_N`9;@FQ-PR?m>kjDbNPn zv)fW3Mc-+3Ui}@vT0RPaDwUQ zw`sEq?=O3uVUvxfqk}!$A|H=5n4D1%I_pXbB0Y{r(#lv-(>X!K`9ESp1jaf7y7EjK zE2C$7)Y^TyqP-}mYlY663|4}ehEn8fYQ+33#KWDH#uNB13xq->uo6UY#olRB3CIz%@1 z&x&9}{9M12%}9*-9#@jz3^op{;BING%kaSw-czCk?lz1$)k7H-B40kzQ~{av#8Ey> z*Xh#N?IByOV|LN1RMQ#Moe~W&= zh)^>RtIhdQ=D@-APeGx~4G)&oF(Llwd9qbCHD6I>9<-kK@61j6GdPEWuugvkAo{d- zmOv0d0kJaH!%gfocRF=!6*Je*{7wN;@BDeUo9F)St|kiK9VIE13Z6p{d_I)JYtPw; zT&1K0@IXI*5A^OP_bRGBKjCj72rc{8F=Y)=k|ZNnpz!^;&XO)Ie7>l; zJv}OE7(r~53Rr{|kEtkZi01`_a$SfC7wlqjEcow)Krow{o`$ zJTmB5IG7?+=^R6 z20%)kKpnTXUbUizge1T}!Uu23g^UT&yousKB&&C=nQd|f|s zO-zbu+hsw=Yb=oi4rdJWV>&@25Ju)m+VsYCHL*z^u7-e}X&D}N$HR#f4E{Pf(lZi{ zhDS@{->If9CnfzCF_7VL^t##P^Ho_cc+;S(PPDPmarf_S{8iQYN!AM@eV>d>W;AsJ z`UAMIW(Sabs*QRd9wU-38K*9*Y^=Xlei8R%Rbv>&=x#y!1tZ4jHYn4ki4~5`dYT`| zvaY4S{`1aZM=5&L#}4F9kVLT?0pAG@aR=cP0xu)xNI?nMN1HW&-8+$AdN0yLnaT>& z)l|IWyehsRlzMvJ)kH85xge(cF4DrwhU7}e@M+*@6%5s^DC?Hw<06rS3Xe<8n|oki zZt~)8)cH>_aa_Ka-(l=FKvu9c=A}+$yEo*KP04u>hu`ak`bRX z21sDhl*kl-v5-qNWT`ZY<>h0*b2vwP5!abA#Gq@6{o!|Oqg)6N&!PL`*& zSkD5H)L%$510U4Lfoc)Rk9o#9pPWl*gvXXY97us$vUz zxO6o9ISN{zhAq;DZ6MmexdntM;9qJn1<$w~8rkuuV}$fX50>k0)r2;~ZYQ>@`Mn*x zl-Q-3OoBDEzk!R%B~6@cH8M;uyHy3rGm8Y)rcLX$xK#|*rO3TKgwv8?WZI(v-9i1r zxWZFsUsa1yBvrCnLL(%MP58-`o_nvJ0vEYgE;px)ret4QoQgF$S6hQGEPn8T8FtS`cyhv64n74Pye zO%(8ooFC~Xh#D-?xkB}VQ{e9P`9C}*Rtj3`a*!%Ami~3`aI#ZO<|>jmeA$zYTNK-y zKEKGc(Fe2A#N%kIW1mF5w!Du^8=4BVWgPiOCgN1qPhwXDBgM^UKYCTQQmLBo?dThe zyt%rueC2RYvrFv5N&XdhQsJ;<%SsdU)zylHHy8bUJ@bySR=ZrY80}EyvusXe9%+R8 zUH&%EQK#ZpM@k*KVNzf=@vlv$O=ZRr!=;dQ9DarGPxKK&Do;c+Qzoby}io4bz)t2$!_Bc4aO9*a-K zLM(f%_04qO$sMPu484R*ve=f!fbv-(MdrqucLTJcU2y#96Aw9I>z6KMQ=%ljDi1ph?(pP;HRA3lkD1IqH<^*?Y1_H`&uiMW1SQOs?oYkB33ehNeE{Q@X zOtm=}yhXzOTaR2VX#x|pwfS?Wwfq?<0B)o1?YHsUx{-tK$vvarifR1{EElqCl!%-m z-#)txdaWDM%yUIp&sAUII(uKz;Xu0XhYJ0+^=^qz_nRR-nb;z~(=Q*EhG%Cdl`UxE zOV#To!IoHIv-(8mSFJbF` zKRkDIEk9BTGOuM`Y0e+FKXgwvZU}lmHIf~aO>lg&0@`EX5xieA@`n6);Tbs!e5M5p zXW%lkoS)?^oVE#P`RWlR~AAx3i1(1R~ zu!hfndpv#k7cRc74$%lY;bDR1-f6mzb7Mwp*`N(zzrPXw{vdKufv}kJY{TpL{pa_5r=$$WlhAG2z)g`8*1raN78eShKm z{+T#y{lgb@D9i zP4QJvFilEi(I1S`uTRL#^-1`na8$eZ_R`&m8kCMBr`|@)g)3XS zYx!`StFn2tMPQuaG0q?qKip9l!H2VqP*(2U0!_?svk)mC34#3cHL?q<{@eNA!*sRy zDtSG>y#$d%d()Z75yk1!I~~@bcxek4Mc=Y_OLF$O@L53DdqT$D=D&pL33QQoeNf&hS_q1#E{ zq1(}njNJ?)jkJ~Yd7Zq7{P;F+)SM5&FjwETMJx{H*V}XZP1I^OvR@sYRPjBWMTv2+~IofO3uWzA?1 zU4g{Bl{TAwQ%NDteT)4mrK=|aJ~WB))@@$KBoI^&iFEz zU<$0d*VnBr)#AE^JbHD}k`d!zlWtXZ6=;vlR53{h^CQwoH`pkWd%`7@kIIlx^)z~4 zBOS^kF1Q63$$Huh=@b1ewj0i;^hiY&{T^U@-}=M3XPCzQGhd08-ct*vX8VhqA@VUY zczd0=osx6w@1BY@L|kw>+{rRLC%WA1wx*6LmZ6ym47TJ$iT$LDr|oDruyezDfjnA~ zZT@i1nl&o@Cr+kq%0g)6vr(a{9GNhgG`y9h3GoB_p>&C%#|^WaKVFiDJ(H<_uejXbCa2plKn0vzH!Eww~d<>czVwRD-%msD`q0NFXG9&KREts z{3-r)W6R3+$JCA9QN1kSd14}j3ib{OA(sl$P!$K}CsqLo@dGM0yTD-RMo78NnfCtQv*{zb~YI7oX zUEqsSr$FD@*H3lsbFyJ3$sg3FPMN;J-xy57s2e(zpL>lL2SeRkWhfJsw(zA9m*@PAw2=C(~aI2rDf2FZc>fbZ*6l|ZMd7WO$Yd3mpM+-#>x5>@T{Yg z_aMd0rb14U0c6B3KxHsq7-jaDSB{sO=w&FjkTN!=(jcmDo~6TEwgNGGw5>O&H=aq9 zp5bbGHro4dS$>MC(EgTA%9tcCLp0qoJ!A0ndOf4XK^*r>PO2l+my8b{I_H1;{O{5B zb*bJtJw4q`F-ZJ&Y0Datv?j1u#h)gq=kVarbvtyxqcHae;)#k1+@+F!$Qi0IMAhf+h3=q|XS{Z#;In@4!j=J6U3zv8$`^{^=|wwrpsl#QLpU`! zF>Y|PU2`XHYpaYn8(t+#vrSe6ruC8R!gX@j(ulkw0; zNIB<@HAwjM{4CdumHy+~D}e|XahEW+QFUvXkYMLxmQ(DjwAjK4&@x7RE>T3lpXH`ZRsnI#)Do`JN{Mh>3a?_@c8e3`UHLBWQ@t zLj(a@UrgC&zY50OLDiCjKm_O-jHaaTK+r_H_B|eUNq`aFB7$?Q=7iIl+IhZ}(f{eWl`gi`mf8Ngu(8p^?)2OcSCuwS(%61IwxJKBho)EjzJI(lLtBr*lm#cA zB1BFxfpMsi$ji%{X^^6hnIzvxM@uV}*5f=bR5---)_4V-QR^F9Tg&NS;P48n6nvgv zU)Q`}=XT~}S|CO4j2$8ATPywQX-chuCFY3?hRy| zAn+S?fd+}B7B1(r8EX#xnT7e zB~yno0!hO^bSFDogh2N2DUomhiM>Cv04_ z;TlmT=og2pj2~a2)?(uF3W_SA*IYj18JU(hgY3(9dYcyFejKH4sETKSg<|TD&3#eT zMwhudrNb1&gM&Bp2IG~C?w?ESOCt78GTFkorsRMCg!AH4cqc{@%0tu{QuFiVjjF}! zrI7Dqztq2=ikL&K9L&UPd;?u-m(p+~9ZlkZK}AwMup_Wfy%Xm?I|GE|z?wMp5>Tne zQ*w@&;eiBcYZnLJ+@@QG6q}x8|M+Lfl^w`j;;+NQp}GAmDXoeT|Dlo`&h%KFQeLtl z|AE4lpsgqDseph$xqAhqKSJO)r!8XIpX#%bZN}oI8{krWqXU5JTe!oFPO9r_|!B+j@2#Eh`4z(3OahHuGXXnV|)9V zb0?use{`|wXN4K(CTpBvUTla=J)rsdXMKHt`;Fb8ps5t>X$vf;7IxA^ z50*+0;475`{gs=hzhws>_;2o78*>*UGHGJzo)grm5Q{T+@iDV^eqMP|akF}m>{o4l zd3nm_9v@Z}^{f?l_NU$cQ`cIeU)UUCDe+sf2%=bDkSL{^qHnzJ-ZcL_%C)E>LMj`X z9P%|wd)@gf8(q#OE&-Ma&2B2mv-}H&d<>OvP!JPv&#BOv6{{G7DhM?(yGTzGtg)#< z!!Twi^H_?R8ovNZ+yU#pAKJmSnfgtS%7^aA=8r$|2Vx-1=w#0%6QNMsixs%i8~7|T z$CfJF6gAg0u5PvZyR9&0qa2p8wuYOAAzsz|$`<5id>`B)+=sK)-LDP7Uu z%J&VrK={obxZ{c@ET|IgYc#-po`~IqI_$CK${rwO#RBgAot0qdz$DJ6|O zS5mzj1mwpQ5LmASm~vCK!4;Iwr(HIWbxy|9Q-9@m>zRzK959(f!3lT?~ z>MEb8?fo&6mcdJ5$$-&4z9|6>I_T3oy+b--OI^F0q@qNHn4$mw0cr6x-T(jq diff --git a/addons/lunch/static/img/italiana.png b/addons/lunch/static/img/italiana.png deleted file mode 100644 index 2f8c4244436d8f2020d42d7c6b6c1d207d079f82..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11549 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 diff --git a/addons/lunch/static/img/maki.png b/addons/lunch/static/img/maki.png deleted file mode 100644 index c92dd8c83a4bc5ff719dff4b8ba2c88eab35bc33..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8806 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

Li+wtWujyc6$gcZWt*=30M=77= zu&BT`)&iUL8xZ37uS*)KUMYvxY>?zNP|iM|z>zZGHcu*z@+n)k`&;egGGY76bO$?} zu9Y^VR@qU#J@4GYr=@t4$9qk4rRVGJh<;bSH!j>HiGGCz z2*@3~`=g_QyYX|$fJBdY#%pQVdq}jei%2kM;Jku}uXF5WczfITUFPw$X=y8lh#3w| zvfjOsey*C{Jy{wa?ZzVi&J;#A$kLD{F-f)@AY_q^73c2m$b{G8@SgLg~DSdY54BD+rSvfvb;RqP|?CCu~+$cS=o5$wIx_fUB%tpMIe3#2gLfl6#QNGW6!Rv`9G@T9vi@@PQ8sJidVGcotn~IeZUO<~pKjAqp zZ^@s!C8iUp<M3kMYtzm#@rUvYMqO-e&OI&l_6pmL!6NZiJ_{UP-sdm|b;|e4 zWuk3bRF0I+Gg_9uEd+b0I?$mSV{I7q%9Mt)%@7&`7z7Xrf9AP=9XkQd7hrtVBfxF_ zWo>=lFC>Al+k{RFTmCD%5Ih#V5Xdreoh-<0|1AYigJBQFWIgzX&!~tY+5aytr?IEpb}M>S!PZ zjLKhQ8pYaCyBVOWn@Q9FLRfxSY*cDQ99+m-qyWF&!nq!Dwa;UdvvU=zvv>-U zjUL~l+jr!PdrrBIOqr=7Wu&qbCej&l(R%_zKxBP${iG@a1r5EQ;=)><&XG7KL}t_t zY+tMtB>gC8`2=A*!>!m>*83Z$%b$<$#w}O6b_`jiDUx;q7=HMKmw%CJeNK?4O^eMU zS=8_FiV!n~flQ(%)lK`rK1z+m18Zuje8r$WO#<%Yo6Ja}R(5`Vn8nkiXQZE>o>yAZ zL!qomGSmZ336}=j2TTZ@;*9G|c+u_kIcCJieYOP!7_=rqAZj<+bJ}JPA{H~ z@7Y#3)f)jm9N zxNoRvKn6oVxio#mJ+Y@ihd1JB;1b2r(TKqpGaGi2P@s84D7vM-m;xr4nOP&hEj?l0 zxhnM%Q+%Pi1A;d%5l2%o_Ksw%wj~-5N74h3q{_ zWF-=@&*Yz8%GVyWKNPiUy_{F7*DT{@WI-~BtmWpyhM2Nq(g^nj9%wO`*$UL%=2{ir ztYx%}l>5xOpO_+;(jcg+_HC-n>l9CfZ5F-xdWVSLMi2WanabAs4jD`!lHu?048e=O zR(REgm!nO`Am-e^ki>AR*f?`4k^=;GEUudI8&RkYq_!+wBZ{W|{Zwd0TtfEQ=+ColtG6!y|hZRLeu|#E%Lim+|Xn`iUUTyf1G>MxjE5UIG5Qum=Z@@12puWP_{8MIW}T6%Fk+Y!9XFL}N;4M{$V7_(Q?|MC~19 zJZ(=hC7Mn#WhtvzV!jC^4$cNrL64x*;burPQToVfI;;&vSo(%siE_DVwCN<(CTPvB^mT2Ch!v`>g*Cdylt1< z{l*~{M2#w$B*|{^JU=lDWV89!a*^x)prv8AVkAC@7es#2dH4*a3zGY7h3~uw^DW-sei+~VR|5U4@yGDw>Ad?CsJ4J7-il_L=0gv(;ay55hb^w zGWAw;a;H&2AH@poyZPRq7zqKzM8|P>J~VhcLFFN4Yu$UA*}`XCHXp7gA5jGR0Nzn3 zE3R&}rSBcYR2e}34tnGodLhDK2=wpP@tJqb$Ds#2joB`<^)}1qgqjZ~Ro?HDWY8Mk z>C((P0hV@n#CD>z=mDSALr4JHVDPzTYn!d)8yvCj&v8xM zbdl%yIAZ&TSIm(MUO$iQ%^XlbU~3$;oK&2i>>7J)(PhFe-+DEchS>H1Amn45WkZd^ z&(y)2>4xb++#F?ypo+dRM7`MzMYC9Lx(ZNP%CE&MyVT>Gza{~)2Sxm?Kx^>;_$~%o zvf)<3CZvzuYq6fd2xq!Pcq( diff --git a/addons/lunch/static/img/mozza.png b/addons/lunch/static/img/mozza.png deleted file mode 100644 index 8820fbb9cd5fd91741af06c269cc5e11a3bbf9df..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6191 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 X6th5hA^Y#d03aiwDE>#(DCoZcGzO)^ diff --git a/addons/lunch/static/img/pasta_bolognese.png b/addons/lunch/static/img/pasta_bolognese.png deleted file mode 100644 index 64f9972e5c249de31c2b5543d1e2b90fa122ff1a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6727 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 diff --git a/addons/lunch/static/img/pizza_funghi.png b/addons/lunch/static/img/pizza_funghi.png deleted file mode 100644 index 00bceba96b60d16b41c19039f406f89a09cc679c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9213 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 TBticB3IULjP!O*XH3I%0u0YU0 diff --git a/addons/lunch/static/img/pizza_margherita.png b/addons/lunch/static/img/pizza_margherita.png deleted file mode 100644 index 0e3172655245f4630935854ba1e2d8df1f37672d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8597 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 a=3z2`;a|#u^6x?o_#&kwSto8B`u_l0w3v$k diff --git a/addons/lunch/static/img/pizza_veggie.png b/addons/lunch/static/img/pizza_veggie.png deleted file mode 100644 index 950afb54a12486f11ac544511e52da4ae40704e3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7354 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 diff --git a/addons/lunch/static/img/temaki.png b/addons/lunch/static/img/temaki.png deleted file mode 100644 index 8f47e7c035a8c6f054a91d141d94a6726a4a4124..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9244 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 CkB0yN diff --git a/addons/lunch/static/img/tuna_sandwich.png b/addons/lunch/static/img/tuna_sandwich.png deleted file mode 100644 index b616d6156a5351a15548f77678cade93b4afe742..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6425 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 - -

- -
- - - - - - - -
-
- Your order - - Edit - Save -
-
-
-
-
-
- - - -
-
- -
-
- - - - -
-
-
-
- + -
-
- - - - -
-
-
- -
-
- -
-
- Total -
-
- - - - -
-
- -
-
-
- - - - - - - - - - - - - - - -
- -
- diff --git a/addons/lunch/static/tests/lunch_tests.js b/addons/lunch/static/tests/lunch_tests.js new file mode 100644 index 00000000000..3ae1e3491cb --- /dev/null +++ b/addons/lunch/static/tests/lunch_tests.js @@ -0,0 +1,145 @@ +odoo.define('lunch.tests', function (require) { +"use strict"; + +var FormView = require('web.FormView'); +var testUtils = require('web.test_utils'); + +var createView = testUtils.createView; + +QUnit.module('lunch', { + beforeEach: function () { + this.data = { + order: { + fields: { + previous_order_widget: {type: 'text'}, + order_line_ids: {type: 'many2many', relation: 'order_line'} + }, + records: [{ + id: 1, + name: 'coucou', + }, { + id: 2, + name: 'coucou', + }, { + id: 11, + }], + }, + order_line: { + fields: { + product_id: {type: 'many2one', relation: 'product'}, + note: {type: 'text'}, + price: {type: 'float'}, + }, + }, + supplier: { + fields: {}, + records: [{ + id: 1, + display_name: "Coin Gourmant", + }, { + id: 2, + display_name: "Pizza Inn", + }] + }, + product: { + fields: {}, + records: [{ + id: 1, + name: 'Pizza Margherita', + }], + } + }; + }, +}, function () { + + QUnit.test("empty previous_order widget", function (assert) { + assert.expect(2); + + var form = createView({ + View: FormView, + arch: '
' + + '' + + '' + + '' + + '' + + '
', + data: this.data, + model: 'order', + archs: { + "order_line,false,list": '' + + '' + + '' + + '' + + '', + }, + }); + + var widgetText = form.$('.o_field_widget[name="previous_order_widget"]').text(); + assert.ok(widgetText.indexOf('This is the first time you order a meal') !== -1, + "the widget should display its no content text"); + assert.containsNone(form, '.o_lunch_vignette', + "there should be no vignette"); + + form.destroy(); + }); + + QUnit.test("add an order line with previous_order widget", function (assert) { + assert.expect(4); + + var form = createView({ + View: FormView, + arch: '
' + + '' + + '' + + '' + + '' + + '
', + data: this.data, + model: 'order', + mockRPC: function (route, args) { + if (args.method === 'default_get') { + return $.when({ + previous_order_widget: '{' + + '"8": {' + + '"note": "coucou",' + + '"line_id": 8,' + + '"digits": [69, 2],' + + '"product_id": 1,' + + '"currency": "$",' + + '"supplier": "Pizza Inn",' + + '"position": "before",' + + '"price": 6.9,' + + '"product_name": "Pizza Margherita"' + + '}' + + '}' + }); + } + return this._super.apply(this, arguments); + }, + archs: { + "order_line,false,list": '' + + '' + + '' + + '' + + '', + }, + }); + + assert.containsNone(form, '.o_list_view tr.o_data_row', + "there should be no row in the one2many list"); + + assert.containsOnce(form, '.o_lunch_vignette', + "there should be a vignette"); + + // add an order + testUtils.dom.click(form.$('.o_lunch_vignette .o_add_button')); + + assert.containsOnce(form, '.o_list_view tr.o_data_row', + "there should be one new row in the one2many list"); + assert.strictEqual(form.$('.o_list_view tr.o_data_row').text(), "Pizza Margheritacoucou6.90", + "the line should contain the correct data"); + + form.destroy(); + }); +}); +}); diff --git a/addons/lunch/static/tests/test_lunch_kanban.js b/addons/lunch/static/tests/test_lunch_kanban.js deleted file mode 100644 index b2062609974..00000000000 --- a/addons/lunch/static/tests/test_lunch_kanban.js +++ /dev/null @@ -1,207 +0,0 @@ -odoo.define('lunch.lunchKanbanTests', function (require) { -"use strict"; - -var LunchKanbanView = require('lunch.LunchKanbanView'); -var testUtils = require('web.test_utils'); - -var createView = testUtils.createView; - -QUnit.module('Views', { - beforeEach: function () { - this.data = { - product: { - fields: { - id: {string: 'ID', type: 'integer'}, - }, - records: [ - {id: 1, name: 'Tuna sandwich', price: 3.0}, - ] - }, - }; - }, -}, function () { - QUnit.module('LunchKanbanView'); - - QUnit.test('Simple rendering of LunchKanbanView', function (assert) { - assert.expect(8); - - var lunchKanban = createView({ - View: LunchKanbanView, - model: 'product', - data: this.data, - arch: '' + - '
' + - '
' + - '
', - mockRPC: function(route, args) { - if (route === '/lunch/infos') { - return $.when({ - order: 1, - wallet: 20, - username: 'Marc Demo', - userimage: '', - is_manager: false, - users: [ - {id: 1, name: 'Mitchell Admin'}, - {id: 2, name: 'Marc Demo'}, - ], - total: 7.4, - state: 'new', - lines: [ - {id: 1, product: ['Pizza Italiana', 7.4], toppings: [], quantity: 1.0, price: 7.4} - ] - }); - } else if (route.startsWith('data:image/png;base64,')) { - return $.when(); - } - return this._super(route, args); - }, - }); - - var $section = $(lunchKanban.$('.o_lunch_widget_info')[0]); - // username - assert.strictEqual($section.find('div:eq(1) div:eq(0)').text().trim(), 'Marc Demo', 'Username should have been Marc Demo'); - // wallet_balance - assert.strictEqual($section.find('div:eq(1) div:eq(1) span:eq(0)').text().trim(), '20.00', 'Wallet balance should have been 20'); - // your order section - $section = $(lunchKanban.$('.o_lunch_widget_info')[1]); - // only one line - assert.strictEqual($section.find('div:eq(2) div.d-flex').length, 1, 'There should be only one line'); - // quantity = 1 - assert.strictEqual($section.find('div:eq(2) div:eq(0) span:eq(0)').text().trim(), '1', 'The line should contain only one product'); - // buttons to remove and to add product - assert.strictEqual($section.find('.o_remove_product').length, 1, 'There should be a remove product button'); - assert.strictEqual($section.find('.o_add_product').length, 1, 'There should be a add product button'); - - $section = $(lunchKanban.$('.o_lunch_widget_info')[2]); - // total - assert.strictEqual($section.find('div:eq(0) div:eq(1)').text().trim(), '7.4', 'total should be of 7.4'); - // order now button - assert.strictEqual($section.find('button').length, 1, 'order now button should be available'); - - lunchKanban.destroy(); - }); - - QUnit.test('User interactions', function (assert) { - assert.expect(8); - - var state = 'new'; - - var lunchKanban = createView({ - View: LunchKanbanView, - model: 'product', - data: this.data, - arch: '' + - '
' + - '
' + - '
', - mockRPC: function(route, args) { - if (route === '/lunch/infos') { - return $.when({ - order: 1, - wallet: 20, - username: 'Marc Demo', - userimage: '', - is_manager: false, - users: [ - {id: 1, name: 'Mitchell Admin'}, - {id: 2, name: 'Marc Demo'}, - ], - total: 7.4, - state: state, - lines: [ - {id: 1, product: ['Pizza Italiana', 7.4], toppings: [], quantity: 1.0, price: 7.4} - ] - }); - } else if (route === '/lunch/payment_message') { - return $.when({message: 'Hello'}); - } else if (route === '/lunch/pay') { - return $.when(true); - } else if (args.method === 'update_quantity') { - assert.step(args.args); - return $.when(); - } else if (route.startsWith('data:image/png;base64,')) { - return $.when(); - } - return this._super(route, args); - }, - }); - - lunchKanban.$('.o_add_money').click(); - var modal = $('.modal-dialog'); - assert.strictEqual(modal.find('.modal-body').text().trim(), 'Hello', 'Message should have been Hello'); - modal.find('.btn.btn-primary').click(); - - lunchKanban.$('.o_add_product').click(); - lunchKanban.$('.o_remove_product').click(); - - state = 'ordered'; - lunchKanban.$('.o_lunch_widget_order_button').click(); - // state is shown - assert.strictEqual(lunchKanban.$('.o_lunch_ordered').length, 1, 'state should be shown as ordered'); - // no more buttons - assert.strictEqual(lunchKanban.$('.o_remove_product').length, 0, 'button to remove product should not be shown anymore'); - assert.strictEqual(lunchKanban.$('.o_add_product').length, 0, 'button to add product should not be shown anymore'); - state = 'confirmed'; - lunchKanban.reload(); - // state is updated - assert.strictEqual(lunchKanban.$('.o_lunch_confirmed').length, 1, 'state should be shown as confirmed'); - - assert.verifySteps([ - [[1], 1], - [[1], -1], - ]); - - lunchKanban.destroy(); - }); - - QUnit.test('Manager interactions', function (assert) { - assert.expect(5); - - var lunchKanban = createView({ - View: LunchKanbanView, - model: 'product', - data: this.data, - arch: '' + - '
' + - '
' + - '
', - mockRPC: function(route, args) { - if (route === '/lunch/infos') { - return $.when({ - order: 1, - wallet: 20, - username: 'Marc Demo', - userimage: '', - is_manager: true, - users: [ - {id: 1, name: 'Mitchell Admin'}, - {id: 2, name: 'Marc Demo'}, - ], - total: 7.4, - state: 'new', - lines: [ - {id: 1, product: ['Pizza Italiana', 7.4], toppings: [], quantity: 1.0, price: 7.4} - ] - }); - } else if (route.startsWith('data:image/png;base64,')) { - return $.when(); - } - return this._super(route, args); - }, - }); - - var select = lunchKanban.$('select.o_input'); - var options = select.find('option'); - - assert.strictEqual(select.length, 1, 'There should be a selection field'); - assert.strictEqual(options.length, 2, 'Select should have two options'); - assert.strictEqual(options.text().trim(), 'Mitchell AdminMarc Demo', 'Options should be the name of the users'); - assert.strictEqual($(options[0]).data('user-id'), 1, 'user id should be on option'); - assert.strictEqual($(options[1]).data('user-id'), 2, 'user id should be on option'); - - lunchKanban.destroy(); - }); -}); - -}); diff --git a/addons/lunch/tests/__init__.py b/addons/lunch/tests/__init__.py index 08959c769be..f9d697d7b2c 100644 --- a/addons/lunch/tests/__init__.py +++ b/addons/lunch/tests/__init__.py @@ -1,4 +1,3 @@ # -*- coding: utf-8 -*- -from . import common -from . import test_supplier +from . import test_lunch diff --git a/addons/lunch/tests/common.py b/addons/lunch/tests/common.py deleted file mode 100644 index f38b9c547ec..00000000000 --- a/addons/lunch/tests/common.py +++ /dev/null @@ -1,75 +0,0 @@ -# -*- coding: utf-8 -*- -# Part of Odoo. See LICENSE file for full copyright and licensing details. - -from odoo.tests import common - - -class TestsCommon(common.TransactionCase): - - def setUp(self): - super(TestsCommon, self).setUp() - - self.partner_pizza_inn = self.env['res.partner'].create({ - 'name': 'Pizza Inn', - }) - - self.supplier_pizza_inn = self.env['lunch.supplier'].create({ - 'partner_id': self.partner_pizza_inn.id, - 'send_by': 'mail', - 'automatic_email_send': True, - 'automatic_email_time': 11, - 'recurrency': 'reccurent', - 'recurrency_from': 8, - 'recurrency_to': 23, - 'recurrency_monday': True, - 'recurrency_tuesday': True, - 'recurrency_wednesday': True, - 'recurrency_thursday': True, - 'recurrency_friday': True, - }) - - self.partner_coin_gourmand = self.env['res.partner'].create({ - 'name': 'Coin Gourmand', - }) - - self.supplier_coin_gourmand = self.env['lunch.supplier'].create({ - 'partner_id': self.partner_coin_gourmand.id, - 'send_by': 'phone', - 'recurrency': 'reccurent', - 'recurrency_from': 8, - 'recurrency_to': 23, - 'recurrency_monday': True, - 'recurrency_tuesday': True, - 'recurrency_wednesday': True, - 'recurrency_thursday': True, - 'recurrency_friday': True, - }) - - self.category_pizza = self.env['lunch.product.category'].create({ - 'name': 'Pizza', - }) - - self.category_sandwich = self.env['lunch.product.category'].create({ - 'name': 'Sandwich', - }) - - self.product_pizza = self.env['lunch.product'].create({ - 'name': 'Pizza', - 'category_id': self.category_pizza.id, - 'price': 9, - 'supplier_id': self.supplier_pizza_inn.id, - }) - - self.product_sandwich_tuna = self.env['lunch.product'].create({ - 'name': 'Tuna Sandwich', - 'category_id': self.category_sandwich.id, - 'price': 3, - 'supplier_id': self.supplier_coin_gourmand.id, - }) - - self.topping_olives = self.env['lunch.product'].create({ - 'name': 'Olives', - 'price': 0.3, - 'supplier_id': self.supplier_pizza_inn.id, - 'is_topping': True, - }) diff --git a/addons/lunch/tests/test_lunch.py b/addons/lunch/tests/test_lunch.py new file mode 100644 index 00000000000..c6325a3f19c --- /dev/null +++ b/addons/lunch/tests/test_lunch.py @@ -0,0 +1,143 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from odoo.exceptions import ValidationError +from odoo.tests import common + +from datetime import date, datetime +from dateutil import relativedelta + +class Test_Lunch(common.TransactionCase): + + def setUp(self): + """*****setUp*****""" + super(Test_Lunch, self).setUp() + + self.demo_user = self.env['res.users'].search([('name', '=', 'Marc Demo')]) + self.product_Bolognese_id = self.env.ref('lunch.product_Bolognese') + self.new_id_order = self.env['lunch.order'].create({ + 'user_id': self.demo_user.id, + 'order_line_ids': '[]', + }) + self.new_id_order_line = self.env['lunch.order.line'].create({ + 'order_id': self.new_id_order.id, + 'product_id': self.product_Bolognese_id.id, + 'note': '+Emmental', + 'cashmove': [], + 'price': self.product_Bolognese_id.price, + }) + + def test_00_lunch_order(self): + """Change the state of an order line from 'new' to 'ordered'. Check that there are no cashmove linked to that order line""" + self.order_one = self.new_id_order_line + #we check that our order_line is a 'new' one and that there are no cashmove linked to that order_line: + self.assertEqual(self.order_one.state, 'new') + self.assertEqual(list(self.order_one.cashmove), []) + #we order that orderline so it's state will be 'ordered' + self.order_one.order() + self.order_one = self.new_id_order_line + #we check that our order_line is a 'ordered' one and that there are no cashmove linked to that order_line: + self.assertEqual(self.order_one.state, 'ordered') + self.assertEqual(list(self.order_one.cashmove), []) + + def test_01_lunch_order(self): + """Change the state of an order line from 'new' to 'ordered' then to 'confirmed'. Check that there is a cashmove linked to the order line""" + self.test_00_lunch_order() + #We receive the order so we confirm the order line so it's state will be 'confirmed' + #A cashmove will be created and we will test that the cashmove amount equals the order line price + self.order_one.confirm() + self.order_one = self.new_id_order_line + #we check that our order_line is a 'confirmed' one and that there are a cashmove linked to that order_line with an amount equals to the order line price: + self.assertEqual(self.order_one.state, 'confirmed') + self.assertTrue(self.order_one.cashmove) + self.assertTrue(self.order_one.cashmove[0].amount == -self.order_one.price) + + def test_02_lunch_order(self): + """Change the state of an order line from 'confirmed' to 'cancelled' and check that the cashmove linked to that order line will be deleted""" + self.test_01_lunch_order() + #We have a confirmed order with its associate cashmove + #We execute the cancel function + self.order_one.cancel() + self.order_one = self.new_id_order_line + #We check that the state is cancelled and that the cashmove has been deleted + self.assertEqual(self.order_one.state, 'cancelled') + self.assertFalse(self.order_one.cashmove) + + def test_03_lunch_alert(self): + """ specify a lunch alert and make sure it is not possible to make an + order that day + """ + alert_01 = self.env['lunch.alert'].create({ + 'message': 'Order Bolognese only on Tuesday', + 'partner_id': self.product_Bolognese_id.supplier.id, + 'alert_type': 'week', + 'tuesday': True + }) + wednesday = date.today() + relativedelta.relativedelta(days=7, weekday=2) + next_tuesday = datetime.today() + relativedelta.relativedelta(days=14, weekday=1) + next_wednesday = datetime.today() + relativedelta.relativedelta(days=14, weekday=2) + + # We check that we can make an order on a Tuesday + order_01 = self.env['lunch.order'].create({ + 'user_id': self.demo_user.id, + 'date': date.today() + relativedelta.relativedelta(days=7, weekday=1), + 'order_line_ids': [(0, 0, { + 'product_id': self.product_Bolognese_id.id, + })] + }) + order_01.order_line_ids.order() + + with self.assertRaises(ValidationError): + # Planning an order to an non-authorized day must not be possible + order_02 = self.env['lunch.order'].create({ + 'user_id': self.demo_user.id, + 'date': wednesday, + 'order_line_ids': [(0, 0, { + 'product_id': self.product_Bolognese_id.id, + })] + }) + + alert_02 = self.env['lunch.alert'].create({ + 'message': 'Working one more day', + 'partner_id': self.product_Bolognese_id.supplier.id, + 'alert_type': 'specific', + 'specific_day': wednesday, + }) + + # should now be possible to order tomorrow + order_03 = self.env['lunch.order'].create({ + 'user_id': self.demo_user.id, + 'date': wednesday, + 'order_line_ids': [(0, 0, { + 'product_id': self.product_Bolognese_id.id, + })] + }) + + # should be possible to planned on an allowed day + order_04 = self.env['lunch.order'].create({ + 'user_id': self.demo_user.id, + 'date': next_tuesday, + 'order_line_ids': [(0, 0, { + 'product_id': self.product_Bolognese_id.id, + })] + }) + order_04.order_line_ids.order() + + # combinaision of alerts should work + alert_03 = self.env['lunch.alert'].create({ + 'message': 'Order Bolognese also on Wednesday', + 'partner_id': self.product_Bolognese_id.supplier.id, + 'alert_type': 'week', + 'wednesday': True + }) + # Planning an order Wednesday must now be possible + order_05 = self.env['lunch.order'].create({ + 'user_id': self.demo_user.id, + 'date': next_wednesday, + 'order_line_ids': [(0, 0, { + 'product_id': self.product_Bolognese_id.id, + })] + }) + order_05.order_line_ids.order() + + diff --git a/addons/lunch/tests/test_supplier.py b/addons/lunch/tests/test_supplier.py deleted file mode 100644 index 55c57c8e744..00000000000 --- a/addons/lunch/tests/test_supplier.py +++ /dev/null @@ -1,158 +0,0 @@ -# -*- coding: utf-8 -*- -# Part of Odoo. See LICENSE file for full copyright and licensing details. - -from datetime import datetime -from unittest.mock import patch - -from odoo import fields - -from odoo.addons.lunch.tests.common import TestsCommon - - -class TestSupplier(TestsCommon): - def setUp(self): - super(TestSupplier, self).setUp() - - self.monday_3am = datetime(2018, 10, 29, 3, 0, 0) - self.monday_10am = datetime(2018, 10, 29, 10, 0, 0) - self.monday_1pm = datetime(2018, 10, 29, 13, 0, 0) - self.monday_8pm = datetime(2018, 10, 29, 20, 0, 0) - - self.saturday_3am = datetime(2018, 11, 3, 3, 0, 0) - self.saturday_10am = datetime(2018, 11, 3, 10, 0, 0) - self.saturday_1pm = datetime(2018, 11, 3, 13, 0, 0) - self.saturday_8pm = datetime(2018, 11, 3, 20, 0, 0) - - def test_compute_available_today(self): - tests = [(self.monday_3am, False), (self.monday_10am, True), - (self.monday_1pm, True), (self.monday_8pm, True), - (self.saturday_3am, False), (self.saturday_10am, False), - (self.saturday_1pm, False), (self.saturday_8pm, False)] - - for value, result in tests: - with patch.object(fields.Datetime, 'now', return_value=value) as _: - assert self.supplier_pizza_inn.available_today == result,\ - 'supplier pizza inn should %s considered available on %s' % ('be' if result else 'not be', value) - - self.env['lunch.supplier'].invalidate_cache(['available_today'], [self.supplier_pizza_inn.id]) - - def test_search_available_today(self): - Supplier = self.env['lunch.supplier'] - - tests = [(self.monday_3am, 3.0, 'monday'), (self.monday_10am, 10.0, 'monday'), - (self.monday_1pm, 13.0, 'monday'), (self.monday_8pm, 20.0, 'monday'), - (self.saturday_3am, 3.0, 'saturday'), (self.saturday_10am, 10.0, 'saturday'), - (self.saturday_1pm, 13.0, 'saturday'), (self.saturday_8pm, 20.0, 'saturday')] - - assert Supplier._search_available_today('>', 7) == [] - assert Supplier._search_available_today('>', True) == [] - - for value, rvalue, dayname in tests: - with patch.object(fields.Datetime, 'now', return_value=value) as _: - assert Supplier._search_available_today('=', True) == ['|', '&', '&', ('recurrency', '=', 'once'), ('recurrency_date_from', '<=', value), - ('recurrency_date_to', '>=', value), '&', '&', ('recurrency_%s' % (dayname), '=', True), - ('recurrency_from', '<=', rvalue), ('recurrency_to', '>=', rvalue)], 'Wrong domain generated for values (%s, %s)' % (value, rvalue) - - assert self.supplier_pizza_inn in Supplier.search([('available_today', '=', True)]) - - def test_auto_email_send(self): - order = self.env['lunch.order'].create({}) - line = self.env['lunch.order.line'].create({ - 'order_id': order.id, - 'product_id': self.product_pizza.id, - }) - - assert len(order.supplier_ids) == 1 and self.supplier_pizza_inn in order.supplier_ids - - order.action_order() - assert order.state == 'ordered' - assert line.state == 'ordered' - - with patch.object(fields.Datetime, 'now', return_value=self.monday_1pm): - with patch.object(fields.Date, 'today', return_value=self.monday_1pm.date()): - self.supplier_pizza_inn._auto_email_send() - - assert order.state == 'confirmed' - assert line.state == 'confirmed' - assert order.mail_sent - - # Do the same but this time order contains multiple lines with products from at least two suppliers - # Check if the lines for pizza_inn have been sent, and put in state='confirmed' only those lines should be - # moreover the order should not yet be in state='confirmed' as there still are some lines to confirm - order = self.env['lunch.order'].create({}) - line = self.env['lunch.order.line'].create({ - 'order_id': order.id, - 'product_id': self.product_pizza.id, - 'topping_ids': [(6, 0, [self.topping_olives.id])], - }) - line2 = self.env['lunch.order.line'].create({ - 'order_id': order.id, - 'product_id': self.product_sandwich_tuna.id, - }) - - assert len(order.supplier_ids) == 2 and self.supplier_coin_gourmand in order.supplier_ids and self.supplier_pizza_inn in order.supplier_ids - - order.action_order() - assert order.state == 'ordered' - assert line.state == 'ordered' - assert line2.state == 'ordered' - - with patch.object(fields.Datetime, 'now', return_value=self.monday_1pm): - with patch.object(fields.Date, 'today', return_value=self.monday_1pm.date()): - self.supplier_pizza_inn._auto_email_send() - - assert order.state == 'confirmed' - assert line.state == 'confirmed' - assert line2.state == 'ordered' - - assert order.mail_sent - - # Check with multiple orders - order_1 = self.env['lunch.order'].create({}) - - line_1_1 = self.env['lunch.order.line'].create({ - 'order_id': order_1.id, - 'product_id': self.product_pizza.id, - }) - - line_1_2 = line_1_1 = self.env['lunch.order.line'].create({ - 'order_id': order_1.id, - 'product_id': self.product_pizza.id, - 'topping_ids': [(6, 0, [self.topping_olives.id])] - }) - - order_2 = self.env['lunch.order'].create({}) - - line_2_1 = self.env['lunch.order.line'].create({ - 'order_id': order_2.id, - 'product_id': self.product_sandwich_tuna.id - }) - - line_2_2 = self.env['lunch.order.line'].create({ - 'order_id': order_2.id, - 'product_id': self.product_pizza.id, - }) - - order_3 = self.env['lunch.order'].create({}) - - line_3_1 = self.env['lunch.order.line'].create({ - 'order_id': order_3.id, - 'product_id': self.product_sandwich_tuna.id - }) - - (order_1 | order_2 | order_3).action_order() - - assert all(order.state == 'ordered' for order in [order_1, order_2, order_3]) - assert all(line.state == 'ordered' for line in [line_1_1, line_1_2, line_2_1, line_2_2, line_3_1]) - - with patch.object(fields.Datetime, 'now', return_value=self.monday_1pm): - with patch.object(fields.Date, 'today', return_value=self.monday_1pm.date()): - self.supplier_pizza_inn._auto_email_send() - - assert all(order.state == 'confirmed' for order in [order_1, order_2]) - assert order_3.state == 'ordered' - assert all(line.state == 'confirmed' for line in [line_1_1, line_1_2, line_2_2]) - assert all(line.state == 'ordered' for line in [line_2_1, line_3_1]) - - assert all(order.mail_sent for order in [order_1, order_2]) - assert not order_3.mail_sent diff --git a/addons/lunch/views/lunch_alert_views.xml b/addons/lunch/views/lunch_alert_views.xml new file mode 100644 index 00000000000..bb6d807a9ff --- /dev/null +++ b/addons/lunch/views/lunch_alert_views.xml @@ -0,0 +1,134 @@ + + + + lunch.alert.search + lunch.alert + + + + + + + + + + lunch.alert.tree + lunch.alert + + + + + + + + + + + + lunch.alert.form + lunch.alert + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + +
+ Products from this vendor can not be ordered at that moment. +
+
+ Products from this vendor can be ordered at that moment. +
+
+
+ + + +
+
+
+
+ + + lunch.alert.kanban + lunch.alert + + + + + + + + +
+
+ +
+
+
+ Between: - + +
+
+ + + +
+
+
+
+
+
+
+
+ + + Alerts + lunch.alert + tree,kanban,form + + +

+ Create a new lunch alert +

+ Alerts are used to warn employee from possible issues concerning the lunch orders. + To create a lunch alert you have to define its recurrence, the time interval during which the alert should be executed and the message to display. +

+ Example:
+ Recurency: Everyday,
+ Time interval: from 00h00 am to 11h59 pm,
+ Message: "You must order before 10h30 am". +

+
+
+
diff --git a/addons/lunch/views/lunch_orders_views.xml b/addons/lunch/views/lunch_orders_views.xml index b8665398153..8cd4658a8cb 100644 --- a/addons/lunch/views/lunch_orders_views.xml +++ b/addons/lunch/views/lunch_orders_views.xml @@ -19,6 +19,7 @@
+
@@ -42,15 +43,24 @@ +
+ +
+
+ +
+ - + @@ -85,7 +95,7 @@ - + @@ -98,14 +108,15 @@ - + -
- -