Ejemplo n.º 1
0
    def _select_list(self,
                     model=None,
                     queryview=None,
                     queryform=None,
                     auto_condition=True,
                     post_view=None,
                     post_run=None,
                     **kwargs):
        """
        SelectListView wrap method
        :param auto_condition: if using queryview to create condition
        """
        from uliweb import request, json
        from uliweb.utils.generic import get_sort_field
        import copy

        condition = None
        if queryview and auto_condition:
            queryview.run()
            if hasattr(queryview, 'get_condition'):
                condition = queryview.get_condition()

        if 'condition' in kwargs:
            condition = kwargs['condition'] & condition

        kwargs['condition'] = condition

        #process order
        if 'order_by' not in kwargs:
            order_by = get_sort_field(model)
            if order_by is not None:
                kwargs['order_by'] = order_by

        _fields = copy.copy(kwargs.get('fields_convert_map', []))
        self._process_fields_convert_map(kwargs)
        downloads = self._parse_download_args(kwargs, _fields)
        self._process_fields_convert_map(downloads, download=True)

        view = self._select_list_view(model, **kwargs)

        if post_view:
            post_view(view)

        if 'data' in request.values:
            return json(view.json())
        elif 'download' in request.GET:
            return view.download(**downloads)
        else:
            result = view.run()
            if queryform or queryview:
                result.update({'query_form': queryform or queryview.form})
            else:
                result.update({'query_form': ''})
            result.update({'table': view})

            if post_run:
                post_run(view, result)
            return result
Ejemplo n.º 2
0
    def _list(self,
              model,
              queryview=None,
              queryform=None,
              auto_condition=True,
              post_view=None,
              post_run=None,
              **kwargs):
        from uliweb import request, json, CONTENT_TYPE_JSON
        from sqlalchemy import and_
        from uliweb.utils.generic import get_sort_field
        import copy

        condition = None
        if queryview and auto_condition:
            queryview.run()
            if hasattr(queryview, 'get_condition'):
                condition = queryview.get_condition()

        if 'condition' in kwargs:
            condition = and_(condition, kwargs['condition'])

        kwargs['condition'] = condition

        #process order
        if 'order_by' not in kwargs:
            order_by = get_sort_field(model)
            if order_by is not None:
                kwargs['order_by'] = order_by

        _fields = copy.copy(kwargs.get('fields_convert_map', []))

        self._process_fields_convert_map(kwargs)
        downloads = self._parse_download_args(kwargs, _fields)
        self._process_fields_convert_map(downloads, download=True)

        #get list view
        view = self._list_view(model=model, **kwargs)

        if post_view:
            post_view(view)

        if 'data' in request.values:
            return json(view.json(), content_type=CONTENT_TYPE_JSON)
        elif 'download' in request.GET:
            return view.download(**downloads)
        else:
            result = view.run()
            if queryview:
                result.update({'query_form': queryform or queryview.form})
            else:
                result.update({'query_form': ''})
            result.update({'table': view})

            if post_run:
                post_run(view, result)
            return result
Ejemplo n.º 3
0
    def _select_list(self, model=None, queryview=None, queryform=None,
                     auto_condition=True,
                     post_view=None, post_run=None, **kwargs):
        """
        SelectListView wrap method
        :param auto_condition: if using queryview to create condition
        """
        from uliweb import request, json
        from uliweb.utils.generic import get_sort_field
        import copy

        condition = None
        if queryview and auto_condition:
            queryview.run()
            if hasattr(queryview, 'get_condition'):
                condition = queryview.get_condition()

        if 'condition' in kwargs:
            condition = kwargs['condition'] & condition

        kwargs['condition'] = condition

        #process order
        if 'order_by' not in kwargs:
            order_by = get_sort_field(model)
            if order_by is not None:
                kwargs['order_by'] = order_by

        _fields = copy.copy(kwargs.get('fields_convert_map', []))
        self._process_fields_convert_map(kwargs)
        downloads = self._parse_download_args(kwargs, _fields)
        self._process_fields_convert_map(downloads, download=True)

        view = self._select_list_view(model, **kwargs)

        if post_view:
            post_view(view)

        if 'data' in request.values:
            return json(view.json())
        elif 'download' in request.GET:
            return view.download(**downloads)
        else:
            result = view.run()
            if queryform or queryview:
                result.update({'query_form':queryform or queryview.form})
            else:
                result.update({'query_form':''})
            result.update({'table':view})

            if post_run:
                post_run(view, result)
            return result
Ejemplo n.º 4
0
    def _list(self, model, queryview=None, queryform=None,
              auto_condition=True,
              post_view=None, post_run=None, **kwargs):
        from uliweb import request, json, CONTENT_TYPE_JSON
        from sqlalchemy import and_
        from uliweb.utils.generic import get_sort_field
        import copy

        condition = None
        if queryview and auto_condition:
            queryview.run()
            if hasattr(queryview, 'get_condition'):
                condition = queryview.get_condition()

        if 'condition' in kwargs:
            condition = and_(condition, kwargs['condition'])

        kwargs['condition'] = condition

        #process order
        if 'order_by' not in kwargs:
            order_by = get_sort_field(model)
            if order_by is not None:
                kwargs['order_by'] = order_by

        _fields = copy.copy(kwargs.get('fields_convert_map', []))

        self._process_fields_convert_map(kwargs)
        downloads = self._parse_download_args(kwargs, _fields)
        self._process_fields_convert_map(downloads, download=True)

        #get list view
        view = self._list_view(model=model, **kwargs)

        if post_view:
            post_view(view)

        if 'data' in request.values:
            return json(view.json(), content_type=CONTENT_TYPE_JSON)
        elif 'download' in request.GET:
            return view.download(**downloads)
        else:
            result = view.run()
            if queryview:
                result.update({'query_form':queryform or queryview.form})
            else:
                result.update({'query_form':''})
            result.update({'table':view})

            if post_run:
                post_run(view, result)
            return result
Ejemplo n.º 5
0
    def _list(self, model, queryview=None, queryform=None, **kwargs):
        from uliweb import request, json, CONTENT_TYPE_JSON
        from sqlalchemy import and_
        from uliweb.utils.generic import get_sort_field

        if queryview:
            queryview.run()
            condition = queryview.get_condition()
        else:
            condition = None

        if 'condition' in kwargs:
            condition = and_(condition, kwargs['condition'])
            kwargs['condition'] = condition
        else:
            kwargs['condition'] = condition

        #process order
        if 'order_by' not in kwargs:
            order_by = get_sort_field(model)
            if order_by is not None:
                kwargs['order_by'] = order_by

        self._process_fields_convert_map(kwargs)
        downloads = {}
        downloads['filename'] = kwargs.pop('download_filename',
                                           'download.xlsx')
        downloads['action'] = kwargs.pop('download_action', 'download')
        downloads['fields_convert_map'] = kwargs.pop(
            'download_fields_convert_map', kwargs.get('fields_convert_map'))
        downloads['domain'] = kwargs.pop('download_domain', '')
        downloads['timeout'] = 0
        downloads.update(kwargs.pop('download_kwargs', {}))
        self._process_fields_convert_map(downloads)

        #get list view
        view = self._list_view(model=model, **kwargs)

        if 'data' in request.values:
            return json(view.json(), content_type=CONTENT_TYPE_JSON)
        elif 'download' in request.GET:
            return view.download(**downloads)
        else:
            result = view.run()
            if queryview:
                result.update({'query_form': queryform or queryview.form})
            else:
                result.update({'query_form': ''})
            result.update({'table': view})
            return result
Ejemplo n.º 6
0
    def _list(self, model, queryview=None, queryform=None, **kwargs):
        from uliweb import request, json, CONTENT_TYPE_JSON
        from sqlalchemy import and_
        from uliweb.utils.generic import get_sort_field

        if queryview:
            queryview.run()
            condition = queryview.get_condition()
        else:
            condition = None

        if "condition" in kwargs:
            condition = and_(condition, kwargs["condition"])
            kwargs["condition"] = condition
        else:
            kwargs["condition"] = condition

        # process order
        if "order_by" not in kwargs:
            order_by = get_sort_field(model)
            if order_by is not None:
                kwargs["order_by"] = order_by

        self._process_fields_convert_map(kwargs)
        downloads = {}
        downloads["filename"] = kwargs.pop("download_filename", "download.xlsx")
        downloads["action"] = kwargs.pop("download_action", "download")
        downloads["fields_convert_map"] = kwargs.pop("download_fields_convert_map", kwargs.get("fields_convert_map"))
        downloads["domain"] = kwargs.pop("download_domain", "")
        downloads["timeout"] = 0
        downloads.update(kwargs.pop("download_kwargs", {}))
        self._process_fields_convert_map(downloads)

        # get list view
        view = self._list_view(model=model, **kwargs)

        if "data" in request.values and request.is_xhr:
            return json(view.json(), content_type=CONTENT_TYPE_JSON)
        elif "download" in request.GET:
            return view.download(**downloads)
        else:
            result = view.run()
            if queryview:
                result.update({"query_form": queryform or queryview.form})
            else:
                result.update({"query_form": ""})
            result.update({"table": view})
            return result