Remove unwanted "export has file" logic for ExportMasterView

this mostly did what "downloadable" already did, plus some other stuff which it
probably shouldn't have been doing anyway
This commit is contained in:
Lance Edgar 2019-07-05 18:17:53 -05:00
parent 94d7e01bd5
commit 4499a872d8

View file

@ -2,7 +2,7 @@
################################################################################
#
# Rattail -- Retail Software Framework
# Copyright © 2010-2018 Lance Edgar
# Copyright © 2010-2019 Lance Edgar
#
# This file is part of Rattail.
#
@ -45,9 +45,6 @@ class ExportMasterView(MasterView):
"""
creatable = False
editable = False
# TODO: should deprecate `export_has_file` in favor of `downloadable`
export_has_file = False
downloadable = False
grid_columns = [
@ -132,16 +129,6 @@ class ExportMasterView(MasterView):
else:
f.set_readonly('record_count')
# download
# TODO: should probably stop doing this altogether? and just make each
# derived view declare the field renderer?
if self.export_has_file and self.viewing:
# download = forms.renderers.FileFieldRenderer.new(
# self, storage_path=self.rattail_config.export_filedir(self.export_key),
# file_path=self.get_file_path(fs.model), download_url=self.get_download_url)
f.append('download')
f.set_renderer('download', self.render_download)
def objectify(self, form, data=None):
obj = super(ExportMasterView, self).objectify(form, data=data)
if self.creating:
@ -182,39 +169,3 @@ class ExportMasterView(MasterView):
response.headers[b'Content-Length'] = six.binary_type(os.path.getsize(path))
response.headers[b'Content-Disposition'] = b'attachment; filename="{}"'.format(export.filename)
return response
def delete_instance(self, export):
"""
Delete the export file also, if it exists.
"""
if self.export_has_file:
path = self.get_file_path(export)
if os.path.exists(path):
os.remove(path)
os.rmdir(os.path.dirname(path))
super(ExportMasterView, self).delete_instance(export)
@classmethod
def defaults(cls, config):
"""
Provide default configuration for a master view.
"""
cls._defaults(config)
cls._export_defaults(config)
@classmethod
def _export_defaults(cls, config):
route_prefix = cls.get_route_prefix()
url_prefix = cls.get_url_prefix()
permission_prefix = cls.get_permission_prefix()
model_key = cls.get_model_key()
model_title = cls.get_model_title()
# download export file
# TODO: should deprecate this and just use 'downloadable' instead
if cls.export_has_file:
config.add_route('{}.download'.format(route_prefix), '{}/{{{}}}/download'.format(url_prefix, model_key))
config.add_view(cls, attr='download', route_name='{}.download'.format(route_prefix),
permission='{}.download'.format(permission_prefix))
config.add_tailbone_permission(permission_prefix, '{}.download'.format(permission_prefix),
"Download {} data file".format(model_title))