class BannerModel(BasicModel): class Meta: label_name = { "name": u"名稱", "description": u"描述", "link": u"連結網址", "link_title": u"連結標題", "image": u"圖片", "is_enable": u"啟用", "category": u"分類", } name = Fields.StringProperty() description = Fields.TextProperty() link = Fields.StringProperty() link_title = Fields.StringProperty() image = Fields.ImageProperty() is_enable = Fields.BooleanProperty(default=True) category = Fields.CategoryProperty(required=True, kind=BannerCategoryModel) @classmethod def all_enable(cls, category=None, *args, **kwargs): cat = None if category: cat = BannerCategoryModel.get_by_name(category) if cat is None: return cls.query(cls.is_enable == True).order(-cls.sort) else: return cls.query(cls.category == cat.key, cls.is_enable == True).order(-cls.sort)
class ApplicationUserModel(BasicModel): class Meta: label_name = { "name": u"名稱", "account": u"帳號", "password": u"密碼", "is_enable": u"啟用", "avatar": u"頭像", "role": u"角色" } name = Fields.StringProperty(required=True) account = Fields.StringProperty(required=True) password = Fields.StringProperty(required=True) avatar = Fields.ImageProperty() is_enable = Fields.BooleanProperty(default=True) role = Fields.CategoryProperty(kind=ApplicationUserRoleModel, required=True) @classmethod def init(cls, name, account, password, prohibited_actions, avatar): if ApplicationUserRoleModel.has_record() is False: su_role = ApplicationUserRoleModel() su_role.name = "super_monkey" su_role.title = u"超級猴子" su_role.level = 9999 su_role.put() admin_role = ApplicationUserRoleModel() admin_role.name = "super_user" admin_role.title = u"超級管理員" admin_role.level = 999 admin_role.prohibited_actions = prohibited_actions admin_role.put() else: su_role = ApplicationUserRoleModel.get_role("super_monkey") admin_role = ApplicationUserRoleModel.get_role("super_user") cls.create_account(u"猴子", "iammonkey", "iammonkey", su_role.key, avatar) return cls.create_account(name, account, password, admin_role.key, avatar) @classmethod def get_login(cls, account, password, is_enable=True): a = cls.query(cls.account == account, cls.password == password, cls.is_enable == is_enable).get() if a is None: return None role = None if a.role is not None: role = a.role.get() if role is not None and role.is_enable is False: return None 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, role, avatar=None): n = cls() n.name = name n.account = account n.password = password n.role = role n.avatar = avatar n.put() return n @classmethod def get_list(cls): return cls.query(cls.account != "iammonkey").order( cls.account, -cls.sort, -cls._key)