Exemplo n.º 1
0
    def product(self, product, category='', **kwargs):
        cr, uid, context, pool = request.cr, request.uid, request.context, request.registry
        category_obj = pool['product.public.category']
        template_obj = pool['product.template']

        context.update(active_id=product.id)

        if category:
            category = category_obj.browse(cr, uid, int(category), context=context)

        attrib_list = request.httprequest.args.getlist('attrib')
        attrib_values = [map(int,v.split("-")) for v in attrib_list if v]
        attrib_set = set([v[1] for v in attrib_values])

        keep = QueryURL('/shop/wx/lunch', category=category and category.id, attrib=attrib_list)

        category_ids = category_obj.search(cr, uid, [], context=context)
        category_list = category_obj.name_get(cr, uid, category_ids, context=context)
        category_list = sorted(category_list, key=lambda category: category[1])

        pricelist = get_pricelist()

        from_currency = pool.get('product.price.type')._get_field_currency(cr, uid, 'list_price', context)
        to_currency = pricelist.currency_id
        compute_currency = lambda price: pool['res.currency']._compute(cr, uid, from_currency, to_currency, price, context=context)

        if not context.get('pricelist'):
            context['pricelist'] = int(get_pricelist())
            product = template_obj.browse(cr, 1, int(product), context=context)

        # 获取该产品是否已加入到了购物车
        key_name = {}
        all_car_num = 0
        car_obj = pool.get('qdodoo.wxsite.car')
        car_ids = car_obj.search(cr, SUPERUSER_ID, [('user_id','=',uid)])
        for key_line in car_obj.browse(cr, SUPERUSER_ID, car_ids):
            key_name[key_line.name.id] = u'已添加'
            all_car_num += key_line.number

        # 获取当前公司的名称(根据用户模型获取数据)
        users_obj = pool.get('res.users')
        company_name = users_obj.browse(cr, SUPERUSER_ID, uid).company_id.name

        values = {
            'category': category,
            'pricelist': pricelist,
            'attrib_values': attrib_values,
            'compute_currency': compute_currency,
            'attrib_set': attrib_set,
            'keep': keep,
            'category_list': category_list,
            'main_object': product,
            'product': product,
            'company_name':company_name,
            'all_car_num':all_car_num,
            'key_name':key_name,
        }
        return request.website.render("wxsite.product", values)
Exemplo n.º 2
0
Arquivo: main.py Projeto: 2cadz/odoo
 def event_register(self, event, **post):
     pricelist_id = int(get_pricelist())
     values = {
         'event': event.with_context(pricelist=pricelist_id),
         'main_object': event.with_context(pricelist=pricelist_id),
         'range': range,
     }
     return request.website.render("website_event.event_description_full", values)
Exemplo n.º 3
0
Arquivo: main.py Projeto: osiell/OCB
 def event_register(self, event, **post):
     pricelist_id = int(get_pricelist())
     values = {
         'event': event.with_context(pricelist=pricelist_id),
         'main_object': event.with_context(pricelist=pricelist_id),
         'range': range,
     }
     return request.website.render("website_event.event_description_full",
                                   values)
Exemplo n.º 4
0
 def best_deal_booking(self, best_deal, **post):
     pricelist_id = int(get_pricelist())
     values = {
         'best_deal': best_deal.with_context(pricelist=pricelist_id),
         'main_object': best_deal.with_context(pricelist=pricelist_id),
         'range': range,
     }
     return request.website.render(
         "website_best_deal.best_deal_description_full", values)
Exemplo n.º 5
0
 def get_search_values(self, kw=None):
     def dedictify(value):
         # Order is not guaranteed in a dict. Make it a list of tuples instead
         if type(value) == dict:
             value = [(key, dedictify(value[key])) for key in sorted(value.keys())]
         return value
     attrs = ['chosen_filter_qty', 'form_values', 'sort_order', 'sort_name', 'current_ingredient']
     if kw:
         request.website.dn_shop_set_session('product.template', kw, '/webshop')
     return (' pricelist: %s ' % get_pricelist()) + ' '.join(['%s: %s' % (attr, dedictify(request.session.get(attr))) for attr in attrs]).replace('{', '{{').replace('}', '}}')
    def gokart_event(self, event, **post):
        pricelist_id = int(get_pricelist())
        if request.httprequest.method == 'POST':
            quantity = post.get('quantity', False)
            ticket = event.event_ticket_ids[0]
            order = request.website.sale_get_order(force_create=1)
            order.with_context(event_ticket_id=ticket.id)._cart_update(product_id=ticket.product_id.id, add_qty=quantity)
            order.write({
            'driver_name': post.get('driver_name'),
            'birth_date': post.get('birth_date'),
            'parent_name': post.get('parent_name'),
            'length': post.get('length'),
            'other_info': post.get('other_info')
            })
            return request.redirect("/shop/checkout")

        else:
            values = {
                'event': event.with_context(pricelist=pricelist_id),
                'main_object': event.with_context(pricelist=pricelist_id),
                'range': range,
            }
            return request.render('website_event.event_description_full', values)
Exemplo n.º 7
0
    def tracking_cart(self, category=None , **post):
        """
        站点首页
        """
        # 先校验是否登录
        cr, uid, context, pool = request.cr, request.uid, request.context, request.registry
        # 3代表公开用户,也就是未登录状态
        if uid == 3:
            return self.user_check()
        else:
            category_obj = pool.get('pos.category')
            # 组织数据查询时的条件
            domain = [("sale_ok", "=", True),("available_in_pos","=",True)]
            if category:
                domain += [('pos_categ_id', 'child_of', int(category))]
                category = category_obj.browse(cr, SUPERUSER_ID, int(category), context=context)

            # 获取当前公司的名称(根据用户模型获取数据)
            users_obj = pool.get('res.users')
            company_name = users_obj.browse(cr, SUPERUSER_ID, uid).company_id.name

            # 获取所有的产品模板数据
            template_obj = pool.get('product.template')
            product_ids = template_obj.search(cr, SUPERUSER_ID, domain)
            products = template_obj.browse(cr, SUPERUSER_ID, product_ids, context=context)

            # 获取该产品是否已加入到了购物车
            key_name = {}
            all_car_num = 0
            all_money = 0
            car_obj = pool.get('qdodoo.wxsite.car')
            car_ids = car_obj.search(cr, SUPERUSER_ID, [('user_id','=',uid),('name','in',product_ids)])
            for key_line in car_obj.browse(cr, SUPERUSER_ID, car_ids):
                key_name[key_line.name.id] = key_line.number
                all_car_num += key_line.number
                all_money += key_line.number * key_line.name.lst_price #获取总金额

            category_ids = category_obj.search(cr, SUPERUSER_ID, [('parent_id', '=', False)], context=context)
            categs = category_obj.browse(cr, SUPERUSER_ID, category_ids, context=context)

            keep = QueryURL('/shop/wx/lunch', category=category and int(category))

            if not context.get('pricelist'):
                pricelist = get_pricelist()
                context['pricelist'] = int(pricelist)
            else:
                pricelist = pool.get('product.pricelist').browse(cr, uid, context['pricelist'], context)

            from_currency = pool.get('product.price.type')._get_field_currency(cr, uid, 'list_price', context)
            to_currency = pricelist.currency_id
            compute_currency = lambda price: pool['res.currency']._compute(cr, uid, from_currency, to_currency, price, context=context)
            values={
                'company_name':company_name,
                'products': products,
                'category': category,
                'categories': categs,
                'keep': keep,
                'compute_currency':compute_currency,
                'pricelist': pricelist,
                'key_name':key_name,
                'all_car_num':all_car_num,
                'all_money':all_money,
            }
            return request.website.render("wxsite.products",values)
Exemplo n.º 8
0
    def tracking_cart(self, category=None, **post):
        """
        站点首页
        """
        # 先校验是否登录
        cr, uid, context, pool = request.cr, request.uid, request.context, request.registry
        config_obj = pool.get('pos.config')
        # 如果有桌号
        # 3代表公开用户,也就是未登录状态
        desk_id = post.get('desk_id')
        if desk_id:
            config_id = config_obj.browse(cr, SUPERUSER_ID, int(desk_id))
            company_id = config_id.company_id.id
            return self.user_check(company_id)
        else:
            if uid == 3:
                values = {
                    'company_name':'',
                    'error_text':u'登录失败,请联系系统管理员!!',
                }
                return request.website.render("wxsite.error", values)
            category_obj = pool.get('pos.category')
            # 获取当前公司的名称(根据用户模型获取数据)
            users_obj = pool.get('res.users')
            company_obj = users_obj.browse(cr, SUPERUSER_ID, uid).company_id
            company_name = company_obj.name
            company_id = company_obj.id
            # 组织数据查询时的条件
            domain = [("sale_ok", "=", True),("available_in_pos","=",True),('company_id','=',company_id)]
            # 获取产品的分类
            template_obj = pool.get('product.template')
            product_ids_old = template_obj.search(cr, SUPERUSER_ID, domain)
            products_old = template_obj.browse(cr, SUPERUSER_ID, product_ids_old, context=context)
            product_category = []
            for line in products_old:
                if line.pos_categ_id:
                    product_category.append(line.pos_categ_id.id)
            if category:
                domain += [('pos_categ_id', 'child_of', int(category))]
                category = category_obj.browse(cr, SUPERUSER_ID, int(category), context=context)

            # 获取所有的产品模板数据

            product_ids = template_obj.search(cr, SUPERUSER_ID, domain)
            products = template_obj.browse(cr, SUPERUSER_ID, product_ids, context=context)


            # 获取该产品是否已加入到了购物车
            key_name = {}
            all_car_num = 0
            all_money = 0
            car_obj = pool.get('qdodoo.wxsite.car')
            car_ids = car_obj.search(cr, SUPERUSER_ID, [('user_id','=',uid),('name','in',product_ids)])
            for key_line in car_obj.browse(cr, SUPERUSER_ID, car_ids):
                key_name[key_line.name.id] = key_line.number
                all_car_num += key_line.number
                all_money += key_line.number * key_line.name.lst_price #获取总金额

            category_ids = category_obj.search(cr, SUPERUSER_ID, [('parent_id', '=', False),('id','in',product_category)], order="sequence",context=context)
            categs = category_obj.browse(cr, SUPERUSER_ID, category_ids, context=context)

            keep = QueryURL('/shop/wx/lunch', category=category and int(category))

            if not context.get('pricelist'):
                pricelist = get_pricelist()
                context['pricelist'] = int(pricelist)
            else:
                pricelist = pool.get('product.pricelist').browse(cr, uid, context['pricelist'], context)

            from_currency = pool['res.users'].browse(cr, uid, uid, context=context).company_id.currency_id
            to_currency = pricelist.currency_id
            compute_currency = lambda price: pool['res.currency']._compute(cr, uid, from_currency, to_currency, price, context=context)
            values={
                'company_name':company_name,
                'products': products,
                'category': category,
                'categories': categs,
                'keep': keep,
                'compute_currency':compute_currency,
                'pricelist': pricelist,
                'key_name':key_name,
                'all_car_num':all_car_num,
                'all_money':all_money,
            }
            return request.website.render("wxsite.products",values)
Exemplo n.º 9
0
 def get_pricelist(self):
     return get_pricelist()
Exemplo n.º 10
0
    def _format(self, inner, options, qwebcontext):
        product = qwebcontext.get('product')
        category = ''
        search = ''

        cr, uid, context, pool = qwebcontext.cr, SUPERUSER_ID, qwebcontext.context, self.pool
        category_obj = pool['product.public.category']
        template_obj = pool['product.template']

        context.update(active_id=product.id)

        if category:
            category = category_obj.browse(cr,
                                           uid,
                                           int(category),
                                           context=context)

        # attrib_list = request.httprequest.args.getlist('attrib')
        # attrib_values = [map(int,v.split("-")) for v in attrib_list if v]
        # attrib_set = set([v[1] for v in attrib_values])

        keep = QueryURL('/shop',
                        category=category and category.id,
                        search=search,
                        attrib=[])  #attrib_list

        category_ids = category_obj.search(cr, uid, [], context=context)
        category_list = category_obj.name_get(cr,
                                              uid,
                                              category_ids,
                                              context=context)
        category_list = sorted(category_list, key=lambda category: category[1])

        pricelist = get_pricelist()

        from_currency = pool.get('product.price.type')._get_field_currency(
            cr, uid, 'list_price', context)
        to_currency = pricelist.currency_id
        compute_currency = lambda price: pool['res.currency']._compute(
            cr, uid, from_currency, to_currency, price, context=context)

        if not request.context.get('pricelist'):
            request.context['pricelist'] = int(get_pricelist())
        product = template_obj.browse(cr, uid, int(product), context=context)

        values = {
            'search': search,
            'category': category,
            'pricelist': pricelist,
            'attrib_values': [],  #attrib_values,
            'compute_currency': compute_currency,
            'attrib_set': set(),  #attrib_set,
            'keep': keep,
            'category_list': category_list,
            'main_object': product,
            'product': product,
            'get_attribute_value_ids': self.get_attribute_value_ids
        }
        qwebcontext.update(values)

        html = pool["ir.qweb"].render_node(inner, qwebcontext).decode('utf8')
        return HTMLSafe(html)
Exemplo n.º 11
0
 def get_pricelist(self):
     return get_pricelist()