forked from Mapan/odoo17e
43 lines
1.7 KiB
Python
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)
|