def GET(self): inputs = sh.inputs() assert inputs.has_key('model_name'), u'请指定需要裁剪的数据类型' assert inputs.has_key('model_id'), u'请指定需要裁剪的数据ID' assert inputs.has_key('crop'), u'请设置裁剪配置' item = sh.model(inputs.model_name).get(inputs.model_id) if not item or not item.has_key('Imageid'): return sh.redirectTo404() column_name, settings = sh.unquote(inputs.crop).partition(' ')[::2] inputs.crop_width, settings = settings.strip().partition(' ')[::2] preview_size, settings = settings.strip().partition(' ')[::2] inputs.preview_width, inputs.preview_height = preview_size.split(':') inputs.column_name = column_name inputs.crop_settings = settings inputs.image = item.image if item.get(column_name): inputs.crop = item.get(column_name) else: inputs.crop = '0 0 %s %s' % tuple(preview_size.split(':')) if len(inputs.crop.split()) == 4: x1, y1, x2, y2 = map(int, inputs.crop.split(' ')) inputs.fx_crop = 'x1=%s;y1=%s;x2=%s;y2=%s;' % (x1,y1,x1+x2,y1+y2) else: inputs.fx_crop = '' return sh.editor.CropImage(inputs)
def GET(self): inputs = sh.inputs() assert inputs.has_key('model_name'), u'请指定需要裁剪的数据类型' assert inputs.has_key('model_id'), u'请指定需要裁剪的数据ID' assert inputs.has_key('crop'), u'请设置裁剪配置' item = sh.model(inputs.model_name).get(inputs.model_id) if not item or not item.has_key('Imageid'): return sh.redirectTo404() column_name, settings = sh.unquote(inputs.crop).partition(' ')[::2] inputs.crop_width, settings = settings.strip().partition(' ')[::2] preview_size, settings = settings.strip().partition(' ')[::2] inputs.preview_width, inputs.preview_height = preview_size.split(':') inputs.column_name = column_name inputs.crop_settings = settings inputs.image = item.image if item.get(column_name): inputs.crop = item.get(column_name) else: inputs.crop = '0 0 %s %s' % tuple(preview_size.split(':')) if len(inputs.crop.split()) == 4: x1, y1, x2, y2 = map(int, inputs.crop.split(' ')) inputs.fx_crop = 'x1=%s;y1=%s;x2=%s;y2=%s;' % (x1, y1, x1 + x2, y1 + y2) else: inputs.fx_crop = '' return sh.editor.CropImage(inputs)
def GET(self, name): menu_config = sh.ctrl('Editor').getMenuConfig() # 禁止访问未公开的路径 if not menu_config: return sh.redirectTo404() key = self.prefix_key + name value = sh.getSiteConfig(key) return sh.editor.IndentTable(value, menu_config)
def GET(self, model_name): model = sh.model(model_name) menu_config = sh.ctrl('Editor').getMenuConfig() # 禁止访问未公开的路径 if not menu_config: return sh.redirectTo404() env = self._getEnv(model, menu_config) items = model.all(env) pagination_html = model.getPaginationHtml(env) \ if hasattr(model, 'getPaginationHtml') else '' return sh.editor.model.List(model_name, model.column_names + menu_config.append_column, model.getColumnTypes(), menu_config, items, pagination_html, )
def GET(self): inputs = sh.inputs() assert(inputs.has_key('Userid')) assert(inputs.has_key('code')) model = sh.model('UserValidation') exists = model.getOneByWhere('Userid=%s and code=%s', inputs.Userid, inputs.code) if exists: sh.model('User').update(inputs.Userid, dict(activated='yes')) model.delete(exists.id) return sh.alert('验证邮箱成功') else: return sh.redirectTo404()
def GET(self, model_name, model_id=None): menu_config = sh.ctrl('Editor').getMenuConfig() # 禁止访问未公开的路径 if not menu_config: return sh.redirectTo404() model = sh.model(model_name) if model_id: item = model.get(model_id) action = 'update' assert item is not None else: item = None action = 'insert' return sh.editor.model.Edit(model_name, model.column_names + menu_config.append_column, model.getColumnTypes(), menu_config, item, action)
def GET(self, model_name): model = sh.model(model_name) menu_config = sh.ctrl('Editor').getMenuConfig() # 禁止访问未公开的路径 if not menu_config: return sh.redirectTo404() env = self._getEnv(model, menu_config) if hasattr(model, '_usePrivate'): assert 'new' in menu_config.list_btn_hidden, '私有数据请关闭后台new功能' assert 'edit' in menu_config.list_btn_hidden, '私有数据请关闭后台edit功能' assert 'delete' in menu_config.list_btn_hidden, '私有数据请关闭后台delete功能' env['use_private'] = False # 不使用Private Decorator items = model.all(env) pagination_html = model.getPaginationHtml(env) \ if hasattr(model, 'getPaginationHtml') else '' return sh.editor.model.List(model_name, model.column_names + menu_config.append_column, model.getColumnTypes(), menu_config, items, pagination_html, )
def GET(self, name): inputs = sh.inputs() menu_config = sh.ctrl('Editor').getMenuConfig() # 禁止访问未公开的路径 if not menu_config: return sh.redirectTo404() model = sh.model('SiteConfig') env = sh.storage() if menu_config.get('filter', None): env['where'] = ['name like %s', menu_config['filter']] if menu_config.get('orderby', None): env.orderby = model.replaceAttr(menu_config.orderby) if inputs.get('where', ''): env.where = [inputs.where] items = model.all(env) pagination_html = model.getPaginationHtml(env) return sh.editor.SiteConfig(items, pagination_html, menu_config)
def GET(self, path): mc = sh.ctrl("Editor").getMenuConfig() # 禁止访问未公开的路径 if not mc: return sh.redirectTo404() inputs = sh.inputs() select = mc.get("select", "").replace("%", "%%") # 因为MySQLdb会转义% db = sh.getDBHelper() if mc.get("paging", ""): if " limit " in select.lower(): return sh.alert("使用paging选项时select中不能使用limit, 请检查后台配置", stay=10) # 如果使用了paging, select中就不允许出现limit if int(mc.get("paging")) <= 0: return sh.alert("paging配置参数应为正整数", stay=10) if " distinct " in select.lower(): return sh.alert("抱歉, 暂不支持paging与distinct一起使用", stay=10) # 查询count(*) form_key = " from " if " from " in select else " FROM " total = self.__getTotal(select) # 设置limit获得数据 select = select + " limit %d, %d" % self.__getLimit(inputs.get("page_num", 1), int(mc.paging)) items = db.fetchSome(select) # 获得分页 pagination_html = ( '<div fx="paging[style=zarkpy;pageCount=%d;totalCount=%d;displayPages=10;firstText=第一页;lastText=末页;]"></div>' % (int(mc.paging), total) ) else: items = db.fetchSome(select) pagination_html = "" keys = self.__getSortedKeys(select) if len(keys) == 0 and len(items) > 0: keys = items[0].keys() return sh.editor.ReportForms(items, pagination_html, keys, mc)
def GET(self, path): mc = sh.ctrl('Editor').getMenuConfig() # 禁止访问未公开的路径 if not mc: return sh.redirectTo404() inputs = sh.inputs() select = mc.get('select', '').replace('%', '%%') # 因为MySQLdb会转义% db = sh.getDBHelper() if mc.get('paging', ''): if ' limit ' in select.lower(): return sh.alert('使用paging选项时select中不能使用limit, 请检查后台配置', stay=10) # 如果使用了paging, select中就不允许出现limit if int(mc.get('paging')) <= 0: return sh.alert('paging配置参数应为正整数', stay=10) if ' distinct ' in select.lower(): return sh.alert('抱歉, 暂不支持paging与distinct一起使用', stay=10) # 查询count(*) form_key = ' from ' if ' from ' in select else ' FROM ' total = self.__getTotal(select) # 设置limit获得数据 select = select + ' limit %d, %d' % \ self.__getLimit(inputs.get('page_num', 1), int(mc.paging)) items = db.fetchSome(select) # 获得分页 pagination_html = '<div fx="paging[style=zarkpy;pageCount=%d;totalCount=%d;displayPages=10;firstText=第一页;lastText=末页;]"></div>' % (int(mc.paging), total) else: items = db.fetchSome(select) pagination_html = '' keys = self.__getSortedKeys(select) if len(keys) == 0 and len(items) > 0: keys = items[0].keys() return sh.editor.ReportForms(items, pagination_html, keys, mc)
def GET(self, model_name): model = sh.model(model_name) menu_config = sh.ctrl('Editor').getMenuConfig() # 禁止访问未公开的路径 if not menu_config: return sh.redirectTo404() env = self._getEnv(model, menu_config) if hasattr(model, '_usePrivate'): assert 'new' in menu_config.list_btn_hidden, '私有数据请关闭后台new功能' assert 'edit' in menu_config.list_btn_hidden, '私有数据请关闭后台edit功能' assert 'delete' in menu_config.list_btn_hidden, '私有数据请关闭后台delete功能' env['use_private'] = False # 不使用Private Decorator items = model.all(env) pagination_html = model.getPaginationHtml(env) \ if hasattr(model, 'getPaginationHtml') else '' return sh.editor.model.List( model_name, model.column_names + menu_config.append_column, model.getColumnTypes(), menu_config, items, pagination_html, )