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
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
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
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
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
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