+0.20
Рейтинг

Борьба с "мусорными" вложениями в Odoo

По умолчанию Odoo добавляет все файлы, которые приходят вместе с сообщением, в качестве вложения к записи.

В результате часто случается ситуация, когда в меню «Вложения» скапливается куча «мусора» (логотипы, иконки, баннеры итп), среди которой есть два-три действительно нужных файла.
Лично для меня это особенно актуально, т.к. многие корпоративные клиенты любят добавить свой логотип с набор иконок соцсетей до кучи, и потом приходится выискивать чертежи или сканы писем среди десятков «logo00102.jpg», «image1212.png» и иже с ними.

В конечном итоге данная ситуация изрядно достала и привела к написанию вот этого модуля:
apps.odoo.com/apps/modules/11.0/cx_attachment_blacklist/

Функционала бесплатной версии имно более чем достаточно, в качестве «пряника» для платной версии сделана фишка, когда вложения показываются в меню «Вложения» только один раз (привет любителям слать одни и те же файлы по 10 раз)))

Просмотр отчётов и вложений в формате pdf в браузере

По умолчанию Оду при печати отчёта или открытие вложения в формате pdf сохраняет его на диск.
Вместе с тем, современные браузеры позволяют просматривать pdf прямо в окне браузера.

Для того, чтобы смотреть вложения прямо в браузере, используйте специальные бесплатные модули Оду, например:
apps.odoo.com/apps/modules/10.0/web_pdf_preview/ (версии 8 и 10)
apps.odoo.com/apps/modules/11.0/prt_report_attachment_preview/ (версия 11)

Наследование sale.order в Odoo 8

Имеется Odoo (OpenERP) 8.
Нужно добавить поле в sale.order

Вот так:
from openerp import models, fields

class SomeClass(models.Model):
    _inherit = 'sale.order'

    description = fields.Char(default="Some text")


На что odoo ругается следующим образом:


<ERROR sandbox werkzeug: Error on request:

Установка домена для поля many2one

Есть объект «Телефонный звонок».
Есть два поля-списка: «Партнёры» и «Телефонные номера».
«Партнёры» относятся к «Телефонные номера» как one2many (у одного Партнёра может быть n-ное количество Телефонных номеров).
Задача: необходимо, чтобы при выборе Партнёра из списка «Партнёры», в списке «Телефонные номера» отображались только телефонные номера, принадлежащие данному Партнёру. Понимаю, что это возможно выкрутить, но как именно — так и не понял.
P.S. Пока удалось сделать только обратное: при выборе Телефонного номера в списке «Телефонные номера» устанавливается домен для списка «Партнёры», код ниже:

from openerp.osv import fields, osv

class crm_phonecall(osv.osv):

    _inherit = "crm.phonecall"

    _columns = {
        'phonenumber': fields.many2one('phonenumber.phonenumber', 'Phone number', required=True, ondelete='cascade'),

    } 

# Update partner's domain. Leave the only partner that owns selected phonenumber

    def onchange_phonenumber(self, cr, uid, ids, ph_selected):
	if ph_selected > 0:
	    record=self.pool.get('phonenumber.phonenumber').browse(cr, uid, ph_selected, context=None)
	    return {'value': {'partner_id': None},'domain': {'partner_id': [('id','=',record.partner_id.id)]}}  
        return {'value': {'partner_id': None},'domain': {'partner_id':''}} 
 
crm_phonecall();