def get_response(self, response, context, *args, **kwargs): has_view_perm = self.has_model_perm(self.model, 'view') if not has_view_perm: raise PermissionDenied export_format = self.request.GET.get('file_format') if not export_format: messages.warning(self.request, _('You must select an export format.')) else: formats = self.get_export_formats() file_format = formats[int(export_format)]() queryset = self.get_export_queryset(self.request, context) export_data = self.get_export_data(file_format, queryset, request=self.request) content_type = file_format.get_content_type() # Django 1.7 uses the content_type kwarg instead of mimetype try: response = HttpResponse(export_data, content_type=content_type) except TypeError: response = HttpResponse(export_data, mimetype=content_type) response['Content-Disposition'] = 'attachment; filename=%s' % ( self.get_export_filename(file_format), ) post_export.send(sender=None, model=self.model) return response
def export_action(self, request, *args, **kwargs): if not self.has_export_permission(request): raise PermissionDenied formats = self.get_export_formats() form = ExportForm(formats, request.POST or None) if form.is_valid(): file_format = formats[ int(form.cleaned_data['file_format']) ]() queryset = self.get_export_queryset(request) export_data = self.get_export_data(file_format, queryset, request=request) content_type = file_format.get_content_type() response = HttpResponse(export_data, content_type=content_type) response['Content-Disposition'] = 'attachment; filename="%s"' % ( "%s-%s.%s" % (self.model.__name__, datetime.now().strftime('%Y-%m-%d'), file_format.get_extension()) ) post_export.send(sender=None, model=self.model) return response context = self.get_export_context_data() context.update(self.admin_site.each_context(request)) context['title'] = "Export" context['form'] = form context['opts'] = self.model._meta context['total_count'] = self.model.objects.count() request.current_app = self.admin_site.name return TemplateResponse(request, [self.export_template_name], context)
def export_action(self, request, *args, **kwargs): if not self.has_export_permission(request): raise PermissionDenied formats = self.get_export_formats() form = ProjectExportForm(formats, request.POST or None) if form.is_valid(): file_format = formats[int(form.cleaned_data['file_format'])]() user = form.cleaned_data['user'] queryset = self.get_export_queryset(request).filter(user=user) export_data = self.get_export_data(file_format, queryset, request=request) content_type = file_format.get_content_type() response = HttpResponse(export_data, content_type=content_type) response['Content-Disposition'] = 'attachment; filename="%s"' % ( self.get_export_filename(request, queryset, file_format), ) post_export.send(sender=None, model=self.model) return response context = self.get_export_context_data() context.update(self.admin_site.each_context(request)) context['title'] = _("Export") context['form'] = form context['opts'] = self.model._meta request.current_app = self.admin_site.name return TemplateResponse(request, [self.export_template_name], context)
def export_action(self, request, *args, **kwargs): if not self.has_export_permission(request): raise PermissionDenied formats = self.get_export_formats() form = BsExportForm(formats, request.POST or None) if form.is_valid(): file_format = formats[ int(form.cleaned_data['file_format']) ]() queryset = self.get_export_queryset(request) q_date = form.cleaned_data['date_where'] # print('q_date: ', q_date) q_date_list = str(q_date).split('-') if len(q_date_list) == 3: _year = int(q_date_list[0]) _month = int(q_date_list[1]) _day = int(q_date_list[2]) # print('ymd: ', _year, _month, _day) _gte_date = datetime.date(_year, _month, _day) _lte_date = _gte_date + datetime.timedelta(days=1) queryset = queryset.filter(date__gte=_gte_date, date__lte=_lte_date) export_data = self.get_export_data(file_format, queryset, request=request) content_type = file_format.get_content_type() response = HttpResponse(export_data, content_type=content_type) response['Content-Disposition'] = 'attachment; filename="%s"' % ( self.get_export_filename(request, queryset, file_format), ) post_export.send(sender=None, model=self.model) return response context = self.get_export_context_data() context.update(self.admin_site.each_context(request)) context['title'] = _("Export") context['form'] = form context['opts'] = self.model._meta request.current_app = self.admin_site.name return TemplateResponse(request, [self.export_template_name], context)
def get_response(self, response, context, *args, **kwargs): has_view_perm = self.has_model_perm(self.model, 'view') if not has_view_perm: raise PermissionDenied export_format = self.request.GET.get('file_format') scope = self.request.GET.get('scope') if not export_format: messages.warning(self.request, _('You must select an export format.')) return HttpResponseRedirect(self.request.path) elif scope == 'selected' and not self.request.GET.get( '_selected_actions', '').strip(): messages.warning(self.request, _('You need to select items for export.')) return HttpResponseRedirect(self.request.path) else: formats = self.get_export_formats() file_format = formats[int(export_format)]() queryset = self.get_export_queryset(self.request, context) # The export takes place in the background, so you do not have to wait. if self.request.GET.get('result-action', '') == 'sendmail': return self.send_mail_response(self.request, file_format=file_format, queryset=queryset) # Follow normal flow if it is not to send by email export_data = self.get_export_data(file_format, queryset, request=self.request) content_type = file_format.get_content_type() # Django 1.7 uses the content_type kwarg instead of mimetype try: response = HttpResponse(export_data, content_type=content_type) except TypeError: response = HttpResponse(export_data, mimetype=content_type) response['Content-Disposition'] = 'attachment; filename=%s' % ( self.get_export_filename(file_format), ) post_export.send(sender=None, model=self.model) return response