Compare commits
	
		
			10 commits
		
	
	
		
			7fcca23071
			...
			dc941bdb31
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| dc941bdb31 | |||
| d362a1cbd5 | |||
| 7e532e2472 | |||
| 0934c64809 | |||
| 6c8a0f6d10 | |||
| 50f8f99909 | |||
| 055864eb4e | |||
| 0f66d24dd4 | |||
| f989f41e86 | |||
| 019d30d8a0 | 
					 20 changed files with 86 additions and 76 deletions
				
			
		
							
								
								
									
										12
									
								
								.pylintrc
									
										
									
									
									
								
							
							
						
						
									
										12
									
								
								.pylintrc
									
										
									
									
									
								
							| 
						 | 
				
			
			@ -3,25 +3,16 @@
 | 
			
		|||
[MESSAGES CONTROL]
 | 
			
		||||
disable=fixme,
 | 
			
		||||
        abstract-method,
 | 
			
		||||
        anomalous-backslash-in-string,
 | 
			
		||||
        arguments-differ,
 | 
			
		||||
        arguments-renamed,
 | 
			
		||||
        assignment-from-no-return,
 | 
			
		||||
        attribute-defined-outside-init,
 | 
			
		||||
        bare-except,
 | 
			
		||||
        broad-exception-caught,
 | 
			
		||||
        consider-using-dict-comprehension,
 | 
			
		||||
        consider-using-dict-items,
 | 
			
		||||
        consider-using-generator,
 | 
			
		||||
        consider-using-get,
 | 
			
		||||
        consider-using-set-comprehension,
 | 
			
		||||
        cyclic-import,
 | 
			
		||||
        dangerous-default-value,
 | 
			
		||||
        deprecated-method,
 | 
			
		||||
        duplicate-code,
 | 
			
		||||
        implicit-str-concat,
 | 
			
		||||
        import-outside-toplevel,
 | 
			
		||||
        invalid-name,
 | 
			
		||||
        isinstance-second-argument-not-valid-type,
 | 
			
		||||
        keyword-arg-before-vararg,
 | 
			
		||||
        missing-function-docstring,
 | 
			
		||||
| 
						 | 
				
			
			@ -49,8 +40,5 @@ disable=fixme,
 | 
			
		|||
        unnecessary-lambda-assignment,
 | 
			
		||||
        unspecified-encoding,
 | 
			
		||||
        unused-argument,
 | 
			
		||||
        unused-wildcard-import,
 | 
			
		||||
        use-a-generator,
 | 
			
		||||
        use-dict-literal,
 | 
			
		||||
        wildcard-import,
 | 
			
		||||
        wrong-import-order,
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -63,7 +63,7 @@ def webapp(
 | 
			
		|||
 | 
			
		||||
    elif runner == "uvicorn":
 | 
			
		||||
 | 
			
		||||
        import uvicorn  # pylint: disable=import-error
 | 
			
		||||
        import uvicorn  # pylint: disable=import-error,import-outside-toplevel
 | 
			
		||||
 | 
			
		||||
        # need service details from config
 | 
			
		||||
        spec = config.require(f"{config.appname}.web.app.spec")
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -27,7 +27,7 @@
 | 
			
		|||
from wuttjamaican.email import EmailSetting
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class feedback(EmailSetting):
 | 
			
		||||
class feedback(EmailSetting):  # pylint: disable=invalid-name
 | 
			
		||||
    """
 | 
			
		||||
    Sent when user submits feedback via the web app.
 | 
			
		||||
    """
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -274,14 +274,14 @@ class Form:  # pylint: disable=too-many-instance-attributes
 | 
			
		|||
        schema=None,
 | 
			
		||||
        model_class=None,
 | 
			
		||||
        model_instance=None,
 | 
			
		||||
        nodes={},
 | 
			
		||||
        widgets={},
 | 
			
		||||
        validators={},
 | 
			
		||||
        defaults={},
 | 
			
		||||
        nodes=None,
 | 
			
		||||
        widgets=None,
 | 
			
		||||
        validators=None,
 | 
			
		||||
        defaults=None,
 | 
			
		||||
        readonly=False,
 | 
			
		||||
        readonly_fields=[],
 | 
			
		||||
        required_fields={},
 | 
			
		||||
        labels={},
 | 
			
		||||
        readonly_fields=None,
 | 
			
		||||
        required_fields=None,
 | 
			
		||||
        labels=None,
 | 
			
		||||
        action_method="post",
 | 
			
		||||
        action_url=None,
 | 
			
		||||
        reset_url=None,
 | 
			
		||||
| 
						 | 
				
			
			@ -465,7 +465,9 @@ class Form:  # pylint: disable=too-many-instance-attributes
 | 
			
		|||
 | 
			
		||||
        Node overrides are tracked via :attr:`nodes`.
 | 
			
		||||
        """
 | 
			
		||||
        from wuttaweb.forms.schema import ObjectNode
 | 
			
		||||
        from wuttaweb.forms.schema import (  # pylint: disable=import-outside-toplevel
 | 
			
		||||
            ObjectNode,
 | 
			
		||||
        )
 | 
			
		||||
 | 
			
		||||
        if isinstance(nodeinfo, colander.SchemaNode):
 | 
			
		||||
            # assume nodeinfo is a complete node
 | 
			
		||||
| 
						 | 
				
			
			@ -494,7 +496,7 @@ class Form:  # pylint: disable=too-many-instance-attributes
 | 
			
		|||
        :param widget: Either a :class:`deform:deform.widget.Widget`
 | 
			
		||||
           instance, or else a widget "type" name.
 | 
			
		||||
 | 
			
		||||
        :param \**kwargs: Any remaining kwargs are passed along to
 | 
			
		||||
        :param \\**kwargs: Any remaining kwargs are passed along to
 | 
			
		||||
           :meth:`make_widget()` - if applicable.
 | 
			
		||||
 | 
			
		||||
        Widget overrides are tracked via :attr:`widgets`.
 | 
			
		||||
| 
						 | 
				
			
			@ -526,13 +528,13 @@ class Form:  # pylint: disable=too-many-instance-attributes
 | 
			
		|||
        :param widget_type: Which of the above (or custom) widget
 | 
			
		||||
           type to create.
 | 
			
		||||
 | 
			
		||||
        :param \**kwargs: Remaining kwargs are passed as-is to the
 | 
			
		||||
        :param \\**kwargs: Remaining kwargs are passed as-is to the
 | 
			
		||||
           widget factory.
 | 
			
		||||
 | 
			
		||||
        :returns: New widget instance, or ``None`` if e.g. it could
 | 
			
		||||
           not determine how to create the widget.
 | 
			
		||||
        """
 | 
			
		||||
        from wuttaweb.forms import widgets
 | 
			
		||||
        from wuttaweb.forms import widgets  # pylint: disable=import-outside-toplevel
 | 
			
		||||
 | 
			
		||||
        if widget_type == "notes":
 | 
			
		||||
            return widgets.NotesWidget(**kwargs)
 | 
			
		||||
| 
						 | 
				
			
			@ -556,7 +558,7 @@ class Form:  # pylint: disable=too-many-instance-attributes
 | 
			
		|||
        * :class:`sqlalchemy:sqlalchemy.types.DateTime` ->
 | 
			
		||||
          :class:`~wuttaweb.forms.widgets.WuttaDateTimeWidget`
 | 
			
		||||
        """
 | 
			
		||||
        from wuttaweb.forms import widgets
 | 
			
		||||
        from wuttaweb.forms import widgets  # pylint: disable=import-outside-toplevel
 | 
			
		||||
 | 
			
		||||
        if not self.model_class:
 | 
			
		||||
            return
 | 
			
		||||
| 
						 | 
				
			
			@ -586,7 +588,9 @@ class Form:  # pylint: disable=too-many-instance-attributes
 | 
			
		|||
        :param widget: :class:`~wuttaweb.grids.base.Grid` instance,
 | 
			
		||||
           pre-configured and (usually) with data.
 | 
			
		||||
        """
 | 
			
		||||
        from wuttaweb.forms.widgets import GridWidget
 | 
			
		||||
        from wuttaweb.forms.widgets import (  # pylint: disable=import-outside-toplevel
 | 
			
		||||
            GridWidget,
 | 
			
		||||
        )
 | 
			
		||||
 | 
			
		||||
        widget = GridWidget(self.request, grid)
 | 
			
		||||
        self.set_widget(key, widget)
 | 
			
		||||
| 
						 | 
				
			
			@ -599,7 +603,7 @@ class Form:  # pylint: disable=too-many-instance-attributes
 | 
			
		|||
 | 
			
		||||
        if grid.key in self.grid_vue_context:
 | 
			
		||||
            log.warning(
 | 
			
		||||
                "grid data with key '%s' already registered, " "but will be replaced",
 | 
			
		||||
                "grid data with key '%s' already registered, but will be replaced",
 | 
			
		||||
                grid.key,
 | 
			
		||||
            )
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -63,7 +63,7 @@ class WuttaDateTime(colander.DateTime):
 | 
			
		|||
        for fmt in formats:
 | 
			
		||||
            try:
 | 
			
		||||
                return datetime.datetime.strptime(cstruct, fmt)
 | 
			
		||||
            except:
 | 
			
		||||
            except Exception:  # pylint: disable=broad-exception-caught
 | 
			
		||||
                pass
 | 
			
		||||
 | 
			
		||||
        node.raise_invalid("Invalid date and/or time")
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -37,8 +37,8 @@ from paginate_sqlalchemy import SqlalchemyOrmPage
 | 
			
		|||
from pyramid.renderers import render
 | 
			
		||||
from webhelpers2.html import HTML
 | 
			
		||||
 | 
			
		||||
from wuttaweb.util import FieldList, get_model_fields, make_json_safe
 | 
			
		||||
from wuttjamaican.db.util import UUID
 | 
			
		||||
from wuttaweb.util import FieldList, get_model_fields, make_json_safe
 | 
			
		||||
from wuttaweb.grids.filters import default_sqlalchemy_filters, VerbNotSupported
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -379,14 +379,14 @@ class Grid:  # pylint: disable=too-many-instance-attributes
 | 
			
		|||
        key=None,
 | 
			
		||||
        columns=None,
 | 
			
		||||
        data=None,
 | 
			
		||||
        labels={},
 | 
			
		||||
        renderers={},
 | 
			
		||||
        enums={},
 | 
			
		||||
        labels=None,
 | 
			
		||||
        renderers=None,
 | 
			
		||||
        enums=None,
 | 
			
		||||
        checkable=False,
 | 
			
		||||
        row_class=None,
 | 
			
		||||
        actions=[],
 | 
			
		||||
        linked_columns=[],
 | 
			
		||||
        hidden_columns=[],
 | 
			
		||||
        actions=None,
 | 
			
		||||
        linked_columns=None,
 | 
			
		||||
        hidden_columns=None,
 | 
			
		||||
        sortable=False,
 | 
			
		||||
        sort_multiple=True,
 | 
			
		||||
        sort_on_backend=True,
 | 
			
		||||
| 
						 | 
				
			
			@ -467,7 +467,7 @@ class Grid:  # pylint: disable=too-many-instance-attributes
 | 
			
		|||
 | 
			
		||||
        # enums
 | 
			
		||||
        self.enums = {}
 | 
			
		||||
        for k in enums:
 | 
			
		||||
        for k in enums or {}:
 | 
			
		||||
            self.set_enum(k, enums[k])
 | 
			
		||||
 | 
			
		||||
    def get_columns(self):
 | 
			
		||||
| 
						 | 
				
			
			@ -1853,7 +1853,7 @@ class Grid:  # pylint: disable=too-many-instance-attributes
 | 
			
		|||
                data = filtr.apply_filter(data)
 | 
			
		||||
            except VerbNotSupported as error:
 | 
			
		||||
                log.warning("verb not supported for '%s' filter: %s", key, error.verb)
 | 
			
		||||
            except:
 | 
			
		||||
            except Exception:  # pylint: disable=broad-exception-caught
 | 
			
		||||
                log.exception("filtering data by '%s' failed!", key)
 | 
			
		||||
 | 
			
		||||
        return data
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -63,7 +63,7 @@ class GridFilter:  # pylint: disable=too-many-instance-attributes
 | 
			
		|||
       column by which to filter.  For instance,
 | 
			
		||||
       ``model.Person.full_name``.
 | 
			
		||||
 | 
			
		||||
    :param \**kwargs: Any additional kwargs will be set as attributes
 | 
			
		||||
    :param \\**kwargs: Any additional kwargs will be set as attributes
 | 
			
		||||
       on the filter instance.
 | 
			
		||||
 | 
			
		||||
    Filter instances have the following attributes:
 | 
			
		||||
| 
						 | 
				
			
			@ -175,7 +175,7 @@ class GridFilter:  # pylint: disable=too-many-instance-attributes
 | 
			
		|||
        key,
 | 
			
		||||
        label=None,
 | 
			
		||||
        verbs=None,
 | 
			
		||||
        choices={},
 | 
			
		||||
        choices=None,
 | 
			
		||||
        default_active=False,
 | 
			
		||||
        default_verb=None,
 | 
			
		||||
        default_value=None,
 | 
			
		||||
| 
						 | 
				
			
			@ -198,7 +198,7 @@ class GridFilter:  # pylint: disable=too-many-instance-attributes
 | 
			
		|||
            self.default_verb = default_verb
 | 
			
		||||
 | 
			
		||||
        # choices
 | 
			
		||||
        self.set_choices(choices)
 | 
			
		||||
        self.set_choices(choices or {})
 | 
			
		||||
 | 
			
		||||
        # value
 | 
			
		||||
        self.default_value = default_value
 | 
			
		||||
| 
						 | 
				
			
			@ -358,7 +358,7 @@ class GridFilter:  # pylint: disable=too-many-instance-attributes
 | 
			
		|||
            verb = self.verb
 | 
			
		||||
        if not verb:
 | 
			
		||||
            verb = self.get_default_verb()
 | 
			
		||||
            log.warn(
 | 
			
		||||
            log.warning(
 | 
			
		||||
                "missing verb for '%s' filter, will use default verb: %s",
 | 
			
		||||
                self.key,
 | 
			
		||||
                verb,
 | 
			
		||||
| 
						 | 
				
			
			@ -582,7 +582,7 @@ class IntegerAlchemyFilter(NumericAlchemyFilter):
 | 
			
		|||
        if value:
 | 
			
		||||
            try:
 | 
			
		||||
                return int(value)
 | 
			
		||||
            except:
 | 
			
		||||
            except Exception:  # pylint: disable=broad-exception-caught
 | 
			
		||||
                pass
 | 
			
		||||
        return None
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -187,8 +187,8 @@ class WebHandler(GenericHandler):
 | 
			
		|||
 | 
			
		||||
        # registered via entry points
 | 
			
		||||
        registered = []
 | 
			
		||||
        for Handler in load_entry_points(f"{self.appname}.web.menus").values():
 | 
			
		||||
            spec = Handler.get_spec()
 | 
			
		||||
        for handler in load_entry_points(f"{self.appname}.web.menus").values():
 | 
			
		||||
            spec = handler.get_spec()
 | 
			
		||||
            if spec not in handlers:
 | 
			
		||||
                registered.append(spec)
 | 
			
		||||
        if registered:
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -51,8 +51,8 @@ This module contains the following references:
 | 
			
		|||
 | 
			
		||||
"""
 | 
			
		||||
 | 
			
		||||
from webhelpers2.html import *
 | 
			
		||||
from webhelpers2.html.tags import *
 | 
			
		||||
from webhelpers2.html import *  # pylint: disable=wildcard-import,unused-wildcard-import
 | 
			
		||||
from webhelpers2.html.tags import *  # pylint: disable=wildcard-import,unused-wildcard-import
 | 
			
		||||
 | 
			
		||||
from wuttaweb.util import (  # pylint: disable=unused-import
 | 
			
		||||
    get_liburl,
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -314,7 +314,7 @@ class AuthView(View):
 | 
			
		|||
def defaults(config, **kwargs):
 | 
			
		||||
    base = globals()
 | 
			
		||||
 | 
			
		||||
    AuthView = kwargs.get("AuthView", base["AuthView"])
 | 
			
		||||
    AuthView = kwargs.get("AuthView", base["AuthView"])  # pylint: disable=invalid-name
 | 
			
		||||
    AuthView.defaults(config)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -127,7 +127,7 @@ class BatchMasterView(MasterView):
 | 
			
		|||
        model = self.app.model
 | 
			
		||||
 | 
			
		||||
        # created_by
 | 
			
		||||
        CreatedBy = orm.aliased(model.User)
 | 
			
		||||
        CreatedBy = orm.aliased(model.User)  # pylint: disable=invalid-name
 | 
			
		||||
        g.set_joiner(
 | 
			
		||||
            "created_by",
 | 
			
		||||
            lambda q: q.join(
 | 
			
		||||
| 
						 | 
				
			
			@ -221,7 +221,7 @@ class BatchMasterView(MasterView):
 | 
			
		|||
        on the batch handler - when creating.  Parent/default logic is
 | 
			
		||||
        used when updating.
 | 
			
		||||
 | 
			
		||||
        :param \**kwargs: Additional kwargs will be passed as-is to
 | 
			
		||||
        :param \\**kwargs: Additional kwargs will be passed as-is to
 | 
			
		||||
           the ``make_batch()`` call.
 | 
			
		||||
        """
 | 
			
		||||
        if self.creating:
 | 
			
		||||
| 
						 | 
				
			
			@ -329,7 +329,7 @@ class BatchMasterView(MasterView):
 | 
			
		|||
            self.batch_handler.do_populate(batch, progress=progress)
 | 
			
		||||
            session.flush()
 | 
			
		||||
 | 
			
		||||
        except Exception as error:
 | 
			
		||||
        except Exception as error:  # pylint: disable=broad-exception-caught
 | 
			
		||||
            session.rollback()
 | 
			
		||||
            log.warning(
 | 
			
		||||
                "failed to populate %s: %s",
 | 
			
		||||
| 
						 | 
				
			
			@ -367,7 +367,7 @@ class BatchMasterView(MasterView):
 | 
			
		|||
 | 
			
		||||
        try:
 | 
			
		||||
            self.batch_handler.do_execute(batch, self.request.user)
 | 
			
		||||
        except Exception as error:
 | 
			
		||||
        except Exception as error:  # pylint: disable=broad-exception-caught
 | 
			
		||||
            log.warning("failed to execute batch: %s", batch, exc_info=True)
 | 
			
		||||
            self.request.session.flash(f"Execution failed!: {error}", "error")
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -383,8 +383,8 @@ class BatchMasterView(MasterView):
 | 
			
		|||
        if hasattr(cls, "row_model_class"):
 | 
			
		||||
            return cls.row_model_class
 | 
			
		||||
 | 
			
		||||
        Batch = cls.get_model_class()
 | 
			
		||||
        return Batch.__row_class__
 | 
			
		||||
        model_class = cls.get_model_class()
 | 
			
		||||
        return model_class.__row_class__
 | 
			
		||||
 | 
			
		||||
    def get_row_grid_data(self, batch):
 | 
			
		||||
        """
 | 
			
		||||
| 
						 | 
				
			
			@ -392,8 +392,10 @@ class BatchMasterView(MasterView):
 | 
			
		|||
        :attr:`~wuttjamaican:wuttjamaican.db.model.batch.BatchMixin.rows`
 | 
			
		||||
        data.
 | 
			
		||||
        """
 | 
			
		||||
        BatchRow = self.get_row_model_class()
 | 
			
		||||
        query = self.Session.query(BatchRow).filter(BatchRow.batch == batch)
 | 
			
		||||
        row_model_class = self.get_row_model_class()
 | 
			
		||||
        query = self.Session.query(row_model_class).filter(
 | 
			
		||||
            row_model_class.batch == batch
 | 
			
		||||
        )
 | 
			
		||||
        return query
 | 
			
		||||
 | 
			
		||||
    def configure_row_grid(self, g):  # pylint: disable=empty-docstring
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -109,7 +109,7 @@ class CommonView(View):
 | 
			
		|||
        # send email
 | 
			
		||||
        try:
 | 
			
		||||
            self.feedback_send(context)
 | 
			
		||||
        except Exception as error:
 | 
			
		||||
        except Exception as error:  # pylint: disable=broad-exception-caught
 | 
			
		||||
            log.warning("failed to send feedback email", exc_info=True)
 | 
			
		||||
            return {"error": str(error) or error.__class__.__name__}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -287,7 +287,7 @@ class CommonView(View):
 | 
			
		|||
        if theme:
 | 
			
		||||
            try:
 | 
			
		||||
                set_app_theme(self.request, theme, session=Session())
 | 
			
		||||
            except Exception as error:
 | 
			
		||||
            except Exception as error:  # pylint: disable=broad-exception-caught
 | 
			
		||||
                error = self.app.render_error(error)
 | 
			
		||||
                self.request.session.flash(f"Failed to set theme: {error}", "error")
 | 
			
		||||
        referrer = self.request.params.get("referrer") or self.request.get_referrer()
 | 
			
		||||
| 
						 | 
				
			
			@ -345,7 +345,9 @@ class CommonView(View):
 | 
			
		|||
def defaults(config, **kwargs):
 | 
			
		||||
    base = globals()
 | 
			
		||||
 | 
			
		||||
    CommonView = kwargs.get("CommonView", base["CommonView"])
 | 
			
		||||
    CommonView = kwargs.get(  # pylint: disable=invalid-name
 | 
			
		||||
        "CommonView", base["CommonView"]
 | 
			
		||||
    )
 | 
			
		||||
    CommonView.defaults(config)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -301,7 +301,9 @@ class EmailSettingView(MasterView):
 | 
			
		|||
def defaults(config, **kwargs):
 | 
			
		||||
    base = globals()
 | 
			
		||||
 | 
			
		||||
    EmailSettingView = kwargs.get("EmailSettingView", base["EmailSettingView"])
 | 
			
		||||
    EmailSettingView = kwargs.get(  # pylint: disable=invalid-name
 | 
			
		||||
        "EmailSettingView", base["EmailSettingView"]
 | 
			
		||||
    )
 | 
			
		||||
    EmailSettingView.defaults(config)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -34,11 +34,11 @@ from sqlalchemy import orm
 | 
			
		|||
from pyramid.renderers import render_to_response
 | 
			
		||||
from webhelpers2.html import HTML
 | 
			
		||||
 | 
			
		||||
from wuttaweb.views import View
 | 
			
		||||
from wuttjamaican.util import get_class_hierarchy
 | 
			
		||||
from wuttaweb.views.base import View
 | 
			
		||||
from wuttaweb.util import get_form_data, render_csrf_token
 | 
			
		||||
from wuttaweb.db import Session
 | 
			
		||||
from wuttaweb.progress import SessionProgress
 | 
			
		||||
from wuttjamaican.util import get_class_hierarchy
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
log = logging.getLogger(__name__)
 | 
			
		||||
| 
						 | 
				
			
			@ -826,7 +826,7 @@ class MasterView(View):
 | 
			
		|||
        try:
 | 
			
		||||
            self.delete_bulk_action(records, progress=progress)
 | 
			
		||||
 | 
			
		||||
        except Exception as error:
 | 
			
		||||
        except Exception as error:  # pylint: disable=broad-exception-caught
 | 
			
		||||
            session.rollback()
 | 
			
		||||
            log.warning(
 | 
			
		||||
                "failed to delete %s results for %s",
 | 
			
		||||
| 
						 | 
				
			
			@ -1128,7 +1128,7 @@ class MasterView(View):
 | 
			
		|||
        try:
 | 
			
		||||
            self.execute_instance(obj, user, progress=progress)
 | 
			
		||||
 | 
			
		||||
        except Exception as error:
 | 
			
		||||
        except Exception as error:  # pylint: disable=broad-exception-caught
 | 
			
		||||
            session.rollback()
 | 
			
		||||
            log.warning("%s failed to execute: %s", model_title, obj, exc_info=True)
 | 
			
		||||
            if progress:
 | 
			
		||||
| 
						 | 
				
			
			@ -1651,7 +1651,7 @@ class MasterView(View):
 | 
			
		|||
           button act like a link.  This will yield something like:
 | 
			
		||||
           ``<b-button tag="a" href="{url}">``
 | 
			
		||||
 | 
			
		||||
        :param \**kwargs: All remaining kwargs are passed to the
 | 
			
		||||
        :param \\**kwargs: All remaining kwargs are passed to the
 | 
			
		||||
           underlying ``HTML.tag()`` call, so will be rendered as
 | 
			
		||||
           attributes on the button tag.
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -2260,7 +2260,7 @@ class MasterView(View):
 | 
			
		|||
 | 
			
		||||
        :param obj: Model instance object.
 | 
			
		||||
 | 
			
		||||
        :param \**kwargs: Additional kwargs to be passed to
 | 
			
		||||
        :param \\**kwargs: Additional kwargs to be passed to
 | 
			
		||||
           ``request.route_url()``, if needed.
 | 
			
		||||
        """
 | 
			
		||||
        kw = self.get_action_route_kwargs(obj)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -210,7 +210,9 @@ class PersonView(MasterView):
 | 
			
		|||
def defaults(config, **kwargs):
 | 
			
		||||
    base = globals()
 | 
			
		||||
 | 
			
		||||
    PersonView = kwargs.get("PersonView", base["PersonView"])
 | 
			
		||||
    PersonView = kwargs.get(  # pylint: disable=invalid-name
 | 
			
		||||
        "PersonView", base["PersonView"]
 | 
			
		||||
    )
 | 
			
		||||
    PersonView.defaults(config)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -264,7 +264,9 @@ class ReportView(MasterView):
 | 
			
		|||
def defaults(config, **kwargs):
 | 
			
		||||
    base = globals()
 | 
			
		||||
 | 
			
		||||
    ReportView = kwargs.get("ReportView", base["ReportView"])
 | 
			
		||||
    ReportView = kwargs.get(  # pylint: disable=invalid-name
 | 
			
		||||
        "ReportView", base["ReportView"]
 | 
			
		||||
    )
 | 
			
		||||
    ReportView.defaults(config)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -374,10 +374,12 @@ class PermissionView(MasterView):
 | 
			
		|||
def defaults(config, **kwargs):
 | 
			
		||||
    base = globals()
 | 
			
		||||
 | 
			
		||||
    RoleView = kwargs.get("RoleView", base["RoleView"])
 | 
			
		||||
    RoleView = kwargs.get("RoleView", base["RoleView"])  # pylint: disable=invalid-name
 | 
			
		||||
    RoleView.defaults(config)
 | 
			
		||||
 | 
			
		||||
    PermissionView = kwargs.get("PermissionView", base["PermissionView"])
 | 
			
		||||
    PermissionView = kwargs.get(  # pylint: disable=invalid-name
 | 
			
		||||
        "PermissionView", base["PermissionView"]
 | 
			
		||||
    )
 | 
			
		||||
    PermissionView.defaults(config)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -278,10 +278,14 @@ class SettingView(MasterView):
 | 
			
		|||
def defaults(config, **kwargs):
 | 
			
		||||
    base = globals()
 | 
			
		||||
 | 
			
		||||
    AppInfoView = kwargs.get("AppInfoView", base["AppInfoView"])
 | 
			
		||||
    AppInfoView = kwargs.get(  # pylint: disable=invalid-name
 | 
			
		||||
        "AppInfoView", base["AppInfoView"]
 | 
			
		||||
    )
 | 
			
		||||
    AppInfoView.defaults(config)
 | 
			
		||||
 | 
			
		||||
    SettingView = kwargs.get("SettingView", base["SettingView"])
 | 
			
		||||
    SettingView = kwargs.get(  # pylint: disable=invalid-name
 | 
			
		||||
        "SettingView", base["SettingView"]
 | 
			
		||||
    )
 | 
			
		||||
    SettingView.defaults(config)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -86,7 +86,7 @@ class UpgradeView(MasterView):
 | 
			
		|||
 | 
			
		||||
        # created_by
 | 
			
		||||
        g.set_link("created_by")
 | 
			
		||||
        Creator = orm.aliased(model.User)
 | 
			
		||||
        Creator = orm.aliased(model.User)  # pylint: disable=invalid-name
 | 
			
		||||
        g.set_joiner(
 | 
			
		||||
            "created_by",
 | 
			
		||||
            lambda q: q.join(Creator, Creator.uuid == model.Upgrade.created_by_uuid),
 | 
			
		||||
| 
						 | 
				
			
			@ -101,7 +101,7 @@ class UpgradeView(MasterView):
 | 
			
		|||
 | 
			
		||||
        # executed_by
 | 
			
		||||
        g.set_link("executed_by")
 | 
			
		||||
        Executor = orm.aliased(model.User)
 | 
			
		||||
        Executor = orm.aliased(model.User)  # pylint: disable=invalid-name
 | 
			
		||||
        g.set_joiner(
 | 
			
		||||
            "executed_by",
 | 
			
		||||
            lambda q: q.outerjoin(
 | 
			
		||||
| 
						 | 
				
			
			@ -378,7 +378,9 @@ class UpgradeView(MasterView):
 | 
			
		|||
def defaults(config, **kwargs):
 | 
			
		||||
    base = globals()
 | 
			
		||||
 | 
			
		||||
    UpgradeView = kwargs.get("UpgradeView", base["UpgradeView"])
 | 
			
		||||
    UpgradeView = kwargs.get(  # pylint: disable=invalid-name
 | 
			
		||||
        "UpgradeView", base["UpgradeView"]
 | 
			
		||||
    )
 | 
			
		||||
    UpgradeView.defaults(config)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -418,7 +418,7 @@ class UserView(MasterView):
 | 
			
		|||
def defaults(config, **kwargs):
 | 
			
		||||
    base = globals()
 | 
			
		||||
 | 
			
		||||
    UserView = kwargs.get("UserView", base["UserView"])
 | 
			
		||||
    UserView = kwargs.get("UserView", base["UserView"])  # pylint: disable=invalid-name
 | 
			
		||||
    UserView.defaults(config)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue