diff --git a/document_no_unique_filenames/README.rst b/document_no_unique_filenames/README.rst new file mode 100644 index 00000000..23fcec00 --- /dev/null +++ b/document_no_unique_filenames/README.rst @@ -0,0 +1,37 @@ +.. image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg + :alt: License: AGPL-3 +No unique filenames in directories +================================== + +This module drops the uniqueness constraint on filenames within the same directory. This constraint only makes sense if the directories are exported to actual filesystems, which is not the case with the two standard storage options within odoo. + +Bug Tracker +=========== + +Bugs are tracked on `GitHub Issues `_. +In case of trouble, please check there if your issue has already been reported. +If you spotted it first, help us smashing it by providing a detailed and welcomed feedback +`here `_. + +Credits +======= + +Contributors +------------ + +* Holger Brunn + +Maintainer +---------- + +.. image:: https://odoo-community.org/logo.png + :alt: Odoo Community Association + :target: https://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. diff --git a/document_no_unique_filenames/__init__.py b/document_no_unique_filenames/__init__.py new file mode 100644 index 00000000..48f5a694 --- /dev/null +++ b/document_no_unique_filenames/__init__.py @@ -0,0 +1,21 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# OpenERP, Open Source Management Solution +# This module copyright (C) 2015 Therp BV . +# +# 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 . +# +############################################################################## +from . import models diff --git a/document_no_unique_filenames/__openerp__.py b/document_no_unique_filenames/__openerp__.py new file mode 100644 index 00000000..985f63a7 --- /dev/null +++ b/document_no_unique_filenames/__openerp__.py @@ -0,0 +1,37 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# OpenERP, Open Source Management Solution +# This module copyright (C) 2015 Therp BV . +# +# 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": "No unique filenames in directories", + "version": "1.0", + "author": "Therp BV", + "license": "AGPL-3", + "category": "Knowledge Management", + "summary": "Drop the uniquness constraint on filenames for directories", + "depends": [ + 'document', + ], + "auto_install": False, + "installable": True, + "application": False, + "external_dependencies": { + 'python': [], + }, +} diff --git a/document_no_unique_filenames/models/__init__.py b/document_no_unique_filenames/models/__init__.py new file mode 100644 index 00000000..ce46c857 --- /dev/null +++ b/document_no_unique_filenames/models/__init__.py @@ -0,0 +1,21 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# OpenERP, Open Source Management Solution +# This module copyright (C) 2015 Therp BV . +# +# 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 . +# +############################################################################## +from . import ir_attachment diff --git a/document_no_unique_filenames/models/ir_attachment.py b/document_no_unique_filenames/models/ir_attachment.py new file mode 100644 index 00000000..1b429be8 --- /dev/null +++ b/document_no_unique_filenames/models/ir_attachment.py @@ -0,0 +1,37 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# OpenERP, Open Source Management Solution +# This module copyright (C) 2015 Therp BV (). +# +# 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 . +# +############################################################################## +from openerp import models, SUPERUSER_ID + + +class IrAttachment(models.Model): + _inherit = 'ir.attachment' + + def _register_hook(self, cr): + cr.execute( + "select c.id from ir_model_constraint c, ir_model m " + "where c.model=m.id and m.model='ir.attachment' and " + "c.name='ir_attachment_filename_unique'") + # this function does all the magic, but only if we select all + # references to the constraint above, meaning all inheriting + # module that also declare ir.attachment + self.pool['ir.model.constraint']._module_data_uninstall( + cr, SUPERUSER_ID, [i for i, in cr.fetchall()]) + return super(IrAttachment, self)._register_hook(cr) diff --git a/document_no_unique_filenames/static/description/icon.png b/document_no_unique_filenames/static/description/icon.png new file mode 100644 index 00000000..3a0328b5 Binary files /dev/null and b/document_no_unique_filenames/static/description/icon.png differ