Example #1
0
class ProductModel(BasicModel):
    class Meta:
        behaviors = (Searchable, )
        label_name = {
            "title": u"商品名稱",
            "spec": u"商品規格",
            "image_url": u"圖片網址",
            "quantity": u"庫存數量",
            "date": u"可購買期限",
            "price": u"價格",
            "limit_1": u"已出售數量",
            "limit_2": u"可供購買數量",
        }

    title = Fields.StringProperty(default=u"未命名的商品")
    spec = Fields.StringProperty(default=u"")
    image_url = Fields.StringProperty(default=u"")
    date = Fields.DateTimeProperty()
    price = Fields.FloatProperty(default=0.0)
    limit_1 = Fields.IntegerProperty(default=0)
    limit_2 = Fields.IntegerProperty(default=99999)
    store = Fields.CategoryProperty(kind=StoreModel)
    group_info = Fields.CategoryProperty(kind=GroupInfoModel)

    @classmethod
    def get_by_feature(cls, store, group_info, title, spec, price):
        p = float(price)
        return cls.query(cls.title == title, cls.spec == spec, cls.price == p,
                         cls.store == store,
                         cls.group_info == group_info).get()
Example #2
0
class OrderInfoModel(BasicModel):
    class Meta:
        behaviors = (Searchable, )
        label_name = {
            "store": u"商家",
            "purchaser": u"購買人",
            "purchaser_name": u"購買人姓名",
            "purchaser_mobile": u"購買人手機",
            "receiver_name": u"收件人姓名",
            "receiver_address": u"收件人地址",
            "receiver_mobile": u"收件人手機",
            "state": u"訂單狀態",
            "cash_flow_state": u"金流狀態",
            "freight_flow_state": u"物流狀態",
            "official_order": u"正式訂單",
            "official_order_date": u"正式訂單成立時間",
        }

    order_info_id = Fields.StringProperty()
    store = Fields.CategoryProperty(kind=StoreModel)
    purchaser = Fields.CategoryProperty(kind=UserInfoModel)
    purchaser_name = Fields.StringProperty(default=u"")
    purchaser_mobile = Fields.StringProperty(default=u"")
    receiver = Fields.CategoryProperty(kind=UserInfoModel)
    receiver_name = Fields.StringProperty(default=u"")
    receiver_address = Fields.StringProperty(default=u"")
    receiver_mobile = Fields.StringProperty(default=u"")
    state = Fields.IntegerProperty(default=0)
    cash_flow_state = Fields.IntegerProperty(default=0)
    freight_flow_state = Fields.IntegerProperty(default=0)
    path_event = Fields.StringProperty(default="")
    path_forecast = Fields.StringProperty(default="")
    path_now = Fields.StringProperty(default="")
    path_next = Fields.StringProperty(default="")

    process_now = Fields.StringProperty(default="")
    process_1 = Fields.TextProperty(default="")
    process_2 = Fields.TextProperty(default="")
    process_3 = Fields.TextProperty(default="")
    process_4 = Fields.TextProperty(default="")
    process_5 = Fields.TextProperty(default="")

    official_order = Fields.BooleanProperty(default=False)
    official_order_date = Fields.DateTimeProperty()

    def details(self):
        from order_detail import OrderDetailModel
        return OrderDetailModel.query(OrderDetailModel.order_info == self.key
                                      ).order(-OrderDetailModel.sort).fetch()

    def messages(self):
        from message import MessageModel
        return MessageModel.query(MessageModel.order_info == self.key).order(
            -MessageModel.sort).fetch()
Example #3
0
class OnlineCodeModel(BasicModel):
    class Meta:
        behaviors = (Searchable, )
        label_name = {
            "title": u"團體名稱",
            "customer": u"所屬客戶",
            "code_type": u"類型",
            "source": u"原始碼",
        }

    title = Fields.StringProperty(default=u"未命名")
    target = Fields.CategoryProperty(kind=OnlineCodeTargetModel)
    code_type = Fields.StringProperty()
    source = Fields.TextProperty()
    vision = Fields.IntegerProperty(default=0)

    @classmethod
    def all_with_target(cls, target, code_type):
        return cls.query(cls.code_type == code_type,
                         cls.target == target.key).order(-cls.sort)

    @classmethod
    def get_source(cls, target, code_type, vision):
        return cls.query(cls.code_type == code_type, cls.target == target.key,
                         cls.vision == int(vision)).order(-cls.sort).get()
Example #4
0
class OnlineCodeTargetModel(BasicModel):
    class Meta:
        behaviors = (Searchable, )
        label_name = {
            "title": u"目標名稱",
            "url": u"網址",
            "is_enable": u"顯示於前台",
            "telephone": u"連絡方式",
            "image": u"照片",
            "content": u"簡介",
        }

    title = Fields.StringProperty(default=u"未命名")
    js_vision = Fields.IntegerProperty(default=0)
    css_vision = Fields.IntegerProperty(default=0)
    html_vision = Fields.IntegerProperty(default=0)

    @classmethod
    def get_by_name(cls, name):
        return cls.query(cls.title == name).get()
Example #5
0
class OrderItemModel(BasicModel):
    class Meta:
        behaviors = (Searchable,)
        label_name = {
            "title": u"摘要",
            "order_detail": u"所屬訂單細節",
        }
        not_show = {
            "title": u"摘要",
            "order_detail": u"所屬訂單細節",
        }
    title = Fields.StringProperty(default=u"未命名的商品")
    order_detail = Fields.CategoryProperty(kind=OrderDetailModel)
    product = Fields.CategoryProperty(kind=ProductModel)
    quantity = Fields.IntegerProperty()
class ApplicationUserRoleModel(BasicModel):
    class Meta:
        label_name = {
            "title": u"角色名稱",
            "name": u"角色識別碼",
            "is_enable": u"啟用",
            "prohibited_actions": u"禁止的操作",
            "level": u"權限等級"
        }

    title = Fields.StringProperty(required=True)
    name = Fields.StringProperty(required=True)
    prohibited_actions = Fields.StringProperty(default="")
    is_enable = Fields.BooleanProperty(default=True)
    level = Fields.IntegerProperty(default=0)

    @classmethod
    def get_role(cls, name):
        a = cls.query(cls.name == name).get()
        return a

    @classmethod
    def has_record(cls):
        r = cls.query().get()
        if r is not None:
            return True
        else:
            return False

    @classmethod
    def create_account(cls, name, account, password, prohibited_actions):
        n = cls()
        n.name = name
        n.account = account
        n.password = password
        n.prohibited_actions = prohibited_actions
        n.put()
        return n

    @classmethod
    def get_list(cls):
        return cls.query(cls.level < 1000).order(cls.level, -cls.sort)
Example #7
0
class WebFileModel(BasicModel):
    class Meta:
        label_name = {
            "filename": u"檔案名稱",
            "content_type": u"類型",
            "hash": u"hash",
            "size": u"大小",
            "file": u"檔案鍵值",
            "url": u"網址",
            "is_enable": u"顯示於前台",
        }

    filename = Fields.StringProperty()
    content_type = Fields.StringProperty()
    hash = Fields.StringProperty()
    size = Fields.IntegerProperty(default=0)
    file = Fields.BlobKeyProperty()
    url = Fields.StringProperty()

    @classmethod
    def all_by_created(cls):
        return cls.query().order(-cls.created)