diff --git a/addons/hr_holidays/models/hr_holidays.py b/addons/hr_holidays/models/hr_holidays.py index 003d4ed26f9..64390ec90f1 100644 --- a/addons/hr_holidays/models/hr_holidays.py +++ b/addons/hr_holidays/models/hr_holidays.py @@ -248,7 +248,7 @@ class Holidays(models.Model): if nholidays: raise ValidationError(_('You can not have 2 leaves that overlaps on same day!')) - @api.constrains('state', 'number_of_days_temp') + @api.constrains('state', 'number_of_days_temp', 'holiday_status_id') def _check_holidays(self): for holiday in self: if holiday.holiday_type != 'employee' or holiday.type != 'remove' or not holiday.employee_id or holiday.holiday_status_id.limit: diff --git a/addons/mrp/models/mrp_production.py b/addons/mrp/models/mrp_production.py index d8480672593..c7d41c90057 100644 --- a/addons/mrp/models/mrp_production.py +++ b/addons/mrp/models/mrp_production.py @@ -349,7 +349,7 @@ class MrpProduction(models.Model): source_location = routing.location_id else: source_location = self.location_src_id - original_quantity = self.product_qty - self.qty_produced + original_quantity = (self.product_qty - self.qty_produced) or 1.0 data = { 'sequence': bom_line.sequence, 'name': self.name, diff --git a/addons/website_sale/controllers/main.py b/addons/website_sale/controllers/main.py index d80fc13b61d..990ad81d476 100644 --- a/addons/website_sale/controllers/main.py +++ b/addons/website_sale/controllers/main.py @@ -2,7 +2,7 @@ # Part of Odoo. See LICENSE file for full copyright and licensing details. import json import logging -from werkzeug.exceptions import Forbidden +from werkzeug.exceptions import Forbidden, NotFound from odoo import http, tools, _ from odoo.http import request @@ -193,6 +193,11 @@ class WebsiteSale(http.Controller): else: ppg = PPG + if category: + category = request.env['product.public.category'].search([('id', '=', int(category))], limit=1) + if not category: + raise NotFound() + attrib_list = request.httprequest.args.getlist('attrib') attrib_values = [map(int, v.split("-")) for v in attrib_list if v] attributes_ids = set([v[0] for v in attrib_values]) @@ -213,9 +218,6 @@ class WebsiteSale(http.Controller): url = "/shop" if search: post["search"] = search - if category: - category = request.env['product.public.category'].browse(int(category)) - url = "/shop/category/%s" % slug(category) if attrib_list: post['attrib'] = attrib_list @@ -224,6 +226,7 @@ class WebsiteSale(http.Controller): parent_category_ids = [] if category: + url = "/shop/category/%s" % slug(category) parent_category_ids = [category.id] current_category = category while current_category.parent_id: