CASTLE: THE GAME

4.2

Exploring the basics

Your goal is to protect a castle against intruders, using brave defenders. These intruders try to occupy target fields at the back of the castle.

In order to do this, they need to enter and cross the courtyard. In doing so, they tend to avoid the defenders. Your defenders can challenge the intruders to a fight. If you use the right defender against a species of the intruders, the defender wins the fight. The game is over as soon as two intruders have occupied both fields of a target. It does not matter whether these two invaders belong to the same species.


Where it happens

“Castle” is a board game. The board shows circular fields in different colours. The castle yard has beige circles. The castle wall consists of dark brown circles. The entrance is marked with two even darker circles. On the left rear, you can see a yellow circle followed by three light brown circles. This is the passage through which new or recovering defenders are led step by step into the battle. At the top, the courtyard is closed by three pairs of fields in reddish brown. These are the target fields that intruders want to reach. The castle is surrounded by green circles. That is where the attackers will appear. The red line separates the outside from the inside. Attackers will try to cross it.

map of the castle with regions and buttons The game board representing the castle. Clockwise from the top: The “passage” includes the yellow circle and the three light brown squares. The target squares are the six reddish circles at the back. The castle courtyard is the square in the middle, which consists of beige fields. The circular green squares are outside the castle wall. The entrance to the castle courtyard (grey circles) allows access to the castle courtyard through the wall (dark brown circles).


Change the view

shield / mast cell Shield and mast cell: buttons to change the view.

On the right side of the playing area, you will see a shield. Click on it to switch from the medieval view to the medical view. Actors become cells of the immune system, the representations on the target fields change from bellows, armoury and dung heap to lungs, skin and intestine. Any medicines are also depicted differently. Switch back to the medieval view by clicking on the representation of the mast cell.


Starting to play: the characters

Defenders and intruders turn into different characters. Each character has its specifics when it comes to movement pattern, vincibility and the fields it can occupy. The intruders differ not only in terms of their target fields, but also in terms of where they enter the courtyard. Some fly over the wall, others crawl through the gate. You will find a comprehensive list of each game piece here.

When you start the game, you can first add to the defensive pieces that are already on the board. To do this, choose from a range of pieces by clicking on the one you want. You will then see the playing field, highlighted with the circles on which you can place the piece. Select one. After that, you will be taken back to the selection screen.

selection screen Selection panel: That is what you see when clicking on the guardroom button.

This view corresponds to the guardroom. You can select as many defensive elements as you like until there are seven of them on the board. However, you can also start the game with fewer defenders.

access to guardroom: Click this button to access the guardroom.

show range If you click on a defender you see where you can move it.

You then move your defenders across the board according to their range. When you click on one of your pieces, the green circles show where it might move. Click on the desired circle and your defender takes this place. You alternate moves with the attackers. Some of your interactions may count as moves even if you have not put a defender on a new circle.

Each attacker first appears on one of the bottom green fields. After your next move, the attacker hops to the next position. Only then will you see whether it wants to go over the wall or through the gate.

Try to beat an intruder even if you are not sure if your defender can overwhelm it. Once an attacker is in its target space, it is safe from all defenders. The attackers win the whole game as soon as two of them occupy the same target space. They do not have to be of the same species.

Lizenz

University of Basel

DJDT

Versions

Package Name Version
Django 4.2.17
Python 3.11.11
allauth Allauth 65.3.0.final.0
cachalot Cachalot 2.6.3
crispy_bootstrap5 Crispy_Bootstrap5 2024.10
crispy_forms Crispy_Forms 2.3
debug_toolbar Debug Toolbar 4.4.6
django_extensions Django Extensions 3.2.3
django_q Django Q 1.7.4
imagekit Imagekit 5.0.0
impersonate Impersonate 1.9.4
markdownx Markdownx 4.0.7
mozilla_django_oidc Mozilla_Django_Oidc 4.0.1
notifications Notifications 1.8.3
rosetta Rosetta 0.10.1
rules Rules 3.5.0.final.1
simple_history Simple_History 3.7.0
storages Storages 1.14.4
tos Terms Of Service 1.1.0
waffle django-waffle 4.1.0

Time

Resource usage

Resource Value
User CPU time 184.258 msec
System CPU time 15.054 msec
Total CPU time 199.312 msec
Elapsed time 205.426 msec
Context switches 88 voluntary, 13 involuntary

Browser timing

Timing attribute Timeline Milliseconds since navigation start (+length)

Settings from config.settings.staging

Setting Value
ABSOLUTE_URL_OVERRIDES {}
ACCOUNT_ADAPTER 'lms_base.adapter.AccountAdapter'
ADMINS (('admin', 'notifications-nmc@unibas.ch'),)
ADMIN_URL 'admin/'
ALLOWED_HOSTS ['*']
APPEND_SLASH True
AUTHENTICATION_BACKENDS ('rules.permissions.ObjectPermissionBackend', 'lms_base.authentication.EDUIDAuthenticationBackend', 'django.contrib.auth.backends.ModelBackend')
AUTH_PASSWORD_VALIDATORS '********************'
AUTH_USER_MODEL 'users.User'
BASE_DIR '/app/project/config/../'
CACHALOT_ENABLED True
CACHES {'default': {'BACKEND': 'django_redis.cache.RedisCache', 'LOCATION': 'redis://tales-redis:6379/1', 'OPTIONS': {'CLIENT_CLASS': 'django_redis.client.DefaultClient', 'IGNORE_EXCEPTIONS': True}}}
CACHE_MIDDLEWARE_ALIAS 'default'
CACHE_MIDDLEWARE_KEY_PREFIX '********************'
CACHE_MIDDLEWARE_SECONDS 600
CI_COMMIT_SHORT_SHA '7df23ad9'
CI_COMMIT_TAG ''
CRISPY_ALLOWED_TEMPLATE_PACKS 'bootstrap5'
CRISPY_TEMPLATE_PACK 'bootstrap5'
CSRF_COOKIE_AGE 31449600
CSRF_COOKIE_DOMAIN None
CSRF_COOKIE_HTTPONLY False
CSRF_COOKIE_MASKED False
CSRF_COOKIE_NAME 'csrftoken'
CSRF_COOKIE_PATH '/'
CSRF_COOKIE_SAMESITE None
CSRF_COOKIE_SECURE False
CSRF_FAILURE_VIEW 'django.views.csrf.csrf_failure'
CSRF_HEADER_NAME 'HTTP_X_CSRFTOKEN'
CSRF_TRUSTED_ORIGINS []
CSRF_USE_SESSIONS False
DATABASES {'default': {'ATOMIC_REQUESTS': False, 'AUTOCOMMIT': True, 'CONN_HEALTH_CHECKS': False, 'CONN_MAX_AGE': 0, 'ENGINE': 'django.db.backends.postgresql', 'HOST': 'tales-postgres', 'NAME': 'tptt', 'OPTIONS': {}, 'PASSWORD': '********************', 'PORT': '5432', 'TEST': {'CHARSET': None, 'COLLATION': None, 'MIGRATE': True, 'MIRROR': None, 'NAME': None}, 'TIME_ZONE': None, 'USER': 'tales_db_user'}}
DATABASE_ROUTERS []
DATA_UPLOAD_MAX_MEMORY_SIZE 2621440
DATA_UPLOAD_MAX_NUMBER_FIELDS 1000
DATA_UPLOAD_MAX_NUMBER_FILES 100
DATETIME_FORMAT 'N j, Y, P'
DATETIME_INPUT_FORMATS ['%Y-%m-%d %H:%M:%S', '%Y-%m-%d %H:%M:%S.%f', '%Y-%m-%d %H:%M', '%m/%d/%Y %H:%M:%S', '%m/%d/%Y %H:%M:%S.%f', '%m/%d/%Y %H:%M', '%m/%d/%y %H:%M:%S', '%m/%d/%y %H:%M:%S.%f', '%m/%d/%y %H:%M']
DATE_FORMAT 'N j, Y'
DATE_INPUT_FORMATS ['%Y-%m-%d', '%m/%d/%Y', '%m/%d/%y', '%b %d %Y', '%b %d, %Y', '%d %b %Y', '%d %b, %Y', '%B %d %Y', '%B %d, %Y', '%d %B %Y', '%d %B, %Y']
DEBUG True
DEBUG_PROPAGATE_EXCEPTIONS False
DEBUG_TOOLBAR_CONFIG {'SHOW_TOOLBAR_CALLBACK': <function show_toolbar at 0x7b20420c51c0>}
DEBUG_TOOLBAR_PANELS ['debug_toolbar.panels.history.HistoryPanel', 'debug_toolbar.panels.versions.VersionsPanel', 'debug_toolbar.panels.timer.TimerPanel', 'debug_toolbar.panels.settings.SettingsPanel', 'debug_toolbar.panels.headers.HeadersPanel', 'debug_toolbar.panels.request.RequestPanel', 'debug_toolbar.panels.sql.SQLPanel', 'debug_toolbar.panels.staticfiles.StaticFilesPanel', 'debug_toolbar.panels.templates.TemplatesPanel', 'debug_toolbar.panels.cache.CachePanel', 'cachalot.panels.CachalotPanel', 'debug_toolbar.panels.signals.SignalsPanel', 'debug_toolbar.panels.logging.LoggingPanel', 'debug_toolbar.panels.redirects.RedirectsPanel', 'debug_toolbar.panels.profiling.ProfilingPanel']
DECIMAL_SEPARATOR '.'
DEFAULT_AUTO_FIELD 'django.db.models.AutoField'
DEFAULT_CHARSET 'utf-8'
DEFAULT_EXCEPTION_REPORTER 'django.views.debug.ExceptionReporter'
DEFAULT_EXCEPTION_REPORTER_FILTER 'django.views.debug.SafeExceptionReporterFilter'
DEFAULT_FILE_STORAGE 'django.core.files.storage.FileSystemStorage'
DEFAULT_FROM_EMAIL 'contact-nmc@unibas.ch'
DEFAULT_INDEX_TABLESPACE ''
DEFAULT_TABLESPACE ''
DEPLOY_ENV 'staging'
DISALLOWED_USER_AGENTS []
DJANGO_APPS ('django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'django.forms', 'django.contrib.sites', 'django.contrib.flatpages', 'modeltranslation', 'django.contrib.admin', 'django.contrib.redirects', 'django.contrib.sitemaps', 'django.contrib.humanize')
DJANGO_NOTIFICATIONS_CONFIG {'USE_JSONFIELD': True}
EMAIL_BACKEND 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST 'smtp.unibas.ch'
EMAIL_HOST_PASSWORD '********************'
EMAIL_HOST_USER ''
EMAIL_PORT 25
EMAIL_SSL_CERTFILE None
EMAIL_SSL_KEYFILE '********************'
EMAIL_SUBJECT_PREFIX '[Django] '
EMAIL_TIMEOUT None
EMAIL_USE_LOCALTIME False
EMAIL_USE_SSL False
EMAIL_USE_TLS False
FILE_UPLOAD_DIRECTORY_PERMISSIONS None
FILE_UPLOAD_HANDLERS ['django.core.files.uploadhandler.MemoryFileUploadHandler', 'django.core.files.uploadhandler.TemporaryFileUploadHandler']
FILE_UPLOAD_MAX_MEMORY_SIZE 2621440
FILE_UPLOAD_PERMISSIONS 420
FILE_UPLOAD_TEMP_DIR None
FIRST_DAY_OF_WEEK 0
FIXTURE_DIRS []
FORCE_SCRIPT_NAME None
FORMAT_MODULE_PATH None
FORM_RENDERER 'django.forms.renderers.TemplatesSetting'
IGNORABLE_404_URLS []
IMAGEKIT_CACHEFILE_DIR 'CACHE/images'
IMAGEKIT_CACHEFILE_NAMER 'imagekit.cachefiles.namers.hash'
IMAGEKIT_CACHE_BACKEND 'default'
IMAGEKIT_CACHE_PREFIX 'imagekit:'
IMAGEKIT_CACHE_TIMEOUT 300
IMAGEKIT_DEFAULT_CACHEFILE_BACKEND 'imagekit.cachefiles.backends.Simple'
IMAGEKIT_DEFAULT_CACHEFILE_STRATEGY 'imagekit.cachefiles.strategies.JustInTime'
IMAGEKIT_DEFAULT_FILE_STORAGE 'default'
IMAGEKIT_SPEC_CACHEFILE_NAMER 'imagekit.cachefiles.namers.source_name_as_path'
IMAGEKIT_USE_MEMCACHED_SAFE_CACHE_KEY '********************'
INSTALLED_APPS ('django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'django.forms', 'django.contrib.sites', 'django.contrib.flatpages', 'modeltranslation', 'django.contrib.admin', 'django.contrib.redirects', 'django.contrib.sitemaps', 'django.contrib.humanize', 'simple_history', 'crispy_forms', 'crispy_bootstrap5', 'allauth', 'allauth.account', 'allauth.socialaccount', 'mozilla_django_oidc', 'django_extensions', 'markdownx', 'rules.apps.AutodiscoverRulesConfig', 'imagekit', 'waffle', 'django_htmx', 'cachalot', 'corsheaders', 'tos', 'tos_i18n', 'impersonate', 'rosetta', 'django_q', 'notifications', 'link_check', 'users.apps.UsersConfig', 'lms_base', 'lms_tales.apps.LMSTalesConfig', 'lms_comments.apps.LMSCommentsConfig', 'lms_static_texts.apps.LMSStaticTextsConfig', 'tags.apps.TagsConfig', 'startpage.apps.StartpageConfig', 'search.apps.SearchConfig', 'utils.apps.UtilsConfig', 'dashboard.apps.DashboardConfig', 'reporting.apps.ReportingConfig', 'lms_notifications.apps.LMSNotificationsConfig', 'storages', 'debug_toolbar')
INTERNAL_IPS ['127.0.0.1']
LANGUAGES (('de', 'German'), ('en', 'English'), ('fr', 'French'))
LANGUAGES_BIDI ['he', 'ar', 'ar-dz', 'ckb', 'fa', 'ur']
LANGUAGE_CODE 'de'
LANGUAGE_COOKIE_AGE None
LANGUAGE_COOKIE_DOMAIN None
LANGUAGE_COOKIE_HTTPONLY False
LANGUAGE_COOKIE_NAME 'django_language'
LANGUAGE_COOKIE_PATH '/'
LANGUAGE_COOKIE_SAMESITE None
LANGUAGE_COOKIE_SECURE False
LOCALE_PATHS ['/app/project/config/../locale']
LOCAL_APPS ('users.apps.UsersConfig', 'lms_base', 'lms_tales.apps.LMSTalesConfig', 'lms_comments.apps.LMSCommentsConfig', 'lms_static_texts.apps.LMSStaticTextsConfig', 'tags.apps.TagsConfig', 'startpage.apps.StartpageConfig', 'search.apps.SearchConfig', 'utils.apps.UtilsConfig', 'dashboard.apps.DashboardConfig', 'reporting.apps.ReportingConfig', 'lms_notifications.apps.LMSNotificationsConfig')
LOGGING {'disable_existing_loggers': False, 'formatters': {'verbose': {'format': '{asctime} {levelname} {name} {module} ' '{message}', 'style': '{'}}, 'handlers': {'console': {'class': 'logging.StreamHandler', 'formatter': 'verbose'}, 'mail_admins': {'class': 'django.utils.log.AdminEmailHandler', 'include_html': True, 'level': 'ERROR'}}, 'loggers': {'django': {'handlers': ['console', 'mail_admins'], 'level': 'WARNING', 'propagate': True}, 'django.request': {'handlers': ['console', 'mail_admins'], 'level': 'ERROR', 'propagate': False}, 'django.security': {'handlers': ['console', 'mail_admins'], 'level': 'ERROR', 'propagate': False}, 'fontTools': {'handlers': ['console'], 'level': 'ERROR'}, 'tales': {'handlers': ['console'], 'level': 'INFO'}, 'weasyprint': {'handlers': ['console'], 'level': 'ERROR'}}, 'root': {'handlers': ['console'], 'level': 'WARNING'}, 'version': 1}
LOGGING_CONFIG 'logging.config.dictConfig'
LOGIN_REDIRECT_URL '/'
LOGIN_URL 'account_login'
LOGOUT_REDIRECT_URL '/'
MANAGERS []
MARKDOWNX_EDITOR_RESIZABLE True
MARKDOWNX_IMAGE_MAX_SIZE {'quality': 90, 'size': (1920, 5600)}
MARKDOWNX_MARKDOWNIFY_FUNCTION 'lms_base.utils.markdownify'
MARKDOWNX_MARKDOWN_EXTENSIONS ['markdown.extensions.extra', 'markdown.extensions.smarty', 'markdown.extensions.codehilite', 'markdown.extensions.fenced_code', 'markdown.extensions.attr_list', 'markdown.extensions.toc', 'utils.markdown_extensions', 'python_markdown_oembed_extension']
MARKDOWNX_MEDIA_PATH 'markdownx/'
MARKDOWNX_UPLOAD_URLS_PATH '/markdownx/upload/'
MARKDOWNX_URLS_PATH '/markdownx/markdownify/'
MEDIA_ROOT '/app/project/media'
MEDIA_URL '/media/'
MESSAGE_REAPPEAR_TIME 600
MESSAGE_STORAGE 'django.contrib.messages.storage.fallback.FallbackStorage'
MIDDLEWARE ['corsheaders.middleware.CorsMiddleware', 'django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'lms_tales.middleware.SetLocaleFoundInUserSettings', 'django.middleware.locale.LocaleMiddleware', 'django.middleware.common.CommonMiddleware', 'allauth.account.middleware.AccountMiddleware', 'impersonate.middleware.ImpersonateMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', 'simple_history.middleware.HistoryRequestMiddleware', 'django.contrib.redirects.middleware.RedirectFallbackMiddleware', 'waffle.middleware.WaffleMiddleware', 'django_htmx.middleware.HtmxMiddleware', 'lms_tales.middleware.TalesUserAgreementMiddleware', 'lms_tales.middleware.ScheduledMessagesMiddleware', 'debug_toolbar.middleware.DebugToolbarMiddleware']
MIGRATION_MODULES {'tos': 'lms_tales.migrate.tos'}
MODELTRANSLATION_CUSTOM_FIELDS ('JSONField',)
MODELTRANSLATION_DEFAULT_LANGUAGE 'de'
MODELTRANSLATION_FALLBACK_LANGUAGES ('de', 'en', 'fr')
MONTH_DAY_FORMAT 'F j'
NOTIFICATIONS_NOTIFICATION_MODEL 'notifications.Notification'
NUMBER_GROUPING 0
OIDC_OP_AUTHORIZATION_ENDPOINT 'https://login.test.eduid.ch/idp/profile/oidc/authorize'
OIDC_OP_JWKS_ENDPOINT 'https://login.test.eduid.ch/idp/profile/oidc/keyset'
OIDC_OP_TOKEN_ENDPOINT '********************'
OIDC_OP_USER_ENDPOINT 'https://login.test.eduid.ch/idp/profile/oidc/userinfo'
OIDC_RP_CLIENT_ID 'unibas-tales'
OIDC_RP_CLIENT_SECRET '********************'
OIDC_RP_SCOPES 'openid email profile https://login.eduid.ch/authz/User.Read'
OIDC_RP_SIGN_ALGO 'RS256'
OIDC_TOKEN_USE_BASIC_AUTH '********************'
PASSWORD_HASHERS '********************'
PASSWORD_RESET_TIMEOUT '********************'
PREPEND_WWW False
PROJECT_DIR '/app/project/config/../'
Q_CLUSTER {'catch_up': False, 'django_redis': 'default', 'name': 'QCluster', 'retry': 600, 'timeout': 500, 'workers': 4}
RELEASE_NAME ''
REQUIRE_SUPERUSER True
ROOT_URLCONF 'config.urls'
ROSETTA_MESSAGES_SOURCE_LANGUAGE_CODE 'de'
ROSETTA_MESSAGES_SOURCE_LANGUAGE_NAME 'Deutsch'
ROSETTA_SHOW_AT_ADMIN_PANEL 'True'
SECRET_KEY '********************'
SECRET_KEY_FALLBACKS '********************'
SECURE_CONTENT_TYPE_NOSNIFF True
SECURE_CROSS_ORIGIN_OPENER_POLICY 'same-origin'
SECURE_HSTS_INCLUDE_SUBDOMAINS False
SECURE_HSTS_PRELOAD False
SECURE_HSTS_SECONDS 0
SECURE_PROXY_SSL_HEADER ('HTTP_X_FORWARDED_PROTO', 'https')
SECURE_REDIRECT_EXEMPT []
SECURE_REFERRER_POLICY 'same-origin'
SECURE_SSL_HOST None
SECURE_SSL_REDIRECT False
SERVER_EMAIL 'root@localhost'
SESSION_CACHE_ALIAS 'default'
SESSION_COOKIE_AGE 1209600
SESSION_COOKIE_DOMAIN None
SESSION_COOKIE_HTTPONLY True
SESSION_COOKIE_NAME 'sessionid'
SESSION_COOKIE_PATH '/'
SESSION_COOKIE_SAMESITE None
SESSION_COOKIE_SECURE False
SESSION_ENGINE 'django.contrib.sessions.backends.cache'
SESSION_EXPIRE_AT_BROWSER_CLOSE False
SESSION_FILE_PATH None
SESSION_SAVE_EVERY_REQUEST False
SESSION_SERIALIZER 'django.contrib.sessions.serializers.JSONSerializer'
SETTINGS_MODULE 'config.settings.staging'
SHORT_DATETIME_FORMAT 'm/d/Y P'
SHORT_DATE_FORMAT 'm/d/Y'
SIGNING_BACKEND 'django.core.signing.TimestampSigner'
SILENCED_SYSTEM_CHECKS []
SITE_DOMAIN 'https://nmc-tales-staging.nmc.unibas.ch/'
SITE_ID 1
SLACK_WEBHOOK 'https://hooks.slack.com/services/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'
STAGING_EMAIL_RECIPIENTS ['notifications-nmc@unibas.ch']
STATICFILES_DIRS ['/app/project/config/../static']
STATICFILES_FINDERS ('django.contrib.staticfiles.finders.FileSystemFinder', 'django.contrib.staticfiles.finders.AppDirectoriesFinder')
STATICFILES_STORAGE 'django.contrib.staticfiles.storage.StaticFilesStorage'
STATIC_ROOT '/app/project/config/../../staticfiles'
STATIC_URL '/static/'
STORAGES {'default': {'BACKEND': 'django.core.files.storage.FileSystemStorage'}, 'staticfiles': {'BACKEND': 'django.contrib.staticfiles.storage.StaticFilesStorage'}}
TALES_BASE_URL 'https://tales.nmc.unibas.ch'
TALES_VERSION 'dev'
TEMPLATES [{'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': ['/app/project/config/../templates', '/usr/local/lib/python3.11/site-packages/django/forms/templates'], 'OPTIONS': {'builtins': ['django.templatetags.i18n', 'django.templatetags.static'], 'context_processors': ['django.template.context_processors.debug', 'django.template.context_processors.request', 'django.contrib.auth.context_processors.auth', 'django.template.context_processors.i18n', 'django.template.context_processors.media', 'django.template.context_processors.static', 'django.template.context_processors.tz', 'django.contrib.messages.context_processors.messages', 'utils.context_processors.ci_info'], 'debug': False, 'loaders': ['django.template.loaders.filesystem.Loader', 'django.template.loaders.app_directories.Loader']}}]
TEST_NON_SERIALIZED_APPS []
TEST_RUNNER 'django.test.runner.DiscoverRunner'
THIRD_PARTY_APPS ('debug_toolbar',)
THOUSAND_SEPARATOR ','
TIME_FORMAT 'P'
TIME_INPUT_FORMATS ['%H:%M:%S', '%H:%M:%S.%f', '%H:%M']
TIME_ZONE 'Europe/Zurich'
USER_DEACTIVATION_AFTER_DAYS 730
USER_DELETION_AFTER_DAYS 912
USE_DEPRECATED_PYTZ False
USE_I18N True
USE_L10N True
USE_THOUSAND_SEPARATOR False
USE_TZ True
USE_X_FORWARDED_HOST True
USE_X_FORWARDED_PORT False
VIEW_CACHE_TTL 600
WAFFLE_LOG_MISSING_FLAGS 30
WAFFLE_LOG_MISSING_SAMPLES 30
WAFFLE_LOG_MISSING_SWITCHES 30
WSGI_APPLICATION 'config.wsgi.application'
X_FRAME_OPTIONS 'DENY'
YEAR_MONTH_FORMAT 'F Y'

Headers

Request headers

Key Value
Accept */*
Accept-Encoding gzip, br, zstd, deflate
Host nmc-tales-staging.nmc.unibas.ch
User-Agent Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
X-Forwarded-For 3.129.70.138
X-Forwarded-Host nmc-tales-staging.nmc.unibas.ch
X-Forwarded-Proto https

Response headers

Key Value
Content-Type text/html; charset=utf-8

WSGI environ

Since the WSGI environ inherits the environment of the server, only a significant subset is shown below.

Key Value
PATH_INFO /en/allergies-when-the-immune-system-backfires-41/castle-the-game-235/exploring-the-basics-1389
QUERY_STRING
REMOTE_ADDR 3.129.70.138
REMOTE_HOST 3.129.70.138
REQUEST_METHOD GET
SCRIPT_NAME
SERVER_NAME 172.19.0.7
SERVER_PORT 8000

Request

View information

View function Arguments Keyword arguments URL name
utils.decorators.cache_per_user.<locals>.decorator.<locals>.apply_cache () {'chapter_pk': 235, 'chapter_slug': 'castle-the-game', 'course_pk': 41, 'course_slug': 'allergies-when-the-immune-system-backfires', 'pk': 1389, 'slug': 'exploring-the-basics'} tales:step

No cookies

No session data

No GET data

No POST data

SQL queries from 1 connection

  • default 6.88 ms (6 queries including 3 similar )
Query Timeline Time (ms) Action
SELECT "lms_tales_talesstep"."id",
       "lms_tales_talesstep"."created",
       "lms_tales_talesstep"."modified",
       "lms_tales_talesstep"."status_changed",
       "lms_tales_talesstep"."is_removed",
       "lms_tales_talesstep"."title",
       "lms_tales_talesstep"."title_de",
       "lms_tales_talesstep"."title_en",
       "lms_tales_talesstep"."title_fr",
       "lms_tales_talesstep"."subtitle",
       "lms_tales_talesstep"."subtitle_de",
       "lms_tales_talesstep"."subtitle_en",
       "lms_tales_talesstep"."subtitle_fr",
       "lms_tales_talesstep"."short_description",
       "lms_tales_talesstep"."short_description_de",
       "lms_tales_talesstep"."short_description_en",
       "lms_tales_talesstep"."short_description_fr",
       "lms_tales_talesstep"."title_image",
       "lms_tales_talesstep"."slug",
       "lms_tales_talesstep"."content",
       "lms_tales_talesstep"."content_de",
       "lms_tales_talesstep"."content_en",
       "lms_tales_talesstep"."content_fr",
       "lms_tales_talesstep"."content_html",
       "lms_tales_talesstep"."content_html_de",
       "lms_tales_talesstep"."content_html_en",
       "lms_tales_talesstep"."content_html_fr",
       "lms_tales_talesstep"."content_json",
       "lms_tales_talesstep"."content_json_de",
       "lms_tales_talesstep"."content_json_en",
       "lms_tales_talesstep"."content_json_fr",
       "lms_tales_talesstep"."copyright",
       "lms_tales_talesstep"."copyright_de",
       "lms_tales_talesstep"."copyright_en",
       "lms_tales_talesstep"."copyright_fr",
       "lms_tales_talesstep"."step_type",
       "lms_tales_talesstep"."duration",
       "lms_tales_talesstep"."order",
       "lms_tales_talesstep"."status",
       "lms_tales_talesstep"."allow_comments",
       "lms_tales_talesstep"."call_to_action",
       "lms_tales_talesstep"."call_to_action_de",
       "lms_tales_talesstep"."call_to_action_en",
       "lms_tales_talesstep"."call_to_action_fr",
       "lms_tales_talesstep"."chapter_id"
  FROM "lms_tales_talesstep"
 WHERE "lms_tales_talesstep"."id" = 1389
 LIMIT 21
SELECT ••• FROM "lms_tales_talesstep" WHERE "lms_tales_talesstep"."id" = 1389 LIMIT 21
1.89

Connection: default

Transaction status: Idle

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in run(101)
  return _run_old_run_func()

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in _run_old_run_func(94)
  return old_run_func(self, *a, **kw)

/usr/local/lib/python3.11/concurrent/futures/thread.py in _worker(83)
  work_item.run()

/usr/local/lib/python3.11/concurrent/futures/thread.py in run(58)
  result = self.fn(*self.args, **self.kwargs)

/usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522)
  return func(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in middleware(32)
  response = get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/allauth/account/middleware.py in middleware(36)
  response = get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/simple_history/middleware.py in middleware(41)
  return get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/django_htmx/middleware.py in __call__(43)
  return self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in __call__(168)
  response = self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/cachalot/panels.py in process_request(41)
  return super(CachalotPanel, self).process_request(request)

/usr/local/lib/python3.11/site-packages/asgiref/sync.py in __call__(244)
  current_executor.run_until_future(call_result)

/usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run_until_future(81)
  work_item.run()

/usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run(40)
  result = self.fn(*self.args, **self.kwargs)

/usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522)
  return func(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(90)
  return callback(request, *args, **kwargs)

/app/project/utils/decorators.py in apply_cache(64)
  response = function(request, *args, **kwargs)

/usr/local/lib/python3.11/site-packages/django/views/generic/base.py in view(104)
  return self.dispatch(request, *args, **kwargs)

/app/project/lms_tales/views/mixins.py in dispatch(20)
  self.object = self.get_object()

/usr/local/lib/python3.11/site-packages/django/views/generic/detail.py in get_object(53)
  obj = queryset.get()

/usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(37)
  return original(compiler, *args, **kwargs)

/usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(96)
  return _get_result_or_execute_query(

/usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in _get_result_or_execute_query(64)
  result = execute_query_func()

/usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in <lambda>(80)
  execute_query_func = lambda: original(compiler, *args, **kwargs)

SELECT "lms_tales_talesstepfilenew"."id",
       "lms_tales_talesstepfilenew"."created",
       "lms_tales_talesstepfilenew"."modified",
       "lms_tales_talesstepfilenew"."step_id",
       "lms_tales_talesstepfilenew"."file_id",
       "lms_tales_talesstepfilenew"."language"
  FROM "lms_tales_talesstepfilenew"
 WHERE ("lms_tales_talesstepfilenew"."language" = 'en' AND "lms_tales_talesstepfilenew"."step_id" = 1389)
SELECT ••• FROM "lms_tales_talesstepfilenew" WHERE ("lms_tales_talesstepfilenew"."language" = 'en' AND "lms_tales_talesstepfilenew"."step_id" = 1389)
3 similar queries.
1.18

Connection: default

Transaction status: Idle

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in run(101)
  return _run_old_run_func()

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in _run_old_run_func(94)
  return old_run_func(self, *a, **kw)

/usr/local/lib/python3.11/concurrent/futures/thread.py in _worker(83)
  work_item.run()

/usr/local/lib/python3.11/concurrent/futures/thread.py in run(58)
  result = self.fn(*self.args, **self.kwargs)

/usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522)
  return func(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in middleware(32)
  response = get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/allauth/account/middleware.py in middleware(36)
  response = get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/simple_history/middleware.py in middleware(41)
  return get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/django_htmx/middleware.py in __call__(43)
  return self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in __call__(168)
  response = self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/cachalot/panels.py in process_request(41)
  return super(CachalotPanel, self).process_request(request)

/usr/local/lib/python3.11/site-packages/asgiref/sync.py in __call__(244)
  current_executor.run_until_future(call_result)

/usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run_until_future(81)
  work_item.run()

/usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run(40)
  result = self.fn(*self.args, **self.kwargs)

/usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522)
  return func(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(90)
  return callback(request, *args, **kwargs)

/app/project/utils/decorators.py in apply_cache(64)
  response = function(request, *args, **kwargs)

/usr/local/lib/python3.11/site-packages/django/views/generic/base.py in view(104)
  return self.dispatch(request, *args, **kwargs)

/app/project/lms_tales/views/mixins.py in dispatch(31)
  return super().dispatch(request, *args, **kwargs)

/usr/local/lib/python3.11/site-packages/django/views/generic/base.py in dispatch(143)
  return handler(request, *args, **kwargs)

/app/project/lms_tales/views/step_views.py in get(36)
  response = super().get(request, *args, **kwargs)

/usr/local/lib/python3.11/site-packages/django/views/generic/detail.py in get(109)
  context = self.get_context_data(object=self.object)

/app/project/lms_tales/views/step_views.py in get_context_data(63)
  if len(step_files_new) == 0:

/usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(37)
  return original(compiler, *args, **kwargs)

/usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(96)
  return _get_result_or_execute_query(

/usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in _get_result_or_execute_query(64)
  result = execute_query_func()

/usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in <lambda>(80)
  execute_query_func = lambda: original(compiler, *args, **kwargs)

SELECT "lms_tales_talesstepfilenew"."id",
       "lms_tales_talesstepfilenew"."created",
       "lms_tales_talesstepfilenew"."modified",
       "lms_tales_talesstepfilenew"."step_id",
       "lms_tales_talesstepfilenew"."file_id",
       "lms_tales_talesstepfilenew"."language"
  FROM "lms_tales_talesstepfilenew"
 WHERE ("lms_tales_talesstepfilenew"."language" = 'de' AND "lms_tales_talesstepfilenew"."step_id" = 1389)
SELECT ••• FROM "lms_tales_talesstepfilenew" WHERE ("lms_tales_talesstepfilenew"."language" = 'de' AND "lms_tales_talesstepfilenew"."step_id" = 1389)
3 similar queries.
0.64

Connection: default

Transaction status: Idle

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in run(101)
  return _run_old_run_func()

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in _run_old_run_func(94)
  return old_run_func(self, *a, **kw)

/usr/local/lib/python3.11/concurrent/futures/thread.py in _worker(83)
  work_item.run()

/usr/local/lib/python3.11/concurrent/futures/thread.py in run(58)
  result = self.fn(*self.args, **self.kwargs)

/usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522)
  return func(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in middleware(32)
  response = get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/allauth/account/middleware.py in middleware(36)
  response = get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/simple_history/middleware.py in middleware(41)
  return get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/django_htmx/middleware.py in __call__(43)
  return self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in __call__(168)
  response = self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/cachalot/panels.py in process_request(41)
  return super(CachalotPanel, self).process_request(request)

/usr/local/lib/python3.11/site-packages/asgiref/sync.py in __call__(244)
  current_executor.run_until_future(call_result)

/usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run_until_future(81)
  work_item.run()

/usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run(40)
  result = self.fn(*self.args, **self.kwargs)

/usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522)
  return func(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(90)
  return callback(request, *args, **kwargs)

/app/project/utils/decorators.py in apply_cache(64)
  response = function(request, *args, **kwargs)

/usr/local/lib/python3.11/site-packages/django/views/generic/base.py in view(104)
  return self.dispatch(request, *args, **kwargs)

/app/project/lms_tales/views/mixins.py in dispatch(31)
  return super().dispatch(request, *args, **kwargs)

/usr/local/lib/python3.11/site-packages/django/views/generic/base.py in dispatch(143)
  return handler(request, *args, **kwargs)

/app/project/lms_tales/views/step_views.py in get(36)
  response = super().get(request, *args, **kwargs)

/usr/local/lib/python3.11/site-packages/django/views/generic/detail.py in get(109)
  context = self.get_context_data(object=self.object)

/app/project/lms_tales/views/step_views.py in get_context_data(69)
  if len(step_files_new) > 0:

/usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(37)
  return original(compiler, *args, **kwargs)

/usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(96)
  return _get_result_or_execute_query(

/usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in _get_result_or_execute_query(64)
  result = execute_query_func()

/usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in <lambda>(80)
  execute_query_func = lambda: original(compiler, *args, **kwargs)

SELECT "lms_tales_talesstepfilenew"."id",
       "lms_tales_talesstepfilenew"."created",
       "lms_tales_talesstepfilenew"."modified",
       "lms_tales_talesstepfilenew"."step_id",
       "lms_tales_talesstepfilenew"."file_id",
       "lms_tales_talesstepfilenew"."language"
  FROM "lms_tales_talesstepfilenew"
 WHERE ("lms_tales_talesstepfilenew"."language" = 'fr' AND "lms_tales_talesstepfilenew"."step_id" = 1389)
SELECT ••• FROM "lms_tales_talesstepfilenew" WHERE ("lms_tales_talesstepfilenew"."language" = 'fr' AND "lms_tales_talesstepfilenew"."step_id" = 1389)
3 similar queries.
0.64

Connection: default

Transaction status: Idle

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in run(101)
  return _run_old_run_func()

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in _run_old_run_func(94)
  return old_run_func(self, *a, **kw)

/usr/local/lib/python3.11/concurrent/futures/thread.py in _worker(83)
  work_item.run()

/usr/local/lib/python3.11/concurrent/futures/thread.py in run(58)
  result = self.fn(*self.args, **self.kwargs)

/usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522)
  return func(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in middleware(32)
  response = get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/allauth/account/middleware.py in middleware(36)
  response = get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/simple_history/middleware.py in middleware(41)
  return get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/django_htmx/middleware.py in __call__(43)
  return self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in __call__(168)
  response = self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/cachalot/panels.py in process_request(41)
  return super(CachalotPanel, self).process_request(request)

/usr/local/lib/python3.11/site-packages/asgiref/sync.py in __call__(244)
  current_executor.run_until_future(call_result)

/usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run_until_future(81)
  work_item.run()

/usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run(40)
  result = self.fn(*self.args, **self.kwargs)

/usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522)
  return func(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(90)
  return callback(request, *args, **kwargs)

/app/project/utils/decorators.py in apply_cache(64)
  response = function(request, *args, **kwargs)

/usr/local/lib/python3.11/site-packages/django/views/generic/base.py in view(104)
  return self.dispatch(request, *args, **kwargs)

/app/project/lms_tales/views/mixins.py in dispatch(31)
  return super().dispatch(request, *args, **kwargs)

/usr/local/lib/python3.11/site-packages/django/views/generic/base.py in dispatch(143)
  return handler(request, *args, **kwargs)

/app/project/lms_tales/views/step_views.py in get(36)
  response = super().get(request, *args, **kwargs)

/usr/local/lib/python3.11/site-packages/django/views/generic/detail.py in get(109)
  context = self.get_context_data(object=self.object)

/app/project/lms_tales/views/step_views.py in get_context_data(69)
  if len(step_files_new) > 0:

/usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(37)
  return original(compiler, *args, **kwargs)

/usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(96)
  return _get_result_or_execute_query(

/usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in _get_result_or_execute_query(64)
  result = execute_query_func()

/usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in <lambda>(80)
  execute_query_func = lambda: original(compiler, *args, **kwargs)

SELECT "lms_tales_talesstep"."id",
       "lms_tales_talesstep"."created",
       "lms_tales_talesstep"."modified",
       "lms_tales_talesstep"."status_changed",
       "lms_tales_talesstep"."is_removed",
       "lms_tales_talesstep"."title",
       "lms_tales_talesstep"."title_de",
       "lms_tales_talesstep"."title_en",
       "lms_tales_talesstep"."title_fr",
       "lms_tales_talesstep"."subtitle",
       "lms_tales_talesstep"."subtitle_de",
       "lms_tales_talesstep"."subtitle_en",
       "lms_tales_talesstep"."subtitle_fr",
       "lms_tales_talesstep"."short_description",
       "lms_tales_talesstep"."short_description_de",
       "lms_tales_talesstep"."short_description_en",
       "lms_tales_talesstep"."short_description_fr",
       "lms_tales_talesstep"."title_image",
       "lms_tales_talesstep"."slug",
       "lms_tales_talesstep"."content",
       "lms_tales_talesstep"."content_de",
       "lms_tales_talesstep"."content_en",
       "lms_tales_talesstep"."content_fr",
       "lms_tales_talesstep"."content_html",
       "lms_tales_talesstep"."content_html_de",
       "lms_tales_talesstep"."content_html_en",
       "lms_tales_talesstep"."content_html_fr",
       "lms_tales_talesstep"."content_json",
       "lms_tales_talesstep"."content_json_de",
       "lms_tales_talesstep"."content_json_en",
       "lms_tales_talesstep"."content_json_fr",
       "lms_tales_talesstep"."copyright",
       "lms_tales_talesstep"."copyright_de",
       "lms_tales_talesstep"."copyright_en",
       "lms_tales_talesstep"."copyright_fr",
       "lms_tales_talesstep"."step_type",
       "lms_tales_talesstep"."duration",
       "lms_tales_talesstep"."order",
       "lms_tales_talesstep"."status",
       "lms_tales_talesstep"."allow_comments",
       "lms_tales_talesstep"."call_to_action",
       "lms_tales_talesstep"."call_to_action_de",
       "lms_tales_talesstep"."call_to_action_en",
       "lms_tales_talesstep"."call_to_action_fr",
       "lms_tales_talesstep"."chapter_id"
  FROM "lms_tales_talesstep"
 INNER JOIN "lms_tales_taleschapter"
    ON ("lms_tales_talesstep"."chapter_id" = "lms_tales_taleschapter"."id")
 WHERE ("lms_tales_talesstep"."chapter_id" = 235 AND NOT "lms_tales_talesstep"."is_removed" AND "lms_tales_talesstep"."status" = 'published' AND "lms_tales_talesstep"."order" > 1)
 ORDER BY "lms_tales_taleschapter"."course_id" ASC,
          "lms_tales_taleschapter"."order" ASC,
          "lms_tales_talesstep"."order" ASC
 LIMIT 1
SELECT ••• FROM "lms_tales_talesstep" INNER JOIN "lms_tales_taleschapter" ON ("lms_tales_talesstep"."chapter_id" = "lms_tales_taleschapter"."id") WHERE ("lms_tales_talesstep"."chapter_id" = 235 AND NOT "lms_tales_talesstep"."is_removed" AND "lms_tales_talesstep"."status" = 'published' AND "lms_tales_talesstep"."order" > 1) ORDER BY "lms_tales_taleschapter"."course_id" ASC, "lms_tales_taleschapter"."order" ASC, "lms_tales_talesstep"."order" ASC LIMIT 1
1.64

Connection: default

Transaction status: Idle

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in run(101)
  return _run_old_run_func()

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in _run_old_run_func(94)
  return old_run_func(self, *a, **kw)

/usr/local/lib/python3.11/concurrent/futures/thread.py in _worker(83)
  work_item.run()

/usr/local/lib/python3.11/concurrent/futures/thread.py in run(58)
  result = self.fn(*self.args, **self.kwargs)

/usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522)
  return func(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in middleware(32)
  response = get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/allauth/account/middleware.py in middleware(36)
  response = get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/simple_history/middleware.py in middleware(41)
  return get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/django_htmx/middleware.py in __call__(43)
  return self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in __call__(168)
  response = self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/cachalot/panels.py in process_request(41)
  return super(CachalotPanel, self).process_request(request)

/usr/local/lib/python3.11/site-packages/asgiref/sync.py in __call__(244)
  current_executor.run_until_future(call_result)

/usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run_until_future(81)
  work_item.run()

/usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run(40)
  result = self.fn(*self.args, **self.kwargs)

/usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522)
  return func(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(90)
  return callback(request, *args, **kwargs)

/app/project/utils/decorators.py in apply_cache(72)
  cache.set(CACHE_KEY, response.render(), ttl)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_patched_render(41)
  return old_render(self)

/usr/local/lib/python3.11/site-packages/django/template/response.py in render(114)
  self.content = self.rendered_content

/usr/local/lib/python3.11/site-packages/sentry_sdk/utils.py in runner(1788)
  return sentry_patched_function(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/templates.py in rendered_content(77)
  return real_rendered_content.fget(self)

/usr/local/lib/python3.11/site-packages/django/template/response.py in rendered_content(92)
  return template.render(context, self._request)

/usr/local/lib/python3.11/site-packages/django/template/backends/django.py in render(61)
  return self.template.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(175)
  return self._render(context)

/usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112)
  return self.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157)
  return compiled_parent._render(context)

/usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112)
  return self.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157)
  return compiled_parent._render(context)

/usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112)
  return self.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63)
  result = block.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63)
  result = block.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(541)
  return self.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/library.py in render(237)
  output = self.func(*resolved_args, **resolved_kwargs)

/app/project/lms_base/templatetags/utils.py in get_next_step(105)
  return step.get_next(published_only=True)

/app/project/lms_base/models.py in get_next(249)
  return self._get_neighbour_step(is_next=True, published_only=published_only)

/app/project/lms_base/models.py in _get_neighbour_step(201)
  step = self.__class__.next_previous_manager.get_next_previous(

/app/project/lms_base/models.py in get_next_previous(71)
  return qs.first()

/usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(37)
  return original(compiler, *args, **kwargs)

/usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(96)
  return _get_result_or_execute_query(

/usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in _get_result_or_execute_query(64)
  result = execute_query_func()

/usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in <lambda>(80)
  execute_query_func = lambda: original(compiler, *args, **kwargs)

SELECT "lms_tales_talesstep"."id",
       "lms_tales_talesstep"."created",
       "lms_tales_talesstep"."modified",
       "lms_tales_talesstep"."status_changed",
       "lms_tales_talesstep"."is_removed",
       "lms_tales_talesstep"."title",
       "lms_tales_talesstep"."title_de",
       "lms_tales_talesstep"."title_en",
       "lms_tales_talesstep"."title_fr",
       "lms_tales_talesstep"."subtitle",
       "lms_tales_talesstep"."subtitle_de",
       "lms_tales_talesstep"."subtitle_en",
       "lms_tales_talesstep"."subtitle_fr",
       "lms_tales_talesstep"."short_description",
       "lms_tales_talesstep"."short_description_de",
       "lms_tales_talesstep"."short_description_en",
       "lms_tales_talesstep"."short_description_fr",
       "lms_tales_talesstep"."title_image",
       "lms_tales_talesstep"."slug",
       "lms_tales_talesstep"."content",
       "lms_tales_talesstep"."content_de",
       "lms_tales_talesstep"."content_en",
       "lms_tales_talesstep"."content_fr",
       "lms_tales_talesstep"."content_html",
       "lms_tales_talesstep"."content_html_de",
       "lms_tales_talesstep"."content_html_en",
       "lms_tales_talesstep"."content_html_fr",
       "lms_tales_talesstep"."content_json",
       "lms_tales_talesstep"."content_json_de",
       "lms_tales_talesstep"."content_json_en",
       "lms_tales_talesstep"."content_json_fr",
       "lms_tales_talesstep"."copyright",
       "lms_tales_talesstep"."copyright_de",
       "lms_tales_talesstep"."copyright_en",
       "lms_tales_talesstep"."copyright_fr",
       "lms_tales_talesstep"."step_type",
       "lms_tales_talesstep"."duration",
       "lms_tales_talesstep"."order",
       "lms_tales_talesstep"."status",
       "lms_tales_talesstep"."allow_comments",
       "lms_tales_talesstep"."call_to_action",
       "lms_tales_talesstep"."call_to_action_de",
       "lms_tales_talesstep"."call_to_action_en",
       "lms_tales_talesstep"."call_to_action_fr",
       "lms_tales_talesstep"."chapter_id"
  FROM "lms_tales_talesstep"
 INNER JOIN "lms_tales_taleschapter"
    ON ("lms_tales_talesstep"."chapter_id" = "lms_tales_taleschapter"."id")
 WHERE ("lms_tales_talesstep"."chapter_id" = 235 AND NOT "lms_tales_talesstep"."is_removed" AND "lms_tales_talesstep"."status" = 'published' AND "lms_tales_talesstep"."order" < 1)
 ORDER BY "lms_tales_taleschapter"."course_id" DESC,
          "lms_tales_taleschapter"."order" DESC,
          "lms_tales_talesstep"."order" DESC
 LIMIT 1
SELECT ••• FROM "lms_tales_talesstep" INNER JOIN "lms_tales_taleschapter" ON ("lms_tales_talesstep"."chapter_id" = "lms_tales_taleschapter"."id") WHERE ("lms_tales_talesstep"."chapter_id" = 235 AND NOT "lms_tales_talesstep"."is_removed" AND "lms_tales_talesstep"."status" = 'published' AND "lms_tales_talesstep"."order" < 1) ORDER BY "lms_tales_taleschapter"."course_id" DESC, "lms_tales_taleschapter"."order" DESC, "lms_tales_talesstep"."order" DESC LIMIT 1
0.89

Connection: default

Transaction status: Idle

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in run(101)
  return _run_old_run_func()

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in _run_old_run_func(94)
  return old_run_func(self, *a, **kw)

/usr/local/lib/python3.11/concurrent/futures/thread.py in _worker(83)
  work_item.run()

/usr/local/lib/python3.11/concurrent/futures/thread.py in run(58)
  result = self.fn(*self.args, **self.kwargs)

/usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522)
  return func(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in middleware(32)
  response = get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/allauth/account/middleware.py in middleware(36)
  response = get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/simple_history/middleware.py in middleware(41)
  return get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/django_htmx/middleware.py in __call__(43)
  return self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in __call__(168)
  response = self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/cachalot/panels.py in process_request(41)
  return super(CachalotPanel, self).process_request(request)

/usr/local/lib/python3.11/site-packages/asgiref/sync.py in __call__(244)
  current_executor.run_until_future(call_result)

/usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run_until_future(81)
  work_item.run()

/usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run(40)
  result = self.fn(*self.args, **self.kwargs)

/usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522)
  return func(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(90)
  return callback(request, *args, **kwargs)

/app/project/utils/decorators.py in apply_cache(72)
  cache.set(CACHE_KEY, response.render(), ttl)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_patched_render(41)
  return old_render(self)

/usr/local/lib/python3.11/site-packages/django/template/response.py in render(114)
  self.content = self.rendered_content

/usr/local/lib/python3.11/site-packages/sentry_sdk/utils.py in runner(1788)
  return sentry_patched_function(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/templates.py in rendered_content(77)
  return real_rendered_content.fget(self)

/usr/local/lib/python3.11/site-packages/django/template/response.py in rendered_content(92)
  return template.render(context, self._request)

/usr/local/lib/python3.11/site-packages/django/template/backends/django.py in render(61)
  return self.template.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(175)
  return self._render(context)

/usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112)
  return self.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157)
  return compiled_parent._render(context)

/usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112)
  return self.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157)
  return compiled_parent._render(context)

/usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112)
  return self.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63)
  result = block.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63)
  result = block.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(541)
  return self.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/library.py in render(237)
  output = self.func(*resolved_args, **resolved_kwargs)

/app/project/lms_base/templatetags/utils.py in get_previous_step(93)
  return step.get_previous(published_only=True)

/app/project/lms_base/models.py in get_previous(255)
  return self._get_neighbour_step(is_next=False, published_only=published_only)

/app/project/lms_base/models.py in _get_neighbour_step(201)
  step = self.__class__.next_previous_manager.get_next_previous(

/app/project/lms_base/models.py in get_next_previous(72)
  return qs.last()

/usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(37)
  return original(compiler, *args, **kwargs)

/usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(96)
  return _get_result_or_execute_query(

/usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in _get_result_or_execute_query(64)
  result = execute_query_func()

/usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in <lambda>(80)
  execute_query_func = lambda: original(compiler, *args, **kwargs)

Static files (273 found, 7 used)

Static file path

  1. /app/project/static

Static file apps

  1. modeltranslation
  2. django.contrib.admin
  3. django_extensions
  4. markdownx
  5. django_htmx
  6. rosetta
  7. notifications
  8. debug_toolbar

Static files

images/icon_tales_white.png
/app/project/static/images/icon_tales_white.png
images/icon_tales_transp.png
/app/project/static/images/icon_tales_transp.png
lms_base/css/lms_base.css
/app/project/static/lms_base/css/lms_base.css
lms_tales/css/lms_tales.css
None
lms_base/js/lms_base.js
/app/project/static/lms_base/js/lms_base.js
lms_tales/js/lms_tales.js
/app/project/static/lms_tales/js/lms_tales.js
images/uni-basel-logo-en.svg
/app/project/static/images/uni-basel-logo-en.svg

django.contrib.staticfiles.finders.FileSystemFinder (123 files)

Path Location
robots.txt /app/project/static/robots.txt
alphorn_07.jpg /app/project/static/alphorn_07.jpg
browserconfig.xml /app/project/static/browserconfig.xml
alphorn_11.jpg /app/project/static/alphorn_11.jpg
lottie/optimized_tales_banner2.mp4 /app/project/static/lottie/optimized_tales_banner2.mp4
lottie/optimized_tales_banner_av1.webm /app/project/static/lottie/optimized_tales_banner_av1.webm
lottie/tales_banner3.mp4 /app/project/static/lottie/tales_banner3.mp4
lottie/optimized_tales_banner3.webm /app/project/static/lottie/optimized_tales_banner3.webm
lottie/optimized_tales_banner2.webm /app/project/static/lottie/optimized_tales_banner2.webm
lottie/tales_banner.json /app/project/static/lottie/tales_banner.json
lottie/optimized_tales_banner3.mp4 /app/project/static/lottie/optimized_tales_banner3.mp4
lottie/optimized_tales_banner_av1.mp4 /app/project/static/lottie/optimized_tales_banner_av1.mp4
lottie/optimized_tales_banner.mp4 /app/project/static/lottie/optimized_tales_banner.mp4
lottie/tales_banner2.mp4 /app/project/static/lottie/tales_banner2.mp4
lms_base/font/nmc.woff /app/project/static/lms_base/font/nmc.woff
lms_base/font/icon-left.woff2 /app/project/static/lms_base/font/icon-left.woff2
lms_base/font/nmc.woff2 /app/project/static/lms_base/font/nmc.woff2
lms_base/font/nmc.eot /app/project/static/lms_base/font/nmc.eot
lms_base/font/icon-left.woff /app/project/static/lms_base/font/icon-left.woff
lms_base/font/nmc.svg /app/project/static/lms_base/font/nmc.svg
lms_base/font/icon-left.svg /app/project/static/lms_base/font/icon-left.svg
lms_base/font/nmc.ttf /app/project/static/lms_base/font/nmc.ttf
lms_base/font/icon-left.eot /app/project/static/lms_base/font/icon-left.eot
lms_base/font/icon-left.ttf /app/project/static/lms_base/font/icon-left.ttf
lms_base/css/lms_base.css /app/project/static/lms_base/css/lms_base.css
lms_base/css/lms_base.css.map /app/project/static/lms_base/css/lms_base.css.map
lms_base/js/lms_base.js /app/project/static/lms_base/js/lms_base.js
lms_base/js/bootstrap.bundle.min.js /app/project/static/lms_base/js/bootstrap.bundle.min.js
reporting/css/report_pdf.css.map /app/project/static/reporting/css/report_pdf.css.map
reporting/css/report_pdf.css /app/project/static/reporting/css/report_pdf.css
reporting/images/nmcunilogo.png /app/project/static/reporting/images/nmcunilogo.png
reporting/images/background.jpg /app/project/static/reporting/images/background.jpg
dropzone/dropzone.min.css /app/project/static/dropzone/dropzone.min.css
dropzone/dropzone-amd-module.min.js /app/project/static/dropzone/dropzone-amd-module.min.js
dropzone/basic.min.css /app/project/static/dropzone/basic.min.css
dropzone/dropzone.min.js /app/project/static/dropzone/dropzone.min.js
lms_tales/font/nmc.woff /app/project/static/lms_tales/font/nmc.woff
lms_tales/font/icon-left.woff2 /app/project/static/lms_tales/font/icon-left.woff2
lms_tales/font/nmc.woff2 /app/project/static/lms_tales/font/nmc.woff2
lms_tales/font/nmc.eot /app/project/static/lms_tales/font/nmc.eot
lms_tales/font/icon-left.woff /app/project/static/lms_tales/font/icon-left.woff
lms_tales/font/nmc.svg /app/project/static/lms_tales/font/nmc.svg
lms_tales/font/icon-left.svg /app/project/static/lms_tales/font/icon-left.svg
lms_tales/font/nmc.ttf /app/project/static/lms_tales/font/nmc.ttf
lms_tales/font/icon-left.eot /app/project/static/lms_tales/font/icon-left.eot
lms_tales/font/icon-left.ttf /app/project/static/lms_tales/font/icon-left.ttf
lms_tales/js/lms_tales.js /app/project/static/lms_tales/js/lms_tales.js
opos/4_4.html /app/project/static/opos/4_4.html
opos/4_3.html /app/project/static/opos/4_3.html
opos/4_5.html /app/project/static/opos/4_5.html
opos/4_1.html /app/project/static/opos/4_1.html
tales_editor/favicon.ico /app/project/static/tales_editor/favicon.ico
tales_editor/index.html /app/project/static/tales_editor/index.html
tales_editor/css/chunk-vendors.css /app/project/static/tales_editor/css/chunk-vendors.css
tales_editor/css/app.css /app/project/static/tales_editor/css/app.css
tales_editor/img/bootstrap-icons.svg /app/project/static/tales_editor/img/bootstrap-icons.svg
tales_editor/img/remixicon.symbol.svg /app/project/static/tales_editor/img/remixicon.symbol.svg
tales_editor/js/app.js /app/project/static/tales_editor/js/app.js
tales_editor/js/app.js.map /app/project/static/tales_editor/js/app.js.map
tales_editor/js/chunk-vendors.js /app/project/static/tales_editor/js/chunk-vendors.js
tales_editor/js/chunk-vendors.js.map /app/project/static/tales_editor/js/chunk-vendors.js.map
images/opos_map_xs.png /app/project/static/images/opos_map_xs.png
images/opos_map_xl.png /app/project/static/images/opos_map_xl.png
images/edu-id-button-gray.png /app/project/static/images/edu-id-button-gray.png
images/icon_tales_mint.png /app/project/static/images/icon_tales_mint.png
images/favicon.ico /app/project/static/images/favicon.ico
images/door.jpg /app/project/static/images/door.jpg
images/icon_tales_transp_32x32.png /app/project/static/images/icon_tales_transp_32x32.png
images/uni-basel-logo-de.svg /app/project/static/images/uni-basel-logo-de.svg
images/raymond_ammann.jpg /app/project/static/images/raymond_ammann.jpg
images/help_en.jpg /app/project/static/images/help_en.jpg
images/opos_map_xs.avif /app/project/static/images/opos_map_xs.avif
images/opos_map_md.png /app/project/static/images/opos_map_md.png
images/help_de.jpg /app/project/static/images/help_de.jpg
images/bild.png /app/project/static/images/bild.png
images/help.jpg /app/project/static/images/help.jpg
images/Hochformat.jpg /app/project/static/images/Hochformat.jpg
images/empty_classroom.jpg /app/project/static/images/empty_classroom.jpg
images/uni-basel-logo-de.png /app/project/static/images/uni-basel-logo-de.png
images/contact-side-image-1.jpg /app/project/static/images/contact-side-image-1.jpg
images/icon_tales_white.png /app/project/static/images/icon_tales_white.png
images/portalflag.png /app/project/static/images/portalflag.png
images/uni-basel-logo-en.svg /app/project/static/images/uni-basel-logo-en.svg
images/contact-side-image-2.jpg /app/project/static/images/contact-side-image-2.jpg
images/alp_und_hirtenhorn.jpg /app/project/static/images/alp_und_hirtenhorn.jpg
images/icon_tales_transp.png /app/project/static/images/icon_tales_transp.png
images/Weltkarte_Opos.png /app/project/static/images/Weltkarte_Opos.png
images/batkitty.jpg /app/project/static/images/batkitty.jpg
images/help_fr.jpg /app/project/static/images/help_fr.jpg
nahtkurs_glossar/antikoagu.jpg /app/project/static/nahtkurs_glossar/antikoagu.jpg
nahtkurs_glossar/anamnese.jpg /app/project/static/nahtkurs_glossar/anamnese.jpg
nahtkurs_glossar/wundinfektion.jpg /app/project/static/nahtkurs_glossar/wundinfektion.jpg
nahtkurs_glossar/tensilestength.jpg /app/project/static/nahtkurs_glossar/tensilestength.jpg
nahtkurs_glossar/glucose.jpg /app/project/static/nahtkurs_glossar/glucose.jpg
nahtkurs_glossar/nacl.jpg /app/project/static/nahtkurs_glossar/nacl.jpg
sounds/temperiert_nr_7.mp3 /app/project/static/sounds/temperiert_nr_7.mp3
sounds/alphorn_13.mp3 /app/project/static/sounds/alphorn_13.mp3
sounds/alphorn_05.mp3 /app/project/static/sounds/alphorn_05.mp3
sounds/alphorn_11.mp3 /app/project/static/sounds/alphorn_11.mp3
sounds/naturton_nr_7.mp3 /app/project/static/sounds/naturton_nr_7.mp3
sounds/hirtenhorn_04.mp3 /app/project/static/sounds/hirtenhorn_04.mp3
sounds/alphorn_14.mp3 /app/project/static/sounds/alphorn_14.mp3
sounds/alphorn_01.mp3 /app/project/static/sounds/alphorn_01.mp3
sounds/alphorn_12.mp3 /app/project/static/sounds/alphorn_12.mp3
sounds/alphorn_02.mp3 /app/project/static/sounds/alphorn_02.mp3
sounds/alphorn_09.mp3 /app/project/static/sounds/alphorn_09.mp3
sounds/alphorn_04.mp3 /app/project/static/sounds/alphorn_04.mp3
sounds/alphorn_15.mp3 /app/project/static/sounds/alphorn_15.mp3
sounds/hirtenhorn_07.mp3 /app/project/static/sounds/hirtenhorn_07.mp3
sounds/alphorn_08.mp3 /app/project/static/sounds/alphorn_08.mp3
sounds/alphorn_03.mp3 /app/project/static/sounds/alphorn_03.mp3
sounds/hirtenhorn_02.mp3 /app/project/static/sounds/hirtenhorn_02.mp3
sounds/alphorn_10.mp3 /app/project/static/sounds/alphorn_10.mp3
sounds/hirtenhorn_01.mp3 /app/project/static/sounds/hirtenhorn_01.mp3
sounds/hirtenhorn_06.mp3 /app/project/static/sounds/hirtenhorn_06.mp3
sounds/alphorn_07.mp3 /app/project/static/sounds/alphorn_07.mp3
sounds/temperiert_nr_11.mp3 /app/project/static/sounds/temperiert_nr_11.mp3
sounds/hirtenhorn_08.mp3 /app/project/static/sounds/hirtenhorn_08.mp3
sounds/naturton_nr_11.mp3 /app/project/static/sounds/naturton_nr_11.mp3
sounds/alphorn_16.mp3 /app/project/static/sounds/alphorn_16.mp3
sounds/hirtenhorn_05.mp3 /app/project/static/sounds/hirtenhorn_05.mp3
sounds/hirtenhorn_03.mp3 /app/project/static/sounds/hirtenhorn_03.mp3
sounds/alphorn_06.mp3 /app/project/static/sounds/alphorn_06.mp3

django.contrib.staticfiles.finders.AppDirectoriesFinder (150 files)

Path Location
modeltranslation/css/tabbed_translation_fields.css /usr/local/lib/python3.11/site-packages/modeltranslation/static/modeltranslation/css/tabbed_translation_fields.css
modeltranslation/js/clearable_inputs.js /usr/local/lib/python3.11/site-packages/modeltranslation/static/modeltranslation/js/clearable_inputs.js
modeltranslation/js/tabbed_translation_fields.js /usr/local/lib/python3.11/site-packages/modeltranslation/static/modeltranslation/js/tabbed_translation_fields.js
modeltranslation/js/force_jquery.js /usr/local/lib/python3.11/site-packages/modeltranslation/static/modeltranslation/js/force_jquery.js
admin/css/autocomplete.css /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/css/autocomplete.css
admin/css/responsive.css /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/css/responsive.css
admin/css/widgets.css /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/css/widgets.css
admin/css/changelists.css /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/css/changelists.css
admin/css/dark_mode.css /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/css/dark_mode.css
admin/css/responsive_rtl.css /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/css/responsive_rtl.css
admin/css/nav_sidebar.css /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/css/nav_sidebar.css
admin/css/dashboard.css /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/css/dashboard.css
admin/css/forms.css /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/css/forms.css
admin/css/rtl.css /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/css/rtl.css
admin/css/login.css /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/css/login.css
admin/css/base.css /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/css/base.css
admin/css/vendor/select2/select2.min.css /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/css/vendor/select2/select2.min.css
admin/css/vendor/select2/select2.css /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/css/vendor/select2/select2.css
admin/css/vendor/select2/LICENSE-SELECT2.md /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/css/vendor/select2/LICENSE-SELECT2.md
admin/img/icon-clock.svg /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/img/icon-clock.svg
admin/img/sorting-icons.svg /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/img/sorting-icons.svg
admin/img/icon-alert.svg /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/img/icon-alert.svg
admin/img/icon-changelink.svg /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/img/icon-changelink.svg
admin/img/selector-icons.svg /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/img/selector-icons.svg
admin/img/calendar-icons.svg /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/img/calendar-icons.svg
admin/img/tooltag-arrowright.svg /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/img/tooltag-arrowright.svg
admin/img/inline-delete.svg /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/img/inline-delete.svg
admin/img/icon-yes.svg /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/img/icon-yes.svg
admin/img/icon-unknown-alt.svg /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/img/icon-unknown-alt.svg
admin/img/icon-viewlink.svg /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/img/icon-viewlink.svg
admin/img/search.svg /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/img/search.svg
admin/img/icon-deletelink.svg /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/img/icon-deletelink.svg
admin/img/README.txt /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/img/README.txt
admin/img/LICENSE /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/img/LICENSE
admin/img/icon-calendar.svg /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/img/icon-calendar.svg
admin/img/tooltag-add.svg /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/img/tooltag-add.svg
admin/img/icon-unknown.svg /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/img/icon-unknown.svg
admin/img/icon-addlink.svg /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/img/icon-addlink.svg
admin/img/icon-no.svg /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/img/icon-no.svg
admin/img/gis/move_vertex_off.svg /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/img/gis/move_vertex_off.svg
admin/img/gis/move_vertex_on.svg /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/img/gis/move_vertex_on.svg
admin/js/SelectBox.js /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/SelectBox.js
admin/js/jquery.init.js /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/jquery.init.js
admin/js/inlines.js /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/inlines.js
admin/js/collapse.js /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/collapse.js
admin/js/filters.js /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/filters.js
admin/js/change_form.js /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/change_form.js
admin/js/autocomplete.js /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/autocomplete.js
admin/js/nav_sidebar.js /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/nav_sidebar.js
admin/js/popup_response.js /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/popup_response.js
admin/js/SelectFilter2.js /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/SelectFilter2.js
admin/js/actions.js /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/actions.js
admin/js/core.js /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/core.js
admin/js/cancel.js /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/cancel.js
admin/js/prepopulate.js /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/prepopulate.js
admin/js/urlify.js /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/urlify.js
admin/js/calendar.js /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/calendar.js
admin/js/prepopulate_init.js /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/prepopulate_init.js
admin/js/theme.js /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/theme.js
admin/js/admin/DateTimeShortcuts.js /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/admin/DateTimeShortcuts.js
admin/js/admin/RelatedObjectLookups.js /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/admin/RelatedObjectLookups.js
admin/js/vendor/select2/select2.full.js /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/select2.full.js
admin/js/vendor/select2/select2.full.min.js /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/select2.full.min.js
admin/js/vendor/select2/LICENSE.md /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/LICENSE.md
admin/js/vendor/select2/i18n/zh-CN.js /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/zh-CN.js
admin/js/vendor/select2/i18n/sr-Cyrl.js /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/sr-Cyrl.js
admin/js/vendor/select2/i18n/uk.js /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/uk.js
admin/js/vendor/select2/i18n/ar.js /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/ar.js
admin/js/vendor/select2/i18n/ka.js /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/ka.js
admin/js/vendor/select2/i18n/bn.js /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/bn.js
admin/js/vendor/select2/i18n/pt.js /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/pt.js
admin/js/vendor/select2/i18n/hi.js /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/hi.js
admin/js/vendor/select2/i18n/dsb.js /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/dsb.js
admin/js/vendor/select2/i18n/bs.js /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/bs.js
admin/js/vendor/select2/i18n/ru.js /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/ru.js
admin/js/vendor/select2/i18n/ms.js /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/ms.js
admin/js/vendor/select2/i18n/et.js /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/et.js
admin/js/vendor/select2/i18n/sl.js /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/sl.js
admin/js/vendor/select2/i18n/he.js /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/he.js
admin/js/vendor/select2/i18n/is.js /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/is.js
admin/js/vendor/select2/i18n/cs.js /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/cs.js
admin/js/vendor/select2/i18n/sq.js /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/sq.js
admin/js/vendor/select2/i18n/sv.js /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/sv.js
admin/js/vendor/select2/i18n/ne.js /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/ne.js
admin/js/vendor/select2/i18n/ko.js /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/ko.js
admin/js/vendor/select2/i18n/vi.js /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/vi.js
admin/js/vendor/select2/i18n/ca.js /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/ca.js
admin/js/vendor/select2/i18n/id.js /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/id.js
admin/js/vendor/select2/i18n/nb.js /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/nb.js
admin/js/vendor/select2/i18n/hr.js /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/hr.js
admin/js/vendor/select2/i18n/af.js /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/af.js
admin/js/vendor/select2/i18n/de.js /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/de.js
admin/js/vendor/select2/i18n/mk.js /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/mk.js
admin/js/vendor/select2/i18n/hy.js /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/hy.js
admin/js/vendor/select2/i18n/it.js /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/it.js
admin/js/vendor/select2/i18n/hu.js /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/hu.js
admin/js/vendor/select2/i18n/ja.js /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/ja.js
admin/js/vendor/select2/i18n/sk.js /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/sk.js
admin/js/vendor/select2/i18n/hsb.js /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/hsb.js
admin/js/vendor/select2/i18n/ro.js /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/ro.js
admin/js/vendor/select2/i18n/en.js /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/en.js
admin/js/vendor/select2/i18n/el.js /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/el.js
admin/js/vendor/select2/i18n/fa.js /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/fa.js
admin/js/vendor/select2/i18n/pt-BR.js /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/pt-BR.js
admin/js/vendor/select2/i18n/da.js /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/da.js
admin/js/vendor/select2/i18n/sr.js /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/sr.js
admin/js/vendor/select2/i18n/ps.js /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/ps.js
admin/js/vendor/select2/i18n/lt.js /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/lt.js
admin/js/vendor/select2/i18n/az.js /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/az.js
admin/js/vendor/select2/i18n/fr.js /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/fr.js
admin/js/vendor/select2/i18n/fi.js /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/fi.js
admin/js/vendor/select2/i18n/tk.js /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/tk.js
admin/js/vendor/select2/i18n/th.js /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/th.js
admin/js/vendor/select2/i18n/gl.js /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/gl.js
admin/js/vendor/select2/i18n/eu.js /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/eu.js
admin/js/vendor/select2/i18n/es.js /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/es.js
admin/js/vendor/select2/i18n/km.js /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/km.js
admin/js/vendor/select2/i18n/bg.js /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/bg.js
admin/js/vendor/select2/i18n/lv.js /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/lv.js
admin/js/vendor/select2/i18n/zh-TW.js /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/zh-TW.js
admin/js/vendor/select2/i18n/pl.js /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/pl.js
admin/js/vendor/select2/i18n/tr.js /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/tr.js
admin/js/vendor/select2/i18n/nl.js /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/nl.js
admin/js/vendor/xregexp/xregexp.min.js /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/xregexp/xregexp.min.js
admin/js/vendor/xregexp/LICENSE.txt /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/xregexp/LICENSE.txt
admin/js/vendor/xregexp/xregexp.js /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/xregexp/xregexp.js
admin/js/vendor/jquery/jquery.min.js /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/jquery/jquery.min.js
admin/js/vendor/jquery/jquery.js /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/jquery/jquery.js
admin/js/vendor/jquery/LICENSE.txt /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/jquery/LICENSE.txt
django_extensions/css/jquery.autocomplete.css /usr/local/lib/python3.11/site-packages/django_extensions/static/django_extensions/css/jquery.autocomplete.css
django_extensions/img/indicator.gif /usr/local/lib/python3.11/site-packages/django_extensions/static/django_extensions/img/indicator.gif
django_extensions/js/jquery.ajaxQueue.js /usr/local/lib/python3.11/site-packages/django_extensions/static/django_extensions/js/jquery.ajaxQueue.js
django_extensions/js/jquery.autocomplete.js /usr/local/lib/python3.11/site-packages/django_extensions/static/django_extensions/js/jquery.autocomplete.js
django_extensions/js/jquery.bgiframe.js /usr/local/lib/python3.11/site-packages/django_extensions/static/django_extensions/js/jquery.bgiframe.js
markdownx/admin/css/markdownx.css /usr/local/lib/python3.11/site-packages/markdownx/static/markdownx/admin/css/markdownx.css
markdownx/admin/css/markdownx.min.css /usr/local/lib/python3.11/site-packages/markdownx/static/markdownx/admin/css/markdownx.min.css
markdownx/js/markdownx.min.js /usr/local/lib/python3.11/site-packages/markdownx/static/markdownx/js/markdownx.min.js
markdownx/js/markdownx.js /usr/local/lib/python3.11/site-packages/markdownx/static/markdownx/js/markdownx.js
django-htmx.js /usr/local/lib/python3.11/site-packages/django_htmx/static/django-htmx.js
admin/rosetta/css/rosetta.css /usr/local/lib/python3.11/site-packages/rosetta/static/admin/rosetta/css/rosetta.css
admin/rosetta/js/rosetta.js /usr/local/lib/python3.11/site-packages/rosetta/static/admin/rosetta/js/rosetta.js
admin/img/icon_searchbox_rosetta.png /usr/local/lib/python3.11/site-packages/rosetta/static/admin/img/icon_searchbox_rosetta.png
notifications/notify.js /usr/local/lib/python3.11/site-packages/notifications/static/notifications/notify.js
debug_toolbar/css/toolbar.css /usr/local/lib/python3.11/site-packages/debug_toolbar/static/debug_toolbar/css/toolbar.css
debug_toolbar/css/print.css /usr/local/lib/python3.11/site-packages/debug_toolbar/static/debug_toolbar/css/print.css
debug_toolbar/js/utils.js /usr/local/lib/python3.11/site-packages/debug_toolbar/static/debug_toolbar/js/utils.js
debug_toolbar/js/toolbar.js /usr/local/lib/python3.11/site-packages/debug_toolbar/static/debug_toolbar/js/toolbar.js
debug_toolbar/js/history.js /usr/local/lib/python3.11/site-packages/debug_toolbar/static/debug_toolbar/js/history.js
debug_toolbar/js/timer.js /usr/local/lib/python3.11/site-packages/debug_toolbar/static/debug_toolbar/js/timer.js
debug_toolbar/js/redirect.js /usr/local/lib/python3.11/site-packages/debug_toolbar/static/debug_toolbar/js/redirect.js

Templates (6 rendered)

Template paths

  1. /app/project/templates
  2. /usr/local/lib/python3.11/site-packages/django/forms/templates

Templates

step/step_home.html
/app/project/lms_tales/templates/step/step_home.html
Toggle context {'False': False, 'None': None, 'True': True} {'CI_COMMIT_SHORT_SHA': '7df23ad9', 'CI_COMMIT_TAG': '', 'DEFAULT_MESSAGE_LEVELS': {'DEBUG': 10, 'ERROR': 40, 'INFO': 20, 'SUCCESS': 25, 'WARNING': 30}, 'DEPLOY_ENV': 'staging', 'LANGUAGES': '<<languages>>', 'LANGUAGE_BIDI': False, 'LANGUAGE_CODE': 'en', 'MEDIA_URL': '/media/', 'RELEASE_NAME': '', 'STATIC_URL': '/static/', 'TIME_ZONE': 'Europe/Zurich', 'csrf_token': '<SimpleLazyObject: ' "'3Gfny66rptNxUMcKxHmoSzIzlcgXVRrB3ZEISxwDkvwKAZUTYSKl769pWWgL2dXC'>", 'messages': <FallbackStorage: request=<ASGIRequest: GET '/en/allergies-when-the-immune-system-backfires-41/castle-the-game-235/exploring-the-basics-1389'>>, 'perms': PermWrapper(<SimpleLazyObject: <SimpleLazyObject: <django.contrib.auth.models.AnonymousUser object at 0x7b2014912610>>>), 'request': '<<request>>', 'user': '<SimpleLazyObject: <SimpleLazyObject: ' '<django.contrib.auth.models.AnonymousUser object at ' '0x7b2014912610>>>'} {'active_courseruns': [], 'active_courserunsteps': [], 'active_language_available': True, 'available_languages': [('en', 'English')], 'course': <TalesCourse: Allergies: When the Immune System Backfires>, 'course_contact': '', 'files': '<<queryset of lms_tales.TalesStepFileNew>>', 'object': <TalesStep: Exploring the basics>, 'talesstep': <TalesStep: Exploring the basics>, 'view': <lms_tales.views.step_views.StepDetails object at 0x7b201dc88c10>}
lms_tales_base.html
/app/project/templates/lms_tales_base.html
Toggle context {'False': False, 'None': None, 'True': True} {'CI_COMMIT_SHORT_SHA': '7df23ad9', 'CI_COMMIT_TAG': '', 'DEFAULT_MESSAGE_LEVELS': {'DEBUG': 10, 'ERROR': 40, 'INFO': 20, 'SUCCESS': 25, 'WARNING': 30}, 'DEPLOY_ENV': 'staging', 'LANGUAGES': '<<languages>>', 'LANGUAGE_BIDI': False, 'LANGUAGE_CODE': 'en', 'MEDIA_URL': '/media/', 'RELEASE_NAME': '', 'STATIC_URL': '/static/', 'TIME_ZONE': 'Europe/Zurich', 'csrf_token': '<SimpleLazyObject: ' "'3Gfny66rptNxUMcKxHmoSzIzlcgXVRrB3ZEISxwDkvwKAZUTYSKl769pWWgL2dXC'>", 'messages': <FallbackStorage: request=<ASGIRequest: GET '/en/allergies-when-the-immune-system-backfires-41/castle-the-game-235/exploring-the-basics-1389'>>, 'perms': PermWrapper(<SimpleLazyObject: <SimpleLazyObject: <django.contrib.auth.models.AnonymousUser object at 0x7b2014912610>>>), 'request': '<<request>>', 'user': '<SimpleLazyObject: <SimpleLazyObject: ' '<django.contrib.auth.models.AnonymousUser object at ' '0x7b2014912610>>>'} {'active_courseruns': [], 'active_courserunsteps': [], 'active_language_available': True, 'available_languages': [('en', 'English')], 'course': <TalesCourse: Allergies: When the Immune System Backfires>, 'course_contact': '', 'files': '<<queryset of lms_tales.TalesStepFileNew>>', 'object': <TalesStep: Exploring the basics>, 'talesstep': <TalesStep: Exploring the basics>, 'view': <lms_tales.views.step_views.StepDetails object at 0x7b201dc88c10>}
base.html
/app/project/templates/base.html
Toggle context {'False': False, 'None': None, 'True': True} {'CI_COMMIT_SHORT_SHA': '7df23ad9', 'CI_COMMIT_TAG': '', 'DEFAULT_MESSAGE_LEVELS': {'DEBUG': 10, 'ERROR': 40, 'INFO': 20, 'SUCCESS': 25, 'WARNING': 30}, 'DEPLOY_ENV': 'staging', 'LANGUAGES': '<<languages>>', 'LANGUAGE_BIDI': False, 'LANGUAGE_CODE': 'en', 'MEDIA_URL': '/media/', 'RELEASE_NAME': '', 'STATIC_URL': '/static/', 'TIME_ZONE': 'Europe/Zurich', 'csrf_token': '<SimpleLazyObject: ' "'3Gfny66rptNxUMcKxHmoSzIzlcgXVRrB3ZEISxwDkvwKAZUTYSKl769pWWgL2dXC'>", 'messages': <FallbackStorage: request=<ASGIRequest: GET '/en/allergies-when-the-immune-system-backfires-41/castle-the-game-235/exploring-the-basics-1389'>>, 'perms': PermWrapper(<SimpleLazyObject: <SimpleLazyObject: <django.contrib.auth.models.AnonymousUser object at 0x7b2014912610>>>), 'request': '<<request>>', 'user': '<SimpleLazyObject: <SimpleLazyObject: ' '<django.contrib.auth.models.AnonymousUser object at ' '0x7b2014912610>>>'} {'active_courseruns': [], 'active_courserunsteps': [], 'active_language_available': True, 'available_languages': [('en', 'English')], 'course': <TalesCourse: Allergies: When the Immune System Backfires>, 'course_contact': '', 'files': '<<queryset of lms_tales.TalesStepFileNew>>', 'object': <TalesStep: Exploring the basics>, 'talesstep': <TalesStep: Exploring the basics>, 'view': <lms_tales.views.step_views.StepDetails object at 0x7b201dc88c10>}
components/header.html
/app/project/templates/components/header.html
Toggle context {'False': False, 'None': None, 'True': True} {'CI_COMMIT_SHORT_SHA': '7df23ad9', 'CI_COMMIT_TAG': '', 'DEFAULT_MESSAGE_LEVELS': {'DEBUG': 10, 'ERROR': 40, 'INFO': 20, 'SUCCESS': 25, 'WARNING': 30}, 'DEPLOY_ENV': 'staging', 'LANGUAGES': '<<languages>>', 'LANGUAGE_BIDI': False, 'LANGUAGE_CODE': 'en', 'MEDIA_URL': '/media/', 'RELEASE_NAME': '', 'STATIC_URL': '/static/', 'TIME_ZONE': 'Europe/Zurich', 'csrf_token': '<SimpleLazyObject: ' "'3Gfny66rptNxUMcKxHmoSzIzlcgXVRrB3ZEISxwDkvwKAZUTYSKl769pWWgL2dXC'>", 'messages': <FallbackStorage: request=<ASGIRequest: GET '/en/allergies-when-the-immune-system-backfires-41/castle-the-game-235/exploring-the-basics-1389'>>, 'perms': PermWrapper(<SimpleLazyObject: <SimpleLazyObject: <django.contrib.auth.models.AnonymousUser object at 0x7b2014912610>>>), 'request': '<<request>>', 'user': '<SimpleLazyObject: <SimpleLazyObject: ' '<django.contrib.auth.models.AnonymousUser object at ' '0x7b2014912610>>>'} {'active_courseruns': [], 'active_courserunsteps': [], 'active_language_available': True, 'available_languages': [('en', 'English')], 'course': <TalesCourse: Allergies: When the Immune System Backfires>, 'course_contact': '', 'files': '<<queryset of lms_tales.TalesStepFileNew>>', 'object': <TalesStep: Exploring the basics>, 'talesstep': <TalesStep: Exploring the basics>, 'view': <lms_tales.views.step_views.StepDetails object at 0x7b201dc88c10>} {'block': <Block Node: header. Contents: [<TextNode: '\n '>, <IncludeNode: template=<FilterExpression '"components/header.html"'>>, <TextNode: '\n '>]>}
components/sidebar-navigation.html
/app/project/templates/components/sidebar-navigation.html
Toggle context {'False': False, 'None': None, 'True': True} {'CI_COMMIT_SHORT_SHA': '7df23ad9', 'CI_COMMIT_TAG': '', 'DEFAULT_MESSAGE_LEVELS': {'DEBUG': 10, 'ERROR': 40, 'INFO': 20, 'SUCCESS': 25, 'WARNING': 30}, 'DEPLOY_ENV': 'staging', 'LANGUAGES': '<<languages>>', 'LANGUAGE_BIDI': False, 'LANGUAGE_CODE': 'en', 'MEDIA_URL': '/media/', 'RELEASE_NAME': '', 'STATIC_URL': '/static/', 'TIME_ZONE': 'Europe/Zurich', 'csrf_token': '<SimpleLazyObject: ' "'3Gfny66rptNxUMcKxHmoSzIzlcgXVRrB3ZEISxwDkvwKAZUTYSKl769pWWgL2dXC'>", 'messages': <FallbackStorage: request=<ASGIRequest: GET '/en/allergies-when-the-immune-system-backfires-41/castle-the-game-235/exploring-the-basics-1389'>>, 'perms': PermWrapper(<SimpleLazyObject: <SimpleLazyObject: <django.contrib.auth.models.AnonymousUser object at 0x7b2014912610>>>), 'request': '<<request>>', 'user': '<SimpleLazyObject: <SimpleLazyObject: ' '<django.contrib.auth.models.AnonymousUser object at ' '0x7b2014912610>>>'} {'active_courseruns': [], 'active_courserunsteps': [], 'active_language_available': True, 'available_languages': [('en', 'English')], 'course': <TalesCourse: Allergies: When the Immune System Backfires>, 'course_contact': '', 'files': '<<queryset of lms_tales.TalesStepFileNew>>', 'object': <TalesStep: Exploring the basics>, 'talesstep': <TalesStep: Exploring the basics>, 'view': <lms_tales.views.step_views.StepDetails object at 0x7b201dc88c10>} {'block': <Block Node: sidebar-nav. Contents: [<TextNode: '\n <nav id="sid'>, <django.template.library.SimpleNode object at 0x7b20155ea0d0>, <TextNode: '>\n '>, <django.templatetags.i18n.TranslateNode object at 0x7b2015da0cd0>, <TextNode: '</span>\n '>, <IfNode>, <TextNode: '\n '>, <django.template.library.SimpleNode object at 0x7b2015da1390>, <TextNode: '>\n '>, <django.templatetags.i18n.TranslateNode object at 0x7b20155ea950>, <TextNode: '</span>\n '>, <Block Node: navigation. Contents: [<TextNode: '\n '>]>, <TextNode: '\n </div>\n '>]>} {'block': <Block Node: navigation. Contents: [<TextNode: '\n '>, <IncludeNode: template=<FilterExpression '"components/sidebar-navigation.html"'>>, <TextNode: '\n'>]>}
step/step-title.html
/app/project/lms_tales/templates/step/step-title.html
Toggle context {'False': False, 'None': None, 'True': True} {'CI_COMMIT_SHORT_SHA': '7df23ad9', 'CI_COMMIT_TAG': '', 'DEFAULT_MESSAGE_LEVELS': {'DEBUG': 10, 'ERROR': 40, 'INFO': 20, 'SUCCESS': 25, 'WARNING': 30}, 'DEPLOY_ENV': 'staging', 'LANGUAGES': '<<languages>>', 'LANGUAGE_BIDI': False, 'LANGUAGE_CODE': 'en', 'MEDIA_URL': '/media/', 'RELEASE_NAME': '', 'STATIC_URL': '/static/', 'TIME_ZONE': 'Europe/Zurich', 'csrf_token': '<SimpleLazyObject: ' "'3Gfny66rptNxUMcKxHmoSzIzlcgXVRrB3ZEISxwDkvwKAZUTYSKl769pWWgL2dXC'>", 'messages': <FallbackStorage: request=<ASGIRequest: GET '/en/allergies-when-the-immune-system-backfires-41/castle-the-game-235/exploring-the-basics-1389'>>, 'perms': PermWrapper(<SimpleLazyObject: <SimpleLazyObject: <django.contrib.auth.models.AnonymousUser object at 0x7b2014912610>>>), 'request': '<<request>>', 'user': '<SimpleLazyObject: <SimpleLazyObject: ' '<django.contrib.auth.models.AnonymousUser object at ' '0x7b2014912610>>>'} {'active_courseruns': [], 'active_courserunsteps': [], 'active_language_available': True, 'available_languages': [('en', 'English')], 'course': <TalesCourse: Allergies: When the Immune System Backfires>, 'course_contact': '', 'files': '<<queryset of lms_tales.TalesStepFileNew>>', 'object': <TalesStep: Exploring the basics>, 'talesstep': <TalesStep: Exploring the basics>, 'view': <lms_tales.views.step_views.StepDetails object at 0x7b201dc88c10>} {'block': <Block Node: breadcrumb-bar. Contents: [<TextNode: '\n <div id="tit'>, <Block Node: sidebar-arrow. Contents: [<TextNode: '\n <div'>, <django.template.library.SimpleNode object at 0x7b201df8afd0>, <TextNode: '\n '>, <django.templatetags.i18n.TranslateNode object at 0x7b2015da0810>, <TextNode: '</span>\n '>]>, <TextNode: '\n <div cla'>, <Block Node: breadcrumb. Contents: [<TextNode: '\n '>]>, <TextNode: '\n '>]>} {'block': <Block Node: breadcrumb. Contents: [<TextNode: '\n '>, <IncludeNode: template=<FilterExpression '"step/step-title.html"'>>, <TextNode: '\n'>]>}

Context processors

django.template.context_processors.csrf
Toggle context {'csrf_token': <SimpleLazyObject: '3Gfny66rptNxUMcKxHmoSzIzlcgXVRrB3ZEISxwDkvwKAZUTYSKl769pWWgL2dXC'>}
django.template.context_processors.debug
Toggle context {}
django.template.context_processors.request
Toggle context {'request': <ASGIRequest: GET '/en/allergies-when-the-immune-system-backfires-41/castle-the-game-235/exploring-the-basics-1389'>}
django.contrib.auth.context_processors.auth
Toggle context {'user': <SimpleLazyObject: <SimpleLazyObject: <django.contrib.auth.models.AnonymousUser object at 0x7b2014912610>>>, 'perms': PermWrapper(<SimpleLazyObject: <SimpleLazyObject: <django.contrib.auth.models.AnonymousUser object at 0x7b2014912610>>>)}
django.template.context_processors.i18n
Toggle context {'LANGUAGES': (('de', 'German'), ('en', 'English'), ('fr', 'French')), 'LANGUAGE_CODE': 'en', 'LANGUAGE_BIDI': False}
django.template.context_processors.media
Toggle context {'MEDIA_URL': '/media/'}
django.template.context_processors.static
Toggle context {'STATIC_URL': '/static/'}
django.template.context_processors.tz
Toggle context {'TIME_ZONE': 'Europe/Zurich'}
django.contrib.messages.context_processors.messages
Toggle context {'messages': <FallbackStorage: request=<ASGIRequest: GET '/en/allergies-when-the-immune-system-backfires-41/castle-the-game-235/exploring-the-basics-1389'>>, 'DEFAULT_MESSAGE_LEVELS': {'DEBUG': 10, 'INFO': 20, 'SUCCESS': 25, 'WARNING': 30, 'ERROR': 40}}
utils.context_processors.ci_info
Toggle context {'CI_COMMIT_TAG': '', 'CI_COMMIT_SHORT_SHA': '7df23ad9', 'RELEASE_NAME': '', 'DEPLOY_ENV': 'staging'}

Cache calls from 1 backend

Summary

Total calls Total time Cache hits Cache misses
45 16.045542899519205 ms 164 1

Commands

add get set get_or_set touch delete clear get_many set_many delete_many has_key incr decr incr_version decr_version
0 5 1 0 0 0 0 33 6 0 0 0 0 0 0

Calls

Time (ms) Type Arguments Keyword arguments Backend
0.6267 get_many (dict_keys(['b5ac959681ff06eff632d25a5961a4d3cad09b42', '542c27005f4e84288827ce70a7d49bc73324a5e7', '887f8247d0ff979264c73b069f790024b2aa98e1', 'a2cec6efb2cb51d9fcdc73ec65d0d02848d3205f', 'af167bf678e72a9b2a64d8869d420b8d25e96148', 'f2b266a5acd7f191551fca80dea8475d456a300c', 'e5890f0f95e54c95fc7d85ffd3cd8f5079a384eb', '7d22fa9ec7aaf50b239b17bb4529f27be72f4b3d', 'fab86eaeb6f68c1bd14e3c42d6a32fc63fe5c10b', '1671d58e08fb6227d160e4add3baac34f778006f', '5634047d837b3106d3997f0611a298a16f6754cb', '38c0c9db04f183fb89086db2a3a02d20d5c1cbda', '33cd0b10f8c2fd53802b0948820b8b58da6bb27c', 'dbdc4e6f3de4931fbb7e39044291d87c49a581a7', 'bf555e2c224baeeac5838ee69c053900ce037b1d', '452aaa2adbf5d826d715538ebfd87013a599bacd', '5ef73f3d610667d7836abd847979ad8d02582140', '28b4f1c78186b497fc0611b76d5609a36a170804', 'acd1c2a120952e0445e89d8a2cc8faa99cc73454', '3fdb5b63faddfa01f5ebd09a89b74c9b3ec742bf', 'bc41695a90f568da6f9c44d14dbb30130bea76db', '6d6bdc7046f6d1410bd41d09cd570831af97fd31', '2288e6f142e998339c6d4985913358f76533a29e', 'f6e1a4d48790db63f8cb8c5653192a74ca00d34a', 'e19dd8b0e8a705c5914b55bbeb94d01f20e5368e', 'bf2a5aa392ac965fc14b9cc5fc8fcce588b2cf57', '9de26d60cec57eaab1ec19a62cf772073ae0e30f', '138549f5508bbba7283d6a0625e51c589d845e8f', '4f1f0b4dfbd30463b5587753e6f3e6ca21ddbf60', 'd890e5bc0b77c02793036efa76f50a25770a52a7', 'd00779073776b2287204a6fa5336494275fc73d5', '76e323efd8711853e13c9f7cf976845908364eb2', 'e3a5db5a670ad803efb866441f33de58309be2e2', '312c357d2eed306581bb334378808fbccf7019ea', 'd144abeb0db81d5dfea390a27c6d616aa1783141', 'b33158a576dd24b41063563867ce3f9044eb1acf', 'a78875b90f65061214a7b7eaa1a66176310060a1', 'd1accdb7a5e2af4fd7d0fc7e34b048f555cd65a0', '51329f4ee437847bebcfe01e681846839a46ad85', '05c5fe43455b028dee7ff3de1f3e2b4732238c9d', '0b7593abe25ebbf222c98d71b199a17877e17478', 'da8bff0e0d25742e869a69b7508c37ccde5f8f33', '0098dff618e4e4ce8b226fb3dcd5d9042e69eb75', '8e3f73e6feaebee5ffbc4479f566917f08b4bbca', '5c50c6b3292213266ec6601a46b9ff857efec10a', '9ba11033f2e0b0478fa7ea0cfcde90c7ea880b1b', '810de96c2cc412e55eb18a19206c9b4f4879ec68', 'da75293c9ac4e9ae833da9fecd1ab668d629ce49', 'e4392949c2513e35c4d436a230e913efc13e4556', '0ebfb9b35a0adaef2e2760b6f7610e296f468441', '9a3409722cd89bb29bc78c6bd4bca2cc2aad3e96', '5bd1ef7c64b457cbb725c42d97969db3ebe85f66', 'f3d241856fbbba355385868203e06010b65b882e', '1511f7c2f0ac6c43b58dfa27858c3d8561280f80', 'e2a6b84fc2a64f0ca59dd6e95fe6e1a5f3850ad5', 'b72f66480a030f14a954ea7eeb482d64fa1da084', '9e3a2b98ae55fa975425fa81a4e6e13342147b8a', '0e90ed3afbea5b3254d013a2b352642aaa2ce984', '2b2eb1f58e7ba0ac1ae04f9e9c95bde41f64e3fc', 'f38ac9d1db097d95b5062273e0a941d2da616361', 'cf84cec99a10af4507238b31bfce2171063a0c1d', 'c9b253ceb06244b30c24377ae68ae44353b4b3c4', '946a725506b18b4afe14d273540101238984908d']),) {} <django_redis.cache.RedisCache object at 0x7b20419d72d0>
/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in run(101)
  return _run_old_run_func()

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in _run_old_run_func(94)
  return old_run_func(self, *a, **kw)

/usr/local/lib/python3.11/concurrent/futures/thread.py in _worker(83)
  work_item.run()

/usr/local/lib/python3.11/concurrent/futures/thread.py in run(58)
  result = self.fn(*self.args, **self.kwargs)

/usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522)
  return func(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in middleware(32)
  response = get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/allauth/account/middleware.py in middleware(36)
  response = get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/simple_history/middleware.py in middleware(41)
  return get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/django_htmx/middleware.py in __call__(43)
  return self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in __call__(168)
  response = self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/cachalot/panels.py in process_request(40)
  self.collect_invalidations()

/usr/local/lib/python3.11/site-packages/cachalot/panels.py in collect_invalidations(52)
  for cache_key, timestamp in cache.get_many(

0.2045 get ('view_cache_view_/en/allergies-when-the-immune-system-backfires-41/castle-the-game-235/exploring-the-basics-1389_anonymous', None) {} <django_redis.cache.RedisCache object at 0x7b20419d72d0>
/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in run(101)
  return _run_old_run_func()

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in _run_old_run_func(94)
  return old_run_func(self, *a, **kw)

/usr/local/lib/python3.11/concurrent/futures/thread.py in _worker(83)
  work_item.run()

/usr/local/lib/python3.11/concurrent/futures/thread.py in run(58)
  result = self.fn(*self.args, **self.kwargs)

/usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522)
  return func(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in middleware(32)
  response = get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/allauth/account/middleware.py in middleware(36)
  response = get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/simple_history/middleware.py in middleware(41)
  return get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/django_htmx/middleware.py in __call__(43)
  return self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in __call__(168)
  response = self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/cachalot/panels.py in process_request(41)
  return super(CachalotPanel, self).process_request(request)

/usr/local/lib/python3.11/site-packages/asgiref/sync.py in __call__(244)
  current_executor.run_until_future(call_result)

/usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run_until_future(81)
  work_item.run()

/usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run(40)
  result = self.fn(*self.args, **self.kwargs)

/usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522)
  return func(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(90)
  return callback(request, *args, **kwargs)

/app/project/utils/decorators.py in apply_cache(58)
  response = cache.get(CACHE_KEY, None)

0.3532 get_many (['138549f5508bbba7283d6a0625e51c589d845e8f', 'bf43833cb0b3a2174078ec4118045fe32fa4f33b'],) {} <django_redis.cache.RedisCache object at 0x7b20419d72d0>
/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in run(101)
  return _run_old_run_func()

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in _run_old_run_func(94)
  return old_run_func(self, *a, **kw)

/usr/local/lib/python3.11/concurrent/futures/thread.py in _worker(83)
  work_item.run()

/usr/local/lib/python3.11/concurrent/futures/thread.py in run(58)
  result = self.fn(*self.args, **self.kwargs)

/usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522)
  return func(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in middleware(32)
  response = get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/allauth/account/middleware.py in middleware(36)
  response = get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/simple_history/middleware.py in middleware(41)
  return get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/django_htmx/middleware.py in __call__(43)
  return self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in __call__(168)
  response = self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/cachalot/panels.py in process_request(41)
  return super(CachalotPanel, self).process_request(request)

/usr/local/lib/python3.11/site-packages/asgiref/sync.py in __call__(244)
  current_executor.run_until_future(call_result)

/usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run_until_future(81)
  work_item.run()

/usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run(40)
  result = self.fn(*self.args, **self.kwargs)

/usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522)
  return func(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(90)
  return callback(request, *args, **kwargs)

/app/project/utils/decorators.py in apply_cache(64)
  response = function(request, *args, **kwargs)

/usr/local/lib/python3.11/site-packages/django/views/generic/base.py in view(104)
  return self.dispatch(request, *args, **kwargs)

/app/project/lms_tales/views/mixins.py in dispatch(20)
  self.object = self.get_object()

/usr/local/lib/python3.11/site-packages/django/views/generic/detail.py in get_object(53)
  obj = queryset.get()

/usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(37)
  return original(compiler, *args, **kwargs)

/usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(96)
  return _get_result_or_execute_query(

/usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in _get_result_or_execute_query(46)
  data = cache.get_many(table_cache_keys + [cache_key])

0.4564 set_many ({'bf43833cb0b3a2174078ec4118045fe32fa4f33b': (1735007250.3000188, [[(1389, datetime.datetime(2022, 9, 22, 9, 43, 43, 667421, tzinfo=datetime.timezone.utc), datetime.datetime(2023, 7, 10, 16, 25, 6, 393704, tzinfo=datetime.timezone.utc), datetime.datetime(2022, 10, 25, 13, 12, 42, 488830, tzinfo=datetime.timezone.utc), False, 'Exploring the basics', None, 'Exploring the basics', None, '', None, None, None, 'In this short article you learn about the basic mechanics of the free online game "Castle" that is inspired by the immune system.', None, 'In this short article you learn about the basic mechanics of the free online game "Castle" that is inspired by the immune system.', None, '', 'exploring-the-basics', 'Your goal is to protect a castle against intruders, using brave defenders. These intruders try to occupy target fields at the back of the castle.\r\n{.lead}\r\n\r\nIn order to do this, they need to enter and cross the courtyard. In doing so, they tend to avoid the defenders. Your defenders can challenge the intruders to a fight. If you use the right defender against a species of the intruders, the defender wins the fight. The game is over as soon as two intruders have occupied both fields of a target. It does not matter whether these two invaders belong to the same species. \r\n\r\n<br>\r\n\r\n# Where it happens\r\n\r\n"Castle" is a board game. The board shows circular fields in different colours. The castle yard has beige circles. The castle wall consists of dark brown circles. The entrance is marked with two even darker circles. On the left rear, you can see a yellow circle followed by three light brown circles. This is the passage through which new or recovering defenders are led step by step into the battle. At the top, the courtyard is closed by three pairs of fields in reddish brown. These are the target fields that intruders want to reach. The castle is surrounded by green circles. That is where the attackers will appear. The red line separates the outside from the inside. Attackers will try to cross it.\r\n\r\n![map of the castle with regions and buttons](/media/markdownx/409db1d9-16a0-4c33-9364-faa30dfc9c60.png)\r\nThe game board representing the castle. Clockwise from the top: The "passage" includes the yellow circle and the three light brown squares. The target squares are the six reddish circles at the back. The castle courtyard is the square in the middle, which consists of beige fields. The circular green squares are outside the castle wall. The entrance to the castle courtyard (grey circles) allows access to the castle courtyard through the wall (dark brown circles). \r\n{.footnote}\r\n\r\n\r\n<br>\r\n\r\n# Change the view\r\n\r\n![shield / mast cell](/media/markdownx/dfe796bc-157a-4252-b5e1-fff45b93c9b7.png)\r\nShield and mast cell: buttons to change the view.\r\n{.footnote}\r\n\r\nOn the right side of the playing area, you will see a shield. Click on it to switch from the medieval view to the medical view. Actors become cells of the immune system, the representations on the target fields change from bellows, armoury and dung heap to lungs, skin and intestine. Any medicines are also depicted differently. Switch back to the medieval view by clicking on the representation of the mast cell. \r\n\r\n<br>\r\n\r\n# Starting to play: the characters\r\nDefenders and intruders turn into different characters. Each character has its specifics when it comes to movement pattern, vincibility and the fields it can occupy. The intruders differ not only in terms of their target fields, but also in terms of where they enter the courtyard. Some fly over the wall, others crawl through the gate. You will find a comprehensive list of each game piece [here](/media/allergies-when-the-immune-system-backfires/Castle_Character_and_events.pdf){:target=“_blank”}.\r\n\r\nWhen you start the game, you can first add to the defensive pieces that are already on the board. To do this, choose from a range of pieces by clicking on the one you want. You will then see the playing field, highlighted with the circles on which you can place the piece. Select one. After that, you will be taken back to the selection screen.\r\n\r\n![selection screen](/media/markdownx/8180ca8d-e7b1-4c6d-baa5-9dd63040917d.png)\r\nSelection panel: That is what you see when clicking on the guardroom button. \r\n{.footnote}\r\n\r\nThis view corresponds to the guardroom. You can select as many defensive elements as you like until there are seven of them on the board. However, you can also start the game with fewer defenders. \r\n\r\n\r\n![access to guardroom: ](/media/markdownx/cbdbce7f-f61f-45ea-8909-d42883f13ef0.png)\r\nClick this button to access the guardroom. \r\n{.footnote}\r\n\r\n![show range](/media/markdownx/0d06a318-8f4f-42a7-a16a-7ced0f0ee3e7.png)\r\nIf you click on a defender you see where you can move it.\r\n{.footnote}\r\n\r\nYou then move your defenders across the board according to their range. When you click on one of your pieces, the green circles show where it might move. Click on the desired circle and your defender takes this place. You alternate moves with the attackers. Some of your interactions may count as moves even if you have not put a defender on a new circle. \r\n\r\nEach attacker first appears on one of the bottom green fields. After your next move, the attacker hops to the next position. Only then will you see whether it wants to go over the wall or through the gate.\r\n\r\nTry to beat an intruder even if you are not sure if your defender can overwhelm it. Once an attacker is in its target space, it is safe from all defenders. The attackers win the whole game as soon as two of them occupy the same target space. They do not have to be of the same species.', '', 'Your goal is to protect a castle against intruders, using brave defenders. These intruders try to occupy target fields at the back of the castle.\r\n{.lead}\r\n\r\nIn order to do this, they need to enter and cross the courtyard. In doing so, they tend to avoid the defenders. Your defenders can challenge the intruders to a fight. If you use the right defender against a species of the intruders, the defender wins the fight. The game is over as soon as two intruders have occupied both fields of a target. It does not matter whether these two invaders belong to the same species. \r\n\r\n<br>\r\n\r\n# Where it happens\r\n\r\n"Castle" is a board game. The board shows circular fields in different colours. The castle yard has beige circles. The castle wall consists of dark brown circles. The entrance is marked with two even darker circles. On the left rear, you can see a yellow circle followed by three light brown circles. This is the passage through which new or recovering defenders are led step by step into the battle. At the top, the courtyard is closed by three pairs of fields in reddish brown. These are the target fields that intruders want to reach. The castle is surrounded by green circles. That is where the attackers will appear. The red line separates the outside from the inside. Attackers will try to cross it.\r\n\r\n![map of the castle with regions and buttons](/media/markdownx/409db1d9-16a0-4c33-9364-faa30dfc9c60.png)\r\nThe game board representing the castle. Clockwise from the top: The "passage" includes the yellow circle and the three light brown squares. The target squares are the six reddish circles at the back. The castle courtyard is the square in the middle, which consists of beige fields. The circular green squares are outside the castle wall. The entrance to the castle courtyard (grey circles) allows access to the castle courtyard through the wall (dark brown circles). \r\n{.footnote}\r\n\r\n\r\n<br>\r\n\r\n# Change the view\r\n\r\n![shield / mast cell](/media/markdownx/dfe796bc-157a-4252-b5e1-fff45b93c9b7.png)\r\nShield and mast cell: buttons to change the view.\r\n{.footnote}\r\n\r\nOn the right side of the playing area, you will see a shield. Click on it to switch from the medieval view to the medical view. Actors become cells of the immune system, the representations on the target fields change from bellows, armoury and dung heap to lungs, skin and intestine. Any medicines are also depicted differently. Switch back to the medieval view by clicking on the representation of the mast cell. \r\n\r\n<br>\r\n\r\n# Starting to play: the characters\r\nDefenders and intruders turn into different characters. Each character has its specifics when it comes to movement pattern, vincibility and the fields it can occupy. The intruders differ not only in terms of their target fields, but also in terms of where they enter the courtyard. Some fly over the wall, others crawl through the gate. You will find a comprehensive list of each game piece [here](/media/allergies-when-the-immune-system-backfires/Castle_Character_and_events.pdf){:target=“_blank”}.\r\n\r\nWhen you start the game, you can first add to the defensive pieces that are already on the board. To do this, choose from a range of pieces by clicking on the one you want. You will then see the playing field, highlighted with the circles on which you can place the piece. Select one. After that, you will be taken back to the selection screen.\r\n\r\n![selection screen](/media/markdownx/8180ca8d-e7b1-4c6d-baa5-9dd63040917d.png)\r\nSelection panel: That is what you see when clicking on the guardroom button. \r\n{.footnote}\r\n\r\nThis view corresponds to the guardroom. You can select as many defensive elements as you like until there are seven of them on the board. However, you can also start the game with fewer defenders. \r\n\r\n\r\n![access to guardroom: ](/media/markdownx/cbdbce7f-f61f-45ea-8909-d42883f13ef0.png)\r\nClick this button to access the guardroom. \r\n{.footnote}\r\n\r\n![show range](/media/markdownx/0d06a318-8f4f-42a7-a16a-7ced0f0ee3e7.png)\r\nIf you click on a defender you see where you can move it.\r\n{.footnote}\r\n\r\nYou then move your defenders across the board according to their range. When you click on one of your pieces, the green circles show where it might move. Click on the desired circle and your defender takes this place. You alternate moves with the attackers. Some of your interactions may count as moves even if you have not put a defender on a new circle. \r\n\r\nEach attacker first appears on one of the bottom green fields. After your next move, the attacker hops to the next position. Only then will you see whether it wants to go over the wall or through the gate.\r\n\r\nTry to beat an intruder even if you are not sure if your defender can overwhelm it. Once an attacker is in its target space, it is safe from all defenders. The attackers win the whole game as soon as two of them occupy the same target space. They do not have to be of the same species.', '', '', '', '', '', None, None, None, None, 'University of Basel', '', 'University of Basel', '', 'TT', '', 1, 'published', False, None, None, None, None, 235)]])}, None) {} <django_redis.cache.RedisCache object at 0x7b20419d72d0>
/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in run(101)
  return _run_old_run_func()

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in _run_old_run_func(94)
  return old_run_func(self, *a, **kw)

/usr/local/lib/python3.11/concurrent/futures/thread.py in _worker(83)
  work_item.run()

/usr/local/lib/python3.11/concurrent/futures/thread.py in run(58)
  result = self.fn(*self.args, **self.kwargs)

/usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522)
  return func(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in middleware(32)
  response = get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/allauth/account/middleware.py in middleware(36)
  response = get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/simple_history/middleware.py in middleware(41)
  return get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/django_htmx/middleware.py in __call__(43)
  return self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in __call__(168)
  response = self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/cachalot/panels.py in process_request(41)
  return super(CachalotPanel, self).process_request(request)

/usr/local/lib/python3.11/site-packages/asgiref/sync.py in __call__(244)
  current_executor.run_until_future(call_result)

/usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run_until_future(81)
  work_item.run()

/usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run(40)
  result = self.fn(*self.args, **self.kwargs)

/usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522)
  return func(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(90)
  return callback(request, *args, **kwargs)

/app/project/utils/decorators.py in apply_cache(64)
  response = function(request, *args, **kwargs)

/usr/local/lib/python3.11/site-packages/django/views/generic/base.py in view(104)
  return self.dispatch(request, *args, **kwargs)

/app/project/lms_tales/views/mixins.py in dispatch(20)
  self.object = self.get_object()

/usr/local/lib/python3.11/site-packages/django/views/generic/detail.py in get_object(53)
  obj = queryset.get()

/usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(37)
  return original(compiler, *args, **kwargs)

/usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(96)
  return _get_result_or_execute_query(

/usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in _get_result_or_execute_query(71)
  cache.set_many(to_be_set, cachalot_settings.CACHALOT_TIMEOUT)

0.4121 get_many (['138549f5508bbba7283d6a0625e51c589d845e8f', 'bf43833cb0b3a2174078ec4118045fe32fa4f33b'],) {} <django_redis.cache.RedisCache object at 0x7b20419d72d0>
/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in run(101)
  return _run_old_run_func()

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in _run_old_run_func(94)
  return old_run_func(self, *a, **kw)

/usr/local/lib/python3.11/concurrent/futures/thread.py in _worker(83)
  work_item.run()

/usr/local/lib/python3.11/concurrent/futures/thread.py in run(58)
  result = self.fn(*self.args, **self.kwargs)

/usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522)
  return func(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in middleware(32)
  response = get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/allauth/account/middleware.py in middleware(36)
  response = get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/simple_history/middleware.py in middleware(41)
  return get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/django_htmx/middleware.py in __call__(43)
  return self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in __call__(168)
  response = self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/cachalot/panels.py in process_request(41)
  return super(CachalotPanel, self).process_request(request)

/usr/local/lib/python3.11/site-packages/asgiref/sync.py in __call__(244)
  current_executor.run_until_future(call_result)

/usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run_until_future(81)
  work_item.run()

/usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run(40)
  result = self.fn(*self.args, **self.kwargs)

/usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522)
  return func(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(90)
  return callback(request, *args, **kwargs)

/app/project/utils/decorators.py in apply_cache(64)
  response = function(request, *args, **kwargs)

/usr/local/lib/python3.11/site-packages/django/views/generic/base.py in view(104)
  return self.dispatch(request, *args, **kwargs)

/app/project/lms_tales/views/mixins.py in dispatch(31)
  return super().dispatch(request, *args, **kwargs)

/usr/local/lib/python3.11/site-packages/django/views/generic/base.py in dispatch(143)
  return handler(request, *args, **kwargs)

/app/project/lms_tales/views/step_views.py in get(36)
  response = super().get(request, *args, **kwargs)

/usr/local/lib/python3.11/site-packages/django/views/generic/detail.py in get(108)
  self.object = self.get_object()

/usr/local/lib/python3.11/site-packages/django/views/generic/detail.py in get_object(53)
  obj = queryset.get()

/usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(37)
  return original(compiler, *args, **kwargs)

/usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(96)
  return _get_result_or_execute_query(

/usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in _get_result_or_execute_query(46)
  data = cache.get_many(table_cache_keys + [cache_key])

0.3799 get_many (['4f1f0b4dfbd30463b5587753e6f3e6ca21ddbf60', '138549f5508bbba7283d6a0625e51c589d845e8f', '7c34410adfc14dc05077ebb29a8795bd4b517f76'],) {} <django_redis.cache.RedisCache object at 0x7b20419d72d0>
/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in run(101)
  return _run_old_run_func()

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in _run_old_run_func(94)
  return old_run_func(self, *a, **kw)

/usr/local/lib/python3.11/concurrent/futures/thread.py in _worker(83)
  work_item.run()

/usr/local/lib/python3.11/concurrent/futures/thread.py in run(58)
  result = self.fn(*self.args, **self.kwargs)

/usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522)
  return func(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in middleware(32)
  response = get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/allauth/account/middleware.py in middleware(36)
  response = get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/simple_history/middleware.py in middleware(41)
  return get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/django_htmx/middleware.py in __call__(43)
  return self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in __call__(168)
  response = self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/cachalot/panels.py in process_request(41)
  return super(CachalotPanel, self).process_request(request)

/usr/local/lib/python3.11/site-packages/asgiref/sync.py in __call__(244)
  current_executor.run_until_future(call_result)

/usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run_until_future(81)
  work_item.run()

/usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run(40)
  result = self.fn(*self.args, **self.kwargs)

/usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522)
  return func(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(90)
  return callback(request, *args, **kwargs)

/app/project/utils/decorators.py in apply_cache(64)
  response = function(request, *args, **kwargs)

/usr/local/lib/python3.11/site-packages/django/views/generic/base.py in view(104)
  return self.dispatch(request, *args, **kwargs)

/app/project/lms_tales/views/mixins.py in dispatch(31)
  return super().dispatch(request, *args, **kwargs)

/usr/local/lib/python3.11/site-packages/django/views/generic/base.py in dispatch(143)
  return handler(request, *args, **kwargs)

/app/project/lms_tales/views/step_views.py in get(36)
  response = super().get(request, *args, **kwargs)

/usr/local/lib/python3.11/site-packages/django/views/generic/detail.py in get(109)
  context = self.get_context_data(object=self.object)

/app/project/lms_tales/views/step_views.py in get_context_data(63)
  if len(step_files_new) == 0:

/usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(37)
  return original(compiler, *args, **kwargs)

/usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(96)
  return _get_result_or_execute_query(

/usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in _get_result_or_execute_query(46)
  data = cache.get_many(table_cache_keys + [cache_key])

0.3480 set_many ({'7c34410adfc14dc05077ebb29a8795bd4b517f76': (1735007250.3077548, [])}, None) {} <django_redis.cache.RedisCache object at 0x7b20419d72d0>
/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in run(101)
  return _run_old_run_func()

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in _run_old_run_func(94)
  return old_run_func(self, *a, **kw)

/usr/local/lib/python3.11/concurrent/futures/thread.py in _worker(83)
  work_item.run()

/usr/local/lib/python3.11/concurrent/futures/thread.py in run(58)
  result = self.fn(*self.args, **self.kwargs)

/usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522)
  return func(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in middleware(32)
  response = get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/allauth/account/middleware.py in middleware(36)
  response = get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/simple_history/middleware.py in middleware(41)
  return get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/django_htmx/middleware.py in __call__(43)
  return self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in __call__(168)
  response = self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/cachalot/panels.py in process_request(41)
  return super(CachalotPanel, self).process_request(request)

/usr/local/lib/python3.11/site-packages/asgiref/sync.py in __call__(244)
  current_executor.run_until_future(call_result)

/usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run_until_future(81)
  work_item.run()

/usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run(40)
  result = self.fn(*self.args, **self.kwargs)

/usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522)
  return func(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(90)
  return callback(request, *args, **kwargs)

/app/project/utils/decorators.py in apply_cache(64)
  response = function(request, *args, **kwargs)

/usr/local/lib/python3.11/site-packages/django/views/generic/base.py in view(104)
  return self.dispatch(request, *args, **kwargs)

/app/project/lms_tales/views/mixins.py in dispatch(31)
  return super().dispatch(request, *args, **kwargs)

/usr/local/lib/python3.11/site-packages/django/views/generic/base.py in dispatch(143)
  return handler(request, *args, **kwargs)

/app/project/lms_tales/views/step_views.py in get(36)
  response = super().get(request, *args, **kwargs)

/usr/local/lib/python3.11/site-packages/django/views/generic/detail.py in get(109)
  context = self.get_context_data(object=self.object)

/app/project/lms_tales/views/step_views.py in get_context_data(63)
  if len(step_files_new) == 0:

/usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(37)
  return original(compiler, *args, **kwargs)

/usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(96)
  return _get_result_or_execute_query(

/usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in _get_result_or_execute_query(71)
  cache.set_many(to_be_set, cachalot_settings.CACHALOT_TIMEOUT)

0.3546 get_many (['4f1f0b4dfbd30463b5587753e6f3e6ca21ddbf60', '138549f5508bbba7283d6a0625e51c589d845e8f', 'ec4c1ad498303f2ef251d9ffb9fda3945fe45736'],) {} <django_redis.cache.RedisCache object at 0x7b20419d72d0>
/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in run(101)
  return _run_old_run_func()

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in _run_old_run_func(94)
  return old_run_func(self, *a, **kw)

/usr/local/lib/python3.11/concurrent/futures/thread.py in _worker(83)
  work_item.run()

/usr/local/lib/python3.11/concurrent/futures/thread.py in run(58)
  result = self.fn(*self.args, **self.kwargs)

/usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522)
  return func(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in middleware(32)
  response = get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/allauth/account/middleware.py in middleware(36)
  response = get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/simple_history/middleware.py in middleware(41)
  return get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/django_htmx/middleware.py in __call__(43)
  return self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in __call__(168)
  response = self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/cachalot/panels.py in process_request(41)
  return super(CachalotPanel, self).process_request(request)

/usr/local/lib/python3.11/site-packages/asgiref/sync.py in __call__(244)
  current_executor.run_until_future(call_result)

/usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run_until_future(81)
  work_item.run()

/usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run(40)
  result = self.fn(*self.args, **self.kwargs)

/usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522)
  return func(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(90)
  return callback(request, *args, **kwargs)

/app/project/utils/decorators.py in apply_cache(64)
  response = function(request, *args, **kwargs)

/usr/local/lib/python3.11/site-packages/django/views/generic/base.py in view(104)
  return self.dispatch(request, *args, **kwargs)

/app/project/lms_tales/views/mixins.py in dispatch(31)
  return super().dispatch(request, *args, **kwargs)

/usr/local/lib/python3.11/site-packages/django/views/generic/base.py in dispatch(143)
  return handler(request, *args, **kwargs)

/app/project/lms_tales/views/step_views.py in get(36)
  response = super().get(request, *args, **kwargs)

/usr/local/lib/python3.11/site-packages/django/views/generic/detail.py in get(109)
  context = self.get_context_data(object=self.object)

/app/project/lms_tales/views/step_views.py in get_context_data(69)
  if len(step_files_new) > 0:

/usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(37)
  return original(compiler, *args, **kwargs)

/usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(96)
  return _get_result_or_execute_query(

/usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in _get_result_or_execute_query(46)
  data = cache.get_many(table_cache_keys + [cache_key])

0.3780 set_many ({'ec4c1ad498303f2ef251d9ffb9fda3945fe45736': (1735007250.3120832, [])}, None) {} <django_redis.cache.RedisCache object at 0x7b20419d72d0>
/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in run(101)
  return _run_old_run_func()

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in _run_old_run_func(94)
  return old_run_func(self, *a, **kw)

/usr/local/lib/python3.11/concurrent/futures/thread.py in _worker(83)
  work_item.run()

/usr/local/lib/python3.11/concurrent/futures/thread.py in run(58)
  result = self.fn(*self.args, **self.kwargs)

/usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522)
  return func(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in middleware(32)
  response = get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/allauth/account/middleware.py in middleware(36)
  response = get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/simple_history/middleware.py in middleware(41)
  return get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/django_htmx/middleware.py in __call__(43)
  return self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in __call__(168)
  response = self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/cachalot/panels.py in process_request(41)
  return super(CachalotPanel, self).process_request(request)

/usr/local/lib/python3.11/site-packages/asgiref/sync.py in __call__(244)
  current_executor.run_until_future(call_result)

/usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run_until_future(81)
  work_item.run()

/usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run(40)
  result = self.fn(*self.args, **self.kwargs)

/usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522)
  return func(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(90)
  return callback(request, *args, **kwargs)

/app/project/utils/decorators.py in apply_cache(64)
  response = function(request, *args, **kwargs)

/usr/local/lib/python3.11/site-packages/django/views/generic/base.py in view(104)
  return self.dispatch(request, *args, **kwargs)

/app/project/lms_tales/views/mixins.py in dispatch(31)
  return super().dispatch(request, *args, **kwargs)

/usr/local/lib/python3.11/site-packages/django/views/generic/base.py in dispatch(143)
  return handler(request, *args, **kwargs)

/app/project/lms_tales/views/step_views.py in get(36)
  response = super().get(request, *args, **kwargs)

/usr/local/lib/python3.11/site-packages/django/views/generic/detail.py in get(109)
  context = self.get_context_data(object=self.object)

/app/project/lms_tales/views/step_views.py in get_context_data(69)
  if len(step_files_new) > 0:

/usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(37)
  return original(compiler, *args, **kwargs)

/usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(96)
  return _get_result_or_execute_query(

/usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in _get_result_or_execute_query(71)
  cache.set_many(to_be_set, cachalot_settings.CACHALOT_TIMEOUT)

0.3419 get_many (['4f1f0b4dfbd30463b5587753e6f3e6ca21ddbf60', '138549f5508bbba7283d6a0625e51c589d845e8f', '7c34410adfc14dc05077ebb29a8795bd4b517f76'],) {} <django_redis.cache.RedisCache object at 0x7b20419d72d0>
/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in run(101)
  return _run_old_run_func()

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in _run_old_run_func(94)
  return old_run_func(self, *a, **kw)

/usr/local/lib/python3.11/concurrent/futures/thread.py in _worker(83)
  work_item.run()

/usr/local/lib/python3.11/concurrent/futures/thread.py in run(58)
  result = self.fn(*self.args, **self.kwargs)

/usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522)
  return func(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in middleware(32)
  response = get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/allauth/account/middleware.py in middleware(36)
  response = get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/simple_history/middleware.py in middleware(41)
  return get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/django_htmx/middleware.py in __call__(43)
  return self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in __call__(168)
  response = self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/cachalot/panels.py in process_request(41)
  return super(CachalotPanel, self).process_request(request)

/usr/local/lib/python3.11/site-packages/asgiref/sync.py in __call__(244)
  current_executor.run_until_future(call_result)

/usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run_until_future(81)
  work_item.run()

/usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run(40)
  result = self.fn(*self.args, **self.kwargs)

/usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522)
  return func(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(90)
  return callback(request, *args, **kwargs)

/app/project/utils/decorators.py in apply_cache(64)
  response = function(request, *args, **kwargs)

/usr/local/lib/python3.11/site-packages/django/views/generic/base.py in view(104)
  return self.dispatch(request, *args, **kwargs)

/app/project/lms_tales/views/mixins.py in dispatch(31)
  return super().dispatch(request, *args, **kwargs)

/usr/local/lib/python3.11/site-packages/django/views/generic/base.py in dispatch(143)
  return handler(request, *args, **kwargs)

/app/project/lms_tales/views/step_views.py in get(36)
  response = super().get(request, *args, **kwargs)

/usr/local/lib/python3.11/site-packages/django/views/generic/detail.py in get(109)
  context = self.get_context_data(object=self.object)

/app/project/lms_tales/views/step_views.py in get_context_data(69)
  if len(step_files_new) > 0:

/usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(37)
  return original(compiler, *args, **kwargs)

/usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(96)
  return _get_result_or_execute_query(

/usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in _get_result_or_execute_query(46)
  data = cache.get_many(table_cache_keys + [cache_key])

0.3820 get_many (['4f1f0b4dfbd30463b5587753e6f3e6ca21ddbf60', '138549f5508bbba7283d6a0625e51c589d845e8f', 'beb38e46c7a5e177e896e9a96bc2518ecf72a931'],) {} <django_redis.cache.RedisCache object at 0x7b20419d72d0>
/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in run(101)
  return _run_old_run_func()

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in _run_old_run_func(94)
  return old_run_func(self, *a, **kw)

/usr/local/lib/python3.11/concurrent/futures/thread.py in _worker(83)
  work_item.run()

/usr/local/lib/python3.11/concurrent/futures/thread.py in run(58)
  result = self.fn(*self.args, **self.kwargs)

/usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522)
  return func(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in middleware(32)
  response = get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/allauth/account/middleware.py in middleware(36)
  response = get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/simple_history/middleware.py in middleware(41)
  return get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/django_htmx/middleware.py in __call__(43)
  return self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in __call__(168)
  response = self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/cachalot/panels.py in process_request(41)
  return super(CachalotPanel, self).process_request(request)

/usr/local/lib/python3.11/site-packages/asgiref/sync.py in __call__(244)
  current_executor.run_until_future(call_result)

/usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run_until_future(81)
  work_item.run()

/usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run(40)
  result = self.fn(*self.args, **self.kwargs)

/usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522)
  return func(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(90)
  return callback(request, *args, **kwargs)

/app/project/utils/decorators.py in apply_cache(64)
  response = function(request, *args, **kwargs)

/usr/local/lib/python3.11/site-packages/django/views/generic/base.py in view(104)
  return self.dispatch(request, *args, **kwargs)

/app/project/lms_tales/views/mixins.py in dispatch(31)
  return super().dispatch(request, *args, **kwargs)

/usr/local/lib/python3.11/site-packages/django/views/generic/base.py in dispatch(143)
  return handler(request, *args, **kwargs)

/app/project/lms_tales/views/step_views.py in get(36)
  response = super().get(request, *args, **kwargs)

/usr/local/lib/python3.11/site-packages/django/views/generic/detail.py in get(109)
  context = self.get_context_data(object=self.object)

/app/project/lms_tales/views/step_views.py in get_context_data(69)
  if len(step_files_new) > 0:

/usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(37)
  return original(compiler, *args, **kwargs)

/usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(96)
  return _get_result_or_execute_query(

/usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in _get_result_or_execute_query(46)
  data = cache.get_many(table_cache_keys + [cache_key])

0.3504 set_many ({'beb38e46c7a5e177e896e9a96bc2518ecf72a931': (1735007250.3181238, [])}, None) {} <django_redis.cache.RedisCache object at 0x7b20419d72d0>
/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in run(101)
  return _run_old_run_func()

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in _run_old_run_func(94)
  return old_run_func(self, *a, **kw)

/usr/local/lib/python3.11/concurrent/futures/thread.py in _worker(83)
  work_item.run()

/usr/local/lib/python3.11/concurrent/futures/thread.py in run(58)
  result = self.fn(*self.args, **self.kwargs)

/usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522)
  return func(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in middleware(32)
  response = get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/allauth/account/middleware.py in middleware(36)
  response = get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/simple_history/middleware.py in middleware(41)
  return get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/django_htmx/middleware.py in __call__(43)
  return self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in __call__(168)
  response = self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/cachalot/panels.py in process_request(41)
  return super(CachalotPanel, self).process_request(request)

/usr/local/lib/python3.11/site-packages/asgiref/sync.py in __call__(244)
  current_executor.run_until_future(call_result)

/usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run_until_future(81)
  work_item.run()

/usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run(40)
  result = self.fn(*self.args, **self.kwargs)

/usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522)
  return func(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(90)
  return callback(request, *args, **kwargs)

/app/project/utils/decorators.py in apply_cache(64)
  response = function(request, *args, **kwargs)

/usr/local/lib/python3.11/site-packages/django/views/generic/base.py in view(104)
  return self.dispatch(request, *args, **kwargs)

/app/project/lms_tales/views/mixins.py in dispatch(31)
  return super().dispatch(request, *args, **kwargs)

/usr/local/lib/python3.11/site-packages/django/views/generic/base.py in dispatch(143)
  return handler(request, *args, **kwargs)

/app/project/lms_tales/views/step_views.py in get(36)
  response = super().get(request, *args, **kwargs)

/usr/local/lib/python3.11/site-packages/django/views/generic/detail.py in get(109)
  context = self.get_context_data(object=self.object)

/app/project/lms_tales/views/step_views.py in get_context_data(69)
  if len(step_files_new) > 0:

/usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(37)
  return original(compiler, *args, **kwargs)

/usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(96)
  return _get_result_or_execute_query(

/usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in _get_result_or_execute_query(71)
  cache.set_many(to_be_set, cachalot_settings.CACHALOT_TIMEOUT)

0.4373 get_many (['76e323efd8711853e13c9f7cf976845908364eb2', 'fafa335b0351bf6451a0aff01e57264237749722'],) {} <django_redis.cache.RedisCache object at 0x7b20419d72d0>
/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in run(101)
  return _run_old_run_func()

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in _run_old_run_func(94)
  return old_run_func(self, *a, **kw)

/usr/local/lib/python3.11/concurrent/futures/thread.py in _worker(83)
  work_item.run()

/usr/local/lib/python3.11/concurrent/futures/thread.py in run(58)
  result = self.fn(*self.args, **self.kwargs)

/usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522)
  return func(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in middleware(32)
  response = get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/allauth/account/middleware.py in middleware(36)
  response = get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/simple_history/middleware.py in middleware(41)
  return get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/django_htmx/middleware.py in __call__(43)
  return self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in __call__(168)
  response = self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/cachalot/panels.py in process_request(41)
  return super(CachalotPanel, self).process_request(request)

/usr/local/lib/python3.11/site-packages/asgiref/sync.py in __call__(244)
  current_executor.run_until_future(call_result)

/usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run_until_future(81)
  work_item.run()

/usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run(40)
  result = self.fn(*self.args, **self.kwargs)

/usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522)
  return func(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(90)
  return callback(request, *args, **kwargs)

/app/project/utils/decorators.py in apply_cache(64)
  response = function(request, *args, **kwargs)

/usr/local/lib/python3.11/site-packages/django/views/generic/base.py in view(104)
  return self.dispatch(request, *args, **kwargs)

/app/project/lms_tales/views/mixins.py in dispatch(31)
  return super().dispatch(request, *args, **kwargs)

/usr/local/lib/python3.11/site-packages/django/views/generic/base.py in dispatch(143)
  return handler(request, *args, **kwargs)

/app/project/lms_tales/views/step_views.py in get(36)
  response = super().get(request, *args, **kwargs)

/usr/local/lib/python3.11/site-packages/django/views/generic/detail.py in get(109)
  context = self.get_context_data(object=self.object)

/app/project/lms_tales/views/step_views.py in get_context_data(72)
  context["course"] = self.object.chapter.course

/usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(37)
  return original(compiler, *args, **kwargs)

/usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(96)
  return _get_result_or_execute_query(

/usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in _get_result_or_execute_query(46)
  data = cache.get_many(table_cache_keys + [cache_key])

0.4510 get_many (['e3a5db5a670ad803efb866441f33de58309be2e2', '094be066ce804a917a0ce338b38303f8fb9b12e9'],) {} <django_redis.cache.RedisCache object at 0x7b20419d72d0>
/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in run(101)
  return _run_old_run_func()

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in _run_old_run_func(94)
  return old_run_func(self, *a, **kw)

/usr/local/lib/python3.11/concurrent/futures/thread.py in _worker(83)
  work_item.run()

/usr/local/lib/python3.11/concurrent/futures/thread.py in run(58)
  result = self.fn(*self.args, **self.kwargs)

/usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522)
  return func(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in middleware(32)
  response = get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/allauth/account/middleware.py in middleware(36)
  response = get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/simple_history/middleware.py in middleware(41)
  return get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/django_htmx/middleware.py in __call__(43)
  return self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in __call__(168)
  response = self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/cachalot/panels.py in process_request(41)
  return super(CachalotPanel, self).process_request(request)

/usr/local/lib/python3.11/site-packages/asgiref/sync.py in __call__(244)
  current_executor.run_until_future(call_result)

/usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run_until_future(81)
  work_item.run()

/usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run(40)
  result = self.fn(*self.args, **self.kwargs)

/usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522)
  return func(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(90)
  return callback(request, *args, **kwargs)

/app/project/utils/decorators.py in apply_cache(64)
  response = function(request, *args, **kwargs)

/usr/local/lib/python3.11/site-packages/django/views/generic/base.py in view(104)
  return self.dispatch(request, *args, **kwargs)

/app/project/lms_tales/views/mixins.py in dispatch(31)
  return super().dispatch(request, *args, **kwargs)

/usr/local/lib/python3.11/site-packages/django/views/generic/base.py in dispatch(143)
  return handler(request, *args, **kwargs)

/app/project/lms_tales/views/step_views.py in get(36)
  response = super().get(request, *args, **kwargs)

/usr/local/lib/python3.11/site-packages/django/views/generic/detail.py in get(109)
  context = self.get_context_data(object=self.object)

/app/project/lms_tales/views/step_views.py in get_context_data(72)
  context["course"] = self.object.chapter.course

/usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(37)
  return original(compiler, *args, **kwargs)

/usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(96)
  return _get_result_or_execute_query(

/usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in _get_result_or_execute_query(46)
  data = cache.get_many(table_cache_keys + [cache_key])

0.3100 get_many (['e3a5db5a670ad803efb866441f33de58309be2e2', '312c357d2eed306581bb334378808fbccf7019ea', 'f9fb168d4ce6df36fbe0e8aff12d4f4837bb4422'],) {} <django_redis.cache.RedisCache object at 0x7b20419d72d0>
/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in run(101)
  return _run_old_run_func()

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in _run_old_run_func(94)
  return old_run_func(self, *a, **kw)

/usr/local/lib/python3.11/concurrent/futures/thread.py in _worker(83)
  work_item.run()

/usr/local/lib/python3.11/concurrent/futures/thread.py in run(58)
  result = self.fn(*self.args, **self.kwargs)

/usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522)
  return func(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in middleware(32)
  response = get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/allauth/account/middleware.py in middleware(36)
  response = get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/simple_history/middleware.py in middleware(41)
  return get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/django_htmx/middleware.py in __call__(43)
  return self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in __call__(168)
  response = self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/cachalot/panels.py in process_request(41)
  return super(CachalotPanel, self).process_request(request)

/usr/local/lib/python3.11/site-packages/asgiref/sync.py in __call__(244)
  current_executor.run_until_future(call_result)

/usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run_until_future(81)
  work_item.run()

/usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run(40)
  result = self.fn(*self.args, **self.kwargs)

/usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522)
  return func(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(90)
  return callback(request, *args, **kwargs)

/app/project/utils/decorators.py in apply_cache(72)
  cache.set(CACHE_KEY, response.render(), ttl)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_patched_render(41)
  return old_render(self)

/usr/local/lib/python3.11/site-packages/django/template/response.py in render(114)
  self.content = self.rendered_content

/usr/local/lib/python3.11/site-packages/sentry_sdk/utils.py in runner(1788)
  return sentry_patched_function(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/templates.py in rendered_content(77)
  return real_rendered_content.fget(self)

/usr/local/lib/python3.11/site-packages/django/template/response.py in rendered_content(92)
  return template.render(context, self._request)

/usr/local/lib/python3.11/site-packages/django/template/backends/django.py in render(61)
  return self.template.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(175)
  return self._render(context)

/usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112)
  return self.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157)
  return compiled_parent._render(context)

/usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112)
  return self.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157)
  return compiled_parent._render(context)

/usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112)
  return self.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(314)
  match = condition.eval(context)

/usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in eval(877)
  return self.value.resolve(context, ignore_failures=True)

/usr/local/lib/python3.11/site-packages/django/template/base.py in resolve(715)
  obj = self.var.resolve(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in resolve(847)
  value = self._resolve_lookup(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in _resolve_lookup(890)
  current = getattr(current, bit)

/app/project/lms_tales/models.py in meta(86)
  + ", ".join([author.name for author in self.get_course().authors.all()]),

/usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(37)
  return original(compiler, *args, **kwargs)

/usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(96)
  return _get_result_or_execute_query(

/usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in _get_result_or_execute_query(46)
  data = cache.get_many(table_cache_keys + [cache_key])

0.2577 get_many (['e3a5db5a670ad803efb866441f33de58309be2e2', '312c357d2eed306581bb334378808fbccf7019ea', 'f9fb168d4ce6df36fbe0e8aff12d4f4837bb4422'],) {} <django_redis.cache.RedisCache object at 0x7b20419d72d0>
/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in run(101)
  return _run_old_run_func()

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in _run_old_run_func(94)
  return old_run_func(self, *a, **kw)

/usr/local/lib/python3.11/concurrent/futures/thread.py in _worker(83)
  work_item.run()

/usr/local/lib/python3.11/concurrent/futures/thread.py in run(58)
  result = self.fn(*self.args, **self.kwargs)

/usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522)
  return func(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in middleware(32)
  response = get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/allauth/account/middleware.py in middleware(36)
  response = get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/simple_history/middleware.py in middleware(41)
  return get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/django_htmx/middleware.py in __call__(43)
  return self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in __call__(168)
  response = self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/cachalot/panels.py in process_request(41)
  return super(CachalotPanel, self).process_request(request)

/usr/local/lib/python3.11/site-packages/asgiref/sync.py in __call__(244)
  current_executor.run_until_future(call_result)

/usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run_until_future(81)
  work_item.run()

/usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run(40)
  result = self.fn(*self.args, **self.kwargs)

/usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522)
  return func(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(90)
  return callback(request, *args, **kwargs)

/app/project/utils/decorators.py in apply_cache(72)
  cache.set(CACHE_KEY, response.render(), ttl)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_patched_render(41)
  return old_render(self)

/usr/local/lib/python3.11/site-packages/django/template/response.py in render(114)
  self.content = self.rendered_content

/usr/local/lib/python3.11/site-packages/sentry_sdk/utils.py in runner(1788)
  return sentry_patched_function(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/templates.py in rendered_content(77)
  return real_rendered_content.fget(self)

/usr/local/lib/python3.11/site-packages/django/template/response.py in rendered_content(92)
  return template.render(context, self._request)

/usr/local/lib/python3.11/site-packages/django/template/backends/django.py in render(61)
  return self.template.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(175)
  return self._render(context)

/usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112)
  return self.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157)
  return compiled_parent._render(context)

/usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112)
  return self.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157)
  return compiled_parent._render(context)

/usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112)
  return self.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(321)
  return nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1064)
  output = self.filter_expression.resolve(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in resolve(715)
  obj = self.var.resolve(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in resolve(847)
  value = self._resolve_lookup(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in _resolve_lookup(890)
  current = getattr(current, bit)

/app/project/lms_tales/models.py in meta(86)
  + ", ".join([author.name for author in self.get_course().authors.all()]),

/usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(37)
  return original(compiler, *args, **kwargs)

/usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(96)
  return _get_result_or_execute_query(

/usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in _get_result_or_execute_query(46)
  data = cache.get_many(table_cache_keys + [cache_key])

0.2447 get_many (['e3a5db5a670ad803efb866441f33de58309be2e2', '312c357d2eed306581bb334378808fbccf7019ea', 'f9fb168d4ce6df36fbe0e8aff12d4f4837bb4422'],) {} <django_redis.cache.RedisCache object at 0x7b20419d72d0>
/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in run(101)
  return _run_old_run_func()

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in _run_old_run_func(94)
  return old_run_func(self, *a, **kw)

/usr/local/lib/python3.11/concurrent/futures/thread.py in _worker(83)
  work_item.run()

/usr/local/lib/python3.11/concurrent/futures/thread.py in run(58)
  result = self.fn(*self.args, **self.kwargs)

/usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522)
  return func(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in middleware(32)
  response = get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/allauth/account/middleware.py in middleware(36)
  response = get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/simple_history/middleware.py in middleware(41)
  return get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/django_htmx/middleware.py in __call__(43)
  return self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in __call__(168)
  response = self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/cachalot/panels.py in process_request(41)
  return super(CachalotPanel, self).process_request(request)

/usr/local/lib/python3.11/site-packages/asgiref/sync.py in __call__(244)
  current_executor.run_until_future(call_result)

/usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run_until_future(81)
  work_item.run()

/usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run(40)
  result = self.fn(*self.args, **self.kwargs)

/usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522)
  return func(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(90)
  return callback(request, *args, **kwargs)

/app/project/utils/decorators.py in apply_cache(72)
  cache.set(CACHE_KEY, response.render(), ttl)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_patched_render(41)
  return old_render(self)

/usr/local/lib/python3.11/site-packages/django/template/response.py in render(114)
  self.content = self.rendered_content

/usr/local/lib/python3.11/site-packages/sentry_sdk/utils.py in runner(1788)
  return sentry_patched_function(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/templates.py in rendered_content(77)
  return real_rendered_content.fget(self)

/usr/local/lib/python3.11/site-packages/django/template/response.py in rendered_content(92)
  return template.render(context, self._request)

/usr/local/lib/python3.11/site-packages/django/template/backends/django.py in render(61)
  return self.template.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(175)
  return self._render(context)

/usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112)
  return self.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157)
  return compiled_parent._render(context)

/usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112)
  return self.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157)
  return compiled_parent._render(context)

/usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112)
  return self.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(321)
  return nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1064)
  output = self.filter_expression.resolve(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in resolve(715)
  obj = self.var.resolve(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in resolve(847)
  value = self._resolve_lookup(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in _resolve_lookup(890)
  current = getattr(current, bit)

/app/project/lms_tales/models.py in meta(86)
  + ", ".join([author.name for author in self.get_course().authors.all()]),

/usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(37)
  return original(compiler, *args, **kwargs)

/usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(96)
  return _get_result_or_execute_query(

/usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in _get_result_or_execute_query(46)
  data = cache.get_many(table_cache_keys + [cache_key])

0.3136 get_many (['e3a5db5a670ad803efb866441f33de58309be2e2', '312c357d2eed306581bb334378808fbccf7019ea', 'f9fb168d4ce6df36fbe0e8aff12d4f4837bb4422'],) {} <django_redis.cache.RedisCache object at 0x7b20419d72d0>
/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in run(101)
  return _run_old_run_func()

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in _run_old_run_func(94)
  return old_run_func(self, *a, **kw)

/usr/local/lib/python3.11/concurrent/futures/thread.py in _worker(83)
  work_item.run()

/usr/local/lib/python3.11/concurrent/futures/thread.py in run(58)
  result = self.fn(*self.args, **self.kwargs)

/usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522)
  return func(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in middleware(32)
  response = get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/allauth/account/middleware.py in middleware(36)
  response = get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/simple_history/middleware.py in middleware(41)
  return get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/django_htmx/middleware.py in __call__(43)
  return self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in __call__(168)
  response = self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/cachalot/panels.py in process_request(41)
  return super(CachalotPanel, self).process_request(request)

/usr/local/lib/python3.11/site-packages/asgiref/sync.py in __call__(244)
  current_executor.run_until_future(call_result)

/usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run_until_future(81)
  work_item.run()

/usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run(40)
  result = self.fn(*self.args, **self.kwargs)

/usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522)
  return func(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(90)
  return callback(request, *args, **kwargs)

/app/project/utils/decorators.py in apply_cache(72)
  cache.set(CACHE_KEY, response.render(), ttl)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_patched_render(41)
  return old_render(self)

/usr/local/lib/python3.11/site-packages/django/template/response.py in render(114)
  self.content = self.rendered_content

/usr/local/lib/python3.11/site-packages/sentry_sdk/utils.py in runner(1788)
  return sentry_patched_function(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/templates.py in rendered_content(77)
  return real_rendered_content.fget(self)

/usr/local/lib/python3.11/site-packages/django/template/response.py in rendered_content(92)
  return template.render(context, self._request)

/usr/local/lib/python3.11/site-packages/django/template/backends/django.py in render(61)
  return self.template.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(175)
  return self._render(context)

/usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112)
  return self.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157)
  return compiled_parent._render(context)

/usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112)
  return self.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157)
  return compiled_parent._render(context)

/usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112)
  return self.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(321)
  return nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1064)
  output = self.filter_expression.resolve(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in resolve(715)
  obj = self.var.resolve(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in resolve(847)
  value = self._resolve_lookup(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in _resolve_lookup(890)
  current = getattr(current, bit)

/app/project/lms_tales/models.py in meta(86)
  + ", ".join([author.name for author in self.get_course().authors.all()]),

/usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(37)
  return original(compiler, *args, **kwargs)

/usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(96)
  return _get_result_or_execute_query(

/usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in _get_result_or_execute_query(46)
  data = cache.get_many(table_cache_keys + [cache_key])

0.2650 get_many (['e3a5db5a670ad803efb866441f33de58309be2e2', '312c357d2eed306581bb334378808fbccf7019ea', 'f9fb168d4ce6df36fbe0e8aff12d4f4837bb4422'],) {} <django_redis.cache.RedisCache object at 0x7b20419d72d0>
/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in run(101)
  return _run_old_run_func()

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in _run_old_run_func(94)
  return old_run_func(self, *a, **kw)

/usr/local/lib/python3.11/concurrent/futures/thread.py in _worker(83)
  work_item.run()

/usr/local/lib/python3.11/concurrent/futures/thread.py in run(58)
  result = self.fn(*self.args, **self.kwargs)

/usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522)
  return func(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in middleware(32)
  response = get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/allauth/account/middleware.py in middleware(36)
  response = get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/simple_history/middleware.py in middleware(41)
  return get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/django_htmx/middleware.py in __call__(43)
  return self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in __call__(168)
  response = self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/cachalot/panels.py in process_request(41)
  return super(CachalotPanel, self).process_request(request)

/usr/local/lib/python3.11/site-packages/asgiref/sync.py in __call__(244)
  current_executor.run_until_future(call_result)

/usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run_until_future(81)
  work_item.run()

/usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run(40)
  result = self.fn(*self.args, **self.kwargs)

/usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522)
  return func(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(90)
  return callback(request, *args, **kwargs)

/app/project/utils/decorators.py in apply_cache(72)
  cache.set(CACHE_KEY, response.render(), ttl)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_patched_render(41)
  return old_render(self)

/usr/local/lib/python3.11/site-packages/django/template/response.py in render(114)
  self.content = self.rendered_content

/usr/local/lib/python3.11/site-packages/sentry_sdk/utils.py in runner(1788)
  return sentry_patched_function(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/templates.py in rendered_content(77)
  return real_rendered_content.fget(self)

/usr/local/lib/python3.11/site-packages/django/template/response.py in rendered_content(92)
  return template.render(context, self._request)

/usr/local/lib/python3.11/site-packages/django/template/backends/django.py in render(61)
  return self.template.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(175)
  return self._render(context)

/usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112)
  return self.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157)
  return compiled_parent._render(context)

/usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112)
  return self.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157)
  return compiled_parent._render(context)

/usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112)
  return self.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(321)
  return nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1064)
  output = self.filter_expression.resolve(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in resolve(715)
  obj = self.var.resolve(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in resolve(847)
  value = self._resolve_lookup(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in _resolve_lookup(890)
  current = getattr(current, bit)

/app/project/lms_tales/models.py in meta(86)
  + ", ".join([author.name for author in self.get_course().authors.all()]),

/usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(37)
  return original(compiler, *args, **kwargs)

/usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(96)
  return _get_result_or_execute_query(

/usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in _get_result_or_execute_query(46)
  data = cache.get_many(table_cache_keys + [cache_key])

0.2563 get_many (['e3a5db5a670ad803efb866441f33de58309be2e2', '312c357d2eed306581bb334378808fbccf7019ea', 'f9fb168d4ce6df36fbe0e8aff12d4f4837bb4422'],) {} <django_redis.cache.RedisCache object at 0x7b20419d72d0>
/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in run(101)
  return _run_old_run_func()

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in _run_old_run_func(94)
  return old_run_func(self, *a, **kw)

/usr/local/lib/python3.11/concurrent/futures/thread.py in _worker(83)
  work_item.run()

/usr/local/lib/python3.11/concurrent/futures/thread.py in run(58)
  result = self.fn(*self.args, **self.kwargs)

/usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522)
  return func(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in middleware(32)
  response = get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/allauth/account/middleware.py in middleware(36)
  response = get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/simple_history/middleware.py in middleware(41)
  return get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/django_htmx/middleware.py in __call__(43)
  return self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in __call__(168)
  response = self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/cachalot/panels.py in process_request(41)
  return super(CachalotPanel, self).process_request(request)

/usr/local/lib/python3.11/site-packages/asgiref/sync.py in __call__(244)
  current_executor.run_until_future(call_result)

/usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run_until_future(81)
  work_item.run()

/usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run(40)
  result = self.fn(*self.args, **self.kwargs)

/usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522)
  return func(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(90)
  return callback(request, *args, **kwargs)

/app/project/utils/decorators.py in apply_cache(72)
  cache.set(CACHE_KEY, response.render(), ttl)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_patched_render(41)
  return old_render(self)

/usr/local/lib/python3.11/site-packages/django/template/response.py in render(114)
  self.content = self.rendered_content

/usr/local/lib/python3.11/site-packages/sentry_sdk/utils.py in runner(1788)
  return sentry_patched_function(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/templates.py in rendered_content(77)
  return real_rendered_content.fget(self)

/usr/local/lib/python3.11/site-packages/django/template/response.py in rendered_content(92)
  return template.render(context, self._request)

/usr/local/lib/python3.11/site-packages/django/template/backends/django.py in render(61)
  return self.template.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(175)
  return self._render(context)

/usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112)
  return self.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157)
  return compiled_parent._render(context)

/usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112)
  return self.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157)
  return compiled_parent._render(context)

/usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112)
  return self.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(321)
  return nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1064)
  output = self.filter_expression.resolve(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in resolve(715)
  obj = self.var.resolve(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in resolve(847)
  value = self._resolve_lookup(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in _resolve_lookup(890)
  current = getattr(current, bit)

/app/project/lms_tales/models.py in meta(86)
  + ", ".join([author.name for author in self.get_course().authors.all()]),

/usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(37)
  return original(compiler, *args, **kwargs)

/usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(96)
  return _get_result_or_execute_query(

/usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in _get_result_or_execute_query(46)
  data = cache.get_many(table_cache_keys + [cache_key])

0.2516 get_many (['e3a5db5a670ad803efb866441f33de58309be2e2', '312c357d2eed306581bb334378808fbccf7019ea', 'f9fb168d4ce6df36fbe0e8aff12d4f4837bb4422'],) {} <django_redis.cache.RedisCache object at 0x7b20419d72d0>
/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in run(101)
  return _run_old_run_func()

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in _run_old_run_func(94)
  return old_run_func(self, *a, **kw)

/usr/local/lib/python3.11/concurrent/futures/thread.py in _worker(83)
  work_item.run()

/usr/local/lib/python3.11/concurrent/futures/thread.py in run(58)
  result = self.fn(*self.args, **self.kwargs)

/usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522)
  return func(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in middleware(32)
  response = get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/allauth/account/middleware.py in middleware(36)
  response = get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/simple_history/middleware.py in middleware(41)
  return get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/django_htmx/middleware.py in __call__(43)
  return self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in __call__(168)
  response = self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/cachalot/panels.py in process_request(41)
  return super(CachalotPanel, self).process_request(request)

/usr/local/lib/python3.11/site-packages/asgiref/sync.py in __call__(244)
  current_executor.run_until_future(call_result)

/usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run_until_future(81)
  work_item.run()

/usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run(40)
  result = self.fn(*self.args, **self.kwargs)

/usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522)
  return func(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(90)
  return callback(request, *args, **kwargs)

/app/project/utils/decorators.py in apply_cache(72)
  cache.set(CACHE_KEY, response.render(), ttl)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_patched_render(41)
  return old_render(self)

/usr/local/lib/python3.11/site-packages/django/template/response.py in render(114)
  self.content = self.rendered_content

/usr/local/lib/python3.11/site-packages/sentry_sdk/utils.py in runner(1788)
  return sentry_patched_function(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/templates.py in rendered_content(77)
  return real_rendered_content.fget(self)

/usr/local/lib/python3.11/site-packages/django/template/response.py in rendered_content(92)
  return template.render(context, self._request)

/usr/local/lib/python3.11/site-packages/django/template/backends/django.py in render(61)
  return self.template.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(175)
  return self._render(context)

/usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112)
  return self.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157)
  return compiled_parent._render(context)

/usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112)
  return self.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157)
  return compiled_parent._render(context)

/usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112)
  return self.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(321)
  return nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1064)
  output = self.filter_expression.resolve(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in resolve(715)
  obj = self.var.resolve(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in resolve(847)
  value = self._resolve_lookup(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in _resolve_lookup(890)
  current = getattr(current, bit)

/app/project/lms_tales/models.py in meta(86)
  + ", ".join([author.name for author in self.get_course().authors.all()]),

/usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(37)
  return original(compiler, *args, **kwargs)

/usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(96)
  return _get_result_or_execute_query(

/usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in _get_result_or_execute_query(46)
  data = cache.get_many(table_cache_keys + [cache_key])

0.3047 get ('waffle:4.1.0a156ed0e9d07cd12e770c8dca0575feb',) {} <django_redis.cache.RedisCache object at 0x7b20419d72d0>
/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in run(101)
  return _run_old_run_func()

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in _run_old_run_func(94)
  return old_run_func(self, *a, **kw)

/usr/local/lib/python3.11/concurrent/futures/thread.py in _worker(83)
  work_item.run()

/usr/local/lib/python3.11/concurrent/futures/thread.py in run(58)
  result = self.fn(*self.args, **self.kwargs)

/usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522)
  return func(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in middleware(32)
  response = get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/allauth/account/middleware.py in middleware(36)
  response = get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/simple_history/middleware.py in middleware(41)
  return get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/django_htmx/middleware.py in __call__(43)
  return self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in __call__(168)
  response = self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/cachalot/panels.py in process_request(41)
  return super(CachalotPanel, self).process_request(request)

/usr/local/lib/python3.11/site-packages/asgiref/sync.py in __call__(244)
  current_executor.run_until_future(call_result)

/usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run_until_future(81)
  work_item.run()

/usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run(40)
  result = self.fn(*self.args, **self.kwargs)

/usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522)
  return func(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(90)
  return callback(request, *args, **kwargs)

/app/project/utils/decorators.py in apply_cache(72)
  cache.set(CACHE_KEY, response.render(), ttl)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_patched_render(41)
  return old_render(self)

/usr/local/lib/python3.11/site-packages/django/template/response.py in render(114)
  self.content = self.rendered_content

/usr/local/lib/python3.11/site-packages/sentry_sdk/utils.py in runner(1788)
  return sentry_patched_function(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/templates.py in rendered_content(77)
  return real_rendered_content.fget(self)

/usr/local/lib/python3.11/site-packages/django/template/response.py in rendered_content(92)
  return template.render(context, self._request)

/usr/local/lib/python3.11/site-packages/django/template/backends/django.py in render(61)
  return self.template.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(175)
  return self._render(context)

/usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112)
  return self.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157)
  return compiled_parent._render(context)

/usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112)
  return self.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157)
  return compiled_parent._render(context)

/usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112)
  return self.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63)
  result = block.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(208)
  return template.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(177)
  return self._render(context)

/usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112)
  return self.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(321)
  return nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/waffle/templatetags/waffle_tags.py in render(36)
  if self.condition(context.get('request', None), name):

/usr/local/lib/python3.11/site-packages/waffle/__init__.py in flag_is_active(19)
  flag = get_waffle_flag_model().get(flag_name)

/usr/local/lib/python3.11/site-packages/waffle/models.py in get(52)
  cached = cache.get(cache_key)

0.3021 get_many (['76e323efd8711853e13c9f7cf976845908364eb2', 'e3a5db5a670ad803efb866441f33de58309be2e2', 'd8fdf712985c4384ab773270ce15934711c5d343'],) {} <django_redis.cache.RedisCache object at 0x7b20419d72d0>
/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in run(101)
  return _run_old_run_func()

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in _run_old_run_func(94)
  return old_run_func(self, *a, **kw)

/usr/local/lib/python3.11/concurrent/futures/thread.py in _worker(83)
  work_item.run()

/usr/local/lib/python3.11/concurrent/futures/thread.py in run(58)
  result = self.fn(*self.args, **self.kwargs)

/usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522)
  return func(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in middleware(32)
  response = get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/allauth/account/middleware.py in middleware(36)
  response = get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/simple_history/middleware.py in middleware(41)
  return get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/django_htmx/middleware.py in __call__(43)
  return self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in __call__(168)
  response = self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/cachalot/panels.py in process_request(41)
  return super(CachalotPanel, self).process_request(request)

/usr/local/lib/python3.11/site-packages/asgiref/sync.py in __call__(244)
  current_executor.run_until_future(call_result)

/usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run_until_future(81)
  work_item.run()

/usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run(40)
  result = self.fn(*self.args, **self.kwargs)

/usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522)
  return func(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(90)
  return callback(request, *args, **kwargs)

/app/project/utils/decorators.py in apply_cache(72)
  cache.set(CACHE_KEY, response.render(), ttl)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_patched_render(41)
  return old_render(self)

/usr/local/lib/python3.11/site-packages/django/template/response.py in render(114)
  self.content = self.rendered_content

/usr/local/lib/python3.11/site-packages/sentry_sdk/utils.py in runner(1788)
  return sentry_patched_function(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/templates.py in rendered_content(77)
  return real_rendered_content.fget(self)

/usr/local/lib/python3.11/site-packages/django/template/response.py in rendered_content(92)
  return template.render(context, self._request)

/usr/local/lib/python3.11/site-packages/django/template/backends/django.py in render(61)
  return self.template.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(175)
  return self._render(context)

/usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112)
  return self.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157)
  return compiled_parent._render(context)

/usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112)
  return self.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157)
  return compiled_parent._render(context)

/usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112)
  return self.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63)
  result = block.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63)
  result = block.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(208)
  return template.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(177)
  return self._render(context)

/usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112)
  return self.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(321)
  return nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(194)
  len_values = len(values)

/usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(37)
  return original(compiler, *args, **kwargs)

/usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(96)
  return _get_result_or_execute_query(

/usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in _get_result_or_execute_query(46)
  data = cache.get_many(table_cache_keys + [cache_key])

0.7135 get_many (['76e323efd8711853e13c9f7cf976845908364eb2', 'e3a5db5a670ad803efb866441f33de58309be2e2', '138549f5508bbba7283d6a0625e51c589d845e8f', '6a48f4b13169f19832b983941395344b22322c84'],) {} <django_redis.cache.RedisCache object at 0x7b20419d72d0>
/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in run(101)
  return _run_old_run_func()

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in _run_old_run_func(94)
  return old_run_func(self, *a, **kw)

/usr/local/lib/python3.11/concurrent/futures/thread.py in _worker(83)
  work_item.run()

/usr/local/lib/python3.11/concurrent/futures/thread.py in run(58)
  result = self.fn(*self.args, **self.kwargs)

/usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522)
  return func(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in middleware(32)
  response = get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/allauth/account/middleware.py in middleware(36)
  response = get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/simple_history/middleware.py in middleware(41)
  return get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/django_htmx/middleware.py in __call__(43)
  return self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in __call__(168)
  response = self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/cachalot/panels.py in process_request(41)
  return super(CachalotPanel, self).process_request(request)

/usr/local/lib/python3.11/site-packages/asgiref/sync.py in __call__(244)
  current_executor.run_until_future(call_result)

/usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run_until_future(81)
  work_item.run()

/usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run(40)
  result = self.fn(*self.args, **self.kwargs)

/usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522)
  return func(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(90)
  return callback(request, *args, **kwargs)

/app/project/utils/decorators.py in apply_cache(72)
  cache.set(CACHE_KEY, response.render(), ttl)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_patched_render(41)
  return old_render(self)

/usr/local/lib/python3.11/site-packages/django/template/response.py in render(114)
  self.content = self.rendered_content

/usr/local/lib/python3.11/site-packages/sentry_sdk/utils.py in runner(1788)
  return sentry_patched_function(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/templates.py in rendered_content(77)
  return real_rendered_content.fget(self)

/usr/local/lib/python3.11/site-packages/django/template/response.py in rendered_content(92)
  return template.render(context, self._request)

/usr/local/lib/python3.11/site-packages/django/template/backends/django.py in render(61)
  return self.template.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(175)
  return self._render(context)

/usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112)
  return self.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157)
  return compiled_parent._render(context)

/usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112)
  return self.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157)
  return compiled_parent._render(context)

/usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112)
  return self.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63)
  result = block.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63)
  result = block.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(208)
  return template.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(177)
  return self._render(context)

/usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112)
  return self.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(321)
  return nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(238)
  nodelist.append(node.render_annotated(context))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(194)
  len_values = len(values)

/usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(37)
  return original(compiler, *args, **kwargs)

/usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(96)
  return _get_result_or_execute_query(

/usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in _get_result_or_execute_query(46)
  data = cache.get_many(table_cache_keys + [cache_key])

0.5450 get_many (['76e323efd8711853e13c9f7cf976845908364eb2', 'e3a5db5a670ad803efb866441f33de58309be2e2', '138549f5508bbba7283d6a0625e51c589d845e8f', 'edfb11b9c857583ba8bb731e5568523e97b0cf9b'],) {} <django_redis.cache.RedisCache object at 0x7b20419d72d0>
/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in run(101)
  return _run_old_run_func()

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in _run_old_run_func(94)
  return old_run_func(self, *a, **kw)

/usr/local/lib/python3.11/concurrent/futures/thread.py in _worker(83)
  work_item.run()

/usr/local/lib/python3.11/concurrent/futures/thread.py in run(58)
  result = self.fn(*self.args, **self.kwargs)

/usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522)
  return func(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in middleware(32)
  response = get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/allauth/account/middleware.py in middleware(36)
  response = get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/simple_history/middleware.py in middleware(41)
  return get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/django_htmx/middleware.py in __call__(43)
  return self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in __call__(168)
  response = self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/cachalot/panels.py in process_request(41)
  return super(CachalotPanel, self).process_request(request)

/usr/local/lib/python3.11/site-packages/asgiref/sync.py in __call__(244)
  current_executor.run_until_future(call_result)

/usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run_until_future(81)
  work_item.run()

/usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run(40)
  result = self.fn(*self.args, **self.kwargs)

/usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522)
  return func(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(90)
  return callback(request, *args, **kwargs)

/app/project/utils/decorators.py in apply_cache(72)
  cache.set(CACHE_KEY, response.render(), ttl)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_patched_render(41)
  return old_render(self)

/usr/local/lib/python3.11/site-packages/django/template/response.py in render(114)
  self.content = self.rendered_content

/usr/local/lib/python3.11/site-packages/sentry_sdk/utils.py in runner(1788)
  return sentry_patched_function(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/templates.py in rendered_content(77)
  return real_rendered_content.fget(self)

/usr/local/lib/python3.11/site-packages/django/template/response.py in rendered_content(92)
  return template.render(context, self._request)

/usr/local/lib/python3.11/site-packages/django/template/backends/django.py in render(61)
  return self.template.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(175)
  return self._render(context)

/usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112)
  return self.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157)
  return compiled_parent._render(context)

/usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112)
  return self.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157)
  return compiled_parent._render(context)

/usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112)
  return self.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63)
  result = block.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63)
  result = block.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(208)
  return template.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(177)
  return self._render(context)

/usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112)
  return self.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(321)
  return nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(238)
  nodelist.append(node.render_annotated(context))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(194)
  len_values = len(values)

/usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(37)
  return original(compiler, *args, **kwargs)

/usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(96)
  return _get_result_or_execute_query(

/usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in _get_result_or_execute_query(46)
  data = cache.get_many(table_cache_keys + [cache_key])

0.5010 get_many (['76e323efd8711853e13c9f7cf976845908364eb2', 'e3a5db5a670ad803efb866441f33de58309be2e2', '138549f5508bbba7283d6a0625e51c589d845e8f', '4418c603393aae4e21f7bee1714abeb21508de87'],) {} <django_redis.cache.RedisCache object at 0x7b20419d72d0>
/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in run(101)
  return _run_old_run_func()

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in _run_old_run_func(94)
  return old_run_func(self, *a, **kw)

/usr/local/lib/python3.11/concurrent/futures/thread.py in _worker(83)
  work_item.run()

/usr/local/lib/python3.11/concurrent/futures/thread.py in run(58)
  result = self.fn(*self.args, **self.kwargs)

/usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522)
  return func(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in middleware(32)
  response = get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/allauth/account/middleware.py in middleware(36)
  response = get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/simple_history/middleware.py in middleware(41)
  return get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/django_htmx/middleware.py in __call__(43)
  return self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in __call__(168)
  response = self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/cachalot/panels.py in process_request(41)
  return super(CachalotPanel, self).process_request(request)

/usr/local/lib/python3.11/site-packages/asgiref/sync.py in __call__(244)
  current_executor.run_until_future(call_result)

/usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run_until_future(81)
  work_item.run()

/usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run(40)
  result = self.fn(*self.args, **self.kwargs)

/usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522)
  return func(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(90)
  return callback(request, *args, **kwargs)

/app/project/utils/decorators.py in apply_cache(72)
  cache.set(CACHE_KEY, response.render(), ttl)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_patched_render(41)
  return old_render(self)

/usr/local/lib/python3.11/site-packages/django/template/response.py in render(114)
  self.content = self.rendered_content

/usr/local/lib/python3.11/site-packages/sentry_sdk/utils.py in runner(1788)
  return sentry_patched_function(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/templates.py in rendered_content(77)
  return real_rendered_content.fget(self)

/usr/local/lib/python3.11/site-packages/django/template/response.py in rendered_content(92)
  return template.render(context, self._request)

/usr/local/lib/python3.11/site-packages/django/template/backends/django.py in render(61)
  return self.template.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(175)
  return self._render(context)

/usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112)
  return self.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157)
  return compiled_parent._render(context)

/usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112)
  return self.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157)
  return compiled_parent._render(context)

/usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112)
  return self.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63)
  result = block.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63)
  result = block.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(208)
  return template.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(177)
  return self._render(context)

/usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112)
  return self.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(321)
  return nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(238)
  nodelist.append(node.render_annotated(context))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(194)
  len_values = len(values)

/usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(37)
  return original(compiler, *args, **kwargs)

/usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(96)
  return _get_result_or_execute_query(

/usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in _get_result_or_execute_query(46)
  data = cache.get_many(table_cache_keys + [cache_key])

0.3880 get_many (['76e323efd8711853e13c9f7cf976845908364eb2', 'e3a5db5a670ad803efb866441f33de58309be2e2', '138549f5508bbba7283d6a0625e51c589d845e8f', 'fbf92dc0d611bff80f6b3610494ca22af808a96d'],) {} <django_redis.cache.RedisCache object at 0x7b20419d72d0>
/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in run(101)
  return _run_old_run_func()

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in _run_old_run_func(94)
  return old_run_func(self, *a, **kw)

/usr/local/lib/python3.11/concurrent/futures/thread.py in _worker(83)
  work_item.run()

/usr/local/lib/python3.11/concurrent/futures/thread.py in run(58)
  result = self.fn(*self.args, **self.kwargs)

/usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522)
  return func(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in middleware(32)
  response = get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/allauth/account/middleware.py in middleware(36)
  response = get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/simple_history/middleware.py in middleware(41)
  return get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/django_htmx/middleware.py in __call__(43)
  return self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in __call__(168)
  response = self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/cachalot/panels.py in process_request(41)
  return super(CachalotPanel, self).process_request(request)

/usr/local/lib/python3.11/site-packages/asgiref/sync.py in __call__(244)
  current_executor.run_until_future(call_result)

/usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run_until_future(81)
  work_item.run()

/usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run(40)
  result = self.fn(*self.args, **self.kwargs)

/usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522)
  return func(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(90)
  return callback(request, *args, **kwargs)

/app/project/utils/decorators.py in apply_cache(72)
  cache.set(CACHE_KEY, response.render(), ttl)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_patched_render(41)
  return old_render(self)

/usr/local/lib/python3.11/site-packages/django/template/response.py in render(114)
  self.content = self.rendered_content

/usr/local/lib/python3.11/site-packages/sentry_sdk/utils.py in runner(1788)
  return sentry_patched_function(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/templates.py in rendered_content(77)
  return real_rendered_content.fget(self)

/usr/local/lib/python3.11/site-packages/django/template/response.py in rendered_content(92)
  return template.render(context, self._request)

/usr/local/lib/python3.11/site-packages/django/template/backends/django.py in render(61)
  return self.template.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(175)
  return self._render(context)

/usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112)
  return self.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157)
  return compiled_parent._render(context)

/usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112)
  return self.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157)
  return compiled_parent._render(context)

/usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112)
  return self.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63)
  result = block.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63)
  result = block.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(208)
  return template.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(177)
  return self._render(context)

/usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112)
  return self.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(321)
  return nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(238)
  nodelist.append(node.render_annotated(context))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(194)
  len_values = len(values)

/usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(37)
  return original(compiler, *args, **kwargs)

/usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(96)
  return _get_result_or_execute_query(

/usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in _get_result_or_execute_query(46)
  data = cache.get_many(table_cache_keys + [cache_key])

0.3433 get_many (['76e323efd8711853e13c9f7cf976845908364eb2', 'e3a5db5a670ad803efb866441f33de58309be2e2', '138549f5508bbba7283d6a0625e51c589d845e8f', '82d8908c287d6bef5ee9dfd576b23a09b4bd6985'],) {} <django_redis.cache.RedisCache object at 0x7b20419d72d0>
/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in run(101)
  return _run_old_run_func()

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in _run_old_run_func(94)
  return old_run_func(self, *a, **kw)

/usr/local/lib/python3.11/concurrent/futures/thread.py in _worker(83)
  work_item.run()

/usr/local/lib/python3.11/concurrent/futures/thread.py in run(58)
  result = self.fn(*self.args, **self.kwargs)

/usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522)
  return func(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in middleware(32)
  response = get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/allauth/account/middleware.py in middleware(36)
  response = get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/simple_history/middleware.py in middleware(41)
  return get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/django_htmx/middleware.py in __call__(43)
  return self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in __call__(168)
  response = self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/cachalot/panels.py in process_request(41)
  return super(CachalotPanel, self).process_request(request)

/usr/local/lib/python3.11/site-packages/asgiref/sync.py in __call__(244)
  current_executor.run_until_future(call_result)

/usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run_until_future(81)
  work_item.run()

/usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run(40)
  result = self.fn(*self.args, **self.kwargs)

/usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522)
  return func(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(90)
  return callback(request, *args, **kwargs)

/app/project/utils/decorators.py in apply_cache(72)
  cache.set(CACHE_KEY, response.render(), ttl)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_patched_render(41)
  return old_render(self)

/usr/local/lib/python3.11/site-packages/django/template/response.py in render(114)
  self.content = self.rendered_content

/usr/local/lib/python3.11/site-packages/sentry_sdk/utils.py in runner(1788)
  return sentry_patched_function(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/templates.py in rendered_content(77)
  return real_rendered_content.fget(self)

/usr/local/lib/python3.11/site-packages/django/template/response.py in rendered_content(92)
  return template.render(context, self._request)

/usr/local/lib/python3.11/site-packages/django/template/backends/django.py in render(61)
  return self.template.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(175)
  return self._render(context)

/usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112)
  return self.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157)
  return compiled_parent._render(context)

/usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112)
  return self.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157)
  return compiled_parent._render(context)

/usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112)
  return self.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63)
  result = block.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63)
  result = block.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(541)
  return self.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/library.py in render(237)
  output = self.func(*resolved_args, **resolved_kwargs)

/app/project/lms_base/templatetags/utils.py in get_next_step(105)
  return step.get_next(published_only=True)

/app/project/lms_base/models.py in get_next(249)
  return self._get_neighbour_step(is_next=True, published_only=published_only)

/app/project/lms_base/models.py in _get_neighbour_step(201)
  step = self.__class__.next_previous_manager.get_next_previous(

/app/project/lms_base/models.py in get_next_previous(71)
  return qs.first()

/usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(37)
  return original(compiler, *args, **kwargs)

/usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(96)
  return _get_result_or_execute_query(

/usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in _get_result_or_execute_query(46)
  data = cache.get_many(table_cache_keys + [cache_key])

0.4045 set_many ({'82d8908c287d6bef5ee9dfd576b23a09b4bd6985': (1735007250.3996735, [[(1390, datetime.datetime(2022, 9, 22, 9, 50, 30, 719356, tzinfo=datetime.timezone.utc), datetime.datetime(2023, 7, 10, 16, 25, 30, 281543, tzinfo=datetime.timezone.utc), datetime.datetime(2022, 10, 25, 13, 12, 5, 357099, tzinfo=datetime.timezone.utc), False, 'The battle', None, 'The battle', None, '', None, None, None, 'In this text the principles of the free online game "Castle: Keeping up defences" that is inspired by the immune defence are explained.', None, 'In this text the principles of the free online game "Castle: Keeping up defences" that is inspired by the immune defence are explained.', None, '', 'the-battle', 'To understand the intricacies of the game, it is best if you jump straight into the fray. Here are some principles of the game mechanics.\r\n{.lead}\r\n\r\n<br>\r\n\r\n# Special moves\r\n\r\n![Prince Adalbert at the gate](/media/markdownx/73df4669-e5c8-4e42-8c07-b7ac3331b077.png)\r\nPrince Adalbert appears at the gate. \r\n{.footnote}\r\n\r\nIf the count of your defending team drops below **seven pieces**, you can visit the guardroom at any point to get new fighters. As soon as one intruder has reached the courtyard, a special figure appears at the gate: the Lord of the castle, Prince Adalbert (the antigen-presenting cell in the medical view). He checks out the situation and mobilises new forces. In order to do this, you need to take Prince Adalbert one step to the left and then one step to the right. Now there are new defenders available in the guardroom. You can select them and they will appear on the yellow circle on the left. \r\n\r\n![A playing piece (Benno Bowman) on the passageway](/media/markdownx/1a592e8b-3f11-4aea-83c3-0d1141251959.png)\r\nBenno the Bowman enters the passage. You need to move him one field per move until he stands on the third light brown circle of the passage. Then you may place him wherever there is space.\r\n{.footnote}\r\n\r\nAfter that, you can lead the fighter into battle – first one light brown circle per move. As soon as your defender has reached the third circle of this passage, you may put him wherever you see a green highlighted circle.\r\n\r\n<br>\r\n\r\n# Death and injuries\r\n\r\nThere are defenders who perish whenever they attack. Their strength is enough for exactly one fight, whatever the outcome. Others survive every fight. Should they beat an intruder, they remain on the battle field. If they fight intruders they cannot defeat, they get wounded. They then go to the sickbay to recover. If you want to reintroduce warriors from the sickbay, go to the guardroom. There, you can click on the defender. Introduce them one step at a time over the passage as described previously.\r\n\r\n<br>\r\n\r\n# Attackers that hide\r\n\r\n![Shadow of an ostrich on a tile ](/media/markdownx/67dbd711-a287-4c25-9ad8-38b1f8b96fbd.png)\r\nAn ostrich has made it into the courtyard. He hides and waits for a second ostrich to arrive. Then he gets up and moves. You only see the shadow of the hidden ostrich. \r\n{.footnote}\r\n\r\n\r\nThere are intruders who hide as soon as they have reached the courtyard. The only trace they leave is a shadow on a circular tile. These intruders become active again as soon as a second individual of the same species has entered the courtyard. They then rise again from the shadows and – with combined forces – try to reach their target field. \r\n\r\n<br>\r\n\r\n# The slotmachine and the cabinet\r\n\r\n![button slotmachine](/media/markdownx/51ae0781-167d-433f-9977-d8e15beb5c5b.png)\r\nButton to access the slotmachine. \r\n{.footnote}\r\n\r\nThis button takes you to the slotmachine. Hit it to try your luck. You may win remedies that help the defenders. You may also trigger events that harm your defense. \r\n\r\n![cabinet with three remedies ](/media/markdownx/d8a57dd5-01eb-4d07-96ad-89f0c336c7fc.png)\r\nCabinet with three remedies, medieval view. \r\n{.footnote}\r\n\r\n\r\nWhen you win remedies, you can put them in your cabinet. You may use them as and when you wish. Note that in your cabinet, you can only collect up to three remedies at once. This means that you need to use one should you wish to change the content of your cabinet. \r\n\r\n![The lady of the castle, Regula - medieval representation of the regulatory t-cell](/media/markdownx/141e3134-1162-427e-ae43-6d65ca1531a8.png)\r\nThe lady of the castle, Regula - medieval representation of the regulatory t-cell\r\n{.footnote}\r\n\r\nThe lady of the castle (Regula / regulatory t-cell) appears in some events of the slot machine. She has the power to either clean the courtyard from all intruders or to stop all fights and end the game. \r\n\r\n<br>\r\n\r\n# Settings and score\r\n\r\n![setting button ](/media/markdownx/7ca8df1c-06ef-4826-809e-31ea7d3644b9.png)\r\nThe fire pit: button to access the settings panel. \r\n{.footnote}\r\n\r\nWith the settings button you can access a panel where you can mute the sound effects and the music. You also have access to the portrait gallery of all fighters. \r\n\r\n![score](/media/markdownx/3eaa4ca7-beb1-4949-9cbc-78863b9b77aa.png)\r\nCheck the score.\r\n{.footnote}\r\n\r\nThe score shows you the points of the defenders and intruders. It is based on an intricate algorithm.', '', 'To understand the intricacies of the game, it is best if you jump straight into the fray. Here are some principles of the game mechanics.\r\n{.lead}\r\n\r\n<br>\r\n\r\n# Special moves\r\n\r\n![Prince Adalbert at the gate](/media/markdownx/73df4669-e5c8-4e42-8c07-b7ac3331b077.png)\r\nPrince Adalbert appears at the gate. \r\n{.footnote}\r\n\r\nIf the count of your defending team drops below **seven pieces**, you can visit the guardroom at any point to get new fighters. As soon as one intruder has reached the courtyard, a special figure appears at the gate: the Lord of the castle, Prince Adalbert (the antigen-presenting cell in the medical view). He checks out the situation and mobilises new forces. In order to do this, you need to take Prince Adalbert one step to the left and then one step to the right. Now there are new defenders available in the guardroom. You can select them and they will appear on the yellow circle on the left. \r\n\r\n![A playing piece (Benno Bowman) on the passageway](/media/markdownx/1a592e8b-3f11-4aea-83c3-0d1141251959.png)\r\nBenno the Bowman enters the passage. You need to move him one field per move until he stands on the third light brown circle of the passage. Then you may place him wherever there is space.\r\n{.footnote}\r\n\r\nAfter that, you can lead the fighter into battle – first one light brown circle per move. As soon as your defender has reached the third circle of this passage, you may put him wherever you see a green highlighted circle.\r\n\r\n<br>\r\n\r\n# Death and injuries\r\n\r\nThere are defenders who perish whenever they attack. Their strength is enough for exactly one fight, whatever the outcome. Others survive every fight. Should they beat an intruder, they remain on the battle field. If they fight intruders they cannot defeat, they get wounded. They then go to the sickbay to recover. If you want to reintroduce warriors from the sickbay, go to the guardroom. There, you can click on the defender. Introduce them one step at a time over the passage as described previously.\r\n\r\n<br>\r\n\r\n# Attackers that hide\r\n\r\n![Shadow of an ostrich on a tile ](/media/markdownx/67dbd711-a287-4c25-9ad8-38b1f8b96fbd.png)\r\nAn ostrich has made it into the courtyard. He hides and waits for a second ostrich to arrive. Then he gets up and moves. You only see the shadow of the hidden ostrich. \r\n{.footnote}\r\n\r\n\r\nThere are intruders who hide as soon as they have reached the courtyard. The only trace they leave is a shadow on a circular tile. These intruders become active again as soon as a second individual of the same species has entered the courtyard. They then rise again from the shadows and – with combined forces – try to reach their target field. \r\n\r\n<br>\r\n\r\n# The slotmachine and the cabinet\r\n\r\n![button slotmachine](/media/markdownx/51ae0781-167d-433f-9977-d8e15beb5c5b.png)\r\nButton to access the slotmachine. \r\n{.footnote}\r\n\r\nThis button takes you to the slotmachine. Hit it to try your luck. You may win remedies that help the defenders. You may also trigger events that harm your defense. \r\n\r\n![cabinet with three remedies ](/media/markdownx/d8a57dd5-01eb-4d07-96ad-89f0c336c7fc.png)\r\nCabinet with three remedies, medieval view. \r\n{.footnote}\r\n\r\n\r\nWhen you win remedies, you can put them in your cabinet. You may use them as and when you wish. Note that in your cabinet, you can only collect up to three remedies at once. This means that you need to use one should you wish to change the content of your cabinet. \r\n\r\n![The lady of the castle, Regula - medieval representation of the regulatory t-cell](/media/markdownx/141e3134-1162-427e-ae43-6d65ca1531a8.png)\r\nThe lady of the castle, Regula - medieval representation of the regulatory t-cell\r\n{.footnote}\r\n\r\nThe lady of the castle (Regula / regulatory t-cell) appears in some events of the slot machine. She has the power to either clean the courtyard from all intruders or to stop all fights and end the game. \r\n\r\n<br>\r\n\r\n# Settings and score\r\n\r\n![setting button ](/media/markdownx/7ca8df1c-06ef-4826-809e-31ea7d3644b9.png)\r\nThe fire pit: button to access the settings panel. \r\n{.footnote}\r\n\r\nWith the settings button you can access a panel where you can mute the sound effects and the music. You also have access to the portrait gallery of all fighters. \r\n\r\n![score](/media/markdownx/3eaa4ca7-beb1-4949-9cbc-78863b9b77aa.png)\r\nCheck the score.\r\n{.footnote}\r\n\r\nThe score shows you the points of the defenders and intruders. It is based on an intricate algorithm.', '', '', '', '', '', None, None, None, None, 'University of Basel', '', 'University of Basel', '', 'TT', '', 2, 'published', False, None, None, None, None, 235)]])}, None) {} <django_redis.cache.RedisCache object at 0x7b20419d72d0>
/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in run(101)
  return _run_old_run_func()

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in _run_old_run_func(94)
  return old_run_func(self, *a, **kw)

/usr/local/lib/python3.11/concurrent/futures/thread.py in _worker(83)
  work_item.run()

/usr/local/lib/python3.11/concurrent/futures/thread.py in run(58)
  result = self.fn(*self.args, **self.kwargs)

/usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522)
  return func(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in middleware(32)
  response = get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/allauth/account/middleware.py in middleware(36)
  response = get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/simple_history/middleware.py in middleware(41)
  return get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/django_htmx/middleware.py in __call__(43)
  return self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in __call__(168)
  response = self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/cachalot/panels.py in process_request(41)
  return super(CachalotPanel, self).process_request(request)

/usr/local/lib/python3.11/site-packages/asgiref/sync.py in __call__(244)
  current_executor.run_until_future(call_result)

/usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run_until_future(81)
  work_item.run()

/usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run(40)
  result = self.fn(*self.args, **self.kwargs)

/usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522)
  return func(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(90)
  return callback(request, *args, **kwargs)

/app/project/utils/decorators.py in apply_cache(72)
  cache.set(CACHE_KEY, response.render(), ttl)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_patched_render(41)
  return old_render(self)

/usr/local/lib/python3.11/site-packages/django/template/response.py in render(114)
  self.content = self.rendered_content

/usr/local/lib/python3.11/site-packages/sentry_sdk/utils.py in runner(1788)
  return sentry_patched_function(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/templates.py in rendered_content(77)
  return real_rendered_content.fget(self)

/usr/local/lib/python3.11/site-packages/django/template/response.py in rendered_content(92)
  return template.render(context, self._request)

/usr/local/lib/python3.11/site-packages/django/template/backends/django.py in render(61)
  return self.template.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(175)
  return self._render(context)

/usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112)
  return self.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157)
  return compiled_parent._render(context)

/usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112)
  return self.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157)
  return compiled_parent._render(context)

/usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112)
  return self.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63)
  result = block.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63)
  result = block.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(541)
  return self.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/library.py in render(237)
  output = self.func(*resolved_args, **resolved_kwargs)

/app/project/lms_base/templatetags/utils.py in get_next_step(105)
  return step.get_next(published_only=True)

/app/project/lms_base/models.py in get_next(249)
  return self._get_neighbour_step(is_next=True, published_only=published_only)

/app/project/lms_base/models.py in _get_neighbour_step(201)
  step = self.__class__.next_previous_manager.get_next_previous(

/app/project/lms_base/models.py in get_next_previous(71)
  return qs.first()

/usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(37)
  return original(compiler, *args, **kwargs)

/usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(96)
  return _get_result_or_execute_query(

/usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in _get_result_or_execute_query(71)
  cache.set_many(to_be_set, cachalot_settings.CACHALOT_TIMEOUT)

0.2828 get_many (['76e323efd8711853e13c9f7cf976845908364eb2', 'e3a5db5a670ad803efb866441f33de58309be2e2', '138549f5508bbba7283d6a0625e51c589d845e8f', '78faf7b2fe14f33c4bc5096363b877d2d6a29625'],) {} <django_redis.cache.RedisCache object at 0x7b20419d72d0>
/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in run(101)
  return _run_old_run_func()

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in _run_old_run_func(94)
  return old_run_func(self, *a, **kw)

/usr/local/lib/python3.11/concurrent/futures/thread.py in _worker(83)
  work_item.run()

/usr/local/lib/python3.11/concurrent/futures/thread.py in run(58)
  result = self.fn(*self.args, **self.kwargs)

/usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522)
  return func(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in middleware(32)
  response = get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/allauth/account/middleware.py in middleware(36)
  response = get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/simple_history/middleware.py in middleware(41)
  return get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/django_htmx/middleware.py in __call__(43)
  return self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in __call__(168)
  response = self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/cachalot/panels.py in process_request(41)
  return super(CachalotPanel, self).process_request(request)

/usr/local/lib/python3.11/site-packages/asgiref/sync.py in __call__(244)
  current_executor.run_until_future(call_result)

/usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run_until_future(81)
  work_item.run()

/usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run(40)
  result = self.fn(*self.args, **self.kwargs)

/usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522)
  return func(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(90)
  return callback(request, *args, **kwargs)

/app/project/utils/decorators.py in apply_cache(72)
  cache.set(CACHE_KEY, response.render(), ttl)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_patched_render(41)
  return old_render(self)

/usr/local/lib/python3.11/site-packages/django/template/response.py in render(114)
  self.content = self.rendered_content

/usr/local/lib/python3.11/site-packages/sentry_sdk/utils.py in runner(1788)
  return sentry_patched_function(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/templates.py in rendered_content(77)
  return real_rendered_content.fget(self)

/usr/local/lib/python3.11/site-packages/django/template/response.py in rendered_content(92)
  return template.render(context, self._request)

/usr/local/lib/python3.11/site-packages/django/template/backends/django.py in render(61)
  return self.template.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(175)
  return self._render(context)

/usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112)
  return self.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157)
  return compiled_parent._render(context)

/usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112)
  return self.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157)
  return compiled_parent._render(context)

/usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112)
  return self.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63)
  result = block.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63)
  result = block.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(541)
  return self.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/library.py in render(237)
  output = self.func(*resolved_args, **resolved_kwargs)

/app/project/lms_base/templatetags/utils.py in get_previous_step(93)
  return step.get_previous(published_only=True)

/app/project/lms_base/models.py in get_previous(255)
  return self._get_neighbour_step(is_next=False, published_only=published_only)

/app/project/lms_base/models.py in _get_neighbour_step(201)
  step = self.__class__.next_previous_manager.get_next_previous(

/app/project/lms_base/models.py in get_next_previous(72)
  return qs.last()

/usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(37)
  return original(compiler, *args, **kwargs)

/usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(96)
  return _get_result_or_execute_query(

/usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in _get_result_or_execute_query(46)
  data = cache.get_many(table_cache_keys + [cache_key])

0.3221 set_many ({'78faf7b2fe14f33c4bc5096363b877d2d6a29625': (1735007250.4065619, [[(1388, datetime.datetime(2022, 9, 22, 9, 29, 30, 526941, tzinfo=datetime.timezone.utc), datetime.datetime(2022, 10, 25, 13, 12, 22, 3920, tzinfo=datetime.timezone.utc), datetime.datetime(2022, 10, 25, 13, 12, 21, 962158, tzinfo=datetime.timezone.utc), False, 'Castle', None, 'Castle', None, 'Keeping up defences', None, 'Keeping up defences', None, 'Explore an interactive game that simulates - to some extent - the immune defence.', None, 'Explore an interactive game that simulates - to some extent - the immune defence.', None, 'allergies-when-the-immune-system-backfires/castle-the-game/castle/004_pVzDk3h.jpg', 'castle', 'Complex processes interact in the immune system. With this game we return once more to the image of the castle - as a memorising aid for certain aspects of these processes.\r\n{.lead}\r\n\r\nYou can think of the immune system as a castle defended by a force against invaders. This helps to remember certain peculiarities. However, the image of the castle is more of an abstraction than an accurate representation of the immune defence.\r\n\r\nThis is even more true for the following game. It helps to deepen the picture of the castle and to clarify the correspondences between individual characters and important cells of the immune system. But the complex processes in the immune system had to be simplified for the game mechanics. The characters are much more one-dimensional than the variety of cells. \r\n\r\nNevertheless, we hope you enjoy playing "Castle". \r\n\r\n<div class="ratio ratio-16x9">\r\n<iframe style="border:1px #FFFFFF none" src="https://stream.nmc.unibas.ch/castle/" scrolling="no" frameborder="no" allow="fullscreen"></iframe>\r\n</div>\r\n\r\nNote: You are seeing a Beta-version of the game. We do know that there are some bugs lurking in it. We are working on these.\r\n\r\n<br>\r\n\r\n# How to get to know the game\r\n\r\nFirst option: After the game has loaded, click on "Play". You can then select game pieces to load onto the board. The game begins when there are seven defenders on the board, at the latest. However, you can also click on "Start game" beforehand and start defending the castle against various intruders. \r\n\r\nSecond option: Click on "Start story". You are then introduced to the rules with an interactive story. The story includes two tutorial games where you can try out what you have learned. By the way: In the middle field of the first panel, you can see all the defenders and intruders of the game in a slide show. \r\n\r\nThird option: Read the explanations in the following steps.', '', 'Complex processes interact in the immune system. With this game we return once more to the image of the castle - as a memorising aid for certain aspects of these processes.\r\n{.lead}\r\n\r\nYou can think of the immune system as a castle defended by a force against invaders. This helps to remember certain peculiarities. However, the image of the castle is more of an abstraction than an accurate representation of the immune defence.\r\n\r\nThis is even more true for the following game. It helps to deepen the picture of the castle and to clarify the correspondences between individual characters and important cells of the immune system. But the complex processes in the immune system had to be simplified for the game mechanics. The characters are much more one-dimensional than the variety of cells. \r\n\r\nNevertheless, we hope you enjoy playing "Castle". \r\n\r\n<div class="ratio ratio-16x9">\r\n<iframe style="border:1px #FFFFFF none" src="https://stream.nmc.unibas.ch/castle/" scrolling="no" frameborder="no" allow="fullscreen"></iframe>\r\n</div>\r\n\r\nNote: You are seeing a Beta-version of the game. We do know that there are some bugs lurking in it. We are working on these.\r\n\r\n<br>\r\n\r\n# How to get to know the game\r\n\r\nFirst option: After the game has loaded, click on "Play". You can then select game pieces to load onto the board. The game begins when there are seven defenders on the board, at the latest. However, you can also click on "Start game" beforehand and start defending the castle against various intruders. \r\n\r\nSecond option: Click on "Start story". You are then introduced to the rules with an interactive story. The story includes two tutorial games where you can try out what you have learned. By the way: In the middle field of the first panel, you can see all the defenders and intruders of the game in a slide show. \r\n\r\nThird option: Read the explanations in the following steps.', '', '', '', '', '', None, None, None, None, 'University of Basel', '', 'University of Basel', '', 'TM', '', 0, 'published', False, None, None, None, None, 235)]])}, None) {} <django_redis.cache.RedisCache object at 0x7b20419d72d0>
/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in run(101)
  return _run_old_run_func()

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in _run_old_run_func(94)
  return old_run_func(self, *a, **kw)

/usr/local/lib/python3.11/concurrent/futures/thread.py in _worker(83)
  work_item.run()

/usr/local/lib/python3.11/concurrent/futures/thread.py in run(58)
  result = self.fn(*self.args, **self.kwargs)

/usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522)
  return func(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in middleware(32)
  response = get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/allauth/account/middleware.py in middleware(36)
  response = get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/simple_history/middleware.py in middleware(41)
  return get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/django_htmx/middleware.py in __call__(43)
  return self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in __call__(168)
  response = self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/cachalot/panels.py in process_request(41)
  return super(CachalotPanel, self).process_request(request)

/usr/local/lib/python3.11/site-packages/asgiref/sync.py in __call__(244)
  current_executor.run_until_future(call_result)

/usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run_until_future(81)
  work_item.run()

/usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run(40)
  result = self.fn(*self.args, **self.kwargs)

/usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522)
  return func(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(90)
  return callback(request, *args, **kwargs)

/app/project/utils/decorators.py in apply_cache(72)
  cache.set(CACHE_KEY, response.render(), ttl)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_patched_render(41)
  return old_render(self)

/usr/local/lib/python3.11/site-packages/django/template/response.py in render(114)
  self.content = self.rendered_content

/usr/local/lib/python3.11/site-packages/sentry_sdk/utils.py in runner(1788)
  return sentry_patched_function(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/templates.py in rendered_content(77)
  return real_rendered_content.fget(self)

/usr/local/lib/python3.11/site-packages/django/template/response.py in rendered_content(92)
  return template.render(context, self._request)

/usr/local/lib/python3.11/site-packages/django/template/backends/django.py in render(61)
  return self.template.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(175)
  return self._render(context)

/usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112)
  return self.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157)
  return compiled_parent._render(context)

/usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112)
  return self.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157)
  return compiled_parent._render(context)

/usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112)
  return self.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63)
  result = block.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63)
  result = block.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(541)
  return self.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/library.py in render(237)
  output = self.func(*resolved_args, **resolved_kwargs)

/app/project/lms_base/templatetags/utils.py in get_previous_step(93)
  return step.get_previous(published_only=True)

/app/project/lms_base/models.py in get_previous(255)
  return self._get_neighbour_step(is_next=False, published_only=published_only)

/app/project/lms_base/models.py in _get_neighbour_step(201)
  step = self.__class__.next_previous_manager.get_next_previous(

/app/project/lms_base/models.py in get_next_previous(72)
  return qs.last()

/usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(37)
  return original(compiler, *args, **kwargs)

/usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(96)
  return _get_result_or_execute_query(

/usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in _get_result_or_execute_query(71)
  cache.set_many(to_be_set, cachalot_settings.CACHALOT_TIMEOUT)

0.2416 get_many (['e3a5db5a670ad803efb866441f33de58309be2e2', '53169bc24a037802f3e42b2df3d6e48b7ae8482f', '542c27005f4e84288827ce70a7d49bc73324a5e7', 'cb56b542e4cf87e9ee96cb4172d34056e507a6b7'],) {} <django_redis.cache.RedisCache object at 0x7b20419d72d0>
/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in run(101)
  return _run_old_run_func()

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in _run_old_run_func(94)
  return old_run_func(self, *a, **kw)

/usr/local/lib/python3.11/concurrent/futures/thread.py in _worker(83)
  work_item.run()

/usr/local/lib/python3.11/concurrent/futures/thread.py in run(58)
  result = self.fn(*self.args, **self.kwargs)

/usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522)
  return func(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in middleware(32)
  response = get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/allauth/account/middleware.py in middleware(36)
  response = get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/simple_history/middleware.py in middleware(41)
  return get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/django_htmx/middleware.py in __call__(43)
  return self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in __call__(168)
  response = self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/cachalot/panels.py in process_request(41)
  return super(CachalotPanel, self).process_request(request)

/usr/local/lib/python3.11/site-packages/asgiref/sync.py in __call__(244)
  current_executor.run_until_future(call_result)

/usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run_until_future(81)
  work_item.run()

/usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run(40)
  result = self.fn(*self.args, **self.kwargs)

/usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522)
  return func(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(90)
  return callback(request, *args, **kwargs)

/app/project/utils/decorators.py in apply_cache(72)
  cache.set(CACHE_KEY, response.render(), ttl)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_patched_render(41)
  return old_render(self)

/usr/local/lib/python3.11/site-packages/django/template/response.py in render(114)
  self.content = self.rendered_content

/usr/local/lib/python3.11/site-packages/sentry_sdk/utils.py in runner(1788)
  return sentry_patched_function(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/templates.py in rendered_content(77)
  return real_rendered_content.fget(self)

/usr/local/lib/python3.11/site-packages/django/template/response.py in rendered_content(92)
  return template.render(context, self._request)

/usr/local/lib/python3.11/site-packages/django/template/backends/django.py in render(61)
  return self.template.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(175)
  return self._render(context)

/usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112)
  return self.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157)
  return compiled_parent._render(context)

/usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112)
  return self.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157)
  return compiled_parent._render(context)

/usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112)
  return self.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63)
  result = block.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63)
  result = block.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(541)
  return self.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/library.py in render(237)
  output = self.func(*resolved_args, **resolved_kwargs)

/usr/local/lib/python3.11/site-packages/rules/templatetags/rules.py in has_perm(18)
  return user.has_perm(perm, obj)

/usr/local/lib/python3.11/site-packages/django/contrib/auth/models.py in has_perm(480)
  return _user_has_perm(self, perm, obj=obj)

/usr/local/lib/python3.11/site-packages/django/contrib/auth/models.py in _user_has_perm(220)
  if backend.has_perm(user, perm, obj):

/usr/local/lib/python3.11/site-packages/rules/permissions.py in has_perm(31)
  return has_perm(perm, user, *args, **kwargs)

/usr/local/lib/python3.11/site-packages/rules/permissions.py in has_perm(23)
  return permissions.test_rule(name, *args, **kwargs)

/usr/local/lib/python3.11/site-packages/rules/rulesets.py in test_rule(6)
  return name in self and self[name].test(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/rules/predicates.py in test(172)
  return bool(self._apply(*args))

/usr/local/lib/python3.11/site-packages/rules/predicates.py in _apply(235)
  result = self.fn(*callargs)

/usr/local/lib/python3.11/site-packages/rules/predicates.py in OR(184)
  return self._combine(other, operator.or_, args)

/usr/local/lib/python3.11/site-packages/rules/predicates.py in _combine(206)
  self_result = self._apply(*args)

/usr/local/lib/python3.11/site-packages/rules/predicates.py in _apply(235)
  result = self.fn(*callargs)

/app/project/lms_tales/rules.py in is_in_group(32)
  for owner in course.owner.all():

/usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(37)
  return original(compiler, *args, **kwargs)

/usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(96)
  return _get_result_or_execute_query(

/usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in _get_result_or_execute_query(46)
  data = cache.get_many(table_cache_keys + [cache_key])

0.2399 get_many (['e3a5db5a670ad803efb866441f33de58309be2e2', '53169bc24a037802f3e42b2df3d6e48b7ae8482f', '542c27005f4e84288827ce70a7d49bc73324a5e7', 'cb56b542e4cf87e9ee96cb4172d34056e507a6b7'],) {} <django_redis.cache.RedisCache object at 0x7b20419d72d0>
/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in run(101)
  return _run_old_run_func()

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in _run_old_run_func(94)
  return old_run_func(self, *a, **kw)

/usr/local/lib/python3.11/concurrent/futures/thread.py in _worker(83)
  work_item.run()

/usr/local/lib/python3.11/concurrent/futures/thread.py in run(58)
  result = self.fn(*self.args, **self.kwargs)

/usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522)
  return func(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in middleware(32)
  response = get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/allauth/account/middleware.py in middleware(36)
  response = get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/simple_history/middleware.py in middleware(41)
  return get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/django_htmx/middleware.py in __call__(43)
  return self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in __call__(168)
  response = self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/cachalot/panels.py in process_request(41)
  return super(CachalotPanel, self).process_request(request)

/usr/local/lib/python3.11/site-packages/asgiref/sync.py in __call__(244)
  current_executor.run_until_future(call_result)

/usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run_until_future(81)
  work_item.run()

/usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run(40)
  result = self.fn(*self.args, **self.kwargs)

/usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522)
  return func(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(90)
  return callback(request, *args, **kwargs)

/app/project/utils/decorators.py in apply_cache(72)
  cache.set(CACHE_KEY, response.render(), ttl)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_patched_render(41)
  return old_render(self)

/usr/local/lib/python3.11/site-packages/django/template/response.py in render(114)
  self.content = self.rendered_content

/usr/local/lib/python3.11/site-packages/sentry_sdk/utils.py in runner(1788)
  return sentry_patched_function(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/templates.py in rendered_content(77)
  return real_rendered_content.fget(self)

/usr/local/lib/python3.11/site-packages/django/template/response.py in rendered_content(92)
  return template.render(context, self._request)

/usr/local/lib/python3.11/site-packages/django/template/backends/django.py in render(61)
  return self.template.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(175)
  return self._render(context)

/usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112)
  return self.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157)
  return compiled_parent._render(context)

/usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112)
  return self.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157)
  return compiled_parent._render(context)

/usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112)
  return self.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63)
  result = block.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63)
  result = block.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(541)
  return self.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/library.py in render(237)
  output = self.func(*resolved_args, **resolved_kwargs)

/usr/local/lib/python3.11/site-packages/rules/templatetags/rules.py in has_perm(18)
  return user.has_perm(perm, obj)

/usr/local/lib/python3.11/site-packages/django/contrib/auth/models.py in has_perm(480)
  return _user_has_perm(self, perm, obj=obj)

/usr/local/lib/python3.11/site-packages/django/contrib/auth/models.py in _user_has_perm(220)
  if backend.has_perm(user, perm, obj):

/usr/local/lib/python3.11/site-packages/rules/permissions.py in has_perm(31)
  return has_perm(perm, user, *args, **kwargs)

/usr/local/lib/python3.11/site-packages/rules/permissions.py in has_perm(23)
  return permissions.test_rule(name, *args, **kwargs)

/usr/local/lib/python3.11/site-packages/rules/rulesets.py in test_rule(6)
  return name in self and self[name].test(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/rules/predicates.py in test(172)
  return bool(self._apply(*args))

/usr/local/lib/python3.11/site-packages/rules/predicates.py in _apply(235)
  result = self.fn(*callargs)

/usr/local/lib/python3.11/site-packages/rules/predicates.py in OR(184)
  return self._combine(other, operator.or_, args)

/usr/local/lib/python3.11/site-packages/rules/predicates.py in _combine(206)
  self_result = self._apply(*args)

/usr/local/lib/python3.11/site-packages/rules/predicates.py in _apply(235)
  result = self.fn(*callargs)

/app/project/lms_tales/rules.py in is_in_group(32)
  for owner in course.owner.all():

/usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(37)
  return original(compiler, *args, **kwargs)

/usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(96)
  return _get_result_or_execute_query(

/usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in _get_result_or_execute_query(46)
  data = cache.get_many(table_cache_keys + [cache_key])

0.2376 get_many (['e3a5db5a670ad803efb866441f33de58309be2e2', '53169bc24a037802f3e42b2df3d6e48b7ae8482f', '542c27005f4e84288827ce70a7d49bc73324a5e7', 'cb56b542e4cf87e9ee96cb4172d34056e507a6b7'],) {} <django_redis.cache.RedisCache object at 0x7b20419d72d0>
/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in run(101)
  return _run_old_run_func()

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in _run_old_run_func(94)
  return old_run_func(self, *a, **kw)

/usr/local/lib/python3.11/concurrent/futures/thread.py in _worker(83)
  work_item.run()

/usr/local/lib/python3.11/concurrent/futures/thread.py in run(58)
  result = self.fn(*self.args, **self.kwargs)

/usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522)
  return func(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in middleware(32)
  response = get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/allauth/account/middleware.py in middleware(36)
  response = get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/simple_history/middleware.py in middleware(41)
  return get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/django_htmx/middleware.py in __call__(43)
  return self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in __call__(168)
  response = self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/cachalot/panels.py in process_request(41)
  return super(CachalotPanel, self).process_request(request)

/usr/local/lib/python3.11/site-packages/asgiref/sync.py in __call__(244)
  current_executor.run_until_future(call_result)

/usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run_until_future(81)
  work_item.run()

/usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run(40)
  result = self.fn(*self.args, **self.kwargs)

/usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522)
  return func(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(90)
  return callback(request, *args, **kwargs)

/app/project/utils/decorators.py in apply_cache(72)
  cache.set(CACHE_KEY, response.render(), ttl)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_patched_render(41)
  return old_render(self)

/usr/local/lib/python3.11/site-packages/django/template/response.py in render(114)
  self.content = self.rendered_content

/usr/local/lib/python3.11/site-packages/sentry_sdk/utils.py in runner(1788)
  return sentry_patched_function(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/templates.py in rendered_content(77)
  return real_rendered_content.fget(self)

/usr/local/lib/python3.11/site-packages/django/template/response.py in rendered_content(92)
  return template.render(context, self._request)

/usr/local/lib/python3.11/site-packages/django/template/backends/django.py in render(61)
  return self.template.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(175)
  return self._render(context)

/usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112)
  return self.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157)
  return compiled_parent._render(context)

/usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112)
  return self.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157)
  return compiled_parent._render(context)

/usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112)
  return self.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63)
  result = block.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63)
  result = block.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(541)
  return self.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/library.py in render(237)
  output = self.func(*resolved_args, **resolved_kwargs)

/usr/local/lib/python3.11/site-packages/rules/templatetags/rules.py in has_perm(18)
  return user.has_perm(perm, obj)

/usr/local/lib/python3.11/site-packages/django/contrib/auth/models.py in has_perm(480)
  return _user_has_perm(self, perm, obj=obj)

/usr/local/lib/python3.11/site-packages/django/contrib/auth/models.py in _user_has_perm(220)
  if backend.has_perm(user, perm, obj):

/usr/local/lib/python3.11/site-packages/rules/permissions.py in has_perm(31)
  return has_perm(perm, user, *args, **kwargs)

/usr/local/lib/python3.11/site-packages/rules/permissions.py in has_perm(23)
  return permissions.test_rule(name, *args, **kwargs)

/usr/local/lib/python3.11/site-packages/rules/rulesets.py in test_rule(6)
  return name in self and self[name].test(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/rules/predicates.py in test(172)
  return bool(self._apply(*args))

/usr/local/lib/python3.11/site-packages/rules/predicates.py in _apply(235)
  result = self.fn(*callargs)

/usr/local/lib/python3.11/site-packages/rules/predicates.py in OR(184)
  return self._combine(other, operator.or_, args)

/usr/local/lib/python3.11/site-packages/rules/predicates.py in _combine(206)
  self_result = self._apply(*args)

/usr/local/lib/python3.11/site-packages/rules/predicates.py in _apply(235)
  result = self.fn(*callargs)

/app/project/lms_tales/rules.py in is_in_group(32)
  for owner in course.owner.all():

/usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(37)
  return original(compiler, *args, **kwargs)

/usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(96)
  return _get_result_or_execute_query(

/usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in _get_result_or_execute_query(46)
  data = cache.get_many(table_cache_keys + [cache_key])

0.2423 get ('waffle:4.1.0f1f61030d824f38a8926961f0e221887',) {} <django_redis.cache.RedisCache object at 0x7b20419d72d0>
/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in run(101)
  return _run_old_run_func()

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in _run_old_run_func(94)
  return old_run_func(self, *a, **kw)

/usr/local/lib/python3.11/concurrent/futures/thread.py in _worker(83)
  work_item.run()

/usr/local/lib/python3.11/concurrent/futures/thread.py in run(58)
  result = self.fn(*self.args, **self.kwargs)

/usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522)
  return func(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in middleware(32)
  response = get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/allauth/account/middleware.py in middleware(36)
  response = get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/simple_history/middleware.py in middleware(41)
  return get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/django_htmx/middleware.py in __call__(43)
  return self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in __call__(168)
  response = self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/cachalot/panels.py in process_request(41)
  return super(CachalotPanel, self).process_request(request)

/usr/local/lib/python3.11/site-packages/asgiref/sync.py in __call__(244)
  current_executor.run_until_future(call_result)

/usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run_until_future(81)
  work_item.run()

/usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run(40)
  result = self.fn(*self.args, **self.kwargs)

/usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522)
  return func(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(90)
  return callback(request, *args, **kwargs)

/app/project/utils/decorators.py in apply_cache(72)
  cache.set(CACHE_KEY, response.render(), ttl)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_patched_render(41)
  return old_render(self)

/usr/local/lib/python3.11/site-packages/django/template/response.py in render(114)
  self.content = self.rendered_content

/usr/local/lib/python3.11/site-packages/sentry_sdk/utils.py in runner(1788)
  return sentry_patched_function(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/templates.py in rendered_content(77)
  return real_rendered_content.fget(self)

/usr/local/lib/python3.11/site-packages/django/template/response.py in rendered_content(92)
  return template.render(context, self._request)

/usr/local/lib/python3.11/site-packages/django/template/backends/django.py in render(61)
  return self.template.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(175)
  return self._render(context)

/usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112)
  return self.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157)
  return compiled_parent._render(context)

/usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112)
  return self.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157)
  return compiled_parent._render(context)

/usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112)
  return self.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63)
  result = block.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63)
  result = block.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(541)
  return self.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/waffle/templatetags/waffle_tags.py in render(36)
  if self.condition(context.get('request', None), name):

/usr/local/lib/python3.11/site-packages/waffle/__init__.py in flag_is_active(19)
  flag = get_waffle_flag_model().get(flag_name)

/usr/local/lib/python3.11/site-packages/waffle/models.py in get(52)
  cached = cache.get(cache_key)

0.2688 get_many (['76e323efd8711853e13c9f7cf976845908364eb2', 'e3a5db5a670ad803efb866441f33de58309be2e2', 'a04e189009dc2a84258cd1dd46f3ce31cba70dd9'],) {} <django_redis.cache.RedisCache object at 0x7b20419d72d0>
/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in run(101)
  return _run_old_run_func()

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in _run_old_run_func(94)
  return old_run_func(self, *a, **kw)

/usr/local/lib/python3.11/concurrent/futures/thread.py in _worker(83)
  work_item.run()

/usr/local/lib/python3.11/concurrent/futures/thread.py in run(58)
  result = self.fn(*self.args, **self.kwargs)

/usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522)
  return func(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in middleware(32)
  response = get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/allauth/account/middleware.py in middleware(36)
  response = get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/simple_history/middleware.py in middleware(41)
  return get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/django_htmx/middleware.py in __call__(43)
  return self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in __call__(168)
  response = self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/cachalot/panels.py in process_request(41)
  return super(CachalotPanel, self).process_request(request)

/usr/local/lib/python3.11/site-packages/asgiref/sync.py in __call__(244)
  current_executor.run_until_future(call_result)

/usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run_until_future(81)
  work_item.run()

/usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run(40)
  result = self.fn(*self.args, **self.kwargs)

/usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522)
  return func(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(90)
  return callback(request, *args, **kwargs)

/app/project/utils/decorators.py in apply_cache(72)
  cache.set(CACHE_KEY, response.render(), ttl)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_patched_render(41)
  return old_render(self)

/usr/local/lib/python3.11/site-packages/django/template/response.py in render(114)
  self.content = self.rendered_content

/usr/local/lib/python3.11/site-packages/sentry_sdk/utils.py in runner(1788)
  return sentry_patched_function(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/templates.py in rendered_content(77)
  return real_rendered_content.fget(self)

/usr/local/lib/python3.11/site-packages/django/template/response.py in rendered_content(92)
  return template.render(context, self._request)

/usr/local/lib/python3.11/site-packages/django/template/backends/django.py in render(61)
  return self.template.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(175)
  return self._render(context)

/usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112)
  return self.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157)
  return compiled_parent._render(context)

/usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112)
  return self.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157)
  return compiled_parent._render(context)

/usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112)
  return self.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63)
  result = block.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63)
  result = block.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(541)
  return self.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63)
  result = block.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1064)
  output = self.filter_expression.resolve(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in resolve(715)
  obj = self.var.resolve(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in resolve(847)
  value = self._resolve_lookup(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in _resolve_lookup(914)
  current = current()

/app/project/lms_tales/models.py in get_step_number(110)
  chapter_list = list(

/usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(37)
  return original(compiler, *args, **kwargs)

/usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(96)
  return _get_result_or_execute_query(

/usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in _get_result_or_execute_query(46)
  data = cache.get_many(table_cache_keys + [cache_key])

0.2979 get_many (['76e323efd8711853e13c9f7cf976845908364eb2', '138549f5508bbba7283d6a0625e51c589d845e8f', '2c2d994e193f008102f9e149ae22f82b2db3e4a6'],) {} <django_redis.cache.RedisCache object at 0x7b20419d72d0>
/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in run(101)
  return _run_old_run_func()

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in _run_old_run_func(94)
  return old_run_func(self, *a, **kw)

/usr/local/lib/python3.11/concurrent/futures/thread.py in _worker(83)
  work_item.run()

/usr/local/lib/python3.11/concurrent/futures/thread.py in run(58)
  result = self.fn(*self.args, **self.kwargs)

/usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522)
  return func(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in middleware(32)
  response = get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/allauth/account/middleware.py in middleware(36)
  response = get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/simple_history/middleware.py in middleware(41)
  return get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/django_htmx/middleware.py in __call__(43)
  return self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in __call__(168)
  response = self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/cachalot/panels.py in process_request(41)
  return super(CachalotPanel, self).process_request(request)

/usr/local/lib/python3.11/site-packages/asgiref/sync.py in __call__(244)
  current_executor.run_until_future(call_result)

/usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run_until_future(81)
  work_item.run()

/usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run(40)
  result = self.fn(*self.args, **self.kwargs)

/usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522)
  return func(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(90)
  return callback(request, *args, **kwargs)

/app/project/utils/decorators.py in apply_cache(72)
  cache.set(CACHE_KEY, response.render(), ttl)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_patched_render(41)
  return old_render(self)

/usr/local/lib/python3.11/site-packages/django/template/response.py in render(114)
  self.content = self.rendered_content

/usr/local/lib/python3.11/site-packages/sentry_sdk/utils.py in runner(1788)
  return sentry_patched_function(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/templates.py in rendered_content(77)
  return real_rendered_content.fget(self)

/usr/local/lib/python3.11/site-packages/django/template/response.py in rendered_content(92)
  return template.render(context, self._request)

/usr/local/lib/python3.11/site-packages/django/template/backends/django.py in render(61)
  return self.template.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(175)
  return self._render(context)

/usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112)
  return self.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157)
  return compiled_parent._render(context)

/usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112)
  return self.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157)
  return compiled_parent._render(context)

/usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112)
  return self.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63)
  result = block.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63)
  result = block.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(541)
  return self.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63)
  result = block.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1064)
  output = self.filter_expression.resolve(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in resolve(715)
  obj = self.var.resolve(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in resolve(847)
  value = self._resolve_lookup(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in _resolve_lookup(914)
  current = current()

/app/project/lms_tales/models.py in get_step_number(121)
  step_list = list(self.chapter.published_steps.all().order_by("order"))

/usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(37)
  return original(compiler, *args, **kwargs)

/usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(96)
  return _get_result_or_execute_query(

/usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in _get_result_or_execute_query(46)
  data = cache.get_many(table_cache_keys + [cache_key])

0.2803 get ('waffle:4.1.0e9e267545e7f919d987e2d016e67ed7e',) {} <django_redis.cache.RedisCache object at 0x7b20419d72d0>
/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in run(101)
  return _run_old_run_func()

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in _run_old_run_func(94)
  return old_run_func(self, *a, **kw)

/usr/local/lib/python3.11/concurrent/futures/thread.py in _worker(83)
  work_item.run()

/usr/local/lib/python3.11/concurrent/futures/thread.py in run(58)
  result = self.fn(*self.args, **self.kwargs)

/usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522)
  return func(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in middleware(32)
  response = get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/allauth/account/middleware.py in middleware(36)
  response = get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/simple_history/middleware.py in middleware(41)
  return get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/django_htmx/middleware.py in __call__(43)
  return self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in __call__(168)
  response = self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/cachalot/panels.py in process_request(41)
  return super(CachalotPanel, self).process_request(request)

/usr/local/lib/python3.11/site-packages/asgiref/sync.py in __call__(244)
  current_executor.run_until_future(call_result)

/usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run_until_future(81)
  work_item.run()

/usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run(40)
  result = self.fn(*self.args, **self.kwargs)

/usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522)
  return func(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(90)
  return callback(request, *args, **kwargs)

/app/project/utils/decorators.py in apply_cache(72)
  cache.set(CACHE_KEY, response.render(), ttl)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_patched_render(41)
  return old_render(self)

/usr/local/lib/python3.11/site-packages/django/template/response.py in render(114)
  self.content = self.rendered_content

/usr/local/lib/python3.11/site-packages/sentry_sdk/utils.py in runner(1788)
  return sentry_patched_function(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/templates.py in rendered_content(77)
  return real_rendered_content.fget(self)

/usr/local/lib/python3.11/site-packages/django/template/response.py in rendered_content(92)
  return template.render(context, self._request)

/usr/local/lib/python3.11/site-packages/django/template/backends/django.py in render(61)
  return self.template.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(175)
  return self._render(context)

/usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112)
  return self.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157)
  return compiled_parent._render(context)

/usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112)
  return self.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157)
  return compiled_parent._render(context)

/usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112)
  return self.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63)
  result = block.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63)
  result = block.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(541)
  return self.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/waffle/templatetags/waffle_tags.py in render(36)
  if self.condition(context.get('request', None), name):

/usr/local/lib/python3.11/site-packages/waffle/__init__.py in flag_is_active(19)
  flag = get_waffle_flag_model().get(flag_name)

/usr/local/lib/python3.11/site-packages/waffle/models.py in get(52)
  cached = cache.get(cache_key)

0.2328 get_many (['4f1f0b4dfbd30463b5587753e6f3e6ca21ddbf60', '138549f5508bbba7283d6a0625e51c589d845e8f', 'beb38e46c7a5e177e896e9a96bc2518ecf72a931'],) {} <django_redis.cache.RedisCache object at 0x7b20419d72d0>
/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in run(101)
  return _run_old_run_func()

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in _run_old_run_func(94)
  return old_run_func(self, *a, **kw)

/usr/local/lib/python3.11/concurrent/futures/thread.py in _worker(83)
  work_item.run()

/usr/local/lib/python3.11/concurrent/futures/thread.py in run(58)
  result = self.fn(*self.args, **self.kwargs)

/usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522)
  return func(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in middleware(32)
  response = get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/allauth/account/middleware.py in middleware(36)
  response = get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/simple_history/middleware.py in middleware(41)
  return get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/django_htmx/middleware.py in __call__(43)
  return self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in __call__(168)
  response = self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/cachalot/panels.py in process_request(41)
  return super(CachalotPanel, self).process_request(request)

/usr/local/lib/python3.11/site-packages/asgiref/sync.py in __call__(244)
  current_executor.run_until_future(call_result)

/usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run_until_future(81)
  work_item.run()

/usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run(40)
  result = self.fn(*self.args, **self.kwargs)

/usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522)
  return func(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(90)
  return callback(request, *args, **kwargs)

/app/project/utils/decorators.py in apply_cache(72)
  cache.set(CACHE_KEY, response.render(), ttl)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_patched_render(41)
  return old_render(self)

/usr/local/lib/python3.11/site-packages/django/template/response.py in render(114)
  self.content = self.rendered_content

/usr/local/lib/python3.11/site-packages/sentry_sdk/utils.py in runner(1788)
  return sentry_patched_function(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/templates.py in rendered_content(77)
  return real_rendered_content.fget(self)

/usr/local/lib/python3.11/site-packages/django/template/response.py in rendered_content(92)
  return template.render(context, self._request)

/usr/local/lib/python3.11/site-packages/django/template/backends/django.py in render(61)
  return self.template.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(175)
  return self._render(context)

/usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112)
  return self.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157)
  return compiled_parent._render(context)

/usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112)
  return self.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157)
  return compiled_parent._render(context)

/usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112)
  return self.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63)
  result = block.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63)
  result = block.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(541)
  return self.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(320)
  if match:

/usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(37)
  return original(compiler, *args, **kwargs)

/usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(96)
  return _get_result_or_execute_query(

/usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in _get_result_or_execute_query(46)
  data = cache.get_many(table_cache_keys + [cache_key])

0.2372 get_many (['76e323efd8711853e13c9f7cf976845908364eb2', 'fafa335b0351bf6451a0aff01e57264237749722'],) {} <django_redis.cache.RedisCache object at 0x7b20419d72d0>
/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in run(101)
  return _run_old_run_func()

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in _run_old_run_func(94)
  return old_run_func(self, *a, **kw)

/usr/local/lib/python3.11/concurrent/futures/thread.py in _worker(83)
  work_item.run()

/usr/local/lib/python3.11/concurrent/futures/thread.py in run(58)
  result = self.fn(*self.args, **self.kwargs)

/usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522)
  return func(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in middleware(32)
  response = get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/allauth/account/middleware.py in middleware(36)
  response = get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/simple_history/middleware.py in middleware(41)
  return get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/django_htmx/middleware.py in __call__(43)
  return self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in __call__(168)
  response = self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/cachalot/panels.py in process_request(41)
  return super(CachalotPanel, self).process_request(request)

/usr/local/lib/python3.11/site-packages/asgiref/sync.py in __call__(244)
  current_executor.run_until_future(call_result)

/usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run_until_future(81)
  work_item.run()

/usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run(40)
  result = self.fn(*self.args, **self.kwargs)

/usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522)
  return func(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(90)
  return callback(request, *args, **kwargs)

/app/project/utils/decorators.py in apply_cache(72)
  cache.set(CACHE_KEY, response.render(), ttl)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_patched_render(41)
  return old_render(self)

/usr/local/lib/python3.11/site-packages/django/template/response.py in render(114)
  self.content = self.rendered_content

/usr/local/lib/python3.11/site-packages/sentry_sdk/utils.py in runner(1788)
  return sentry_patched_function(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/templates.py in rendered_content(77)
  return real_rendered_content.fget(self)

/usr/local/lib/python3.11/site-packages/django/template/response.py in rendered_content(92)
  return template.render(context, self._request)

/usr/local/lib/python3.11/site-packages/django/template/backends/django.py in render(61)
  return self.template.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(175)
  return self._render(context)

/usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112)
  return self.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157)
  return compiled_parent._render(context)

/usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112)
  return self.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157)
  return compiled_parent._render(context)

/usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112)
  return self.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63)
  result = block.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63)
  result = block.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(541)
  return self.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(314)
  match = condition.eval(context)

/usr/local/lib/python3.11/site-packages/django/template/smartif.py in eval(60)
  return func(context, self.first, self.second)

/usr/local/lib/python3.11/site-packages/django/template/smartif.py in <lambda>(103)
  "is not": infix(10, lambda context, x, y: x.eval(context) is not y.eval(context)),

/usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in eval(877)
  return self.value.resolve(context, ignore_failures=True)

/usr/local/lib/python3.11/site-packages/django/template/base.py in resolve(715)
  obj = self.var.resolve(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in resolve(847)
  value = self._resolve_lookup(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in _resolve_lookup(914)
  current = current()

/app/project/lms_tales/models.py in get_absolute_url(99)
  str(self.chapter.course.slug),

/usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(37)
  return original(compiler, *args, **kwargs)

/usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(96)
  return _get_result_or_execute_query(

/usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in _get_result_or_execute_query(46)
  data = cache.get_many(table_cache_keys + [cache_key])

0.2411 get_many (['e3a5db5a670ad803efb866441f33de58309be2e2', '094be066ce804a917a0ce338b38303f8fb9b12e9'],) {} <django_redis.cache.RedisCache object at 0x7b20419d72d0>
/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in run(101)
  return _run_old_run_func()

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in _run_old_run_func(94)
  return old_run_func(self, *a, **kw)

/usr/local/lib/python3.11/concurrent/futures/thread.py in _worker(83)
  work_item.run()

/usr/local/lib/python3.11/concurrent/futures/thread.py in run(58)
  result = self.fn(*self.args, **self.kwargs)

/usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522)
  return func(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in middleware(32)
  response = get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/allauth/account/middleware.py in middleware(36)
  response = get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/simple_history/middleware.py in middleware(41)
  return get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/django_htmx/middleware.py in __call__(43)
  return self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in __call__(168)
  response = self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/cachalot/panels.py in process_request(41)
  return super(CachalotPanel, self).process_request(request)

/usr/local/lib/python3.11/site-packages/asgiref/sync.py in __call__(244)
  current_executor.run_until_future(call_result)

/usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run_until_future(81)
  work_item.run()

/usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run(40)
  result = self.fn(*self.args, **self.kwargs)

/usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522)
  return func(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(90)
  return callback(request, *args, **kwargs)

/app/project/utils/decorators.py in apply_cache(72)
  cache.set(CACHE_KEY, response.render(), ttl)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_patched_render(41)
  return old_render(self)

/usr/local/lib/python3.11/site-packages/django/template/response.py in render(114)
  self.content = self.rendered_content

/usr/local/lib/python3.11/site-packages/sentry_sdk/utils.py in runner(1788)
  return sentry_patched_function(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/templates.py in rendered_content(77)
  return real_rendered_content.fget(self)

/usr/local/lib/python3.11/site-packages/django/template/response.py in rendered_content(92)
  return template.render(context, self._request)

/usr/local/lib/python3.11/site-packages/django/template/backends/django.py in render(61)
  return self.template.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(175)
  return self._render(context)

/usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112)
  return self.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157)
  return compiled_parent._render(context)

/usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112)
  return self.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157)
  return compiled_parent._render(context)

/usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112)
  return self.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63)
  result = block.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63)
  result = block.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(541)
  return self.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(314)
  match = condition.eval(context)

/usr/local/lib/python3.11/site-packages/django/template/smartif.py in eval(60)
  return func(context, self.first, self.second)

/usr/local/lib/python3.11/site-packages/django/template/smartif.py in <lambda>(103)
  "is not": infix(10, lambda context, x, y: x.eval(context) is not y.eval(context)),

/usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in eval(877)
  return self.value.resolve(context, ignore_failures=True)

/usr/local/lib/python3.11/site-packages/django/template/base.py in resolve(715)
  obj = self.var.resolve(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in resolve(847)
  value = self._resolve_lookup(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in _resolve_lookup(914)
  current = current()

/app/project/lms_tales/models.py in get_absolute_url(99)
  str(self.chapter.course.slug),

/usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(37)
  return original(compiler, *args, **kwargs)

/usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(96)
  return _get_result_or_execute_query(

/usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in _get_result_or_execute_query(46)
  data = cache.get_many(table_cache_keys + [cache_key])

0.2308 get_many (['76e323efd8711853e13c9f7cf976845908364eb2', 'fafa335b0351bf6451a0aff01e57264237749722'],) {} <django_redis.cache.RedisCache object at 0x7b20419d72d0>
/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in run(101)
  return _run_old_run_func()

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in _run_old_run_func(94)
  return old_run_func(self, *a, **kw)

/usr/local/lib/python3.11/concurrent/futures/thread.py in _worker(83)
  work_item.run()

/usr/local/lib/python3.11/concurrent/futures/thread.py in run(58)
  result = self.fn(*self.args, **self.kwargs)

/usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522)
  return func(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in middleware(32)
  response = get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/allauth/account/middleware.py in middleware(36)
  response = get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/simple_history/middleware.py in middleware(41)
  return get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/django_htmx/middleware.py in __call__(43)
  return self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in __call__(168)
  response = self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/cachalot/panels.py in process_request(41)
  return super(CachalotPanel, self).process_request(request)

/usr/local/lib/python3.11/site-packages/asgiref/sync.py in __call__(244)
  current_executor.run_until_future(call_result)

/usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run_until_future(81)
  work_item.run()

/usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run(40)
  result = self.fn(*self.args, **self.kwargs)

/usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522)
  return func(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(90)
  return callback(request, *args, **kwargs)

/app/project/utils/decorators.py in apply_cache(72)
  cache.set(CACHE_KEY, response.render(), ttl)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_patched_render(41)
  return old_render(self)

/usr/local/lib/python3.11/site-packages/django/template/response.py in render(114)
  self.content = self.rendered_content

/usr/local/lib/python3.11/site-packages/sentry_sdk/utils.py in runner(1788)
  return sentry_patched_function(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/templates.py in rendered_content(77)
  return real_rendered_content.fget(self)

/usr/local/lib/python3.11/site-packages/django/template/response.py in rendered_content(92)
  return template.render(context, self._request)

/usr/local/lib/python3.11/site-packages/django/template/backends/django.py in render(61)
  return self.template.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(175)
  return self._render(context)

/usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112)
  return self.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157)
  return compiled_parent._render(context)

/usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112)
  return self.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157)
  return compiled_parent._render(context)

/usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112)
  return self.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63)
  result = block.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63)
  result = block.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(541)
  return self.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(314)
  match = condition.eval(context)

/usr/local/lib/python3.11/site-packages/django/template/smartif.py in eval(60)
  return func(context, self.first, self.second)

/usr/local/lib/python3.11/site-packages/django/template/smartif.py in <lambda>(103)
  "is not": infix(10, lambda context, x, y: x.eval(context) is not y.eval(context)),

/usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in eval(877)
  return self.value.resolve(context, ignore_failures=True)

/usr/local/lib/python3.11/site-packages/django/template/base.py in resolve(715)
  obj = self.var.resolve(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in resolve(847)
  value = self._resolve_lookup(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in _resolve_lookup(914)
  current = current()

/app/project/lms_tales/models.py in get_absolute_url(99)
  str(self.chapter.course.slug),

/usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(37)
  return original(compiler, *args, **kwargs)

/usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(96)
  return _get_result_or_execute_query(

/usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in _get_result_or_execute_query(46)
  data = cache.get_many(table_cache_keys + [cache_key])

0.2423 get_many (['e3a5db5a670ad803efb866441f33de58309be2e2', '094be066ce804a917a0ce338b38303f8fb9b12e9'],) {} <django_redis.cache.RedisCache object at 0x7b20419d72d0>
/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in run(101)
  return _run_old_run_func()

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in _run_old_run_func(94)
  return old_run_func(self, *a, **kw)

/usr/local/lib/python3.11/concurrent/futures/thread.py in _worker(83)
  work_item.run()

/usr/local/lib/python3.11/concurrent/futures/thread.py in run(58)
  result = self.fn(*self.args, **self.kwargs)

/usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522)
  return func(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in middleware(32)
  response = get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/allauth/account/middleware.py in middleware(36)
  response = get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/simple_history/middleware.py in middleware(41)
  return get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/django_htmx/middleware.py in __call__(43)
  return self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in __call__(168)
  response = self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/cachalot/panels.py in process_request(41)
  return super(CachalotPanel, self).process_request(request)

/usr/local/lib/python3.11/site-packages/asgiref/sync.py in __call__(244)
  current_executor.run_until_future(call_result)

/usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run_until_future(81)
  work_item.run()

/usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run(40)
  result = self.fn(*self.args, **self.kwargs)

/usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522)
  return func(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(90)
  return callback(request, *args, **kwargs)

/app/project/utils/decorators.py in apply_cache(72)
  cache.set(CACHE_KEY, response.render(), ttl)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_patched_render(41)
  return old_render(self)

/usr/local/lib/python3.11/site-packages/django/template/response.py in render(114)
  self.content = self.rendered_content

/usr/local/lib/python3.11/site-packages/sentry_sdk/utils.py in runner(1788)
  return sentry_patched_function(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/templates.py in rendered_content(77)
  return real_rendered_content.fget(self)

/usr/local/lib/python3.11/site-packages/django/template/response.py in rendered_content(92)
  return template.render(context, self._request)

/usr/local/lib/python3.11/site-packages/django/template/backends/django.py in render(61)
  return self.template.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(175)
  return self._render(context)

/usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112)
  return self.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157)
  return compiled_parent._render(context)

/usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112)
  return self.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157)
  return compiled_parent._render(context)

/usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112)
  return self.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63)
  result = block.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63)
  result = block.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(541)
  return self.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(314)
  match = condition.eval(context)

/usr/local/lib/python3.11/site-packages/django/template/smartif.py in eval(60)
  return func(context, self.first, self.second)

/usr/local/lib/python3.11/site-packages/django/template/smartif.py in <lambda>(103)
  "is not": infix(10, lambda context, x, y: x.eval(context) is not y.eval(context)),

/usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in eval(877)
  return self.value.resolve(context, ignore_failures=True)

/usr/local/lib/python3.11/site-packages/django/template/base.py in resolve(715)
  obj = self.var.resolve(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in resolve(847)
  value = self._resolve_lookup(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in _resolve_lookup(914)
  current = current()

/app/project/lms_tales/models.py in get_absolute_url(99)
  str(self.chapter.course.slug),

/usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(37)
  return original(compiler, *args, **kwargs)

/usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(96)
  return _get_result_or_execute_query(

/usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in _get_result_or_execute_query(46)
  data = cache.get_many(table_cache_keys + [cache_key])

0.2397 get ('waffle:4.1.0e9e267545e7f919d987e2d016e67ed7e',) {} <django_redis.cache.RedisCache object at 0x7b20419d72d0>
/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in run(101)
  return _run_old_run_func()

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in _run_old_run_func(94)
  return old_run_func(self, *a, **kw)

/usr/local/lib/python3.11/concurrent/futures/thread.py in _worker(83)
  work_item.run()

/usr/local/lib/python3.11/concurrent/futures/thread.py in run(58)
  result = self.fn(*self.args, **self.kwargs)

/usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522)
  return func(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in middleware(32)
  response = get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/allauth/account/middleware.py in middleware(36)
  response = get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/simple_history/middleware.py in middleware(41)
  return get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/django_htmx/middleware.py in __call__(43)
  return self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in __call__(168)
  response = self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/cachalot/panels.py in process_request(41)
  return super(CachalotPanel, self).process_request(request)

/usr/local/lib/python3.11/site-packages/asgiref/sync.py in __call__(244)
  current_executor.run_until_future(call_result)

/usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run_until_future(81)
  work_item.run()

/usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run(40)
  result = self.fn(*self.args, **self.kwargs)

/usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522)
  return func(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(90)
  return callback(request, *args, **kwargs)

/app/project/utils/decorators.py in apply_cache(72)
  cache.set(CACHE_KEY, response.render(), ttl)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_patched_render(41)
  return old_render(self)

/usr/local/lib/python3.11/site-packages/django/template/response.py in render(114)
  self.content = self.rendered_content

/usr/local/lib/python3.11/site-packages/sentry_sdk/utils.py in runner(1788)
  return sentry_patched_function(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/templates.py in rendered_content(77)
  return real_rendered_content.fget(self)

/usr/local/lib/python3.11/site-packages/django/template/response.py in rendered_content(92)
  return template.render(context, self._request)

/usr/local/lib/python3.11/site-packages/django/template/backends/django.py in render(61)
  return self.template.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(175)
  return self._render(context)

/usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112)
  return self.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157)
  return compiled_parent._render(context)

/usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112)
  return self.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157)
  return compiled_parent._render(context)

/usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112)
  return self.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63)
  result = block.nodelist.render(context)

/usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966)
  return self.render(context)

/usr/local/lib/python3.11/site-packages/waffle/templatetags/waffle_tags.py in render(36)
  if self.condition(context.get('request', None), name):

/usr/local/lib/python3.11/site-packages/waffle/__init__.py in flag_is_active(19)
  flag = get_waffle_flag_model().get(flag_name)

/usr/local/lib/python3.11/site-packages/waffle/models.py in get(52)
  cached = cache.get(cache_key)

1.3310 set ('view_cache_view_/en/allergies-when-the-immune-system-backfires-41/castle-the-game-235/exploring-the-basics-1389_anonymous', <TemplateResponse status_code=200, "text/html; charset=utf-8">, 600) {} <django_redis.cache.RedisCache object at 0x7b20419d72d0>
/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in run(101)
  return _run_old_run_func()

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in _run_old_run_func(94)
  return old_run_func(self, *a, **kw)

/usr/local/lib/python3.11/concurrent/futures/thread.py in _worker(83)
  work_item.run()

/usr/local/lib/python3.11/concurrent/futures/thread.py in run(58)
  result = self.fn(*self.args, **self.kwargs)

/usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522)
  return func(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in middleware(32)
  response = get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/allauth/account/middleware.py in middleware(36)
  response = get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/simple_history/middleware.py in middleware(41)
  return get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/django_htmx/middleware.py in __call__(43)
  return self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in __call__(168)
  response = self.get_response(request)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/cachalot/panels.py in process_request(41)
  return super(CachalotPanel, self).process_request(request)

/usr/local/lib/python3.11/site-packages/asgiref/sync.py in __call__(244)
  current_executor.run_until_future(call_result)

/usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run_until_future(81)
  work_item.run()

/usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run(40)
  result = self.fn(*self.args, **self.kwargs)

/usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522)
  return func(*args, **kwargs)

/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(90)
  return callback(request, *args, **kwargs)

/app/project/utils/decorators.py in apply_cache(72)
  cache.set(CACHE_KEY, response.render(), ttl)

Cachalot

Database 'default'

Application Model Last invalidation
django_q Failure 1 hour, 27 minutes
lms_tales CourseMetrics 1 hour, 27 minutes
django_q Schedule 1 hour, 27 minutes
search FulltextSearchModel 3 hours, 27 minutes
reporting Report 18 hours, 21 minutes
admin LogEntry 1 week, 6 days
users UserSettings 2 weeks
users User 2 weeks
search TrigramSearchModel 1 month
lms_tales HistoricalTalesCourse 1 month
lms_tales TalesCourse 1 month
notifications Notification 1 month
lms_comments Reply 1 month
impersonate ImpersonationLog 1 month
lms_comments Comment 1 month
lms_tales TalesCourseRun 1 month
auth Permission 1 month, 2 weeks
auth Group 1 month, 2 weeks
contenttypes ContentType 1 month, 2 weeks
sessions Session 1 month, 2 weeks
sites Site 1 month, 2 weeks
flatpages FlatPage 1 month, 2 weeks
redirects Redirect 1 month, 2 weeks
account EmailAddress 1 month, 2 weeks
account EmailConfirmation 1 month, 2 weeks
socialaccount SocialApp 1 month, 2 weeks
socialaccount SocialAccount 1 month, 2 weeks
socialaccount SocialToken 1 month, 2 weeks
waffle Flag 1 month, 2 weeks
waffle Switch 1 month, 2 weeks
waffle Sample 1 month, 2 weeks
tos TermsOfService 1 month, 2 weeks
tos UserAgreement 1 month, 2 weeks
django_q OrmQ 1 month, 2 weeks
lms_base GlossaryMixin 1 month, 2 weeks
lms_base GlossaryItemMixin 1 month, 2 weeks
lms_tales TalesStep 1 month, 2 weeks
lms_tales TalesStepFileNew 1 month, 2 weeks
lms_tales TalesStepFile 1 month, 2 weeks
lms_tales TalesCourseFile 1 month, 2 weeks
lms_tales TalesChapter 1 month, 2 weeks
lms_tales TalesAuthor 1 month, 2 weeks
lms_tales TalesPartner 1 month, 2 weeks
lms_tales TalesGlossaryItem 1 month, 2 weeks
lms_tales TalesPath 1 month, 2 weeks
lms_tales TalesPathStep 1 month, 2 weeks
lms_tales TalesPortalPage 1 month, 2 weeks
lms_tales TalesPortalPageCourse 1 month, 2 weeks
lms_tales TalesCourseRunStep 1 month, 2 weeks
lms_tales ScheduledMessage 1 month, 2 weeks
lms_tales HistoricalTalesStep 1 month, 2 weeks
lms_tales HistoricalTalesStepFile 1 month, 2 weeks
lms_tales HistoricalTalesChapter 1 month, 2 weeks
lms_tales HistoricalTalesPath 1 month, 2 weeks
lms_tales HistoricalTalesPortalPage 1 month, 2 weeks
lms_comments Reaction 1 month, 2 weeks
lms_comments Flag 1 month, 2 weeks
lms_static_texts StaticText 1 month, 2 weeks
lms_static_texts HistoricalStaticText 1 month, 2 weeks
tags Category 1 month, 2 weeks
tags Tag 1 month, 2 weeks
startpage SliderItem 1 month, 2 weeks
startpage CategoryCourse 1 month, 2 weeks

Signals

Signal Receivers
class_prepared StatusField.prepare_class, add_status_query_managers, add_timeframed_query_manager, StatusField.prepare_class, StatusField.prepare_class, StatusField.prepare_class, StatusField.prepare_class, StatusField.prepare_class, StatusField.prepare_class, StatusField.prepare_class, StatusField.prepare_class, StatusField.prepare_class, StatusField.prepare_class, StatusField.prepare_class, StatusField.prepare_class
connection_created
got_request_exception _got_request_exception
m2m_changed flag_membership_changed, flag_membership_changed
post_delete HistoricalRecords.post_delete, HistoricalRecords.post_delete, HistoricalRecords.post_delete, HistoricalRecords.post_delete, HistoricalRecords.post_delete, HistoricalRecords.post_delete, HistoricalRecords.post_delete, delete_search_index, delete_search_index
post_init ModelSignalRouter.post_init_receiver, MonitorField._save_initial, MonitorField._save_initial, MonitorField._save_initial, MonitorField._save_initial, ImageField.update_dimension_fields, MonitorField._save_initial, ImageField.update_dimension_fields, MonitorField._save_initial, MonitorField._save_initial, ImageField.update_dimension_fields, ImageField.update_dimension_fields, ImageField.update_dimension_fields, ImageField.update_dimension_fields, MonitorField._save_initial, MonitorField._save_initial, delete_mt_init, delete_mt_init, delete_mt_init, delete_mt_init, delete_mt_init, delete_mt_init, delete_mt_init, delete_mt_init, delete_mt_init, delete_mt_init, MonitorField._save_initial, MonitorField._save_initial, MonitorField._save_initial, MonitorField._save_initial, delete_mt_init, delete_mt_init, delete_mt_init
post_migrate create_permissions, create_contenttypes, create_default_site, _invalidate_on_migration
post_save ModelSignalRouter.post_save_receiver, HistoricalRecords.post_save, HistoricalRecords.post_save, HistoricalRecords.post_save, HistoricalRecords.post_save, HistoricalRecords.post_save, HistoricalRecords.post_save, HistoricalRecords.post_save, call_hook, create_user_settings, save_user_settings, update_search_index, update_search_index
pre_delete clear_site_cache
pre_init
pre_migrate inject_rename_contenttypes_operations
pre_save clear_site_cache
request_finished close_old_connections, close_caches, reset_urlconf
request_started reset_queries, close_old_connections
setting_changed reset_cache, reload_settings, clear_cache_handlers, update_installed_apps, update_connections_time_zone, clear_routers_cache, reset_template_engines, storages_changed, clear_serializers_cache, language_changed, localize_settings_changed, file_storage_changed, complex_setting_changed, root_urlconf_changed, static_storage_changed, static_finders_changed, auth_password_validators_changed, user_model_swapped, update_toolbar_config, reset_hashers, update_level_tags, clear_caches, FileSystemStorage._clear_cached_properties, StaticFilesStorage._clear_cached_properties, FileSystemStorage._clear_cached_properties, FileSystemStorage._clear_cached_properties, FileSystemStorage._clear_cached_properties, FileSystemStorage._clear_cached_properties, FileSystemStorage._clear_cached_properties, FileSystemStorage._clear_cached_properties, FileSystemStorage._clear_cached_properties, FileSystemStorage._clear_cached_properties, FileSystemStorage._clear_cached_properties