Add basic image upload support for tempmon appliances
This commit is contained in:
parent
40a8761feb
commit
4aa8f43a7e
3 changed files with 94 additions and 0 deletions
|
@ -105,6 +105,7 @@ class MasterView(View):
|
|||
deleting = False
|
||||
executing = False
|
||||
has_pk_fields = False
|
||||
has_image = False
|
||||
|
||||
row_attrs = {}
|
||||
cell_attrs = {}
|
||||
|
@ -854,6 +855,22 @@ class MasterView(View):
|
|||
tools=self.make_row_grid_tools(instance))
|
||||
return self.render_to_response('view', context)
|
||||
|
||||
def image(self):
|
||||
"""
|
||||
View which renders the object's image as a response.
|
||||
"""
|
||||
obj = self.get_instance()
|
||||
image_bytes = self.get_image_bytes(obj)
|
||||
if not image_bytes:
|
||||
raise self.notfound()
|
||||
# TODO: how to properly detect image type?
|
||||
self.request.response.content_type = str('image/jpeg')
|
||||
self.request.response.body = image_bytes
|
||||
return self.request.response
|
||||
|
||||
def get_image_bytes(self, obj):
|
||||
raise NotImplementedError
|
||||
|
||||
def clone(self):
|
||||
"""
|
||||
View for cloning an object's data into a new object.
|
||||
|
@ -1433,7 +1450,9 @@ class MasterView(View):
|
|||
return self.render_to_response('edit', context)
|
||||
|
||||
def save_edit_form(self, form):
|
||||
uploads = self.normalize_uploads(form)
|
||||
obj = self.objectify(form, self.form_deserialized)
|
||||
self.process_uploads(obj, form, uploads)
|
||||
self.after_edit(obj)
|
||||
self.Session.flush()
|
||||
|
||||
|
@ -2977,6 +2996,12 @@ class MasterView(View):
|
|||
config.add_view(cls, attr='view_version', route_name='{}.version'.format(route_prefix),
|
||||
permission='{}.versions'.format(permission_prefix))
|
||||
|
||||
# image
|
||||
if cls.has_image:
|
||||
config.add_route('{}.image'.format(route_prefix), '{}/{{{}}}/image'.format(url_prefix, model_key))
|
||||
config.add_view(cls, attr='image', route_name='{}.image'.format(route_prefix),
|
||||
permission='{}.view'.format(permission_prefix))
|
||||
|
||||
# clone
|
||||
if cls.cloneable:
|
||||
config.add_tailbone_permission(permission_prefix, '{}.clone'.format(permission_prefix),
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue