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()
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()
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()
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()
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)
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)