summaryrefslogtreecommitdiff
path: root/addons/website_slides/controllers/main.py
diff options
context:
space:
mode:
authorAurélien Warnon <awa@odoo.com>2019-02-21 09:06:26 +0000
committerThibault Delavallée <tde@odoo.com>2019-02-26 16:07:16 +0000
commit5db9ed0391febb7cabfcd7fadb1971abd2fa0bc4 (patch)
treeedb8d33100b9cf70a6d6f3e44b4c772269a1cd59 /addons/website_slides/controllers/main.py
parent362271f35ad1a2c0bb15b1069deaa864c5100a3b (diff)
[REF] website_slides: refactor the slide archive modal on frontend
Purpose ======= This commits refactors the slide archiving confirmation modal to make it a standard Dialog (remove global selectors, remove most of useless xml, ...). It also adds a new slide archive route to allow channel publishers to archive slides in sudo mode. Indeed ACLs only website_publishers can write on slide model. In some case people without real rights may update slides. Commit linked to task ID 1942852 and PR #31394.
Diffstat (limited to 'addons/website_slides/controllers/main.py')
-rw-r--r--addons/website_slides/controllers/main.py11
1 files changed, 11 insertions, 0 deletions
diff --git a/addons/website_slides/controllers/main.py b/addons/website_slides/controllers/main.py
index 01f52fb536a..17ca37648eb 100644
--- a/addons/website_slides/controllers/main.py
+++ b/addons/website_slides/controllers/main.py
@@ -559,6 +559,17 @@ class WebsiteSlides(WebsiteProfile):
slide.invalidate_cache()
return slide.read(['likes', 'dislikes', 'user_vote'])[0]
+ @http.route('/slides/slide/archive', type='json', auth='user', website=True)
+ def slide_archive(self, slide_id):
+ """ This route allows channel publishers to archive slides.
+ It has to be done in sudo mode since only website_publishers can write on slides in ACLs """
+ slide = request.env['slide.slide'].browse(int(slide_id))
+ if slide.channel_id.can_publish:
+ slide.sudo().active = False
+ return True
+
+ return False
+
@http.route(['/slides/slide/send_share_email'], type='json', auth='user', website=True)
def slide_send_share_email(self, slide_id, email):
slide = request.env['slide.slide'].browse(int(slide_id))