diff --git a/addons/event/security/event_security.xml b/addons/event/security/event_security.xml index 6605989b3fc..25ba37e54a1 100644 --- a/addons/event/security/event_security.xml +++ b/addons/event/security/event_security.xml @@ -51,6 +51,13 @@ ] + + Event/Registration: Portal + + + ['|', ('email', '=', user.partner_id.email), ('partner_id', '=', user.partner_id.id)] + + diff --git a/addons/event/security/ir.model.access.csv b/addons/event/security/ir.model.access.csv index 2c5d6a3b17a..6cd3daead21 100644 --- a/addons/event/security/ir.model.access.csv +++ b/addons/event/security/ir.model.access.csv @@ -5,9 +5,10 @@ access_event_event_portal,event.event.portal,model_event_event,,1,0,0,0 access_event_event_user,event.event.user,model_event_event,event.group_event_user,1,0,0,0 access_event_event_manager,event.event.manager,model_event_event,event.group_event_manager,1,1,1,1 access_event_registration,event.registration,model_event_registration,event.group_event_user,1,1,1,1 -access_event_registration_portal,event.registration,model_event_registration,,0,0,0,0 +access_report_event_registration,report.event.registration,model_report_event_registration,event.group_event_user,1,1,1,1 +access_event_registration_portal,event.registration,model_event_registration,base.group_portal,1,0,0,0 +access_event_registration_employee,event.registration,model_event_registration,base.group_user,1,0,0,0 access_event_mail,event.mail,model_event_mail,event.group_event_user,1,0,0,0 access_event_mail_manager,event.mail manager,model_event_mail,event.group_event_manager,1,1,1,1 access_event_mail_registration,event.mail.registration,model_event_mail_registration,event.group_event_user,1,0,0,0 -access_event_mail_registration_manager,event.mail.registration.manager,model_event_mail_registration,event.group_event_manager,1,1,1,1 -access_report_event_registration,report.event.registration,model_report_event_registration,event.group_event_user,1,1,1,1 \ No newline at end of file +access_event_mail_registration_manager,event.mail.registration.manager,model_event_mail_registration,event.group_event_manager,1,1,1,1 \ No newline at end of file diff --git a/addons/event_sale/__manifest__.py b/addons/event_sale/__manifest__.py index 3f1362350f6..7717b861ed4 100644 --- a/addons/event_sale/__manifest__.py +++ b/addons/event_sale/__manifest__.py @@ -26,6 +26,7 @@ this event. 'data/event_sale_data.xml', 'report/event_event_templates.xml', 'security/ir.model.access.csv', + 'security/event_security.xml', 'wizard/event_edit_registration.xml', ], 'demo': ['data/event_demo.xml'], diff --git a/addons/event_sale/security/event_security.xml b/addons/event_sale/security/event_security.xml new file mode 100644 index 00000000000..3e397f622ed --- /dev/null +++ b/addons/event_sale/security/event_security.xml @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/addons/sale/report/invoice_report_templates.xml b/addons/sale/report/invoice_report_templates.xml index 09beef6f8cc..4d3abdc152e 100644 --- a/addons/sale/report/invoice_report_templates.xml +++ b/addons/sale/report/invoice_report_templates.xml @@ -14,7 +14,7 @@ Unit Price Disc.(%) Taxes - Price + Amount @@ -45,7 +45,7 @@ - + diff --git a/addons/sale_stock/models/sale_order.py b/addons/sale_stock/models/sale_order.py index 1c4bc697351..436cc30b346 100644 --- a/addons/sale_stock/models/sale_order.py +++ b/addons/sale_stock/models/sale_order.py @@ -108,13 +108,9 @@ class SaleOrderLine(models.Model): @api.multi @api.depends('product_id') def _compute_qty_delivered_updateable(self): - # prefetch field before filtering - self.mapped('product_id') - # on consumable or stockable products, qty_delivered_updateable defaults - # to False; on other lines use the original computation - lines = self.filtered(lambda line: line.product_id.type not in ('consu', 'product')) - lines = lines.with_prefetch(self._prefetch) - super(SaleOrderLine, lines)._compute_qty_delivered_updateable() + for line in self: + if line.product_id.type not in ('consu', 'product'): + super(SaleOrderLine, line)._compute_qty_delivered_updateable() @api.onchange('product_id') def _onchange_product_id_set_customer_lead(self): diff --git a/addons/sale_stock/tests/test_sale_stock.py b/addons/sale_stock/tests/test_sale_stock.py index ab39a0d2129..1544c78288c 100644 --- a/addons/sale_stock/tests/test_sale_stock.py +++ b/addons/sale_stock/tests/test_sale_stock.py @@ -52,7 +52,7 @@ class TestSaleStock(TestSale): pick_2 = self.so.picking_ids[0] pick_2.force_assign() pick_2.pack_operation_product_ids.write({'qty_done': 1}) - self.assertIsNone(pick_2.do_new_transfer(), 'Sale Stock: second picking should be final without need for a backorder') + self.assertTrue(pick_2.do_new_transfer(), 'Sale Stock: second picking should be final without need for a backorder') self.assertEqual(self.so.invoice_status, 'to invoice', 'Sale Stock: so invoice_status should be "to invoice" after complete delivery') del_qties = [sol.qty_delivered for sol in self.so.order_line] del_qties_truth = [2.0 if sol.product_id.type in ['product', 'consu'] else 0.0 for sol in self.so.order_line] @@ -100,7 +100,7 @@ class TestSaleStock(TestSale): pick = self.so.picking_ids pick.force_assign() pick.pack_operation_product_ids.write({'qty_done': 2}) - self.assertIsNone(pick.do_new_transfer(), 'Sale Stock: complete delivery should not need a backorder') + self.assertTrue(pick.do_new_transfer(), 'Sale Stock: complete delivery should not need a backorder') del_qties = [sol.qty_delivered for sol in self.so.order_line] del_qties_truth = [2.0 if sol.product_id.type in ['product', 'consu'] else 0.0 for sol in self.so.order_line] self.assertEqual(del_qties, del_qties_truth, 'Sale Stock: delivered quantities are wrong after partial delivery') diff --git a/addons/stock/models/stock_picking.py b/addons/stock/models/stock_picking.py index 271828fb8e3..58c8fab147f 100644 --- a/addons/stock/models/stock_picking.py +++ b/addons/stock/models/stock_picking.py @@ -842,7 +842,7 @@ class Picking(models.Model): if pack_operations_delete: pack_operations_delete.unlink() self.do_transfer() - return + return True def check_backorder(self): need_rereserve, all_op_processed = self.picking_recompute_remaining_quantities(done_qtys=True) diff --git a/addons/web/static/src/less/form_view_layout.less b/addons/web/static/src/less/form_view_layout.less index 111805c7325..97c313a1d0b 100644 --- a/addons/web/static/src/less/form_view_layout.less +++ b/addons/web/static/src/less/form_view_layout.less @@ -168,9 +168,7 @@ // Flex fields .o_form_field_many2one, .o_form_field_radio, .o_form_field_many2manytags, .o_form_field_percent_pie, .o_form_field_monetary, .o_form_field_binary_file { - @media (min-width: @screen-sm-min) { .o-inline-flex-display(); - } > span, > button { .o-flex(0, 0, auto); } @@ -206,6 +204,9 @@ // Radio buttons .o_form_field_radio { + @media (max-width: @screen-xs-max) { + display: inline-block; + } .o_radio_item { .o-flex(0, 0, auto); .o-flex-display(); diff --git a/addons/website_event/controllers/main.py b/addons/website_event/controllers/main.py index 1dd43541c94..6f79a160b3e 100644 --- a/addons/website_event/controllers/main.py +++ b/addons/website_event/controllers/main.py @@ -169,7 +169,7 @@ class WebsiteEventController(http.Controller): 'event': event, 'main_object': event, 'range': range, - 'registrable': event._is_event_registrable() + 'registrable': event.sudo()._is_event_registrable() } return request.render("website_event.event_description_full", values) diff --git a/addons/website_event/views/website_event_templates.xml b/addons/website_event/views/website_event_templates.xml index 6688edf6a0f..427fde46ca6 100644 --- a/addons/website_event/views/website_event_templates.xml +++ b/addons/website_event/views/website_event_templates.xml @@ -458,7 +458,7 @@ Event registration is closed. - + Configure and Launch Event Registration