diff --git a/basxbread/contrib/modeledit/views.py b/basxbread/contrib/modeledit/views.py index daa94f3a..1545f4b0 100644 --- a/basxbread/contrib/modeledit/views.py +++ b/basxbread/contrib/modeledit/views.py @@ -72,9 +72,11 @@ def test(request): content = hg.DIV( *[ - layout.grid.Row(layout.grid.Col(forms.FormField(f))) - if f == "type" - else forms.FormField(f) + ( + layout.grid.Row(layout.grid.Col(forms.FormField(f))) + if f == "type" + else forms.FormField(f) + ) for f in FieldForm().fields ], style=hg.format( diff --git a/basxbread/contrib/reports/views.py b/basxbread/contrib/reports/views.py index f2a0b3bf..0210917a 100644 --- a/basxbread/contrib/reports/views.py +++ b/basxbread/contrib/reports/views.py @@ -143,11 +143,13 @@ def get_layout(self): views.header(), layout.datatable.DataTable( columns=columns, - row_iterator=paginator.get_page( - self.request.GET.get(pagination_config.page_urlparameter) - ) - if self.object.pagination - else qs, + row_iterator=( + paginator.get_page( + self.request.GET.get(pagination_config.page_urlparameter) + ) + if self.object.pagination + else qs + ), ).with_toolbar( title=self.object.name, helper_text=f"{self.object.queryset.count()} " diff --git a/basxbread/contrib/triggers/models.py b/basxbread/contrib/triggers/models.py index 2537ff70..7292214d 100644 --- a/basxbread/contrib/triggers/models.py +++ b/basxbread/contrib/triggers/models.py @@ -134,8 +134,8 @@ class Trigger(models.Model): filter = QuerysetField(_("Filter"), modelfieldname="model") enable = models.BooleanField(default=True) action = models.ForeignKey(Action, on_delete=models.PROTECT, null=True) - action.lazy_choices = ( - lambda field, request, instance: Action.objects.all() + action.lazy_choices = lambda field, request, instance: ( + Action.objects.all() if not instance or not instance.id else Action.objects.filter(model=instance.model) ) diff --git a/basxbread/layout/components/datatable.py b/basxbread/layout/components/datatable.py index 6c5accdd..9b59005a 100644 --- a/basxbread/layout/components/datatable.py +++ b/basxbread/layout/components/datatable.py @@ -246,11 +246,13 @@ def with_toolbar( return hg.DIV( hg.DIV(*header, _class="bx--data-table-header") if useheading else hg.DIV(), hg.SECTION( - None - if useheading - else hg.H5( - title, - style="align-self: center; width: 100%; padding-left: 1rem; margin-bottom: 0;", + ( + None + if useheading + else hg.H5( + title, + style="align-self: center; width: 100%; padding-left: 1rem; margin-bottom: 0;", + ) ), hg.DIV( hg.DIV( @@ -279,16 +281,18 @@ def with_toolbar( ), hg.DIV( searchbar(search_urlparameter) if search_urlparameter else None, - Button( - icon="settings--adjust", - buttontype="ghost", - onclick=""" + ( + Button( + icon="settings--adjust", + buttontype="ghost", + onclick=""" let settings = this.parentElement.parentElement.parentElement.querySelector('.settingscontainer'); settings.style.display = settings.style.display == 'block' ? 'none' : 'block'; event.stopPropagation()""", - ) - if settingspanel - else None, + ) + if settingspanel + else None + ), primary_button or None, _class="bx--toolbar-content", ), @@ -388,14 +392,16 @@ def from_queryset( rowactions, "link", hg.F( - lambda c: Button.from_link( - c["link"], - notext=True, - small=True, - buttontype="ghost", + lambda c: ( + Button.from_link( + c["link"], + notext=True, + small=True, + buttontype="ghost", + ) + if isinstance(c["link"], Link) + else c["link"] ) - if isinstance(c["link"], Link) - else c["link"] ), ), style="display: flex; justify-content: flex-end;", @@ -452,9 +458,9 @@ def queryset_func(context): objectactions_menu, td_attributes=hg.F( lambda c: { - "_class": "bx--table-column-menu" - if rowactions_dropdown - else "" + "_class": ( + "bx--table-column-menu" if rowactions_dropdown else "" + ) } ), th_attributes=hg.F(lambda c: {"_class": "bx--table-column-menu"}), @@ -480,9 +486,11 @@ def queryset_func(context): hg.format( "{} {}", hg.F( - lambda c: len(hg.resolve_lazy(queryset, c)) - if pagination_config is None - else pagination_config.paginator.count + lambda c: ( + len(hg.resolve_lazy(queryset, c)) + if pagination_config is None + else pagination_config.paginator.count + ) ), hg.If( hg.F(lambda c: hg.resolve_lazy(queryset.count(), c) == 1), @@ -666,9 +674,9 @@ def searchbar(search_urlparameter: str): }, width="100%", ) - searchinput.close_button.attributes[ - "onclick" - ] = "this.closest('form').querySelector('input').value = ''; this.closest('form').submit()" + searchinput.close_button.attributes["onclick"] = ( + "this.closest('form').querySelector('input').value = ''; this.closest('form').submit()" + ) return hg.DIV( hg.FORM( diff --git a/basxbread/layout/components/forms/__init__.py b/basxbread/layout/components/forms/__init__.py index b5c5ba45..c7461066 100644 --- a/basxbread/layout/components/forms/__init__.py +++ b/basxbread/layout/components/forms/__init__.py @@ -356,11 +356,13 @@ def as_datatable( **kwargs, ).with_toolbar( title=title, - primary_button=formsetelem.add_button( - buttontype="primary", container_css_selector=f"#{id} tbody" - ) - if can_add - else None, + primary_button=( + formsetelem.add_button( + buttontype="primary", container_css_selector=f"#{id} tbody" + ) + if can_add + else None + ), useheading=False, ), formsetelem.management_form, @@ -397,14 +399,16 @@ def as_fieldset( ), hg.FIELDSET(hg.H4(title), formsetelem, id=id), formsetelem.management_form, - formsetelem.add_button( - buttontype="ghost", - notext=False, - label="+", - container_css_selector=f"#{id}", - ) - if can_add - else None, + ( + formsetelem.add_button( + buttontype="ghost", + notext=False, + label="+", + container_css_selector=f"#{id}", + ) + if can_add + else None + ), ) diff --git a/basxbread/layout/components/forms/fields.py b/basxbread/layout/components/forms/fields.py index 69b7eed0..ce60a2cf 100644 --- a/basxbread/layout/components/forms/fields.py +++ b/basxbread/layout/components/forms/fields.py @@ -100,9 +100,11 @@ def buildattribs(context): ) return { "id": id, - "name": realform[fieldname].html_initial_name - if show_hidden_initial - else realform[fieldname].html_name, + "name": ( + realform[fieldname].html_initial_name + if show_hidden_initial + else realform[fieldname].html_name + ), "value": realform[fieldname].value(), **realform[fieldname].build_widget_attrs({}), **realform[fieldname].field.widget.attrs, diff --git a/basxbread/layout/components/forms/search_select.py b/basxbread/layout/components/forms/search_select.py index e421ca1e..898dd063 100644 --- a/basxbread/layout/components/forms/search_select.py +++ b/basxbread/layout/components/forms/search_select.py @@ -32,13 +32,15 @@ def __init__( super().__init__( label, Tag( - hg.F( - lambda c: hg.resolve_lazy(boundfield, c).field.to_python( - hg.resolve_lazy(boundfield, c).value() + ( + hg.F( + lambda c: hg.resolve_lazy(boundfield, c).field.to_python( + hg.resolve_lazy(boundfield, c).value() + ) ) - ) - if boundfield - else "", + if boundfield + else "" + ), id=tag_id, style=hg.If( inputelement_attrs.get("value"), diff --git a/basxbread/layout/components/forms/widgets.py b/basxbread/layout/components/forms/widgets.py index 72662ed7..dafc0cfc 100644 --- a/basxbread/layout/components/forms/widgets.py +++ b/basxbread/layout/components/forms/widgets.py @@ -396,13 +396,15 @@ def __init__( ), hg.SELECT( hg.Iterator( - _optgroups_from_choices( - choices, - name=inputelement_attrs.get("name"), - value=inputelement_attrs.get("value"), - ) - if choices - else _gen_optgroup(boundfield), + ( + _optgroups_from_choices( + choices, + name=inputelement_attrs.get("name"), + value=inputelement_attrs.get("value"), + ) + if choices + else _gen_optgroup(boundfield) + ), "optgroup", hg.If( hg.C("optgroup.0"), diff --git a/basxbread/layout/components/icon.py b/basxbread/layout/components/icon.py index cab0f3b4..a6f216a6 100644 --- a/basxbread/layout/components/icon.py +++ b/basxbread/layout/components/icon.py @@ -8,7 +8,6 @@ class Icon(hg.SVG): - """Insert the SVG for a carbon icon. See https://www.carbondesignsystem.com/guidelines/icons/library for a list of all icons. In order to see the name which should be passed to this template tag, click on "Download SVG" diff --git a/basxbread/layout/components/modal.py b/basxbread/layout/components/modal.py index f6cf4d4a..56ba75dd 100644 --- a/basxbread/layout/components/modal.py +++ b/basxbread/layout/components/modal.py @@ -75,12 +75,14 @@ def __init__( ), self.contentcontainer, hg.DIV(_class="bx--modal-content--overflow-indicator"), - hg.DIV( - *buttons, - _class="bx--modal-footer", - ) - if buttons - else "", + ( + hg.DIV( + *buttons, + _class="bx--modal-footer", + ) + if buttons + else "" + ), _class=f"bx--modal-container bx--modal-container--{size}", ), data_modal=True, diff --git a/basxbread/layout/components/shell_header.py b/basxbread/layout/components/shell_header.py index 1bf45a2b..dbded48e 100644 --- a/basxbread/layout/components/shell_header.py +++ b/basxbread/layout/components/shell_header.py @@ -90,13 +90,15 @@ def variable_size_header_part(platform, company, searchbar, hide): style="font-weight: 400", # override carbon design href=hg.F(lambda c: c["request"].META["SCRIPT_NAME"] or "/"), ), - None - if hide - else hg.A( - hg.SPAN(company), - _class="bx--header__name", - style="font-weight: 400", # override carbon design - href=hg.F(lambda c: c["request"].META["SCRIPT_NAME"] or "/"), + ( + None + if hide + else hg.A( + hg.SPAN(company), + _class="bx--header__name", + style="font-weight: 400", # override carbon design + href=hg.F(lambda c: c["request"].META["SCRIPT_NAME"] or "/"), + ) ), hg.If( searchbar, diff --git a/basxbread/views/browse.py b/basxbread/views/browse.py index 526d849a..3966d8fd 100644 --- a/basxbread/views/browse.py +++ b/basxbread/views/browse.py @@ -225,14 +225,16 @@ def get_layout(self, **datatable_kwargs): # rowactions_dropdown=len(self.rowactions) > 2, # recommendation from carbon design rowactions_dropdown=False, # will not work with submit-actions, which trigger a modal rowclickaction=self.rowclickaction, - pagination_config=layout.pagination.PaginationConfig( - items_per_page_options=self.items_per_page_options, - page_urlparameter=self.page_kwarg, - paginator=self.get_paginator(fullqueryset, paginate_by), - itemsperpage_urlparameter=self.itemsperpage_urlparameter, - ) - if paginate_by > 0 - else None, + pagination_config=( + layout.pagination.PaginationConfig( + items_per_page_options=self.items_per_page_options, + page_urlparameter=self.page_kwarg, + paginator=self.get_paginator(fullqueryset, paginate_by), + itemsperpage_urlparameter=self.itemsperpage_urlparameter, + ) + if paginate_by > 0 + else None + ), checkbox_for_bulkaction_name=self.objectids_urlparameter, title=self.title, settingspanel=self.get_settingspanel(), @@ -307,9 +309,9 @@ def get(self, *args, **kwargs): + "?" + self.request.session[self.viewstate_sessionkey] ) - self.request.session[ - self.viewstate_sessionkey - ] = self.request.GET.urlencode() + self.request.session[self.viewstate_sessionkey] = ( + self.request.GET.urlencode() + ) return super().get(*args, **kwargs) @@ -487,9 +489,11 @@ def delete(request, queryset, softdeletefield=None, required_permissions=None): _("Deleted %(count)s %(modelname)s") % { "count": deleted, - "modelname": queryset.model._meta.verbose_name_plural - if deleted > 1 - else queryset.model._meta.verbose_name, + "modelname": ( + queryset.model._meta.verbose_name_plural + if deleted > 1 + else queryset.model._meta.verbose_name + ), }, ) @@ -525,9 +529,11 @@ def restore(request, queryset, softdeletefield, required_permissions=None): _("Restored %(count)s %(modelname)s") % { "count": restored, - "modelname": queryset.model._meta.verbose_name_plural - if restored > 1 - else queryset.model._meta.verbose_name, + "modelname": ( + queryset.model._meta.verbose_name_plural + if restored > 1 + else queryset.model._meta.verbose_name + ), }, ) diff --git a/basxbread/views/userprofile.py b/basxbread/views/userprofile.py index 9a2c7367..78f2d613 100644 --- a/basxbread/views/userprofile.py +++ b/basxbread/views/userprofile.py @@ -280,9 +280,9 @@ def form_valid(self, form): httponly=settings.LANGUAGE_COOKIE_HTTPONLY, samesite=settings.LANGUAGE_COOKIE_SAMESITE, ) - self.request.user.preferences[ - "general__preferred_language" - ] = form.cleaned_data["preferred_language"] + self.request.user.preferences["general__preferred_language"] = ( + form.cleaned_data["preferred_language"] + ) self.request.user.preferences["general__timezone"] = form.cleaned_data[ "timezone" ] @@ -396,8 +396,10 @@ def set_devmode(request, enable: str): request.session[layout.DEVMODE_KEY] = enable.lower() in ["true", "1"] messages.success( request, - _("Enabled developer mode") - if request.session[layout.DEVMODE_KEY] - else _("Disabled developer mode"), + ( + _("Enabled developer mode") + if request.session[layout.DEVMODE_KEY] + else _("Disabled developer mode") + ), ) return HttpResponse("OK") diff --git a/basxbread/views/util.py b/basxbread/views/util.py index 8986d5f1..24d566b0 100644 --- a/basxbread/views/util.py +++ b/basxbread/views/util.py @@ -158,9 +158,11 @@ def get_layout(self): else: direct_model_formfields = filter_fieldlist( self.model, - [f for f in self.fields if isinstance(f, str)] - if (self.fields is not None) - else None, + ( + [f for f in self.fields if isinstance(f, str)] + if (self.fields is not None) + else None + ), for_form=True, ) declared_formfields = list(self.fields or direct_model_formfields)