def list(self): from uliweb import request from uliweb.utils.generic import ListView from uliweb.utils.common import get_choice import math pageno = int(request.values.get('page', 1)) - 1 rows_per_page=int(request.values.get('rows', settings.get_var('MESSAGES/PAGE_NUMS', 10))) read_flag = request.GET.get('read', '') type_flag = request.GET.get('type', '') condition = None condition = (self.model.c.user == request.user.id) & condition condition = (self.model.c.send_flag == 'r') & condition if read_flag: condition = (self.model.c.read_flag == bool(read_flag=='1')) & condition if type_flag: condition = (self.model.c.type == type_flag) & condition def create_date(value, obj): from uliweb.utils.timesince import timesince return timesince(value) def user_image(value, obj): return functions.get_user_image(obj.sender, size=20) def message(value, obj): return value fields_convert_map = {'create_date':create_date, 'user_image':user_image, 'message':message} view = ListView(self.model, condition=condition, order_by=[self.model.c.create_date.desc()], rows_per_page=rows_per_page, pageno=pageno, fields_convert_map=fields_convert_map) view.query() result = {} result['read_flag'] = read_flag result['type_flag'] = type_flag result['message_type_name'] = get_choice(settings.get_var('MESSAGES/MESSAGE_TYPE'), type_flag, '全部类型') pages = int(math.ceil(1.0*view.total/rows_per_page)) # result['page'] = pageno+1 # result['total'] = view.total # result['pages'] = pages result['pagination'] = functions.create_pagination(functions.request_url(), view.total, pageno+1, rows_per_page) result['objects'] = list(view.objects()) ids = [] for row in result['objects']: ids.append(row._obj_.id) self.model.filter(self.model.c.id.in_(ids)).update(read_flag=True) _del_key(request.user.id) return result
def list(self): query = self._get_query_view(url_for(self.__class__.list)) c = query.run() condition = None if c.get('id'): condition = (self.model.c.id == c['id']) & condition fields_convert_map = {} view = functions.ListView(self.model, # pageno=page, #get page info from request # rows_per_page=rows, #get rows info from request pagination=True, condition=condition, fields_convert_map=fields_convert_map, order_by=self.model.c.id.desc(), ) if 'download' in request.values: return view.download('log.xls', action='download', timeout=0) if 'data' in request.values: return json(view.json()) result = view.run() result['view'] = view result['pagination'] = functions.create_pagination(functions.request_url(), view.total, view.pageno+1, view.rows_per_page) result['query_form'] = query.form return result
def list(self): query = self._get_query_view(url_for(self.__class__.list)) c = query.run() condition = None if c.get("id"): condition = (self.model.c.id == c["id"]) & condition if c.get("title"): condition = (self.model.c.title.like("%" + c["title"] + "%")) & condition fields_convert_map = {} view = functions.ListView( self.model, # pageno=page, #get page info from request # rows_per_page=rows, #get rows info from request pagination=True, condition=condition, fields_convert_map=fields_convert_map, ) if "data" in request.values: return json(view.json()) result = view.run() result["view"] = view result["pagination"] = functions.create_pagination( functions.request_url(), view.total, view.pageno + 1, view.rows_per_page ) result["query_form"] = query.form return result
def list(self): cache = functions.get_cache() id = request.params.get("id") query = self._get_query_view(url_for(self.__class__.list)) c = query.run() if id: cache.delete("interfaceid") cache.set("interfaceid", id) condition = self.model.c.interfaceid == id elif c.get("interface") or c.get("testcasename"): condition1 = self.model.c.interface == c["interfaceid"] condition2 = self.model.c.testcasename.like("%" + c["testcasename"] + "%") condition = condition1 & condition2 else: condition = None fields_convert_map = {} view = functions.ListView( self.model, # pageno=page, #get page info from request # rows_per_page=rows, #get rows info from request pagination=True, condition=condition, fields_convert_map=fields_convert_map, ) if "download" in request.values: return view.download("download.xls", action="download", timeout=0) if "data" in request.values: return json(view.json()) result = view.run() result["view"] = view result["pagination"] = functions.create_pagination( functions.request_url(), view.total, view.pageno + 1, view.rows_per_page ) result["query_form"] = query.form return result
def list(self): query = self._get_query_view(url_for(self.__class__.list)) c = query.run() condition = None if c.get('id'): condition = (self.model.c.id == c['id']) & condition fields_convert_map = {} view = functions.ListView(self.model, # pageno=page, #get page info from request # rows_per_page=rows, #get rows info from request pagination={{=pagination}}, condition=condition, fields_convert_map=fields_convert_map, ) {{if download:}} if 'download' in request.values: return view.download('{{=downloadfile}}', action='download', timeout=0) {{pass}} if 'data' in request.values: return json(view.json()) result = view.run() result['view'] = view {{if theme_name=='html':}} result['pagination'] = functions.create_pagination(functions.request_url(), view.total, view.pageno+1, view.rows_per_page) result['query_form'] = query.form {{pass}} {{if theme_name=='easyui':}} result['query_form'] = query.form result['view'] = view {{pass}} return result
def _login(next=None): from uliweb import request, Redirect, url_for if not request.user: path = functions.request_url() Redirect(next or url_for('login', next=path))