Ejemplo n.º 1
0
    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
Ejemplo n.º 2
0
    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)
Ejemplo n.º 3
0
    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)
Ejemplo n.º 4
0
	def _prettify_name(self, name):
		return prettify_name(name)