[MIG] document_url: Migration to 15.0

This commit is contained in:
matiasperalta1 2022-07-18 16:33:26 -03:00 committed by Bhavesh Heliconia
parent 620aac5041
commit 95c078588d
9 changed files with 122 additions and 96 deletions

View File

@ -72,6 +72,7 @@ Contributors
* Ernesto Tejeda * Ernesto Tejeda
* Manuel Calero * Manuel Calero
* Víctor Martínez * Víctor Martínez
* Matias Peralta - Adhoc SA
Maintainers Maintainers
~~~~~~~~~~~ ~~~~~~~~~~~

View File

@ -2,16 +2,23 @@
# Copyright 2020 Tecnativa - Manuel Calero # Copyright 2020 Tecnativa - Manuel Calero
{ {
"name": "URL attachment", "name": "URL attachment",
"version": "14.0.1.0.0", "version": "15.0.1.0.0",
"category": "Tools", "category": "Tools",
"author": "Tecnativa, Odoo Community Association (OCA)", "author": "Tecnativa, Odoo Community Association (OCA)",
"website": "https://github.com/OCA/knowledge", "website": "https://github.com/OCA/knowledge",
"license": "AGPL-3", "license": "AGPL-3",
"depends": ["mail"], "depends": ["mail"],
"data": [ "data": [
"view/document_url_view.xml",
"security/ir.model.access.csv", "security/ir.model.access.csv",
"view/document_url_view.xml",
], ],
"qweb": ["static/src/xml/url.xml"], "assets": {
"web.assets_backend": [
"document_url/static/src/js/url.esm.js",
],
"web.assets_qweb": [
"document_url/static/src/xml/url.xml",
],
},
"installable": True, "installable": True,
} }

View File

@ -5,3 +5,4 @@
* Ernesto Tejeda * Ernesto Tejeda
* Manuel Calero * Manuel Calero
* Víctor Martínez * Víctor Martínez
* Matias Peralta - Adhoc SA

View File

@ -0,0 +1,49 @@
/** @odoo-module **/
import {AttachmentBox} from "@mail/components/attachment_box/attachment_box";
import {AttachmentCard} from "@mail/components/attachment_card/attachment_card";
import {patch} from "web.utils";
patch(AttachmentBox.prototype, "document_url/static/src/js/url.js", {
_onAddUrl(event) {
event.preventDefault();
event.stopPropagation();
this.env.bus.trigger("do-action", {
action: "document_url.action_ir_attachment_add_url",
options: {
additional_context: {
active_id: this.messaging.models["mail.chatter"].get(
this.props.chatterLocalId
).threadId,
active_ids: [
this.messaging.models["mail.chatter"].get(
this.props.chatterLocalId
).threadId,
],
active_model: this.messaging.models["mail.chatter"].get(
this.props.chatterLocalId
).threadModel,
},
on_close: this._onAddedUrl.bind(this),
},
});
},
_onAddedUrl() {
this.trigger("reload");
},
});
patch(AttachmentCard.prototype, "document_url/static/src/js/url.js", {
/**
* Return the url of the attachment. Temporary attachments, a.k.a. uploading
* attachments, do not have an url.
*
* @returns {String}
*/
get attachmentUrl() {
return this.env.session.url("/web/content", {
id: this.attachmentCard.attachment.id,
download: true,
});
},
});

View File

@ -1,42 +0,0 @@
/* Copyright 2014 Serv. Tecnol. Avanzados (http://www.serviciosbaeza.com)
* Pedro M. Baeza <pedro.baeza@serviciosbaeza.com>
* Copyright 2016 ACSONE SA/NV (<http://acsone.eu>)
* Copyright 2019 Tecnativa - Ernesto Tejeda
* Copyright 2020 Tecnativa - Manuel Calero
* Copyright 2021 Tecnativa - Víctor Martínez
* License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
*/
odoo.define("document_url", function (require) {
"use strict";
const AttachmentBox = require("mail/static/src/components/attachment_box/attachment_box.js");
const Attachment = require("mail/static/src/components/attachment/attachment.js");
const {patch} = require("web.utils");
patch(AttachmentBox, "document_url", {
_onAddUrl() {
this.env.bus.trigger("do-action", {
action: "document_url.action_ir_attachment_add_url",
options: {
additional_context: {
active_id: this.thread.id,
active_ids: [this.thread.id],
active_model: this.thread.model,
},
on_close: this._onAddedUrl.bind(this),
},
});
},
_onAddedUrl() {
this.trigger("reload");
},
});
patch(Attachment, "document_url", {
_onClickImage(ev) {
if (!this.attachment.isViewable) {
this._onClickDownload(ev);
}
this._super.apply(this, arguments);
},
});
});

View File

@ -2,43 +2,66 @@
<!-- Copyright 2018 Tecnativa - Ernesto Tejeda <!-- Copyright 2018 Tecnativa - Ernesto Tejeda
Copyright 2021 Tecnativa - Víctor Martínez Copyright 2021 Tecnativa - Víctor Martínez
License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). --> License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). -->
<templates xml:space="preserve"> <templates>
<t t-inherit="mail.AttachmentBox" t-inherit-mode="extension" owl="1"> <t t-inherit="mail.AttachmentBox" t-inherit-mode="extension" owl="1">
<xpath expr="//button[hasclass('o_AttachmentBox_buttonAdd')]" position="after"> <xpath
<button expr="//button[hasclass('o_AttachmentBox_buttonAdd')]"
type="button" position="replace"
class="o_add_url_button btn btn-link" >
t-on-click="_onAddUrl" <div align="center">
> <button
class="o_AttachmentBox_buttonAdd btn btn-link"
type="button"
t-on-click="_onClickAdd"
>
<i class="fa fa-plus-square" />
Add attachments
</button>
<button
type="button"
class="o_add_url_button btn btn-link"
t-on-click="_onAddUrl"
>
<i class="fa fa-plus-square" /> <i class="fa fa-plus-square" />
Add URL Add URL
</button> </button>
</div>
</xpath> </xpath>
</t> </t>
<t t-inherit="mail.Attachment" t-inherit-mode="extension" owl="1">
<t t-inherit="mail.AttachmentCard" t-inherit-mode="extension" owl="1">
<xpath <xpath
expr="//t[@t-if='attachment']/t/div[1][hasclass('o_Attachment_details')]//div[hasclass('o_Attachment_filename')]/t" expr="//div[hasclass('o_AttachmentCard_details')]/t/div"
position="replace" position="replace"
> >
<a t-att-href="attachmentUrl" target="new"> <a t-att-href="attachmentUrl" target="new">
<t t-esc="attachment.displayName" /> <t t-esc="attachmentCard.attachment.displayName" />
</a> </a>
</xpath> </xpath>
<xpath <xpath
expr="//div[hasclass('o_Attachment_asideItemDownload')]" expr="//div[hasclass('o_AttachmentCard_details')]/t[2]/div"
position="replace"
>
</xpath>
<xpath
expr="//div[hasclass('o_AttachmentCard_asideItemDownload')]"
position="attributes" position="attributes"
> >
<attribute name="t-if">attachment.mimetype != 'application/link'</attribute> <attribute
name="t-if"
>attachmentCard.attachment.mimetype != 'application/link'</attribute>
</xpath> </xpath>
<xpath expr="//div[hasclass('o_Attachment_image')]" position="attributes"> <xpath expr="//div[hasclass('o_AttachmentCard_image')]" position="attributes">
<attribute name="t-if">attachment.mimetype != 'application/link'</attribute> <attribute
name="t-if"
>attachmentCard.attachment.mimetype != 'application/link'</attribute>
</xpath> </xpath>
<xpath expr="//div[hasclass('o_Attachment_image')]" position="before"> <xpath expr="//div[hasclass('o_AttachmentCard_image')]" position="before">
<a <a
class="o_Attachment_url_icon" class="o_Attachment_url_icon"
t-att-href="attachmentUrl" t-att-href="attachmentUrl"
target="new" target="new"
t-if="attachment.mimetype=='application/link'" t-if="attachmentCard.attachment.mimetype=='application/link'"
> >
<i class="fa fa-link fa-2x" /> <i class="fa fa-link fa-2x" />
</a> </a>

View File

@ -7,14 +7,12 @@ class TestDocumentUrl(common.TransactionCase):
def setUp(self): def setUp(self):
super().setUp() super().setUp()
wizard_add_url = self.env["ir.attachment.add_url"] wizard_add_url = self.env["ir.attachment.add_url"]
ctx = {
"active_model": "res.users", self.wizard_add_url = wizard_add_url.with_context(
"active_id": self.env.ref("base.user_demo").id, active_model="res.users",
"active_ids": [self.env.ref("base.user_demo").id], active_id=self.env.ref("base.user_demo").id,
} active_ids=[self.env.ref("base.user_demo").id],
self.wizard_add_url = wizard_add_url.with_context(ctx).create( ).create({"name": "Demo User (Website)", "url": "http://www.odoodemouser.com"})
{"name": "Demo User (Website)", "url": "http://www.odoodemouser.com"}
)
def test_add_url_attachment(self): def test_add_url_attachment(self):
self.wizard_add_url.action_add_url() self.wizard_add_url.action_add_url()

View File

@ -1,26 +1,14 @@
<?xml version="1.0" encoding="utf-8" ?> <?xml version="1.0" encoding="utf-8" ?>
<odoo> <odoo>
<template <record id='action_ir_attachment_add_url' model='ir.actions.act_window'>
id="assets_backend" <field name='name'>Add URL</field>
name="document_url assets" <field name='res_model'>ir.attachment.add_url</field>
inherit_id="web.assets_backend" <field name='type'>ir.actions.act_window</field>
> <field name='target'>new</field>
<xpath expr="." position="inside"> <field name='view_mode'>form</field>
<script type="text/javascript" src="/document_url/static/src/js/url.js" />
<link
href="/document_url/static/src/scss/document_url.scss"
rel="stylesheet"
/>
</xpath>
</template>
<record model="ir.actions.act_window" id='action_ir_attachment_add_url'>
<field name="name">Add URL</field>
<field name="res_model">ir.attachment.add_url</field>
<field name="type">ir.actions.act_window</field>
<field name="target">new</field>
<field name="view_mode">form</field>
</record> </record>
<record model="ir.ui.view" id="view_ir_attachment_add_url_form"> <data>
<record id="view_ir_attachment_add_url_form" model="ir.ui.view">
<field name="name">ir.attachment.add_url.form</field> <field name="name">ir.attachment.add_url.form</field>
<field name="model">ir.attachment.add_url</field> <field name="model">ir.attachment.add_url</field>
<field name="arch" type="xml"> <field name="arch" type="xml">
@ -31,15 +19,16 @@
</group> </group>
<footer> <footer>
<button <button
name="action_add_url" name="action_add_url"
string="Add" string="Add"
class="oe_highlight" class="oe_highlight"
type="object" type="object"
/> />
or or
<button special="cancel" string="Cancel" class="oe_link" /> <button special="cancel" string="Cancel" class="oe_link" />
</footer> </footer>
</form> </form>
</field> </field>
</record> </record>
</data>
</odoo> </odoo>

View File

@ -10,7 +10,7 @@ class AddUrlWizard(models.TransientModel):
_name = "ir.attachment.add_url" _name = "ir.attachment.add_url"
_description = "Wizard to add URL attachment" _description = "Wizard to add URL attachment"
name = fields.Char("Name", required=True) name = fields.Char(required=True)
url = fields.Char("URL", required=True) url = fields.Char("URL", required=True)
def action_add_url(self): def action_add_url(self):