SOUTH-SOUTH KNOWLEDGE CIRCULATION

4.9

Chinese medicine in Tanzania

In this video, Tanja Hammel interviews Andrea Kifyasi, lecturer at the University of Dar es Salaam, about his PhD thesis on Chinese medical assistance to post-colonial Tanzania.

Historian Andrea Kifyasi provides insights into the post-colonial diplomatic history of Sino-African relations, especially in the field of medical diplomacy. He sheds light on why South-South knowledge exchange and Chinese-Tanzanian collaborations have not attracted more scholarly attention so far.

His focus lies on Sino-African relations, and he gives examples of thriving research in this field. We can better understand Tanzanian history and its relations with China by learning more about his research. His research goes beyond “Theory from the South”.


References

Blunden M. South-South Cooperation: Cuba’s Health Programmes in Africa. International Journal of Cuban Studies. 2008; 1 (1): 32–41.

Feinsilver J M. Cuba’s Medical Diplomacy. A Changing Cuba in a Changing World (M A Font, ed). 273–286. New York: City University of New York; 2009.

Feinsilver J M. Fifty Years of Cuba’s Medical Diplomacy: From Idealism to Pragmatism. Cuban Studies. 2010; 41: 85-104.

Kifyasi A A. Neither “Saviour” nor “Exploiter”: A Historical Study of China’s Medical Assistance in Post-Colonial Tanzania. PhD Dissertation [Internet]. 2021 [cited 1 December 2021]. Available from: https://edoc.unibas.ch/83588/1/Andrea A Kifyasi_Dissertation_ edoc.pdf

Kifyasi A A. China’s Role in Global Health: HIV/AIDS Traditional Chinese Medicine Research and Treatment in Tanzania from 1987 to 2014. China Quarterly of International Strategic Studies [Internet]. 2021 [cited 8 March 2023] 7:(3): 243-67. Available from: https://doi.org/10.1142/S237774002150010X

You can follow Andrea Kifyasi’s publications here and here: https://orcid.org/0000-0003-4660-6748

You might also be interested in:

Iandolo on socialist development in West Africa: https://www.cornellpress.cornell.edu/book/9781501764431/arrested-development/

Mark et al on “Alternative Globalizations » : https://iupress.org/9780253046512/alternative-globalizations/

Stanek on socialist architecture in West Africa:https://press.princeton.edu/books/hardcover/9780691168708/architecture-in-global-socialism

Downloads

DJDT

Versions

Package Name Version
Django 5.2.3
Python 3.12.12
allauth Allauth 65.9.0.final.0
cachalot Cachalot 2.8.0
crispy_bootstrap5 Crispy_Bootstrap5 2025.4
crispy_forms Crispy_Forms 2.4
debug_toolbar Debug Toolbar 5.2.0
django_extensions Django Extensions 3.2.3
django_filters Django_Filters 25.1
django_q Django Q 1.8.0
imagekit Imagekit 5.0.0
impersonate Impersonate 1.9.5
markdownx Markdownx 4.0.9
mozilla_django_oidc Mozilla_Django_Oidc 4.0.1
notifications Notifications 1.8.3
rosetta Rosetta 0.10.2
rules Rules 3.5.0.final.1
simple_history Simple_History 3.8.0
tos Terms Of Service 1.1.0
waffle django-waffle 4.2.0

Time

Resource usage

Resource Value
User CPU time 304.091 msec
System CPU time 20.104 msec
Total CPU time 324.195 msec
Elapsed time 660.327 msec
Context switches 63 voluntary, 57 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 '********************'
AUTH_PASSWORD_VALIDATORS '********************'
AUTH_USER_MODEL '********************'
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 'c401eb2c'
CI_COMMIT_TAG '2.6.23'
CRISPY_ALLOWED_TEMPLATE_PACKS 'bootstrap5'
CRISPY_TEMPLATE_PACK 'bootstrap5'
CSRF_COOKIE_AGE 31449600
CSRF_COOKIE_DOMAIN None
CSRF_COOKIE_HTTPONLY 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 0x788312fd3420>}
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_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
FORMS_URLFIELD_ASSUME_HTTPS False
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', 'django_filters', 'users.apps.UsersConfig', 'lms_base.apps.LmsBaseConfig', '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', 'lms_roles.apps.LMSRolesConfig', 'lms_ai.apps.LMSAiConfig', 'lms_assignment.apps.LMSAssignmentConfig', 'debug_toolbar')
INTERNAL_IPS ['127.0.0.1']
LANGUAGES (('de', 'German'), ('en', 'English'), ('fr', 'French'))
LANGUAGES_BIDI ['he', 'ar', 'ar-dz', 'ckb', 'fa', 'ug', '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
LANGUAGE_PUBLICATION_ENABLED True
LINKCHECKER_CHECK_EXTERN True
LINKCHECKER_IGNORE_PATTERNS ['.*/admin/.*', '.*/oidc/authenticate/\\?next=.*', '.*\\.(jpe?g|png|gif|svg|webp|ico|pdf|mp4|avi|mov|css|js|json|xml|txt)$', '.*/logout/.*', '.*/login/.*', '.*/#.*']
LINKCHECKER_MAX_RETRIES 3
LINKCHECKER_NO_FOLLOW_PATTERNS ['^https?://(?!nmc-tales-staging\\.nmc\\.unibas\\.ch/).*']
LINKCHECKER_RECURSION_LEVEL 5
LINKCHECKER_RETRY_DELAY 30
LINKCHECKER_TIMEOUT 10
LINKCHECKER_URL 'https://nmc-tales-staging.nmc.unibas.ch/'
LINKCHECKER_USER_AGENT 'Tales-LinkChecker/1.0'
LOCALE_PATHS ['/app/project/config/../locale']
LOCAL_APPS ('users.apps.UsersConfig', 'lms_base.apps.LmsBaseConfig', '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', 'lms_roles.apps.LMSRolesConfig', 'lms_ai.apps.LMSAiConfig', 'lms_assignment.apps.LMSAssignmentConfig')
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'}, 'lms_ai': {'handlers': ['console'], 'level': 'DEBUG'}, '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 'lms_notifications.Notification'
NUMBER_GROUPING 0
OIDC_OP_AUTHORIZATION_ENDPOINT '********************'
OIDC_OP_JWKS_ENDPOINT 'https://login.eduid.ch/idp/profile/oidc/keyset'
OIDC_OP_TOKEN_ENDPOINT '********************'
OIDC_OP_USER_ENDPOINT 'https://login.eduid.ch/idp/profile/oidc/userinfo'
OIDC_RP_CLIENT_ID 'unibas-tales-staging'
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 '********************'
OPENAI_API_KEY '********************'
OPENAI_BASE_URL 'http://nmc-macmini1.nmc.unibas.ch/api/v1'
OPENAI_MODEL 'granite4:small-h'
PASSWORD_HASHERS '********************'
PASSWORD_RESET_TIMEOUT '********************'
PREPEND_WWW False
PROJECT_DIR '/app/project/config/../'
Q_CLUSTER {'catch_up': False, 'django_redis': 'default', 'max_attempts': 5, 'name': 'QCluster', 'recycle': 50, 'retry': 7500, 'timeout': 7200, 'workers': 2}
REDIS_STREAM_MAX_LENGTH 1000
RELEASE_NAME ''
REQUIRE_SUPERUSER True
ROOT_URLCONF 'config.urls'
ROSETTA_ENABLE_TRANSLATION_SUGGESTIONS True
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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'
SSE_HEARTBEAT_SEC 15
SSE_RETRY_MS 5000
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')
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.12/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_I18N True
USE_THOUSAND_SEPARATOR False
USE_TZ True
USE_X_FORWARDED_HOST True
USE_X_FORWARDED_PORT False
VIEW_CACHE_TTL 600
WAFFLE_CREATE_MISSING_FLAGS True
WAFFLE_CREATE_MISSING_SAMPLES True
WAFFLE_CREATE_MISSING_SWITCHES True
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
Cookie => see Request panel
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)
Via 2.0 Caddy
X-Forwarded-For 216.73.216.159
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/examining-african-contributions-to-global-health-40/south-south-knowledge-circulation-216/chinese-medicine-in-tanzania-1173
QUERY_STRING
REMOTE_ADDR 172.18.0.2
REQUEST_METHOD GET
SCRIPT_NAME
SERVER_NAME 0.0.0.0
SERVER_PORT 8000
SERVER_PROTOCOL HTTP/1.1
SERVER_SOFTWARE gunicorn/23.0.0

Request

View information

View function Arguments Keyword arguments URL name
utils.decorators.cache_per_user.<locals>.decorator.<locals>.apply_cache () {'chapter_pk': 216, 'chapter_slug': 'south-south-knowledge-circulation', 'course_pk': 40, 'course_slug': 'examining-african-contributions-to-global-health', 'pk': 1173, 'slug': 'chinese-medicine-in-tanzania'} tales:step

Cookies

Variable Value
'csrftoken' '********************'

No session data

No GET data

No POST data

SQL queries from 1 connection

  • default 7.66 ms (6 queries )
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"."published_languages",
       "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" = 1173
 LIMIT 21
SELECT ••• FROM "lms_tales_talesstep" WHERE "lms_tales_talesstep"."id" = 1173 LIMIT 21
1.89

Connection: default

Transaction status: Idle

/usr/local/bin/gunicorn in <module>(10)
  sys.exit(run())

/usr/local/lib/python3.12/site-packages/gunicorn/app/wsgiapp.py in run(66)
  WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]", prog=prog).run()

/usr/local/lib/python3.12/site-packages/gunicorn/app/base.py in run(235)
  super().run()

/usr/local/lib/python3.12/site-packages/gunicorn/app/base.py in run(71)
  Arbiter(self).run()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in run(201)
  self.manage_workers()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in manage_workers(570)
  self.spawn_workers()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in spawn_workers(641)
  self.spawn_worker()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in spawn_worker(608)
  worker.init_process()

/usr/local/lib/python3.12/site-packages/gunicorn/workers/base.py in init_process(143)
  self.run()

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in run(125)
  self.run_for_one(timeout)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in run_for_one(69)
  self.accept(listener)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in accept(31)
  self.handle(listener, client, addr)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in handle(134)
  self.handle_request(listener, req, client, addr)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in handle_request(177)
  respiter = self.wsgi(environ, resp.start_response)

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

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/__init__.py in sentry_patched_wsgi_handler(191)
  return middleware(environ, start_response)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/wsgi.py in __call__(131)
  response = self.app(

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/__init__.py in sentry_patched_get_response(477)
  rv = old_get_response(self, request)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

/usr/local/lib/python3.12/site-packages/cachalot/monkey_patch.py in <lambda>(85)
  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" = 1173)
SELECT ••• FROM "lms_tales_talesstepfilenew" WHERE ("lms_tales_talesstepfilenew"."language" = 'en' AND "lms_tales_talesstepfilenew"."step_id" = 1173)
1.15

Connection: default

Transaction status: Idle

/usr/local/bin/gunicorn in <module>(10)
  sys.exit(run())

/usr/local/lib/python3.12/site-packages/gunicorn/app/wsgiapp.py in run(66)
  WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]", prog=prog).run()

/usr/local/lib/python3.12/site-packages/gunicorn/app/base.py in run(235)
  super().run()

/usr/local/lib/python3.12/site-packages/gunicorn/app/base.py in run(71)
  Arbiter(self).run()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in run(201)
  self.manage_workers()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in manage_workers(570)
  self.spawn_workers()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in spawn_workers(641)
  self.spawn_worker()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in spawn_worker(608)
  worker.init_process()

/usr/local/lib/python3.12/site-packages/gunicorn/workers/base.py in init_process(143)
  self.run()

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in run(125)
  self.run_for_one(timeout)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in run_for_one(69)
  self.accept(listener)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in accept(31)
  self.handle(listener, client, addr)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in handle(134)
  self.handle_request(listener, req, client, addr)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in handle_request(177)
  respiter = self.wsgi(environ, resp.start_response)

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

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/__init__.py in sentry_patched_wsgi_handler(191)
  return middleware(environ, start_response)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/wsgi.py in __call__(131)
  response = self.app(

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/__init__.py in sentry_patched_get_response(477)
  rv = old_get_response(self, request)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

/usr/local/lib/python3.12/site-packages/cachalot/monkey_patch.py in <lambda>(85)
  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"."published_languages",
       "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" = 216 AND NOT "lms_tales_talesstep"."is_removed" AND "lms_tales_talesstep"."status" = 'published' AND "lms_tales_talesstep"."order" > 8)
 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" = 216 AND NOT "lms_tales_talesstep"."is_removed" AND "lms_tales_talesstep"."status" = 'published' AND "lms_tales_talesstep"."order" > 8) ORDER BY "lms_tales_taleschapter"."course_id" ASC, "lms_tales_taleschapter"."order" ASC, "lms_tales_talesstep"."order" ASC LIMIT 1
1.53

Connection: default

Transaction status: Idle

/usr/local/bin/gunicorn in <module>(10)
  sys.exit(run())

/usr/local/lib/python3.12/site-packages/gunicorn/app/wsgiapp.py in run(66)
  WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]", prog=prog).run()

/usr/local/lib/python3.12/site-packages/gunicorn/app/base.py in run(235)
  super().run()

/usr/local/lib/python3.12/site-packages/gunicorn/app/base.py in run(71)
  Arbiter(self).run()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in run(201)
  self.manage_workers()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in manage_workers(570)
  self.spawn_workers()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in spawn_workers(641)
  self.spawn_worker()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in spawn_worker(608)
  worker.init_process()

/usr/local/lib/python3.12/site-packages/gunicorn/workers/base.py in init_process(143)
  self.run()

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in run(125)
  self.run_for_one(timeout)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in run_for_one(69)
  self.accept(listener)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in accept(31)
  self.handle(listener, client, addr)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in handle(134)
  self.handle_request(listener, req, client, addr)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in handle_request(177)
  respiter = self.wsgi(environ, resp.start_response)

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

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/__init__.py in sentry_patched_wsgi_handler(191)
  return middleware(environ, start_response)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/wsgi.py in __call__(131)
  response = self.app(

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/__init__.py in sentry_patched_get_response(477)
  rv = old_get_response(self, request)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

/app/project/lms_base/models.py in _get_neighbour_step(213)
  step = self.__class__.next_previous_manager.get_next_previous(is_next, self, published_only=published_only)

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

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

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

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

/usr/local/lib/python3.12/site-packages/cachalot/monkey_patch.py in <lambda>(85)
  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"."published_languages",
       "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" = 216 AND NOT "lms_tales_talesstep"."is_removed" AND "lms_tales_talesstep"."status" = 'published' AND "lms_tales_talesstep"."order" < 8)
 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" = 216 AND NOT "lms_tales_talesstep"."is_removed" AND "lms_tales_talesstep"."status" = 'published' AND "lms_tales_talesstep"."order" < 8) ORDER BY "lms_tales_taleschapter"."course_id" DESC, "lms_tales_taleschapter"."order" DESC, "lms_tales_talesstep"."order" DESC LIMIT 1
1.14

Connection: default

Transaction status: Idle

/usr/local/bin/gunicorn in <module>(10)
  sys.exit(run())

/usr/local/lib/python3.12/site-packages/gunicorn/app/wsgiapp.py in run(66)
  WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]", prog=prog).run()

/usr/local/lib/python3.12/site-packages/gunicorn/app/base.py in run(235)
  super().run()

/usr/local/lib/python3.12/site-packages/gunicorn/app/base.py in run(71)
  Arbiter(self).run()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in run(201)
  self.manage_workers()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in manage_workers(570)
  self.spawn_workers()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in spawn_workers(641)
  self.spawn_worker()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in spawn_worker(608)
  worker.init_process()

/usr/local/lib/python3.12/site-packages/gunicorn/workers/base.py in init_process(143)
  self.run()

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in run(125)
  self.run_for_one(timeout)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in run_for_one(69)
  self.accept(listener)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in accept(31)
  self.handle(listener, client, addr)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in handle(134)
  self.handle_request(listener, req, client, addr)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in handle_request(177)
  respiter = self.wsgi(environ, resp.start_response)

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

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/__init__.py in sentry_patched_wsgi_handler(191)
  return middleware(environ, start_response)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/wsgi.py in __call__(131)
  response = self.app(

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/__init__.py in sentry_patched_get_response(477)
  rv = old_get_response(self, request)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

/app/project/lms_base/models.py in _get_neighbour_step(213)
  step = self.__class__.next_previous_manager.get_next_previous(is_next, self, published_only=published_only)

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

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

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

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

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

SELECT 1 AS "a"
  FROM "lms_assignment_assignment"
 WHERE ("lms_assignment_assignment"."step_id" = 1173 AND "lms_assignment_assignment"."available")
 LIMIT 1
SELECT 1 AS "a" FROM "lms_assignment_assignment" WHERE ("lms_assignment_assignment"."step_id" = 1173 AND "lms_assignment_assignment"."available") LIMIT 1
1.01

Connection: default

Transaction status: Idle

/usr/local/bin/gunicorn in <module>(10)
  sys.exit(run())

/usr/local/lib/python3.12/site-packages/gunicorn/app/wsgiapp.py in run(66)
  WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]", prog=prog).run()

/usr/local/lib/python3.12/site-packages/gunicorn/app/base.py in run(235)
  super().run()

/usr/local/lib/python3.12/site-packages/gunicorn/app/base.py in run(71)
  Arbiter(self).run()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in run(201)
  self.manage_workers()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in manage_workers(570)
  self.spawn_workers()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in spawn_workers(641)
  self.spawn_worker()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in spawn_worker(608)
  worker.init_process()

/usr/local/lib/python3.12/site-packages/gunicorn/workers/base.py in init_process(143)
  self.run()

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in run(125)
  self.run_for_one(timeout)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in run_for_one(69)
  self.accept(listener)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in accept(31)
  self.handle(listener, client, addr)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in handle(134)
  self.handle_request(listener, req, client, addr)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in handle_request(177)
  respiter = self.wsgi(environ, resp.start_response)

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

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/__init__.py in sentry_patched_wsgi_handler(191)
  return middleware(environ, start_response)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/wsgi.py in __call__(131)
  response = self.app(

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/__init__.py in sentry_patched_get_response(477)
  rv = old_get_response(self, request)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

/usr/local/lib/python3.12/site-packages/django/template/defaulttags.py in render(320)
  match = condition.eval(context)

/usr/local/lib/python3.12/site-packages/django/template/defaulttags.py in eval(886)
  return self.value.resolve(context, ignore_failures=True)

/usr/local/lib/python3.12/site-packages/django/template/base.py in resolve(722)
  obj = self.var.resolve(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in resolve(854)
  value = self._resolve_lookup(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in _resolve_lookup(925)
  current = current()

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

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

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

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

SELECT "lms_tales_talescoursefile"."id",
       "lms_tales_talescoursefile"."created",
       "lms_tales_talescoursefile"."modified",
       "lms_tales_talescoursefile"."title",
       "lms_tales_talescoursefile"."course_id",
       "lms_tales_talescoursefile"."file"
  FROM "lms_tales_talescoursefile"
 WHERE "lms_tales_talescoursefile"."id" = 538
 LIMIT 21
SELECT ••• FROM "lms_tales_talescoursefile" WHERE "lms_tales_talescoursefile"."id" = 538 LIMIT 21
0.94

Connection: default

Transaction status: Idle

/usr/local/bin/gunicorn in <module>(10)
  sys.exit(run())

/usr/local/lib/python3.12/site-packages/gunicorn/app/wsgiapp.py in run(66)
  WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]", prog=prog).run()

/usr/local/lib/python3.12/site-packages/gunicorn/app/base.py in run(235)
  super().run()

/usr/local/lib/python3.12/site-packages/gunicorn/app/base.py in run(71)
  Arbiter(self).run()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in run(201)
  self.manage_workers()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in manage_workers(570)
  self.spawn_workers()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in spawn_workers(641)
  self.spawn_worker()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in spawn_worker(608)
  worker.init_process()

/usr/local/lib/python3.12/site-packages/gunicorn/workers/base.py in init_process(143)
  self.run()

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in run(125)
  self.run_for_one(timeout)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in run_for_one(69)
  self.accept(listener)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in accept(31)
  self.handle(listener, client, addr)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in handle(134)
  self.handle_request(listener, req, client, addr)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in handle_request(177)
  respiter = self.wsgi(environ, resp.start_response)

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

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/__init__.py in sentry_patched_wsgi_handler(191)
  return middleware(environ, start_response)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/wsgi.py in __call__(131)
  response = self.app(

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/__init__.py in sentry_patched_get_response(477)
  rv = old_get_response(self, request)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

/usr/local/lib/python3.12/site-packages/django/template/defaulttags.py in render(243)
  nodelist.append(node.render_annotated(context))

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

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1075)
  output = self.filter_expression.resolve(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in resolve(722)
  obj = self.var.resolve(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in resolve(854)
  value = self._resolve_lookup(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in _resolve_lookup(901)
  current = getattr(current, bit)

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

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

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

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

Static files (276 found, 7 used)

Static file path

  1. /app/project/static

Static file apps

  1. modeltranslation
  2. django.contrib.admin
  3. allauth.account
  4. django_extensions
  5. markdownx
  6. django_htmx
  7. rosetta
  8. notifications
  9. lms_base
  10. lms_tales
  11. reporting
  12. 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_main.css
/app/project/lms_base/static/lms_base/css/lms_base_main.css
lms_tales/css/lms_tales.css
None
lms_base/js/lms_base.js
/app/project/lms_base/static/lms_base/js/lms_base.js
lms_tales/js/lms_tales.js
/app/project/lms_tales/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 (98 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
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
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 (178 files)

Path Location
modeltranslation/css/tabbed_translation_fields.css /usr/local/lib/python3.12/site-packages/modeltranslation/static/modeltranslation/css/tabbed_translation_fields.css
modeltranslation/js/clearable_inputs.js /usr/local/lib/python3.12/site-packages/modeltranslation/static/modeltranslation/js/clearable_inputs.js
modeltranslation/js/tabbed_translation_fields.js /usr/local/lib/python3.12/site-packages/modeltranslation/static/modeltranslation/js/tabbed_translation_fields.js
modeltranslation/js/force_jquery.js /usr/local/lib/python3.12/site-packages/modeltranslation/static/modeltranslation/js/force_jquery.js
admin/css/autocomplete.css /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/css/autocomplete.css
admin/css/responsive.css /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/css/responsive.css
admin/css/widgets.css /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/css/widgets.css
admin/css/changelists.css /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/css/changelists.css
admin/css/unusable_password_field.css /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/css/unusable_password_field.css
admin/css/dark_mode.css /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/css/dark_mode.css
admin/css/responsive_rtl.css /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/css/responsive_rtl.css
admin/css/nav_sidebar.css /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/css/nav_sidebar.css
admin/css/dashboard.css /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/css/dashboard.css
admin/css/forms.css /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/css/forms.css
admin/css/rtl.css /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/css/rtl.css
admin/css/login.css /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/css/login.css
admin/css/base.css /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/css/base.css
admin/css/vendor/select2/select2.min.css /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/css/vendor/select2/select2.min.css
admin/css/vendor/select2/select2.css /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/css/vendor/select2/select2.css
admin/css/vendor/select2/LICENSE-SELECT2.md /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/css/vendor/select2/LICENSE-SELECT2.md
admin/img/icon-clock.svg /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/icon-clock.svg
admin/img/sorting-icons.svg /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/sorting-icons.svg
admin/img/icon-alert.svg /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/icon-alert.svg
admin/img/icon-changelink.svg /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/icon-changelink.svg
admin/img/selector-icons.svg /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/selector-icons.svg
admin/img/calendar-icons.svg /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/calendar-icons.svg
admin/img/tooltag-arrowright.svg /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/tooltag-arrowright.svg
admin/img/inline-delete.svg /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/inline-delete.svg
admin/img/icon-yes.svg /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/icon-yes.svg
admin/img/icon-unknown-alt.svg /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/icon-unknown-alt.svg
admin/img/icon-viewlink.svg /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/icon-viewlink.svg
admin/img/search.svg /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/search.svg
admin/img/icon-deletelink.svg /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/icon-deletelink.svg
admin/img/icon-hidelink.svg /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/icon-hidelink.svg
admin/img/README.txt /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/README.txt
admin/img/LICENSE /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/LICENSE
admin/img/icon-calendar.svg /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/icon-calendar.svg
admin/img/tooltag-add.svg /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/tooltag-add.svg
admin/img/icon-unknown.svg /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/icon-unknown.svg
admin/img/icon-addlink.svg /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/icon-addlink.svg
admin/img/icon-no.svg /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/icon-no.svg
admin/img/gis/move_vertex_off.svg /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/gis/move_vertex_off.svg
admin/img/gis/move_vertex_on.svg /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/img/gis/move_vertex_on.svg
admin/js/SelectBox.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/SelectBox.js
admin/js/jquery.init.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/jquery.init.js
admin/js/inlines.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/inlines.js
admin/js/filters.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/filters.js
admin/js/unusable_password_field.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/unusable_password_field.js
admin/js/change_form.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/change_form.js
admin/js/autocomplete.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/autocomplete.js
admin/js/nav_sidebar.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/nav_sidebar.js
admin/js/popup_response.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/popup_response.js
admin/js/SelectFilter2.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/SelectFilter2.js
admin/js/actions.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/actions.js
admin/js/core.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/core.js
admin/js/cancel.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/cancel.js
admin/js/prepopulate.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/prepopulate.js
admin/js/urlify.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/urlify.js
admin/js/calendar.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/calendar.js
admin/js/prepopulate_init.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/prepopulate_init.js
admin/js/theme.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/theme.js
admin/js/admin/DateTimeShortcuts.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/admin/DateTimeShortcuts.js
admin/js/admin/RelatedObjectLookups.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/admin/RelatedObjectLookups.js
admin/js/vendor/select2/select2.full.js /usr/local/lib/python3.12/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.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/select2.full.min.js
admin/js/vendor/select2/LICENSE.md /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/LICENSE.md
admin/js/vendor/select2/i18n/zh-CN.js /usr/local/lib/python3.12/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.12/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.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/uk.js
admin/js/vendor/select2/i18n/ar.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/ar.js
admin/js/vendor/select2/i18n/ka.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/ka.js
admin/js/vendor/select2/i18n/bn.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/bn.js
admin/js/vendor/select2/i18n/pt.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/pt.js
admin/js/vendor/select2/i18n/hi.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/hi.js
admin/js/vendor/select2/i18n/dsb.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/dsb.js
admin/js/vendor/select2/i18n/bs.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/bs.js
admin/js/vendor/select2/i18n/ru.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/ru.js
admin/js/vendor/select2/i18n/ms.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/ms.js
admin/js/vendor/select2/i18n/et.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/et.js
admin/js/vendor/select2/i18n/sl.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/sl.js
admin/js/vendor/select2/i18n/he.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/he.js
admin/js/vendor/select2/i18n/is.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/is.js
admin/js/vendor/select2/i18n/cs.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/cs.js
admin/js/vendor/select2/i18n/sq.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/sq.js
admin/js/vendor/select2/i18n/sv.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/sv.js
admin/js/vendor/select2/i18n/ne.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/ne.js
admin/js/vendor/select2/i18n/ko.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/ko.js
admin/js/vendor/select2/i18n/vi.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/vi.js
admin/js/vendor/select2/i18n/ca.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/ca.js
admin/js/vendor/select2/i18n/id.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/id.js
admin/js/vendor/select2/i18n/nb.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/nb.js
admin/js/vendor/select2/i18n/hr.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/hr.js
admin/js/vendor/select2/i18n/af.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/af.js
admin/js/vendor/select2/i18n/de.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/de.js
admin/js/vendor/select2/i18n/mk.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/mk.js
admin/js/vendor/select2/i18n/hy.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/hy.js
admin/js/vendor/select2/i18n/it.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/it.js
admin/js/vendor/select2/i18n/hu.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/hu.js
admin/js/vendor/select2/i18n/ja.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/ja.js
admin/js/vendor/select2/i18n/sk.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/sk.js
admin/js/vendor/select2/i18n/hsb.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/hsb.js
admin/js/vendor/select2/i18n/ro.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/ro.js
admin/js/vendor/select2/i18n/en.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/en.js
admin/js/vendor/select2/i18n/el.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/el.js
admin/js/vendor/select2/i18n/fa.js /usr/local/lib/python3.12/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.12/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.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/da.js
admin/js/vendor/select2/i18n/sr.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/sr.js
admin/js/vendor/select2/i18n/ps.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/ps.js
admin/js/vendor/select2/i18n/lt.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/lt.js
admin/js/vendor/select2/i18n/az.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/az.js
admin/js/vendor/select2/i18n/fr.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/fr.js
admin/js/vendor/select2/i18n/fi.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/fi.js
admin/js/vendor/select2/i18n/tk.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/tk.js
admin/js/vendor/select2/i18n/th.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/th.js
admin/js/vendor/select2/i18n/gl.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/gl.js
admin/js/vendor/select2/i18n/eu.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/eu.js
admin/js/vendor/select2/i18n/es.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/es.js
admin/js/vendor/select2/i18n/km.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/km.js
admin/js/vendor/select2/i18n/bg.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/bg.js
admin/js/vendor/select2/i18n/lv.js /usr/local/lib/python3.12/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.12/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.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/pl.js
admin/js/vendor/select2/i18n/tr.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/tr.js
admin/js/vendor/select2/i18n/nl.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/nl.js
admin/js/vendor/xregexp/xregexp.min.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/xregexp/xregexp.min.js
admin/js/vendor/xregexp/LICENSE.txt /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/xregexp/LICENSE.txt
admin/js/vendor/xregexp/xregexp.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/xregexp/xregexp.js
admin/js/vendor/jquery/jquery.min.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/jquery/jquery.min.js
admin/js/vendor/jquery/jquery.js /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/jquery/jquery.js
admin/js/vendor/jquery/LICENSE.txt /usr/local/lib/python3.12/site-packages/django/contrib/admin/static/admin/js/vendor/jquery/LICENSE.txt
account/js/account.js /usr/local/lib/python3.12/site-packages/allauth/account/static/account/js/account.js
account/js/onload.js /usr/local/lib/python3.12/site-packages/allauth/account/static/account/js/onload.js
django_extensions/css/jquery.autocomplete.css /usr/local/lib/python3.12/site-packages/django_extensions/static/django_extensions/css/jquery.autocomplete.css
django_extensions/img/indicator.gif /usr/local/lib/python3.12/site-packages/django_extensions/static/django_extensions/img/indicator.gif
django_extensions/js/jquery.ajaxQueue.js /usr/local/lib/python3.12/site-packages/django_extensions/static/django_extensions/js/jquery.ajaxQueue.js
django_extensions/js/jquery.autocomplete.js /usr/local/lib/python3.12/site-packages/django_extensions/static/django_extensions/js/jquery.autocomplete.js
django_extensions/js/jquery.bgiframe.js /usr/local/lib/python3.12/site-packages/django_extensions/static/django_extensions/js/jquery.bgiframe.js
markdownx/admin/css/markdownx.css /usr/local/lib/python3.12/site-packages/markdownx/static/markdownx/admin/css/markdownx.css
markdownx/admin/css/markdownx.min.css /usr/local/lib/python3.12/site-packages/markdownx/static/markdownx/admin/css/markdownx.min.css
markdownx/js/markdownx.min.js /usr/local/lib/python3.12/site-packages/markdownx/static/markdownx/js/markdownx.min.js
markdownx/js/markdownx.js /usr/local/lib/python3.12/site-packages/markdownx/static/markdownx/js/markdownx.js
django_htmx/htmx.min.js /usr/local/lib/python3.12/site-packages/django_htmx/static/django_htmx/htmx.min.js
django_htmx/htmx.js /usr/local/lib/python3.12/site-packages/django_htmx/static/django_htmx/htmx.js
django_htmx/django-htmx.js /usr/local/lib/python3.12/site-packages/django_htmx/static/django_htmx/django-htmx.js
admin/rosetta/css/rosetta.css /usr/local/lib/python3.12/site-packages/rosetta/static/admin/rosetta/css/rosetta.css
admin/rosetta/js/rosetta.js /usr/local/lib/python3.12/site-packages/rosetta/static/admin/rosetta/js/rosetta.js
admin/img/icon_searchbox_rosetta.png /usr/local/lib/python3.12/site-packages/rosetta/static/admin/img/icon_searchbox_rosetta.png
notifications/notify.js /usr/local/lib/python3.12/site-packages/notifications/static/notifications/notify.js
lms_base/fonts/Inter-VariableFont_opsz,wght.ttf /app/project/lms_base/static/lms_base/fonts/Inter-VariableFont_opsz,wght.ttf
lms_base/fonts/PTSerif-BoldItalic.ttf /app/project/lms_base/static/lms_base/fonts/PTSerif-BoldItalic.ttf
lms_base/fonts/PTSerif-Regular.ttf /app/project/lms_base/static/lms_base/fonts/PTSerif-Regular.ttf
lms_base/fonts/Inter-Italic-VariableFont_opsz,wght.ttf /app/project/lms_base/static/lms_base/fonts/Inter-Italic-VariableFont_opsz,wght.ttf
lms_base/fonts/PTSerif-Italic.ttf /app/project/lms_base/static/lms_base/fonts/PTSerif-Italic.ttf
lms_base/fonts/PTSerif-Bold.ttf /app/project/lms_base/static/lms_base/fonts/PTSerif-Bold.ttf
lms_base/css/lms_base_main.css /app/project/lms_base/static/lms_base/css/lms_base_main.css
lms_base/css/_codehilite_dark.css /app/project/lms_base/static/lms_base/css/_codehilite_dark.css
lms_base/css/_lms_base_variables.css /app/project/lms_base/static/lms_base/css/_lms_base_variables.css
lms_base/css/_lms_base.css /app/project/lms_base/static/lms_base/css/_lms_base.css
lms_base/css/_codehilite.css /app/project/lms_base/static/lms_base/css/_codehilite.css
lms_base/css/_codehilite_light.css /app/project/lms_base/static/lms_base/css/_codehilite_light.css
lms_base/css/fonts.css /app/project/lms_base/static/lms_base/css/fonts.css
lms_base/css/_lms_tales.css /app/project/lms_base/static/lms_base/css/_lms_tales.css
lms_base/css/_search.css /app/project/lms_base/static/lms_base/css/_search.css
lms_base/js/lms_base.js /app/project/lms_base/static/lms_base/js/lms_base.js
browserconfig.xml /app/project/lms_tales/static/browserconfig.xml
lms_tales/js/lms_tales.js /app/project/lms_tales/static/lms_tales/js/lms_tales.js
reporting/bar-chart.png /app/project/reporting/static/reporting/bar-chart.png
reporting/js/runtime.js /app/project/reporting/static/reporting/js/runtime.js
reporting/js/index.js /app/project/reporting/static/reporting/js/index.js
reporting/js/views_summary.js /app/project/reporting/static/reporting/js/views_summary.js
debug_toolbar/css/toolbar.css /usr/local/lib/python3.12/site-packages/debug_toolbar/static/debug_toolbar/css/toolbar.css
debug_toolbar/css/print.css /usr/local/lib/python3.12/site-packages/debug_toolbar/static/debug_toolbar/css/print.css
debug_toolbar/js/utils.js /usr/local/lib/python3.12/site-packages/debug_toolbar/static/debug_toolbar/js/utils.js
debug_toolbar/js/toolbar.js /usr/local/lib/python3.12/site-packages/debug_toolbar/static/debug_toolbar/js/toolbar.js
debug_toolbar/js/history.js /usr/local/lib/python3.12/site-packages/debug_toolbar/static/debug_toolbar/js/history.js
debug_toolbar/js/timer.js /usr/local/lib/python3.12/site-packages/debug_toolbar/static/debug_toolbar/js/timer.js
debug_toolbar/js/redirect.js /usr/local/lib/python3.12/site-packages/debug_toolbar/static/debug_toolbar/js/redirect.js

Templates (6 rendered)

Template paths

  1. /app/project/templates
  2. /usr/local/lib/python3.12/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': 'c401eb2c', 'CI_COMMIT_TAG': '2.6.23', '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: ' "'zV4Ula2YYIEVwbpFL2C8f18Wy5GUrLW0wLucecuWioiQZN8lwBOG7VhwuRiiaUrm'>", 'messages': <FallbackStorage: request=<WSGIRequest: GET '/en/examining-african-contributions-to-global-health-40/south-south-knowledge-circulation-216/chinese-medicine-in-tanzania-1173'>>, 'perms': PermWrapper(<SimpleLazyObject: <SimpleLazyObject: <django.contrib.auth.models.AnonymousUser object at 0x7882ef58b4d0>>>), 'request': '<<request>>', 'user': '<SimpleLazyObject: <SimpleLazyObject: ' '<django.contrib.auth.models.AnonymousUser object at ' '0x7882ef58b4d0>>>'} {'active_courseruns': [], 'active_courserunsteps': [], 'active_language_available': True, 'available_assignments': '<<queryset of lms_assignment.Assignment>>', 'available_languages': [('en', 'English')], 'course': <TalesCourse: Examining African Contributions to Global Health>, 'course_contact': '', 'files': '<<queryset of lms_tales.TalesStepFileNew>>', 'is_editor': False, 'object': <TalesStep: Chinese medicine in Tanzania>, 'talesstep': <TalesStep: Chinese medicine in Tanzania>, 'view': <lms_tales.views.step_views.StepDetails object at 0x7882ef4d1be0>}
lms_tales_base.html
/app/project/templates/lms_tales_base.html
Toggle context {'False': False, 'None': None, 'True': True} {'CI_COMMIT_SHORT_SHA': 'c401eb2c', 'CI_COMMIT_TAG': '2.6.23', '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: ' "'zV4Ula2YYIEVwbpFL2C8f18Wy5GUrLW0wLucecuWioiQZN8lwBOG7VhwuRiiaUrm'>", 'messages': <FallbackStorage: request=<WSGIRequest: GET '/en/examining-african-contributions-to-global-health-40/south-south-knowledge-circulation-216/chinese-medicine-in-tanzania-1173'>>, 'perms': PermWrapper(<SimpleLazyObject: <SimpleLazyObject: <django.contrib.auth.models.AnonymousUser object at 0x7882ef58b4d0>>>), 'request': '<<request>>', 'user': '<SimpleLazyObject: <SimpleLazyObject: ' '<django.contrib.auth.models.AnonymousUser object at ' '0x7882ef58b4d0>>>'} {'active_courseruns': [], 'active_courserunsteps': [], 'active_language_available': True, 'available_assignments': '<<queryset of lms_assignment.Assignment>>', 'available_languages': [('en', 'English')], 'course': <TalesCourse: Examining African Contributions to Global Health>, 'course_contact': '', 'files': '<<queryset of lms_tales.TalesStepFileNew>>', 'is_editor': False, 'object': <TalesStep: Chinese medicine in Tanzania>, 'talesstep': <TalesStep: Chinese medicine in Tanzania>, 'view': <lms_tales.views.step_views.StepDetails object at 0x7882ef4d1be0>}
base.html
/app/project/templates/base.html
Toggle context {'False': False, 'None': None, 'True': True} {'CI_COMMIT_SHORT_SHA': 'c401eb2c', 'CI_COMMIT_TAG': '2.6.23', '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: ' "'zV4Ula2YYIEVwbpFL2C8f18Wy5GUrLW0wLucecuWioiQZN8lwBOG7VhwuRiiaUrm'>", 'messages': <FallbackStorage: request=<WSGIRequest: GET '/en/examining-african-contributions-to-global-health-40/south-south-knowledge-circulation-216/chinese-medicine-in-tanzania-1173'>>, 'perms': PermWrapper(<SimpleLazyObject: <SimpleLazyObject: <django.contrib.auth.models.AnonymousUser object at 0x7882ef58b4d0>>>), 'request': '<<request>>', 'user': '<SimpleLazyObject: <SimpleLazyObject: ' '<django.contrib.auth.models.AnonymousUser object at ' '0x7882ef58b4d0>>>'} {'active_courseruns': [], 'active_courserunsteps': [], 'active_language_available': True, 'available_assignments': '<<queryset of lms_assignment.Assignment>>', 'available_languages': [('en', 'English')], 'course': <TalesCourse: Examining African Contributions to Global Health>, 'course_contact': '', 'files': '<<queryset of lms_tales.TalesStepFileNew>>', 'is_editor': False, 'object': <TalesStep: Chinese medicine in Tanzania>, 'talesstep': <TalesStep: Chinese medicine in Tanzania>, 'view': <lms_tales.views.step_views.StepDetails object at 0x7882ef4d1be0>}
components/header.html
/app/project/templates/components/header.html
Toggle context {'False': False, 'None': None, 'True': True} {'CI_COMMIT_SHORT_SHA': 'c401eb2c', 'CI_COMMIT_TAG': '2.6.23', '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: ' "'zV4Ula2YYIEVwbpFL2C8f18Wy5GUrLW0wLucecuWioiQZN8lwBOG7VhwuRiiaUrm'>", 'messages': <FallbackStorage: request=<WSGIRequest: GET '/en/examining-african-contributions-to-global-health-40/south-south-knowledge-circulation-216/chinese-medicine-in-tanzania-1173'>>, 'perms': PermWrapper(<SimpleLazyObject: <SimpleLazyObject: <django.contrib.auth.models.AnonymousUser object at 0x7882ef58b4d0>>>), 'request': '<<request>>', 'user': '<SimpleLazyObject: <SimpleLazyObject: ' '<django.contrib.auth.models.AnonymousUser object at ' '0x7882ef58b4d0>>>'} {'active_courseruns': [], 'active_courserunsteps': [], 'active_language_available': True, 'available_assignments': '<<queryset of lms_assignment.Assignment>>', 'available_languages': [('en', 'English')], 'course': <TalesCourse: Examining African Contributions to Global Health>, 'course_contact': '', 'files': '<<queryset of lms_tales.TalesStepFileNew>>', 'is_editor': False, 'object': <TalesStep: Chinese medicine in Tanzania>, 'talesstep': <TalesStep: Chinese medicine in Tanzania>, 'view': <lms_tales.views.step_views.StepDetails object at 0x7882ef4d1be0>} {'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': 'c401eb2c', 'CI_COMMIT_TAG': '2.6.23', '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: ' "'zV4Ula2YYIEVwbpFL2C8f18Wy5GUrLW0wLucecuWioiQZN8lwBOG7VhwuRiiaUrm'>", 'messages': <FallbackStorage: request=<WSGIRequest: GET '/en/examining-african-contributions-to-global-health-40/south-south-knowledge-circulation-216/chinese-medicine-in-tanzania-1173'>>, 'perms': PermWrapper(<SimpleLazyObject: <SimpleLazyObject: <django.contrib.auth.models.AnonymousUser object at 0x7882ef58b4d0>>>), 'request': '<<request>>', 'user': '<SimpleLazyObject: <SimpleLazyObject: ' '<django.contrib.auth.models.AnonymousUser object at ' '0x7882ef58b4d0>>>'} {'active_courseruns': [], 'active_courserunsteps': [], 'active_language_available': True, 'available_assignments': '<<queryset of lms_assignment.Assignment>>', 'available_languages': [('en', 'English')], 'course': <TalesCourse: Examining African Contributions to Global Health>, 'course_contact': '', 'files': '<<queryset of lms_tales.TalesStepFileNew>>', 'is_editor': False, 'object': <TalesStep: Chinese medicine in Tanzania>, 'talesstep': <TalesStep: Chinese medicine in Tanzania>, 'view': <lms_tales.views.step_views.StepDetails object at 0x7882ef4d1be0>} {'block': <Block Node: sidebar-nav. Contents: [<TextNode: '\n <nav id="sid'>, <django.template.library.SimpleNode object at 0x7882edd66d50>, <TextNode: '>\n '>, <django.templatetags.i18n.TranslateNode object at 0x7882edd66e10>, <TextNode: '</span>\n '>, <IfNode>, <TextNode: '\n '>, <django.template.library.SimpleNode object at 0x7882edd4f410>, <TextNode: '>\n '>, <django.templatetags.i18n.TranslateNode object at 0x7882edd4f380>, <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': 'c401eb2c', 'CI_COMMIT_TAG': '2.6.23', '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: ' "'zV4Ula2YYIEVwbpFL2C8f18Wy5GUrLW0wLucecuWioiQZN8lwBOG7VhwuRiiaUrm'>", 'messages': <FallbackStorage: request=<WSGIRequest: GET '/en/examining-african-contributions-to-global-health-40/south-south-knowledge-circulation-216/chinese-medicine-in-tanzania-1173'>>, 'perms': PermWrapper(<SimpleLazyObject: <SimpleLazyObject: <django.contrib.auth.models.AnonymousUser object at 0x7882ef58b4d0>>>), 'request': '<<request>>', 'user': '<SimpleLazyObject: <SimpleLazyObject: ' '<django.contrib.auth.models.AnonymousUser object at ' '0x7882ef58b4d0>>>'} {'active_courseruns': [], 'active_courserunsteps': [], 'active_language_available': True, 'available_assignments': '<<queryset of lms_assignment.Assignment>>', 'available_languages': [('en', 'English')], 'course': <TalesCourse: Examining African Contributions to Global Health>, 'course_contact': '', 'files': '<<queryset of lms_tales.TalesStepFileNew>>', 'is_editor': False, 'object': <TalesStep: Chinese medicine in Tanzania>, 'talesstep': <TalesStep: Chinese medicine in Tanzania>, 'view': <lms_tales.views.step_views.StepDetails object at 0x7882ef4d1be0>} {'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 0x7882edd677d0>, <TextNode: '\n '>, <django.templatetags.i18n.TranslateNode object at 0x7882edd4f770>, <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: 'zV4Ula2YYIEVwbpFL2C8f18Wy5GUrLW0wLucecuWioiQZN8lwBOG7VhwuRiiaUrm'>}
django.template.context_processors.debug
Toggle context {}
django.template.context_processors.request
Toggle context {'request': <WSGIRequest: GET '/en/examining-african-contributions-to-global-health-40/south-south-knowledge-circulation-216/chinese-medicine-in-tanzania-1173'>}
django.contrib.auth.context_processors.auth
Toggle context {'user': <SimpleLazyObject: <SimpleLazyObject: <django.contrib.auth.models.AnonymousUser object at 0x7882ef58b4d0>>>, 'perms': PermWrapper(<SimpleLazyObject: <SimpleLazyObject: <django.contrib.auth.models.AnonymousUser object at 0x7882ef58b4d0>>>)}
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=<WSGIRequest: GET '/en/examining-african-contributions-to-global-health-40/south-south-knowledge-circulation-216/chinese-medicine-in-tanzania-1173'>>, 'DEFAULT_MESSAGE_LEVELS': {'DEBUG': 10, 'INFO': 20, 'SUCCESS': 25, 'WARNING': 30, 'ERROR': 40}}
utils.context_processors.ci_info
Toggle context {'CI_COMMIT_TAG': '2.6.23', 'CI_COMMIT_SHORT_SHA': 'c401eb2c', 'RELEASE_NAME': '', 'DEPLOY_ENV': 'staging'}

Cache calls from 1 backend

Summary

Total calls Total time Cache hits Cache misses
45 21.87385398428887 ms 166 2

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 4 1 0 0 0 0 34 6 0 0 0 0 0 0

Calls

Time (ms) Type Arguments Keyword arguments Backend
0.7775 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', 'f6e1a4d48790db63f8cb8c5653192a74ca00d34a', 'e19dd8b0e8a705c5914b55bbeb94d01f20e5368e', '138549f5508bbba7283d6a0625e51c589d845e8f', '4f1f0b4dfbd30463b5587753e6f3e6ca21ddbf60', 'd890e5bc0b77c02793036efa76f50a25770a52a7', 'd00779073776b2287204a6fa5336494275fc73d5', '76e323efd8711853e13c9f7cf976845908364eb2', 'e3a5db5a670ad803efb866441f33de58309be2e2', '312c357d2eed306581bb334378808fbccf7019ea', 'd144abeb0db81d5dfea390a27c6d616aa1783141', 'a78875b90f65061214a7b7eaa1a66176310060a1', 'd1accdb7a5e2af4fd7d0fc7e34b048f555cd65a0', '0b7593abe25ebbf222c98d71b199a17877e17478', 'da8bff0e0d25742e869a69b7508c37ccde5f8f33', '0098dff618e4e4ce8b226fb3dcd5d9042e69eb75', '8e3f73e6feaebee5ffbc4479f566917f08b4bbca', '5c50c6b3292213266ec6601a46b9ff857efec10a', '9ba11033f2e0b0478fa7ea0cfcde90c7ea880b1b', '810de96c2cc412e55eb18a19206c9b4f4879ec68', 'da75293c9ac4e9ae833da9fecd1ab668d629ce49', 'e4392949c2513e35c4d436a230e913efc13e4556', '9a3409722cd89bb29bc78c6bd4bca2cc2aad3e96', '5bd1ef7c64b457cbb725c42d97969db3ebe85f66', 'f3d241856fbbba355385868203e06010b65b882e', '1511f7c2f0ac6c43b58dfa27858c3d8561280f80', 'e2a6b84fc2a64f0ca59dd6e95fe6e1a5f3850ad5', 'b72f66480a030f14a954ea7eeb482d64fa1da084', '9e3a2b98ae55fa975425fa81a4e6e13342147b8a', '0e90ed3afbea5b3254d013a2b352642aaa2ce984', '2b2eb1f58e7ba0ac1ae04f9e9c95bde41f64e3fc', 'f38ac9d1db097d95b5062273e0a941d2da616361', 'cf84cec99a10af4507238b31bfce2171063a0c1d', 'c9b253ceb06244b30c24377ae68ae44353b4b3c4', '946a725506b18b4afe14d273540101238984908d', '53be6fda1fd748ebf22448f6a7198ac840f72333', 'd34b8ed7c3bb0d3a712a5e42065744014bfe1542', '79e961accf5948510a59b713e9ce3e05149ecb9a', '278c8c5d27e7320e3af5c0e58455e4cde02b8a72', '6fba3302f986e5123578c49cb4b67a30260902ef', '2cba4b775af45bd99b4d40c0eeea58bc34f649af', 'c3887a52bdae91615f95386118c2933047f56eda', 'a8659af44b2a1917aa38ef15409b212aaf5fec76']),) {} <django_redis.cache.RedisCache object at 0x78830fe11400>
/usr/local/bin/gunicorn in <module>(10)
  sys.exit(run())

/usr/local/lib/python3.12/site-packages/gunicorn/app/wsgiapp.py in run(66)
  WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]", prog=prog).run()

/usr/local/lib/python3.12/site-packages/gunicorn/app/base.py in run(235)
  super().run()

/usr/local/lib/python3.12/site-packages/gunicorn/app/base.py in run(71)
  Arbiter(self).run()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in run(201)
  self.manage_workers()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in manage_workers(570)
  self.spawn_workers()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in spawn_workers(641)
  self.spawn_worker()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in spawn_worker(608)
  worker.init_process()

/usr/local/lib/python3.12/site-packages/gunicorn/workers/base.py in init_process(143)
  self.run()

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in run(125)
  self.run_for_one(timeout)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in run_for_one(69)
  self.accept(listener)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in accept(31)
  self.handle(listener, client, addr)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in handle(134)
  self.handle_request(listener, req, client, addr)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in handle_request(177)
  respiter = self.wsgi(environ, resp.start_response)

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

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/__init__.py in sentry_patched_wsgi_handler(191)
  return middleware(environ, start_response)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/wsgi.py in __call__(131)
  response = self.app(

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/__init__.py in sentry_patched_get_response(477)
  rv = old_get_response(self, request)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

0.4646 get ('view_cache_view_/en/examining-african-contributions-to-global-health-40/south-south-knowledge-circulation-216/chinese-medicine-in-tanzania-1173_anonymous', None) {} <django_redis.cache.RedisCache object at 0x78830fe11400>
/usr/local/bin/gunicorn in <module>(10)
  sys.exit(run())

/usr/local/lib/python3.12/site-packages/gunicorn/app/wsgiapp.py in run(66)
  WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]", prog=prog).run()

/usr/local/lib/python3.12/site-packages/gunicorn/app/base.py in run(235)
  super().run()

/usr/local/lib/python3.12/site-packages/gunicorn/app/base.py in run(71)
  Arbiter(self).run()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in run(201)
  self.manage_workers()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in manage_workers(570)
  self.spawn_workers()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in spawn_workers(641)
  self.spawn_worker()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in spawn_worker(608)
  worker.init_process()

/usr/local/lib/python3.12/site-packages/gunicorn/workers/base.py in init_process(143)
  self.run()

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in run(125)
  self.run_for_one(timeout)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in run_for_one(69)
  self.accept(listener)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in accept(31)
  self.handle(listener, client, addr)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in handle(134)
  self.handle_request(listener, req, client, addr)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in handle_request(177)
  respiter = self.wsgi(environ, resp.start_response)

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

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/__init__.py in sentry_patched_wsgi_handler(191)
  return middleware(environ, start_response)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/wsgi.py in __call__(131)
  response = self.app(

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/__init__.py in sentry_patched_get_response(477)
  rv = old_get_response(self, request)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

0.4531 get_many (['138549f5508bbba7283d6a0625e51c589d845e8f', 'e530396ac98fa19be995e6192a384bba6059a541'],) {} <django_redis.cache.RedisCache object at 0x78830fe11400>
/usr/local/bin/gunicorn in <module>(10)
  sys.exit(run())

/usr/local/lib/python3.12/site-packages/gunicorn/app/wsgiapp.py in run(66)
  WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]", prog=prog).run()

/usr/local/lib/python3.12/site-packages/gunicorn/app/base.py in run(235)
  super().run()

/usr/local/lib/python3.12/site-packages/gunicorn/app/base.py in run(71)
  Arbiter(self).run()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in run(201)
  self.manage_workers()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in manage_workers(570)
  self.spawn_workers()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in spawn_workers(641)
  self.spawn_worker()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in spawn_worker(608)
  worker.init_process()

/usr/local/lib/python3.12/site-packages/gunicorn/workers/base.py in init_process(143)
  self.run()

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in run(125)
  self.run_for_one(timeout)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in run_for_one(69)
  self.accept(listener)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in accept(31)
  self.handle(listener, client, addr)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in handle(134)
  self.handle_request(listener, req, client, addr)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in handle_request(177)
  respiter = self.wsgi(environ, resp.start_response)

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

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/__init__.py in sentry_patched_wsgi_handler(191)
  return middleware(environ, start_response)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/wsgi.py in __call__(131)
  response = self.app(

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/__init__.py in sentry_patched_get_response(477)
  rv = old_get_response(self, request)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

0.6581 set_many ({'e530396ac98fa19be995e6192a384bba6059a541': (1765842516.0723352, [[(1173, datetime.datetime(2022, 4, 7, 8, 54, 19, 318588, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 1, 30, 14, 29, 0, 237919, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 1, 30, 14, 29, 0, 188493, tzinfo=datetime.timezone.utc), False, '[]', 'Chinese medicine in Tanzania', None, 'Chinese medicine in Tanzania', None, '', None, None, None, 'Watch Tanja Hammel interview Andrea Kifyasi about Chinese medical assistance to post-colonial Tanzania from 1960 to 2010.', None, 'Watch Tanja Hammel interview Andrea Kifyasi about Chinese medical assistance to post-colonial Tanzania from 1960 to 2010.', None, '', 'chinese-medicine-in-tanzania', 'In this video, Tanja Hammel interviews Andrea Kifyasi, lecturer at the University of Dar es Salaam, about his PhD thesis on Chinese medical assistance to post-colonial Tanzania.\r\n{.lead}\r\n\r\n![embed](https://vimeo.com/585735755/03fff47ccc)\r\n\r\nHistorian Andrea Kifyasi provides insights into the post-colonial diplomatic history of Sino-African relations, especially in the field of medical diplomacy. He sheds light on why South-South knowledge exchange and Chinese-Tanzanian collaborations have not attracted more scholarly attention so far. \r\n\r\nHis focus lies on Sino-African relations, and he gives examples of thriving research in this field. We can better understand Tanzanian history and its relations with China by learning more about his research. His research goes beyond “Theory from the South”.\r\n\r\n<br>\r\n\r\nReferences\r\n{.footnote-title}\r\n\r\nBlunden M. South-South Cooperation: Cuba’s Health Programmes in Africa. International Journal of Cuban Studies. 2008; 1 (1): 32–41.\r\n{.citation-indented}\r\n\r\nFeinsilver J M. Cuba’s Medical Diplomacy. A Changing Cuba in a Changing World (M A Font, ed). 273–286. New York: City University of New York; 2009.\r\n{.citation-indented}\r\n\r\nFeinsilver J M. Fifty Years of Cuba’s Medical Diplomacy: From Idealism to Pragmatism. Cuban Studies. 2010; 41: 85-104.\r\n{.citation-indented}\r\n\r\nKifyasi A A. Neither “Saviour” nor “Exploiter”: A Historical Study of China’s Medical Assistance in Post-Colonial Tanzania. PhD Dissertation [Internet]. 2021 [cited 1 December 2021]. Available from: [https://edoc.unibas.ch/83588/1/Andrea A Kifyasi_Dissertation_ edoc.pdf](https://edoc.unibas.ch/83588/1/Andrea A Kifyasi_Dissertation_ edoc.pdf){:target=“_blank”}\r\n{.citation-indented}\r\n\r\nKifyasi A A. China’s Role in Global Health: HIV/AIDS Traditional Chinese Medicine Research and Treatment in Tanzania from 1987 to 2014. China Quarterly of International Strategic Studies [Internet]. 2021 [cited 8 March 2023] 7:(3): 243-67. Available from: [https://doi.org/10.1142/S237774002150010X](https://www.worldscientific.com/doi/abs/10.1142/S237774002150010X){:target=“_blank”}\r\n{.citation-indented}\r\n\r\nYou can follow Andrea Kifyasi’s publications [here](https://scholar.google.com/scholar?hl=en&as_sdt=0%2C5&q=Andrea+Azizi+Kifyasi&btnG=){:target=“_blank”} and here: [https://orcid.org/0000-0003-4660-6748](https://orcid.org/0000-0003-4660-6748){:target=“_blank”}\r\n\r\nYou might also be interested in: \r\n\r\nIandolo on socialist development in West Africa: [https://www.cornellpress.cornell.edu/book/9781501764431/arrested-development/](https://www.cornellpress.cornell.edu/book/9781501764431/arrested-development/){:target=“_blank”}\r\n \r\nMark et al on “Alternative Globalizations » : [https://iupress.org/9780253046512/alternative-globalizations/](https://iupress.org/9780253046512/alternative-globalizations/){:target=“_blank”}\r\n \r\nStanek on socialist architecture in West Africa:[https://press.princeton.edu/books/hardcover/9780691168708/architecture-in-global-socialism](https://press.princeton.edu/books/hardcover/9780691168708/architecture-in-global-socialism){:target=“_blank”}', '', 'In this video, Tanja Hammel interviews Andrea Kifyasi, lecturer at the University of Dar es Salaam, about his PhD thesis on Chinese medical assistance to post-colonial Tanzania.\r\n{.lead}\r\n\r\n![embed](https://vimeo.com/585735755/03fff47ccc)\r\n\r\nHistorian Andrea Kifyasi provides insights into the post-colonial diplomatic history of Sino-African relations, especially in the field of medical diplomacy. He sheds light on why South-South knowledge exchange and Chinese-Tanzanian collaborations have not attracted more scholarly attention so far. \r\n\r\nHis focus lies on Sino-African relations, and he gives examples of thriving research in this field. We can better understand Tanzanian history and its relations with China by learning more about his research. His research goes beyond “Theory from the South”.\r\n\r\n<br>\r\n\r\nReferences\r\n{.footnote-title}\r\n\r\nBlunden M. South-South Cooperation: Cuba’s Health Programmes in Africa. International Journal of Cuban Studies. 2008; 1 (1): 32–41.\r\n{.citation-indented}\r\n\r\nFeinsilver J M. Cuba’s Medical Diplomacy. A Changing Cuba in a Changing World (M A Font, ed). 273–286. New York: City University of New York; 2009.\r\n{.citation-indented}\r\n\r\nFeinsilver J M. Fifty Years of Cuba’s Medical Diplomacy: From Idealism to Pragmatism. Cuban Studies. 2010; 41: 85-104.\r\n{.citation-indented}\r\n\r\nKifyasi A A. Neither “Saviour” nor “Exploiter”: A Historical Study of China’s Medical Assistance in Post-Colonial Tanzania. PhD Dissertation [Internet]. 2021 [cited 1 December 2021]. Available from: [https://edoc.unibas.ch/83588/1/Andrea A Kifyasi_Dissertation_ edoc.pdf](https://edoc.unibas.ch/83588/1/Andrea A Kifyasi_Dissertation_ edoc.pdf){:target=“_blank”}\r\n{.citation-indented}\r\n\r\nKifyasi A A. China’s Role in Global Health: HIV/AIDS Traditional Chinese Medicine Research and Treatment in Tanzania from 1987 to 2014. China Quarterly of International Strategic Studies [Internet]. 2021 [cited 8 March 2023] 7:(3): 243-67. Available from: [https://doi.org/10.1142/S237774002150010X](https://www.worldscientific.com/doi/abs/10.1142/S237774002150010X){:target=“_blank”}\r\n{.citation-indented}\r\n\r\nYou can follow Andrea Kifyasi’s publications [here](https://scholar.google.com/scholar?hl=en&as_sdt=0%2C5&q=Andrea+Azizi+Kifyasi&btnG=){:target=“_blank”} and here: [https://orcid.org/0000-0003-4660-6748](https://orcid.org/0000-0003-4660-6748){:target=“_blank”}\r\n\r\nYou might also be interested in: \r\n\r\nIandolo on socialist development in West Africa: [https://www.cornellpress.cornell.edu/book/9781501764431/arrested-development/](https://www.cornellpress.cornell.edu/book/9781501764431/arrested-development/){:target=“_blank”}\r\n \r\nMark et al on “Alternative Globalizations » : [https://iupress.org/9780253046512/alternative-globalizations/](https://iupress.org/9780253046512/alternative-globalizations/){:target=“_blank”}\r\n \r\nStanek on socialist architecture in West Africa:[https://press.princeton.edu/books/hardcover/9780691168708/architecture-in-global-socialism](https://press.princeton.edu/books/hardcover/9780691168708/architecture-in-global-socialism){:target=“_blank”}', '', '', '', '', '', None, None, None, None, '', '', '', '', 'TV', '07:57', 8, 'published', False, None, None, None, None, 216)]])}, None) {} <django_redis.cache.RedisCache object at 0x78830fe11400>
/usr/local/bin/gunicorn in <module>(10)
  sys.exit(run())

/usr/local/lib/python3.12/site-packages/gunicorn/app/wsgiapp.py in run(66)
  WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]", prog=prog).run()

/usr/local/lib/python3.12/site-packages/gunicorn/app/base.py in run(235)
  super().run()

/usr/local/lib/python3.12/site-packages/gunicorn/app/base.py in run(71)
  Arbiter(self).run()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in run(201)
  self.manage_workers()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in manage_workers(570)
  self.spawn_workers()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in spawn_workers(641)
  self.spawn_worker()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in spawn_worker(608)
  worker.init_process()

/usr/local/lib/python3.12/site-packages/gunicorn/workers/base.py in init_process(143)
  self.run()

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in run(125)
  self.run_for_one(timeout)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in run_for_one(69)
  self.accept(listener)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in accept(31)
  self.handle(listener, client, addr)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in handle(134)
  self.handle_request(listener, req, client, addr)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in handle_request(177)
  respiter = self.wsgi(environ, resp.start_response)

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

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/__init__.py in sentry_patched_wsgi_handler(191)
  return middleware(environ, start_response)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/wsgi.py in __call__(131)
  response = self.app(

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/__init__.py in sentry_patched_get_response(477)
  rv = old_get_response(self, request)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

0.4774 get_many (['138549f5508bbba7283d6a0625e51c589d845e8f', 'e530396ac98fa19be995e6192a384bba6059a541'],) {} <django_redis.cache.RedisCache object at 0x78830fe11400>
/usr/local/bin/gunicorn in <module>(10)
  sys.exit(run())

/usr/local/lib/python3.12/site-packages/gunicorn/app/wsgiapp.py in run(66)
  WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]", prog=prog).run()

/usr/local/lib/python3.12/site-packages/gunicorn/app/base.py in run(235)
  super().run()

/usr/local/lib/python3.12/site-packages/gunicorn/app/base.py in run(71)
  Arbiter(self).run()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in run(201)
  self.manage_workers()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in manage_workers(570)
  self.spawn_workers()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in spawn_workers(641)
  self.spawn_worker()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in spawn_worker(608)
  worker.init_process()

/usr/local/lib/python3.12/site-packages/gunicorn/workers/base.py in init_process(143)
  self.run()

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in run(125)
  self.run_for_one(timeout)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in run_for_one(69)
  self.accept(listener)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in accept(31)
  self.handle(listener, client, addr)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in handle(134)
  self.handle_request(listener, req, client, addr)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in handle_request(177)
  respiter = self.wsgi(environ, resp.start_response)

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

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/__init__.py in sentry_patched_wsgi_handler(191)
  return middleware(environ, start_response)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/wsgi.py in __call__(131)
  response = self.app(

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/__init__.py in sentry_patched_get_response(477)
  rv = old_get_response(self, request)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

0.3910 get_many (['4f1f0b4dfbd30463b5587753e6f3e6ca21ddbf60', '138549f5508bbba7283d6a0625e51c589d845e8f', '566e029278f0508b70c230be19190273fc1ed989'],) {} <django_redis.cache.RedisCache object at 0x78830fe11400>
/usr/local/bin/gunicorn in <module>(10)
  sys.exit(run())

/usr/local/lib/python3.12/site-packages/gunicorn/app/wsgiapp.py in run(66)
  WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]", prog=prog).run()

/usr/local/lib/python3.12/site-packages/gunicorn/app/base.py in run(235)
  super().run()

/usr/local/lib/python3.12/site-packages/gunicorn/app/base.py in run(71)
  Arbiter(self).run()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in run(201)
  self.manage_workers()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in manage_workers(570)
  self.spawn_workers()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in spawn_workers(641)
  self.spawn_worker()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in spawn_worker(608)
  worker.init_process()

/usr/local/lib/python3.12/site-packages/gunicorn/workers/base.py in init_process(143)
  self.run()

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in run(125)
  self.run_for_one(timeout)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in run_for_one(69)
  self.accept(listener)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in accept(31)
  self.handle(listener, client, addr)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in handle(134)
  self.handle_request(listener, req, client, addr)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in handle_request(177)
  respiter = self.wsgi(environ, resp.start_response)

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

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/__init__.py in sentry_patched_wsgi_handler(191)
  return middleware(environ, start_response)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/wsgi.py in __call__(131)
  response = self.app(

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/__init__.py in sentry_patched_get_response(477)
  rv = old_get_response(self, request)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

0.3892 set_many ({'566e029278f0508b70c230be19190273fc1ed989': (1765842516.0876772, [[(475, datetime.datetime(2022, 4, 7, 13, 28, 57, 342120, tzinfo=datetime.timezone.utc), datetime.datetime(2022, 4, 7, 13, 28, 57, 342120, tzinfo=datetime.timezone.utc), 1173, 538, 'en')]])}, None) {} <django_redis.cache.RedisCache object at 0x78830fe11400>
/usr/local/bin/gunicorn in <module>(10)
  sys.exit(run())

/usr/local/lib/python3.12/site-packages/gunicorn/app/wsgiapp.py in run(66)
  WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]", prog=prog).run()

/usr/local/lib/python3.12/site-packages/gunicorn/app/base.py in run(235)
  super().run()

/usr/local/lib/python3.12/site-packages/gunicorn/app/base.py in run(71)
  Arbiter(self).run()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in run(201)
  self.manage_workers()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in manage_workers(570)
  self.spawn_workers()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in spawn_workers(641)
  self.spawn_worker()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in spawn_worker(608)
  worker.init_process()

/usr/local/lib/python3.12/site-packages/gunicorn/workers/base.py in init_process(143)
  self.run()

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in run(125)
  self.run_for_one(timeout)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in run_for_one(69)
  self.accept(listener)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in accept(31)
  self.handle(listener, client, addr)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in handle(134)
  self.handle_request(listener, req, client, addr)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in handle_request(177)
  respiter = self.wsgi(environ, resp.start_response)

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

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/__init__.py in sentry_patched_wsgi_handler(191)
  return middleware(environ, start_response)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/wsgi.py in __call__(131)
  response = self.app(

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/__init__.py in sentry_patched_get_response(477)
  rv = old_get_response(self, request)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

0.4344 get_many (['76e323efd8711853e13c9f7cf976845908364eb2', '934f54b3a05fcf81d69b6188dccd751515b12e37'],) {} <django_redis.cache.RedisCache object at 0x78830fe11400>
/usr/local/bin/gunicorn in <module>(10)
  sys.exit(run())

/usr/local/lib/python3.12/site-packages/gunicorn/app/wsgiapp.py in run(66)
  WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]", prog=prog).run()

/usr/local/lib/python3.12/site-packages/gunicorn/app/base.py in run(235)
  super().run()

/usr/local/lib/python3.12/site-packages/gunicorn/app/base.py in run(71)
  Arbiter(self).run()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in run(201)
  self.manage_workers()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in manage_workers(570)
  self.spawn_workers()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in spawn_workers(641)
  self.spawn_worker()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in spawn_worker(608)
  worker.init_process()

/usr/local/lib/python3.12/site-packages/gunicorn/workers/base.py in init_process(143)
  self.run()

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in run(125)
  self.run_for_one(timeout)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in run_for_one(69)
  self.accept(listener)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in accept(31)
  self.handle(listener, client, addr)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in handle(134)
  self.handle_request(listener, req, client, addr)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in handle_request(177)
  respiter = self.wsgi(environ, resp.start_response)

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

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/__init__.py in sentry_patched_wsgi_handler(191)
  return middleware(environ, start_response)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/wsgi.py in __call__(131)
  response = self.app(

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/__init__.py in sentry_patched_get_response(477)
  rv = old_get_response(self, request)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

/usr/local/lib/python3.12/site-packages/django/views/generic/detail.py in get(113)
  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.12/site-packages/cachalot/monkey_patch.py in inner(38)
  return original(compiler, *args, **kwargs)

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

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

0.3386 get_many (['e3a5db5a670ad803efb866441f33de58309be2e2', 'c481cd8d20bbcf1e0b2a0b693cc07d3caa0ccf3e'],) {} <django_redis.cache.RedisCache object at 0x78830fe11400>
/usr/local/bin/gunicorn in <module>(10)
  sys.exit(run())

/usr/local/lib/python3.12/site-packages/gunicorn/app/wsgiapp.py in run(66)
  WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]", prog=prog).run()

/usr/local/lib/python3.12/site-packages/gunicorn/app/base.py in run(235)
  super().run()

/usr/local/lib/python3.12/site-packages/gunicorn/app/base.py in run(71)
  Arbiter(self).run()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in run(201)
  self.manage_workers()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in manage_workers(570)
  self.spawn_workers()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in spawn_workers(641)
  self.spawn_worker()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in spawn_worker(608)
  worker.init_process()

/usr/local/lib/python3.12/site-packages/gunicorn/workers/base.py in init_process(143)
  self.run()

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in run(125)
  self.run_for_one(timeout)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in run_for_one(69)
  self.accept(listener)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in accept(31)
  self.handle(listener, client, addr)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in handle(134)
  self.handle_request(listener, req, client, addr)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in handle_request(177)
  respiter = self.wsgi(environ, resp.start_response)

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

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/__init__.py in sentry_patched_wsgi_handler(191)
  return middleware(environ, start_response)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/wsgi.py in __call__(131)
  response = self.app(

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/__init__.py in sentry_patched_get_response(477)
  rv = old_get_response(self, request)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

/usr/local/lib/python3.12/site-packages/django/views/generic/detail.py in get(113)
  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.12/site-packages/cachalot/monkey_patch.py in inner(38)
  return original(compiler, *args, **kwargs)

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

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

0.3814 get_many (['312c357d2eed306581bb334378808fbccf7019ea', 'e3a5db5a670ad803efb866441f33de58309be2e2', 'b06bbade4c98b2e6c002b5128726be9d08c6324a'],) {} <django_redis.cache.RedisCache object at 0x78830fe11400>
/usr/local/bin/gunicorn in <module>(10)
  sys.exit(run())

/usr/local/lib/python3.12/site-packages/gunicorn/app/wsgiapp.py in run(66)
  WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]", prog=prog).run()

/usr/local/lib/python3.12/site-packages/gunicorn/app/base.py in run(235)
  super().run()

/usr/local/lib/python3.12/site-packages/gunicorn/app/base.py in run(71)
  Arbiter(self).run()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in run(201)
  self.manage_workers()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in manage_workers(570)
  self.spawn_workers()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in spawn_workers(641)
  self.spawn_worker()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in spawn_worker(608)
  worker.init_process()

/usr/local/lib/python3.12/site-packages/gunicorn/workers/base.py in init_process(143)
  self.run()

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in run(125)
  self.run_for_one(timeout)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in run_for_one(69)
  self.accept(listener)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in accept(31)
  self.handle(listener, client, addr)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in handle(134)
  self.handle_request(listener, req, client, addr)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in handle_request(177)
  respiter = self.wsgi(environ, resp.start_response)

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

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/__init__.py in sentry_patched_wsgi_handler(191)
  return middleware(environ, start_response)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/wsgi.py in __call__(131)
  response = self.app(

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/__init__.py in sentry_patched_get_response(477)
  rv = old_get_response(self, request)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

/usr/local/lib/python3.12/site-packages/django/template/defaulttags.py in render(320)
  match = condition.eval(context)

/usr/local/lib/python3.12/site-packages/django/template/defaulttags.py in eval(886)
  return self.value.resolve(context, ignore_failures=True)

/usr/local/lib/python3.12/site-packages/django/template/base.py in resolve(722)
  obj = self.var.resolve(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in resolve(854)
  value = self._resolve_lookup(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in _resolve_lookup(901)
  current = getattr(current, bit)

/app/project/lms_tales/models.py in meta(75)
  + ", ".join([author.name for author in self.get_course().authors.all()]),

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

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

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

0.3290 get_many (['312c357d2eed306581bb334378808fbccf7019ea', 'e3a5db5a670ad803efb866441f33de58309be2e2', 'b06bbade4c98b2e6c002b5128726be9d08c6324a'],) {} <django_redis.cache.RedisCache object at 0x78830fe11400>
/usr/local/bin/gunicorn in <module>(10)
  sys.exit(run())

/usr/local/lib/python3.12/site-packages/gunicorn/app/wsgiapp.py in run(66)
  WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]", prog=prog).run()

/usr/local/lib/python3.12/site-packages/gunicorn/app/base.py in run(235)
  super().run()

/usr/local/lib/python3.12/site-packages/gunicorn/app/base.py in run(71)
  Arbiter(self).run()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in run(201)
  self.manage_workers()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in manage_workers(570)
  self.spawn_workers()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in spawn_workers(641)
  self.spawn_worker()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in spawn_worker(608)
  worker.init_process()

/usr/local/lib/python3.12/site-packages/gunicorn/workers/base.py in init_process(143)
  self.run()

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in run(125)
  self.run_for_one(timeout)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in run_for_one(69)
  self.accept(listener)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in accept(31)
  self.handle(listener, client, addr)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in handle(134)
  self.handle_request(listener, req, client, addr)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in handle_request(177)
  respiter = self.wsgi(environ, resp.start_response)

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

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/__init__.py in sentry_patched_wsgi_handler(191)
  return middleware(environ, start_response)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/wsgi.py in __call__(131)
  response = self.app(

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/__init__.py in sentry_patched_get_response(477)
  rv = old_get_response(self, request)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1075)
  output = self.filter_expression.resolve(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in resolve(722)
  obj = self.var.resolve(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in resolve(854)
  value = self._resolve_lookup(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in _resolve_lookup(901)
  current = getattr(current, bit)

/app/project/lms_tales/models.py in meta(75)
  + ", ".join([author.name for author in self.get_course().authors.all()]),

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

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

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

0.3413 get_many (['312c357d2eed306581bb334378808fbccf7019ea', 'e3a5db5a670ad803efb866441f33de58309be2e2', 'b06bbade4c98b2e6c002b5128726be9d08c6324a'],) {} <django_redis.cache.RedisCache object at 0x78830fe11400>
/usr/local/bin/gunicorn in <module>(10)
  sys.exit(run())

/usr/local/lib/python3.12/site-packages/gunicorn/app/wsgiapp.py in run(66)
  WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]", prog=prog).run()

/usr/local/lib/python3.12/site-packages/gunicorn/app/base.py in run(235)
  super().run()

/usr/local/lib/python3.12/site-packages/gunicorn/app/base.py in run(71)
  Arbiter(self).run()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in run(201)
  self.manage_workers()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in manage_workers(570)
  self.spawn_workers()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in spawn_workers(641)
  self.spawn_worker()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in spawn_worker(608)
  worker.init_process()

/usr/local/lib/python3.12/site-packages/gunicorn/workers/base.py in init_process(143)
  self.run()

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in run(125)
  self.run_for_one(timeout)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in run_for_one(69)
  self.accept(listener)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in accept(31)
  self.handle(listener, client, addr)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in handle(134)
  self.handle_request(listener, req, client, addr)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in handle_request(177)
  respiter = self.wsgi(environ, resp.start_response)

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

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/__init__.py in sentry_patched_wsgi_handler(191)
  return middleware(environ, start_response)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/wsgi.py in __call__(131)
  response = self.app(

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/__init__.py in sentry_patched_get_response(477)
  rv = old_get_response(self, request)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1075)
  output = self.filter_expression.resolve(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in resolve(722)
  obj = self.var.resolve(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in resolve(854)
  value = self._resolve_lookup(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in _resolve_lookup(901)
  current = getattr(current, bit)

/app/project/lms_tales/models.py in meta(75)
  + ", ".join([author.name for author in self.get_course().authors.all()]),

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

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

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

0.3185 get_many (['312c357d2eed306581bb334378808fbccf7019ea', 'e3a5db5a670ad803efb866441f33de58309be2e2', 'b06bbade4c98b2e6c002b5128726be9d08c6324a'],) {} <django_redis.cache.RedisCache object at 0x78830fe11400>
/usr/local/bin/gunicorn in <module>(10)
  sys.exit(run())

/usr/local/lib/python3.12/site-packages/gunicorn/app/wsgiapp.py in run(66)
  WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]", prog=prog).run()

/usr/local/lib/python3.12/site-packages/gunicorn/app/base.py in run(235)
  super().run()

/usr/local/lib/python3.12/site-packages/gunicorn/app/base.py in run(71)
  Arbiter(self).run()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in run(201)
  self.manage_workers()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in manage_workers(570)
  self.spawn_workers()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in spawn_workers(641)
  self.spawn_worker()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in spawn_worker(608)
  worker.init_process()

/usr/local/lib/python3.12/site-packages/gunicorn/workers/base.py in init_process(143)
  self.run()

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in run(125)
  self.run_for_one(timeout)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in run_for_one(69)
  self.accept(listener)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in accept(31)
  self.handle(listener, client, addr)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in handle(134)
  self.handle_request(listener, req, client, addr)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in handle_request(177)
  respiter = self.wsgi(environ, resp.start_response)

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

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/__init__.py in sentry_patched_wsgi_handler(191)
  return middleware(environ, start_response)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/wsgi.py in __call__(131)
  response = self.app(

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/__init__.py in sentry_patched_get_response(477)
  rv = old_get_response(self, request)

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

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

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

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

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

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

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

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

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/allauth/account/middleware.py in middleware(36)
  response = get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/simple_history/middleware.py in middleware(41)
  return get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/django_htmx/middleware.py in __call__(43)
  return self.get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in __call__(172)
  response = self.get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/cachalot/panels.py in process_request(41)
  return super(CachalotPanel, self).process_request(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(94)
  return callback(request, *args, **kwargs)

/app/project/utils/decorators.py in apply_cache(68)
  cache.set(CACHE_KEY, response.render(), ttl)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/views.py in sentry_patched_render(41)
  return old_render(self)

/usr/local/lib/python3.12/site-packages/django/template/response.py in render(114)
  self.content = self.rendered_content

/usr/local/lib/python3.12/site-packages/sentry_sdk/utils.py in runner(1811)
  return sentry_patched_function(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/templates.py in rendered_content(77)
  return real_rendered_content.fget(self)

/usr/local/lib/python3.12/site-packages/django/template/response.py in rendered_content(92)
  return template.render(context, self._request)

/usr/local/lib/python3.12/site-packages/django/template/backends/django.py in render(107)
  return self.template.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(171)
  return self._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(159)
  return compiled_parent._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(159)
  return compiled_parent._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/defaulttags.py in render(327)
  return nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1075)
  output = self.filter_expression.resolve(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in resolve(722)
  obj = self.var.resolve(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in resolve(854)
  value = self._resolve_lookup(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in _resolve_lookup(901)
  current = getattr(current, bit)

/app/project/lms_tales/models.py in meta(75)
  + ", ".join([author.name for author in self.get_course().authors.all()]),

/usr/local/lib/python3.12/site-packages/cachalot/monkey_patch.py in inner(38)
  return original(compiler, *args, **kwargs)

/usr/local/lib/python3.12/site-packages/cachalot/monkey_patch.py in inner(101)
  return _get_result_or_execute_query(

/usr/local/lib/python3.12/site-packages/cachalot/monkey_patch.py in _get_result_or_execute_query(47)
  data = cache.get_many(table_cache_keys + [cache_key])

0.3237 get_many (['312c357d2eed306581bb334378808fbccf7019ea', 'e3a5db5a670ad803efb866441f33de58309be2e2', 'b06bbade4c98b2e6c002b5128726be9d08c6324a'],) {} <django_redis.cache.RedisCache object at 0x78830fe11400>
/usr/local/bin/gunicorn in <module>(10)
  sys.exit(run())

/usr/local/lib/python3.12/site-packages/gunicorn/app/wsgiapp.py in run(66)
  WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]", prog=prog).run()

/usr/local/lib/python3.12/site-packages/gunicorn/app/base.py in run(235)
  super().run()

/usr/local/lib/python3.12/site-packages/gunicorn/app/base.py in run(71)
  Arbiter(self).run()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in run(201)
  self.manage_workers()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in manage_workers(570)
  self.spawn_workers()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in spawn_workers(641)
  self.spawn_worker()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in spawn_worker(608)
  worker.init_process()

/usr/local/lib/python3.12/site-packages/gunicorn/workers/base.py in init_process(143)
  self.run()

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in run(125)
  self.run_for_one(timeout)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in run_for_one(69)
  self.accept(listener)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in accept(31)
  self.handle(listener, client, addr)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in handle(134)
  self.handle_request(listener, req, client, addr)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in handle_request(177)
  respiter = self.wsgi(environ, resp.start_response)

/usr/local/lib/python3.12/site-packages/sentry_sdk/utils.py in runner(1811)
  return sentry_patched_function(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/__init__.py in sentry_patched_wsgi_handler(191)
  return middleware(environ, start_response)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/wsgi.py in __call__(131)
  response = self.app(

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/__init__.py in sentry_patched_get_response(477)
  rv = old_get_response(self, request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in middleware(33)
  response = get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/allauth/account/middleware.py in middleware(36)
  response = get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/simple_history/middleware.py in middleware(41)
  return get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/django_htmx/middleware.py in __call__(43)
  return self.get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in __call__(172)
  response = self.get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/cachalot/panels.py in process_request(41)
  return super(CachalotPanel, self).process_request(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(94)
  return callback(request, *args, **kwargs)

/app/project/utils/decorators.py in apply_cache(68)
  cache.set(CACHE_KEY, response.render(), ttl)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/views.py in sentry_patched_render(41)
  return old_render(self)

/usr/local/lib/python3.12/site-packages/django/template/response.py in render(114)
  self.content = self.rendered_content

/usr/local/lib/python3.12/site-packages/sentry_sdk/utils.py in runner(1811)
  return sentry_patched_function(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/templates.py in rendered_content(77)
  return real_rendered_content.fget(self)

/usr/local/lib/python3.12/site-packages/django/template/response.py in rendered_content(92)
  return template.render(context, self._request)

/usr/local/lib/python3.12/site-packages/django/template/backends/django.py in render(107)
  return self.template.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(171)
  return self._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(159)
  return compiled_parent._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(159)
  return compiled_parent._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/defaulttags.py in render(327)
  return nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1075)
  output = self.filter_expression.resolve(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in resolve(722)
  obj = self.var.resolve(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in resolve(854)
  value = self._resolve_lookup(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in _resolve_lookup(901)
  current = getattr(current, bit)

/app/project/lms_tales/models.py in meta(75)
  + ", ".join([author.name for author in self.get_course().authors.all()]),

/usr/local/lib/python3.12/site-packages/cachalot/monkey_patch.py in inner(38)
  return original(compiler, *args, **kwargs)

/usr/local/lib/python3.12/site-packages/cachalot/monkey_patch.py in inner(101)
  return _get_result_or_execute_query(

/usr/local/lib/python3.12/site-packages/cachalot/monkey_patch.py in _get_result_or_execute_query(47)
  data = cache.get_many(table_cache_keys + [cache_key])

0.3163 get_many (['312c357d2eed306581bb334378808fbccf7019ea', 'e3a5db5a670ad803efb866441f33de58309be2e2', 'b06bbade4c98b2e6c002b5128726be9d08c6324a'],) {} <django_redis.cache.RedisCache object at 0x78830fe11400>
/usr/local/bin/gunicorn in <module>(10)
  sys.exit(run())

/usr/local/lib/python3.12/site-packages/gunicorn/app/wsgiapp.py in run(66)
  WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]", prog=prog).run()

/usr/local/lib/python3.12/site-packages/gunicorn/app/base.py in run(235)
  super().run()

/usr/local/lib/python3.12/site-packages/gunicorn/app/base.py in run(71)
  Arbiter(self).run()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in run(201)
  self.manage_workers()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in manage_workers(570)
  self.spawn_workers()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in spawn_workers(641)
  self.spawn_worker()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in spawn_worker(608)
  worker.init_process()

/usr/local/lib/python3.12/site-packages/gunicorn/workers/base.py in init_process(143)
  self.run()

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in run(125)
  self.run_for_one(timeout)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in run_for_one(69)
  self.accept(listener)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in accept(31)
  self.handle(listener, client, addr)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in handle(134)
  self.handle_request(listener, req, client, addr)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in handle_request(177)
  respiter = self.wsgi(environ, resp.start_response)

/usr/local/lib/python3.12/site-packages/sentry_sdk/utils.py in runner(1811)
  return sentry_patched_function(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/__init__.py in sentry_patched_wsgi_handler(191)
  return middleware(environ, start_response)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/wsgi.py in __call__(131)
  response = self.app(

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/__init__.py in sentry_patched_get_response(477)
  rv = old_get_response(self, request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in middleware(33)
  response = get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/allauth/account/middleware.py in middleware(36)
  response = get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/simple_history/middleware.py in middleware(41)
  return get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/django_htmx/middleware.py in __call__(43)
  return self.get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in __call__(172)
  response = self.get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/cachalot/panels.py in process_request(41)
  return super(CachalotPanel, self).process_request(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(94)
  return callback(request, *args, **kwargs)

/app/project/utils/decorators.py in apply_cache(68)
  cache.set(CACHE_KEY, response.render(), ttl)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/views.py in sentry_patched_render(41)
  return old_render(self)

/usr/local/lib/python3.12/site-packages/django/template/response.py in render(114)
  self.content = self.rendered_content

/usr/local/lib/python3.12/site-packages/sentry_sdk/utils.py in runner(1811)
  return sentry_patched_function(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/templates.py in rendered_content(77)
  return real_rendered_content.fget(self)

/usr/local/lib/python3.12/site-packages/django/template/response.py in rendered_content(92)
  return template.render(context, self._request)

/usr/local/lib/python3.12/site-packages/django/template/backends/django.py in render(107)
  return self.template.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(171)
  return self._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(159)
  return compiled_parent._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(159)
  return compiled_parent._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/defaulttags.py in render(327)
  return nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1075)
  output = self.filter_expression.resolve(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in resolve(722)
  obj = self.var.resolve(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in resolve(854)
  value = self._resolve_lookup(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in _resolve_lookup(901)
  current = getattr(current, bit)

/app/project/lms_tales/models.py in meta(75)
  + ", ".join([author.name for author in self.get_course().authors.all()]),

/usr/local/lib/python3.12/site-packages/cachalot/monkey_patch.py in inner(38)
  return original(compiler, *args, **kwargs)

/usr/local/lib/python3.12/site-packages/cachalot/monkey_patch.py in inner(101)
  return _get_result_or_execute_query(

/usr/local/lib/python3.12/site-packages/cachalot/monkey_patch.py in _get_result_or_execute_query(47)
  data = cache.get_many(table_cache_keys + [cache_key])

0.3613 get_many (['312c357d2eed306581bb334378808fbccf7019ea', 'e3a5db5a670ad803efb866441f33de58309be2e2', 'b06bbade4c98b2e6c002b5128726be9d08c6324a'],) {} <django_redis.cache.RedisCache object at 0x78830fe11400>
/usr/local/bin/gunicorn in <module>(10)
  sys.exit(run())

/usr/local/lib/python3.12/site-packages/gunicorn/app/wsgiapp.py in run(66)
  WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]", prog=prog).run()

/usr/local/lib/python3.12/site-packages/gunicorn/app/base.py in run(235)
  super().run()

/usr/local/lib/python3.12/site-packages/gunicorn/app/base.py in run(71)
  Arbiter(self).run()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in run(201)
  self.manage_workers()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in manage_workers(570)
  self.spawn_workers()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in spawn_workers(641)
  self.spawn_worker()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in spawn_worker(608)
  worker.init_process()

/usr/local/lib/python3.12/site-packages/gunicorn/workers/base.py in init_process(143)
  self.run()

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in run(125)
  self.run_for_one(timeout)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in run_for_one(69)
  self.accept(listener)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in accept(31)
  self.handle(listener, client, addr)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in handle(134)
  self.handle_request(listener, req, client, addr)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in handle_request(177)
  respiter = self.wsgi(environ, resp.start_response)

/usr/local/lib/python3.12/site-packages/sentry_sdk/utils.py in runner(1811)
  return sentry_patched_function(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/__init__.py in sentry_patched_wsgi_handler(191)
  return middleware(environ, start_response)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/wsgi.py in __call__(131)
  response = self.app(

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/__init__.py in sentry_patched_get_response(477)
  rv = old_get_response(self, request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in middleware(33)
  response = get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/allauth/account/middleware.py in middleware(36)
  response = get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/simple_history/middleware.py in middleware(41)
  return get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/django_htmx/middleware.py in __call__(43)
  return self.get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in __call__(172)
  response = self.get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/cachalot/panels.py in process_request(41)
  return super(CachalotPanel, self).process_request(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(94)
  return callback(request, *args, **kwargs)

/app/project/utils/decorators.py in apply_cache(68)
  cache.set(CACHE_KEY, response.render(), ttl)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/views.py in sentry_patched_render(41)
  return old_render(self)

/usr/local/lib/python3.12/site-packages/django/template/response.py in render(114)
  self.content = self.rendered_content

/usr/local/lib/python3.12/site-packages/sentry_sdk/utils.py in runner(1811)
  return sentry_patched_function(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/templates.py in rendered_content(77)
  return real_rendered_content.fget(self)

/usr/local/lib/python3.12/site-packages/django/template/response.py in rendered_content(92)
  return template.render(context, self._request)

/usr/local/lib/python3.12/site-packages/django/template/backends/django.py in render(107)
  return self.template.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(171)
  return self._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(159)
  return compiled_parent._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(159)
  return compiled_parent._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/defaulttags.py in render(327)
  return nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1075)
  output = self.filter_expression.resolve(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in resolve(722)
  obj = self.var.resolve(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in resolve(854)
  value = self._resolve_lookup(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in _resolve_lookup(901)
  current = getattr(current, bit)

/app/project/lms_tales/models.py in meta(75)
  + ", ".join([author.name for author in self.get_course().authors.all()]),

/usr/local/lib/python3.12/site-packages/cachalot/monkey_patch.py in inner(38)
  return original(compiler, *args, **kwargs)

/usr/local/lib/python3.12/site-packages/cachalot/monkey_patch.py in inner(101)
  return _get_result_or_execute_query(

/usr/local/lib/python3.12/site-packages/cachalot/monkey_patch.py in _get_result_or_execute_query(47)
  data = cache.get_many(table_cache_keys + [cache_key])

0.4563 get_many (['76e323efd8711853e13c9f7cf976845908364eb2', 'e3a5db5a670ad803efb866441f33de58309be2e2', 'df8ebb59433c4fbd7848a2381ffb01828a0b6f1d'],) {} <django_redis.cache.RedisCache object at 0x78830fe11400>
/usr/local/bin/gunicorn in <module>(10)
  sys.exit(run())

/usr/local/lib/python3.12/site-packages/gunicorn/app/wsgiapp.py in run(66)
  WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]", prog=prog).run()

/usr/local/lib/python3.12/site-packages/gunicorn/app/base.py in run(235)
  super().run()

/usr/local/lib/python3.12/site-packages/gunicorn/app/base.py in run(71)
  Arbiter(self).run()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in run(201)
  self.manage_workers()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in manage_workers(570)
  self.spawn_workers()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in spawn_workers(641)
  self.spawn_worker()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in spawn_worker(608)
  worker.init_process()

/usr/local/lib/python3.12/site-packages/gunicorn/workers/base.py in init_process(143)
  self.run()

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in run(125)
  self.run_for_one(timeout)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in run_for_one(69)
  self.accept(listener)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in accept(31)
  self.handle(listener, client, addr)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in handle(134)
  self.handle_request(listener, req, client, addr)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in handle_request(177)
  respiter = self.wsgi(environ, resp.start_response)

/usr/local/lib/python3.12/site-packages/sentry_sdk/utils.py in runner(1811)
  return sentry_patched_function(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/__init__.py in sentry_patched_wsgi_handler(191)
  return middleware(environ, start_response)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/wsgi.py in __call__(131)
  response = self.app(

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/__init__.py in sentry_patched_get_response(477)
  rv = old_get_response(self, request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in middleware(33)
  response = get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/allauth/account/middleware.py in middleware(36)
  response = get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/simple_history/middleware.py in middleware(41)
  return get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/django_htmx/middleware.py in __call__(43)
  return self.get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in __call__(172)
  response = self.get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/cachalot/panels.py in process_request(41)
  return super(CachalotPanel, self).process_request(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(94)
  return callback(request, *args, **kwargs)

/app/project/utils/decorators.py in apply_cache(68)
  cache.set(CACHE_KEY, response.render(), ttl)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/views.py in sentry_patched_render(41)
  return old_render(self)

/usr/local/lib/python3.12/site-packages/django/template/response.py in render(114)
  self.content = self.rendered_content

/usr/local/lib/python3.12/site-packages/sentry_sdk/utils.py in runner(1811)
  return sentry_patched_function(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/templates.py in rendered_content(77)
  return real_rendered_content.fget(self)

/usr/local/lib/python3.12/site-packages/django/template/response.py in rendered_content(92)
  return template.render(context, self._request)

/usr/local/lib/python3.12/site-packages/django/template/backends/django.py in render(107)
  return self.template.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(171)
  return self._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(159)
  return compiled_parent._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(159)
  return compiled_parent._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(65)
  result = block.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(65)
  result = block.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(210)
  return template.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(173)
  return self._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/defaulttags.py in render(327)
  return nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/defaulttags.py in render(199)
  len_values = len(values)

/usr/local/lib/python3.12/site-packages/cachalot/monkey_patch.py in inner(38)
  return original(compiler, *args, **kwargs)

/usr/local/lib/python3.12/site-packages/cachalot/monkey_patch.py in inner(101)
  return _get_result_or_execute_query(

/usr/local/lib/python3.12/site-packages/cachalot/monkey_patch.py in _get_result_or_execute_query(47)
  data = cache.get_many(table_cache_keys + [cache_key])

0.5725 get_many (['76e323efd8711853e13c9f7cf976845908364eb2', '138549f5508bbba7283d6a0625e51c589d845e8f', 'e3a5db5a670ad803efb866441f33de58309be2e2', '64b2ef7c998f975307f2d8f6faf42482d036a0c3'],) {} <django_redis.cache.RedisCache object at 0x78830fe11400>
/usr/local/bin/gunicorn in <module>(10)
  sys.exit(run())

/usr/local/lib/python3.12/site-packages/gunicorn/app/wsgiapp.py in run(66)
  WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]", prog=prog).run()

/usr/local/lib/python3.12/site-packages/gunicorn/app/base.py in run(235)
  super().run()

/usr/local/lib/python3.12/site-packages/gunicorn/app/base.py in run(71)
  Arbiter(self).run()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in run(201)
  self.manage_workers()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in manage_workers(570)
  self.spawn_workers()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in spawn_workers(641)
  self.spawn_worker()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in spawn_worker(608)
  worker.init_process()

/usr/local/lib/python3.12/site-packages/gunicorn/workers/base.py in init_process(143)
  self.run()

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in run(125)
  self.run_for_one(timeout)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in run_for_one(69)
  self.accept(listener)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in accept(31)
  self.handle(listener, client, addr)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in handle(134)
  self.handle_request(listener, req, client, addr)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in handle_request(177)
  respiter = self.wsgi(environ, resp.start_response)

/usr/local/lib/python3.12/site-packages/sentry_sdk/utils.py in runner(1811)
  return sentry_patched_function(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/__init__.py in sentry_patched_wsgi_handler(191)
  return middleware(environ, start_response)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/wsgi.py in __call__(131)
  response = self.app(

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/__init__.py in sentry_patched_get_response(477)
  rv = old_get_response(self, request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in middleware(33)
  response = get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/allauth/account/middleware.py in middleware(36)
  response = get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/simple_history/middleware.py in middleware(41)
  return get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/django_htmx/middleware.py in __call__(43)
  return self.get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in __call__(172)
  response = self.get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/cachalot/panels.py in process_request(41)
  return super(CachalotPanel, self).process_request(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(94)
  return callback(request, *args, **kwargs)

/app/project/utils/decorators.py in apply_cache(68)
  cache.set(CACHE_KEY, response.render(), ttl)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/views.py in sentry_patched_render(41)
  return old_render(self)

/usr/local/lib/python3.12/site-packages/django/template/response.py in render(114)
  self.content = self.rendered_content

/usr/local/lib/python3.12/site-packages/sentry_sdk/utils.py in runner(1811)
  return sentry_patched_function(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/templates.py in rendered_content(77)
  return real_rendered_content.fget(self)

/usr/local/lib/python3.12/site-packages/django/template/response.py in rendered_content(92)
  return template.render(context, self._request)

/usr/local/lib/python3.12/site-packages/django/template/backends/django.py in render(107)
  return self.template.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(171)
  return self._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(159)
  return compiled_parent._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(159)
  return compiled_parent._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(65)
  result = block.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(65)
  result = block.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(210)
  return template.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(173)
  return self._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/defaulttags.py in render(327)
  return nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/defaulttags.py in render(243)
  nodelist.append(node.render_annotated(context))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/defaulttags.py in render(199)
  len_values = len(values)

/usr/local/lib/python3.12/site-packages/cachalot/monkey_patch.py in inner(38)
  return original(compiler, *args, **kwargs)

/usr/local/lib/python3.12/site-packages/cachalot/monkey_patch.py in inner(101)
  return _get_result_or_execute_query(

/usr/local/lib/python3.12/site-packages/cachalot/monkey_patch.py in _get_result_or_execute_query(47)
  data = cache.get_many(table_cache_keys + [cache_key])

0.5713 get_many (['76e323efd8711853e13c9f7cf976845908364eb2', '138549f5508bbba7283d6a0625e51c589d845e8f', 'e3a5db5a670ad803efb866441f33de58309be2e2', 'fc3acc787823b285126c82604af4b3480913125a'],) {} <django_redis.cache.RedisCache object at 0x78830fe11400>
/usr/local/bin/gunicorn in <module>(10)
  sys.exit(run())

/usr/local/lib/python3.12/site-packages/gunicorn/app/wsgiapp.py in run(66)
  WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]", prog=prog).run()

/usr/local/lib/python3.12/site-packages/gunicorn/app/base.py in run(235)
  super().run()

/usr/local/lib/python3.12/site-packages/gunicorn/app/base.py in run(71)
  Arbiter(self).run()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in run(201)
  self.manage_workers()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in manage_workers(570)
  self.spawn_workers()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in spawn_workers(641)
  self.spawn_worker()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in spawn_worker(608)
  worker.init_process()

/usr/local/lib/python3.12/site-packages/gunicorn/workers/base.py in init_process(143)
  self.run()

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in run(125)
  self.run_for_one(timeout)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in run_for_one(69)
  self.accept(listener)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in accept(31)
  self.handle(listener, client, addr)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in handle(134)
  self.handle_request(listener, req, client, addr)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in handle_request(177)
  respiter = self.wsgi(environ, resp.start_response)

/usr/local/lib/python3.12/site-packages/sentry_sdk/utils.py in runner(1811)
  return sentry_patched_function(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/__init__.py in sentry_patched_wsgi_handler(191)
  return middleware(environ, start_response)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/wsgi.py in __call__(131)
  response = self.app(

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/__init__.py in sentry_patched_get_response(477)
  rv = old_get_response(self, request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in middleware(33)
  response = get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/allauth/account/middleware.py in middleware(36)
  response = get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/simple_history/middleware.py in middleware(41)
  return get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/django_htmx/middleware.py in __call__(43)
  return self.get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in __call__(172)
  response = self.get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/cachalot/panels.py in process_request(41)
  return super(CachalotPanel, self).process_request(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(94)
  return callback(request, *args, **kwargs)

/app/project/utils/decorators.py in apply_cache(68)
  cache.set(CACHE_KEY, response.render(), ttl)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/views.py in sentry_patched_render(41)
  return old_render(self)

/usr/local/lib/python3.12/site-packages/django/template/response.py in render(114)
  self.content = self.rendered_content

/usr/local/lib/python3.12/site-packages/sentry_sdk/utils.py in runner(1811)
  return sentry_patched_function(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/templates.py in rendered_content(77)
  return real_rendered_content.fget(self)

/usr/local/lib/python3.12/site-packages/django/template/response.py in rendered_content(92)
  return template.render(context, self._request)

/usr/local/lib/python3.12/site-packages/django/template/backends/django.py in render(107)
  return self.template.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(171)
  return self._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(159)
  return compiled_parent._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(159)
  return compiled_parent._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(65)
  result = block.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(65)
  result = block.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(210)
  return template.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(173)
  return self._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/defaulttags.py in render(327)
  return nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/defaulttags.py in render(243)
  nodelist.append(node.render_annotated(context))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/defaulttags.py in render(199)
  len_values = len(values)

/usr/local/lib/python3.12/site-packages/cachalot/monkey_patch.py in inner(38)
  return original(compiler, *args, **kwargs)

/usr/local/lib/python3.12/site-packages/cachalot/monkey_patch.py in inner(101)
  return _get_result_or_execute_query(

/usr/local/lib/python3.12/site-packages/cachalot/monkey_patch.py in _get_result_or_execute_query(47)
  data = cache.get_many(table_cache_keys + [cache_key])

0.6546 get_many (['76e323efd8711853e13c9f7cf976845908364eb2', '138549f5508bbba7283d6a0625e51c589d845e8f', 'e3a5db5a670ad803efb866441f33de58309be2e2', '5bebf35500d398dfa86646d92c4c3e3209a46257'],) {} <django_redis.cache.RedisCache object at 0x78830fe11400>
/usr/local/bin/gunicorn in <module>(10)
  sys.exit(run())

/usr/local/lib/python3.12/site-packages/gunicorn/app/wsgiapp.py in run(66)
  WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]", prog=prog).run()

/usr/local/lib/python3.12/site-packages/gunicorn/app/base.py in run(235)
  super().run()

/usr/local/lib/python3.12/site-packages/gunicorn/app/base.py in run(71)
  Arbiter(self).run()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in run(201)
  self.manage_workers()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in manage_workers(570)
  self.spawn_workers()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in spawn_workers(641)
  self.spawn_worker()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in spawn_worker(608)
  worker.init_process()

/usr/local/lib/python3.12/site-packages/gunicorn/workers/base.py in init_process(143)
  self.run()

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in run(125)
  self.run_for_one(timeout)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in run_for_one(69)
  self.accept(listener)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in accept(31)
  self.handle(listener, client, addr)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in handle(134)
  self.handle_request(listener, req, client, addr)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in handle_request(177)
  respiter = self.wsgi(environ, resp.start_response)

/usr/local/lib/python3.12/site-packages/sentry_sdk/utils.py in runner(1811)
  return sentry_patched_function(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/__init__.py in sentry_patched_wsgi_handler(191)
  return middleware(environ, start_response)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/wsgi.py in __call__(131)
  response = self.app(

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/__init__.py in sentry_patched_get_response(477)
  rv = old_get_response(self, request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in middleware(33)
  response = get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/allauth/account/middleware.py in middleware(36)
  response = get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/simple_history/middleware.py in middleware(41)
  return get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/django_htmx/middleware.py in __call__(43)
  return self.get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in __call__(172)
  response = self.get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/cachalot/panels.py in process_request(41)
  return super(CachalotPanel, self).process_request(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(94)
  return callback(request, *args, **kwargs)

/app/project/utils/decorators.py in apply_cache(68)
  cache.set(CACHE_KEY, response.render(), ttl)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/views.py in sentry_patched_render(41)
  return old_render(self)

/usr/local/lib/python3.12/site-packages/django/template/response.py in render(114)
  self.content = self.rendered_content

/usr/local/lib/python3.12/site-packages/sentry_sdk/utils.py in runner(1811)
  return sentry_patched_function(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/templates.py in rendered_content(77)
  return real_rendered_content.fget(self)

/usr/local/lib/python3.12/site-packages/django/template/response.py in rendered_content(92)
  return template.render(context, self._request)

/usr/local/lib/python3.12/site-packages/django/template/backends/django.py in render(107)
  return self.template.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(171)
  return self._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(159)
  return compiled_parent._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(159)
  return compiled_parent._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(65)
  result = block.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(65)
  result = block.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(210)
  return template.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(173)
  return self._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/defaulttags.py in render(327)
  return nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/defaulttags.py in render(243)
  nodelist.append(node.render_annotated(context))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/defaulttags.py in render(199)
  len_values = len(values)

/usr/local/lib/python3.12/site-packages/cachalot/monkey_patch.py in inner(38)
  return original(compiler, *args, **kwargs)

/usr/local/lib/python3.12/site-packages/cachalot/monkey_patch.py in inner(101)
  return _get_result_or_execute_query(

/usr/local/lib/python3.12/site-packages/cachalot/monkey_patch.py in _get_result_or_execute_query(47)
  data = cache.get_many(table_cache_keys + [cache_key])

0.6269 get_many (['76e323efd8711853e13c9f7cf976845908364eb2', '138549f5508bbba7283d6a0625e51c589d845e8f', 'e3a5db5a670ad803efb866441f33de58309be2e2', '86a2e13683d21d8ddab507970316eb5603922141'],) {} <django_redis.cache.RedisCache object at 0x78830fe11400>
/usr/local/bin/gunicorn in <module>(10)
  sys.exit(run())

/usr/local/lib/python3.12/site-packages/gunicorn/app/wsgiapp.py in run(66)
  WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]", prog=prog).run()

/usr/local/lib/python3.12/site-packages/gunicorn/app/base.py in run(235)
  super().run()

/usr/local/lib/python3.12/site-packages/gunicorn/app/base.py in run(71)
  Arbiter(self).run()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in run(201)
  self.manage_workers()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in manage_workers(570)
  self.spawn_workers()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in spawn_workers(641)
  self.spawn_worker()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in spawn_worker(608)
  worker.init_process()

/usr/local/lib/python3.12/site-packages/gunicorn/workers/base.py in init_process(143)
  self.run()

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in run(125)
  self.run_for_one(timeout)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in run_for_one(69)
  self.accept(listener)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in accept(31)
  self.handle(listener, client, addr)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in handle(134)
  self.handle_request(listener, req, client, addr)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in handle_request(177)
  respiter = self.wsgi(environ, resp.start_response)

/usr/local/lib/python3.12/site-packages/sentry_sdk/utils.py in runner(1811)
  return sentry_patched_function(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/__init__.py in sentry_patched_wsgi_handler(191)
  return middleware(environ, start_response)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/wsgi.py in __call__(131)
  response = self.app(

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/__init__.py in sentry_patched_get_response(477)
  rv = old_get_response(self, request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in middleware(33)
  response = get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/allauth/account/middleware.py in middleware(36)
  response = get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/simple_history/middleware.py in middleware(41)
  return get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/django_htmx/middleware.py in __call__(43)
  return self.get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in __call__(172)
  response = self.get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/cachalot/panels.py in process_request(41)
  return super(CachalotPanel, self).process_request(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(94)
  return callback(request, *args, **kwargs)

/app/project/utils/decorators.py in apply_cache(68)
  cache.set(CACHE_KEY, response.render(), ttl)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/views.py in sentry_patched_render(41)
  return old_render(self)

/usr/local/lib/python3.12/site-packages/django/template/response.py in render(114)
  self.content = self.rendered_content

/usr/local/lib/python3.12/site-packages/sentry_sdk/utils.py in runner(1811)
  return sentry_patched_function(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/templates.py in rendered_content(77)
  return real_rendered_content.fget(self)

/usr/local/lib/python3.12/site-packages/django/template/response.py in rendered_content(92)
  return template.render(context, self._request)

/usr/local/lib/python3.12/site-packages/django/template/backends/django.py in render(107)
  return self.template.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(171)
  return self._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(159)
  return compiled_parent._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(159)
  return compiled_parent._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(65)
  result = block.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(65)
  result = block.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(210)
  return template.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(173)
  return self._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/defaulttags.py in render(327)
  return nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/defaulttags.py in render(243)
  nodelist.append(node.render_annotated(context))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/defaulttags.py in render(199)
  len_values = len(values)

/usr/local/lib/python3.12/site-packages/cachalot/monkey_patch.py in inner(38)
  return original(compiler, *args, **kwargs)

/usr/local/lib/python3.12/site-packages/cachalot/monkey_patch.py in inner(101)
  return _get_result_or_execute_query(

/usr/local/lib/python3.12/site-packages/cachalot/monkey_patch.py in _get_result_or_execute_query(47)
  data = cache.get_many(table_cache_keys + [cache_key])

0.7215 get_many (['76e323efd8711853e13c9f7cf976845908364eb2', '138549f5508bbba7283d6a0625e51c589d845e8f', 'e3a5db5a670ad803efb866441f33de58309be2e2', 'e8a490bbf9e3164b3c8eb87f09e6b741e9ce488b'],) {} <django_redis.cache.RedisCache object at 0x78830fe11400>
/usr/local/bin/gunicorn in <module>(10)
  sys.exit(run())

/usr/local/lib/python3.12/site-packages/gunicorn/app/wsgiapp.py in run(66)
  WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]", prog=prog).run()

/usr/local/lib/python3.12/site-packages/gunicorn/app/base.py in run(235)
  super().run()

/usr/local/lib/python3.12/site-packages/gunicorn/app/base.py in run(71)
  Arbiter(self).run()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in run(201)
  self.manage_workers()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in manage_workers(570)
  self.spawn_workers()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in spawn_workers(641)
  self.spawn_worker()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in spawn_worker(608)
  worker.init_process()

/usr/local/lib/python3.12/site-packages/gunicorn/workers/base.py in init_process(143)
  self.run()

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in run(125)
  self.run_for_one(timeout)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in run_for_one(69)
  self.accept(listener)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in accept(31)
  self.handle(listener, client, addr)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in handle(134)
  self.handle_request(listener, req, client, addr)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in handle_request(177)
  respiter = self.wsgi(environ, resp.start_response)

/usr/local/lib/python3.12/site-packages/sentry_sdk/utils.py in runner(1811)
  return sentry_patched_function(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/__init__.py in sentry_patched_wsgi_handler(191)
  return middleware(environ, start_response)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/wsgi.py in __call__(131)
  response = self.app(

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/__init__.py in sentry_patched_get_response(477)
  rv = old_get_response(self, request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in middleware(33)
  response = get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/allauth/account/middleware.py in middleware(36)
  response = get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/simple_history/middleware.py in middleware(41)
  return get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/django_htmx/middleware.py in __call__(43)
  return self.get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in __call__(172)
  response = self.get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/cachalot/panels.py in process_request(41)
  return super(CachalotPanel, self).process_request(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(94)
  return callback(request, *args, **kwargs)

/app/project/utils/decorators.py in apply_cache(68)
  cache.set(CACHE_KEY, response.render(), ttl)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/views.py in sentry_patched_render(41)
  return old_render(self)

/usr/local/lib/python3.12/site-packages/django/template/response.py in render(114)
  self.content = self.rendered_content

/usr/local/lib/python3.12/site-packages/sentry_sdk/utils.py in runner(1811)
  return sentry_patched_function(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/templates.py in rendered_content(77)
  return real_rendered_content.fget(self)

/usr/local/lib/python3.12/site-packages/django/template/response.py in rendered_content(92)
  return template.render(context, self._request)

/usr/local/lib/python3.12/site-packages/django/template/backends/django.py in render(107)
  return self.template.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(171)
  return self._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(159)
  return compiled_parent._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(159)
  return compiled_parent._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(65)
  result = block.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(65)
  result = block.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(210)
  return template.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(173)
  return self._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/defaulttags.py in render(327)
  return nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/defaulttags.py in render(243)
  nodelist.append(node.render_annotated(context))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/defaulttags.py in render(199)
  len_values = len(values)

/usr/local/lib/python3.12/site-packages/cachalot/monkey_patch.py in inner(38)
  return original(compiler, *args, **kwargs)

/usr/local/lib/python3.12/site-packages/cachalot/monkey_patch.py in inner(101)
  return _get_result_or_execute_query(

/usr/local/lib/python3.12/site-packages/cachalot/monkey_patch.py in _get_result_or_execute_query(47)
  data = cache.get_many(table_cache_keys + [cache_key])

0.4825 get_many (['76e323efd8711853e13c9f7cf976845908364eb2', '138549f5508bbba7283d6a0625e51c589d845e8f', 'e3a5db5a670ad803efb866441f33de58309be2e2', '0e2416624833800c5089032d537efd679fe1718d'],) {} <django_redis.cache.RedisCache object at 0x78830fe11400>
/usr/local/bin/gunicorn in <module>(10)
  sys.exit(run())

/usr/local/lib/python3.12/site-packages/gunicorn/app/wsgiapp.py in run(66)
  WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]", prog=prog).run()

/usr/local/lib/python3.12/site-packages/gunicorn/app/base.py in run(235)
  super().run()

/usr/local/lib/python3.12/site-packages/gunicorn/app/base.py in run(71)
  Arbiter(self).run()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in run(201)
  self.manage_workers()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in manage_workers(570)
  self.spawn_workers()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in spawn_workers(641)
  self.spawn_worker()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in spawn_worker(608)
  worker.init_process()

/usr/local/lib/python3.12/site-packages/gunicorn/workers/base.py in init_process(143)
  self.run()

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in run(125)
  self.run_for_one(timeout)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in run_for_one(69)
  self.accept(listener)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in accept(31)
  self.handle(listener, client, addr)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in handle(134)
  self.handle_request(listener, req, client, addr)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in handle_request(177)
  respiter = self.wsgi(environ, resp.start_response)

/usr/local/lib/python3.12/site-packages/sentry_sdk/utils.py in runner(1811)
  return sentry_patched_function(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/__init__.py in sentry_patched_wsgi_handler(191)
  return middleware(environ, start_response)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/wsgi.py in __call__(131)
  response = self.app(

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/__init__.py in sentry_patched_get_response(477)
  rv = old_get_response(self, request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in middleware(33)
  response = get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/allauth/account/middleware.py in middleware(36)
  response = get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/simple_history/middleware.py in middleware(41)
  return get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/django_htmx/middleware.py in __call__(43)
  return self.get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in __call__(172)
  response = self.get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/cachalot/panels.py in process_request(41)
  return super(CachalotPanel, self).process_request(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(94)
  return callback(request, *args, **kwargs)

/app/project/utils/decorators.py in apply_cache(68)
  cache.set(CACHE_KEY, response.render(), ttl)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/views.py in sentry_patched_render(41)
  return old_render(self)

/usr/local/lib/python3.12/site-packages/django/template/response.py in render(114)
  self.content = self.rendered_content

/usr/local/lib/python3.12/site-packages/sentry_sdk/utils.py in runner(1811)
  return sentry_patched_function(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/templates.py in rendered_content(77)
  return real_rendered_content.fget(self)

/usr/local/lib/python3.12/site-packages/django/template/response.py in rendered_content(92)
  return template.render(context, self._request)

/usr/local/lib/python3.12/site-packages/django/template/backends/django.py in render(107)
  return self.template.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(171)
  return self._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(159)
  return compiled_parent._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(159)
  return compiled_parent._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(65)
  result = block.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(65)
  result = block.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/defaulttags.py in render(550)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/library.py in render(321)
  output = self.func(*resolved_args, **resolved_kwargs)

/app/project/lms_base/templatetags/utils.py in get_next_step(116)
  return step.get_next(published_only=True)

/app/project/lms_base/models.py in get_next(257)
  return self._get_neighbour_step(is_next=True, published_only=published_only)

/app/project/lms_base/models.py in _get_neighbour_step(213)
  step = self.__class__.next_previous_manager.get_next_previous(is_next, self, published_only=published_only)

/app/project/lms_base/models.py in get_next_previous(93)
  return qs.first()

/usr/local/lib/python3.12/site-packages/cachalot/monkey_patch.py in inner(38)
  return original(compiler, *args, **kwargs)

/usr/local/lib/python3.12/site-packages/cachalot/monkey_patch.py in inner(101)
  return _get_result_or_execute_query(

/usr/local/lib/python3.12/site-packages/cachalot/monkey_patch.py in _get_result_or_execute_query(47)
  data = cache.get_many(table_cache_keys + [cache_key])

0.4619 set_many ({'0e2416624833800c5089032d537efd679fe1718d': (1765842516.1993322, [[(1174, datetime.datetime(2022, 4, 7, 8, 54, 47, 160771, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 1, 30, 14, 34, 23, 383805, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 1, 30, 14, 34, 23, 333581, tzinfo=datetime.timezone.utc), False, '[]', 'South-South knowledge exchange', None, 'South-South knowledge exchange', None, '', None, None, None, 'Reflect on South-South knowledge exchange.', None, 'Reflect on South-South knowledge exchange.', None, '', 'south-south-knowledge-exchange', 'Knowledge flows. Currently, many global health advocates speak of “mutual learning for change”. Yet knowledge exchange is complex.\r\n{.lead}\r\n\r\nWe invite you to think about at least one of the following questions: \r\n\r\n<br>\r\n \r\n* What complex knowledge exchange mechanisms come to mind? \r\n* Are you yourself involved in South-South knowledge exchange?\r\n* Are there cases in which you think South-South knowledge exchange is particularly needed? \r\n* Why are you interested in South-South knowledge exchange? \r\n \r\nThose of you who like to approach these questions visually could take a photograph or make a drawing of the complex knowledge exchange mechanisms that come to mind. You can then upload it on this [Padlet](https://padlet.com/University_of_Basel/nqf9ku2h7kzom3bs){:target="_blank"} to share it with the other learners. Please note that you should only upload pictures where you are sure about the copyright and that do not infringe on the rights of other people.', '', 'Knowledge flows. Currently, many global health advocates speak of “mutual learning for change”. Yet knowledge exchange is complex.\r\n{.lead}\r\n\r\nWe invite you to think about at least one of the following questions: \r\n\r\n<br>\r\n \r\n* What complex knowledge exchange mechanisms come to mind? \r\n* Are you yourself involved in South-South knowledge exchange?\r\n* Are there cases in which you think South-South knowledge exchange is particularly needed? \r\n* Why are you interested in South-South knowledge exchange? \r\n \r\nThose of you who like to approach these questions visually could take a photograph or make a drawing of the complex knowledge exchange mechanisms that come to mind. You can then upload it on this [Padlet](https://padlet.com/University_of_Basel/nqf9ku2h7kzom3bs){:target="_blank"} to share it with the other learners. Please note that you should only upload pictures where you are sure about the copyright and that do not infringe on the rights of other people.', '', '', '', '', '', None, None, None, None, '', '', '', '', 'TT', '', 9, 'published', True, 'Apart from the Padlet, you can also share your thoughts in the [comments](#comments) section below.', None, 'Apart from the Padlet, you can also share your thoughts in the [comments](#comments) section below.', None, 216)]])}, None) {} <django_redis.cache.RedisCache object at 0x78830fe11400>
/usr/local/bin/gunicorn in <module>(10)
  sys.exit(run())

/usr/local/lib/python3.12/site-packages/gunicorn/app/wsgiapp.py in run(66)
  WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]", prog=prog).run()

/usr/local/lib/python3.12/site-packages/gunicorn/app/base.py in run(235)
  super().run()

/usr/local/lib/python3.12/site-packages/gunicorn/app/base.py in run(71)
  Arbiter(self).run()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in run(201)
  self.manage_workers()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in manage_workers(570)
  self.spawn_workers()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in spawn_workers(641)
  self.spawn_worker()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in spawn_worker(608)
  worker.init_process()

/usr/local/lib/python3.12/site-packages/gunicorn/workers/base.py in init_process(143)
  self.run()

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in run(125)
  self.run_for_one(timeout)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in run_for_one(69)
  self.accept(listener)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in accept(31)
  self.handle(listener, client, addr)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in handle(134)
  self.handle_request(listener, req, client, addr)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in handle_request(177)
  respiter = self.wsgi(environ, resp.start_response)

/usr/local/lib/python3.12/site-packages/sentry_sdk/utils.py in runner(1811)
  return sentry_patched_function(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/__init__.py in sentry_patched_wsgi_handler(191)
  return middleware(environ, start_response)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/wsgi.py in __call__(131)
  response = self.app(

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/__init__.py in sentry_patched_get_response(477)
  rv = old_get_response(self, request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in middleware(33)
  response = get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/allauth/account/middleware.py in middleware(36)
  response = get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/simple_history/middleware.py in middleware(41)
  return get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/django_htmx/middleware.py in __call__(43)
  return self.get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in __call__(172)
  response = self.get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/cachalot/panels.py in process_request(41)
  return super(CachalotPanel, self).process_request(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(94)
  return callback(request, *args, **kwargs)

/app/project/utils/decorators.py in apply_cache(68)
  cache.set(CACHE_KEY, response.render(), ttl)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/views.py in sentry_patched_render(41)
  return old_render(self)

/usr/local/lib/python3.12/site-packages/django/template/response.py in render(114)
  self.content = self.rendered_content

/usr/local/lib/python3.12/site-packages/sentry_sdk/utils.py in runner(1811)
  return sentry_patched_function(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/templates.py in rendered_content(77)
  return real_rendered_content.fget(self)

/usr/local/lib/python3.12/site-packages/django/template/response.py in rendered_content(92)
  return template.render(context, self._request)

/usr/local/lib/python3.12/site-packages/django/template/backends/django.py in render(107)
  return self.template.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(171)
  return self._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(159)
  return compiled_parent._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(159)
  return compiled_parent._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(65)
  result = block.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(65)
  result = block.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/defaulttags.py in render(550)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/library.py in render(321)
  output = self.func(*resolved_args, **resolved_kwargs)

/app/project/lms_base/templatetags/utils.py in get_next_step(116)
  return step.get_next(published_only=True)

/app/project/lms_base/models.py in get_next(257)
  return self._get_neighbour_step(is_next=True, published_only=published_only)

/app/project/lms_base/models.py in _get_neighbour_step(213)
  step = self.__class__.next_previous_manager.get_next_previous(is_next, self, published_only=published_only)

/app/project/lms_base/models.py in get_next_previous(93)
  return qs.first()

/usr/local/lib/python3.12/site-packages/cachalot/monkey_patch.py in inner(38)
  return original(compiler, *args, **kwargs)

/usr/local/lib/python3.12/site-packages/cachalot/monkey_patch.py in inner(101)
  return _get_result_or_execute_query(

/usr/local/lib/python3.12/site-packages/cachalot/monkey_patch.py in _get_result_or_execute_query(76)
  cache.set_many(to_be_set, cachalot_settings.CACHALOT_TIMEOUT)

0.4459 get_many (['76e323efd8711853e13c9f7cf976845908364eb2', '138549f5508bbba7283d6a0625e51c589d845e8f', 'e3a5db5a670ad803efb866441f33de58309be2e2', '19dd2c613148da9346cc3197f90dccbcd7fc783b'],) {} <django_redis.cache.RedisCache object at 0x78830fe11400>
/usr/local/bin/gunicorn in <module>(10)
  sys.exit(run())

/usr/local/lib/python3.12/site-packages/gunicorn/app/wsgiapp.py in run(66)
  WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]", prog=prog).run()

/usr/local/lib/python3.12/site-packages/gunicorn/app/base.py in run(235)
  super().run()

/usr/local/lib/python3.12/site-packages/gunicorn/app/base.py in run(71)
  Arbiter(self).run()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in run(201)
  self.manage_workers()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in manage_workers(570)
  self.spawn_workers()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in spawn_workers(641)
  self.spawn_worker()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in spawn_worker(608)
  worker.init_process()

/usr/local/lib/python3.12/site-packages/gunicorn/workers/base.py in init_process(143)
  self.run()

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in run(125)
  self.run_for_one(timeout)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in run_for_one(69)
  self.accept(listener)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in accept(31)
  self.handle(listener, client, addr)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in handle(134)
  self.handle_request(listener, req, client, addr)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in handle_request(177)
  respiter = self.wsgi(environ, resp.start_response)

/usr/local/lib/python3.12/site-packages/sentry_sdk/utils.py in runner(1811)
  return sentry_patched_function(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/__init__.py in sentry_patched_wsgi_handler(191)
  return middleware(environ, start_response)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/wsgi.py in __call__(131)
  response = self.app(

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/__init__.py in sentry_patched_get_response(477)
  rv = old_get_response(self, request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in middleware(33)
  response = get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/allauth/account/middleware.py in middleware(36)
  response = get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/simple_history/middleware.py in middleware(41)
  return get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/django_htmx/middleware.py in __call__(43)
  return self.get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in __call__(172)
  response = self.get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/cachalot/panels.py in process_request(41)
  return super(CachalotPanel, self).process_request(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(94)
  return callback(request, *args, **kwargs)

/app/project/utils/decorators.py in apply_cache(68)
  cache.set(CACHE_KEY, response.render(), ttl)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/views.py in sentry_patched_render(41)
  return old_render(self)

/usr/local/lib/python3.12/site-packages/django/template/response.py in render(114)
  self.content = self.rendered_content

/usr/local/lib/python3.12/site-packages/sentry_sdk/utils.py in runner(1811)
  return sentry_patched_function(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/templates.py in rendered_content(77)
  return real_rendered_content.fget(self)

/usr/local/lib/python3.12/site-packages/django/template/response.py in rendered_content(92)
  return template.render(context, self._request)

/usr/local/lib/python3.12/site-packages/django/template/backends/django.py in render(107)
  return self.template.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(171)
  return self._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(159)
  return compiled_parent._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(159)
  return compiled_parent._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(65)
  result = block.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(65)
  result = block.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/defaulttags.py in render(550)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/library.py in render(321)
  output = self.func(*resolved_args, **resolved_kwargs)

/app/project/lms_base/templatetags/utils.py in get_previous_step(99)
  return step.get_previous(published_only=True)

/app/project/lms_base/models.py in get_previous(263)
  return self._get_neighbour_step(is_next=False, published_only=published_only)

/app/project/lms_base/models.py in _get_neighbour_step(213)
  step = self.__class__.next_previous_manager.get_next_previous(is_next, self, published_only=published_only)

/app/project/lms_base/models.py in get_next_previous(94)
  return qs.last()

/usr/local/lib/python3.12/site-packages/cachalot/monkey_patch.py in inner(38)
  return original(compiler, *args, **kwargs)

/usr/local/lib/python3.12/site-packages/cachalot/monkey_patch.py in inner(101)
  return _get_result_or_execute_query(

/usr/local/lib/python3.12/site-packages/cachalot/monkey_patch.py in _get_result_or_execute_query(47)
  data = cache.get_many(table_cache_keys + [cache_key])

0.5560 set_many ({'19dd2c613148da9346cc3197f90dccbcd7fc783b': (1765842516.209745, [[(1172, datetime.datetime(2022, 4, 7, 8, 53, 43, 532838, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 1, 30, 14, 22, 58, 822437, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 1, 30, 14, 22, 58, 769372, tzinfo=datetime.timezone.utc), False, '[]', 'An example of South-South cooperation', None, 'An example of South-South cooperation', None, '', None, None, None, 'Andrea Kifyasi and Tanja Hammel investigate South-South knowledge circulation, the Afro-Asian Peoples’ Solidarity Organisation and TCM.', None, 'Andrea Kifyasi and Tanja Hammel investigate South-South knowledge circulation, the Afro-Asian Peoples’ Solidarity Organisation and TCM.', None, '', 'an-example-of-south-south-cooperation', 'The Bandung Conference of 1955 and sister conferences (in Cairo 1957, Conakry 1960, and Moshi 1963) were milestones for South-South cooperation.\r\n{.lead}\r\n\r\n\r\n#The Afro-Asian Peoples’ Solidarity Organisation\r\nAt the Cairo Conference, 127 delegates from 19 African countries and territories were present, and the Afro-Asian Peoples’ Solidarity Movement (later Afro-Asian Peoples’ Solidarity Organisation (AAPSO)) was born. The “Cairo Declaration” condemned Western imperialism, colonialism and neo-colonialism, and made Cairo the headquarters of the Organisation. The vision for unity and helping one another aimed at counteracting the dominance of Northern aid.\r\n\r\nThe AAPSO conference, convened at Conakry in April 1960, contended: “We declare that foreign capital is not a master but only a guest in our countries. And we will not offend our guest, provided he agrees to behave decently and make no attempt to usurp.” [^1]\r\n\r\nThe AAPSO Council denounced all aid with expressed or unexpressed strings in 1961 and recommended production and exchanges of technical know-how among African and Asian people. Exchange of experts, teachers, doctors, writers, artists, journalists, workers, students and other technical experts was encouraged to be exercised on the broadest possible scale.\r\n\r\n<br>\r\n\r\n#China’s Medical Assistance to Tanzania\r\nOne prime example of this is China’s dispatch of medical teams and its technical experts who worked in different hospitals and pharmaceutical industries in Tanzania.\r\n\r\nThe government of China was among the first countries from the Global South to provide medical aid to Asia, Africa and Latin America. In 1964, the Chinese government formulated principles governing its economic and technical aid to foreign countries which resonated to the spirit of self-reliance advocated by Afro-Asian countries.\r\n\r\nIn the same vein, the Tanzanian government under the Arusha Declaration of 1967 spearheaded “socialism” and “self-reliance”. With these two principles, it anticipated getting rid of exploitation, enhancing the government’s control of the major means of production, and its effective use of local resources as primary agents of development. The government welcomed assistance which promised to help the country to move through a transition towards self-reliance.\r\n\r\nUnder Mao’s philosophy, the Chinese doctors perceived recipients to have prior knowledge that was worth sharing while working together. Mao underscored to Chinese experts working overseas that:\r\n\r\n<br>\r\n\r\n> "A country, whether big or small, has its knowledge. All of us should have the habit of being students to learn from our colleagues in every matter, whether language or\r\n> traditions, whether the knowledge of the disease or the work of artisans, whether\r\n> work plans or how to do, physicians, specialists even patients all of them are our\r\n> teachers." [^2]\r\n\r\nChinese doctors dispatched to Tanzania in the 1960s and 70s were more formally trained than many local medical workers. However, under Mao’s teachings, they had to learn from the local medical workers. Mao’s philosophy became the basis for mutual understandings between medical workers of the two countries. Chinese doctors worked cooperatively with local medical doctors.\r\n\r\n<br>\r\n\r\n#TCM in the HIV Pandemic\r\nIn 1986, AIDS was declared a major public health concern by the WHO. The Tanzanian government requested Chinese assistance to fight the HIV/AIDS pandemic in March 1987 (after Julius Kambarage Nyerere’s trip to China) due to inadequate measures taken by the WHO. The Chinese president Deng Xiaoping accepted the request and ordered the Chinese Ministry of Health to dispatch medical experts to carry out HIV research and treatment in a project using Traditional Chinese Medicine (TCM). The China Academy of Chinese Medical Sciences (CACMS) was responsible for this project.\r\nTanzania was the first place for CACMS research to treat HIV. A CACMS HIV clinic was established. Without experience, clinical care was started in a trial-and-error practice. Many services were offered for free. Patients were mainly women and children from low-income families. With the invention of antiretrovirals in 2004 many patients left the clinic and its reputation suffered.\r\nChinese HIV projects in Tanzania maintained the supremacy of TCM in Tanzania. Local medical doctors did not gain access to TCM knowledge and Chinese experts maintained dominance. The main objective of the Chinese-sponsored HIV project was to treat patients and explore effective TCM capable during the disease. They tested six herbs until 2006. These herbs helped to extend lives and improve the quality of life.\r\n\r\nAccording to Doctor Wang Jian, who was the Deputy Director of the TCM Centre for AIDS Prevention and Treatment, China Academy of Chinese Medical Sciences, and who worked on HIV/AIDS Treatment with TCM for more than twenty years, antiretrovirals focused on getting rid of symptoms, but TCM addressed the root of the cause of the disease: TCM worked on the defence of a person’s immune system, while antiretrovirals work to suppress HIV.\r\n\r\n<br>\r\n\r\n*Authors: Dr Andrea Azizi Kifyasi, Dr Tanja Hammel*\r\n\r\n<br>\r\n\r\nReferences\r\n{.footnote-title}\r\n\r\nKifyasi A A. Neither “Saviour” nor “Exploiter”: A Historical Study of China’s Medical Assistance in Post-Colonial Tanzania. PhD Dissertation [Internet]. 2021 [cited 1 December 2021]. Available from: [https://edoc.unibas.ch/83588/1/Andrea A Kifyasi_Dissertation_ edoc.pdf](https://edoc.unibas.ch/83588/1/Andrea A Kifyasi_Dissertation_ edoc.pdf){:target=“_blank”}\r\n{.citation-indented}\r\n\r\nPermanent Secretariat of the Afro-Asian Peoples’ Solidarity Organisations, Afro-Asian Peoples’ Solidarity Movement. Cairo. 41-42.\r\n{.citation-indented}\r\n\r\nReport of the Chinese medical doctors to the Minister for Health, 27th January 1967. ZNA. Group Index. AJ. Medical Department, File No. AJ29/322, 1964 September to 1966 December, Ripoti ya Madaktari wa Kichina.\r\n{.citation-indented}\r\n\r\n[^1]: Permanent Secretariat of the Afro-Asian Peoples’ Solidarity Organisations, Afro-Asian Peoples’ Solidarity Movement. Cairo. 41-42. Cited in: Kifyasi A A. Neither “Saviour” nor “Exploiter”: A Historical Study of China’s Medical Assistance in Post-Colonial Tanzania. PhD Dissertation. 2021 [cited 1 December 2021]; 51.\r\n[^2]: Report of the Chinese medical doctors to the Minister for Health, 27th January 1967.', '', 'The Bandung Conference of 1955 and sister conferences (in Cairo 1957, Conakry 1960, and Moshi 1963) were milestones for South-South cooperation.\r\n{.lead}\r\n\r\n\r\n#The Afro-Asian Peoples’ Solidarity Organisation\r\nAt the Cairo Conference, 127 delegates from 19 African countries and territories were present, and the Afro-Asian Peoples’ Solidarity Movement (later Afro-Asian Peoples’ Solidarity Organisation (AAPSO)) was born. The “Cairo Declaration” condemned Western imperialism, colonialism and neo-colonialism, and made Cairo the headquarters of the Organisation. The vision for unity and helping one another aimed at counteracting the dominance of Northern aid.\r\n\r\nThe AAPSO conference, convened at Conakry in April 1960, contended: “We declare that foreign capital is not a master but only a guest in our countries. And we will not offend our guest, provided he agrees to behave decently and make no attempt to usurp.” [^1]\r\n\r\nThe AAPSO Council denounced all aid with expressed or unexpressed strings in 1961 and recommended production and exchanges of technical know-how among African and Asian people. Exchange of experts, teachers, doctors, writers, artists, journalists, workers, students and other technical experts was encouraged to be exercised on the broadest possible scale.\r\n\r\n<br>\r\n\r\n#China’s Medical Assistance to Tanzania\r\nOne prime example of this is China’s dispatch of medical teams and its technical experts who worked in different hospitals and pharmaceutical industries in Tanzania.\r\n\r\nThe government of China was among the first countries from the Global South to provide medical aid to Asia, Africa and Latin America. In 1964, the Chinese government formulated principles governing its economic and technical aid to foreign countries which resonated to the spirit of self-reliance advocated by Afro-Asian countries.\r\n\r\nIn the same vein, the Tanzanian government under the Arusha Declaration of 1967 spearheaded “socialism” and “self-reliance”. With these two principles, it anticipated getting rid of exploitation, enhancing the government’s control of the major means of production, and its effective use of local resources as primary agents of development. The government welcomed assistance which promised to help the country to move through a transition towards self-reliance.\r\n\r\nUnder Mao’s philosophy, the Chinese doctors perceived recipients to have prior knowledge that was worth sharing while working together. Mao underscored to Chinese experts working overseas that:\r\n\r\n<br>\r\n\r\n> "A country, whether big or small, has its knowledge. All of us should have the habit of being students to learn from our colleagues in every matter, whether language or\r\n> traditions, whether the knowledge of the disease or the work of artisans, whether\r\n> work plans or how to do, physicians, specialists even patients all of them are our\r\n> teachers." [^2]\r\n\r\nChinese doctors dispatched to Tanzania in the 1960s and 70s were more formally trained than many local medical workers. However, under Mao’s teachings, they had to learn from the local medical workers. Mao’s philosophy became the basis for mutual understandings between medical workers of the two countries. Chinese doctors worked cooperatively with local medical doctors.\r\n\r\n<br>\r\n\r\n#TCM in the HIV Pandemic\r\nIn 1986, AIDS was declared a major public health concern by the WHO. The Tanzanian government requested Chinese assistance to fight the HIV/AIDS pandemic in March 1987 (after Julius Kambarage Nyerere’s trip to China) due to inadequate measures taken by the WHO. The Chinese president Deng Xiaoping accepted the request and ordered the Chinese Ministry of Health to dispatch medical experts to carry out HIV research and treatment in a project using Traditional Chinese Medicine (TCM). The China Academy of Chinese Medical Sciences (CACMS) was responsible for this project.\r\nTanzania was the first place for CACMS research to treat HIV. A CACMS HIV clinic was established. Without experience, clinical care was started in a trial-and-error practice. Many services were offered for free. Patients were mainly women and children from low-income families. With the invention of antiretrovirals in 2004 many patients left the clinic and its reputation suffered.\r\nChinese HIV projects in Tanzania maintained the supremacy of TCM in Tanzania. Local medical doctors did not gain access to TCM knowledge and Chinese experts maintained dominance. The main objective of the Chinese-sponsored HIV project was to treat patients and explore effective TCM capable during the disease. They tested six herbs until 2006. These herbs helped to extend lives and improve the quality of life.\r\n\r\nAccording to Doctor Wang Jian, who was the Deputy Director of the TCM Centre for AIDS Prevention and Treatment, China Academy of Chinese Medical Sciences, and who worked on HIV/AIDS Treatment with TCM for more than twenty years, antiretrovirals focused on getting rid of symptoms, but TCM addressed the root of the cause of the disease: TCM worked on the defence of a person’s immune system, while antiretrovirals work to suppress HIV.\r\n\r\n<br>\r\n\r\n*Authors: Dr Andrea Azizi Kifyasi, Dr Tanja Hammel*\r\n\r\n<br>\r\n\r\nReferences\r\n{.footnote-title}\r\n\r\nKifyasi A A. Neither “Saviour” nor “Exploiter”: A Historical Study of China’s Medical Assistance in Post-Colonial Tanzania. PhD Dissertation [Internet]. 2021 [cited 1 December 2021]. Available from: [https://edoc.unibas.ch/83588/1/Andrea A Kifyasi_Dissertation_ edoc.pdf](https://edoc.unibas.ch/83588/1/Andrea A Kifyasi_Dissertation_ edoc.pdf){:target=“_blank”}\r\n{.citation-indented}\r\n\r\nPermanent Secretariat of the Afro-Asian Peoples’ Solidarity Organisations, Afro-Asian Peoples’ Solidarity Movement. Cairo. 41-42.\r\n{.citation-indented}\r\n\r\nReport of the Chinese medical doctors to the Minister for Health, 27th January 1967. ZNA. Group Index. AJ. Medical Department, File No. AJ29/322, 1964 September to 1966 December, Ripoti ya Madaktari wa Kichina.\r\n{.citation-indented}\r\n\r\n[^1]: Permanent Secretariat of the Afro-Asian Peoples’ Solidarity Organisations, Afro-Asian Peoples’ Solidarity Movement. Cairo. 41-42. Cited in: Kifyasi A A. Neither “Saviour” nor “Exploiter”: A Historical Study of China’s Medical Assistance in Post-Colonial Tanzania. PhD Dissertation. 2021 [cited 1 December 2021]; 51.\r\n[^2]: Report of the Chinese medical doctors to the Minister for Health, 27th January 1967.', '', '', '', '', '', None, None, None, None, '', '', '', '', 'TT', '', 7, 'published', True, 'What do you think about this example? Do you know other examples of South-South knowledge transfer and circulation? Please share and discuss your thoughts in the [comments](#comments) section below.', None, 'What do you think about this example? Do you know other examples of South-South knowledge transfer and circulation? Please share and discuss your thoughts in the [comments](#comments) section below.', None, 216)]])}, None) {} <django_redis.cache.RedisCache object at 0x78830fe11400>
/usr/local/bin/gunicorn in <module>(10)
  sys.exit(run())

/usr/local/lib/python3.12/site-packages/gunicorn/app/wsgiapp.py in run(66)
  WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]", prog=prog).run()

/usr/local/lib/python3.12/site-packages/gunicorn/app/base.py in run(235)
  super().run()

/usr/local/lib/python3.12/site-packages/gunicorn/app/base.py in run(71)
  Arbiter(self).run()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in run(201)
  self.manage_workers()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in manage_workers(570)
  self.spawn_workers()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in spawn_workers(641)
  self.spawn_worker()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in spawn_worker(608)
  worker.init_process()

/usr/local/lib/python3.12/site-packages/gunicorn/workers/base.py in init_process(143)
  self.run()

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in run(125)
  self.run_for_one(timeout)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in run_for_one(69)
  self.accept(listener)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in accept(31)
  self.handle(listener, client, addr)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in handle(134)
  self.handle_request(listener, req, client, addr)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in handle_request(177)
  respiter = self.wsgi(environ, resp.start_response)

/usr/local/lib/python3.12/site-packages/sentry_sdk/utils.py in runner(1811)
  return sentry_patched_function(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/__init__.py in sentry_patched_wsgi_handler(191)
  return middleware(environ, start_response)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/wsgi.py in __call__(131)
  response = self.app(

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/__init__.py in sentry_patched_get_response(477)
  rv = old_get_response(self, request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in middleware(33)
  response = get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/allauth/account/middleware.py in middleware(36)
  response = get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/simple_history/middleware.py in middleware(41)
  return get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/django_htmx/middleware.py in __call__(43)
  return self.get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in __call__(172)
  response = self.get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/cachalot/panels.py in process_request(41)
  return super(CachalotPanel, self).process_request(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(94)
  return callback(request, *args, **kwargs)

/app/project/utils/decorators.py in apply_cache(68)
  cache.set(CACHE_KEY, response.render(), ttl)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/views.py in sentry_patched_render(41)
  return old_render(self)

/usr/local/lib/python3.12/site-packages/django/template/response.py in render(114)
  self.content = self.rendered_content

/usr/local/lib/python3.12/site-packages/sentry_sdk/utils.py in runner(1811)
  return sentry_patched_function(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/templates.py in rendered_content(77)
  return real_rendered_content.fget(self)

/usr/local/lib/python3.12/site-packages/django/template/response.py in rendered_content(92)
  return template.render(context, self._request)

/usr/local/lib/python3.12/site-packages/django/template/backends/django.py in render(107)
  return self.template.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(171)
  return self._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(159)
  return compiled_parent._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(159)
  return compiled_parent._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(65)
  result = block.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(65)
  result = block.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/defaulttags.py in render(550)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/library.py in render(321)
  output = self.func(*resolved_args, **resolved_kwargs)

/app/project/lms_base/templatetags/utils.py in get_previous_step(99)
  return step.get_previous(published_only=True)

/app/project/lms_base/models.py in get_previous(263)
  return self._get_neighbour_step(is_next=False, published_only=published_only)

/app/project/lms_base/models.py in _get_neighbour_step(213)
  step = self.__class__.next_previous_manager.get_next_previous(is_next, self, published_only=published_only)

/app/project/lms_base/models.py in get_next_previous(94)
  return qs.last()

/usr/local/lib/python3.12/site-packages/cachalot/monkey_patch.py in inner(38)
  return original(compiler, *args, **kwargs)

/usr/local/lib/python3.12/site-packages/cachalot/monkey_patch.py in inner(101)
  return _get_result_or_execute_query(

/usr/local/lib/python3.12/site-packages/cachalot/monkey_patch.py in _get_result_or_execute_query(76)
  cache.set_many(to_be_set, cachalot_settings.CACHALOT_TIMEOUT)

0.3171 get_many (['e3a5db5a670ad803efb866441f33de58309be2e2', '53169bc24a037802f3e42b2df3d6e48b7ae8482f', '542c27005f4e84288827ce70a7d49bc73324a5e7', '5371ca290f846e75243480c35969046bdaaef31d'],) {} <django_redis.cache.RedisCache object at 0x78830fe11400>
/usr/local/bin/gunicorn in <module>(10)
  sys.exit(run())

/usr/local/lib/python3.12/site-packages/gunicorn/app/wsgiapp.py in run(66)
  WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]", prog=prog).run()

/usr/local/lib/python3.12/site-packages/gunicorn/app/base.py in run(235)
  super().run()

/usr/local/lib/python3.12/site-packages/gunicorn/app/base.py in run(71)
  Arbiter(self).run()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in run(201)
  self.manage_workers()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in manage_workers(570)
  self.spawn_workers()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in spawn_workers(641)
  self.spawn_worker()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in spawn_worker(608)
  worker.init_process()

/usr/local/lib/python3.12/site-packages/gunicorn/workers/base.py in init_process(143)
  self.run()

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in run(125)
  self.run_for_one(timeout)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in run_for_one(69)
  self.accept(listener)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in accept(31)
  self.handle(listener, client, addr)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in handle(134)
  self.handle_request(listener, req, client, addr)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in handle_request(177)
  respiter = self.wsgi(environ, resp.start_response)

/usr/local/lib/python3.12/site-packages/sentry_sdk/utils.py in runner(1811)
  return sentry_patched_function(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/__init__.py in sentry_patched_wsgi_handler(191)
  return middleware(environ, start_response)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/wsgi.py in __call__(131)
  response = self.app(

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/__init__.py in sentry_patched_get_response(477)
  rv = old_get_response(self, request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in middleware(33)
  response = get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/allauth/account/middleware.py in middleware(36)
  response = get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/simple_history/middleware.py in middleware(41)
  return get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/django_htmx/middleware.py in __call__(43)
  return self.get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in __call__(172)
  response = self.get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/cachalot/panels.py in process_request(41)
  return super(CachalotPanel, self).process_request(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(94)
  return callback(request, *args, **kwargs)

/app/project/utils/decorators.py in apply_cache(68)
  cache.set(CACHE_KEY, response.render(), ttl)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/views.py in sentry_patched_render(41)
  return old_render(self)

/usr/local/lib/python3.12/site-packages/django/template/response.py in render(114)
  self.content = self.rendered_content

/usr/local/lib/python3.12/site-packages/sentry_sdk/utils.py in runner(1811)
  return sentry_patched_function(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/templates.py in rendered_content(77)
  return real_rendered_content.fget(self)

/usr/local/lib/python3.12/site-packages/django/template/response.py in rendered_content(92)
  return template.render(context, self._request)

/usr/local/lib/python3.12/site-packages/django/template/backends/django.py in render(107)
  return self.template.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(171)
  return self._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(159)
  return compiled_parent._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(159)
  return compiled_parent._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(65)
  result = block.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(65)
  result = block.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/defaulttags.py in render(550)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/library.py in render(321)
  output = self.func(*resolved_args, **resolved_kwargs)

/usr/local/lib/python3.12/site-packages/rules/templatetags/rules.py in has_perm(18)
  return user.has_perm(perm, obj)

/usr/local/lib/python3.12/site-packages/django/contrib/auth/models.py in has_perm(601)
  return _user_has_perm(self, perm, obj=obj)

/usr/local/lib/python3.12/site-packages/django/contrib/auth/models.py in _user_has_perm(269)
  if backend.has_perm(user, perm, obj):

/usr/local/lib/python3.12/site-packages/rules/permissions.py in has_perm(31)
  return has_perm(perm, user, *args, **kwargs)

/usr/local/lib/python3.12/site-packages/rules/permissions.py in has_perm(23)
  return permissions.test_rule(name, *args, **kwargs)

/usr/local/lib/python3.12/site-packages/rules/rulesets.py in test_rule(6)
  return name in self and self[name].test(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/rules/predicates.py in test(172)
  return bool(self._apply(*args))

/usr/local/lib/python3.12/site-packages/rules/predicates.py in _apply(235)
  result = self.fn(*callargs)

/usr/local/lib/python3.12/site-packages/rules/predicates.py in OR(184)
  return self._combine(other, operator.or_, args)

/usr/local/lib/python3.12/site-packages/rules/predicates.py in _combine(206)
  self_result = self._apply(*args)

/usr/local/lib/python3.12/site-packages/rules/predicates.py in _apply(235)
  result = self.fn(*callargs)

/app/project/lms_tales/rules.py in is_in_group(47)
  for owner in course.owner.all():

/usr/local/lib/python3.12/site-packages/cachalot/monkey_patch.py in inner(38)
  return original(compiler, *args, **kwargs)

/usr/local/lib/python3.12/site-packages/cachalot/monkey_patch.py in inner(101)
  return _get_result_or_execute_query(

/usr/local/lib/python3.12/site-packages/cachalot/monkey_patch.py in _get_result_or_execute_query(47)
  data = cache.get_many(table_cache_keys + [cache_key])

0.3701 get_many (['e3a5db5a670ad803efb866441f33de58309be2e2', '53169bc24a037802f3e42b2df3d6e48b7ae8482f', '542c27005f4e84288827ce70a7d49bc73324a5e7', '5371ca290f846e75243480c35969046bdaaef31d'],) {} <django_redis.cache.RedisCache object at 0x78830fe11400>
/usr/local/bin/gunicorn in <module>(10)
  sys.exit(run())

/usr/local/lib/python3.12/site-packages/gunicorn/app/wsgiapp.py in run(66)
  WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]", prog=prog).run()

/usr/local/lib/python3.12/site-packages/gunicorn/app/base.py in run(235)
  super().run()

/usr/local/lib/python3.12/site-packages/gunicorn/app/base.py in run(71)
  Arbiter(self).run()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in run(201)
  self.manage_workers()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in manage_workers(570)
  self.spawn_workers()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in spawn_workers(641)
  self.spawn_worker()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in spawn_worker(608)
  worker.init_process()

/usr/local/lib/python3.12/site-packages/gunicorn/workers/base.py in init_process(143)
  self.run()

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in run(125)
  self.run_for_one(timeout)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in run_for_one(69)
  self.accept(listener)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in accept(31)
  self.handle(listener, client, addr)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in handle(134)
  self.handle_request(listener, req, client, addr)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in handle_request(177)
  respiter = self.wsgi(environ, resp.start_response)

/usr/local/lib/python3.12/site-packages/sentry_sdk/utils.py in runner(1811)
  return sentry_patched_function(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/__init__.py in sentry_patched_wsgi_handler(191)
  return middleware(environ, start_response)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/wsgi.py in __call__(131)
  response = self.app(

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/__init__.py in sentry_patched_get_response(477)
  rv = old_get_response(self, request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in middleware(33)
  response = get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/allauth/account/middleware.py in middleware(36)
  response = get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/simple_history/middleware.py in middleware(41)
  return get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/django_htmx/middleware.py in __call__(43)
  return self.get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in __call__(172)
  response = self.get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/cachalot/panels.py in process_request(41)
  return super(CachalotPanel, self).process_request(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(94)
  return callback(request, *args, **kwargs)

/app/project/utils/decorators.py in apply_cache(68)
  cache.set(CACHE_KEY, response.render(), ttl)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/views.py in sentry_patched_render(41)
  return old_render(self)

/usr/local/lib/python3.12/site-packages/django/template/response.py in render(114)
  self.content = self.rendered_content

/usr/local/lib/python3.12/site-packages/sentry_sdk/utils.py in runner(1811)
  return sentry_patched_function(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/templates.py in rendered_content(77)
  return real_rendered_content.fget(self)

/usr/local/lib/python3.12/site-packages/django/template/response.py in rendered_content(92)
  return template.render(context, self._request)

/usr/local/lib/python3.12/site-packages/django/template/backends/django.py in render(107)
  return self.template.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(171)
  return self._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(159)
  return compiled_parent._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(159)
  return compiled_parent._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(65)
  result = block.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(65)
  result = block.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/defaulttags.py in render(550)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/library.py in render(321)
  output = self.func(*resolved_args, **resolved_kwargs)

/usr/local/lib/python3.12/site-packages/rules/templatetags/rules.py in has_perm(18)
  return user.has_perm(perm, obj)

/usr/local/lib/python3.12/site-packages/django/contrib/auth/models.py in has_perm(601)
  return _user_has_perm(self, perm, obj=obj)

/usr/local/lib/python3.12/site-packages/django/contrib/auth/models.py in _user_has_perm(269)
  if backend.has_perm(user, perm, obj):

/usr/local/lib/python3.12/site-packages/rules/permissions.py in has_perm(31)
  return has_perm(perm, user, *args, **kwargs)

/usr/local/lib/python3.12/site-packages/rules/permissions.py in has_perm(23)
  return permissions.test_rule(name, *args, **kwargs)

/usr/local/lib/python3.12/site-packages/rules/rulesets.py in test_rule(6)
  return name in self and self[name].test(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/rules/predicates.py in test(172)
  return bool(self._apply(*args))

/usr/local/lib/python3.12/site-packages/rules/predicates.py in _apply(235)
  result = self.fn(*callargs)

/usr/local/lib/python3.12/site-packages/rules/predicates.py in OR(184)
  return self._combine(other, operator.or_, args)

/usr/local/lib/python3.12/site-packages/rules/predicates.py in _combine(206)
  self_result = self._apply(*args)

/usr/local/lib/python3.12/site-packages/rules/predicates.py in _apply(235)
  result = self.fn(*callargs)

/app/project/lms_tales/rules.py in is_in_group(47)
  for owner in course.owner.all():

/usr/local/lib/python3.12/site-packages/cachalot/monkey_patch.py in inner(38)
  return original(compiler, *args, **kwargs)

/usr/local/lib/python3.12/site-packages/cachalot/monkey_patch.py in inner(101)
  return _get_result_or_execute_query(

/usr/local/lib/python3.12/site-packages/cachalot/monkey_patch.py in _get_result_or_execute_query(47)
  data = cache.get_many(table_cache_keys + [cache_key])

0.3483 get_many (['e3a5db5a670ad803efb866441f33de58309be2e2', '53169bc24a037802f3e42b2df3d6e48b7ae8482f', '542c27005f4e84288827ce70a7d49bc73324a5e7', '5371ca290f846e75243480c35969046bdaaef31d'],) {} <django_redis.cache.RedisCache object at 0x78830fe11400>
/usr/local/bin/gunicorn in <module>(10)
  sys.exit(run())

/usr/local/lib/python3.12/site-packages/gunicorn/app/wsgiapp.py in run(66)
  WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]", prog=prog).run()

/usr/local/lib/python3.12/site-packages/gunicorn/app/base.py in run(235)
  super().run()

/usr/local/lib/python3.12/site-packages/gunicorn/app/base.py in run(71)
  Arbiter(self).run()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in run(201)
  self.manage_workers()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in manage_workers(570)
  self.spawn_workers()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in spawn_workers(641)
  self.spawn_worker()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in spawn_worker(608)
  worker.init_process()

/usr/local/lib/python3.12/site-packages/gunicorn/workers/base.py in init_process(143)
  self.run()

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in run(125)
  self.run_for_one(timeout)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in run_for_one(69)
  self.accept(listener)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in accept(31)
  self.handle(listener, client, addr)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in handle(134)
  self.handle_request(listener, req, client, addr)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in handle_request(177)
  respiter = self.wsgi(environ, resp.start_response)

/usr/local/lib/python3.12/site-packages/sentry_sdk/utils.py in runner(1811)
  return sentry_patched_function(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/__init__.py in sentry_patched_wsgi_handler(191)
  return middleware(environ, start_response)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/wsgi.py in __call__(131)
  response = self.app(

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/__init__.py in sentry_patched_get_response(477)
  rv = old_get_response(self, request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in middleware(33)
  response = get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/allauth/account/middleware.py in middleware(36)
  response = get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/simple_history/middleware.py in middleware(41)
  return get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/django_htmx/middleware.py in __call__(43)
  return self.get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in __call__(172)
  response = self.get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/cachalot/panels.py in process_request(41)
  return super(CachalotPanel, self).process_request(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(94)
  return callback(request, *args, **kwargs)

/app/project/utils/decorators.py in apply_cache(68)
  cache.set(CACHE_KEY, response.render(), ttl)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/views.py in sentry_patched_render(41)
  return old_render(self)

/usr/local/lib/python3.12/site-packages/django/template/response.py in render(114)
  self.content = self.rendered_content

/usr/local/lib/python3.12/site-packages/sentry_sdk/utils.py in runner(1811)
  return sentry_patched_function(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/templates.py in rendered_content(77)
  return real_rendered_content.fget(self)

/usr/local/lib/python3.12/site-packages/django/template/response.py in rendered_content(92)
  return template.render(context, self._request)

/usr/local/lib/python3.12/site-packages/django/template/backends/django.py in render(107)
  return self.template.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(171)
  return self._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(159)
  return compiled_parent._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(159)
  return compiled_parent._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(65)
  result = block.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(65)
  result = block.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/defaulttags.py in render(550)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/library.py in render(321)
  output = self.func(*resolved_args, **resolved_kwargs)

/usr/local/lib/python3.12/site-packages/rules/templatetags/rules.py in has_perm(18)
  return user.has_perm(perm, obj)

/usr/local/lib/python3.12/site-packages/django/contrib/auth/models.py in has_perm(601)
  return _user_has_perm(self, perm, obj=obj)

/usr/local/lib/python3.12/site-packages/django/contrib/auth/models.py in _user_has_perm(269)
  if backend.has_perm(user, perm, obj):

/usr/local/lib/python3.12/site-packages/rules/permissions.py in has_perm(31)
  return has_perm(perm, user, *args, **kwargs)

/usr/local/lib/python3.12/site-packages/rules/permissions.py in has_perm(23)
  return permissions.test_rule(name, *args, **kwargs)

/usr/local/lib/python3.12/site-packages/rules/rulesets.py in test_rule(6)
  return name in self and self[name].test(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/rules/predicates.py in test(172)
  return bool(self._apply(*args))

/usr/local/lib/python3.12/site-packages/rules/predicates.py in _apply(235)
  result = self.fn(*callargs)

/usr/local/lib/python3.12/site-packages/rules/predicates.py in OR(184)
  return self._combine(other, operator.or_, args)

/usr/local/lib/python3.12/site-packages/rules/predicates.py in _combine(206)
  self_result = self._apply(*args)

/usr/local/lib/python3.12/site-packages/rules/predicates.py in _apply(235)
  result = self.fn(*callargs)

/app/project/lms_tales/rules.py in is_in_group(47)
  for owner in course.owner.all():

/usr/local/lib/python3.12/site-packages/cachalot/monkey_patch.py in inner(38)
  return original(compiler, *args, **kwargs)

/usr/local/lib/python3.12/site-packages/cachalot/monkey_patch.py in inner(101)
  return _get_result_or_execute_query(

/usr/local/lib/python3.12/site-packages/cachalot/monkey_patch.py in _get_result_or_execute_query(47)
  data = cache.get_many(table_cache_keys + [cache_key])

0.3006 get ('waffle:4.2.0f1f61030d824f38a8926961f0e221887',) {} <django_redis.cache.RedisCache object at 0x78830fe11400>
/usr/local/bin/gunicorn in <module>(10)
  sys.exit(run())

/usr/local/lib/python3.12/site-packages/gunicorn/app/wsgiapp.py in run(66)
  WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]", prog=prog).run()

/usr/local/lib/python3.12/site-packages/gunicorn/app/base.py in run(235)
  super().run()

/usr/local/lib/python3.12/site-packages/gunicorn/app/base.py in run(71)
  Arbiter(self).run()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in run(201)
  self.manage_workers()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in manage_workers(570)
  self.spawn_workers()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in spawn_workers(641)
  self.spawn_worker()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in spawn_worker(608)
  worker.init_process()

/usr/local/lib/python3.12/site-packages/gunicorn/workers/base.py in init_process(143)
  self.run()

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in run(125)
  self.run_for_one(timeout)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in run_for_one(69)
  self.accept(listener)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in accept(31)
  self.handle(listener, client, addr)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in handle(134)
  self.handle_request(listener, req, client, addr)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in handle_request(177)
  respiter = self.wsgi(environ, resp.start_response)

/usr/local/lib/python3.12/site-packages/sentry_sdk/utils.py in runner(1811)
  return sentry_patched_function(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/__init__.py in sentry_patched_wsgi_handler(191)
  return middleware(environ, start_response)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/wsgi.py in __call__(131)
  response = self.app(

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/__init__.py in sentry_patched_get_response(477)
  rv = old_get_response(self, request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in middleware(33)
  response = get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/allauth/account/middleware.py in middleware(36)
  response = get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/simple_history/middleware.py in middleware(41)
  return get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/django_htmx/middleware.py in __call__(43)
  return self.get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in __call__(172)
  response = self.get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/cachalot/panels.py in process_request(41)
  return super(CachalotPanel, self).process_request(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(94)
  return callback(request, *args, **kwargs)

/app/project/utils/decorators.py in apply_cache(68)
  cache.set(CACHE_KEY, response.render(), ttl)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/views.py in sentry_patched_render(41)
  return old_render(self)

/usr/local/lib/python3.12/site-packages/django/template/response.py in render(114)
  self.content = self.rendered_content

/usr/local/lib/python3.12/site-packages/sentry_sdk/utils.py in runner(1811)
  return sentry_patched_function(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/templates.py in rendered_content(77)
  return real_rendered_content.fget(self)

/usr/local/lib/python3.12/site-packages/django/template/response.py in rendered_content(92)
  return template.render(context, self._request)

/usr/local/lib/python3.12/site-packages/django/template/backends/django.py in render(107)
  return self.template.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(171)
  return self._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(159)
  return compiled_parent._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(159)
  return compiled_parent._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(65)
  result = block.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(65)
  result = block.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/defaulttags.py in render(550)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/waffle/templatetags/waffle_tags.py in render(36)
  if self.condition(context.get('request', None), name):

/usr/local/lib/python3.12/site-packages/waffle/__init__.py in flag_is_active(18)
  flag = get_waffle_flag_model().get(flag_name)

/usr/local/lib/python3.12/site-packages/waffle/models.py in get(52)
  cached = cache.get(cache_key)

0.3308 get_many (['76e323efd8711853e13c9f7cf976845908364eb2', 'e3a5db5a670ad803efb866441f33de58309be2e2', 'f1bf3652e0465cd93c6c9fa5536b86e586105fe4'],) {} <django_redis.cache.RedisCache object at 0x78830fe11400>
/usr/local/bin/gunicorn in <module>(10)
  sys.exit(run())

/usr/local/lib/python3.12/site-packages/gunicorn/app/wsgiapp.py in run(66)
  WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]", prog=prog).run()

/usr/local/lib/python3.12/site-packages/gunicorn/app/base.py in run(235)
  super().run()

/usr/local/lib/python3.12/site-packages/gunicorn/app/base.py in run(71)
  Arbiter(self).run()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in run(201)
  self.manage_workers()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in manage_workers(570)
  self.spawn_workers()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in spawn_workers(641)
  self.spawn_worker()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in spawn_worker(608)
  worker.init_process()

/usr/local/lib/python3.12/site-packages/gunicorn/workers/base.py in init_process(143)
  self.run()

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in run(125)
  self.run_for_one(timeout)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in run_for_one(69)
  self.accept(listener)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in accept(31)
  self.handle(listener, client, addr)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in handle(134)
  self.handle_request(listener, req, client, addr)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in handle_request(177)
  respiter = self.wsgi(environ, resp.start_response)

/usr/local/lib/python3.12/site-packages/sentry_sdk/utils.py in runner(1811)
  return sentry_patched_function(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/__init__.py in sentry_patched_wsgi_handler(191)
  return middleware(environ, start_response)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/wsgi.py in __call__(131)
  response = self.app(

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/__init__.py in sentry_patched_get_response(477)
  rv = old_get_response(self, request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in middleware(33)
  response = get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/allauth/account/middleware.py in middleware(36)
  response = get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/simple_history/middleware.py in middleware(41)
  return get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/django_htmx/middleware.py in __call__(43)
  return self.get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in __call__(172)
  response = self.get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/cachalot/panels.py in process_request(41)
  return super(CachalotPanel, self).process_request(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(94)
  return callback(request, *args, **kwargs)

/app/project/utils/decorators.py in apply_cache(68)
  cache.set(CACHE_KEY, response.render(), ttl)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/views.py in sentry_patched_render(41)
  return old_render(self)

/usr/local/lib/python3.12/site-packages/django/template/response.py in render(114)
  self.content = self.rendered_content

/usr/local/lib/python3.12/site-packages/sentry_sdk/utils.py in runner(1811)
  return sentry_patched_function(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/templates.py in rendered_content(77)
  return real_rendered_content.fget(self)

/usr/local/lib/python3.12/site-packages/django/template/response.py in rendered_content(92)
  return template.render(context, self._request)

/usr/local/lib/python3.12/site-packages/django/template/backends/django.py in render(107)
  return self.template.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(171)
  return self._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(159)
  return compiled_parent._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(159)
  return compiled_parent._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(65)
  result = block.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(65)
  result = block.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/defaulttags.py in render(550)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(65)
  result = block.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1075)
  output = self.filter_expression.resolve(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in resolve(722)
  obj = self.var.resolve(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in resolve(854)
  value = self._resolve_lookup(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in _resolve_lookup(925)
  current = current()

/app/project/lms_tales/models.py in get_step_number(99)
  chapter_list = list(self.chapter.course.published_chapters.all().order_by("order"))

/usr/local/lib/python3.12/site-packages/cachalot/monkey_patch.py in inner(38)
  return original(compiler, *args, **kwargs)

/usr/local/lib/python3.12/site-packages/cachalot/monkey_patch.py in inner(101)
  return _get_result_or_execute_query(

/usr/local/lib/python3.12/site-packages/cachalot/monkey_patch.py in _get_result_or_execute_query(47)
  data = cache.get_many(table_cache_keys + [cache_key])

0.6398 get_many (['76e323efd8711853e13c9f7cf976845908364eb2', '138549f5508bbba7283d6a0625e51c589d845e8f', '0001748faf42131f0daa885eec67f16fc7804edd'],) {} <django_redis.cache.RedisCache object at 0x78830fe11400>
/usr/local/bin/gunicorn in <module>(10)
  sys.exit(run())

/usr/local/lib/python3.12/site-packages/gunicorn/app/wsgiapp.py in run(66)
  WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]", prog=prog).run()

/usr/local/lib/python3.12/site-packages/gunicorn/app/base.py in run(235)
  super().run()

/usr/local/lib/python3.12/site-packages/gunicorn/app/base.py in run(71)
  Arbiter(self).run()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in run(201)
  self.manage_workers()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in manage_workers(570)
  self.spawn_workers()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in spawn_workers(641)
  self.spawn_worker()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in spawn_worker(608)
  worker.init_process()

/usr/local/lib/python3.12/site-packages/gunicorn/workers/base.py in init_process(143)
  self.run()

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in run(125)
  self.run_for_one(timeout)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in run_for_one(69)
  self.accept(listener)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in accept(31)
  self.handle(listener, client, addr)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in handle(134)
  self.handle_request(listener, req, client, addr)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in handle_request(177)
  respiter = self.wsgi(environ, resp.start_response)

/usr/local/lib/python3.12/site-packages/sentry_sdk/utils.py in runner(1811)
  return sentry_patched_function(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/__init__.py in sentry_patched_wsgi_handler(191)
  return middleware(environ, start_response)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/wsgi.py in __call__(131)
  response = self.app(

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/__init__.py in sentry_patched_get_response(477)
  rv = old_get_response(self, request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in middleware(33)
  response = get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/allauth/account/middleware.py in middleware(36)
  response = get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/simple_history/middleware.py in middleware(41)
  return get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/django_htmx/middleware.py in __call__(43)
  return self.get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in __call__(172)
  response = self.get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/cachalot/panels.py in process_request(41)
  return super(CachalotPanel, self).process_request(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(94)
  return callback(request, *args, **kwargs)

/app/project/utils/decorators.py in apply_cache(68)
  cache.set(CACHE_KEY, response.render(), ttl)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/views.py in sentry_patched_render(41)
  return old_render(self)

/usr/local/lib/python3.12/site-packages/django/template/response.py in render(114)
  self.content = self.rendered_content

/usr/local/lib/python3.12/site-packages/sentry_sdk/utils.py in runner(1811)
  return sentry_patched_function(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/templates.py in rendered_content(77)
  return real_rendered_content.fget(self)

/usr/local/lib/python3.12/site-packages/django/template/response.py in rendered_content(92)
  return template.render(context, self._request)

/usr/local/lib/python3.12/site-packages/django/template/backends/django.py in render(107)
  return self.template.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(171)
  return self._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(159)
  return compiled_parent._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(159)
  return compiled_parent._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(65)
  result = block.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(65)
  result = block.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/defaulttags.py in render(550)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(65)
  result = block.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1075)
  output = self.filter_expression.resolve(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in resolve(722)
  obj = self.var.resolve(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in resolve(854)
  value = self._resolve_lookup(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in _resolve_lookup(925)
  current = current()

/app/project/lms_tales/models.py in get_step_number(108)
  step_list = list(self.chapter.published_steps.all().order_by("order"))

/usr/local/lib/python3.12/site-packages/cachalot/monkey_patch.py in inner(38)
  return original(compiler, *args, **kwargs)

/usr/local/lib/python3.12/site-packages/cachalot/monkey_patch.py in inner(101)
  return _get_result_or_execute_query(

/usr/local/lib/python3.12/site-packages/cachalot/monkey_patch.py in _get_result_or_execute_query(47)
  data = cache.get_many(table_cache_keys + [cache_key])

0.4340 get_many (['138549f5508bbba7283d6a0625e51c589d845e8f', '2cba4b775af45bd99b4d40c0eeea58bc34f649af', '8cdc87be5e9c45ff878a1d83e43359f44622c929'],) {} <django_redis.cache.RedisCache object at 0x78830fe11400>
/usr/local/bin/gunicorn in <module>(10)
  sys.exit(run())

/usr/local/lib/python3.12/site-packages/gunicorn/app/wsgiapp.py in run(66)
  WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]", prog=prog).run()

/usr/local/lib/python3.12/site-packages/gunicorn/app/base.py in run(235)
  super().run()

/usr/local/lib/python3.12/site-packages/gunicorn/app/base.py in run(71)
  Arbiter(self).run()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in run(201)
  self.manage_workers()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in manage_workers(570)
  self.spawn_workers()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in spawn_workers(641)
  self.spawn_worker()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in spawn_worker(608)
  worker.init_process()

/usr/local/lib/python3.12/site-packages/gunicorn/workers/base.py in init_process(143)
  self.run()

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in run(125)
  self.run_for_one(timeout)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in run_for_one(69)
  self.accept(listener)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in accept(31)
  self.handle(listener, client, addr)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in handle(134)
  self.handle_request(listener, req, client, addr)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in handle_request(177)
  respiter = self.wsgi(environ, resp.start_response)

/usr/local/lib/python3.12/site-packages/sentry_sdk/utils.py in runner(1811)
  return sentry_patched_function(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/__init__.py in sentry_patched_wsgi_handler(191)
  return middleware(environ, start_response)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/wsgi.py in __call__(131)
  response = self.app(

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/__init__.py in sentry_patched_get_response(477)
  rv = old_get_response(self, request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in middleware(33)
  response = get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/allauth/account/middleware.py in middleware(36)
  response = get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/simple_history/middleware.py in middleware(41)
  return get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/django_htmx/middleware.py in __call__(43)
  return self.get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in __call__(172)
  response = self.get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/cachalot/panels.py in process_request(41)
  return super(CachalotPanel, self).process_request(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(94)
  return callback(request, *args, **kwargs)

/app/project/utils/decorators.py in apply_cache(68)
  cache.set(CACHE_KEY, response.render(), ttl)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/views.py in sentry_patched_render(41)
  return old_render(self)

/usr/local/lib/python3.12/site-packages/django/template/response.py in render(114)
  self.content = self.rendered_content

/usr/local/lib/python3.12/site-packages/sentry_sdk/utils.py in runner(1811)
  return sentry_patched_function(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/templates.py in rendered_content(77)
  return real_rendered_content.fget(self)

/usr/local/lib/python3.12/site-packages/django/template/response.py in rendered_content(92)
  return template.render(context, self._request)

/usr/local/lib/python3.12/site-packages/django/template/backends/django.py in render(107)
  return self.template.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(171)
  return self._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(159)
  return compiled_parent._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(159)
  return compiled_parent._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(65)
  result = block.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(65)
  result = block.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/defaulttags.py in render(550)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/defaulttags.py in render(320)
  match = condition.eval(context)

/usr/local/lib/python3.12/site-packages/django/template/defaulttags.py in eval(886)
  return self.value.resolve(context, ignore_failures=True)

/usr/local/lib/python3.12/site-packages/django/template/base.py in resolve(722)
  obj = self.var.resolve(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in resolve(854)
  value = self._resolve_lookup(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in _resolve_lookup(925)
  current = current()

/usr/local/lib/python3.12/site-packages/cachalot/monkey_patch.py in inner(38)
  return original(compiler, *args, **kwargs)

/usr/local/lib/python3.12/site-packages/cachalot/monkey_patch.py in inner(101)
  return _get_result_or_execute_query(

/usr/local/lib/python3.12/site-packages/cachalot/monkey_patch.py in _get_result_or_execute_query(47)
  data = cache.get_many(table_cache_keys + [cache_key])

0.4256 set_many ({'8cdc87be5e9c45ff878a1d83e43359f44622c929': (1765842516.6052222, None)}, None) {} <django_redis.cache.RedisCache object at 0x78830fe11400>
/usr/local/bin/gunicorn in <module>(10)
  sys.exit(run())

/usr/local/lib/python3.12/site-packages/gunicorn/app/wsgiapp.py in run(66)
  WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]", prog=prog).run()

/usr/local/lib/python3.12/site-packages/gunicorn/app/base.py in run(235)
  super().run()

/usr/local/lib/python3.12/site-packages/gunicorn/app/base.py in run(71)
  Arbiter(self).run()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in run(201)
  self.manage_workers()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in manage_workers(570)
  self.spawn_workers()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in spawn_workers(641)
  self.spawn_worker()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in spawn_worker(608)
  worker.init_process()

/usr/local/lib/python3.12/site-packages/gunicorn/workers/base.py in init_process(143)
  self.run()

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in run(125)
  self.run_for_one(timeout)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in run_for_one(69)
  self.accept(listener)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in accept(31)
  self.handle(listener, client, addr)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in handle(134)
  self.handle_request(listener, req, client, addr)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in handle_request(177)
  respiter = self.wsgi(environ, resp.start_response)

/usr/local/lib/python3.12/site-packages/sentry_sdk/utils.py in runner(1811)
  return sentry_patched_function(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/__init__.py in sentry_patched_wsgi_handler(191)
  return middleware(environ, start_response)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/wsgi.py in __call__(131)
  response = self.app(

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/__init__.py in sentry_patched_get_response(477)
  rv = old_get_response(self, request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in middleware(33)
  response = get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/allauth/account/middleware.py in middleware(36)
  response = get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/simple_history/middleware.py in middleware(41)
  return get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/django_htmx/middleware.py in __call__(43)
  return self.get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in __call__(172)
  response = self.get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/cachalot/panels.py in process_request(41)
  return super(CachalotPanel, self).process_request(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(94)
  return callback(request, *args, **kwargs)

/app/project/utils/decorators.py in apply_cache(68)
  cache.set(CACHE_KEY, response.render(), ttl)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/views.py in sentry_patched_render(41)
  return old_render(self)

/usr/local/lib/python3.12/site-packages/django/template/response.py in render(114)
  self.content = self.rendered_content

/usr/local/lib/python3.12/site-packages/sentry_sdk/utils.py in runner(1811)
  return sentry_patched_function(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/templates.py in rendered_content(77)
  return real_rendered_content.fget(self)

/usr/local/lib/python3.12/site-packages/django/template/response.py in rendered_content(92)
  return template.render(context, self._request)

/usr/local/lib/python3.12/site-packages/django/template/backends/django.py in render(107)
  return self.template.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(171)
  return self._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(159)
  return compiled_parent._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(159)
  return compiled_parent._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(65)
  result = block.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(65)
  result = block.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/defaulttags.py in render(550)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/defaulttags.py in render(320)
  match = condition.eval(context)

/usr/local/lib/python3.12/site-packages/django/template/defaulttags.py in eval(886)
  return self.value.resolve(context, ignore_failures=True)

/usr/local/lib/python3.12/site-packages/django/template/base.py in resolve(722)
  obj = self.var.resolve(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in resolve(854)
  value = self._resolve_lookup(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in _resolve_lookup(925)
  current = current()

/usr/local/lib/python3.12/site-packages/cachalot/monkey_patch.py in inner(38)
  return original(compiler, *args, **kwargs)

/usr/local/lib/python3.12/site-packages/cachalot/monkey_patch.py in inner(101)
  return _get_result_or_execute_query(

/usr/local/lib/python3.12/site-packages/cachalot/monkey_patch.py in _get_result_or_execute_query(76)
  cache.set_many(to_be_set, cachalot_settings.CACHALOT_TIMEOUT)

0.3935 get ('waffle:4.2.0e9e267545e7f919d987e2d016e67ed7e',) {} <django_redis.cache.RedisCache object at 0x78830fe11400>
/usr/local/bin/gunicorn in <module>(10)
  sys.exit(run())

/usr/local/lib/python3.12/site-packages/gunicorn/app/wsgiapp.py in run(66)
  WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]", prog=prog).run()

/usr/local/lib/python3.12/site-packages/gunicorn/app/base.py in run(235)
  super().run()

/usr/local/lib/python3.12/site-packages/gunicorn/app/base.py in run(71)
  Arbiter(self).run()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in run(201)
  self.manage_workers()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in manage_workers(570)
  self.spawn_workers()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in spawn_workers(641)
  self.spawn_worker()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in spawn_worker(608)
  worker.init_process()

/usr/local/lib/python3.12/site-packages/gunicorn/workers/base.py in init_process(143)
  self.run()

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in run(125)
  self.run_for_one(timeout)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in run_for_one(69)
  self.accept(listener)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in accept(31)
  self.handle(listener, client, addr)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in handle(134)
  self.handle_request(listener, req, client, addr)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in handle_request(177)
  respiter = self.wsgi(environ, resp.start_response)

/usr/local/lib/python3.12/site-packages/sentry_sdk/utils.py in runner(1811)
  return sentry_patched_function(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/__init__.py in sentry_patched_wsgi_handler(191)
  return middleware(environ, start_response)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/wsgi.py in __call__(131)
  response = self.app(

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/__init__.py in sentry_patched_get_response(477)
  rv = old_get_response(self, request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in middleware(33)
  response = get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/allauth/account/middleware.py in middleware(36)
  response = get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/simple_history/middleware.py in middleware(41)
  return get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/django_htmx/middleware.py in __call__(43)
  return self.get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in __call__(172)
  response = self.get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/cachalot/panels.py in process_request(41)
  return super(CachalotPanel, self).process_request(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(94)
  return callback(request, *args, **kwargs)

/app/project/utils/decorators.py in apply_cache(68)
  cache.set(CACHE_KEY, response.render(), ttl)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/views.py in sentry_patched_render(41)
  return old_render(self)

/usr/local/lib/python3.12/site-packages/django/template/response.py in render(114)
  self.content = self.rendered_content

/usr/local/lib/python3.12/site-packages/sentry_sdk/utils.py in runner(1811)
  return sentry_patched_function(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/templates.py in rendered_content(77)
  return real_rendered_content.fget(self)

/usr/local/lib/python3.12/site-packages/django/template/response.py in rendered_content(92)
  return template.render(context, self._request)

/usr/local/lib/python3.12/site-packages/django/template/backends/django.py in render(107)
  return self.template.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(171)
  return self._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(159)
  return compiled_parent._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(159)
  return compiled_parent._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(65)
  result = block.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(65)
  result = block.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/defaulttags.py in render(550)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/waffle/templatetags/waffle_tags.py in render(36)
  if self.condition(context.get('request', None), name):

/usr/local/lib/python3.12/site-packages/waffle/__init__.py in flag_is_active(18)
  flag = get_waffle_flag_model().get(flag_name)

/usr/local/lib/python3.12/site-packages/waffle/models.py in get(52)
  cached = cache.get(cache_key)

0.3718 get_many (['4f1f0b4dfbd30463b5587753e6f3e6ca21ddbf60', '138549f5508bbba7283d6a0625e51c589d845e8f', '566e029278f0508b70c230be19190273fc1ed989'],) {} <django_redis.cache.RedisCache object at 0x78830fe11400>
/usr/local/bin/gunicorn in <module>(10)
  sys.exit(run())

/usr/local/lib/python3.12/site-packages/gunicorn/app/wsgiapp.py in run(66)
  WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]", prog=prog).run()

/usr/local/lib/python3.12/site-packages/gunicorn/app/base.py in run(235)
  super().run()

/usr/local/lib/python3.12/site-packages/gunicorn/app/base.py in run(71)
  Arbiter(self).run()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in run(201)
  self.manage_workers()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in manage_workers(570)
  self.spawn_workers()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in spawn_workers(641)
  self.spawn_worker()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in spawn_worker(608)
  worker.init_process()

/usr/local/lib/python3.12/site-packages/gunicorn/workers/base.py in init_process(143)
  self.run()

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in run(125)
  self.run_for_one(timeout)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in run_for_one(69)
  self.accept(listener)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in accept(31)
  self.handle(listener, client, addr)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in handle(134)
  self.handle_request(listener, req, client, addr)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in handle_request(177)
  respiter = self.wsgi(environ, resp.start_response)

/usr/local/lib/python3.12/site-packages/sentry_sdk/utils.py in runner(1811)
  return sentry_patched_function(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/__init__.py in sentry_patched_wsgi_handler(191)
  return middleware(environ, start_response)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/wsgi.py in __call__(131)
  response = self.app(

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/__init__.py in sentry_patched_get_response(477)
  rv = old_get_response(self, request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in middleware(33)
  response = get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/allauth/account/middleware.py in middleware(36)
  response = get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/simple_history/middleware.py in middleware(41)
  return get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/django_htmx/middleware.py in __call__(43)
  return self.get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in __call__(172)
  response = self.get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/cachalot/panels.py in process_request(41)
  return super(CachalotPanel, self).process_request(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(94)
  return callback(request, *args, **kwargs)

/app/project/utils/decorators.py in apply_cache(68)
  cache.set(CACHE_KEY, response.render(), ttl)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/views.py in sentry_patched_render(41)
  return old_render(self)

/usr/local/lib/python3.12/site-packages/django/template/response.py in render(114)
  self.content = self.rendered_content

/usr/local/lib/python3.12/site-packages/sentry_sdk/utils.py in runner(1811)
  return sentry_patched_function(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/templates.py in rendered_content(77)
  return real_rendered_content.fget(self)

/usr/local/lib/python3.12/site-packages/django/template/response.py in rendered_content(92)
  return template.render(context, self._request)

/usr/local/lib/python3.12/site-packages/django/template/backends/django.py in render(107)
  return self.template.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(171)
  return self._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(159)
  return compiled_parent._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(159)
  return compiled_parent._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(65)
  result = block.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(65)
  result = block.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/defaulttags.py in render(550)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/defaulttags.py in render(326)
  if match:

/usr/local/lib/python3.12/site-packages/cachalot/monkey_patch.py in inner(38)
  return original(compiler, *args, **kwargs)

/usr/local/lib/python3.12/site-packages/cachalot/monkey_patch.py in inner(101)
  return _get_result_or_execute_query(

/usr/local/lib/python3.12/site-packages/cachalot/monkey_patch.py in _get_result_or_execute_query(47)
  data = cache.get_many(table_cache_keys + [cache_key])

0.3847 get_many (['4f1f0b4dfbd30463b5587753e6f3e6ca21ddbf60', '138549f5508bbba7283d6a0625e51c589d845e8f', '566e029278f0508b70c230be19190273fc1ed989'],) {} <django_redis.cache.RedisCache object at 0x78830fe11400>
/usr/local/bin/gunicorn in <module>(10)
  sys.exit(run())

/usr/local/lib/python3.12/site-packages/gunicorn/app/wsgiapp.py in run(66)
  WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]", prog=prog).run()

/usr/local/lib/python3.12/site-packages/gunicorn/app/base.py in run(235)
  super().run()

/usr/local/lib/python3.12/site-packages/gunicorn/app/base.py in run(71)
  Arbiter(self).run()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in run(201)
  self.manage_workers()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in manage_workers(570)
  self.spawn_workers()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in spawn_workers(641)
  self.spawn_worker()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in spawn_worker(608)
  worker.init_process()

/usr/local/lib/python3.12/site-packages/gunicorn/workers/base.py in init_process(143)
  self.run()

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in run(125)
  self.run_for_one(timeout)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in run_for_one(69)
  self.accept(listener)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in accept(31)
  self.handle(listener, client, addr)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in handle(134)
  self.handle_request(listener, req, client, addr)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in handle_request(177)
  respiter = self.wsgi(environ, resp.start_response)

/usr/local/lib/python3.12/site-packages/sentry_sdk/utils.py in runner(1811)
  return sentry_patched_function(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/__init__.py in sentry_patched_wsgi_handler(191)
  return middleware(environ, start_response)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/wsgi.py in __call__(131)
  response = self.app(

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/__init__.py in sentry_patched_get_response(477)
  rv = old_get_response(self, request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in middleware(33)
  response = get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/allauth/account/middleware.py in middleware(36)
  response = get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/simple_history/middleware.py in middleware(41)
  return get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/django_htmx/middleware.py in __call__(43)
  return self.get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in __call__(172)
  response = self.get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/cachalot/panels.py in process_request(41)
  return super(CachalotPanel, self).process_request(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(94)
  return callback(request, *args, **kwargs)

/app/project/utils/decorators.py in apply_cache(68)
  cache.set(CACHE_KEY, response.render(), ttl)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/views.py in sentry_patched_render(41)
  return old_render(self)

/usr/local/lib/python3.12/site-packages/django/template/response.py in render(114)
  self.content = self.rendered_content

/usr/local/lib/python3.12/site-packages/sentry_sdk/utils.py in runner(1811)
  return sentry_patched_function(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/templates.py in rendered_content(77)
  return real_rendered_content.fget(self)

/usr/local/lib/python3.12/site-packages/django/template/response.py in rendered_content(92)
  return template.render(context, self._request)

/usr/local/lib/python3.12/site-packages/django/template/backends/django.py in render(107)
  return self.template.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(171)
  return self._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(159)
  return compiled_parent._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(159)
  return compiled_parent._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(65)
  result = block.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(65)
  result = block.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/defaulttags.py in render(550)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/defaulttags.py in render(327)
  return nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/defaulttags.py in render(199)
  len_values = len(values)

/usr/local/lib/python3.12/site-packages/cachalot/monkey_patch.py in inner(38)
  return original(compiler, *args, **kwargs)

/usr/local/lib/python3.12/site-packages/cachalot/monkey_patch.py in inner(101)
  return _get_result_or_execute_query(

/usr/local/lib/python3.12/site-packages/cachalot/monkey_patch.py in _get_result_or_execute_query(47)
  data = cache.get_many(table_cache_keys + [cache_key])

0.3752 get_many (['d00779073776b2287204a6fa5336494275fc73d5', 'd1f9c81dc4947b7a0ef3e33712afc2e16830b326'],) {} <django_redis.cache.RedisCache object at 0x78830fe11400>
/usr/local/bin/gunicorn in <module>(10)
  sys.exit(run())

/usr/local/lib/python3.12/site-packages/gunicorn/app/wsgiapp.py in run(66)
  WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]", prog=prog).run()

/usr/local/lib/python3.12/site-packages/gunicorn/app/base.py in run(235)
  super().run()

/usr/local/lib/python3.12/site-packages/gunicorn/app/base.py in run(71)
  Arbiter(self).run()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in run(201)
  self.manage_workers()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in manage_workers(570)
  self.spawn_workers()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in spawn_workers(641)
  self.spawn_worker()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in spawn_worker(608)
  worker.init_process()

/usr/local/lib/python3.12/site-packages/gunicorn/workers/base.py in init_process(143)
  self.run()

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in run(125)
  self.run_for_one(timeout)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in run_for_one(69)
  self.accept(listener)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in accept(31)
  self.handle(listener, client, addr)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in handle(134)
  self.handle_request(listener, req, client, addr)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in handle_request(177)
  respiter = self.wsgi(environ, resp.start_response)

/usr/local/lib/python3.12/site-packages/sentry_sdk/utils.py in runner(1811)
  return sentry_patched_function(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/__init__.py in sentry_patched_wsgi_handler(191)
  return middleware(environ, start_response)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/wsgi.py in __call__(131)
  response = self.app(

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/__init__.py in sentry_patched_get_response(477)
  rv = old_get_response(self, request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in middleware(33)
  response = get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/allauth/account/middleware.py in middleware(36)
  response = get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/simple_history/middleware.py in middleware(41)
  return get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/django_htmx/middleware.py in __call__(43)
  return self.get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in __call__(172)
  response = self.get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/cachalot/panels.py in process_request(41)
  return super(CachalotPanel, self).process_request(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(94)
  return callback(request, *args, **kwargs)

/app/project/utils/decorators.py in apply_cache(68)
  cache.set(CACHE_KEY, response.render(), ttl)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/views.py in sentry_patched_render(41)
  return old_render(self)

/usr/local/lib/python3.12/site-packages/django/template/response.py in render(114)
  self.content = self.rendered_content

/usr/local/lib/python3.12/site-packages/sentry_sdk/utils.py in runner(1811)
  return sentry_patched_function(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/templates.py in rendered_content(77)
  return real_rendered_content.fget(self)

/usr/local/lib/python3.12/site-packages/django/template/response.py in rendered_content(92)
  return template.render(context, self._request)

/usr/local/lib/python3.12/site-packages/django/template/backends/django.py in render(107)
  return self.template.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(171)
  return self._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(159)
  return compiled_parent._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(159)
  return compiled_parent._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(65)
  result = block.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(65)
  result = block.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/defaulttags.py in render(550)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/defaulttags.py in render(327)
  return nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/defaulttags.py in render(243)
  nodelist.append(node.render_annotated(context))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1075)
  output = self.filter_expression.resolve(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in resolve(722)
  obj = self.var.resolve(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in resolve(854)
  value = self._resolve_lookup(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in _resolve_lookup(901)
  current = getattr(current, bit)

/usr/local/lib/python3.12/site-packages/cachalot/monkey_patch.py in inner(38)
  return original(compiler, *args, **kwargs)

/usr/local/lib/python3.12/site-packages/cachalot/monkey_patch.py in inner(101)
  return _get_result_or_execute_query(

/usr/local/lib/python3.12/site-packages/cachalot/monkey_patch.py in _get_result_or_execute_query(47)
  data = cache.get_many(table_cache_keys + [cache_key])

0.4556 set_many ({'d1f9c81dc4947b7a0ef3e33712afc2e16830b326': (1765842516.620757, [[(538, datetime.datetime(2022, 4, 7, 13, 28, 56, 188563, tzinfo=datetime.timezone.utc), datetime.datetime(2022, 4, 14, 14, 9, 10, 146421, tzinfo=datetime.timezone.utc), 'English Transcript', 40, 'examining-african-contributions-to-global-health/4_9_transcript.pdf')]])}, None) {} <django_redis.cache.RedisCache object at 0x78830fe11400>
/usr/local/bin/gunicorn in <module>(10)
  sys.exit(run())

/usr/local/lib/python3.12/site-packages/gunicorn/app/wsgiapp.py in run(66)
  WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]", prog=prog).run()

/usr/local/lib/python3.12/site-packages/gunicorn/app/base.py in run(235)
  super().run()

/usr/local/lib/python3.12/site-packages/gunicorn/app/base.py in run(71)
  Arbiter(self).run()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in run(201)
  self.manage_workers()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in manage_workers(570)
  self.spawn_workers()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in spawn_workers(641)
  self.spawn_worker()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in spawn_worker(608)
  worker.init_process()

/usr/local/lib/python3.12/site-packages/gunicorn/workers/base.py in init_process(143)
  self.run()

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in run(125)
  self.run_for_one(timeout)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in run_for_one(69)
  self.accept(listener)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in accept(31)
  self.handle(listener, client, addr)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in handle(134)
  self.handle_request(listener, req, client, addr)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in handle_request(177)
  respiter = self.wsgi(environ, resp.start_response)

/usr/local/lib/python3.12/site-packages/sentry_sdk/utils.py in runner(1811)
  return sentry_patched_function(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/__init__.py in sentry_patched_wsgi_handler(191)
  return middleware(environ, start_response)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/wsgi.py in __call__(131)
  response = self.app(

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/__init__.py in sentry_patched_get_response(477)
  rv = old_get_response(self, request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in middleware(33)
  response = get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/allauth/account/middleware.py in middleware(36)
  response = get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/simple_history/middleware.py in middleware(41)
  return get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/django_htmx/middleware.py in __call__(43)
  return self.get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in __call__(172)
  response = self.get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/cachalot/panels.py in process_request(41)
  return super(CachalotPanel, self).process_request(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(94)
  return callback(request, *args, **kwargs)

/app/project/utils/decorators.py in apply_cache(68)
  cache.set(CACHE_KEY, response.render(), ttl)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/views.py in sentry_patched_render(41)
  return old_render(self)

/usr/local/lib/python3.12/site-packages/django/template/response.py in render(114)
  self.content = self.rendered_content

/usr/local/lib/python3.12/site-packages/sentry_sdk/utils.py in runner(1811)
  return sentry_patched_function(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/templates.py in rendered_content(77)
  return real_rendered_content.fget(self)

/usr/local/lib/python3.12/site-packages/django/template/response.py in rendered_content(92)
  return template.render(context, self._request)

/usr/local/lib/python3.12/site-packages/django/template/backends/django.py in render(107)
  return self.template.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(171)
  return self._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(159)
  return compiled_parent._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(159)
  return compiled_parent._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(65)
  result = block.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(65)
  result = block.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/defaulttags.py in render(550)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/defaulttags.py in render(327)
  return nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/defaulttags.py in render(243)
  nodelist.append(node.render_annotated(context))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1075)
  output = self.filter_expression.resolve(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in resolve(722)
  obj = self.var.resolve(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in resolve(854)
  value = self._resolve_lookup(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in _resolve_lookup(901)
  current = getattr(current, bit)

/usr/local/lib/python3.12/site-packages/cachalot/monkey_patch.py in inner(38)
  return original(compiler, *args, **kwargs)

/usr/local/lib/python3.12/site-packages/cachalot/monkey_patch.py in inner(101)
  return _get_result_or_execute_query(

/usr/local/lib/python3.12/site-packages/cachalot/monkey_patch.py in _get_result_or_execute_query(76)
  cache.set_many(to_be_set, cachalot_settings.CACHALOT_TIMEOUT)

0.3683 get_many (['76e323efd8711853e13c9f7cf976845908364eb2', '934f54b3a05fcf81d69b6188dccd751515b12e37'],) {} <django_redis.cache.RedisCache object at 0x78830fe11400>
/usr/local/bin/gunicorn in <module>(10)
  sys.exit(run())

/usr/local/lib/python3.12/site-packages/gunicorn/app/wsgiapp.py in run(66)
  WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]", prog=prog).run()

/usr/local/lib/python3.12/site-packages/gunicorn/app/base.py in run(235)
  super().run()

/usr/local/lib/python3.12/site-packages/gunicorn/app/base.py in run(71)
  Arbiter(self).run()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in run(201)
  self.manage_workers()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in manage_workers(570)
  self.spawn_workers()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in spawn_workers(641)
  self.spawn_worker()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in spawn_worker(608)
  worker.init_process()

/usr/local/lib/python3.12/site-packages/gunicorn/workers/base.py in init_process(143)
  self.run()

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in run(125)
  self.run_for_one(timeout)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in run_for_one(69)
  self.accept(listener)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in accept(31)
  self.handle(listener, client, addr)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in handle(134)
  self.handle_request(listener, req, client, addr)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in handle_request(177)
  respiter = self.wsgi(environ, resp.start_response)

/usr/local/lib/python3.12/site-packages/sentry_sdk/utils.py in runner(1811)
  return sentry_patched_function(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/__init__.py in sentry_patched_wsgi_handler(191)
  return middleware(environ, start_response)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/wsgi.py in __call__(131)
  response = self.app(

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/__init__.py in sentry_patched_get_response(477)
  rv = old_get_response(self, request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in middleware(33)
  response = get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/allauth/account/middleware.py in middleware(36)
  response = get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/simple_history/middleware.py in middleware(41)
  return get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/django_htmx/middleware.py in __call__(43)
  return self.get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in __call__(172)
  response = self.get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/cachalot/panels.py in process_request(41)
  return super(CachalotPanel, self).process_request(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(94)
  return callback(request, *args, **kwargs)

/app/project/utils/decorators.py in apply_cache(68)
  cache.set(CACHE_KEY, response.render(), ttl)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/views.py in sentry_patched_render(41)
  return old_render(self)

/usr/local/lib/python3.12/site-packages/django/template/response.py in render(114)
  self.content = self.rendered_content

/usr/local/lib/python3.12/site-packages/sentry_sdk/utils.py in runner(1811)
  return sentry_patched_function(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/templates.py in rendered_content(77)
  return real_rendered_content.fget(self)

/usr/local/lib/python3.12/site-packages/django/template/response.py in rendered_content(92)
  return template.render(context, self._request)

/usr/local/lib/python3.12/site-packages/django/template/backends/django.py in render(107)
  return self.template.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(171)
  return self._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(159)
  return compiled_parent._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(159)
  return compiled_parent._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(65)
  result = block.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(65)
  result = block.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/defaulttags.py in render(550)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/defaulttags.py in render(320)
  match = condition.eval(context)

/usr/local/lib/python3.12/site-packages/django/template/smartif.py in eval(61)
  return func(context, self.first, self.second)

/usr/local/lib/python3.12/site-packages/django/template/smartif.py in <lambda>(104)
  "is not": infix(10, lambda context, x, y: x.eval(context) is not y.eval(context)),

/usr/local/lib/python3.12/site-packages/django/template/defaulttags.py in eval(886)
  return self.value.resolve(context, ignore_failures=True)

/usr/local/lib/python3.12/site-packages/django/template/base.py in resolve(722)
  obj = self.var.resolve(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in resolve(854)
  value = self._resolve_lookup(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in _resolve_lookup(925)
  current = current()

/app/project/lms_tales/models.py in get_absolute_url(88)
  str(self.chapter.course.slug),

/usr/local/lib/python3.12/site-packages/cachalot/monkey_patch.py in inner(38)
  return original(compiler, *args, **kwargs)

/usr/local/lib/python3.12/site-packages/cachalot/monkey_patch.py in inner(101)
  return _get_result_or_execute_query(

/usr/local/lib/python3.12/site-packages/cachalot/monkey_patch.py in _get_result_or_execute_query(47)
  data = cache.get_many(table_cache_keys + [cache_key])

0.4694 get_many (['e3a5db5a670ad803efb866441f33de58309be2e2', 'c481cd8d20bbcf1e0b2a0b693cc07d3caa0ccf3e'],) {} <django_redis.cache.RedisCache object at 0x78830fe11400>
/usr/local/bin/gunicorn in <module>(10)
  sys.exit(run())

/usr/local/lib/python3.12/site-packages/gunicorn/app/wsgiapp.py in run(66)
  WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]", prog=prog).run()

/usr/local/lib/python3.12/site-packages/gunicorn/app/base.py in run(235)
  super().run()

/usr/local/lib/python3.12/site-packages/gunicorn/app/base.py in run(71)
  Arbiter(self).run()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in run(201)
  self.manage_workers()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in manage_workers(570)
  self.spawn_workers()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in spawn_workers(641)
  self.spawn_worker()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in spawn_worker(608)
  worker.init_process()

/usr/local/lib/python3.12/site-packages/gunicorn/workers/base.py in init_process(143)
  self.run()

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in run(125)
  self.run_for_one(timeout)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in run_for_one(69)
  self.accept(listener)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in accept(31)
  self.handle(listener, client, addr)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in handle(134)
  self.handle_request(listener, req, client, addr)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in handle_request(177)
  respiter = self.wsgi(environ, resp.start_response)

/usr/local/lib/python3.12/site-packages/sentry_sdk/utils.py in runner(1811)
  return sentry_patched_function(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/__init__.py in sentry_patched_wsgi_handler(191)
  return middleware(environ, start_response)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/wsgi.py in __call__(131)
  response = self.app(

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/__init__.py in sentry_patched_get_response(477)
  rv = old_get_response(self, request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in middleware(33)
  response = get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/allauth/account/middleware.py in middleware(36)
  response = get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/simple_history/middleware.py in middleware(41)
  return get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/django_htmx/middleware.py in __call__(43)
  return self.get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in __call__(172)
  response = self.get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/cachalot/panels.py in process_request(41)
  return super(CachalotPanel, self).process_request(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(94)
  return callback(request, *args, **kwargs)

/app/project/utils/decorators.py in apply_cache(68)
  cache.set(CACHE_KEY, response.render(), ttl)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/views.py in sentry_patched_render(41)
  return old_render(self)

/usr/local/lib/python3.12/site-packages/django/template/response.py in render(114)
  self.content = self.rendered_content

/usr/local/lib/python3.12/site-packages/sentry_sdk/utils.py in runner(1811)
  return sentry_patched_function(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/templates.py in rendered_content(77)
  return real_rendered_content.fget(self)

/usr/local/lib/python3.12/site-packages/django/template/response.py in rendered_content(92)
  return template.render(context, self._request)

/usr/local/lib/python3.12/site-packages/django/template/backends/django.py in render(107)
  return self.template.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(171)
  return self._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(159)
  return compiled_parent._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(159)
  return compiled_parent._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(65)
  result = block.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(65)
  result = block.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/defaulttags.py in render(550)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/defaulttags.py in render(320)
  match = condition.eval(context)

/usr/local/lib/python3.12/site-packages/django/template/smartif.py in eval(61)
  return func(context, self.first, self.second)

/usr/local/lib/python3.12/site-packages/django/template/smartif.py in <lambda>(104)
  "is not": infix(10, lambda context, x, y: x.eval(context) is not y.eval(context)),

/usr/local/lib/python3.12/site-packages/django/template/defaulttags.py in eval(886)
  return self.value.resolve(context, ignore_failures=True)

/usr/local/lib/python3.12/site-packages/django/template/base.py in resolve(722)
  obj = self.var.resolve(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in resolve(854)
  value = self._resolve_lookup(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in _resolve_lookup(925)
  current = current()

/app/project/lms_tales/models.py in get_absolute_url(88)
  str(self.chapter.course.slug),

/usr/local/lib/python3.12/site-packages/cachalot/monkey_patch.py in inner(38)
  return original(compiler, *args, **kwargs)

/usr/local/lib/python3.12/site-packages/cachalot/monkey_patch.py in inner(101)
  return _get_result_or_execute_query(

/usr/local/lib/python3.12/site-packages/cachalot/monkey_patch.py in _get_result_or_execute_query(47)
  data = cache.get_many(table_cache_keys + [cache_key])

0.5097 get_many (['76e323efd8711853e13c9f7cf976845908364eb2', '934f54b3a05fcf81d69b6188dccd751515b12e37'],) {} <django_redis.cache.RedisCache object at 0x78830fe11400>
/usr/local/bin/gunicorn in <module>(10)
  sys.exit(run())

/usr/local/lib/python3.12/site-packages/gunicorn/app/wsgiapp.py in run(66)
  WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]", prog=prog).run()

/usr/local/lib/python3.12/site-packages/gunicorn/app/base.py in run(235)
  super().run()

/usr/local/lib/python3.12/site-packages/gunicorn/app/base.py in run(71)
  Arbiter(self).run()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in run(201)
  self.manage_workers()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in manage_workers(570)
  self.spawn_workers()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in spawn_workers(641)
  self.spawn_worker()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in spawn_worker(608)
  worker.init_process()

/usr/local/lib/python3.12/site-packages/gunicorn/workers/base.py in init_process(143)
  self.run()

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in run(125)
  self.run_for_one(timeout)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in run_for_one(69)
  self.accept(listener)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in accept(31)
  self.handle(listener, client, addr)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in handle(134)
  self.handle_request(listener, req, client, addr)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in handle_request(177)
  respiter = self.wsgi(environ, resp.start_response)

/usr/local/lib/python3.12/site-packages/sentry_sdk/utils.py in runner(1811)
  return sentry_patched_function(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/__init__.py in sentry_patched_wsgi_handler(191)
  return middleware(environ, start_response)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/wsgi.py in __call__(131)
  response = self.app(

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/__init__.py in sentry_patched_get_response(477)
  rv = old_get_response(self, request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in middleware(33)
  response = get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/allauth/account/middleware.py in middleware(36)
  response = get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/simple_history/middleware.py in middleware(41)
  return get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/django_htmx/middleware.py in __call__(43)
  return self.get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in __call__(172)
  response = self.get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/cachalot/panels.py in process_request(41)
  return super(CachalotPanel, self).process_request(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(94)
  return callback(request, *args, **kwargs)

/app/project/utils/decorators.py in apply_cache(68)
  cache.set(CACHE_KEY, response.render(), ttl)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/views.py in sentry_patched_render(41)
  return old_render(self)

/usr/local/lib/python3.12/site-packages/django/template/response.py in render(114)
  self.content = self.rendered_content

/usr/local/lib/python3.12/site-packages/sentry_sdk/utils.py in runner(1811)
  return sentry_patched_function(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/templates.py in rendered_content(77)
  return real_rendered_content.fget(self)

/usr/local/lib/python3.12/site-packages/django/template/response.py in rendered_content(92)
  return template.render(context, self._request)

/usr/local/lib/python3.12/site-packages/django/template/backends/django.py in render(107)
  return self.template.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(171)
  return self._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(159)
  return compiled_parent._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(159)
  return compiled_parent._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(65)
  result = block.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(65)
  result = block.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/defaulttags.py in render(550)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/defaulttags.py in render(320)
  match = condition.eval(context)

/usr/local/lib/python3.12/site-packages/django/template/smartif.py in eval(61)
  return func(context, self.first, self.second)

/usr/local/lib/python3.12/site-packages/django/template/smartif.py in <lambda>(104)
  "is not": infix(10, lambda context, x, y: x.eval(context) is not y.eval(context)),

/usr/local/lib/python3.12/site-packages/django/template/defaulttags.py in eval(886)
  return self.value.resolve(context, ignore_failures=True)

/usr/local/lib/python3.12/site-packages/django/template/base.py in resolve(722)
  obj = self.var.resolve(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in resolve(854)
  value = self._resolve_lookup(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in _resolve_lookup(925)
  current = current()

/app/project/lms_tales/models.py in get_absolute_url(88)
  str(self.chapter.course.slug),

/usr/local/lib/python3.12/site-packages/cachalot/monkey_patch.py in inner(38)
  return original(compiler, *args, **kwargs)

/usr/local/lib/python3.12/site-packages/cachalot/monkey_patch.py in inner(101)
  return _get_result_or_execute_query(

/usr/local/lib/python3.12/site-packages/cachalot/monkey_patch.py in _get_result_or_execute_query(47)
  data = cache.get_many(table_cache_keys + [cache_key])

0.4587 get_many (['e3a5db5a670ad803efb866441f33de58309be2e2', 'c481cd8d20bbcf1e0b2a0b693cc07d3caa0ccf3e'],) {} <django_redis.cache.RedisCache object at 0x78830fe11400>
/usr/local/bin/gunicorn in <module>(10)
  sys.exit(run())

/usr/local/lib/python3.12/site-packages/gunicorn/app/wsgiapp.py in run(66)
  WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]", prog=prog).run()

/usr/local/lib/python3.12/site-packages/gunicorn/app/base.py in run(235)
  super().run()

/usr/local/lib/python3.12/site-packages/gunicorn/app/base.py in run(71)
  Arbiter(self).run()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in run(201)
  self.manage_workers()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in manage_workers(570)
  self.spawn_workers()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in spawn_workers(641)
  self.spawn_worker()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in spawn_worker(608)
  worker.init_process()

/usr/local/lib/python3.12/site-packages/gunicorn/workers/base.py in init_process(143)
  self.run()

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in run(125)
  self.run_for_one(timeout)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in run_for_one(69)
  self.accept(listener)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in accept(31)
  self.handle(listener, client, addr)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in handle(134)
  self.handle_request(listener, req, client, addr)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in handle_request(177)
  respiter = self.wsgi(environ, resp.start_response)

/usr/local/lib/python3.12/site-packages/sentry_sdk/utils.py in runner(1811)
  return sentry_patched_function(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/__init__.py in sentry_patched_wsgi_handler(191)
  return middleware(environ, start_response)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/wsgi.py in __call__(131)
  response = self.app(

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/__init__.py in sentry_patched_get_response(477)
  rv = old_get_response(self, request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in middleware(33)
  response = get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/allauth/account/middleware.py in middleware(36)
  response = get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/simple_history/middleware.py in middleware(41)
  return get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/django_htmx/middleware.py in __call__(43)
  return self.get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in __call__(172)
  response = self.get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/cachalot/panels.py in process_request(41)
  return super(CachalotPanel, self).process_request(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(94)
  return callback(request, *args, **kwargs)

/app/project/utils/decorators.py in apply_cache(68)
  cache.set(CACHE_KEY, response.render(), ttl)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/views.py in sentry_patched_render(41)
  return old_render(self)

/usr/local/lib/python3.12/site-packages/django/template/response.py in render(114)
  self.content = self.rendered_content

/usr/local/lib/python3.12/site-packages/sentry_sdk/utils.py in runner(1811)
  return sentry_patched_function(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/templates.py in rendered_content(77)
  return real_rendered_content.fget(self)

/usr/local/lib/python3.12/site-packages/django/template/response.py in rendered_content(92)
  return template.render(context, self._request)

/usr/local/lib/python3.12/site-packages/django/template/backends/django.py in render(107)
  return self.template.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(171)
  return self._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(159)
  return compiled_parent._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(159)
  return compiled_parent._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(65)
  result = block.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(65)
  result = block.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/defaulttags.py in render(550)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/defaulttags.py in render(320)
  match = condition.eval(context)

/usr/local/lib/python3.12/site-packages/django/template/smartif.py in eval(61)
  return func(context, self.first, self.second)

/usr/local/lib/python3.12/site-packages/django/template/smartif.py in <lambda>(104)
  "is not": infix(10, lambda context, x, y: x.eval(context) is not y.eval(context)),

/usr/local/lib/python3.12/site-packages/django/template/defaulttags.py in eval(886)
  return self.value.resolve(context, ignore_failures=True)

/usr/local/lib/python3.12/site-packages/django/template/base.py in resolve(722)
  obj = self.var.resolve(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in resolve(854)
  value = self._resolve_lookup(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in _resolve_lookup(925)
  current = current()

/app/project/lms_tales/models.py in get_absolute_url(88)
  str(self.chapter.course.slug),

/usr/local/lib/python3.12/site-packages/cachalot/monkey_patch.py in inner(38)
  return original(compiler, *args, **kwargs)

/usr/local/lib/python3.12/site-packages/cachalot/monkey_patch.py in inner(101)
  return _get_result_or_execute_query(

/usr/local/lib/python3.12/site-packages/cachalot/monkey_patch.py in _get_result_or_execute_query(47)
  data = cache.get_many(table_cache_keys + [cache_key])

0.4947 get ('waffle:4.2.0e9e267545e7f919d987e2d016e67ed7e',) {} <django_redis.cache.RedisCache object at 0x78830fe11400>
/usr/local/bin/gunicorn in <module>(10)
  sys.exit(run())

/usr/local/lib/python3.12/site-packages/gunicorn/app/wsgiapp.py in run(66)
  WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]", prog=prog).run()

/usr/local/lib/python3.12/site-packages/gunicorn/app/base.py in run(235)
  super().run()

/usr/local/lib/python3.12/site-packages/gunicorn/app/base.py in run(71)
  Arbiter(self).run()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in run(201)
  self.manage_workers()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in manage_workers(570)
  self.spawn_workers()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in spawn_workers(641)
  self.spawn_worker()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in spawn_worker(608)
  worker.init_process()

/usr/local/lib/python3.12/site-packages/gunicorn/workers/base.py in init_process(143)
  self.run()

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in run(125)
  self.run_for_one(timeout)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in run_for_one(69)
  self.accept(listener)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in accept(31)
  self.handle(listener, client, addr)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in handle(134)
  self.handle_request(listener, req, client, addr)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in handle_request(177)
  respiter = self.wsgi(environ, resp.start_response)

/usr/local/lib/python3.12/site-packages/sentry_sdk/utils.py in runner(1811)
  return sentry_patched_function(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/__init__.py in sentry_patched_wsgi_handler(191)
  return middleware(environ, start_response)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/wsgi.py in __call__(131)
  response = self.app(

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/__init__.py in sentry_patched_get_response(477)
  rv = old_get_response(self, request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in middleware(33)
  response = get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/allauth/account/middleware.py in middleware(36)
  response = get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/simple_history/middleware.py in middleware(41)
  return get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/django_htmx/middleware.py in __call__(43)
  return self.get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in __call__(172)
  response = self.get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/cachalot/panels.py in process_request(41)
  return super(CachalotPanel, self).process_request(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(94)
  return callback(request, *args, **kwargs)

/app/project/utils/decorators.py in apply_cache(68)
  cache.set(CACHE_KEY, response.render(), ttl)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/views.py in sentry_patched_render(41)
  return old_render(self)

/usr/local/lib/python3.12/site-packages/django/template/response.py in render(114)
  self.content = self.rendered_content

/usr/local/lib/python3.12/site-packages/sentry_sdk/utils.py in runner(1811)
  return sentry_patched_function(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/templates.py in rendered_content(77)
  return real_rendered_content.fget(self)

/usr/local/lib/python3.12/site-packages/django/template/response.py in rendered_content(92)
  return template.render(context, self._request)

/usr/local/lib/python3.12/site-packages/django/template/backends/django.py in render(107)
  return self.template.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(171)
  return self._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(159)
  return compiled_parent._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(159)
  return compiled_parent._render(context)

/usr/local/lib/python3.12/site-packages/django/test/utils.py in instrumented_test_render(114)
  return self.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/django/template/loader_tags.py in render(65)
  result = block.nodelist.render(context)

/usr/local/lib/python3.12/site-packages/django/template/base.py in render(1016)
  return SafeString("".join([node.render_annotated(context) for node in self]))

/usr/local/lib/python3.12/site-packages/django/template/base.py in render_annotated(977)
  return self.render(context)

/usr/local/lib/python3.12/site-packages/waffle/templatetags/waffle_tags.py in render(36)
  if self.condition(context.get('request', None), name):

/usr/local/lib/python3.12/site-packages/waffle/__init__.py in flag_is_active(18)
  flag = get_waffle_flag_model().get(flag_name)

/usr/local/lib/python3.12/site-packages/waffle/models.py in get(52)
  cached = cache.get(cache_key)

2.1213 set ('view_cache_view_/en/examining-african-contributions-to-global-health-40/south-south-knowledge-circulation-216/chinese-medicine-in-tanzania-1173_anonymous', <TemplateResponse status_code=200, "text/html; charset=utf-8">, 600) {} <django_redis.cache.RedisCache object at 0x78830fe11400>
/usr/local/bin/gunicorn in <module>(10)
  sys.exit(run())

/usr/local/lib/python3.12/site-packages/gunicorn/app/wsgiapp.py in run(66)
  WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]", prog=prog).run()

/usr/local/lib/python3.12/site-packages/gunicorn/app/base.py in run(235)
  super().run()

/usr/local/lib/python3.12/site-packages/gunicorn/app/base.py in run(71)
  Arbiter(self).run()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in run(201)
  self.manage_workers()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in manage_workers(570)
  self.spawn_workers()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in spawn_workers(641)
  self.spawn_worker()

/usr/local/lib/python3.12/site-packages/gunicorn/arbiter.py in spawn_worker(608)
  worker.init_process()

/usr/local/lib/python3.12/site-packages/gunicorn/workers/base.py in init_process(143)
  self.run()

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in run(125)
  self.run_for_one(timeout)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in run_for_one(69)
  self.accept(listener)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in accept(31)
  self.handle(listener, client, addr)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in handle(134)
  self.handle_request(listener, req, client, addr)

/usr/local/lib/python3.12/site-packages/gunicorn/workers/sync.py in handle_request(177)
  respiter = self.wsgi(environ, resp.start_response)

/usr/local/lib/python3.12/site-packages/sentry_sdk/utils.py in runner(1811)
  return sentry_patched_function(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/__init__.py in sentry_patched_wsgi_handler(191)
  return middleware(environ, start_response)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/wsgi.py in __call__(131)
  response = self.app(

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/__init__.py in sentry_patched_get_response(477)
  rv = old_get_response(self, request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/corsheaders/middleware.py in __call__(56)
  result = self.get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in middleware(33)
  response = get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/allauth/account/middleware.py in middleware(36)
  response = get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/simple_history/middleware.py in middleware(41)
  return get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/django_htmx/middleware.py in __call__(43)
  return self.get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/app/project/lms_tales/middleware.py in __call__(172)
  response = self.get_response(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177)
  return f(*args, **kwargs)

/usr/local/lib/python3.12/site-packages/cachalot/panels.py in process_request(41)
  return super(CachalotPanel, self).process_request(request)

/usr/local/lib/python3.12/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(94)
  return callback(request, *args, **kwargs)

/app/project/utils/decorators.py in apply_cache(68)
  cache.set(CACHE_KEY, response.render(), ttl)

Cachalot

Database 'default'

Application Model Last invalidation
django_q Failure 47 minutes
search FulltextSearchModel 47 minutes
django_q Schedule 48 minutes
lms_tales CourseMetrics 11 hours, 22 minutes
reporting Report 1 week, 2 days
lms_assignment Assignment 3 weeks, 3 days
lms_assignment UserAssignment 3 weeks, 3 days
lms_assignment AssignmentFeedback 3 weeks, 3 days
lms_ai LLMProvider 3 weeks, 3 days
lms_ai LLMServiceConfig 3 weeks, 3 days
lms_ai LLMTask 3 weeks, 3 days
lms_roles CourseRole 3 weeks, 3 days
lms_notifications Notification 3 weeks, 3 days
search TrigramSearchModel 3 weeks, 3 days
startpage SliderItem 3 weeks, 3 days
startpage CategoryCourse 3 weeks, 3 days
tags Category 3 weeks, 3 days
tags Tag 3 weeks, 3 days
lms_static_texts StaticText 3 weeks, 3 days
lms_static_texts HistoricalStaticText 3 weeks, 3 days
lms_comments Comment 3 weeks, 3 days
lms_comments Reply 3 weeks, 3 days
lms_comments Reaction 3 weeks, 3 days
lms_comments Flag 3 weeks, 3 days
lms_tales TalesStep 3 weeks, 3 days
lms_tales TalesStepFileNew 3 weeks, 3 days
lms_tales TalesStepFile 3 weeks, 3 days
lms_tales TalesCourseFile 3 weeks, 3 days
lms_tales TalesChapter 3 weeks, 3 days
lms_tales TalesCourse 3 weeks, 3 days
lms_tales TalesAuthor 3 weeks, 3 days
lms_tales TalesPartner 3 weeks, 3 days
lms_tales TalesPath 3 weeks, 3 days
lms_tales TalesPathStep 3 weeks, 3 days
lms_tales TalesCourseRun 3 weeks, 3 days
lms_tales TalesCourseRunStep 3 weeks, 3 days
lms_tales ScheduledMessage 3 weeks, 3 days
lms_tales HistoricalTalesStep 3 weeks, 3 days
lms_tales HistoricalTalesStepFile 3 weeks, 3 days
lms_tales HistoricalTalesChapter 3 weeks, 3 days
lms_tales HistoricalTalesCourse 3 weeks, 3 days
lms_tales HistoricalTalesPath 3 weeks, 3 days
auth Permission 3 weeks, 3 days
auth Group 3 weeks, 3 days
contenttypes ContentType 3 weeks, 3 days
sessions Session 3 weeks, 3 days
sites Site 3 weeks, 3 days
flatpages FlatPage 3 weeks, 3 days
admin LogEntry 3 weeks, 3 days
redirects Redirect 3 weeks, 3 days
account EmailAddress 3 weeks, 3 days
account EmailConfirmation 3 weeks, 3 days
socialaccount SocialApp 3 weeks, 3 days
socialaccount SocialAccount 3 weeks, 3 days
socialaccount SocialToken 3 weeks, 3 days
waffle Flag 3 weeks, 3 days
waffle Switch 3 weeks, 3 days
waffle Sample 3 weeks, 3 days
tos TermsOfService 3 weeks, 3 days
tos UserAgreement 3 weeks, 3 days
impersonate ImpersonationLog 3 weeks, 3 days
django_q OrmQ 3 weeks, 3 days
users User 3 weeks, 3 days
users UserSettings 3 weeks, 3 days

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
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, delete_search_index, delete_search_index
post_init ModelSignalRouter.post_init_receiver, MonitorField._save_initial, MonitorField._save_initial, MonitorField._save_initial, MonitorField._save_initial, MonitorField._save_initial, MonitorField._save_initial, 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, 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, call_hook, HistoricalRecords.post_save, HistoricalRecords.post_save, HistoricalRecords.post_save, HistoricalRecords.post_save, HistoricalRecords.post_save, HistoricalRecords.post_save, create_user_settings, save_user_settings, update_search_index, update_search_index, notification_created
pre_delete clear_site_cache, HistoricalRecords.pre_delete, HistoricalRecords.pre_delete, HistoricalRecords.pre_delete, HistoricalRecords.pre_delete, HistoricalRecords.pre_delete, HistoricalRecords.pre_delete
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, Settings.change_setting, 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, complex_setting_changed, root_urlconf_changed, static_storage_changed, static_finders_changed, form_renderer_changed, auth_password_validators_changed, user_model_swapped, update_toolbar_config, reset_hashers, Options.setting_changed, Options.setting_changed, Options.setting_changed, Options.setting_changed, Options.setting_changed, Options.setting_changed, update_level_tags, clear_caches, 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, FileSystemStorage._clear_cached_properties, FileSystemStorage._clear_cached_properties, FileSystemStorage._clear_cached_properties, FileSystemStorage._clear_cached_properties, FileSystemStorage._clear_cached_properties