Openobject-fts — полно-текстный поиск.

Openobject-fts — полнотекстовый поиск. Для поиска по почте и по задачам нужно поставить fts_mail и fts_project.

Каждые 10 минут обновляется индекс. Поиск работает, но при нажатии на результат:
например письмо, должно открыться, но в место этого, окно с ошибкой.

Это на 7 версии.

Client Traceback (most recent call last):
  File "/usr/share/pyshared/openerp/addons/web/http.py", line 204, in dispatch
    response["result"] = method(self, **self.params)
TypeError: call_kw() takes exactly 6 arguments (5 given)

На 8.0 там другая, ругается на Dict

На github'е поправил для 7 и 8 версии всё работает.
github.com/straga/odoo-addon_fts

Etherpad - принудительное декодирование для текста.

Openerp7/Odoo

Если установить Etherpad и подключить к OpenERP, те записи, что есть в Note конвертируются в виде вопросов. Хотя новые будут создаваться нормально.

addons/pad/py_etherpad/__init__.py

В файле __init__.py функция Call

выглядит вот так.


        params = arguments or {}
        params.update({'apikey': self.apiKey})
        data = urllib.urlencode(params, True)


Добавил принудительное декодирование для параметр текста, если он передаётся. При передачи параметра Etherpad-api xthtp url — теряется кодировка в urlencode.


        params = arguments or {}
        params.update({'apikey': self.apiKey})

        try:
             text_u = params.get('text')
             params.update({'text': text_u.encode('utf-8')})

        except:
             text_u = None

        data = urllib.urlencode(params, True)


После таких манипуляций работает все как надо.

Виджет КЛАДР (ФИАС)

Привет, сообщество Odoo!

Последнее время внимательно присматриваемся к форуму. Видим, что не все готовы делиться своими разработками. Что ж. Наша компания верит в свободные технологии. Посему начинаем цикл небольших статей о том, что удалось.

Сразу предупреждаем, большинство публикуемых модулей писались под конкретные проекты и применялись в альфа 8ой версии. Поэтому сильно на код не ругайтесь, а лучше давайте вместе работать над OpenERP… в смысле Odoo!

Первый пост — о модуле КЛАДР, одной из самых обсуждаемых плюшек среди тайных поклонников 1С будущих пользователей корпоративной системы. Наши заказчики, по крайней мере, требуют её в обязательном порядке. Может, и вам пригодится.

Что такое модуль КЛАДР и с чем его едят
Ключевая цель модуля — облегчить ввод и снизить количество ошибок при заполнении адресов за счёт автоматизации. Автоматические подсказки и автоматическая подстановка, однако, невозможны без надёжного классификатора. Требования же по актуальности делают прямой импорт в Odoo неразумным. Выход из ситуации — внешний API. Тем более, что добрые люди предлагают такой сервис абсолютно бесплатно. Он и был взят за основу.

Для использования API созданы виджеты (папка web_kladr_widget):
  • Регион
    kladr_region
  • Город
    kladr_city
  • Район
    kladr_district
  • Улица
    kladr_street
  • Дом
    kladr_house
  • Индекс
    kladr_zip

Для правильной работы виджетов, были переделаны классы, в которых встречаются адреса (res_partner — папка partner_kladr_address; crm_lead — папка kladr_crm):
  • Добавлены поля:
    Район
    district
    Дом
    house
    Квартира/офис
    office
  • Добавлено поле регион типа char
    state_id_kladr
    Здесь нужно быть внимательным, т. к. на стандарном поле state типа many2one виджет работать не будет
  • Дополнительно добавлены юридический и почтовые адреса (по аналогии с основным адресом)
  • Все адреса генерятся функциями в строку

Отображения также были изменены:
  • Спрятана вторая улица и стандартный регион. Так что, для применения к действующей базе, данные придётся переносить отдельно
  • Поля расположены в порядке, удобном для заполнения с автоматическими подсказками
  • Адрес заключен в контейнер класса
    kladr_address
    для тех случаев, когда на форме несколько однотипных виджетов
В итоге получаем такой вид:
Отображение адреса в КЛАДР

Как видно, первым заполняется город, который подставляет район/область (кроме городов федерального значения). По улицам и домам добавляются подсказки, а при их использовании автоматически появляется индекс.
Пример формирования подсказки

Модули доступны на GitHub

P.S. По последнему скриншоту (2 строка подсказки) можно судить об актуальности базы=)

Новости сообщества

Добрый день, друзья!

В связи с переименованием OpenERP в Odoo я сменил логотип и адрес сайта сообщества, изменился и адрес официального репозитория сообщества.

http://www.odoo-russia.ru — сайт русскоязычного сообщества Odoo
http://github.com/tterp/odoo-russia — репозиторий с исходными кодами разработок русскоязычного сообщества Odoo

Со старых адресов установлены автоматические редиректы на новые.

На форуме добавлен новый раздел Заказы на доработку, установку, настройку Odoo, все ваши потребности в разработчиках и выполнении ваших проектов пожалуйста пишите туда.

Также из нововведений — передвинул ссылку Форум в главном меню сайта на самое первое место и сделал ее жирной, т.к. многие жаловались что не знают о форуме, потому что в меню справа его не было хорошо заметно.

Если кого-то из разработчиков интересует связка Odoo с торговым оборудованием, сегодня компания Манускрипт Солюшнс из Тулы ms71.ru любезно предоставила мне свободные исходники веб-драйверов для ККМ Атол и Штрих-М, они находятся тут: github.com/tterp/odoo-russia/tree/7.0/pos_webdrivers и распространяются по лицензии GPL. Пожалуйста, присылайте свои Pull Request'ы с разработками на основе этих драйверов в тот же репозиторий, а также предлагайте Pull Request'ы со своими разработками по другим вопросам, связанным с Odoo!

Также пожалуйста, делитесь ссылками на свои доработки к Odoo в этом форуме: www.odoo-russia.ru/forum/openerp-develop-exchange/

У кого еще какие пожелания может есть? Что-то все затихли в последнее время…

OpenERP + skype

Написал небольшой модуль, который добавляет поле skype в карточку контакта. При нажатии сразу открывает чат в скайпе.

Посмотреть код:
http://bazaar.launchpad.net/~yelizariev/+junk/openerp-addons-yelizariev/files/head:/res_partner_skype/

Получить из репозитория:
bzr branch lp:~yelizariev/+junk/openerp-addons-yelizariev

OpenERP стихами Чуковского К.И.

Привет всем!
Представляю Вашему вниманию решение нашу разработку по интеграции OpenERP и Asterisk в довольно необычной форме.

Функционал представляет:
Всплывающие уведомления при входящих звонках.
Звонок из правочника парнеров.
Интеграция со справочником партнёров. (При входящем звонке Asterisk определяет номер и OpenERP просматривает текущий справочник партнеров по номеру абонента)
Журнал звонков с записью разговоров
Интеграция с продажами и CRM

Буду раз ответить на все ваши вопросы.

Установка домена для поля 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();

Фискальный аппарат (ККМ) на OpenERP

Здравствуйте!

Столкнулся с такой проблемой: необходимо «поженить» фискальный аппарат с OpenERP.

Существует проект по подключению «чекового принтера» к OpenERP www.indiegogo.com/projects/opensource-your-shop — проект планируют запустить в январе 14 года. Проект реализуется на основе «железа» (небольшое коммуникационное устройство — называемое PosBOX) и «чекового принтера» с Epson-овским протоколом обмена данными ESC/Pos.

В нашей стране «чековый принтер» можно использовать в организациях работающих на ЕНВД, без упрощенки (а-ля сеть «Пятерочка»). К сожалению в других видах деятельности без ККМ или Фискальника работать нельзя.

Был бы очень признателен, если кто-нибудь поделился своим опытом по подключению Фискального регистратора к OpenERP.