add editor

This commit is contained in:
Ivan Office
2023-09-24 01:21:24 +08:00
parent 5d129fa6c2
commit bac7284354
52 changed files with 1324 additions and 0 deletions

View File

@@ -0,0 +1,30 @@
# -*- coding: utf-8 -*-
# Part of odooai.cn. See LICENSE file for full copyright and licensing details.
# Created on 2019-04-20
# author: 欧度智能http://www.odooai.cn
# email: 300883@qq.com
# resource of odooai
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
# Odoo12在线用户手册长期更新
# http://www.odooai.cn/documentation/user/12.0/en/index.html
# Odoo12在线开发者手册长期更新
# http://www.odooai.cn/documentation/12.0/index.html
# Odoo10在线中文用户手册长期更新
# http://www.odooai.cn/documentation/user/10.0/zh_CN/index.html
# Odoo10离线中文用户手册下载
# http://www.odooai.cn/odoo10_user_manual_document_offline/
# Odoo10离线开发手册下载-含python教程jquery参考Jinja2模板PostgresSQL参考odoo开发必备
# http://www.odooai.cn/odoo10_developer_document_offline/
# description:
from . import blog_tag_category
from . import blog_tag
from . import blog_blog
from . import blog_post
from . import website_page
from . import res_config_settings

View File

@@ -0,0 +1,32 @@
# -*- coding: utf-8 -*-
from odoo import api, models, fields, _
from odoo.tools.safe_eval import safe_eval
class BlogBlog(models.Model):
_inherit = 'blog.blog'
_order = 'sequence, name'
seo_name = fields.Char(tracking=True)
# 排序
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
# def unlink(self):
# # active的先不删除设置为 deactive
# to_deactive = self.filtered(lambda r: r.active)
# self = self - to_deactive
# to_deactive.write({
# 'active': False,
# })
# if self:
# return super(BlogBlog, self).unlink()
# else:
# return False

View File

@@ -0,0 +1,44 @@
# -*- coding: utf-8 -*-
import json
from odoo import api, models, fields, _
from odoo.tools.safe_eval import safe_eval
class BlogPost(models.Model):
_inherit = 'blog.post'
# 不允许暴力删除
blog_id = fields.Many2one('blog.blog', ondelete='restrict')
def write(self, vals):
if vals.get('website_meta_og_img'):
sync_blog_meta_background_img = self.env['ir.config_parameter'].sudo().get_param('app_website_blog_editor.sync_blog_meta_background_img')
if sync_blog_meta_background_img:
web_base_url = self.env['ir.config_parameter'].sudo().get_param('web.base.url', default='')
img_url = vals.get('website_meta_og_img').replace(web_base_url, '')
for rec in self:
cover_properties = json.loads(rec.cover_properties)
cover_properties.update({
'background-image': 'url("%s")' % img_url,
})
vals.update({
'cover_properties': json.dumps(cover_properties)
})
return super(BlogPost, self).write(vals)
def action_post_debug_view(self):
self.ensure_one()
action = self.env.ref('website_blog.action_blog_post').read()[0]
action['views'] = [(self.env.ref('website_blog.view_blog_post_form').id, 'form')]
action['res_id'] = self.id
return action
def action_post_code_view(self):
self.ensure_one()
action = self.env.ref('website_blog.action_blog_post').read()[0]
action['views'] = [(self.env.ref('app_website_blog_editor.app_blog_post_form_view_code').id, 'form')]
action['res_id'] = self.id
return action

View File

@@ -0,0 +1,11 @@
# -*- coding: utf-8 -*-
from odoo import api, models, fields, _
class BlogTag(models.Model):
_inherit = 'blog.tag'
_order = 'sequence, name'
# 排序
sequence = fields.Integer(string='Sequence', default=20, index=True, help="Determine the display order")

View File

@@ -0,0 +1,12 @@
# -*- coding: utf-8 -*-
from odoo import api, models, fields, _
class BlogTagCategory(models.Model):
_inherit = 'blog.tag.category'
_order = 'sequence, name'
# 排序
sequence = fields.Integer(string='Sequence', default=20, index=True, help="Determine the display order")

View File

@@ -0,0 +1,14 @@
# -*- coding: utf-8 -*-
from odoo import fields, models, _
class ResConfigSettings(models.TransientModel):
_inherit = "res.config.settings"
sync_blog_meta_background_img = fields.Boolean('Use a meta image by default for blog post background', config_parameter='app_website_blog_editor.sync_blog_meta_background_img')
def set_values(self):
res = super().set_values()
self.env['ir.config_parameter'].set_param('app_website_blog_editor.sync_blog_meta_background_img', self.sync_blog_meta_background_img)
return res

View File

@@ -0,0 +1,28 @@
# -*- coding: utf-8 -*-
from odoo import api, fields, models
class WebsitePage(models.Model):
_inherit = 'website.page'
def action_page_debug_view(self):
# 直接覆盖原生
self.ensure_one()
return {
'type': 'ir.actions.act_window',
'res_model': 'ir.ui.view',
'res_id': self.view_id.id,
'view_mode': 'form',
'view_id': self.env.ref('app_website_blog_editor.app_view_view_form_extend_debug').id,
}
def action_page_code_view(self):
self.ensure_one()
return {
'type': 'ir.actions.act_window',
'res_model': 'ir.ui.view',
'res_id': self.view_id.id,
'view_mode': 'form',
'view_id': self.env.ref('website.view_view_form_extend').id,
}