diff --git a/xw_kk_preview/__init__.py b/xw_kk_preview/__init__.py deleted file mode 100644 index 511a0ca3a..000000000 --- a/xw_kk_preview/__init__.py +++ /dev/null @@ -1,4 +0,0 @@ -# -*- coding: utf-8 -*- - -from . import controllers -from . import models \ No newline at end of file diff --git a/xw_kk_preview/__manifest__.py b/xw_kk_preview/__manifest__.py deleted file mode 100644 index ccba0d429..000000000 --- a/xw_kk_preview/__manifest__.py +++ /dev/null @@ -1,37 +0,0 @@ -# -*- coding: utf-8 -*- -{ - 'name': "xw_kk_preview", - - 'summary': """ - kk file preview for odoo - """, - - 'description': """ - file preview, - kk file preview - """, - - 'author': "masterjmz", - 'website': "https://www.openerpnext.com", - - 'category': 'Apps/preview', - 'version': '16.0.0.1', - 'license': 'AGPL-3', - 'price': 9999, - - 'depends': ['base'], - - 'data': [ - 'security/ir.model.access.csv', - 'views/views.xml', - ], - - 'assets': { - 'web.assets_backend': [ - 'xw_kk_preview/static/src/binary_field/*.*', - 'xw_kk_preview/static/libs/*.*', - 'xw_kk_preview/static/src/kk_dialog_patch.js', - 'xw_kk_preview/static/css/*.*', - ] - }, -} diff --git a/xw_kk_preview/controllers/__init__.py b/xw_kk_preview/controllers/__init__.py deleted file mode 100644 index 457bae27e..000000000 --- a/xw_kk_preview/controllers/__init__.py +++ /dev/null @@ -1,3 +0,0 @@ -# -*- coding: utf-8 -*- - -from . import controllers \ No newline at end of file diff --git a/xw_kk_preview/controllers/controllers.py b/xw_kk_preview/controllers/controllers.py deleted file mode 100644 index 0d653c63c..000000000 --- a/xw_kk_preview/controllers/controllers.py +++ /dev/null @@ -1,21 +0,0 @@ -# -*- coding: utf-8 -*- -# from odoo import http - - -# class XwKkPreview(http.Controller): -# @http.route('/xw_kk_preview/xw_kk_preview', auth='public') -# def index(self, **kw): -# return "Hello, world" - -# @http.route('/xw_kk_preview/xw_kk_preview/objects', auth='public') -# def list(self, **kw): -# return http.request.render('xw_kk_preview.listing', { -# 'root': '/xw_kk_preview/xw_kk_preview', -# 'objects': http.request.env['xw_kk_preview.xw_kk_preview'].search([]), -# }) - -# @http.route('/xw_kk_preview/xw_kk_preview/objects/', auth='public') -# def object(self, obj, **kw): -# return http.request.render('xw_kk_preview.object', { -# 'object': obj -# }) diff --git a/xw_kk_preview/models/__init__.py b/xw_kk_preview/models/__init__.py deleted file mode 100644 index 5305644df..000000000 --- a/xw_kk_preview/models/__init__.py +++ /dev/null @@ -1,3 +0,0 @@ -# -*- coding: utf-8 -*- - -from . import models \ No newline at end of file diff --git a/xw_kk_preview/models/models.py b/xw_kk_preview/models/models.py deleted file mode 100644 index 5a093005b..000000000 --- a/xw_kk_preview/models/models.py +++ /dev/null @@ -1,50 +0,0 @@ -# -*- coding: utf-8 -*- - -from odoo import models, fields, api -import base64 - - -class XwKKPreview(models.AbstractModel): - """ - xw_kk_preview.xw_kk_preview - """ - _name = 'xw_kk_preview.xw_kk_preview' - _description = 'xw_kk_preview.xw_kk_preview' - - @api.model - def get_preview_url(self, res_model, res_id, field_name, file_name_field): - """ - get file info - """ - base_url = self.env['ir.config_parameter'].sudo().get_param('web.base.url') - record = self.env[res_model].sudo().browse(res_id) - - file_name = None - if file_name_field: - file_name = record[file_name_field] - - if not file_name: - stream = None - try: - stream = self.env['ir.binary'].sudo()._get_stream_from( - record, field_name, False, file_name_field or 'name') - except Exception as e: - return { - 'status': 'error', - 'message': str(e), - } - file_name = stream.download_name - - # http://124.223.107.118:8012/onlinePreview - preivew_url = self.env['ir.config_parameter'].sudo().get_param('xw_kk_preview.preivew_url') - if not preivew_url: - return { - 'status': 'error', - 'message': 'please set preivew_url in system parameters', - } - - return { - 'status': 'success', - 'preview_url': preivew_url, - 'url': f'{base_url}/web/content/{res_model}/{res_id}/{field_name}/{file_name}?download=true', - } diff --git a/xw_kk_preview/security/ir.model.access.csv b/xw_kk_preview/security/ir.model.access.csv deleted file mode 100644 index 06372f500..000000000 --- a/xw_kk_preview/security/ir.model.access.csv +++ /dev/null @@ -1,2 +0,0 @@ -id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink -access_xw_kk_preview_xw_kk_preview,xw_kk_preview.xw_kk_preview,model_xw_kk_preview_xw_kk_preview,base.group_user,1,1,1,1 \ No newline at end of file diff --git a/xw_kk_preview/static/css/style.scss b/xw_kk_preview/static/css/style.scss deleted file mode 100644 index 13b224c8c..000000000 --- a/xw_kk_preview/static/css/style.scss +++ /dev/null @@ -1,18 +0,0 @@ - -.modal-full { - width: 100% !important; - height: 100% !important; - max-width: 100%; - padding: 0 !important; - - .modal-content { - height: 100% !important; - max-height: 100% !important; - .modal-body { - > div { - height: 100% !important; - max-height: 100% !important; - } - } - } -} \ No newline at end of file diff --git a/xw_kk_preview/static/description/icon.png b/xw_kk_preview/static/description/icon.png deleted file mode 100644 index 30172b538..000000000 Binary files a/xw_kk_preview/static/description/icon.png and /dev/null differ diff --git a/xw_kk_preview/static/libs/base64.js b/xw_kk_preview/static/libs/base64.js deleted file mode 100644 index f2cc36af0..000000000 --- a/xw_kk_preview/static/libs/base64.js +++ /dev/null @@ -1,8 +0,0 @@ -/** - * Minified by jsDelivr using Terser v5.3.5. - * Original file: /npm/js-base64@3.6.0/base64.js - * - * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files - */ -!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):function(){const r=e.Base64,o=t();o.noConflict=()=>(e.Base64=r,o),e.Meteor&&(Base64=o),e.Base64=o}()}("undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:this,(function(){"use strict";const e="3.6.0",t="function"==typeof atob,r="function"==typeof btoa,o="function"==typeof Buffer,n="function"==typeof TextDecoder?new TextDecoder:void 0,a="function"==typeof TextEncoder?new TextEncoder:void 0,f=[..."ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="],i=(e=>{let t={};return e.forEach(((e,r)=>t[e]=r)),t})(f),c=/^(?:[A-Za-z\d+\/]{4})*?(?:[A-Za-z\d+\/]{2}(?:==)?|[A-Za-z\d+\/]{3}=?)?$/,u=String.fromCharCode.bind(String),s="function"==typeof Uint8Array.from?Uint8Array.from.bind(Uint8Array):(e,t=(e=>e))=>new Uint8Array(Array.prototype.slice.call(e,0).map(t)),d=e=>e.replace(/[+\/]/g,(e=>"+"==e?"-":"_")).replace(/=+$/m,""),l=e=>e.replace(/[^A-Za-z0-9\+\/]/g,""),h=e=>{let t,r,o,n,a="";const i=e.length%3;for(let i=0;i255||(o=e.charCodeAt(i++))>255||(n=e.charCodeAt(i++))>255)throw new TypeError("invalid character found");t=r<<16|o<<8|n,a+=f[t>>18&63]+f[t>>12&63]+f[t>>6&63]+f[63&t]}return i?a.slice(0,i-3)+"===".substring(i):a},p=r?e=>btoa(e):o?e=>Buffer.from(e,"binary").toString("base64"):h,y=o?e=>Buffer.from(e).toString("base64"):e=>{let t=[];for(let r=0,o=e.length;rt?d(y(e)):y(e),b=e=>{if(e.length<2)return(t=e.charCodeAt(0))<128?e:t<2048?u(192|t>>>6)+u(128|63&t):u(224|t>>>12&15)+u(128|t>>>6&63)+u(128|63&t);var t=65536+1024*(e.charCodeAt(0)-55296)+(e.charCodeAt(1)-56320);return u(240|t>>>18&7)+u(128|t>>>12&63)+u(128|t>>>6&63)+u(128|63&t)},g=/[\uD800-\uDBFF][\uDC00-\uDFFFF]|[^\x00-\x7F]/g,B=e=>e.replace(g,b),x=o?e=>Buffer.from(e,"utf8").toString("base64"):a?e=>y(a.encode(e)):e=>p(B(e)),C=(e,t=!1)=>t?d(x(e)):x(e),m=e=>C(e,!0),U=/[\xC0-\xDF][\x80-\xBF]|[\xE0-\xEF][\x80-\xBF]{2}|[\xF0-\xF7][\x80-\xBF]{3}/g,F=e=>{switch(e.length){case 4:var t=((7&e.charCodeAt(0))<<18|(63&e.charCodeAt(1))<<12|(63&e.charCodeAt(2))<<6|63&e.charCodeAt(3))-65536;return u(55296+(t>>>10))+u(56320+(1023&t));case 3:return u((15&e.charCodeAt(0))<<12|(63&e.charCodeAt(1))<<6|63&e.charCodeAt(2));default:return u((31&e.charCodeAt(0))<<6|63&e.charCodeAt(1))}},w=e=>e.replace(U,F),S=e=>{if(e=e.replace(/\s+/g,""),!c.test(e))throw new TypeError("malformed base64.");e+="==".slice(2-(3&e.length));let t,r,o,n="";for(let a=0;a>16&255):64===o?u(t>>16&255,t>>8&255):u(t>>16&255,t>>8&255,255&t);return n},E=t?e=>atob(l(e)):o?e=>Buffer.from(e,"base64").toString("binary"):S,v=o?e=>s(Buffer.from(e,"base64")):e=>s(E(e),(e=>e.charCodeAt(0))),D=e=>v(z(e)),R=o?e=>Buffer.from(e,"base64").toString("utf8"):n?e=>n.decode(v(e)):e=>w(E(e)),z=e=>l(e.replace(/[-_]/g,(e=>"-"==e?"+":"/"))),T=e=>R(z(e)),Z=e=>({value:e,enumerable:!1,writable:!0,configurable:!0}),j=function(){const e=(e,t)=>Object.defineProperty(String.prototype,e,Z(t));e("fromBase64",(function(){return T(this)})),e("toBase64",(function(e){return C(this,e)})),e("toBase64URI",(function(){return C(this,!0)})),e("toBase64URL",(function(){return C(this,!0)})),e("toUint8Array",(function(){return D(this)}))},I=function(){const e=(e,t)=>Object.defineProperty(Uint8Array.prototype,e,Z(t));e("toBase64",(function(e){return A(this,e)})),e("toBase64URI",(function(){return A(this,!0)})),e("toBase64URL",(function(){return A(this,!0)}))},O={version:e,VERSION:"3.6.0",atob:E,atobPolyfill:S,btoa:p,btoaPolyfill:h,fromBase64:T,toBase64:C,encode:C,encodeURI:m,encodeURL:m,utob:B,btou:w,decode:T,isValid:e=>{if("string"!=typeof e)return!1;const t=e.replace(/\s+/g,"").replace(/=+$/,"");return!/[^\s0-9a-zA-Z\+/]/.test(t)||!/[^\s0-9a-zA-Z\-_]/.test(t)},fromUint8Array:A,toUint8Array:D,extendString:j,extendUint8Array:I,extendBuiltins:()=>{j(),I()},Base64:{}};return Object.keys(O).forEach((e=>O.Base64[e]=O[e])),O})); -//# sourceMappingURL=/sm/8bca8602e2256d240cef904e1c1df432ccfdd2a2a73f6911c60be79e526e3e1e.map \ No newline at end of file diff --git a/xw_kk_preview/static/src/binary_field/kk_binary_preview.js b/xw_kk_preview/static/src/binary_field/kk_binary_preview.js deleted file mode 100644 index 652922a1c..000000000 --- a/xw_kk_preview/static/src/binary_field/kk_binary_preview.js +++ /dev/null @@ -1,55 +0,0 @@ -/** @odoo-module **/ - -import { patch } from "@web/core/utils/patch"; -import { BinaryField } from "@web/views/fields/binary/binary_field"; -import { useOwnedDialogs, useService } from "@web/core/utils/hooks"; -import { _lt } from "@web/core/l10n/translation"; -import { KKPreviewDialog } from "./kk_preview_dialog"; - - -/** - * binary field patch - * @param {Object} param0 - */ -patch(BinaryField.prototype, "xc_utils_binary_field_patch", { - - setup() { - this._super(...arguments); - this.addDialog = useOwnedDialogs(); - this.orm = useService("orm"); - this.notification = useService("notification"); - }, - - /** - * do preview - */ - do_preview() { - - let res_id = this.props.record.data.id; - let res_model = this.props.record.resModel; - let file_name = this.props.filename; - let field_name = this.props.name; - - this.orm.call( - "xw_kk_preview.xw_kk_preview", "get_preview_url", [ - res_model, res_id, field_name, file_name]).then((result) => { - if (result && result.status == 'success') { - - let preview_url = result.preview_url; - let finalUrl = preview_url + '?url=' + encodeURIComponent(Base64.encode(result.url)); - this.addDialog(KKPreviewDialog, { - url: finalUrl, - close: () => {}, - size: 'full' - }); - } else { - this.notification.add( - this.env._t("Warning"), { - title: this.env._t('Get File Preview URL Failed!'), - type: "warning" - } - ); - } - }); - } -}); diff --git a/xw_kk_preview/static/src/binary_field/kk_binary_preview.xml b/xw_kk_preview/static/src/binary_field/kk_binary_preview.xml deleted file mode 100644 index 70f3532ab..000000000 --- a/xw_kk_preview/static/src/binary_field/kk_binary_preview.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - - - - - - - - - - diff --git a/xw_kk_preview/static/src/binary_field/kk_preview_dialog.js b/xw_kk_preview/static/src/binary_field/kk_preview_dialog.js deleted file mode 100644 index 980ec0244..000000000 --- a/xw_kk_preview/static/src/binary_field/kk_preview_dialog.js +++ /dev/null @@ -1,24 +0,0 @@ -/** @odoo-module **/ - -import { Dialog } from "@web/core/dialog/dialog"; -import { _lt } from "@web/core/l10n/translation"; - -import { Component } from "@odoo/owl"; - -export class KKPreviewDialog extends Component {}; - -KKPreviewDialog.props = { - url: String, - close: Function, - size: { - type: String, - optional: true, - } -}; - -KKPreviewDialog.defaultProps = { - fullscreen: false, -}; - -KKPreviewDialog.components = { Dialog }; -KKPreviewDialog.template = "xc_utils.kk_preview_dialog"; \ No newline at end of file diff --git a/xw_kk_preview/static/src/binary_field/kk_preview_dialog.xml b/xw_kk_preview/static/src/binary_field/kk_preview_dialog.xml deleted file mode 100644 index caa2755f9..000000000 --- a/xw_kk_preview/static/src/binary_field/kk_preview_dialog.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - - -
- -
- - - -
-
- -
diff --git a/xw_kk_preview/static/src/kk_dialog_patch.js b/xw_kk_preview/static/src/kk_dialog_patch.js deleted file mode 100644 index ee9622726..000000000 --- a/xw_kk_preview/static/src/kk_dialog_patch.js +++ /dev/null @@ -1,14 +0,0 @@ -/** @odoo-module **/ - -import { Dialog } from "@web/core/dialog/dialog"; -import { patch } from "@web/core/utils/patch"; - -patch(Dialog.prototype, 'xw_kk_preview.dialog_patch', {}); - -Dialog.props = { - ...Dialog.props, - size: { - type: String, - optional: true, - } -}; diff --git a/xw_kk_preview/views/templates.xml b/xw_kk_preview/views/templates.xml deleted file mode 100644 index cea6b39ad..000000000 --- a/xw_kk_preview/views/templates.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - \ No newline at end of file diff --git a/xw_kk_preview/views/views.xml b/xw_kk_preview/views/views.xml deleted file mode 100644 index c8e242054..000000000 --- a/xw_kk_preview/views/views.xml +++ /dev/null @@ -1,60 +0,0 @@ - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/xw_kk_preview_demo/__init__.py b/xw_kk_preview_demo/__init__.py deleted file mode 100644 index 5305644df..000000000 --- a/xw_kk_preview_demo/__init__.py +++ /dev/null @@ -1,3 +0,0 @@ -# -*- coding: utf-8 -*- - -from . import models \ No newline at end of file diff --git a/xw_kk_preview_demo/__manifest__.py b/xw_kk_preview_demo/__manifest__.py deleted file mode 100644 index ec977f4c1..000000000 --- a/xw_kk_preview_demo/__manifest__.py +++ /dev/null @@ -1,25 +0,0 @@ -# -*- coding: utf-8 -*- -{ - 'name': "preview_demo", - - 'summary': """ - Short (1 phrase/line) summary of the module's purpose, used as - subtitle on modules listing or apps.openerp.com""", - - 'description': """ - Long description of module's purpose - """, - - 'author': "My Company", - 'website': "https://www.yourcompany.com", - - 'category': 'apps/demo', - 'version': '16.0.0.1', - - 'depends': ['base', 'web'], - - 'data': [ - 'security/ir.model.access.csv', - 'views/views.xml', - ] -} diff --git a/xw_kk_preview_demo/models/__init__.py b/xw_kk_preview_demo/models/__init__.py deleted file mode 100644 index b379a50b9..000000000 --- a/xw_kk_preview_demo/models/__init__.py +++ /dev/null @@ -1,4 +0,0 @@ -# -*- coding: utf-8 -*- - -from . import models -from . import patch_attachment \ No newline at end of file diff --git a/xw_kk_preview_demo/models/models.py b/xw_kk_preview_demo/models/models.py deleted file mode 100644 index 5dbf80a5f..000000000 --- a/xw_kk_preview_demo/models/models.py +++ /dev/null @@ -1,19 +0,0 @@ -# -*- coding: utf-8 -*- - -from odoo import models, fields, api - - -class preview_demo(models.Model): - _name = 'xw_kk_preview_demo.preview_demo' - _description = 'kk preview demo' - - name = fields.Char() - value = fields.Integer() - value2 = fields.Float(compute="_value_pc", store=True) - description = fields.Text() - test_preview = fields.Binary(string="test_preview") - - @api.depends('value') - def _value_pc(self): - for record in self: - record.value2 = float(record.value) / 100 diff --git a/xw_kk_preview_demo/models/patch_attachment.py b/xw_kk_preview_demo/models/patch_attachment.py deleted file mode 100644 index 01197dca0..000000000 --- a/xw_kk_preview_demo/models/patch_attachment.py +++ /dev/null @@ -1,19 +0,0 @@ - -# -*- coding: utf-8 -*- - -from odoo import models, fields, api - - -class MdContractAttachment(models.Model): - ''' - attachment - ''' - _inherit = 'ir.attachment' - - @api.model - def check(self, mode, values=None): - """ - Restricts the access to an ir.attachment, according to referred mode - """ - return True - # return super().check(mode, values) diff --git a/xw_kk_preview_demo/security/ir.model.access.csv b/xw_kk_preview_demo/security/ir.model.access.csv deleted file mode 100644 index ea0f89ddf..000000000 --- a/xw_kk_preview_demo/security/ir.model.access.csv +++ /dev/null @@ -1,2 +0,0 @@ -id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink -access_xw_kk_preview_demo_preview_demo,xw_kk_preview_demo.preview_demo,model_xw_kk_preview_demo_preview_demo,,1,1,1,1 \ No newline at end of file diff --git a/xw_kk_preview_demo/static/description/icon.png b/xw_kk_preview_demo/static/description/icon.png deleted file mode 100644 index 30172b538..000000000 Binary files a/xw_kk_preview_demo/static/description/icon.png and /dev/null differ diff --git a/xw_kk_preview_demo/views/views.xml b/xw_kk_preview_demo/views/views.xml deleted file mode 100644 index b3dbb0247..000000000 --- a/xw_kk_preview_demo/views/views.xml +++ /dev/null @@ -1,59 +0,0 @@ - - - - - - preview_demo - xw_kk_preview_demo.preview_demo - - - - - - - - - - - - - preview_demo form - xw_kk_preview_demo.preview_demo - -
- - - - - - -
- -
- -
-
-
-
-
-
- - - preview_demo window - xw_kk_preview_demo.preview_demo - tree,form - - - - - - - - - - - - - -
-
\ No newline at end of file diff --git a/yuthon_property/views/menuitem.xml b/yuthon_property/views/menuitem.xml index ad9b757e0..2a3eb9724 100644 --- a/yuthon_property/views/menuitem.xml +++ b/yuthon_property/views/menuitem.xml @@ -16,38 +16,38 @@ sequence="6" name="物业" parent="yuthon_property_menu_root"/> - - @@ -68,7 +68,7 @@ + parent="yuthon_property_menu_root"/>