1
0
forked from Mapan/odoo17e
odoo17e-kedaikipas58/addons/documents_project/controllers/documents.py
2024-12-10 09:04:09 +07:00

43 lines
1.7 KiB
Python

# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
import logging
from odoo import http
from odoo.addons.documents.controllers.documents import ShareRoute
from odoo.http import request
logger = logging.getLogger(__name__)
class ProjectShareRoute(ShareRoute):
def _create_uploaded_documents(self, files, share, folder, documents_values=None):
documents_values = documents_values or {}
project = folder._get_project_from_closest_ancestor()
if project:
documents_values.update({
'res_model': 'project.project',
'res_id': project.id,
'tag_ids': project.documents_tag_ids.ids,
})
if project.partner_id and not share.partner_id.id:
documents_values['partner_id'] = project.partner_id.id
return super()._create_uploaded_documents(files, share, folder, documents_values)
@http.route()
def upload_document(self, folder_id, ufile, tag_ids, **kwargs):
if not kwargs.get('res_model') and not kwargs.get('res_id'):
current_folder = request.env['documents.folder'].browse(int(folder_id))
project = current_folder._get_project_from_closest_ancestor()
if project:
kwargs.update({
'res_model': 'project.project',
'res_id': project.id,
})
if project.partner_id:
kwargs['partner_id'] = project.partner_id.id
if not tag_ids:
tag_ids = ','.join(str(tag_id) for tag_id in project.documents_tag_ids.ids)
return super().upload_document(folder_id, ufile, tag_ids, **kwargs)