ODOO10 富文本编辑器SummerNote输入联想短句,输入快捷短语

odoo10富文本编辑器是在web_editor模块中,使用的第三方编辑器summernote,其版本较老,应该是0.6版本的。

老版本summernote需要加载扩展js才有【输入联想】的功能,新版本自带此功能。

  1. 到github上下summernote0.6.12版本的完整包
  2. 找到summernote-ext-hint.js,复制到web_editor/static/src/js/
  3. web_editor/views/editor.xml中加载此js
  4. web_editor/static/src/js/backend.js自定义summernote设置项,代码段在下方。
  5. 使用$.getJSON从api获取你在odoo中提前设定的一些快捷短句,加载到内存中,这样用户在输入时便可以触发输入联想。
  6. 也可以写死一些快捷短语,比如快速输入时间。下方代码中有

this.$textarea.summernote({
                    focus: false,
                    height: 180,
                    toolbar: [
                        ['style', ['style']],
                        ['font', ['bold', 'italic', 'underline', 'clear']],
                        ['fontsize', ['fontsize', 'superscript', 'subscript']],
                        ['color', ['color']],
                        ['para', ['ul', 'ol', 'paragraph']],
                        ['table', ['table']],
                        ['insert', ['link', 'picture']],
                        ['history', ['undo', 'redo']]
                    ],
                    prettifyHtml: false,
                    styleWithSpan: false,
                    inlinemedia: ['p'],
                    lang: "odoo",
                    plugin: {
                        hint: {
                            time_: function () {
                                var date = new Date();
                                return date.toLocaleString('chinese', {hour12: false})
                            },

                            reload_words: function () {
                                var self = this;
                                if (self.origin_words.length !== 0) {
                                    return self.origin_words
                                }
                                // 加载快捷短语
                                $.getJSON('/your/api/', function (data) {
                                    console.log("加载快捷短语")
                                    self.origin_words = self.origin_words.concat(data);
                                    console.log(self.origin_words)
                                    console.log("加载快捷短语--ok")
                                });

                                // 加载时间
                                self.origin_words.push('time')
                                console.log('reload words succ.', self.origin_words)
                                return self.origin_words
                            },
                            update_words: function () {
                                var self = this;
                                self.words = [];
                                self.origin_words = self.reload_words()
                                self.words = self.words.concat(self.origin_words);
                                if (window.location.href.indexOf("model=eln.zhubiao") !== -1) {
                                    // 拼接字符串等
                                    $("td[data-field='name']").each(function () {
                                        var name = $(this).text().trim();
                                        var zhiliang = $(this).parent().find("td[data-field='shuliang']").text().trim();
                                        var moerliang = $(this).parent().find("td[data-field='mmol']").text().trim();
                                        var full_item = name + "(" + zhiliang + "g," + moerliang + "mmol)";
                                        if (full_item && self.words.indexOf(full_item) === -1) {
                                            self.words.push(full_item);
                                        }
                                    });
                                    // 页面搜索关键词,塞到联想词池子中
                                    $("td[data-field='rj_name']").each(function () {
                                        var name = $(this).text().trim();
                                        var tiji = $(this).parent().find("td[data-field='tiji']").text().trim();
                                        var full_item = name + "(" + tiji + "mL)";
                                        if (full_item && self.words.indexOf(full_item) === -1) {
                                            self.words.push(full_item);
                                        }
                                    });
                                }
                            },

                            words: [], // 候选词
                            origin_words: [], // 初始候选词
                            match: /(.{1,10})$/,
                            searchKeyword: function (keyword, callback) {
                                if (this.match.test(keyword)) {
                                    var matches = this.match.exec(keyword);
                                    this.search(matches[1], callback);
                                } else {
                                    callback();
                                }
                            },
                            load: function ($popover) {
                                $popover.css({});
                            },

                            content: function (item) {
                                if (item === 'time') {
                                    return this.time_();
                                }
                                return item;
                            }, //输入的

                            template: function (item) {
                                // console.log("tem item", item)
                                if (item === 'time') {
                                    return this.time_();
                                }
                                return item; // 显示的
                            },

                            search: function (keyword, callback) {
                                this.update_words();
                                callback($.grep(this.words, function (item) {
                                    return item.indexOf(keyword) !== -1;
                                }));
                            }
                        }
                    },
                    onChange: function (value) {
                        self.internal_set_value(value);
                        self.trigger('changed_value');
                    }
                });

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
升级Odoo10Odoo11是指将之前使用的Odoo10版本升级到新发布的Odoo11版本。 Odoo是一款开源的企业管理软件,提供了一系列的应用程序,涵盖了销售、采购、库存管理、人力资源、会计等多个业务领域。每个新版本的发布都会带来新的功能和改进,用户可以通过升级来享受这些新的功能和改进。 升级Odoo10Odoo11需要以下几个步骤: 1.备份数据:在升级之前,首先需要备份当前使用的Odoo10的数据库。这样可以在升级过程中出现问题时恢复数据库,避免数据丢失。 2.下载并安装Odoo11:从官方网站或Odoo的代码仓库中下载Odoo11的安装包。安装包提供了不同的安装方式,可以选择合适的方式进行安装。 3.迁移自定义代码和模块:如果在Odoo10中使用了自定义的代码或模块,需要对其进行迁移。首先要确保这些代码和模块是兼容Odoo11的,然后将其复制到新安装的Odoo11中。 4.执行数据库升级:使用Odoo提供的数据库升级工具,执行数据库升级。升级工具会根据数据库中已有的数据结构,将其转换成适应Odoo11的格式。这个过程可能需要一些时间,具体的耗时取决于数据库的大小和复杂程度。 5.测试和调试:在进行生产环境升级之前,可以先在测试环境中进行测试和调试。这可以帮助发现和解决潜在的问题,确保在升级到生产环境之前一切顺利。 6.升级生产环境:当测试和调试完成后,可以将升级应用到生产环境中。在升级之前,再次确认数据库备份已完成,以防万一。 总结来说,升级Odoo10Odoo11需要进行数据备份、下载安装Odoo11、迁移自定义代码和模块、执行数据库升级、测试和调试以及升级到生产环境这几个步骤。这样就可以顺利地将Odoo10升级到Odoo11,并享受新的功能和改进。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值