国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

odoo打包下載

JohnLui / 2049人閱讀

摘要:視圖中下載按鈕的編輯附件打包下載中獲取需要下載的文件的,并返回字符串集合打包下載的方法中的打包下載引用和方法,如下代碼

view 視圖中下載按鈕的編輯
    
        附件打包下載
        
        
        code
        
            if records:
                action = {
                    "name": "Visit Webpage",
                    "type": "ir.actions.act_url",
                    "url": "/document/zip/"+str(records.download_zip()),
                    "target": "self",
                }
        
    
model 中獲取需要下載的文件的ID,并返回字符串集合 打包下載的方法
@api.multi
def download_zip(self):
    dones = self.env["ir.attachment"].search([("res_model", "=", "activity.event"), ("res_id", "=", self.id)])
    file_ids = ""
    for x in dones:
        file_ids = file_ids + str(x.id) + ","
    print(file_ids)
    return {
        file_ids
    }
controller.py中的打包下載引用和方法,如下代碼
# -*- coding: utf-8 -*-
import base64
import io
import jinja2
import json
import logging
import os
import sys
import zipfile
import time

import werkzeug
import werkzeug.exceptions
import werkzeug.utils
import werkzeug.wrappers
import werkzeug.wsgi
from odoo import http
from odoo.http import content_disposition, dispatch_rpc, request, 
    serialize_exception as _serialize_exception, Response
from odoo.exceptions import AccessError, UserError, AccessDenied
from odoo.models import check_method_name
from odoo.service import db, security

_logger = logging.getLogger(__name__)

if hasattr(sys, "frozen"):
    # When running on compiled windows binary, we don"t have access to package loader.
    path = os.path.realpath(os.path.join(os.path.dirname(__file__), "..", "views"))
    loader = jinja2.FileSystemLoader(path)
else:
    loader = jinja2.PackageLoader("odoo.addons.web", "views")

env = jinja2.Environment(loader=loader, autoescape=True)
env.filters["json"] = json.dumps

# 1 week cache for asset bundles as advised by Google Page Speed
BUNDLE_MAXAGE = 60 * 60 * 24 * 7

DBNAME_PATTERN = "^[a-zA-Z0-9][a-zA-Z0-9_.-]+$"

#----------------------------------------------------------
# Odoo Web helpers
#----------------------------------------------------------

db_list = http.db_list

db_monodb = http.db_monodb

class DownloadAll(http.Controller):

    def _get_file_response(self, id, filename=None, field="datas", share_id=None, share_token=None):
        """
        returns the http response to download one file.

        """
        status, headers, content = request.registry["ir.http"].binary_content(
            id=id, field=field, filename=filename, related_id=share_id,
            access_token=share_token, access_mode="documents_share", download=True)

        if status == 304:
            response = werkzeug.wrappers.Response(status=status, headers=headers)
        elif status == 301:
            return werkzeug.utils.redirect(content, code=301)
        elif status != 200:
            response = request.not_found()
        else:
            content_base64 = base64.b64decode(content)
            headers.append(("Content-Length", len(content_base64)))
            response = request.make_response(content_base64, headers)

        return response

    def _make_zip(self, name, attachments):
        """returns zip files for the Document Inspector and the portal.

        :param name: the name to give to the zip file.
        :param attachments: files (ir.attachment) to be zipped.
        :return: a http response to download a zip file.
        """
        stream = io.BytesIO()
        try:
            with zipfile.ZipFile(stream, "w") as doc_zip:
                for attachment in attachments:
                    if attachment.type in ["url", "empty"]:
                        continue
                    filename = attachment.datas_fname
                    doc_zip.writestr(filename, base64.b64decode(attachment["datas"]),
                                     compress_type=zipfile.ZIP_DEFLATED)
        except zipfile.BadZipfile:
            _logger.exception("BadZipfile exception")

        content = stream.getvalue()
        headers = [
            ("Content-Type", "zip"),
            ("X-Content-Type-Options", "nosniff"),
            ("Content-Length", len(content)),
            ("Content-Disposition", content_disposition(name))
        ]
        return request.make_response(content, headers)

    @http.route(["/document/zip/"], type="http", auth="public")
    def _get_zip(self, file_ids=None, *args, **kwargs):
        """route to get the zip file of the selection in the document"s Kanban view (Document inspector).
        :param file_ids: if of the files to zip.
        :param zip_name: name of the zip file.
        """
        file_ids = file_ids[2:-3]
        print(file_ids)
        timestamp = time.strftime("%Y%m%d%H%M%S",time.localtime(time.time()))
        zip_name = "activity-" + timestamp + ".zip"
        ids_list = [int(x) for x in file_ids.split(",")]
        print(ids_list)
        env = request.env
        return self._make_zip(zip_name, env["ir.attachment"].browse(ids_list))

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/43329.html

相關文章

  • Odoo 中添加自定義頁面

    摘要:一般情況下都是在中繼承后在其末尾添加相關資源路徑除了資源需要引入外,我們編寫的頁面模板也許要引入,打開并在底部添加我們的自定義頁面文件大功告成,一個最簡單的自定義頁面已經完成了,安裝模塊然后運行看看效果吧。 前些天群里的小伙伴問了些關于在 Odoo 管理后臺自定義頁面和 Widget 的問題,那我就來寫一篇簡短的內容,教大家如何創建自定義頁面并引用第三方庫。如果大家有看我之前寫的基礎教...

    Jackwoo 評論0 收藏0
  • Odoo 基礎教程系列」第一篇——環境準備

    摘要:安裝好后,在中執行查看版本信息,應該會看到輸出如下信息版本號可能會不同如果提示未找到,則需要手動將用戶基礎目錄下的添加到中。相關文章基礎教程系列第篇開天坑啦 showImg(https://segmentfault.com/img/bV4GZu?w=1262&h=911); 之前說好的 「Odoo 基礎教程系列」終于來了(撒花)~剛過完年重新投入到工作中,一下子事情有點多都要忙不過來了...

    szysky 評論0 收藏0
  • Odoo 中生成唯一不重復的序列號

    摘要:最近在做的項目中有一個需求是要讓某個字段值根據記錄產生的日期和一定的組合規則按順序生成一個序列號,這個序列號不可重復,這原本是一個很常見的需求,沒有多想就寫好了。 showImg(https://segmentfault.com/img/remote/1460000013229918?w=1000&h=667); 最近在做的項目中有一個需求是要讓某個字段值根據記錄產生的日期和一定的組合...

    wujl596 評論0 收藏0
  • Odoo 基礎教程系列」第二篇——從 Todo 應用開始(1)

    摘要:雖然這是個很簡單的應用,但是希望大家可以動手一起操作,從最簡單的開始上手學習如何使用這個框架。則是在和之間,負責響應用戶操作,從中獲取數據進行處理并返回到中。 showImg(https://segmentfault.com/img/bV66tE?w=728&h=410); 在第一篇教程發布之后差不多一個月的今天,終于完成了第二篇內容,這個發布周期拖得實在是有點太長了,我都覺得不好意思...

    UCloud 評論0 收藏0
  • 搶灘中小企業云市場卡位戰,SAP 、Odoo等國外巨頭誰能勝出

    摘要:年月日,在中國新年前夕,發布了中國加速計劃,計劃在未來五年,持續加大對中國中小企業市場的投入。一向以高端市場為傲的成為中國中小企業市場的闖局者。2019年1月31日,在中國新年前夕,SAP發布了中國加速計劃,計劃在未來五年,持續加大對中國中小企業市場的投入。一向以高端市場為傲的SAP成為中國中小企業市場的闖局者。無獨有偶。Oracle此前的定位主要是企業級高端市場,但云計算給Oracle進入...

    MorePainMoreGain 評論0 收藏0

發表評論

0條評論

JohnLui

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<