From b7f4fa7ebc3bd1b55737c6458ffc52943ee5790a Mon Sep 17 00:00:00 2001 From: Marcel Savegnago Date: Sun, 28 Feb 2021 17:26:09 -0300 Subject: [PATCH] [IMP] document_page_portal: black, isort, prettier --- document_page_portal/__manifest__.py | 36 ++-- document_page_portal/controllers/portal.py | 158 +++++++++++------- document_page_portal/models/document_page.py | 9 +- .../document_page_portal_security.xml | 7 +- .../security/ir.model.access.csv | 2 +- .../src/js/document_page_portal_tour.js | 64 +++---- .../tests/test_document_page_portal.py | 18 +- document_page_portal/views/assets.xml | 15 +- document_page_portal/views/document_page.xml | 7 +- .../views/document_page_portal_templates.xml | 73 ++++++-- .../odoo/addons/document_page_portal | 1 + setup/document_page_portal/setup.py | 6 + 12 files changed, 245 insertions(+), 151 deletions(-) create mode 120000 setup/document_page_portal/odoo/addons/document_page_portal create mode 100644 setup/document_page_portal/setup.py diff --git a/document_page_portal/__manifest__.py b/document_page_portal/__manifest__.py index 80ba91de..5b28d0a6 100644 --- a/document_page_portal/__manifest__.py +++ b/document_page_portal/__manifest__.py @@ -3,26 +3,22 @@ { - 'name': 'Document Page Portal', - 'summary': """ + "name": "Document Page Portal", + "summary": """ This module enables document page portal""", - 'version': '12.0.1.0.0', - 'category': 'Knowledge Management', - 'author': 'Escodoo, Odoo Community Association (OCA)', - 'maintainers': ['marcelsavegnago'], - 'images': ['static/description/banner.png'], - 'website': 'https://github.com/OCA/knowledge', - 'license': 'AGPL-3', - 'depends': [ - 'base', - 'portal', - 'document_page' - ], - 'data': [ - 'views/assets.xml', - 'views/document_page.xml', - 'security/document_page_portal_security.xml', - 'security/ir.model.access.csv', - 'views/document_page_portal_templates.xml', + "version": "13.0.1.0.0", + "category": "Knowledge Management", + "author": "Escodoo, Odoo Community Association (OCA)", + "maintainers": ["marcelsavegnago"], + "images": ["static/description/banner.png"], + "website": "https://github.com/OCA/knowledge", + "license": "AGPL-3", + "depends": ["base", "portal", "document_page"], + "data": [ + "views/assets.xml", + "views/document_page.xml", + "security/document_page_portal_security.xml", + "security/ir.model.access.csv", + "views/document_page_portal_templates.xml", ], } diff --git a/document_page_portal/controllers/portal.py b/document_page_portal/controllers/portal.py index 30d8c8e2..a6c01711 100644 --- a/document_page_portal/controllers/portal.py +++ b/document_page_portal/controllers/portal.py @@ -5,114 +5,146 @@ from odoo import http from odoo.exceptions import AccessError, MissingError from odoo.http import request -from odoo.tools.translate import _ -from odoo.addons.portal.controllers.portal import pager as portal_pager, CustomerPortal from odoo.osv.expression import OR +from odoo.tools.translate import _ + +from odoo.addons.portal.controllers.portal import CustomerPortal, pager as portal_pager class CustomerPortal(CustomerPortal): - def _prepare_portal_layout_values(self): values = super(CustomerPortal, self)._prepare_portal_layout_values() - values['document_page_count'] = request.env[ - 'document.page'].search_count([('type', '=', 'content')]) + values["document_page_count"] = request.env["document.page"].search_count( + [("type", "=", "content")] + ) return values - def _document_page_get_page_view_values(self, document_page, - access_token, **kwargs): + def _document_page_get_page_view_values( + self, document_page, access_token, **kwargs + ): values = { - 'page_name': 'document_page', - 'document_page': document_page, + "page_name": "document_page", + "document_page": document_page, } return self._get_page_view_values( - document_page, access_token, values, - 'my_document_pages_history', False, **kwargs) + document_page, + access_token, + values, + "my_document_pages_history", + False, + **kwargs + ) @http.route( - ['/my/knowledge/documents/', '/my/knowledge/documents/page/'], - type='http', auth="user", website=True) - def portal_my_knowledge_document_pages(self, page=1, date_begin=None, - date_end=None, sortby=None, - search=None, search_in='content', **kw): + ["/my/knowledge/documents/", "/my/knowledge/documents/page/"], + type="http", + auth="user", + website=True, + ) + def portal_my_knowledge_document_pages( + self, + page=1, + date_begin=None, + date_end=None, + sortby=None, + search=None, + search_in="content", + **kw + ): values = self._prepare_portal_layout_values() - domain = [('type', '=', 'content')] + domain = [("type", "=", "content")] searchbar_sortings = { - 'date': {'label': _('Newest'), 'order': 'create_date desc'}, - 'name': {'label': _('Name'), 'order': 'name'}, - 'parent': {'label': _('Category'), 'order': 'parent_id'}, + "date": {"label": _("Newest"), "order": "create_date desc"}, + "name": {"label": _("Name"), "order": "name"}, + "parent": {"label": _("Category"), "order": "parent_id"}, } searchbar_inputs = { - 'content': {'input': 'content', 'label': _( - 'Search (in Content)')}, - 'all': {'input': 'all', 'label': _('Search in All')}, + "content": { + "input": "content", + "label": _('Search (in Content)'), + }, + "all": {"input": "all", "label": _("Search in All")}, } # default sort by value if not sortby: - sortby = 'date' - order = searchbar_sortings[sortby]['order'] + sortby = "date" + order = searchbar_sortings[sortby]["order"] # archive groups - Default Group By 'create_date' - archive_groups = self._get_archive_groups('document.page', domain) + archive_groups = self._get_archive_groups("document.page", domain) if date_begin and date_end: domain += [ - ('create_date', '>', date_begin), - ('create_date', '<=', date_end), + ("create_date", ">", date_begin), + ("create_date", "<=", date_end), ] # search if search and search_in: search_domain = [] - if search_in in ('content', 'all'): - search_domain = OR([search_domain, [ - '|', ('name', 'ilike', search), ('content', 'ilike', search)]]) + if search_in in ("content", "all"): + search_domain = OR( + [ + search_domain, + ["|", ("name", "ilike", search), ("content", "ilike", search)], + ] + ) domain += search_domain # pager - document_pages_count = request.env['document.page'].search_count(domain) + document_pages_count = request.env["document.page"].search_count(domain) pager = portal_pager( url="/my/knowledge/documents", - url_args={'date_begin': date_begin, 'date_end': date_end, 'sortby': sortby}, + url_args={"date_begin": date_begin, "date_end": date_end, "sortby": sortby}, total=document_pages_count, page=page, - step=self._items_per_page + step=self._items_per_page, ) - document_pages = request.env['document.page'].search( - domain, order=order, limit=self._items_per_page, offset=pager['offset']) - request.session['my_document_pages_history'] = document_pages.ids[:100] + document_pages = request.env["document.page"].search( + domain, order=order, limit=self._items_per_page, offset=pager["offset"] + ) + request.session["my_document_pages_history"] = document_pages.ids[:100] - values.update({ - 'date': date_begin, - 'document_pages': document_pages, - 'page_name': 'document_page', - 'default_url': '/my/knowledge/s', - 'pager': pager, - 'archive_groups': archive_groups, - 'searchbar_sortings': searchbar_sortings, - 'searchbar_inputs': searchbar_inputs, - 'sortby': sortby, - 'search_in': search_in, - 'search': search, - }) + values.update( + { + "date": date_begin, + "document_pages": document_pages, + "page_name": "document_page", + "default_url": "/my/knowledge/s", + "pager": pager, + "archive_groups": archive_groups, + "searchbar_sortings": searchbar_sortings, + "searchbar_inputs": searchbar_inputs, + "sortby": sortby, + "search_in": search_in, + "search": search, + } + ) return request.render( - "document_page_portal.portal_my_knowledge_document_pages", values) + "document_page_portal.portal_my_knowledge_document_pages", values + ) - @http.route([ - "/knowledge/document/", - "/knowledge/document//", - '/my/knowledge/document/' - ], type='http', auth="public", website=True) - def document_pages_followup(self, document_page_id=None, - access_token=None, **kw): + @http.route( + [ + "/knowledge/document/", + "/knowledge/document//", + "/my/knowledge/document/", + ], + type="http", + auth="public", + website=True, + ) + def document_pages_followup(self, document_page_id=None, access_token=None, **kw): try: document_page_sudo = self._document_check_access( - 'document.page', document_page_id, access_token) + "document.page", document_page_id, access_token + ) except (AccessError, MissingError): - return request.redirect('/my') + return request.redirect("/my") values = self._document_page_get_page_view_values( - document_page_sudo, access_token, **kw) - return request.render( - "document_page_portal.document_pages_followup", values) + document_page_sudo, access_token, **kw + ) + return request.render("document_page_portal.document_pages_followup", values) diff --git a/document_page_portal/models/document_page.py b/document_page_portal/models/document_page.py index fef21ad4..72bf4082 100644 --- a/document_page_portal/models/document_page.py +++ b/document_page_portal/models/document_page.py @@ -6,9 +6,10 @@ from odoo import fields, models class DocumentPage(models.Model): - _inherit = 'document.page' + _inherit = "document.page" is_public = fields.Boolean( - 'Public Page', - help='If true it allows any user of the portal to have ' - 'access to this document.') + "Public Page", + help="If true it allows any user of the portal to have " + "access to this document.", + ) diff --git a/document_page_portal/security/document_page_portal_security.xml b/document_page_portal/security/document_page_portal_security.xml index 98ce80f5..28177488 100644 --- a/document_page_portal/security/document_page_portal_security.xml +++ b/document_page_portal/security/document_page_portal_security.xml @@ -1,4 +1,4 @@ - + @@ -16,7 +16,10 @@ ('message_partner_ids', 'child_of', [user.partner_id.commercial_partner_id.id]) ] - + diff --git a/document_page_portal/security/ir.model.access.csv b/document_page_portal/security/ir.model.access.csv index 2fcb0056..660b8280 100644 --- a/document_page_portal/security/ir.model.access.csv +++ b/document_page_portal/security/ir.model.access.csv @@ -1,3 +1,3 @@ id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink document_page_portal,document.page portal,document_page.model_document_page,base.group_portal,1,0,0,0 -document_page_portal_user,document.page portal user,document_page.model_document_page,base.group_user,1,0,0,0 \ No newline at end of file +document_page_portal_user,document.page portal user,document_page.model_document_page,base.group_user,1,0,0,0 diff --git a/document_page_portal/static/src/js/document_page_portal_tour.js b/document_page_portal/static/src/js/document_page_portal_tour.js index 264df980..ee5068c8 100644 --- a/document_page_portal/static/src/js/document_page_portal_tour.js +++ b/document_page_portal/static/src/js/document_page_portal_tour.js @@ -1,37 +1,45 @@ -odoo.define('document_page_portal.tour', function (require) { - 'use strict'; +odoo.define("document_page_portal.tour", function(require) { + "use strict"; var tour = require("web_tour.tour"); - tour.register('document_page_portal_tour', { - test: true, - url: '/my', - }, - [ + tour.register( + "document_page_portal_tour", { - content: "Check document_page_portal is loaded", - trigger: 'a[href*="/my/knowledge/documents"]:contains("Knowledge Documents"):first', + test: true, + url: "/my", }, - { - content: "Check public document_page is loaded", - trigger: 'a[href*="/knowledge/document/"]:contains("Test Public Page 1"):first', - }, - ]); + [ + { + content: "Check document_page_portal is loaded", + trigger: + 'a[href*="/my/knowledge/documents"]:contains("Knowledge Documents"):first', + }, + { + content: "Check public document_page is loaded", + trigger: + 'a[href*="/knowledge/document/"]:contains("Test Public Page 1"):first', + }, + ] + ); - tour.register('document_page_portal_search_tour', { - test: true, - url: '/my/knowledge/documents', - }, - [ + tour.register( + "document_page_portal_search_tour", { - content: "Search", - trigger: "input[name='search']", - run: "text Test", + test: true, + url: "/my/knowledge/documents", }, - { - content: "Click Search.", - extra_trigger: "#wrap:not(:has(input[name=search]:propValue('')))", - trigger: '.search-submit', - }, - ]); + [ + { + content: "Search", + trigger: "input[name='search']", + run: "text Test", + }, + { + content: "Click Search.", + extra_trigger: "#wrap:not(:has(input[name=search]:propValue('')))", + trigger: ".search-submit", + }, + ] + ); }); diff --git a/document_page_portal/tests/test_document_page_portal.py b/document_page_portal/tests/test_document_page_portal.py index ae65ad76..c74f79b8 100644 --- a/document_page_portal/tests/test_document_page_portal.py +++ b/document_page_portal/tests/test_document_page_portal.py @@ -4,15 +4,17 @@ import odoo.tests -@odoo.tests.tagged('post_install', '-at_install') +@odoo.tests.tagged("post_install", "-at_install") class TestUi(odoo.tests.HttpCase): def test_01_document_page_portal_tour(self): # Create a public document - self.env['document.page'].create({ - 'name': 'Test Public Page 1', - 'content': 'Test content', - 'is_public': True, - }) + self.env["document.page"].create( + { + "name": "Test Public Page 1", + "content": "Test content", + "is_public": True, + } + ) self.phantom_js( "/", @@ -20,7 +22,7 @@ class TestUi(odoo.tests.HttpCase): ".run('document_page_portal_tour')", "odoo.__DEBUG__.services['web_tour.tour']" ".tours.document_page_portal_tour.ready", - login="portal" + login="portal", ) self.phantom_js( @@ -29,5 +31,5 @@ class TestUi(odoo.tests.HttpCase): ".run('document_page_portal_search_tour')", "odoo.__DEBUG__.services['web_tour.tour']" ".tours.document_page_portal_search_tour.ready", - login="portal" + login="portal", ) diff --git a/document_page_portal/views/assets.xml b/document_page_portal/views/assets.xml index 9b3edfbb..496baf9d 100644 --- a/document_page_portal/views/assets.xml +++ b/document_page_portal/views/assets.xml @@ -1,11 +1,18 @@ - + - -