Valentin Chemiere
10 years ago
committed by
David Beal
6 changed files with 183 additions and 0 deletions
-
51attachment_metadata/README.rst
-
23attachment_metadata/__init__.py
-
43attachment_metadata/__openerp__.py
-
47attachment_metadata/attachment.py
-
17attachment_metadata/attachment_view.xml
-
2attachment_metadata/security/ir.model.access.csv
@ -0,0 +1,51 @@ |
|||||
|
.. image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg |
||||
|
:alt: License |
||||
|
|
||||
|
Attachment Metadata |
||||
|
====================== |
||||
|
|
||||
|
This module was written to extend the functionality of ir.attachment |
||||
|
|
||||
|
Installation |
||||
|
============ |
||||
|
|
||||
|
Installable without any requirements |
||||
|
|
||||
|
Usage |
||||
|
===== |
||||
|
|
||||
|
THe module just add some field to ir.attachment |
||||
|
|
||||
|
For further information, please visit: |
||||
|
|
||||
|
* https://www.odoo.com/forum/help-1 |
||||
|
|
||||
|
Known issues / Roadmap |
||||
|
====================== |
||||
|
|
||||
|
Credits |
||||
|
======= |
||||
|
|
||||
|
* Joel Grand-Guillaume Camptocamp |
||||
|
* initOS <http://initos.com> |
||||
|
* Valentin CHEMIERE <valentin.chemiere@akretion.com> |
||||
|
|
||||
|
Contributors |
||||
|
------------ |
||||
|
|
||||
|
* Sebastien BEAU <sebastian.beau@akretion.com> |
||||
|
|
||||
|
Maintainer |
||||
|
---------- |
||||
|
|
||||
|
* Valentin CHEMIERE <valentin.chemiere@akretion.com> |
||||
|
|
||||
|
.. image:: http://odoo-community.org/logo.png |
||||
|
:alt: Odoo Community Association |
||||
|
:target: http://odoo-community.org |
||||
|
|
||||
|
This module is maintained by the OCA. |
||||
|
|
||||
|
OCA, or the Odoo Community Association, is a nonprofit organization whose mission is to support the collaborative development of Odoo features and promote its widespread use. |
||||
|
|
||||
|
To contribute to this module, please visit http://odoo-community.org. |
@ -0,0 +1,23 @@ |
|||||
|
# -*- coding: utf-8 -*- |
||||
|
############################################################################### |
||||
|
# |
||||
|
# Module for OpenERP |
||||
|
# Copyright (C) 2015 Akretion (http://www.akretion.com). |
||||
|
# @author Valentin CHEMIERE <valentin.chemiere@akretion.com> |
||||
|
# |
||||
|
# 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 <http://www.gnu.org/licenses/>. |
||||
|
# |
||||
|
############################################################################### |
||||
|
|
||||
|
from . import attachment |
@ -0,0 +1,43 @@ |
|||||
|
# -*- coding: utf-8 -*- |
||||
|
############################################################################### |
||||
|
# |
||||
|
# Module for OpenERP |
||||
|
# Copyright (C) 2015 Akretion (http://www.akretion.com). |
||||
|
# @author Valentin CHEMIERE <valentin.chemiere@akretion.com> |
||||
|
# |
||||
|
# 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 <http://www.gnu.org/licenses/>. |
||||
|
# |
||||
|
############################################################################### |
||||
|
|
||||
|
{'name': 'attachment_metadata', |
||||
|
'version': '0.0.1', |
||||
|
'author': 'Akretion', |
||||
|
'website': 'www.akretion.com', |
||||
|
'license': 'AGPL-3', |
||||
|
'category': 'Generic Modules', |
||||
|
'description': """ |
||||
|
Add some useful field to ir.attachment object like: |
||||
|
internal and external hash for coherence verification |
||||
|
""", |
||||
|
'depends': [ |
||||
|
'base', |
||||
|
'mail' |
||||
|
], |
||||
|
'data': [ |
||||
|
'attachment_view.xml', |
||||
|
'security/ir.model.access.csv', |
||||
|
], |
||||
|
'installable': True, |
||||
|
'application': False, |
||||
|
} |
@ -0,0 +1,47 @@ |
|||||
|
# -*- coding: utf-8 -*- |
||||
|
############################################################################### |
||||
|
# |
||||
|
# Module for OpenERP |
||||
|
# Copyright 2011-2012 Camptocamp SA |
||||
|
# @author: Joel Grand-Guillaume |
||||
|
# Copyright (C) 2015 Akretion (http://www.akretion.com). |
||||
|
# @author Valentin CHEMIERE <valentin.chemiere@akretion.com> |
||||
|
# |
||||
|
# 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 <http://www.gnu.org/licenses/>. |
||||
|
# |
||||
|
############################################################################### |
||||
|
|
||||
|
from openerp import models, fields, api, _ |
||||
|
from openerp.exceptions import Warning |
||||
|
import hashlib |
||||
|
from base64 import b64decode |
||||
|
|
||||
|
|
||||
|
class IrAttachmentMetadata(models.Model): |
||||
|
_name = 'ir.attachment.metadata' |
||||
|
_inherits = {'ir.attachment': 'attachment_id'} |
||||
|
|
||||
|
internal_hash = fields.Char(store=True, compute='_compute_hash') |
||||
|
external_hash = fields.Char() |
||||
|
attachment_id = fields.Many2one('ir.attachment', required=True, |
||||
|
ondelete='cascade') |
||||
|
|
||||
|
@api.depends('datas', 'external_hash') |
||||
|
def _compute_hash(self): |
||||
|
if self.datas: |
||||
|
self.internal_hash = hashlib.md5(b64decode(self.datas)).hexdigest() |
||||
|
if self.external_hash and self.internal_hash != self.external_hash: |
||||
|
raise Warning(_('File corrupted'), |
||||
|
_("Something was wrong with the retreived file, " |
||||
|
"please relaunch the task.")) |
@ -0,0 +1,17 @@ |
|||||
|
<?xml version="1.0" encoding="UTF-8"?> |
||||
|
<openerp> |
||||
|
<data> |
||||
|
|
||||
|
<record id="view_attachment_improved_form" model="ir.ui.view"> |
||||
|
<field name="model">ir.attachment.metadata</field> |
||||
|
<field name="inherit_id" ref="base.view_attachment_form" /> |
||||
|
<field name="arch" type="xml"> |
||||
|
<field name="url" position="after"> |
||||
|
<field name="internal_hash"/> |
||||
|
<field name="external_hash"/> |
||||
|
</field> |
||||
|
</field> |
||||
|
</record> |
||||
|
|
||||
|
</data> |
||||
|
</openerp> |
@ -0,0 +1,2 @@ |
|||||
|
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink |
||||
|
access_attachment_metadata_user,ir.attachment.metadata.user,model_ir_attachment_metadata,base.group_user,1,0,0,0 |
Write
Preview
Loading…
Cancel
Save
Reference in new issue