class PageTrackerModel(BasicModel): name = Fields.StringProperty(verbose_name=u'識別名稱') title = Fields.StringProperty(verbose_name=u'標題') content = Fields.RichTextProperty(verbose_name=u'內容') image = Fields.ImageProperty(verbose_name=u'圖片') is_enable = Fields.BooleanProperty(verbose_name=u'顯示於前台', default=True) @classmethod def all_enable(cls, category=None, *args, **kwargs): return cls.query(cls.is_enable==True).order(-cls.sort) @classmethod def insert(cls, name, title, content=u'', is_enable=True, image=u''): item = cls.get_by_name(name) if item is not None: return if content == u'': content = title item = cls() item.name = name item.title = title item.content = content item.is_enable = is_enable item.image = image item.put() return item
class MailRecordModel(BasicModel): title = Fields.StringProperty(verbose_name=u'標題', default=u'') send_to = Fields.StringProperty(verbose_name=u'發送對象', default=u'') cc = Fields.StringProperty(verbose_name=u'發送對象 cc', default=u'') content = Fields.RichTextProperty(verbose_name=u'信件內容', default=u'') send_date = Fields.DateTimeProperty(verbose_name=u'發送時間', auto_now_add=True) send_system = Fields.HiddenProperty(verbose_name=u'發送的系統', default=u'') @classmethod def replace_context(cls, name, title=None, content=None): record = cls.get_or_create_by_name(name) record.name = name if title: record.title = title if content: record.content = content record.put()
class MailModel(BasicModel): name = Fields.StringProperty(verbose_name=u'識別名稱') title = Fields.StringProperty(verbose_name=u'樣版名稱') mail_title = Fields.StringProperty(verbose_name=u'信件標題') mail_content = Fields.RichTextProperty(verbose_name=u'信件內容') touch_event = Fields.StringProperty(verbose_name=u'觸發時機', default=u'after_user_signup', choices=[ 'after_user_signup', 'after_order_checkout', 'after_user_verified_email', 'after_user_verified_mobile', 'after_user_verified_both', 'user_request_verified_email', 'user_request_email_reset', 'other', ], choices_text={ 'after_user_signup': u'使用者註冊後', 'after_order_checkout': u'訂單建立後', 'after_user_verified_email': u'使用者驗証信箱後', 'after_user_verified_mobile': u'使用者驗証手機後', 'after_user_verified_both': u'使用者驗証信箱、手機後', 'user_request_verified_email': u'使用者請求驗証信箱', 'user_request_email_reset': u'使用者請求重設密碼', 'other': u'由其它程序處理', }) is_enable = Fields.BooleanProperty(verbose_name=u'啟用觸發', default=True) send_to_admin = Fields.BooleanProperty(verbose_name=u'寄送給管理者', default=False) other_event = Fields.StringProperty(verbose_name=u'其它觸發時機名稱', default=u'') @classmethod def replace_context(cls, name, touch_event=None, title=None, mail_title=None, mail_content=None): record = cls.get_or_create_by_name(name) record.name = name if title: record.title = title if mail_title: record.mail_title = mail_title if mail_content: record.mail_content = mail_content if touch_event: record.touch_event = touch_event record.put()