diff --git a/app_website_blog_editor/controllers/__init__.py b/app_website_blog_editor/controllers/__init__.py index 221005dc..757b12a1 100644 --- a/app_website_blog_editor/controllers/__init__.py +++ b/app_website_blog_editor/controllers/__init__.py @@ -1,2 +1,2 @@ # -*- coding: utf-8 -*- -# from . import main \ No newline at end of file +from . import main diff --git a/app_website_blog_editor/controllers/main.py b/app_website_blog_editor/controllers/main.py new file mode 100644 index 00000000..5d05281d --- /dev/null +++ b/app_website_blog_editor/controllers/main.py @@ -0,0 +1,72 @@ +# -*- coding: utf-8 -*- + +import re +import werkzeug +from odoo import http, fields, tools +from odoo.addons.http_routing.models.ir_http import slug, unslug +from odoo.addons.website.controllers.main import QueryURL +from odoo.http import request +from odoo.addons.website_blog.controllers.main import WebsiteBlog + + +class WebsiteBlog(WebsiteBlog): + + @http.route([ + '/blog', + '/blog/page/', + '/blog/tag/', + '/blog/tag//page/', + '''/blog/''', + '''/blog//page/''', + '''/blog//tag/''', + '''/blog//tag//page/''', + ], type='http', auth="public", website=True, sitemap=True) + def blog(self, blog=None, tag=None, page=1, search=None, **opt): + Blog = request.env['blog.blog'] + + # TODO adapt in master. This is a fix for templates wrongly using the + # 'blog_url' QueryURL which is defined below. Indeed, in the case where + # we are rendering a blog page where no specific blog is selected we + # define(d) that as `QueryURL('/blog', ['tag'], ...)` but then some + # parts of the template used it like this: `blog_url(blog=XXX)` thus + # generating an URL like "/blog?blog=blog.blog(2,)". Adding "blog" to + # the list of params would not be right as would create "/blog/blog/2" + # which is still wrong as we want "/blog/2". And of course the "/blog" + # prefix in the QueryURL definition is needed in case we only specify a + # tag via `blog_url(tab=X)` (we expect /blog/tag/X). Patching QueryURL + # or making blog_url a custom function instead of a QueryURL instance + # could be a solution but it was judged not stable enough. We'll do that + # in master. Here we only support "/blog?blog=blog.blog(2,)" URLs. + if isinstance(blog, str): + blog = Blog.browse(int(re.search(r'\d+', blog)[0])) + if not blog.exists(): + raise werkzeug.exceptions.NotFound() + + blogs = tools.lazy(lambda: Blog.search(request.website.website_domain(), order="sequence asc, name asc")) + + if not blog and len(blogs) == 1: + url = QueryURL('/blog/%s' % slug(blogs[0]), search=search, **opt)() + return request.redirect(url, code=302) + + date_begin, date_end, state = opt.get('date_begin'), opt.get('date_end'), opt.get('state') + + if tag and request.httprequest.method == 'GET': + # redirect get tag-1,tag-2 -> get tag-1 + tags = tag.split(',') + if len(tags) > 1: + url = QueryURL('' if blog else '/blog', ['blog', 'tag'], blog=blog, tag=tags[0], date_begin=date_begin, date_end=date_end, search=search)() + return request.redirect(url, code=302) + + values = self._prepare_blog_values(blogs=blogs, blog=blog, date_begin=date_begin, date_end=date_end, tags=tag, state=state, page=page, search=search) + + # in case of a redirection need by `_prepare_blog_values` we follow it + if isinstance(values, werkzeug.wrappers.Response): + return values + + if blog: + values['main_object'] = blog + values['blog_url'] = QueryURL('', ['blog', 'tag'], blog=blog, tag=tag, date_begin=date_begin, date_end=date_end, search=search) + else: + values['blog_url'] = QueryURL('/blog', ['tag'], date_begin=date_begin, date_end=date_end, search=search) + + return request.render("website_blog.blog_post_short", values) diff --git a/app_website_blog_editor/data/product_attribute_value_group_data.xml b/app_website_blog_editor/data/product_attribute_value_group_data.xml new file mode 100644 index 00000000..ad0a23e1 --- /dev/null +++ b/app_website_blog_editor/data/product_attribute_value_group_data.xml @@ -0,0 +1,17 @@ + + + + + CHN + CN + + + Eur + EU + + + US + US + + + \ No newline at end of file diff --git a/app_website_blog_editor/models/blog_blog.py b/app_website_blog_editor/models/blog_blog.py index d12a259c..e2b14f46 100644 --- a/app_website_blog_editor/models/blog_blog.py +++ b/app_website_blog_editor/models/blog_blog.py @@ -1,6 +1,7 @@ # -*- coding: utf-8 -*- from odoo import api, models, fields, _ +from odoo.tools.safe_eval import safe_eval class BlogBlog(models.Model): @@ -9,3 +10,9 @@ class BlogBlog(models.Model): # 排序 sequence = fields.Integer(string='Sequence', default=20, index=True, help="Determine the display order") + + def action_view_blog_post(self): + self.ensure_one() + action = self.env.ref('website_blog.action_blog_post').read()[0] + action['domain'] = [('blog_id', '=', self.id)] + return action diff --git a/app_website_blog_editor/static/src/scss/sunpop.cn b/app_website_blog_editor/static/src/scss/sunpop.cn new file mode 100644 index 00000000..e69de29b diff --git a/app_website_blog_editor/views/blog_blog_views.xml b/app_website_blog_editor/views/blog_blog_views.xml index b8fad8c2..7bd97e91 100644 --- a/app_website_blog_editor/views/blog_blog_views.xml +++ b/app_website_blog_editor/views/blog_blog_views.xml @@ -11,6 +11,20 @@ + + app.blog.blog.form + blog.blog + + + +
+ +
+
+
+
diff --git a/app_website_blog_superbar/__init__.py b/app_website_blog_superbar/__init__.py new file mode 100644 index 00000000..9ea74431 --- /dev/null +++ b/app_website_blog_superbar/__init__.py @@ -0,0 +1,7 @@ +# -*- coding: utf-8 -*- + +from . import models +from . import controllers +from .hooks import pre_init_hook +from .hooks import post_init_hook +from .hooks import uninstall_hook \ No newline at end of file diff --git a/app_website_blog_superbar/__manifest__.py b/app_website_blog_superbar/__manifest__.py new file mode 100644 index 00000000..a3fc300a --- /dev/null +++ b/app_website_blog_superbar/__manifest__.py @@ -0,0 +1,76 @@ +# -*- coding: utf-8 -*- + +# Created on 2022-09-01 +# author: 欧度智能,https://www.odooai.cn +# email: 300883@qq.com +# resource of odooai +# License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl). + +# Odoo12在线用户手册(长期更新) +# https://www.sunpop.cn/documentation/user/12.0/zh_CN/index.html + +# Odoo12在线开发者手册(长期更新) +# https://www.sunpop.cn/documentation/12.0/index.html + +# Odoo10在线中文用户手册(长期更新) +# https://www.sunpop.cn/documentation/user/10.0/zh_CN/index.html + +# Odoo10离线中文用户手册下载 +# https://www.sunpop.cn/odoo10_user_manual_document_offline/ +# Odoo10离线开发手册下载-含python教程,jquery参考,Jinja2模板,PostgresSQL参考(odoo开发必备) +# https://www.sunpop.cn/odoo10_developer_document_offline/ + +############################################################################## +# Copyright (C) 2009-TODAY sunpop.cn Ltd. https://www.sunpop.cn +# Author: Ivan Deng,300883@qq.com +# You can modify it under the terms of the GNU LESSER +# GENERAL PUBLIC LICENSE (LGPL v3), Version 3. +# See . +# +# It is forbidden to publish, distribute, sublicense, or sell copies +# of the Software or modified copies of the Software. +############################################################################## + +{ + 'name': "Website Blogs Search Enhance", + 'version': '16.23.07.07', + 'author': 'odooai.cn', + 'category': 'Base', + 'website': 'https://www.odooai.cn', + 'license': 'LGPL-3', + 'sequence': 2, + 'price': 0.00, + 'currency': 'EUR', + 'images': ['static/description/banner.png'], + 'depends': [ + 'website_blog', + ], + 'summary': ''' + Odoo App of sunpop.cn + ''', + 'description': ''' + Support Odoo 16,15,14,13,12, Enterprise and Community and odoo.sh Edition + 1. + 2. + 11. Multi-language Support. Multi-Company Support. + 12. Support Odoo 16,15,14,13,12, Enterprise and Community and odoo.sh Edition. + 13. Full Open Source. + ========== + 1. + 2. + 11. 多语言支持,多公司支持 + 12. Odoo 16,15,14,13,12, 企业版,社区版,在线SaaS.sh版,等全版本支持 + 13. 代码完全开源 + ''', + 'data': [ + 'views/blog_post_views.xml', + # 'report/.xml', + ], + 'demo': [], + # 'pre_init_hook': 'pre_init_hook', + # 'post_init_hook': 'post_init_hook', + # 'uninstall_hook': 'uninstall_hook', + 'installable': True, + 'application': True, + 'auto_install': False, +} diff --git a/app_website_blog_superbar/controllers/__init__.py b/app_website_blog_superbar/controllers/__init__.py new file mode 100644 index 00000000..a4325e1f --- /dev/null +++ b/app_website_blog_superbar/controllers/__init__.py @@ -0,0 +1,2 @@ +# -*- coding: utf-8 -*- +# from . import main diff --git a/app_website_blog_superbar/hooks.py b/app_website_blog_superbar/hooks.py new file mode 100644 index 00000000..ca3d9df5 --- /dev/null +++ b/app_website_blog_superbar/hooks.py @@ -0,0 +1,32 @@ +# -*- coding: utf-8 -*- + +# Created on 2018-10-12 +# author: 欧度智能,https://www.odooai.cn +# email: 300883@qq.com +# resource of odooai +# License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl). + +# Odoo在线中文用户手册(长期更新) +# https://www.sunpop.cn/documentation/user/10.0/zh_CN/index.html + +# Odoo10离线中文用户手册下载 +# https://www.sunpop.cn/odoo10_user_manual_document_offline/ +# Odoo10离线开发手册下载-含python教程,jquery参考,Jinja2模板,PostgresSQL参考(odoo开发必备) +# https://www.sunpop.cn/odoo10_developer_document_offline/ +# description: + +from odoo import api, SUPERUSER_ID, _ + + +def pre_init_hook(cr): + pass + # cr.execute("") + +def post_init_hook(cr, registry): + pass + # cr.execute("") + +def uninstall_hook(cr, registry): + pass + # cr.execute("") + diff --git a/app_website_blog_superbar/i18n/zh_CN.po b/app_website_blog_superbar/i18n/zh_CN.po new file mode 100644 index 00000000..0f6f3ace --- /dev/null +++ b/app_website_blog_superbar/i18n/zh_CN.po @@ -0,0 +1,21 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * app_website_blog_editor +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0-20230320\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-04-10 17:30+0000\n" +"PO-Revision-Date: 2023-04-10 17:30+0000\n" +"Last-Translator: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" + +#. module: app_website_blog_editor +#: model_terms:ir.ui.view,arch_db:app_website_blog_editor.app_view_blog_post_form +msgid "Content" +msgstr "博客图文" diff --git a/app_website_blog_superbar/models/__init__.py b/app_website_blog_superbar/models/__init__.py new file mode 100644 index 00000000..a697d482 --- /dev/null +++ b/app_website_blog_superbar/models/__init__.py @@ -0,0 +1,24 @@ +# -*- coding: utf-8 -*- +# Part of sunpop.cn. See LICENSE file for full copyright and licensing details. + +# Created on 2019-04-20 +# author: 欧度智能,http://www.sunpop.cn +# email: 300883@qq.com +# resource of odooai +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +# Odoo12在线用户手册(长期更新) +# http://www.sunpop.cn/documentation/user/12.0/en/index.html + +# Odoo12在线开发者手册(长期更新) +# http://www.sunpop.cn/documentation/12.0/index.html + +# Odoo10在线中文用户手册(长期更新) +# http://www.sunpop.cn/documentation/user/10.0/zh_CN/index.html + +# Odoo10离线中文用户手册下载 +# http://www.sunpop.cn/odoo10_user_manual_document_offline/ +# Odoo10离线开发手册下载-含python教程,jquery参考,Jinja2模板,PostgresSQL参考(odoo开发必备) +# http://www.sunpop.cn/odoo10_developer_document_offline/ +# description: + diff --git a/app_website_blog_superbar/report/__init__.py b/app_website_blog_superbar/report/__init__.py new file mode 100644 index 00000000..633f8661 --- /dev/null +++ b/app_website_blog_superbar/report/__init__.py @@ -0,0 +1,2 @@ +# -*- coding: utf-8 -*- + diff --git a/app_website_blog_superbar/security/app_security.xml b/app_website_blog_superbar/security/app_security.xml new file mode 100644 index 00000000..a4b85605 --- /dev/null +++ b/app_website_blog_superbar/security/app_security.xml @@ -0,0 +1,51 @@ + + + + + + acc_module_user + + + + + + + + + + App... + Helps you manage your ... + 8 + + + + + App User + + + The user will be able to ... + + + + + App Admin + + + The user will be able to config ... + + + + + + + + + + Users are allowed to access their own m/// + + ['|', ('partner_id', 'in', [user.partner_id.id]), ('user_id.id', '=', user.id)] + + + + + diff --git a/app_website_blog_superbar/security/ir.model.access.csv b/app_website_blog_superbar/security/ir.model.access.csv new file mode 100644 index 00000000..58262d44 --- /dev/null +++ b/app_website_blog_superbar/security/ir.model.access.csv @@ -0,0 +1 @@ +id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink \ No newline at end of file diff --git a/app_website_blog_superbar/static/description/banner.png b/app_website_blog_superbar/static/description/banner.png new file mode 100644 index 00000000..80333db4 Binary files /dev/null and b/app_website_blog_superbar/static/description/banner.png differ diff --git a/app_website_blog_superbar/static/description/icon.png b/app_website_blog_superbar/static/description/icon.png new file mode 100644 index 00000000..91a539ca Binary files /dev/null and b/app_website_blog_superbar/static/description/icon.png differ diff --git a/app_website_blog_superbar/static/description/index.html b/app_website_blog_superbar/static/description/index.html new file mode 100644 index 00000000..592ced9f --- /dev/null +++ b/app_website_blog_superbar/static/description/index.html @@ -0,0 +1,95 @@ +
+
+
+

+

+
+

Lastest update: v13.23.03.23

+
+ +
+
+
+ Key features: +
    +
  • + + Put key function here. +
  • +
  • + + 1. +
  • +
  • + + 11. Multi-language Support. Multi-Company Support. +
  • +
  • + + 12. Support Odoo 16,15,14,13,12, Enterprise and Community and odoo.sh Edition. +
  • +
+
+
+
+
+
+
+ +
+
+

So Easy to navigator and search any data.

+

+
+ +
+
+
+ +
+
+

Multi-language Support..

+

+
+ +
+
+
+ +
+
+
+

Technical Help & Support

+
+
+
+

+ For any type of technical help & support requests, Feel free to contact us

+ + guohuadeng@hotmail.com +

+ Via QQ: 300883 (App user would not get QQ or any other IM support. Only for odoo project customize.)

+ + 300883@qq.com +
+
+

+ Visit our website for more support.

+ + https://www.odooai.cn +
+
+
+
+

More Powerful addons, Make your odoo very easy to use, easy customize: + odooai.cn Odoo Addons +

+
+
+ diff --git a/app_website_blog_superbar/static/img/icon_sunpop.png b/app_website_blog_superbar/static/img/icon_sunpop.png new file mode 100644 index 00000000..aa490954 Binary files /dev/null and b/app_website_blog_superbar/static/img/icon_sunpop.png differ diff --git a/app_website_blog_superbar/static/img/logo_sunpop.png b/app_website_blog_superbar/static/img/logo_sunpop.png new file mode 100644 index 00000000..bc32c24e Binary files /dev/null and b/app_website_blog_superbar/static/img/logo_sunpop.png differ diff --git a/app_website_blog_superbar/static/src/js/sunpop.cn b/app_website_blog_superbar/static/src/js/sunpop.cn new file mode 100644 index 00000000..e69de29b diff --git a/app_website_blog_superbar/static/src/scss/sunpop.cn b/app_website_blog_superbar/static/src/scss/sunpop.cn new file mode 100644 index 00000000..e69de29b diff --git a/app_website_blog_superbar/static/src/xml/sunpop.cn b/app_website_blog_superbar/static/src/xml/sunpop.cn new file mode 100644 index 00000000..e69de29b diff --git a/app_website_blog_superbar/views/blog_post_views.xml b/app_website_blog_superbar/views/blog_post_views.xml new file mode 100644 index 00000000..09777342 --- /dev/null +++ b/app_website_blog_superbar/views/blog_post_views.xml @@ -0,0 +1,17 @@ + + + + app.blog.post.search + blog.post + + + + + + + + + + + + diff --git a/app_website_blog_superbar/wizard/sunpop.cn b/app_website_blog_superbar/wizard/sunpop.cn new file mode 100644 index 00000000..e69de29b