示例#1
0
文件: main.py 项目: tanarky/services
def seller_tool_product_edit(seller,code):
    T = {"sellername":seller}
    ret = seller_tool_check_login(seller, T)
    if ret is not True:
        return ret
    if request.method == 'GET':
        seller_tool_check_new_order(T)

        key_name = "%s-%s" % (seller, code)
        product = Product.get_by_key_name("%s-%s" % (seller, code))
        stock   = ProductStock.get_by_key_name("%s-%s" % (seller, code))

        T["product_title"]    = product.title
        T["product_code"]     = product.code
        T["product_price"]    = product.price
        T["product_desc"]     = product.desc
        T["product_stock"]    = stock.quantity

        T["breadcrumbs"] = [{"url":url_for("seller_tool_index",seller=seller),
                             "title":u"ツールトップ"},
                            {"url":url_for("seller_tool_products",seller=seller),
                             "title":u"商品一覧"},
                            {"title":u"商品情報編集: %s" % product.code}]

        return render_template('seller_tool_product_edit.html',
                               T=T)
    else:
        try:
            logging.error(seller)
            logging.error(code)
            product = Product.get_by_key_name("%s-%s" % (seller, code))
            stock   = ProductStock.get_by_key_name("%s-%s" % (seller, code))

            product.title    = request.form['product_title']
            product.desc     = request.form['product_desc']
            product.price    = float(request.form['product_price'])
            product.put()

            stock.quantity = int(request.form['product_stock'])
            stock.put()

            flash(u'保存しました', category='success')
            return redirect(url_for('seller_tool_products', seller=seller))
        except:
            logging.error(sys.exc_info())
            flash(u'失敗しました', category='warning')
            return render_template('seller_tool_product_edit.html',
                                   T=T)
示例#2
0
文件: main.py 项目: tanarky/services
def seller_product(seller, code):
    T = {"sellername":seller, "code":code}
    ret = seller_tool_check_login(seller, T)

    s = Seller.get_by_key_name('%s' % seller)
    if not 2:
        abort(404)

    p = Product.get_by_key_name('%s-%s' % (seller,code))
    if not p:
        abort(404)

    T['seller']  = s
    T['product'] = p
    host = "http://localhost:5000/"

    if p.image1:
        T['imageurl1'] = "%s%s" % (host,
                                   get_image_path(seller,code,1,300,300,p.image1))
    else:
        T['imageurl1'] = 'http://placehold.it/300x300'

    if p.image2:
        T['imageurl2'] = "%s%s" % (host,
                                   get_image_path(seller,code,2,120,120,p.image2))

    if p.image3:
        T['imageurl3'] = "%s%s" % (host,
                                   get_image_path(seller,code,3,120,120,p.image3))

    T['cart_url'] = url_for('cart_add', seller=seller, code=p.code)
    return render_template('seller_product.html', T=T)
示例#3
0
文件: main.py 项目: tanarky/services
def seller_tool_product_image(seller,code):
    T = {"sellername":seller}
    ret = seller_tool_check_login(seller, T)
    if ret is not True:
        return ret

    if request.method == "GET":
        seller_tool_check_new_order(T)

        T["breadcrumbs"] = [{"url":url_for("seller_tool_index",seller=seller),
                             "title":u"ツールトップ"},
                            {"title":u"商品一覧",
                             "url":url_for("seller_tool_products",seller=seller)},
                            {"title":u"商品画像編集"}]

        key_name = "%s-%s" % (seller, code)
        product = Product.get_by_key_name("%s-%s" % (seller, code))

        T["product_title"] = product.title

        for x in range(1,4):
            logging.error(product.__dict__["_image%d" % x])
            if 0 < product.__dict__["_image%d" % x]:
                path = get_image_path(seller,
                                      code,
                                      x,
                                      '300',
                                      '300',
                                      product.__dict__["_image%d" % x])
                host = "http://localhost:5000/"
                T["product_image%d" % x] = '%s%s' % (host, path)

        T["upload_url"] = blobstore.create_upload_url(request.base_url)
        return render_template('seller_tool_product_image.html', T=T)
    else:
        try:
            logging.error(request)
            imgnum   = request.values['product_image_num']
            filename = 'product_image%s' % imgnum

            headers   = request.files[filename].headers['Content-Type']

            msgtype, params = cgi.parse_header(headers)
            blob_key = blobstore.BlobKey(params['blob-key'])
            blob = blobstore.BlobInfo.get(blob_key)

            logging.error(blob.size)
            if 524288 < blob.size:
                raise Exception('size error')

            logging.error(blob.content_type)
            if blob.content_type == 'image/jpeg':
                imgtype = 'jpeg'
                imgtypenum = 1
            elif blob.content_type == 'image/png':
                imgtype = 'png'
                imgtypenum = 2
            elif blob.content_type == 'image/gif':
                imgtype = 'gif'
                imgtypenum = 3
            else:
                raise Exception('invalid image type: %s' % blob.content_type)

            blob_reader = blobstore.BlobReader(blob_key, buffer_size=524288)
            imgbody = blob_reader.read()

            # thumbsize
            imgsizes = '60x60,120x120,300x300'
            
            # API POST
            url   = 'http://localhost:8000/upload/product'
            query = 'group=%s&name=%s&type=%s&resizes=%s&num=%s' % (seller,
                                                                    code,
                                                                    imgtype,
                                                                    imgsizes,
                                                                    imgnum)
            req = urllib2.Request('%s?%s' % (url,query),
                                  data=imgbody,
                                  headers={'Content-type':'image/%s' % imgtype})
            req.get_method= lambda: 'PUT'
            ret = urllib2.urlopen(req)
            ret.read(1024)

            product = Product.get_by_key_name("%s-%s" % (seller, code))
            product.__dict__["_image%s" % imgnum] = imgtypenum
            product.put()

            # cleanup
            blob.delete()
        except:
            logging.error(sys.exc_info())
            flash(u'失敗しました', category='warning')
        return redirect(request.base_url)