def API_get_object_report_url(request, model, pk, report, **kwargs): """ *Формирование отчёта для объекта.* ##### ЗАПРОС Параметры: 1. **"model"** - уникальное название модели, например: "auth.user"; 2. **"pk"** - ключ объекта; 3. **"report"** - ключ отчёта; ##### ОТВЕТ ссылка на файл сформированного отчёта """ # Получаем модель BWP со стандартной проверкой прав model_bwp = site.bwp_dict(request).get(model) report = Report.objects.get(pk=report) if pk is None: return HttpResponseBadRequest() options = { 'request': request, 'pk': pk, 'as_lookup': True, } obj = model_bwp.queryset(request, **kwargs).get(pk=pk) ctx = {'data': obj} url = report.render_to_media_url(context=ctx, user=request.user) return JSONResponse(data=url)
def API_get_collection_report_url(request, model, report, query=None, order_by=None, fields=None, filters=None, **kwargs): """ *Формирование отчёта для коллекции.* ##### ЗАПРОС Параметры: 1. **"model"** - уникальное название модели, например: "auth.user"; 2. **"report"** - ключ отчёта; 3. **"query"** - поисковый запрос; 4. **"order_by"** - сортировка объектов. 5. **"fields"** - поля объектов для поиска. 6. **"filters"** - дополнительные фильтры. ##### ОТВЕТ ссылка на файл сформированного отчёта """ # Получаем модель BWP со стандартной проверкой прав model_bwp = site.bwp_dict(request).get(model) report = Report.objects.get(pk=report) options = { 'request': request, 'query': query, 'order_by': order_by, 'fields': fields, 'filters': filters, } qs = model_bwp.filter_queryset(**options) filters = filters or [] ctx = {'data': qs, 'filters': [ x for x in filters if x['active']]} url = report.render_to_media_url(context=ctx, user=request.user) return JSONResponse(data=url)