From 31d74f8c208f7e6ca9fddd9c85a7b128a58d6cb1 Mon Sep 17 00:00:00 2001 From: Mathias Markl Date: Wed, 25 Apr 2018 19:15:55 +0200 Subject: [PATCH] Update --- muk_web_fields_lobject/__init__.py | 20 ++ muk_web_fields_lobject/__manifest__.py | 55 +++++ muk_web_fields_lobject/doc/changelog.rst | 4 + muk_web_fields_lobject/doc/index.rst | 47 ++++ muk_web_fields_lobject/i18n/de.po | 75 +++++++ .../i18n/muk_web_fields_lobject.pot | 74 +++++++ .../static/description/banner.png | Bin 0 -> 44919 bytes .../static/description/icon.png | Bin 0 -> 11077 bytes .../static/description/index.html | 51 +++++ .../static/description/logo.png | Bin 0 -> 38064 bytes .../static/src/js/field_utils.js | 48 ++++ .../static/src/js/lobject.js | 208 ++++++++++++++++++ .../static/src/xml/lobject.xml | 41 ++++ muk_web_fields_lobject/template/assets.xml | 29 +++ muk_web_preview_lobject/__init__.py | 20 ++ muk_web_preview_lobject/__manifest__.py | 56 +++++ muk_web_preview_lobject/doc/changelog.rst | 4 + muk_web_preview_lobject/doc/index.rst | 47 ++++ muk_web_preview_lobject/i18n/de.po | 16 ++ .../i18n/muk_web_preview_lobject.pot | 16 ++ .../static/description/banner.png | Bin 0 -> 44828 bytes .../static/description/icon.png | Bin 0 -> 8680 bytes .../static/description/index.html | 89 ++++++++ .../static/description/logo.png | Bin 0 -> 38064 bytes .../static/src/js/preview_widgets.js | 66 ++++++ muk_web_preview_lobject/template/assets.xml | 28 +++ 26 files changed, 994 insertions(+) create mode 100644 muk_web_fields_lobject/__init__.py create mode 100644 muk_web_fields_lobject/__manifest__.py create mode 100644 muk_web_fields_lobject/doc/changelog.rst create mode 100644 muk_web_fields_lobject/doc/index.rst create mode 100644 muk_web_fields_lobject/i18n/de.po create mode 100644 muk_web_fields_lobject/i18n/muk_web_fields_lobject.pot create mode 100644 muk_web_fields_lobject/static/description/banner.png create mode 100644 muk_web_fields_lobject/static/description/icon.png create mode 100644 muk_web_fields_lobject/static/description/index.html create mode 100644 muk_web_fields_lobject/static/description/logo.png create mode 100644 muk_web_fields_lobject/static/src/js/field_utils.js create mode 100644 muk_web_fields_lobject/static/src/js/lobject.js create mode 100644 muk_web_fields_lobject/static/src/xml/lobject.xml create mode 100644 muk_web_fields_lobject/template/assets.xml create mode 100644 muk_web_preview_lobject/__init__.py create mode 100644 muk_web_preview_lobject/__manifest__.py create mode 100644 muk_web_preview_lobject/doc/changelog.rst create mode 100644 muk_web_preview_lobject/doc/index.rst create mode 100644 muk_web_preview_lobject/i18n/de.po create mode 100644 muk_web_preview_lobject/i18n/muk_web_preview_lobject.pot create mode 100644 muk_web_preview_lobject/static/description/banner.png create mode 100644 muk_web_preview_lobject/static/description/icon.png create mode 100644 muk_web_preview_lobject/static/description/index.html create mode 100644 muk_web_preview_lobject/static/description/logo.png create mode 100644 muk_web_preview_lobject/static/src/js/preview_widgets.js create mode 100644 muk_web_preview_lobject/template/assets.xml diff --git a/muk_web_fields_lobject/__init__.py b/muk_web_fields_lobject/__init__.py new file mode 100644 index 0000000..fe23305 --- /dev/null +++ b/muk_web_fields_lobject/__init__.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- + +################################################################################### +# +# Copyright (C) 2018 MuK IT GmbH +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +################################################################################### diff --git a/muk_web_fields_lobject/__manifest__.py b/muk_web_fields_lobject/__manifest__.py new file mode 100644 index 0000000..ee0f2bf --- /dev/null +++ b/muk_web_fields_lobject/__manifest__.py @@ -0,0 +1,55 @@ +# -*- coding: utf-8 -*- + +################################################################################### +# +# Copyright (C) 2018 MuK IT GmbH +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +################################################################################### + +{ + "name": "MuK Large Objects Field Widget", + "summary": """PGSQL Large Objects Field Widget""", + "version": '11.0.1.0.0', + "category": 'Extra Tools', + "license": "AGPL-3", + "website": "http://www.mukit.at", + "author": "MuK IT", + "contributors": [ + "Mathias Markl ", + ], + "depends": [ + "web", + "muk_fields_lobject", + ], + "data": [ + "template/assets.xml" + ], + "demo": [ + ], + "qweb": [ + "static/src/xml/*.xml", + ], + "images": [ + 'static/description/banner.png' + ], + "external_dependencies": { + "python": [], + "bin": [], + }, + "auto_install": True, + "application": False, + "installable": True, +} diff --git a/muk_web_fields_lobject/doc/changelog.rst b/muk_web_fields_lobject/doc/changelog.rst new file mode 100644 index 0000000..9ee2b48 --- /dev/null +++ b/muk_web_fields_lobject/doc/changelog.rst @@ -0,0 +1,4 @@ +`1.0.0` +------- + +- Init version diff --git a/muk_web_fields_lobject/doc/index.rst b/muk_web_fields_lobject/doc/index.rst new file mode 100644 index 0000000..94de82b --- /dev/null +++ b/muk_web_fields_lobject/doc/index.rst @@ -0,0 +1,47 @@ +============================== +MuK Large Objects Field Widget +============================== + +This module allows the LargeObject Field to be used in different views. It is +installed automatically with the MuK Large Objects module. + +Installation +============ + +To install this module, you need to: + +Download the module and add it to your Odoo addons folder. Afterward, log on to +your Odoo server and go to the Apps menu. Trigger the debug modus and update the +list by clicking on the "Update Apps List" link. Now install the module by +clicking on the install button. + +Configuration +============= + +No additional configuration is needed to use this module. + +Usage +============= + +This module has no direct visible effect on the system. It allows LargeObejct +fields to display in XML views. + +Credits +======= + +Contributors +------------ + +* Mathias Markl + +Author & Maintainer +------------------- + +This module is maintained by the `MuK IT GmbH `_. + +MuK IT is an Austrian company specialized in customizing and extending Odoo. +We develop custom solutions for your individual needs to help you focus on +your strength and expertise to grow your business. + +If you want to get in touch please contact us via mail +(sale@mukit.at) or visit our website (https://mukit.at). diff --git a/muk_web_fields_lobject/i18n/de.po b/muk_web_fields_lobject/i18n/de.po new file mode 100644 index 0000000..4737d85 --- /dev/null +++ b/muk_web_fields_lobject/i18n/de.po @@ -0,0 +1,75 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * muk_web_fields_lobject +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 11.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-04-25 16:17+0000\n" +"PO-Revision-Date: 2018-04-25 18:19+0200\n" +"Last-Translator: <>\n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: \n" +"Language: de\n" +"X-Generator: Poedit 2.0.6\n" + +#. module: muk_web_fields_lobject +#. openerp-web +#: code:addons/muk_web_fields_lobject/static/src/xml/lobject.xml:33 +#, python-format +msgid "Clear" +msgstr "Löschen" + +#. module: muk_web_fields_lobject +#. openerp-web +#: code:addons/muk_web_fields_lobject/static/src/js/lobject.js:92 +#, python-format +msgid "File Upload" +msgstr "File Hochladen" + +#. module: muk_web_fields_lobject +#. openerp-web +#: code:addons/muk_web_fields_lobject/static/src/js/lobject.js:72 +#, python-format +msgid "File upload" +msgstr "File Hochladen" + +#. module: muk_web_fields_lobject +#. openerp-web +#: code:addons/muk_web_fields_lobject/static/src/xml/lobject.xml:31 +#: code:addons/muk_web_fields_lobject/static/src/xml/lobject.xml:32 +#, python-format +msgid "Select" +msgstr "Auswählen" + +#. module: muk_web_fields_lobject +#. openerp-web +#: code:addons/muk_web_fields_lobject/static/src/js/lobject.js:71 +#, python-format +msgid "The selected file exceed the maximum file size of %s." +msgstr "Die ausgewählte Datei überschreitet die maximale Dateigröße von %s." + +#. module: muk_web_fields_lobject +#. openerp-web +#: code:addons/muk_web_fields_lobject/static/src/js/lobject.js:92 +#, python-format +msgid "There was a problem while uploading your file" +msgstr "Es gab ein Problem beim Hochladen Ihrer Datei" + +#. module: muk_web_fields_lobject +#. openerp-web +#: code:addons/muk_web_fields_lobject/static/src/xml/lobject.xml:31 +#, python-format +msgid "Upload your file" +msgstr "Laden Sie Ihre Datei hoch" + +#. module: muk_web_fields_lobject +#. openerp-web +#: code:addons/muk_web_fields_lobject/static/src/xml/lobject.xml:34 +#, python-format +msgid "Uploading..." +msgstr "Hochladen...." diff --git a/muk_web_fields_lobject/i18n/muk_web_fields_lobject.pot b/muk_web_fields_lobject/i18n/muk_web_fields_lobject.pot new file mode 100644 index 0000000..3bbf38f --- /dev/null +++ b/muk_web_fields_lobject/i18n/muk_web_fields_lobject.pot @@ -0,0 +1,74 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * muk_web_fields_lobject +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 11.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-04-25 16:16+0000\n" +"PO-Revision-Date: 2018-04-25 16:16+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: muk_web_fields_lobject +#. openerp-web +#: code:addons/muk_web_fields_lobject/static/src/xml/lobject.xml:33 +#, python-format +msgid "Clear" +msgstr "" + +#. module: muk_web_fields_lobject +#. openerp-web +#: code:addons/muk_web_fields_lobject/static/src/js/lobject.js:92 +#, python-format +msgid "File Upload" +msgstr "" + +#. module: muk_web_fields_lobject +#. openerp-web +#: code:addons/muk_web_fields_lobject/static/src/js/lobject.js:72 +#, python-format +msgid "File Upload" +msgstr "" + +#. module: muk_web_fields_lobject +#. openerp-web +#: code:addons/muk_web_fields_lobject/static/src/xml/lobject.xml:31 +#: code:addons/muk_web_fields_lobject/static/src/xml/lobject.xml:32 +#, python-format +msgid "Select" +msgstr "" + +#. module: muk_web_fields_lobject +#. openerp-web +#: code:addons/muk_web_fields_lobject/static/src/js/lobject.js:71 +#, python-format +msgid "The selected file exceed the maximum file size of %s." +msgstr "" + +#. module: muk_web_fields_lobject +#. openerp-web +#: code:addons/muk_web_fields_lobject/static/src/js/lobject.js:92 +#, python-format +msgid "There was a problem while uploading your file" +msgstr "" + +#. module: muk_web_fields_lobject +#. openerp-web +#: code:addons/muk_web_fields_lobject/static/src/xml/lobject.xml:31 +#, python-format +msgid "Upload your file" +msgstr "" + +#. module: muk_web_fields_lobject +#. openerp-web +#: code:addons/muk_web_fields_lobject/static/src/xml/lobject.xml:34 +#, python-format +msgid "Uploading..." +msgstr "" + diff --git a/muk_web_fields_lobject/static/description/banner.png b/muk_web_fields_lobject/static/description/banner.png new file mode 100644 index 0000000000000000000000000000000000000000..97a5f8b0e3ebce89c560387cb405c15e7e252db6 GIT binary patch literal 44919 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 literal 0 HcmV?d00001 diff --git a/muk_web_fields_lobject/static/description/icon.png b/muk_web_fields_lobject/static/description/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..ca01c4686b71803845b2bf134d2f290ba63e028b GIT binary patch literal 11077 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 idBSb~7j +
+

MuK PGSQL Large Objects

+

PGSQL Large Objects Support

+

MuK IT GmbH - + www.mukit.at

+
+ + +
+
+
+

Overview

+
+

This module allows the LargeObject Field to be used in different views. It is +installed automatically with the MuK Large Objects module. It has no direct visible effect on the system, but allows LargeObejct +fields to display in XML views.

+
+
+		    	
+<record id="view_lobject" model="ir.ui.view">
+    <field name="name">lobject.form</field>
+    <field name="model">lobject</field>
+    <field name="arch" type="xml">
+        <form string="LargeObjectModel">
+            <group>
+	            <field name="content_fname" />
+	            <field name="content" filename="content_fname" />
+            </group>
+        </form>
+    </field>
+</record> 
+		    	
+			
+
+
+
+ +
+

Help and Support

+
+ +
\ No newline at end of file diff --git a/muk_web_fields_lobject/static/description/logo.png b/muk_web_fields_lobject/static/description/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..9427ce33ea36c2ec961356d01d612bae02d48ce2 GIT binary patch literal 38064 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 literal 0 HcmV?d00001 diff --git a/muk_web_fields_lobject/static/src/js/field_utils.js b/muk_web_fields_lobject/static/src/js/field_utils.js new file mode 100644 index 0000000..664aa38 --- /dev/null +++ b/muk_web_fields_lobject/static/src/js/field_utils.js @@ -0,0 +1,48 @@ +/********************************************************************************** +* +* Copyright (C) 2017 MuK IT GmbH +* +* This program is free software: you can redistribute it and/or modify +* it under the terms of the GNU Affero General Public License as +* published by the Free Software Foundation, either version 3 of the +* License, or (at your option) any later version. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU Affero General Public License for more details. +* +* You should have received a copy of the GNU Affero General Public License +* along with this program. If not, see . +* +**********************************************************************************/ + +odoo.define('muk_web_fields_lobject.field_utils', function(require) { +"use strict"; + +var core = require('web.core'); +var utils = require('web.utils'); +var field_utils = require('web.field_utils'); + +var _t = core._t; +var QWeb = core.qweb; + +function lobjectToBinsize(value) { + if (!utils.is_bin_size(value)) { + return utils.human_size(value.length); + } + return value; +} + +function formatLargeObject(value, field, options) { + if (!value) { + return ''; + } + return lobjectToBinsize(value); +} + +field_utils.format.lobject = formatLargeObject; +field_utils.parse.lobject = _.identity; + + +}); diff --git a/muk_web_fields_lobject/static/src/js/lobject.js b/muk_web_fields_lobject/static/src/js/lobject.js new file mode 100644 index 0000000..1eeae46 --- /dev/null +++ b/muk_web_fields_lobject/static/src/js/lobject.js @@ -0,0 +1,208 @@ +/********************************************************************************** +* +* Copyright (C) 2017 MuK IT GmbH +* +* This program is free software: you can redistribute it and/or modify +* it under the terms of the GNU Affero General Public License as +* published by the Free Software Foundation, either version 3 of the +* License, or (at your option) any later version. +* +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU Affero General Public License for more details. +* +* You should have received a copy of the GNU Affero General Public License +* along with this program. If not, see . +* +**********************************************************************************/ + +odoo.define('muk_web_fields_lobject.lobject', function(require) { +"use strict"; + +var core = require('web.core'); +var utils = require('web.utils'); +var session = require('web.session'); +var framework = require('web.framework'); +var crash_manager = require('web.crash_manager'); +var registry = require('web.field_registry'); +var field_utils = require('web.field_utils'); + +var AbstractField = require('web.AbstractField'); + +var _t = core._t; +var QWeb = core.qweb; + +var AbstractFieldLargeObject = AbstractField.extend({ + events: _.extend({}, AbstractField.prototype.events, { + 'change .o_input_file': 'on_file_change', + 'click .o_select_file_button': function () { + this.$('.o_input_file').click(); + }, + 'click .o_clear_file_button': 'on_clear', + }), + init: function (parent, name, record) { + this._super.apply(this, arguments); + this.fields = record.fields; + this.useFileAPI = !!window.FileReader; + this.max_upload_size = 25 * 1024 * 1024; + if (!this.useFileAPI) { + var self = this; + this.fileupload_id = _.uniqueId('o_fileupload'); + $(window).on(this.fileupload_id, function () { + var args = [].slice.call(arguments).slice(1); + self.on_file_uploaded.apply(self, args); + }); + } + }, + destroy: function () { + if (this.fileupload_id) { + $(window).off(this.fileupload_id); + } + this._super.apply(this, arguments); + }, + on_file_change: function (e) { + var self = this; + var file_node = e.target; + if ((this.useFileAPI && file_node.files.length) || (!this.useFileAPI && $(file_node).val() !== '')) { + if (this.useFileAPI) { + var file = file_node.files[0]; + if (file.size > this.max_upload_size) { + var msg = _t("The selected file exceed the maximum file size of %s."); + this.do_warn(_t("File Upload"), _.str.sprintf(msg, utils.human_size(this.max_upload_size))); + return false; + } + var filereader = new FileReader(); + filereader.readAsDataURL(file); + filereader.onloadend = function (upload) { + var data = upload.target.result; + data = data.split(',')[1]; + self.on_file_uploaded(file.size, file.name, file.type, data); + }; + } else { + this.$('form.o_form_binary_form input[name=session_id]').val(this.getSession().session_id); + this.$('form.o_form_binary_form').submit(); + } + this.$('.o_form_binary_progress').show(); + this.$('button').hide(); + } + }, + on_file_uploaded: function (size, name) { + if (size === false) { + this.do_warn(_t("File Upload"), _t("There was a problem while uploading your file")); + console.warn("Error while uploading file : ", name); + } else { + this.on_file_uploaded_and_valid.apply(this, arguments); + } + this.$('.o_form_binary_progress').hide(); + this.$('button').show(); + }, + on_file_uploaded_and_valid: function (size, name, content_type, file_base64) { + this.set_filename(name); + this._setValue(file_base64); + this._render(); + }, + set_filename: function (value) { + var filename = this.attrs.filename; + if (filename && filename in this.fields) { + var changes = {}; + changes[filename] = value; + this.trigger_up('field_changed', { + dataPointID: this.dataPointID, + changes: changes, + viewType: this.viewType, + }); + } + }, + on_clear: function () { + this.set_filename(''); + this._setValue(false); + this._render(); + }, +}); + +var FieldLargeObject = AbstractFieldLargeObject.extend({ + template: 'FieldLObjectFile', + events: _.extend({}, AbstractFieldLargeObject.prototype.events, { + 'click': function (event) { + if (this.mode === 'readonly' && this.value && this.recordData.id) { + this.on_save_as(event); + } + }, + 'click .o_input': function () { + this.$('.o_input_file').click(); + }, + }), + supportedFieldTypes: ['lobject'], + init: function () { + this._super.apply(this, arguments); + this.filename_value = this.recordData[this.attrs.filename]; + }, + _renderReadonly: function () { + this.do_toggle(!!this.value); + if (this.value) { + this.$el.empty().append($("").addClass('fa fa-download')); + if (this.recordData.id) { + this.$el.css('cursor', 'pointer'); + } else { + this.$el.css('cursor', 'not-allowed'); + } + if (this.filename_value) { + this.$el.append(" " + this.filename_value); + } + } + if (!this.res_id) { + this.$el.css('cursor', 'not-allowed'); + } else { + this.$el.css('cursor', 'pointer'); + } + }, + _renderEdit: function () { + if (this.value) { + this.$el.children().removeClass('o_hidden'); + this.$('.o_select_file_button').first().addClass('o_hidden'); + this.$('.o_input').eq(0).val(this.filename_value || this.value); + } else { + this.$el.children().addClass('o_hidden'); + this.$('.o_select_file_button').first().removeClass('o_hidden'); + } + }, + set_filename: function (value) { + this._super.apply(this, arguments); + this.filename_value = value; + this.$('.o_save_file_button').prop('disabled', true); + }, + on_save_as: function (ev) { + if (!this.value) { + this._super.apply(this, arguments); + } else if (this.res_id) { + framework.blockUI(); + var c = crash_manager; + var filename_fieldname = this.attrs.filename; + this.getSession().get_file({ + 'url': '/web/lobject', + 'data': { + 'model': this.model, + 'id': this.res_id, + 'field': this.name, + 'filename_field': filename_fieldname, + 'filename': this.recordData[filename_fieldname] || null, + 'download': true, + 'data': utils.is_bin_size(this.value) ? null : this.value, + }, + 'complete': framework.unblockUI, + 'error': c.rpc_error.bind(c), + }); + ev.stopPropagation(); + } + }, +}); + +registry.add('lobject', FieldLargeObject); + +return { + AbstractFieldLargeObject: AbstractFieldLargeObject, + FieldLargeObject: FieldLargeObject +}; + +}); diff --git a/muk_web_fields_lobject/static/src/xml/lobject.xml b/muk_web_fields_lobject/static/src/xml/lobject.xml new file mode 100644 index 0000000..11f6d5d --- /dev/null +++ b/muk_web_fields_lobject/static/src/xml/lobject.xml @@ -0,0 +1,41 @@ + + + + + + + + +
+ + +
+
+ +
\ No newline at end of file diff --git a/muk_web_fields_lobject/template/assets.xml b/muk_web_fields_lobject/template/assets.xml new file mode 100644 index 0000000..1afc647 --- /dev/null +++ b/muk_web_fields_lobject/template/assets.xml @@ -0,0 +1,29 @@ + + + + + + +