Привет там коллег программистовOdoo 8 Выбор продукта и Variant в отдельно полях с целью продаж
в Odoo 8 в product.py я вижу метод name_search объединяющее название продукта и вариант, как название продукта. Однако у меня есть сотни атрибутов для моего продукта.
Высота: 500мм, 505мм, 3000мм ...
Ширина: 500мм, 505мм, 4000мм ...
Так что делает невозможным поиск требуемого типа Variant
Так что мне нужно первое выберите продукт, Затем Высота атрибута, Затем Ширина атрибут
В теории мне нужно переопределить метод Поиск
удалить вариант в названии продукта
создать метод поиска, чтобы выбрать первый атрибут
создать еще один метод поиска, чтобы выбрать второй атрибут
то ему необходимо вернуть название товара + att1 + att2 в основной поисковой метод
Может ли кто-нибудь указать мне правильное направление?
My Model класс product_product (models.Model):
_inherit = 'product.product'
Этот фильтр поиска продукции по выбранной категории продукта
def search(self, cr, uid, args, offset=0, limit=None, order=None, context=None, count=False):
if context is None:
context = {}
if context.get('material_id'):
productobj = self.pool.get('product.product').read(cr, uid, context['material_id'],['materialoptions_id'])
args = [('categ_id','=',productobj['materialoptions_id'][0])] + args
return super(product_product, self).search(cr, uid, args, offset, limit, order, context=context, count=count)
И здесь я хочу Sperate продукт и его атрибуты
НЕ ДОЛЖЕН ЗНАТЬ, ЧТО ДОЛЖНО НАЧНЕТСЯ БЕЗ РАЗВИТИЯ ПРОДУКТА.PY NA ME_SEARCH
продукт.ру
Защиту name_get (не сам, кр, пользователь, идентификаторы, контекст = None): , если контекст не None: контекст = {} , если isinstance (идентификаторы, (Int, длинные)): DS = [IDS ] если не LEN (идентификаторы): вернуться []
def _name_get(d):
name = d.get('name','')
code = context.get('display_default_code', True) and d.get('default_code',False) or False
if code:
name = '[%s] %s' % (code,name)
return (d['id'], name)
partner_id = context.get('partner_id', False)
if partner_id:
partner_ids = [partner_id, self.pool['res.partner'].browse(cr, user, partner_id, context=context).commercial_partner_id.id]
else:
partner_ids = []
# all user don't have access to seller and partner
# check access and use superuser
self.check_access_rights(cr, user, "read")
self.check_access_rule(cr, user, ids, "read", context=context)
result = []
for product in self.browse(cr, SUPERUSER_ID, ids, context=context):
variant = ", ".join([v.name for v in product.attribute_value_ids])
name = variant and "%s (%s)" % (product.name, variant) or product.name
sellers = []
if partner_ids:
sellers = filter(lambda x: x.name.id in partner_ids, product.seller_ids)
if sellers:
for s in sellers:
seller_variant = s.product_name and (
variant and "%s (%s)" % (s.product_name, variant) or s.product_name
) or False
mydict = {
'id': product.id,
'name': seller_variant or name,
'default_code': s.product_code or product.default_code,
}
result.append(_name_get(mydict))
else:
mydict = {
'id': product.id,
'name': name,
'default_code': product.default_code,
}
result.append(_name_get(mydict))
return result
Я рассмотрел создания своих собственных полей атрибутов ... а не борется с этим методом поиска. но существующая функция атрибута - это то, что мне нужно. В том смысле, что его связанный с ним собственный Билль материалов. Пожалуйста, пожалуйста, помогите мне :) готовы отправить деньги за код haha –