diff options
| author | Thanh Dodeur <tso@odoo.com> | 2019-04-05 08:11:26 +0000 |
|---|---|---|
| committer | Thanh Dodeur <tso@odoo.com> | 2019-06-05 09:12:13 +0000 |
| commit | c212cfe8992292f57acacd809de26e1817533095 (patch) | |
| tree | 4ab6e06aa7e9e74087bc81fac2047b7c113ea941 /addons/mail | |
| parent | d6847bacb1d2425466003985f9e96837f22c2148 (diff) | |
[REF] *: removes datas_fname from ir.attachment
This commit removes the field `datas_fname` from `ir.attachment` as
it was unnecessary and most of the time the duplicate of `name` or
`url`.
Task #1909865
closes odoo/odoo#32976
Signed-off-by: Martin Geubelle (mge) <mge@openerp.com>
Diffstat (limited to 'addons/mail')
| -rw-r--r-- | addons/mail/data/mail_demo.xml | 6 | ||||
| -rw-r--r-- | addons/mail/models/mail_mail.py | 4 | ||||
| -rw-r--r-- | addons/mail/models/mail_message.py | 5 | ||||
| -rw-r--r-- | addons/mail/models/mail_template.py | 1 | ||||
| -rw-r--r-- | addons/mail/models/mail_thread.py | 1 | ||||
| -rw-r--r-- | addons/mail/static/src/js/attachment_box.js | 2 | ||||
| -rw-r--r-- | addons/mail/static/src/js/chatter.js | 2 | ||||
| -rw-r--r-- | addons/mail/static/tests/chatter_tests.js | 20 | ||||
| -rw-r--r-- | addons/mail/static/tests/document_viewer_tests.js | 14 | ||||
| -rw-r--r-- | addons/mail/views/mail_message_views.xml | 10 | ||||
| -rw-r--r-- | addons/mail/wizard/mail_compose_message.py | 1 |
11 files changed, 25 insertions, 41 deletions
diff --git a/addons/mail/data/mail_demo.xml b/addons/mail/data/mail_demo.xml index b4e7f2c092e..3cfb89792ae 100644 --- a/addons/mail/data/mail_demo.xml +++ b/addons/mail/data/mail_demo.xml @@ -41,12 +41,10 @@ virginie@agrolait.fr</pre></field> <!-- Admin and Demo with attachments --> <record id="msg_discus4_attach1" model="ir.attachment"> <field name="datas">bWlncmF0aW9uIHRlc3Q=</field> - <field name="datas_fname">catalog.doc</field> <field name="name">catalog.doc</field> </record> <record id="msg_discus4_attach2" model="ir.attachment"> - <field name="datas_fname">activity_graph_2012.jpg</field> - <field name="name">activity_graph_2012</field> + <field name="name">activity_graph_2012.jpg</field> <field name="datas" type="base64" file="mail/static/img/msg_discus4_attach2-datas.jpg"/> </record> <record id="msg_discus4" model="mail.message"> @@ -82,12 +80,10 @@ virginie@agrolait.fr</pre></field> <!-- Discussion: attachments and spec [DEMO: search on has_attachments --> <record id="msg_discus6_attach1" model="ir.attachment"> <field name="datas">bWlncmF0aW9uIHRlc3Q=</field> - <field name="datas_fname">RedHat_spec.doc</field> <field name="name">RedHat_spec.doc</field> </record> <record id="msg_discus6_attach2" model="ir.attachment"> <field name="datas">bWlncmF0aW9uIHRlc3Q=</field> - <field name="datas_fname">RedHat_spec_draft_v3.doc</field> <field name="name">RedHat_spec_draft_v3.doc</field> </record> <record id="msg_discus6" model="mail.message"> diff --git a/addons/mail/models/mail_mail.py b/addons/mail/models/mail_mail.py index ffc8aa33399..3b575b08405 100644 --- a/addons/mail/models/mail_mail.py +++ b/addons/mail/models/mail_mail.py @@ -294,8 +294,8 @@ class MailMail(models.Model): # load attachment binary data with a separate read(), as prefetching all # `datas` (binary field) could bloat the browse cache, triggerring # soft/hard mem limits with temporary data. - attachments = [(a['datas_fname'], base64.b64decode(a['datas']), a['mimetype']) - for a in attachments.sudo().read(['datas_fname', 'datas', 'mimetype'])] + attachments = [(a['name'], base64.b64decode(a['datas']), a['mimetype']) + for a in attachments.sudo().read(['name', 'datas', 'mimetype'])] # specific behavior to customize the send email for notified partners email_list = [] diff --git a/addons/mail/models/mail_message.py b/addons/mail/models/mail_message.py index e1fc850d433..2fab423412b 100644 --- a/addons/mail/models/mail_message.py +++ b/addons/mail/models/mail_message.py @@ -336,11 +336,11 @@ class Message(models.Model): partner_tree = dict((partner[0], partner) for partner in partners_names) # 2. Attachments as SUPERUSER, because could receive msg and attachments for doc uid cannot see - attachments_data = attachments.sudo().read(['id', 'datas_fname', 'name', 'mimetype']) + attachments_data = attachments.sudo().read(['id', 'name', 'mimetype']) safari = request and request.httprequest.user_agent.browser == 'safari' attachments_tree = dict((attachment['id'], { 'id': attachment['id'], - 'filename': attachment['datas_fname'], + 'filename': attachment['name'], 'name': attachment['name'], 'mimetype': 'application/octet-stream' if safari and attachment['mimetype'] and 'video' in attachment['mimetype'] else attachment['mimetype'], }) for attachment in attachments_data) @@ -1035,7 +1035,6 @@ class Message(models.Model): attachment = Attachments.create({ 'name': name, 'datas': match.group(2), - 'datas_fname': name, 'res_model': values.get('model'), 'res_id': values.get('res_id'), }) diff --git a/addons/mail/models/mail_template.py b/addons/mail/models/mail_template.py index 0ced62009dd..c2f601003d7 100644 --- a/addons/mail/models/mail_template.py +++ b/addons/mail/models/mail_template.py @@ -549,7 +549,6 @@ class MailTemplate(models.Model): for attachment in attachments: attachment_data = { 'name': attachment[0], - 'datas_fname': attachment[0], 'datas': attachment[1], 'type': 'binary', 'res_model': 'mail.message', diff --git a/addons/mail/models/mail_thread.py b/addons/mail/models/mail_thread.py index 17d6941377b..e419c5430b8 100644 --- a/addons/mail/models/mail_thread.py +++ b/addons/mail/models/mail_thread.py @@ -1633,7 +1633,6 @@ class MailThread(models.AbstractModel): 'name': name, 'datas': base64.b64encode(content), 'type': 'binary', - 'datas_fname': name, 'description': name, 'res_model': model, 'res_id': res_id, diff --git a/addons/mail/static/src/js/attachment_box.js b/addons/mail/static/src/js/attachment_box.js index f58c64f26e7..cc5d53ee1c0 100644 --- a/addons/mail/static/src/js/attachment_box.js +++ b/addons/mail/static/src/js/attachment_box.js @@ -36,7 +36,7 @@ var AttachmentBox = Widget.extend({ _.each(attachments, function (attachment) { // required for compatibility with the chatter templates. attachment.url = '/web/content/' + attachment.id + '?download=true'; - attachment.filename = attachment.datas_fname || 'unnamed'; + attachment.filename = attachment.name || 'unnamed'; }); var sortedAttachments = _.partition(attachments, function (att) { return att.mimetype && att.mimetype.split('/')[0] === 'image'; diff --git a/addons/mail/static/src/js/chatter.js b/addons/mail/static/src/js/chatter.js index 6cd159c5ad3..f81bcb2d0e2 100644 --- a/addons/mail/static/src/js/chatter.js +++ b/addons/mail/static/src/js/chatter.js @@ -258,7 +258,7 @@ var Chatter = Widget.extend({ model: 'ir.attachment', method: 'search_read', domain: domain, - fields: ['id', 'name', 'datas_fname', 'mimetype'], + fields: ['id', 'name', 'mimetype'], }).then(function (result) { self._areAttachmentsLoaded = true; self.attachments = result; diff --git a/addons/mail/static/tests/chatter_tests.js b/addons/mail/static/tests/chatter_tests.js index 82772d5f3a1..91b9a28661e 100644 --- a/addons/mail/static/tests/chatter_tests.js +++ b/addons/mail/static/tests/chatter_tests.js @@ -170,15 +170,14 @@ QUnit.module('Chatter', { url:{type:'char', string:'url'}, type:{ type:'selection', selection:[['url',"URL"],['binary',"BINARY"]]}, mimetype:{type:'char', string:"mimetype"}, - datas_fname:{type:'char', string:"filename"}, }, records:[ - {id:1, name:"name1", type:'url', mimetype:'image/png', datas_fname:'filename.jpg', + {id:1, type:'url', mimetype:'image/png', name:'filename.jpg', res_id: 7, res_model: 'partner'}, - {id:2, name:"name2", type:'binary', mimetype:"application/x-msdos-program", - datas_fname:"file2.txt", res_id: 7, res_model: 'partner'}, - {id:3, name:"name2", type:'binary', mimetype:"application/x-msdos-program", - datas_fname:"file2.txt", res_id: 5, res_model: 'partner'}, + {id:2, type:'binary', mimetype:"application/x-msdos-program", + name:"file2.txt", res_id: 7, res_model: 'partner'}, + {id:3, type:'binary', mimetype:"application/x-msdos-program", + name:"file3.txt", res_id: 5, res_model: 'partner'}, ], }, }; @@ -321,10 +320,9 @@ QUnit.test('Activity Done by uploading a file', async function (assert) { $(window).trigger(fileuploadID, [{ id:3, - name:"name2", type:'binary', mimetype:"application/x-msdos-program", - datas_fname:"file2.txt", + name:"file2.txt", res_id: 5, res_model: 'partner' }]); @@ -438,12 +436,12 @@ QUnit.test('attachmentBox basic rendering', async function (assert) { assert.hasAttrValue($resIdInput, 'value', '7'); assert.hasAttrValue($resIdInput, 'type', 'hidden'); - assert.strictEqual(form.$('.o_attachment_title').text(), 'name1', + assert.strictEqual(form.$('.o_attachment_title').text(), 'filename.jpg', "the image name should be correct"); // since there are two elements "Download name2"; one "name" and the other "txt" as text content, the following test // asserts both at the same time. - assert.strictEqual(form.$('a[title = "Download name2"]').text().trim(), 'name2txt', - "the attachment name should be correct"); + assert.strictEqual(form.$('a[title = "Download file2.txt"]').text().trim(), 'file2.txttxt', + "the attachment name and the extension display should be correct"); assert.ok(form.$('.o_attachment_image').css('background-image').indexOf('/web/image/1/160x160/?crop=true') >= 0, "the attachment image URL should be correct"); assert.hasAttrValue(form.$('.o_attachment_download').eq(0), 'href', '/web/content/1?download=true', diff --git a/addons/mail/static/tests/document_viewer_tests.js b/addons/mail/static/tests/document_viewer_tests.js index b5748ab72ee..404a6f267aa 100644 --- a/addons/mail/static/tests/document_viewer_tests.js +++ b/addons/mail/static/tests/document_viewer_tests.js @@ -65,12 +65,12 @@ var createViewer = function (params) { QUnit.module('DocumentViewer', { beforeEach: function () { this.attachments = [ - {id: 1, datas_fname: 'filePdf.pdf', type: 'binary', mimetype: 'application/pdf', datas:'R0lGOP////ywAADs='}, - {id: 2, name: 'urlYoutubeName', type: 'url', mimetype: '', url: 'https://youtu.be/FYqW0Gdwbzk', datas_fname: 'urlYoutube'}, - {id: 3, name: 'urlGoogle', type: 'url', mimetype: '', url: 'https://www.google.com', datas_fname: 'urlRandom'}, - {id: 4, name: 'text.html', datas_fname: 'text.html', type: 'binary', mimetype: 'text/html', datas:'testee'}, - {id: 5, name: 'video.mp4', datas_fname: 'video.mp4', type: 'binary', mimetype: 'video/mp4', datas:'R0lDOP////ywAADs='}, - {id: 6, name: 'image.jpg', datas_fname: 'image.jpg', type: 'binary', mimetype: 'image/jpeg', checksum: 999, datas:'R0lVOP////ywAADs='}, + {id: 1, name: 'filePdf.pdf', type: 'binary', mimetype: 'application/pdf', datas:'R0lGOP////ywAADs='}, + {id: 2, name: 'urlYoutube', type: 'url', mimetype: '', url: 'https://youtu.be/FYqW0Gdwbzk'}, + {id: 3, name: 'urlRandom', type: 'url', mimetype: '', url: 'https://www.google.com'}, + {id: 4, name: 'text.html', type: 'binary', mimetype: 'text/html', datas:'testee'}, + {id: 5, name: 'video.mp4', type: 'binary', mimetype: 'video/mp4', datas:'R0lDOP////ywAADs='}, + {id: 6, name: 'image.jpg', type: 'binary', mimetype: 'image/jpeg', checksum: 999, datas:'R0lVOP////ywAADs='}, ]; }, }, function () { @@ -116,7 +116,7 @@ QUnit.module('DocumentViewer', { }, }); - assert.strictEqual(viewer.$(".o_image_caption:contains('urlYoutubeName')").length, 1, + assert.strictEqual(viewer.$(".o_image_caption:contains('urlYoutube')").length, 1, "the viewer should be on the right attachment"); assert.containsOnce(viewer, '.o_viewer_text[data-src="' + youtubeURL + '"]', "there should be a video player"); diff --git a/addons/mail/views/mail_message_views.xml b/addons/mail/views/mail_message_views.xml index df7643f7f36..b7ae76d8272 100644 --- a/addons/mail/views/mail_message_views.xml +++ b/addons/mail/views/mail_message_views.xml @@ -139,7 +139,6 @@ <field name="id"/> <field name="mimetype"/> <field name="type"/> - <field name="datas_fname"/> <field name="create_uid"/> <field name="url"/> <field name="type"/> @@ -159,13 +158,8 @@ </div> <div class="o_kanban_details"> <div class="o_kanban_details_wrapper"> - <div t-att-title="record.datas_fname.raw_value" class="o_kanban_record_title"> - <t t-if="record.type.raw_value == 'url'"> - <field name="name" class="o_text_overflow"/> - </t> - <t t-else=""> - <field name="datas_fname" class="o_text_overflow"/> - </t> + <div t-att-title="record.name.raw_value" class="o_kanban_record_title"> + <field name="name" class="o_text_overflow"/> </div> <div class="o_kanban_record_body"> <t t-if="record.type.raw_value == 'url'"> diff --git a/addons/mail/wizard/mail_compose_message.py b/addons/mail/wizard/mail_compose_message.py index 1d54406b086..ba65f787257 100644 --- a/addons/mail/wizard/mail_compose_message.py +++ b/addons/mail/wizard/mail_compose_message.py @@ -415,7 +415,6 @@ class MailComposer(models.TransientModel): data_attach = { 'name': attach_fname, 'datas': attach_datas, - 'datas_fname': attach_fname, 'res_model': 'mail.compose.message', 'res_id': 0, 'type': 'binary', # override default_type from context, possibly meant for another model! |
