From 1033e5ac43e9f77987ae1dd0b0bdb0a7ea747fc9 Mon Sep 17 00:00:00 2001 From: Tom Blauwendraat Date: Sat, 26 Jun 2021 09:27:23 +0200 Subject: [PATCH] [UPD] black, isort, prettier --- web_widget_text_markdown/__manifest__.py | 40 ++--- .../demo/bootstrap_markdown.xml | 2 +- .../static/src/js/web_widget_text_markdown.js | 137 +++++++++--------- .../src/less/web_widget_text_markdown.less | 30 ++-- .../tests/js/web_widget_text_markdown.js | 123 ++++++++-------- web_widget_text_markdown/views/assets.xml | 27 ++-- 6 files changed, 183 insertions(+), 176 deletions(-) diff --git a/web_widget_text_markdown/__manifest__.py b/web_widget_text_markdown/__manifest__.py index 5e61fe7cd..2294145dc 100644 --- a/web_widget_text_markdown/__manifest__.py +++ b/web_widget_text_markdown/__manifest__.py @@ -3,29 +3,21 @@ # # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). { - 'name': 'Web Widget Text Markdown', - 'version': '11.0.1.0.0', + "name": "Web Widget Text Markdown", + "version": "11.0.1.0.0", "author": "Alexandre Díaz, " - "Komit, " - "Sudokeys, " - "Odoo Community Association (OCA)", - 'category': 'Web', - 'license': 'AGPL-3', - 'website': 'https://github.com/OCA/web', - 'summary': 'Widget to text fields that adds markdown support', - 'depends': [ - 'web' - ], - 'demo': [ - "demo/bootstrap_markdown.xml", - ], - 'data': [ - 'views/assets.xml', - ], - "qweb": [ - "static/src/xml/bootstrap_markdown.xml", - ], - 'installable': True, - 'auto_install': False, - 'application': False + "Komit, " + "Sudokeys, " + "Odoo Community Association (OCA)", + "category": "Web", + "license": "AGPL-3", + "website": "https://github.com/OCA/web", + "summary": "Widget to text fields that adds markdown support", + "depends": ["web"], + "demo": ["demo/bootstrap_markdown.xml"], + "data": ["views/assets.xml"], + "qweb": ["static/src/xml/bootstrap_markdown.xml"], + "installable": True, + "auto_install": False, + "application": False, } diff --git a/web_widget_text_markdown/demo/bootstrap_markdown.xml b/web_widget_text_markdown/demo/bootstrap_markdown.xml index 0442662e6..be6bc22c2 100644 --- a/web_widget_text_markdown/demo/bootstrap_markdown.xml +++ b/web_widget_text_markdown/demo/bootstrap_markdown.xml @@ -1,4 +1,4 @@ - + res.groups diff --git a/web_widget_text_markdown/static/src/js/web_widget_text_markdown.js b/web_widget_text_markdown/static/src/js/web_widget_text_markdown.js index 365bd3721..673ed35d7 100644 --- a/web_widget_text_markdown/static/src/js/web_widget_text_markdown.js +++ b/web_widget_text_markdown/static/src/js/web_widget_text_markdown.js @@ -3,54 +3,54 @@ * Copyright 2017 Komit - * Copyright 2019 Alexandre Díaz - * License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). */ -odoo.define("web_widget_text_markdown.FieldTextMarkDown", function (require) { - 'use strict'; +odoo.define("web_widget_text_markdown.FieldTextMarkDown", function(require) { + "use strict"; - var basic_fields = require('web.basic_fields'); - var field_registry = require('web.field_registry'); - var core = require('web.core'); + var basic_fields = require("web.basic_fields"); + var field_registry = require("web.field_registry"); + var core = require("web.core"); var _t = core._t; - var LIBS_PATH = '/web_widget_text_markdown/static/src/lib/'; - + var LIBS_PATH = "/web_widget_text_markdown/static/src/lib/"; var FieldTextMarkDown = basic_fields.FieldText.extend({ className: [ basic_fields.FieldText.prototype.className, - 'o_field_text_markdown', - ].join(' '), + "o_field_text_markdown", + ].join(" "), jsLibs: [ - LIBS_PATH + 'marked.js', - LIBS_PATH + 'dropzone.js', - LIBS_PATH + 'bootstrap-markdown.js', - ], - cssLibs: [ - LIBS_PATH + 'bootstrap-markdown.min.css', + LIBS_PATH + "marked.js", + LIBS_PATH + "dropzone.js", + LIBS_PATH + "bootstrap-markdown.js", ], + cssLibs: [LIBS_PATH + "bootstrap-markdown.min.css"], - _getValue: function () { + _getValue: function() { return this.$markdown.getContent(); }, - _prepareInput: function () { + _prepareInput: function() { var $input = this._super.apply(this, arguments); - _.defer(function ($elm) { - $input.removeClass(this.className); - $input.wrap( - _.str.sprintf("
", this.className)); - $elm.markdown(this._getMarkdownOptions()); - this.$markdown = $elm.data("markdown"); - this.$markdown.setContent(this.value || ""); - }.bind(this), $input); + _.defer( + function($elm) { + $input.removeClass(this.className); + $input.wrap( + _.str.sprintf("
", this.className) + ); + $elm.markdown(this._getMarkdownOptions()); + this.$markdown = $elm.data("markdown"); + this.$markdown.setContent(this.value || ""); + }.bind(this), + $input + ); return $input; }, - _renderReadonly: function () { + _renderReadonly: function() { this.$el.html(marked(this._formatValue(this.value))); }, - - _getMarkdownOptions: function () { + _getMarkdownOptions: function() { var markdownOpts = { autofocus: false, savable: false, @@ -61,39 +61,43 @@ odoo.define("web_widget_text_markdown.FieldTextMarkDown", function (require) { if (this.res_id) { var self = this; markdownOpts.dropZoneOptions = { - paramName: 'ufile', - url: '/web/binary/upload_attachment', - acceptedFiles: 'image/*', - width: 'o_field_text_markdown', + paramName: "ufile", + url: "/web/binary/upload_attachment", + acceptedFiles: "image/*", + width: "o_field_text_markdown", params: { csrf_token: core.csrf_token, session_id: this.getSession().override_session, - callback: '', + callback: "", model: this.model, id: this.res_id, }, - success: function () { + success: function() { self._markdownDropZoneUploadSuccess(this); }, - error: function () { + error: function() { self._markdownDropZoneUploadError(this); }, - init: function () { + init: function() { self._markdownDropZoneInit(this); }, }; if (_t.database.multi_lang && this.field.translate) { markdownOpts.additionalButtons = [ - [{ - name: 'oTranslate', - data: [{ - name: 'cmdTranslate', - title: _t('Translate'), - icon: {glyph: 'glyphicon glyphicon-flag'}, - callback: this._markdownTranslate, - }], - }], + [ + { + name: "oTranslate", + data: [ + { + name: "cmdTranslate", + title: _t("Translate"), + icon: {glyph: "glyphicon glyphicon-flag"}, + callback: this._markdownTranslate, + }, + ], + }, + ], ]; } } @@ -101,7 +105,7 @@ odoo.define("web_widget_text_markdown.FieldTextMarkDown", function (require) { return markdownOpts; }, - _getAttachmentId: function (response) { + _getAttachmentId: function(response) { var matchElms = response.match(/"id":\s?(\d+)/); if (matchElms && matchElms.length) { return matchElms[1]; @@ -109,52 +113,51 @@ odoo.define("web_widget_text_markdown.FieldTextMarkDown", function (require) { return null; }, - _markdownDropZoneInit: function (markdown) { + _markdownDropZoneInit: function(markdown) { var self = this; var caretPos = 0; var $textarea = null; - markdown.on('drop', function (e) { + markdown.on("drop", function(e) { $textarea = $(e.target); - caretPos = $textarea.prop('selectionStart'); + caretPos = $textarea.prop("selectionStart"); }); - markdown.on('success', function (file, response) { + markdown.on("success", function(file, response) { var text = $textarea.val(); var attachment_id = self._getAttachmentId(response); if (attachment_id) { - var ftext = text.substring(0, caretPos) + '\n![' + - _t('description') + - '](/web/image/' + attachment_id + ')\n' + - text.substring(caretPos); + var ftext = + text.substring(0, caretPos) + + "\n![" + + _t("description") + + "](/web/image/" + + attachment_id + + ")\n" + + text.substring(caretPos); $textarea.val(ftext); } else { - self.do_warn( - _t('Error'), - _t("Can't create the attachment.")); + self.do_warn(_t("Error"), _t("Can't create the attachment.")); } }); - markdown.on('error', function (file, error) { + markdown.on("error", function(file, error) { console.warn(error); }); }, - _markdownDropZoneUploadSuccess: function () { + _markdownDropZoneUploadSuccess: function() { this.isDirty = true; this._doDebouncedAction(); - this.$markdown.$editor.find(".dz-error-mark:last") - .css("display", "none"); + this.$markdown.$editor.find(".dz-error-mark:last").css("display", "none"); }, - _markdownDropZoneUploadError: function () { - this.$markdown.$editor.find(".dz-success-mark:last") - .css("display", "none"); + _markdownDropZoneUploadError: function() { + this.$markdown.$editor.find(".dz-success-mark:last").css("display", "none"); }, - _markdownTranslate: function () { + _markdownTranslate: function() { this._onTranslate(); }, }); - - field_registry.add('bootstrap_markdown', FieldTextMarkDown); + field_registry.add("bootstrap_markdown", FieldTextMarkDown); return FieldTextMarkDown; }); diff --git a/web_widget_text_markdown/static/src/less/web_widget_text_markdown.less b/web_widget_text_markdown/static/src/less/web_widget_text_markdown.less index bc1ef8b00..2fd69f016 100644 --- a/web_widget_text_markdown/static/src/less/web_widget_text_markdown.less +++ b/web_widget_text_markdown/static/src/less/web_widget_text_markdown.less @@ -1,22 +1,22 @@ /* Copyright 2019 Alexandre Díaz - * License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). */ .o_field_text_markdown { - .dz-preview { - display: inline-block; - margin: 0.5em; + .dz-preview { + display: inline-block; + margin: 0.5em; - .dz-success-mark svg { - background-color: green; - border-radius: 30px; - width: 32px; - height: 32px; - } + .dz-success-mark svg { + background-color: green; + border-radius: 30px; + width: 32px; + height: 32px; + } - .dz-error-mark svg { - background: red; - border-radius: 30px; - width: 32px; - height: 32px; + .dz-error-mark svg { + background: red; + border-radius: 30px; + width: 32px; + height: 32px; + } } - } } diff --git a/web_widget_text_markdown/static/tests/js/web_widget_text_markdown.js b/web_widget_text_markdown/static/tests/js/web_widget_text_markdown.js index 52ce5523e..3a7072408 100644 --- a/web_widget_text_markdown/static/tests/js/web_widget_text_markdown.js +++ b/web_widget_text_markdown/static/tests/js/web_widget_text_markdown.js @@ -2,75 +2,78 @@ /* Copyright 2019 Alexandre Díaz - * License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). */ -odoo.define('web_widget_text_markdown.test', function (require) { - 'use strict'; +odoo.define("web_widget_text_markdown.test", function(require) { + "use strict"; - var FormView = require('web.FormView'); - var testUtils = require('web.test_utils'); + var FormView = require("web.FormView"); + var testUtils = require("web.test_utils"); var createAsyncView = testUtils.createAsyncView; - - QUnit.module('web_widget_text_markdown', { - beforeEach: function () { - this.data = { - partner: { - fields: {comment: {string: "Comment", type: "text"}}, - records: [ - {id: 1, comment: "This is a test\n**Hello**"}, - ], - }, - }; - this.arch = '
' + - '' + - '
'; + QUnit.module( + "web_widget_text_markdown", + { + beforeEach: function() { + this.data = { + partner: { + fields: {comment: {string: "Comment", type: "text"}}, + records: [{id: 1, comment: "This is a test\n**Hello**"}], + }, + }; + this.arch = + "
" + + '' + + "
"; + }, }, - }, function () { - QUnit.module('FieldTextMarkDown'); - QUnit.test('bootstrap markdown widget are correctly rendered (preview)', - function (assert) { - assert.expect(1); + function() { + QUnit.module("FieldTextMarkDown"); + QUnit.test( + "bootstrap markdown widget are correctly rendered (preview)", + function(assert) { + assert.expect(1); - var done = assert.async(); + var done = assert.async(); - createAsyncView({ - View: FormView, - model: 'partner', - data: this.data, - arch: this.arch, - res_id: 1, - }).then(function (form) { - _.defer(function () { - assert.strictEqual(form.$('.md-editor').length, 0); - form.destroy(); - done(); + createAsyncView({ + View: FormView, + model: "partner", + data: this.data, + arch: this.arch, + res_id: 1, + }).then(function(form) { + _.defer(function() { + assert.strictEqual(form.$(".md-editor").length, 0); + form.destroy(); + done(); + }); }); - }); - } - ); - QUnit.test('bootstrap markdown widget are correctly rendered (edit)', - function (assert) { - assert.expect(1); + } + ); + QUnit.test( + "bootstrap markdown widget are correctly rendered (edit)", + function(assert) { + assert.expect(1); - var done = assert.async(); + var done = assert.async(); - createAsyncView({ - View: FormView, - model: 'partner', - data: this.data, - arch: this.arch, - res_id: 1, - viewOptions: {mode: 'edit'}, - }).then(function (form) { - _.defer(function () { - assert.strictEqual(form.$('.md-editor').length, 1); - form.destroy(); - done(); + createAsyncView({ + View: FormView, + model: "partner", + data: this.data, + arch: this.arch, + res_id: 1, + viewOptions: {mode: "edit"}, + }).then(function(form) { + _.defer(function() { + assert.strictEqual(form.$(".md-editor").length, 1); + form.destroy(); + done(); + }); }); - }); - } - ); - }); - + } + ); + } + ); }); diff --git a/web_widget_text_markdown/views/assets.xml b/web_widget_text_markdown/views/assets.xml index ac06dd38a..2ab0e154d 100644 --- a/web_widget_text_markdown/views/assets.xml +++ b/web_widget_text_markdown/views/assets.xml @@ -1,22 +1,31 @@ - + -