Example #1
0
    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
Example #2
0
    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
Example #3
0
    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
Example #4
0
    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
Example #5
0
    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
Example #6
0
    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))
Example #7
0
    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))