def wrap_view(sqla_model_view): @wrap_method_of(sqla_model_view) def create_model(super_ish, self, form): field = getattr(form, field_name) incoming = field.data filename = get_safe_filename(incoming.filename) field.data = filename # sqla will store this for us result = super_ish(form) if result is False: remove(filename) return False if filename is not None: save(incoming, filename) return True @wrap_method_of(sqla_model_view) def update_model(super_ish, self, form, model): field = getattr(form, field_name) stored_name = getattr(model, field_name) incoming = field.data filename = get_safe_filename(incoming.filename) field.data = filename or stored_name result = super_ish(form, model) if result is False: remove(filename) return False if filename is not None: if stored_name is not None: remove(stored_name) save(incoming, filename) return True @wrap_method_of(sqla_model_view) def delete_model(super_ish, self, model): result = super_ish(model) if result is False: return False stored_name = getattr(model, field_name) if stored_name is not None: remove(stored_name) return True if sqla_model_view.form_extra_fields is None: sqla_model_view.form_extra_fields = {} if field_name not in sqla_model_view.form_extra_fields: nice_name = prettify_name(field_name) field = FileField(nice_name, photo=photo, endpoint=endpoint, folder=upload_dir) sqla_model_view.form_extra_fields[field_name] = field return sqla_model_view
def _get_label(self, name, field_args): """ Label for field name. If it is not specified explicitly, then the views prettify_name method is used to find it. :param field_args: Dictionary with additional field arguments """ if 'label' in field_args: return field_args['label'] column_labels = get_property(self.view, 'column_labels', 'rename_columns') if column_labels: return column_labels.get(name) prettify_override = getattr(self.view, 'prettify_name', None) if prettify_override: return prettify_override(name) return prettify_name(name)
def _prettify_name(self, name): return prettify_name(name)