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