mirror of
https://github.com/guohuadeng/app-odoo.git
synced 2025-02-23 04:11:36 +02:00
add editor
This commit is contained in:
30
app_website_blog_editor/models/__init__.py
Normal file
30
app_website_blog_editor/models/__init__.py
Normal 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
|
||||
32
app_website_blog_editor/models/blog_blog.py
Normal file
32
app_website_blog_editor/models/blog_blog.py
Normal 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
|
||||
44
app_website_blog_editor/models/blog_post.py
Normal file
44
app_website_blog_editor/models/blog_post.py
Normal 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
|
||||
11
app_website_blog_editor/models/blog_tag.py
Normal file
11
app_website_blog_editor/models/blog_tag.py
Normal 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")
|
||||
12
app_website_blog_editor/models/blog_tag_category.py
Normal file
12
app_website_blog_editor/models/blog_tag_category.py
Normal 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")
|
||||
|
||||
14
app_website_blog_editor/models/res_config_settings.py
Normal file
14
app_website_blog_editor/models/res_config_settings.py
Normal 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
|
||||
28
app_website_blog_editor/models/website_page.py
Normal file
28
app_website_blog_editor/models/website_page.py
Normal 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,
|
||||
}
|
||||
Reference in New Issue
Block a user