You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
64 lines
2.8 KiB
64 lines
2.8 KiB
# -*- coding: utf-8 -*-
|
|
#############################################################################
|
|
#
|
|
# Cybrosys Technologies Pvt. Ltd.
|
|
#
|
|
# Copyright (C) 2024-TODAY Cybrosys Technologies(<https://www.cybrosys.com>)
|
|
# Author: Ammu Raj (<https://www.cybrosys.com>)
|
|
#
|
|
# You can modify it under the terms of the GNU AFFERO
|
|
# GENERAL PUBLIC LICENSE (AGPL v3), Version 3.
|
|
#
|
|
# 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 (AGPL v3) for more details.
|
|
#
|
|
# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
|
|
# (AGPL v3) along with this program.
|
|
# If not, see <http://www.gnu.org/licenses/>.
|
|
#
|
|
#############################################################################
|
|
from odoo import api, models
|
|
|
|
|
|
class UploadMultiDocuments(models.Model):
|
|
""" This class handles the creation of attachments for multiple
|
|
documents uploaded at once.
|
|
Class: UploadMultiDocuments(models.Model)
|
|
Attributes:
|
|
- _name: A string representing the name of the model.
|
|
Methods:
|
|
- document_file_create(value, name, selected_ids, model): A method that creates an
|
|
'ir.attachment' record for each selected ID with the given name, data, res_model,
|
|
and res_id attributes. The 'value' argument represents the uploaded file data, 'name'
|
|
represents the file name, 'selected_ids' is a list of IDs for the records to which the
|
|
attachments will be attached, and 'model' is the model to which the attachments will
|
|
be attached. """
|
|
_name = "upload.multi.documents"
|
|
_description = "Upload Multiple Documents"
|
|
|
|
@api.model
|
|
def document_file_create(self, value, name, selected_ids, model):
|
|
"""
|
|
This method creates an 'ir.attachment' record for each selected ID with
|
|
the given name, data, res_model, and res_id attributes.
|
|
Method: document_file_create(value, name, selected_ids, model)
|
|
Arguments:
|
|
- value: A string representing the uploaded file data, encoded in base64 format.
|
|
- name: A string representing the file name.
|
|
- selected_ids: A list of integers representing the IDs for the records to
|
|
which the attachments will be attached.
|
|
- model: A string representing the model to which the attachments will be attached.
|
|
Returns: None
|
|
"""
|
|
if selected_ids:
|
|
data = value.split('base64')[1] if value else False
|
|
for rec_id in selected_ids:
|
|
self.env['ir.attachment'].create({
|
|
'name': name,
|
|
'datas': data,
|
|
'res_model': model,
|
|
'res_id': rec_id,
|
|
})
|
|
return True
|
|
|