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