Exemplo n.º 1
0
    def download_selected(self, queryset, writer_type, sheet_mapping=None):
        """ Generates sheet from queryset for downloading.

        :param writer_type: Sheet writer short name.
        """


        if sheet_mapping is None:
            if hasattr(self, 'sheet_mapping'):
                sheet_mapping = self.sheet_mapping
            else:
                sheet_mapping = [
                        (
                            column.replace(u'__', u':'),
                            column.split(u'__'))
                        for column in self.list_display[1:]
                        ]
        try:
            writer = SheetWriter.plugins[writer_type]
            data = self.dump_query_to_sheet(queryset, sheet_mapping)
        except KeyError:
            writer = SpreadSheetWriter.plugins[writer_type]
            data = SpreadSheet()
            sheet = data.create_sheet(u'Duomenys')
            self.dump_query_to_sheet(queryset, sheet_mapping, sheet)

        response = HttpResponse(content_type=writer.mime_type)
        response['Content-Disposition'] = (
                _(u'attachment; filename=data.{0}').format(
                    writer.file_extensions[0]))
        data.write(response, writer=writer())
        return response
Exemplo n.º 2
0
def download_query(queryset, writer_type, **kwargs):
    """ Generates sheet from queryset for downloading.

    :param writer_type: Sheet writer short name.
    """

    try:
        writer = SheetWriter.plugins[writer_type]
        data = dump_query_to_sheet(queryset, **kwargs)
    except KeyError:
        writer = SpreadSheetWriter.plugins[writer_type]
        data = SpreadSheet()
        sheet = data.create_sheet(u'Duomenys')
        dump_query_to_sheet(queryset, sheet, **kwargs)

    response = HttpResponse(mimetype=writer.mime_type)
    response['Content-Disposition'] = (
            'attachment; filename=duomenys.{0}'.format(
                writer.file_extensions[0]))
    data.write(response, writer=writer())
    return response