def edit_view(self):
        if request.method == "GET":
            _id = request.args.get("id", "")
            return_url = request.args.get("return_url", "")
            result = suppliers.get_detail(_id=_id)

            return self.render(
                    template="supplier/edit.html",
                    data=result,
                    return_url=return_url
            )
        else:
            req_data = self.gen_arguments
            return_url = req_data.get("return_url", "")
            _id = req_data.get("id")
            new_password = req_data.get("new_password")
            fullname = req_data.get("fullname", "")
            contact_name = req_data.get("contact_name", "")
            contact_phone = req_data.get("contact_phone", "")
            short_name = req_data.get("short_name", "")

            encrypt_pwd = hashlib.sha1(new_password).hexdigest() if new_password else None

            result = suppliers.update(
                _id=_id,
                password=encrypt_pwd,
                fullname=fullname,
                contact_name=contact_name,
                contact_phone=contact_phone,
                short_name=short_name,
                operator=self.current_operator
            )

            return self.make_write(result_code=0, result_data=self.decode_return_url(return_url))
 def detail_view(self):
     _id = request.args.get("id", "")
     return_url = request.args.get("return_url", "")
     result = suppliers.get_detail(_id=_id)
     return self.render(
             template="supplier/detail.html",
             data=result,
             return_url=self.decode_return_url(return_url)
     )
示例#3
0
    def edit_view(self):
        if request.method == "GET":
            p_id = request.args.get("id", 0, type=int)
            query_kwargs = {
                "id": p_id,
                "is_edit": 1,
                "brands": flow_tools.gen_brands(),
                "suppliers": flow_tools.gen_suppliers(query_type=-1)
            }

            result = products.get_detail(_id=p_id)
            category_list = category.gen_full_category(result.third_category)
            result["category_list"] = category_list
            supplier_detail = suppliers.get_detail(whats="fullname", _id=result.supplier_id)
            result["supplier_name"] = supplier_detail.fullname

            return self.render(
                    template=u"product/edit_basic.html",
                    data=result,
                    query_kwargs=query_kwargs
            )

        else:
            req_data = self.gen_arguments
            _id = int(req_data.get("id"))
            full_name = req_data.get("full_name")
            title = req_data.get("title")
            short_name = req_data.get("short_name")
            sales_volume = int(req_data.get("sales_volume", 0))
            limits = int(req_data.get("limits", 0))
            market_text = req_data.get("market_text")
            about_text = req_data.get("about_text")
            out_way = int(req_data.get("out_way"))
            update_values = dict(
                    full_name=full_name,
                    title=title,
                    short_name=short_name,
                    sales_volume=sales_volume,
                    limits=limits,
                    market_text=market_text,
                    about_text=about_text,
                    out_way=out_way
            )
            result = products.update(_id=_id, **update_values)
            redirect_url = u"{url}?id={id}&ed={is_edit}&category_id={category_id}".format(
                    url=self.reverse_url(".product_attributes_view"),
                    id=_id,
                    is_edit=1,
                    category_id=req_data("category_id", 0)
            )
            return self.make_write(result_code=0, result_data=redirect_url)
示例#4
0
    def detail_view(self):
        _id = request.args.get("id", 0, type=int)
        version = int(request.args.get("v", 1))
        return_url_str = request.args.get("return_url", "")
        if version == 1:
            result = products.get_detail(_id=_id)
            first_category_id = result.first_category
            second_category_id = result.second_category
            third_category_id = result.third_category
            category_ids = (first_category_id, second_category_id, third_category_id)
            category_result = category.get_category_by_id(*category_ids)
            category_name = u"{} / {} / {}".format(
                    category_result.get(first_category_id, ""),
                    category_result.get(second_category_id, ""),
                    category_result.get(third_category_id, "")
            )
            result["category_name"] = category_name
            supplier_detail = suppliers.get_detail(whats="fullname", _id=result.supplier_id)
            result["supplier_name"] = supplier_detail.fullname
            template_name = u"product/detail_basic.html"
        elif version == 2:
            result = list(products.query_goods_list(
                whats=u"sku, price, created_time, updated_time, stock, is_default, property_names",
                product_id=_id,
                filter_del=0
            ))

            for g in result:
                property_name_list = g.property_names.split("^")
                property_name = "  ".join(property_name_list)
                g["property_name"] = property_name
                g["price"] = float(g.price) / 100.0

            template_name = u"product/detail_goods.html"

        elif version == 3:
            result = products.query_pictures_list(whats=u"id, label, image", product_id=_id)
            template_name = u"product/detail_pictures.html"
        elif version == 4:
            result = products.get_detail(whats="image_text, image_text_pad", _id=_id)
            template_name = u"product/detail_about.html"

        return self.render(
                template=template_name,
                return_url_str=return_url_str,
                data=result,
                product_id=_id,
                return_url=self.decode_return_url(return_url_str)
        )
示例#5
0
    def login(self):
        if request.method == "GET":
            return self.render("login.html")
        else:
            req_data = self.gen_arguments
            login_name = req_data.get("login_name", "")
            password = req_data.get("password", "")
            user_model = req_data.get("user_model")
            remote_ip = request.access_route[0]

            if not login_name or not password:
                return self.make_write(result_code=1002)

            if user_model == "admin":
                user_info = admin.get_detail(
                    whats="id, password, fullname, administer, validity",
                    login_name=login_name,
                    confirmed=1)
                update_model = admin
            elif user_model == "supplier":
                user_info = suppliers.get_detail(
                    whats="id, password, fullname, validity",
                    login_name=login_name)
                update_model = suppliers
            else:
                return self.make_write(result_code=100)

            if not user_info:
                return self.make_write(result_code=1003)

            if user_info.validity == 0:
                return self.make_write(result_code=1004)

            encrypt_pwd = hashlib.sha1(password).hexdigest()
            if encrypt_pwd != user_info.password:
                return self.make_write(result_code=1003)

            user = storage(name=user_info.fullname,
                           operator=login_name,
                           user_id=user_info.id,
                           user_model=user_model,
                           is_active=user_info.validity)
            login_user(user)
            if update_model is not None:
                result = update_model.update(_id=user_info.id,
                                             remote_ip=remote_ip)

            return self.make_write(result_code=0,
                                   result_data=self.reverse_url("home.home"))
示例#6
0
    def edit_pwd(self):
        """
        登录密码服务
        :return:
        """
        if request.method == "GET":
            return self.render("pwd.html")
        else:
            req_data = self.gen_arguments
            old_password = req_data.get("old_password")
            new_password = req_data.get("new_password")
            user_model = req_data.get("user_model")
            user_id = req_data.get("user_id")

            if not old_password or not new_password:
                return self.make_write(result_code=1005)

            if user_model == "admin":
                user_info = admin.get_detail(whats="id, password", _id=user_id)
                update_model = admin
            elif user_model == "supplier":
                user_info = suppliers.get_detail(whats="id, password", _id=user_id)
                update_model = suppliers
            else:
                return self.make_write(result_code=100)

            if not user_info:
                return self.make_write(result_code=1006)

            encrypt_old_pwd = hashlib.sha1(old_password).hexdigest()
            if encrypt_old_pwd != user_info.password:
                return self.make_write(result_code=1006)

            encrypt_pwd = hashlib.sha1(new_password).hexdigest()
            result = update_model.update(_id=user_id, password=encrypt_pwd)

            return self.make_write(result_code=0, result_data="")
    def check_view(self):
        login_name = request.data.get("login_name")
        supplier_info = suppliers.get_detail(whats="id", login_name=login_name)
        result_code = 102 if supplier_info else 0

        return self.make_write(result_code=result_code)