from pathlib import PurePath
from tempfile import mkdtemp
from django.contrib.auth.mixins import LoginRequiredMixin
from django.http import HttpResponse
from django.views.generic import TemplateView, View

from .io.xlsx import generate_template


class DownloadXLSXTemplateView(LoginRequiredMixin, TemplateView):

    template_name = 'submission/download_xlsx_template.html'

    def get_context_data(self, **kwargs):
        ctx = super().get_context_data(**kwargs)
        ctx.update({
            'step': 'download',
        })
        return ctx


class GenerateXLSXTemplateView(LoginRequiredMixin, View):

    def post(self, request, *args, **kwargs):

        template_file_name = 'pixel_template.xlsx'
        template_path = PurePath(mkdtemp(), template_file_name)
        generate_template(template_path)

        response = HttpResponse(
            content_type=(
                'application/vnd'
                '.openxmlformats-officedocument'
                '.spreadsheetml'
                '.sheet'
            )
        )
        content_disposition = 'attachment; filename="{}"'.format(
            template_file_name
        )
        response['Content-Disposition'] = content_disposition

        with open(template_path, 'rb') as template:
            response.write(template.read())

        return response

from pathlib import PurePath
from tempfile import mkdtemp
from django.contrib.auth.mixins import LoginRequiredMixin
from django.http import HttpResponse
from django.views.generic import TemplateView, View

from .io.xlsx import generate_template


class DownloadXLSXTemplateView(LoginRequiredMixin, TemplateView):

    template_name = 'submission/download_xlsx_template.html'

    def get_context_data(self, **kwargs):
        ctx = super().get_context_data(**kwargs)
        ctx.update({
            'step': 'download',
        })
        return ctx


class GenerateXLSXTemplateView(LoginRequiredMixin, View):

    def post(self, request, *args, **kwargs):

        template_file_name = 'meta.xlsx'
        template_path = PurePath(mkdtemp(), template_file_name)
        generate_template(template_path)

        response = HttpResponse(
            content_type=(
                'application/vnd'
                '.openxmlformats-officedocument'
                '.spreadsheetml'
                '.sheet'
            )
        )
        content_disposition = 'attachment; filename="{}"'.format(
            template_file_name
        )
        response['Content-Disposition'] = content_disposition

        with open(template_path, 'rb') as template:
            response.write(template.read())

        return response

Update pixel's template file name to meta.xlsx
Update pixel's template file name to meta.xlsx

  from pathlib import PurePath
  from tempfile import mkdtemp
  from django.contrib.auth.mixins import LoginRequiredMixin
  from django.http import HttpResponse
  from django.views.generic import TemplateView, View
  
  from .io.xlsx import generate_template
  
  
  class DownloadXLSXTemplateView(LoginRequiredMixin, TemplateView):
  
      template_name = 'submission/download_xlsx_template.html'
  
      def get_context_data(self, **kwargs):
          ctx = super().get_context_data(**kwargs)
          ctx.update({
              'step': 'download',
          })
          return ctx
  
  
  class GenerateXLSXTemplateView(LoginRequiredMixin, View):
  
      def post(self, request, *args, **kwargs):
  
-         template_file_name = 'pixel_template.xlsx'
+         template_file_name = 'meta.xlsx'
          template_path = PurePath(mkdtemp(), template_file_name)
          generate_template(template_path)
  
          response = HttpResponse(
              content_type=(
                  'application/vnd'
                  '.openxmlformats-officedocument'
                  '.spreadsheetml'
                  '.sheet'
              )
          )
          content_disposition = 'attachment; filename="{}"'.format(
              template_file_name
          )
          response['Content-Disposition'] = content_disposition
  
          with open(template_path, 'rb') as template:
              response.write(template.read())
  
          return response
  
Update pixel's template file name to meta.xlsx
## Code Before:
from pathlib import PurePath
from tempfile import mkdtemp
from django.contrib.auth.mixins import LoginRequiredMixin
from django.http import HttpResponse
from django.views.generic import TemplateView, View

from .io.xlsx import generate_template


class DownloadXLSXTemplateView(LoginRequiredMixin, TemplateView):

    template_name = 'submission/download_xlsx_template.html'

    def get_context_data(self, **kwargs):
        ctx = super().get_context_data(**kwargs)
        ctx.update({
            'step': 'download',
        })
        return ctx


class GenerateXLSXTemplateView(LoginRequiredMixin, View):

    def post(self, request, *args, **kwargs):

        template_file_name = 'pixel_template.xlsx'
        template_path = PurePath(mkdtemp(), template_file_name)
        generate_template(template_path)

        response = HttpResponse(
            content_type=(
                'application/vnd'
                '.openxmlformats-officedocument'
                '.spreadsheetml'
                '.sheet'
            )
        )
        content_disposition = 'attachment; filename="{}"'.format(
            template_file_name
        )
        response['Content-Disposition'] = content_disposition

        with open(template_path, 'rb') as template:
            response.write(template.read())

        return response

## Instruction:
Update pixel's template file name to meta.xlsx
## Code After:
from pathlib import PurePath
from tempfile import mkdtemp
from django.contrib.auth.mixins import LoginRequiredMixin
from django.http import HttpResponse
from django.views.generic import TemplateView, View

from .io.xlsx import generate_template


class DownloadXLSXTemplateView(LoginRequiredMixin, TemplateView):

    template_name = 'submission/download_xlsx_template.html'

    def get_context_data(self, **kwargs):
        ctx = super().get_context_data(**kwargs)
        ctx.update({
            'step': 'download',
        })
        return ctx


class GenerateXLSXTemplateView(LoginRequiredMixin, View):

    def post(self, request, *args, **kwargs):

        template_file_name = 'meta.xlsx'
        template_path = PurePath(mkdtemp(), template_file_name)
        generate_template(template_path)

        response = HttpResponse(
            content_type=(
                'application/vnd'
                '.openxmlformats-officedocument'
                '.spreadsheetml'
                '.sheet'
            )
        )
        content_disposition = 'attachment; filename="{}"'.format(
            template_file_name
        )
        response['Content-Disposition'] = content_disposition

        with open(template_path, 'rb') as template:
            response.write(template.read())

        return response
