diff --git a/.ruff.toml b/.ruff.toml
index 465cba5a20d0c0811f0910eba42dc53d7c445823..a6ddc49a23a8912a023ae89b8e5cae9ffc9e6465 100644
--- a/.ruff.toml
+++ b/.ruff.toml
@@ -1,7 +1,7 @@
 line-length = 160
 extend-exclude = ["venv", ".tox", "migrations"]
 
-extend-select = ["C4", "DTZ", "E", "F", "G", "I002", "INT", "LOG", "PTH", "T20", "TID", "W"]
+extend-select = ["C4", "DTZ", "E", "F", "G", "I002", "INT", "PTH", "RUF005", "T20", "TID", "W"]
 ignore = ["TID252", "TD002"]
 
 [format]
diff --git a/src/api/views/maps.py b/src/api/views/maps.py
index 3aa7ab07053484523621321c8eb792a68c4bcfab..06ff9e3ba75727cc2c135f651fbe07d8558bcb38 100644
--- a/src/api/views/maps.py
+++ b/src/api/views/maps.py
@@ -68,7 +68,7 @@ class AssembliesExportView(ConferenceSlugMixin, APIView, metaclass=abc.ABCMeta):
     geometry_field = None
 
     def get_queryset(self):
-        exportable_states = Assembly.PLACED_STATES + [Assembly.State.HIDDEN]
+        exportable_states = [*Assembly.PLACED_STATES, Assembly.State.HIDDEN]
         return Assembly.objects.filter(conference=self.conference, state_assembly__in=exportable_states)
 
     def get_geometry_field(self, obj):
diff --git a/src/backoffice/forms.py b/src/backoffice/forms.py
index d063645581968b97d8ea8f26be13a8cd362e7d83..abb9a1749a7135cec7128cf0372c82227d4f6d8b 100644
--- a/src/backoffice/forms.py
+++ b/src/backoffice/forms.py
@@ -257,7 +257,7 @@ class AssemblyCreateRoomForm(forms.Form):
 
 class AssemblyCreateRoomGenericForm(AssemblyCreateRoomForm):
     room_type = forms.ChoiceField(
-        choices=[c for c in Room.RoomType.choices if c[0] not in Room.BACKEND_ROOMTYPES + [Room.RoomType.PROJECT]],
+        choices=[c for c in Room.RoomType.choices if c[0] not in [*Room.BACKEND_ROOMTYPES, Room.RoomType.PROJECT]],
         disabled=True,
     )
     capacity = forms.IntegerField(min_value=0)
diff --git a/src/backoffice/views/assemblyteam.py b/src/backoffice/views/assemblyteam.py
index 0d73b38301cb2e3d56c9cf10dbab010fd85fdf38..1f4e70af9c298c4599fa0c4eadf03f7c99e33837 100644
--- a/src/backoffice/views/assemblyteam.py
+++ b/src/backoffice/views/assemblyteam.py
@@ -298,7 +298,7 @@ class AssembliesListsView(AssembliesListMixin, View):
             qs_fields = ['slug', 'name', self.status_field, 'hierarchy', 'parent__slug', 'description', 'registration_details']
             if self.active_page == 'assemblies':
                 qs_fields.append('internal_comment')
-            qs = self.get_queryset().only(*(qs_fields + ['registration_data']))  # query qs_fields + additional data
+            qs = self.get_queryset().only(*([*qs_fields, 'registration_data']))  # query qs_fields + additional data
 
             variant_name = 'registration details'
             variant_fields = [_(f'Assembly__{fld}') for fld in qs_fields]  # noqa: INT001
diff --git a/src/core/admin.py b/src/core/admin.py
index 71cb40d3d70f4b4adc35a17a07d70272ed240432..87870bdce5a0b768a5b2d4939ba03c4db97bb5fb 100644
--- a/src/core/admin.py
+++ b/src/core/admin.py
@@ -430,7 +430,7 @@ class BadgeTokenAdmin(admin.ModelAdmin):
 
     def get_readonly_fields(self, request, obj=None):
         if obj:  # editing an existing object
-            return self.readonly_fields + ['badge']
+            return [*self.readonly_fields, 'badge']
         return self.readonly_fields
 
 
diff --git a/src/core/management/commands/suggestion_tick.py b/src/core/management/commands/suggestion_tick.py
index ddb0c60c37148cc6f9e49bc5ace1f8fe03352848..87336d54dc5fe26ace59c0a47812fb4cba4a3e6c 100644
--- a/src/core/management/commands/suggestion_tick.py
+++ b/src/core/management/commands/suggestion_tick.py
@@ -31,7 +31,7 @@ class Command(BaseCommand):
                     SELECT a.id, lk.likes
                     FROM core_assembly AS a INNER JOIN core_assemblylikecount AS lk ON a.id = lk.assembly1_id AND a.id=lk.assembly2_id
                     WHERE a.conference_id = %s AND state IN ({','.join(['%s'] * len(Assembly.PUBLIC_STATES))})
-            ''', [conf.pk] + Assembly.PUBLIC_STATES)
+            ''', [conf.pk, *Assembly.PUBLIC_STATES])
             for row in cursor.fetchall():
                 if row[1] == 0:
                     cursor.execute("UPDATE core_assemblylikecount SET like_ratio=0 WHERE assembly1_id=%s", [row[0]])
diff --git a/src/core/markdown.py b/src/core/markdown.py
index 894a28cf6fd230214cb7f632d882cf6ec27ec1bf..2b4fb2bfcd4a8dbe8f6a79688af9fd2a5054492d 100644
--- a/src/core/markdown.py
+++ b/src/core/markdown.py
@@ -225,11 +225,11 @@ def render_markdown_ex(conf: 'conference.Conference', markup: str,
 
     if sanitize_html:
         cleaner = bleach.Cleaner(
-            tags=[
+            tags=[*[
                 'br', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'ul', 'ol', 'li', 'dl',
                 'table', 'thead', 'tbody', 'th', 'td', 'tr', 'hr', 'p', 'pre',
                 'img', 'code', 'div', 'span'
-            ] + list(bleach.sanitizer.ALLOWED_TAGS),
+            ], *list(bleach.sanitizer.ALLOWED_TAGS)],
             attributes={
                 '*': ['class', 'id'],
                 'img': ['src', 'alt'],
diff --git a/src/hub/settings/default.py b/src/hub/settings/default.py
index fb965094417e55f50681a900081825174828f17d..79b08af9dbd0fb0812a275b70dd117a0f1edb5ae 100644
--- a/src/hub/settings/default.py
+++ b/src/hub/settings/default.py
@@ -117,20 +117,23 @@ if IS_API or IS_BACKOFFICE:
 
 # include frontend (plainui) project
 if IS_FRONTEND:
-    TEMPLATES = [{
-        'BACKEND': 'django.template.backends.jinja2.Jinja2',
-        'DIRS': [],
-        'APP_DIRS': True,
-        'OPTIONS': {
-            'context_processors': [
-                'django.template.context_processors.debug',
-                'django.template.context_processors.request',
-                'django.contrib.auth.context_processors.auth',
-                'django.contrib.messages.context_processors.messages',
-            ],
-            'environment': 'plainui.jinja2.environment',
+    TEMPLATES = [
+        {
+            'BACKEND': 'django.template.backends.jinja2.Jinja2',
+            'DIRS': [],
+            'APP_DIRS': True,
+            'OPTIONS': {
+                'context_processors': [
+                    'django.template.context_processors.debug',
+                    'django.template.context_processors.request',
+                    'django.contrib.auth.context_processors.auth',
+                    'django.contrib.messages.context_processors.messages',
+                ],
+                'environment': 'plainui.jinja2.environment',
+            },
         },
-    }] + TEMPLATES  # noqa F405
+        *TEMPLATES, # noqa F405
+    ]
 
     # TODO: make up a proper redirect mechanism
     LOGIN_URL = '/2021/login'  # this overwrites previous LOGIN_URL assignment(s) on purpose
diff --git a/src/hub/settings/dev.py b/src/hub/settings/dev.py
index 49784e045764c71f7d6a34cf4c73ed1b6b25da69..258a2a0baf5679c4fa2c173fd71ec69e5f26d7cc 100644
--- a/src/hub/settings/dev.py
+++ b/src/hub/settings/dev.py
@@ -84,7 +84,7 @@ except ImportError:
 try:
     import django_extensions  # noqa: F401
 
-    INSTALLED_APPS = ['django_extensions'] + INSTALLED_APPS  # noqa: F405
+    INSTALLED_APPS = ['django_extensions', *INSTALLED_APPS]  # noqa: F405
 
 except ImportError:
     pass