PUTTING THE PIECES TOGETHER TO LOOK INTO THE FUTURE
5.9
Last essential steps
Regardless, whether you have a conceptual model with complicated interactions hidden in the mathematical equations of your solution or a numerical model with a gazillion numbers, you will need to transfer your findings into something others can understand.
Model interpretation therefore can be seen as a two-step process:
First, you need to understand your own model results. We covered aspects of this challenge throughout the course like interpreting activity and price variables or discussing the results of the model exercises. By digging into your model results, performing sensitivity analyses, testing the robustness, and figuring out what drives your results, you will get the elements needed for a good result presentation.
Second, you need to transfer this understanding into a consistent storyline linking back to your original problem. You will have to convince others that your model is a credible representation for your research question and that your findings provide added value. The four phases of modelling help you to structure your story.
Downloads
- Ausblenden »
- Toggle Theme
-
Geschichte
-
Versionen
Django 4.2.17 -
Zeit
CPU: 354.82ms (771.05ms) - Einstellungen
- Header
-
Anfrage
apply_cache -
SQL
20 Abfragen in 19.25 ms -
Statische Dateien
7 Dateien benutzt -
Templates
step/step_home.html -
Cache
61 Abfragen in 25.19ms -
Cachalot
Last invalidation: 8 Stunden, 39 Minuten -
Signale
110 Empfänger von 15 Signalen -
Umleitungen abfangen
-
Profiling
Versionen
Paket | Name | Version |
---|---|---|
Django | 4.2.17 | |
Python | 3.11.11 | |
allauth | Allauth | 65.3.1.final.0 |
cachalot | Cachalot | 2.6.3 |
crispy_bootstrap5 | Crispy_Bootstrap5 | 2024.10 |
crispy_forms | Crispy_Forms | 2.3 |
debug_toolbar | Debug Toolbar | 4.4.6 |
django_extensions | Django Extensions | 3.2.3 |
django_q | Django Q | 1.7.6 |
imagekit | Imagekit | 5.0.0 |
impersonate | Impersonate | 1.9.4 |
markdownx | Markdownx | 4.0.7 |
mozilla_django_oidc | Mozilla_Django_Oidc | 4.0.1 |
notifications | Notifications | 1.8.3 |
rosetta | Rosetta | 0.10.1 |
rules | Rules | 3.5.0.final.1 |
simple_history | Simple_History | 3.7.0 |
storages | Storages | 1.14.4 |
tos | Terms Of Service | 1.1.0 |
waffle | django-waffle | 4.1.0 |
Zeit
Ressourcenverwendung
Ressource | Wert |
---|---|
CPU-Zeit Benutzer | 346.916 ms |
CPU-Zeit System | 7.902 ms |
CPU-Zeit gesamt | 354.818 ms |
Verstrichene Zeit | 771.051 ms |
Kontextwechsel | 189 freiwillig, 14 unfreiwillig |
Browserzeit
Timing-Attribut | Verlauf | Millisekunden seit Seitenaufruf (plus Dauer) |
---|---|---|
domainLookup | 5 (+385) | |
connect | 390 (+223) | |
request | 613 (+2062) | |
response | 1681 (+994) | |
domLoading | 1702 (+-1736881792559) | |
domInteractive | 3429 | |
domContentLoadedEvent | 3430 (+190) | |
loadEvent | -1736881790857 (+0) |
Einstellungen von config.settings.staging
Einstellung | Wert |
---|---|
ABSOLUTE_URL_OVERRIDES | {} |
ACCOUNT_ADAPTER | 'lms_base.adapter.AccountAdapter' |
ADMINS | (('admin', 'notifications-nmc@unibas.ch'),) |
ADMIN_URL | 'admin/' |
ALLOWED_HOSTS | ['*'] |
APPEND_SLASH | True |
AUTHENTICATION_BACKENDS | ('rules.permissions.ObjectPermissionBackend',
'lms_base.authentication.EDUIDAuthenticationBackend',
'django.contrib.auth.backends.ModelBackend') |
AUTH_PASSWORD_VALIDATORS | '********************' |
AUTH_USER_MODEL | 'users.User' |
BASE_DIR | '/app/project/config/../' |
CACHALOT_ENABLED | True |
CACHES | {'default': {'BACKEND': 'django_redis.cache.RedisCache',
'LOCATION': 'redis://tales-redis:6379/1',
'OPTIONS': {'CLIENT_CLASS': 'django_redis.client.DefaultClient',
'IGNORE_EXCEPTIONS': True}}} |
CACHE_MIDDLEWARE_ALIAS | 'default' |
CACHE_MIDDLEWARE_KEY_PREFIX | '********************' |
CACHE_MIDDLEWARE_SECONDS | 600 |
CI_COMMIT_SHORT_SHA | '484e3ae2' |
CI_COMMIT_TAG | '' |
CRISPY_ALLOWED_TEMPLATE_PACKS | 'bootstrap5' |
CRISPY_TEMPLATE_PACK | 'bootstrap5' |
CSRF_COOKIE_AGE | 31449600 |
CSRF_COOKIE_DOMAIN | None |
CSRF_COOKIE_HTTPONLY | False |
CSRF_COOKIE_MASKED | False |
CSRF_COOKIE_NAME | 'csrftoken' |
CSRF_COOKIE_PATH | '/' |
CSRF_COOKIE_SAMESITE | None |
CSRF_COOKIE_SECURE | False |
CSRF_FAILURE_VIEW | 'django.views.csrf.csrf_failure' |
CSRF_HEADER_NAME | 'HTTP_X_CSRFTOKEN' |
CSRF_TRUSTED_ORIGINS | [] |
CSRF_USE_SESSIONS | False |
DATABASES | {'default': {'ATOMIC_REQUESTS': False,
'AUTOCOMMIT': True,
'CONN_HEALTH_CHECKS': False,
'CONN_MAX_AGE': 0,
'ENGINE': 'django.db.backends.postgresql',
'HOST': 'tales-postgres',
'NAME': 'tptt',
'OPTIONS': {},
'PASSWORD': '********************',
'PORT': '5432',
'TEST': {'CHARSET': None,
'COLLATION': None,
'MIGRATE': True,
'MIRROR': None,
'NAME': None},
'TIME_ZONE': None,
'USER': 'tales_db_user'}} |
DATABASE_ROUTERS | [] |
DATA_UPLOAD_MAX_MEMORY_SIZE | 2621440 |
DATA_UPLOAD_MAX_NUMBER_FIELDS | 1000 |
DATA_UPLOAD_MAX_NUMBER_FILES | 100 |
DATETIME_FORMAT | 'N j, Y, P' |
DATETIME_INPUT_FORMATS | ['%Y-%m-%d %H:%M:%S',
'%Y-%m-%d %H:%M:%S.%f',
'%Y-%m-%d %H:%M',
'%m/%d/%Y %H:%M:%S',
'%m/%d/%Y %H:%M:%S.%f',
'%m/%d/%Y %H:%M',
'%m/%d/%y %H:%M:%S',
'%m/%d/%y %H:%M:%S.%f',
'%m/%d/%y %H:%M'] |
DATE_FORMAT | 'N j, Y' |
DATE_INPUT_FORMATS | ['%Y-%m-%d',
'%m/%d/%Y',
'%m/%d/%y',
'%b %d %Y',
'%b %d, %Y',
'%d %b %Y',
'%d %b, %Y',
'%B %d %Y',
'%B %d, %Y',
'%d %B %Y',
'%d %B, %Y'] |
DEBUG | True |
DEBUG_PROPAGATE_EXCEPTIONS | False |
DEBUG_TOOLBAR_CONFIG | {'SHOW_TOOLBAR_CALLBACK': <function show_toolbar at 0x7910e57c16c0>} |
DEBUG_TOOLBAR_PANELS | ['debug_toolbar.panels.history.HistoryPanel',
'debug_toolbar.panels.versions.VersionsPanel',
'debug_toolbar.panels.timer.TimerPanel',
'debug_toolbar.panels.settings.SettingsPanel',
'debug_toolbar.panels.headers.HeadersPanel',
'debug_toolbar.panels.request.RequestPanel',
'debug_toolbar.panels.sql.SQLPanel',
'debug_toolbar.panels.staticfiles.StaticFilesPanel',
'debug_toolbar.panels.templates.TemplatesPanel',
'debug_toolbar.panels.cache.CachePanel',
'cachalot.panels.CachalotPanel',
'debug_toolbar.panels.signals.SignalsPanel',
'debug_toolbar.panels.logging.LoggingPanel',
'debug_toolbar.panels.redirects.RedirectsPanel',
'debug_toolbar.panels.profiling.ProfilingPanel'] |
DECIMAL_SEPARATOR | '.' |
DEFAULT_AUTO_FIELD | 'django.db.models.AutoField' |
DEFAULT_CHARSET | 'utf-8' |
DEFAULT_EXCEPTION_REPORTER | 'django.views.debug.ExceptionReporter' |
DEFAULT_EXCEPTION_REPORTER_FILTER | 'django.views.debug.SafeExceptionReporterFilter' |
DEFAULT_FILE_STORAGE | 'django.core.files.storage.FileSystemStorage' |
DEFAULT_FROM_EMAIL | 'contact-nmc@unibas.ch' |
DEFAULT_INDEX_TABLESPACE | '' |
DEFAULT_TABLESPACE | '' |
DEPLOY_ENV | 'staging' |
DISALLOWED_USER_AGENTS | [] |
DJANGO_APPS | ('django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.forms',
'django.contrib.sites',
'django.contrib.flatpages',
'modeltranslation',
'django.contrib.admin',
'django.contrib.redirects',
'django.contrib.sitemaps',
'django.contrib.humanize') |
DJANGO_NOTIFICATIONS_CONFIG | {'USE_JSONFIELD': True} |
EMAIL_BACKEND | 'django.core.mail.backends.smtp.EmailBackend' |
EMAIL_HOST | 'smtp.unibas.ch' |
EMAIL_HOST_PASSWORD | '********************' |
EMAIL_HOST_USER | '' |
EMAIL_PORT | 25 |
EMAIL_SSL_CERTFILE | None |
EMAIL_SSL_KEYFILE | '********************' |
EMAIL_SUBJECT_PREFIX | '[Django] ' |
EMAIL_TIMEOUT | None |
EMAIL_USE_LOCALTIME | False |
EMAIL_USE_SSL | False |
EMAIL_USE_TLS | False |
FILE_UPLOAD_DIRECTORY_PERMISSIONS | None |
FILE_UPLOAD_HANDLERS | ['django.core.files.uploadhandler.MemoryFileUploadHandler',
'django.core.files.uploadhandler.TemporaryFileUploadHandler'] |
FILE_UPLOAD_MAX_MEMORY_SIZE | 2621440 |
FILE_UPLOAD_PERMISSIONS | 420 |
FILE_UPLOAD_TEMP_DIR | None |
FIRST_DAY_OF_WEEK | 0 |
FIXTURE_DIRS | [] |
FORCE_SCRIPT_NAME | None |
FORMAT_MODULE_PATH | None |
FORM_RENDERER | 'django.forms.renderers.TemplatesSetting' |
IGNORABLE_404_URLS | [] |
IMAGEKIT_CACHEFILE_DIR | 'CACHE/images' |
IMAGEKIT_CACHEFILE_NAMER | 'imagekit.cachefiles.namers.hash' |
IMAGEKIT_CACHE_BACKEND | 'default' |
IMAGEKIT_CACHE_PREFIX | 'imagekit:' |
IMAGEKIT_CACHE_TIMEOUT | 300 |
IMAGEKIT_DEFAULT_CACHEFILE_BACKEND | 'imagekit.cachefiles.backends.Simple' |
IMAGEKIT_DEFAULT_CACHEFILE_STRATEGY | 'imagekit.cachefiles.strategies.JustInTime' |
IMAGEKIT_DEFAULT_FILE_STORAGE | 'default' |
IMAGEKIT_SPEC_CACHEFILE_NAMER | 'imagekit.cachefiles.namers.source_name_as_path' |
IMAGEKIT_USE_MEMCACHED_SAFE_CACHE_KEY | '********************' |
INSTALLED_APPS | ('django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.forms',
'django.contrib.sites',
'django.contrib.flatpages',
'modeltranslation',
'django.contrib.admin',
'django.contrib.redirects',
'django.contrib.sitemaps',
'django.contrib.humanize',
'simple_history',
'crispy_forms',
'crispy_bootstrap5',
'allauth',
'allauth.account',
'allauth.socialaccount',
'mozilla_django_oidc',
'django_extensions',
'markdownx',
'rules.apps.AutodiscoverRulesConfig',
'imagekit',
'waffle',
'django_htmx',
'cachalot',
'corsheaders',
'tos',
'tos_i18n',
'impersonate',
'rosetta',
'django_q',
'notifications',
'link_check',
'users.apps.UsersConfig',
'lms_base',
'lms_tales.apps.LMSTalesConfig',
'lms_comments.apps.LMSCommentsConfig',
'lms_static_texts.apps.LMSStaticTextsConfig',
'tags.apps.TagsConfig',
'startpage.apps.StartpageConfig',
'search.apps.SearchConfig',
'utils.apps.UtilsConfig',
'dashboard.apps.DashboardConfig',
'reporting.apps.ReportingConfig',
'lms_notifications.apps.LMSNotificationsConfig',
'lms_roles.apps.LMSRolesConfig',
'storages',
'debug_toolbar') |
INTERNAL_IPS | ['127.0.0.1'] |
LANGUAGES | (('de', 'Deutsch'), ('en', 'Englisch'), ('fr', 'Franzoesisch')) |
LANGUAGES_BIDI | ['he', 'ar', 'ar-dz', 'ckb', 'fa', 'ur'] |
LANGUAGE_CODE | 'de' |
LANGUAGE_COOKIE_AGE | None |
LANGUAGE_COOKIE_DOMAIN | None |
LANGUAGE_COOKIE_HTTPONLY | False |
LANGUAGE_COOKIE_NAME | 'django_language' |
LANGUAGE_COOKIE_PATH | '/' |
LANGUAGE_COOKIE_SAMESITE | None |
LANGUAGE_COOKIE_SECURE | False |
LOCALE_PATHS | ['/app/project/config/../locale'] |
LOCAL_APPS | ('users.apps.UsersConfig',
'lms_base',
'lms_tales.apps.LMSTalesConfig',
'lms_comments.apps.LMSCommentsConfig',
'lms_static_texts.apps.LMSStaticTextsConfig',
'tags.apps.TagsConfig',
'startpage.apps.StartpageConfig',
'search.apps.SearchConfig',
'utils.apps.UtilsConfig',
'dashboard.apps.DashboardConfig',
'reporting.apps.ReportingConfig',
'lms_notifications.apps.LMSNotificationsConfig',
'lms_roles.apps.LMSRolesConfig') |
LOGGING | {'disable_existing_loggers': False,
'formatters': {'verbose': {'format': '{asctime} {levelname} {name} {module} '
'{message}',
'style': '{'}},
'handlers': {'console': {'class': 'logging.StreamHandler',
'formatter': 'verbose'},
'mail_admins': {'class': 'django.utils.log.AdminEmailHandler',
'include_html': True,
'level': 'ERROR'}},
'loggers': {'django': {'handlers': ['console', 'mail_admins'],
'level': 'WARNING',
'propagate': True},
'django.request': {'handlers': ['console', 'mail_admins'],
'level': 'ERROR',
'propagate': False},
'django.security': {'handlers': ['console', 'mail_admins'],
'level': 'ERROR',
'propagate': False},
'fontTools': {'handlers': ['console'], 'level': 'ERROR'},
'tales': {'handlers': ['console'], 'level': 'INFO'},
'weasyprint': {'handlers': ['console'], 'level': 'ERROR'}},
'root': {'handlers': ['console'], 'level': 'WARNING'},
'version': 1} |
LOGGING_CONFIG | 'logging.config.dictConfig' |
LOGIN_REDIRECT_URL | '/' |
LOGIN_URL | 'account_login' |
LOGOUT_REDIRECT_URL | '/' |
MANAGERS | [] |
MARKDOWNX_EDITOR_RESIZABLE | True |
MARKDOWNX_IMAGE_MAX_SIZE | {'quality': 90, 'size': (1920, 5600)} |
MARKDOWNX_MARKDOWNIFY_FUNCTION | 'lms_base.utils.markdownify' |
MARKDOWNX_MARKDOWN_EXTENSIONS | ['markdown.extensions.extra',
'markdown.extensions.smarty',
'markdown.extensions.codehilite',
'markdown.extensions.fenced_code',
'markdown.extensions.attr_list',
'markdown.extensions.toc',
'utils.markdown_extensions',
'python_markdown_oembed_extension'] |
MARKDOWNX_MEDIA_PATH | 'markdownx/' |
MARKDOWNX_UPLOAD_URLS_PATH | '/markdownx/upload/' |
MARKDOWNX_URLS_PATH | '/markdownx/markdownify/' |
MEDIA_ROOT | '/app/project/media' |
MEDIA_URL | '/media/' |
MESSAGE_REAPPEAR_TIME | 600 |
MESSAGE_STORAGE | 'django.contrib.messages.storage.fallback.FallbackStorage' |
MIDDLEWARE | ['corsheaders.middleware.CorsMiddleware',
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'lms_tales.middleware.SetLocaleFoundInUserSettings',
'django.middleware.locale.LocaleMiddleware',
'django.middleware.common.CommonMiddleware',
'allauth.account.middleware.AccountMiddleware',
'impersonate.middleware.ImpersonateMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'simple_history.middleware.HistoryRequestMiddleware',
'django.contrib.redirects.middleware.RedirectFallbackMiddleware',
'waffle.middleware.WaffleMiddleware',
'django_htmx.middleware.HtmxMiddleware',
'lms_tales.middleware.TalesUserAgreementMiddleware',
'lms_tales.middleware.ScheduledMessagesMiddleware',
'debug_toolbar.middleware.DebugToolbarMiddleware'] |
MIGRATION_MODULES | {'tos': 'lms_tales.migrate.tos'} |
MODELTRANSLATION_CUSTOM_FIELDS | ('JSONField',) |
MODELTRANSLATION_DEFAULT_LANGUAGE | 'de' |
MODELTRANSLATION_FALLBACK_LANGUAGES | ('de', 'en', 'fr') |
MONTH_DAY_FORMAT | 'F j' |
NOTIFICATIONS_NOTIFICATION_MODEL | 'notifications.Notification' |
NUMBER_GROUPING | 0 |
OIDC_OP_AUTHORIZATION_ENDPOINT | 'https://login.test.eduid.ch/idp/profile/oidc/authorize' |
OIDC_OP_JWKS_ENDPOINT | 'https://login.test.eduid.ch/idp/profile/oidc/keyset' |
OIDC_OP_TOKEN_ENDPOINT | '********************' |
OIDC_OP_USER_ENDPOINT | 'https://login.test.eduid.ch/idp/profile/oidc/userinfo' |
OIDC_RP_CLIENT_ID | 'unibas-tales' |
OIDC_RP_CLIENT_SECRET | '********************' |
OIDC_RP_SCOPES | 'openid email profile https://login.eduid.ch/authz/User.Read' |
OIDC_RP_SIGN_ALGO | 'RS256' |
OIDC_TOKEN_USE_BASIC_AUTH | '********************' |
PASSWORD_HASHERS | '********************' |
PASSWORD_RESET_TIMEOUT | '********************' |
PREPEND_WWW | False |
PROJECT_DIR | '/app/project/config/../' |
Q_CLUSTER | {'catch_up': False,
'django_redis': 'default',
'name': 'QCluster',
'retry': 600,
'timeout': 500,
'workers': 4} |
RELEASE_NAME | '' |
REQUIRE_SUPERUSER | True |
ROOT_URLCONF | 'config.urls' |
ROSETTA_MESSAGES_SOURCE_LANGUAGE_CODE | 'de' |
ROSETTA_MESSAGES_SOURCE_LANGUAGE_NAME | 'Deutsch' |
ROSETTA_SHOW_AT_ADMIN_PANEL | 'True' |
SECRET_KEY | '********************' |
SECRET_KEY_FALLBACKS | '********************' |
SECURE_CONTENT_TYPE_NOSNIFF | True |
SECURE_CROSS_ORIGIN_OPENER_POLICY | 'same-origin' |
SECURE_HSTS_INCLUDE_SUBDOMAINS | False |
SECURE_HSTS_PRELOAD | False |
SECURE_HSTS_SECONDS | 0 |
SECURE_PROXY_SSL_HEADER | ('HTTP_X_FORWARDED_PROTO', 'https') |
SECURE_REDIRECT_EXEMPT | [] |
SECURE_REFERRER_POLICY | 'same-origin' |
SECURE_SSL_HOST | None |
SECURE_SSL_REDIRECT | False |
SERVER_EMAIL | 'root@localhost' |
SESSION_CACHE_ALIAS | 'default' |
SESSION_COOKIE_AGE | 1209600 |
SESSION_COOKIE_DOMAIN | None |
SESSION_COOKIE_HTTPONLY | True |
SESSION_COOKIE_NAME | 'sessionid' |
SESSION_COOKIE_PATH | '/' |
SESSION_COOKIE_SAMESITE | None |
SESSION_COOKIE_SECURE | False |
SESSION_ENGINE | 'django.contrib.sessions.backends.cache' |
SESSION_EXPIRE_AT_BROWSER_CLOSE | False |
SESSION_FILE_PATH | None |
SESSION_SAVE_EVERY_REQUEST | False |
SESSION_SERIALIZER | 'django.contrib.sessions.serializers.JSONSerializer' |
SETTINGS_MODULE | 'config.settings.staging' |
SHORT_DATETIME_FORMAT | 'm/d/Y P' |
SHORT_DATE_FORMAT | 'm/d/Y' |
SIGNING_BACKEND | 'django.core.signing.TimestampSigner' |
SILENCED_SYSTEM_CHECKS | [] |
SITE_DOMAIN | 'https://nmc-tales-staging.nmc.unibas.ch/' |
SITE_ID | 1 |
SLACK_WEBHOOK | 'https://hooks.slack.com/services/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' |
STAGING_EMAIL_RECIPIENTS | ['notifications-nmc@unibas.ch'] |
STATICFILES_DIRS | ['/app/project/config/../static'] |
STATICFILES_FINDERS | ('django.contrib.staticfiles.finders.FileSystemFinder',
'django.contrib.staticfiles.finders.AppDirectoriesFinder') |
STATICFILES_STORAGE | 'django.contrib.staticfiles.storage.StaticFilesStorage' |
STATIC_ROOT | '/app/project/config/../../staticfiles' |
STATIC_URL | '/static/' |
STORAGES | {'default': {'BACKEND': 'django.core.files.storage.FileSystemStorage'},
'staticfiles': {'BACKEND': 'django.contrib.staticfiles.storage.StaticFilesStorage'}} |
TALES_BASE_URL | 'https://tales.nmc.unibas.ch' |
TALES_VERSION | 'dev' |
TEMPLATES | [{'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': ['/app/project/config/../templates',
'/usr/local/lib/python3.11/site-packages/django/forms/templates'],
'OPTIONS': {'builtins': ['django.templatetags.i18n',
'django.templatetags.static'],
'context_processors': ['django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.template.context_processors.i18n',
'django.template.context_processors.media',
'django.template.context_processors.static',
'django.template.context_processors.tz',
'django.contrib.messages.context_processors.messages',
'utils.context_processors.ci_info'],
'debug': False,
'loaders': ['django.template.loaders.filesystem.Loader',
'django.template.loaders.app_directories.Loader']}}] |
TEST_NON_SERIALIZED_APPS | [] |
TEST_RUNNER | 'django.test.runner.DiscoverRunner' |
THIRD_PARTY_APPS | ('debug_toolbar',) |
THOUSAND_SEPARATOR | ',' |
TIME_FORMAT | 'P' |
TIME_INPUT_FORMATS | ['%H:%M:%S', '%H:%M:%S.%f', '%H:%M'] |
TIME_ZONE | 'Europe/Zurich' |
USER_DEACTIVATION_AFTER_DAYS | 730 |
USER_DELETION_AFTER_DAYS | 912 |
USE_DEPRECATED_PYTZ | False |
USE_I18N | True |
USE_L10N | True |
USE_THOUSAND_SEPARATOR | False |
USE_TZ | True |
USE_X_FORWARDED_HOST | True |
USE_X_FORWARDED_PORT | False |
VIEW_CACHE_TTL | 600 |
WAFFLE_LOG_MISSING_FLAGS | 30 |
WAFFLE_LOG_MISSING_SAMPLES | 30 |
WAFFLE_LOG_MISSING_SWITCHES | 30 |
WSGI_APPLICATION | 'config.wsgi.application' |
X_FRAME_OPTIONS | 'DENY' |
YEAR_MONTH_FORMAT | 'F Y' |
Header
Anfrage-Header
Schlüssel | Wert |
---|---|
Accept | text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7 |
Accept-Encoding | gzip, deflate, br, zstd |
Cache-Control | no-cache |
Host | nmc-tales-staging.nmc.unibas.ch |
Pragma | no-cache |
Priority | u=0, i |
Sec-Ch-Ua | "HeadlessChrome";v="129", "Not=A?Brand";v="8", "Chromium";v="129" |
Sec-Ch-Ua-Mobile | ?0 |
Sec-Ch-Ua-Platform | "Windows" |
Sec-Fetch-Dest | document |
Sec-Fetch-Mode | navigate |
Sec-Fetch-Site | none |
Sec-Fetch-User | ?1 |
Upgrade-Insecure-Requests | 1 |
User-Agent | Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com) |
X-Forwarded-For | 18.191.150.83 |
X-Forwarded-Host | nmc-tales-staging.nmc.unibas.ch |
X-Forwarded-Proto | https |
Antwort-Header
Schlüssel | Wert |
---|---|
Content-Type | text/html; charset=utf-8 |
WSGI-Umgebung
Da sich die WSGI-Umgebung von der Umgebung des Servers ableitet, wird nur eine notwendige Teilmenge dargestellt.
Schlüssel | Wert |
---|---|
PATH_INFO | /de/exploring-possible-futures-44/putting-the-pieces-together-to-look-into-the-future-229/last-essential-steps-1311 |
QUERY_STRING | |
REMOTE_ADDR | 18.191.150.83 |
REMOTE_HOST | 18.191.150.83 |
REQUEST_METHOD | GET |
SCRIPT_NAME | |
SERVER_NAME | 172.19.0.7 |
SERVER_PORT | 8000 |
Anfrage
View-Informationen
View-Funktion | Argumente | Schlüsselwort-Argumente | URL-Name |
---|---|---|---|
utils.decorators.cache_per_user.<locals>.decorator.<locals>.apply_cache |
() |
{'chapter_pk': 229,
'chapter_slug': 'putting-the-pieces-together-to-look-into-the-future',
'course_pk': 44,
'course_slug': 'exploring-possible-futures',
'pk': 1311,
'slug': 'last-essential-steps'} |
tales:step |
Keine Cookies
Keine Sitzungsdaten
Keine GET-Daten
Keine POST-Daten
SQL-Abfragen von 1 Verbindung
- default 19,25 ms (20 Abfragen inklusive 12 ähnlich )
Abfrage | Verlauf | Zeit (ms) | Aktion | ||
---|---|---|---|---|---|
SELECT "lms_tales_talesstep"."id",
"lms_tales_talesstep"."created", "lms_tales_talesstep"."modified", "lms_tales_talesstep"."status_changed", "lms_tales_talesstep"."is_removed", "lms_tales_talesstep"."title", "lms_tales_talesstep"."title_de", "lms_tales_talesstep"."title_en", "lms_tales_talesstep"."title_fr", "lms_tales_talesstep"."subtitle", "lms_tales_talesstep"."subtitle_de", "lms_tales_talesstep"."subtitle_en", "lms_tales_talesstep"."subtitle_fr", "lms_tales_talesstep"."short_description", "lms_tales_talesstep"."short_description_de", "lms_tales_talesstep"."short_description_en", "lms_tales_talesstep"."short_description_fr", "lms_tales_talesstep"."title_image", "lms_tales_talesstep"."slug", "lms_tales_talesstep"."content", "lms_tales_talesstep"."content_de", "lms_tales_talesstep"."content_en", "lms_tales_talesstep"."content_fr", "lms_tales_talesstep"."content_html", "lms_tales_talesstep"."content_html_de", "lms_tales_talesstep"."content_html_en", "lms_tales_talesstep"."content_html_fr", "lms_tales_talesstep"."content_json", "lms_tales_talesstep"."content_json_de", "lms_tales_talesstep"."content_json_en", "lms_tales_talesstep"."content_json_fr", "lms_tales_talesstep"."copyright", "lms_tales_talesstep"."copyright_de", "lms_tales_talesstep"."copyright_en", "lms_tales_talesstep"."copyright_fr", "lms_tales_talesstep"."step_type", "lms_tales_talesstep"."duration", "lms_tales_talesstep"."order", "lms_tales_talesstep"."status", "lms_tales_talesstep"."allow_comments", "lms_tales_talesstep"."call_to_action", "lms_tales_talesstep"."call_to_action_de", "lms_tales_talesstep"."call_to_action_en", "lms_tales_talesstep"."call_to_action_fr", "lms_tales_talesstep"."chapter_id" FROM "lms_tales_talesstep" WHERE "lms_tales_talesstep"."id" = 1311 LIMIT 21SELECT ••• FROM "lms_tales_talesstep" WHERE "lms_tales_talesstep"."id" = 1311 LIMIT 21 |
1,78 | ||||
Verbindung: default Transaktionsstatus: Wartet /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in run(101) return _run_old_run_func() /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in _run_old_run_func(94) return old_run_func(self, *a, **kw) /usr/local/lib/python3.11/concurrent/futures/thread.py in _worker(83) work_item.run() /usr/local/lib/python3.11/concurrent/futures/thread.py in run(58) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56) result = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in middleware(32) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/allauth/account/middleware.py in middleware(36) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/simple_history/middleware.py in middleware(41) return get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/django_htmx/middleware.py in __call__(43) return self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in __call__(168) response = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/panels.py in process_request(41) return super(CachalotPanel, self).process_request(request) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in __call__(244) current_executor.run_until_future(call_result) /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run_until_future(81) work_item.run() /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run(40) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(90) return callback(request, *args, **kwargs) /app/project/utils/decorators.py in apply_cache(64) response = function(request, *args, **kwargs) /usr/local/lib/python3.11/site-packages/django/views/generic/base.py in view(104) return self.dispatch(request, *args, **kwargs) /app/project/lms_tales/views/mixins.py in dispatch(20) self.object = self.get_object() /usr/local/lib/python3.11/site-packages/django/views/generic/detail.py in get_object(53) obj = queryset.get() /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(37) return original(compiler, *args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(96) return _get_result_or_execute_query( /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in _get_result_or_execute_query(64) result = execute_query_func() /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in <lambda>(80) execute_query_func = lambda: original(compiler, *args, **kwargs) |
|||||
SELECT "lms_tales_talesstepfilenew"."id",
2 ähnliche Abfragen.
"lms_tales_talesstepfilenew"."created", "lms_tales_talesstepfilenew"."modified", "lms_tales_talesstepfilenew"."step_id", "lms_tales_talesstepfilenew"."file_id", "lms_tales_talesstepfilenew"."language" FROM "lms_tales_talesstepfilenew" WHERE ("lms_tales_talesstepfilenew"."language" = 'de' AND "lms_tales_talesstepfilenew"."step_id" = 1311)SELECT ••• FROM "lms_tales_talesstepfilenew" WHERE ("lms_tales_talesstepfilenew"."language" = 'de' AND "lms_tales_talesstepfilenew"."step_id" = 1311) |
1,10 | ||||
Verbindung: default Transaktionsstatus: Wartet /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in run(101) return _run_old_run_func() /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in _run_old_run_func(94) return old_run_func(self, *a, **kw) /usr/local/lib/python3.11/concurrent/futures/thread.py in _worker(83) work_item.run() /usr/local/lib/python3.11/concurrent/futures/thread.py in run(58) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56) result = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in middleware(32) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/allauth/account/middleware.py in middleware(36) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/simple_history/middleware.py in middleware(41) return get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/django_htmx/middleware.py in __call__(43) return self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in __call__(168) response = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/panels.py in process_request(41) return super(CachalotPanel, self).process_request(request) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in __call__(244) current_executor.run_until_future(call_result) /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run_until_future(81) work_item.run() /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run(40) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(90) return callback(request, *args, **kwargs) /app/project/utils/decorators.py in apply_cache(64) response = function(request, *args, **kwargs) /usr/local/lib/python3.11/site-packages/django/views/generic/base.py in view(104) return self.dispatch(request, *args, **kwargs) /app/project/lms_tales/views/mixins.py in dispatch(31) return super().dispatch(request, *args, **kwargs) /usr/local/lib/python3.11/site-packages/django/views/generic/base.py in dispatch(143) return handler(request, *args, **kwargs) /app/project/lms_tales/views/step_views.py in get(36) response = super().get(request, *args, **kwargs) /usr/local/lib/python3.11/site-packages/django/views/generic/detail.py in get(109) context = self.get_context_data(object=self.object) /app/project/lms_tales/views/step_views.py in get_context_data(63) if len(step_files_new) == 0: /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(37) return original(compiler, *args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(96) return _get_result_or_execute_query( /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in _get_result_or_execute_query(64) result = execute_query_func() /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in <lambda>(80) execute_query_func = lambda: original(compiler, *args, **kwargs) |
|||||
SELECT "lms_tales_talesstepfilenew"."id",
2 ähnliche Abfragen.
"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" = 1311)SELECT ••• FROM "lms_tales_talesstepfilenew" WHERE ("lms_tales_talesstepfilenew"."language" = 'en' AND "lms_tales_talesstepfilenew"."step_id" = 1311) |
0,63 | ||||
Verbindung: default Transaktionsstatus: Wartet /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in run(101) return _run_old_run_func() /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in _run_old_run_func(94) return old_run_func(self, *a, **kw) /usr/local/lib/python3.11/concurrent/futures/thread.py in _worker(83) work_item.run() /usr/local/lib/python3.11/concurrent/futures/thread.py in run(58) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56) result = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in middleware(32) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/allauth/account/middleware.py in middleware(36) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/simple_history/middleware.py in middleware(41) return get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/django_htmx/middleware.py in __call__(43) return self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in __call__(168) response = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/panels.py in process_request(41) return super(CachalotPanel, self).process_request(request) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in __call__(244) current_executor.run_until_future(call_result) /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run_until_future(81) work_item.run() /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run(40) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(90) return callback(request, *args, **kwargs) /app/project/utils/decorators.py in apply_cache(64) response = function(request, *args, **kwargs) /usr/local/lib/python3.11/site-packages/django/views/generic/base.py in view(104) return self.dispatch(request, *args, **kwargs) /app/project/lms_tales/views/mixins.py in dispatch(31) return super().dispatch(request, *args, **kwargs) /usr/local/lib/python3.11/site-packages/django/views/generic/base.py in dispatch(143) return handler(request, *args, **kwargs) /app/project/lms_tales/views/step_views.py in get(36) response = super().get(request, *args, **kwargs) /usr/local/lib/python3.11/site-packages/django/views/generic/detail.py in get(109) context = self.get_context_data(object=self.object) /app/project/lms_tales/views/step_views.py in get_context_data(69) if len(step_files_new) > 0: /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(37) return original(compiler, *args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(96) return _get_result_or_execute_query( /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in _get_result_or_execute_query(64) result = execute_query_func() /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in <lambda>(80) execute_query_func = lambda: original(compiler, *args, **kwargs) |
|||||
SELECT "lms_tales_talesauthor"."id",
"lms_tales_talesauthor"."created", "lms_tales_talesauthor"."modified", "lms_tales_talesauthor"."name", "lms_tales_talesauthor"."name_de", "lms_tales_talesauthor"."name_en", "lms_tales_talesauthor"."name_fr", "lms_tales_talesauthor"."image", "lms_tales_talesauthor"."order", "lms_tales_talesauthor"."course_id" FROM "lms_tales_talesauthor" WHERE "lms_tales_talesauthor"."course_id" = 44SELECT ••• FROM "lms_tales_talesauthor" WHERE "lms_tales_talesauthor"."course_id" = 44 |
0,80 | ||||
Verbindung: default Transaktionsstatus: Wartet /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in run(101) return _run_old_run_func() /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in _run_old_run_func(94) return old_run_func(self, *a, **kw) /usr/local/lib/python3.11/concurrent/futures/thread.py in _worker(83) work_item.run() /usr/local/lib/python3.11/concurrent/futures/thread.py in run(58) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56) result = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in middleware(32) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/allauth/account/middleware.py in middleware(36) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/simple_history/middleware.py in middleware(41) return get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/django_htmx/middleware.py in __call__(43) return self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in __call__(168) response = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/panels.py in process_request(41) return super(CachalotPanel, self).process_request(request) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in __call__(244) current_executor.run_until_future(call_result) /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run_until_future(81) work_item.run() /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run(40) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(90) return callback(request, *args, **kwargs) /app/project/utils/decorators.py in apply_cache(72) cache.set(CACHE_KEY, response.render(), ttl) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_patched_render(41) return old_render(self) /usr/local/lib/python3.11/site-packages/django/template/response.py in render(114) self.content = self.rendered_content /usr/local/lib/python3.11/site-packages/sentry_sdk/utils.py in runner(1788) return sentry_patched_function(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/templates.py in rendered_content(77) return real_rendered_content.fget(self) /usr/local/lib/python3.11/site-packages/django/template/response.py in rendered_content(92) return template.render(context, self._request) /usr/local/lib/python3.11/site-packages/django/template/backends/django.py in render(61) return self.template.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(175) return self._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157) return compiled_parent._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157) return compiled_parent._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(314) match = condition.eval(context) /usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in eval(877) return self.value.resolve(context, ignore_failures=True) /usr/local/lib/python3.11/site-packages/django/template/base.py in resolve(715) obj = self.var.resolve(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in resolve(847) value = self._resolve_lookup(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in _resolve_lookup(890) current = getattr(current, bit) /app/project/lms_tales/models.py in meta(83) + ", ".join([author.name for author in self.get_course().authors.all()]), /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(37) return original(compiler, *args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(96) return _get_result_or_execute_query( /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in _get_result_or_execute_query(64) result = execute_query_func() /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in <lambda>(80) execute_query_func = lambda: original(compiler, *args, **kwargs) |
|||||
SELECT "waffle_flag"."id",
3 ähnliche Abfragen.
"waffle_flag"."name", "waffle_flag"."everyone", "waffle_flag"."percent", "waffle_flag"."testing", "waffle_flag"."superusers", "waffle_flag"."staff", "waffle_flag"."authenticated", "waffle_flag"."languages", "waffle_flag"."rollout", "waffle_flag"."note", "waffle_flag"."created", "waffle_flag"."modified" FROM "waffle_flag" WHERE "waffle_flag"."name" = 'show_login_button' LIMIT 21SELECT ••• FROM "waffle_flag" WHERE "waffle_flag"."name" = 'show_login_button' LIMIT 21 |
0,77 | ||||
Verbindung: default Transaktionsstatus: Wartet /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in run(101) return _run_old_run_func() /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in _run_old_run_func(94) return old_run_func(self, *a, **kw) /usr/local/lib/python3.11/concurrent/futures/thread.py in _worker(83) work_item.run() /usr/local/lib/python3.11/concurrent/futures/thread.py in run(58) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56) result = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in middleware(32) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/allauth/account/middleware.py in middleware(36) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/simple_history/middleware.py in middleware(41) return get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/django_htmx/middleware.py in __call__(43) return self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in __call__(168) response = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/panels.py in process_request(41) return super(CachalotPanel, self).process_request(request) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in __call__(244) current_executor.run_until_future(call_result) /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run_until_future(81) work_item.run() /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run(40) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(90) return callback(request, *args, **kwargs) /app/project/utils/decorators.py in apply_cache(72) cache.set(CACHE_KEY, response.render(), ttl) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_patched_render(41) return old_render(self) /usr/local/lib/python3.11/site-packages/django/template/response.py in render(114) self.content = self.rendered_content /usr/local/lib/python3.11/site-packages/sentry_sdk/utils.py in runner(1788) return sentry_patched_function(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/templates.py in rendered_content(77) return real_rendered_content.fget(self) /usr/local/lib/python3.11/site-packages/django/template/response.py in rendered_content(92) return template.render(context, self._request) /usr/local/lib/python3.11/site-packages/django/template/backends/django.py in render(61) return self.template.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(175) return self._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157) return compiled_parent._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157) return compiled_parent._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63) result = block.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(208) return template.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(177) return self._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(321) return nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/waffle/templatetags/waffle_tags.py in render(36) if self.condition(context.get('request', None), name): /usr/local/lib/python3.11/site-packages/waffle/__init__.py in flag_is_active(19) flag = get_waffle_flag_model().get(flag_name) /usr/local/lib/python3.11/site-packages/waffle/models.py in get(59) obj = cls.get_from_db(name) /usr/local/lib/python3.11/site-packages/waffle/models.py in get_from_db(72) return objects.get(name=name) /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(37) return original(compiler, *args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(94) return execute_query_func() /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in <lambda>(80) execute_query_func = lambda: original(compiler, *args, **kwargs) |
|||||
SELECT "lms_tales_taleschapter"."id",
"lms_tales_taleschapter"."created", "lms_tales_taleschapter"."modified", "lms_tales_taleschapter"."status_changed", "lms_tales_taleschapter"."is_removed", "lms_tales_taleschapter"."title", "lms_tales_taleschapter"."title_de", "lms_tales_taleschapter"."title_en", "lms_tales_taleschapter"."title_fr", "lms_tales_taleschapter"."slug", "lms_tales_taleschapter"."order", "lms_tales_taleschapter"."status", "lms_tales_taleschapter"."course_id" FROM "lms_tales_taleschapter" WHERE ("lms_tales_taleschapter"."course_id" = 44 AND NOT "lms_tales_taleschapter"."is_removed" AND "lms_tales_taleschapter"."status" = 'published') ORDER BY "lms_tales_taleschapter"."course_id" ASC, "lms_tales_taleschapter"."order" ASCSELECT ••• FROM "lms_tales_taleschapter" WHERE ("lms_tales_taleschapter"."course_id" = 44 AND NOT "lms_tales_taleschapter"."is_removed" AND "lms_tales_taleschapter"."status" = 'published') ORDER BY "lms_tales_taleschapter"."course_id" ASC, "lms_tales_taleschapter"."order" ASC |
0,92 | ||||
Verbindung: default Transaktionsstatus: Wartet /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in run(101) return _run_old_run_func() /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in _run_old_run_func(94) return old_run_func(self, *a, **kw) /usr/local/lib/python3.11/concurrent/futures/thread.py in _worker(83) work_item.run() /usr/local/lib/python3.11/concurrent/futures/thread.py in run(58) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56) result = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in middleware(32) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/allauth/account/middleware.py in middleware(36) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/simple_history/middleware.py in middleware(41) return get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/django_htmx/middleware.py in __call__(43) return self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in __call__(168) response = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/panels.py in process_request(41) return super(CachalotPanel, self).process_request(request) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in __call__(244) current_executor.run_until_future(call_result) /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run_until_future(81) work_item.run() /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run(40) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(90) return callback(request, *args, **kwargs) /app/project/utils/decorators.py in apply_cache(72) cache.set(CACHE_KEY, response.render(), ttl) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_patched_render(41) return old_render(self) /usr/local/lib/python3.11/site-packages/django/template/response.py in render(114) self.content = self.rendered_content /usr/local/lib/python3.11/site-packages/sentry_sdk/utils.py in runner(1788) return sentry_patched_function(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/templates.py in rendered_content(77) return real_rendered_content.fget(self) /usr/local/lib/python3.11/site-packages/django/template/response.py in rendered_content(92) return template.render(context, self._request) /usr/local/lib/python3.11/site-packages/django/template/backends/django.py in render(61) return self.template.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(175) return self._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157) return compiled_parent._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157) return compiled_parent._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63) result = block.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63) result = block.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(208) return template.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(177) return self._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(321) return nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(194) len_values = len(values) /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(37) return original(compiler, *args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(96) return _get_result_or_execute_query( /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in _get_result_or_execute_query(64) result = execute_query_func() /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in <lambda>(80) execute_query_func = lambda: original(compiler, *args, **kwargs) |
|||||
SELECT "lms_tales_talesstep"."id",
5 ähnliche Abfragen.
"lms_tales_talesstep"."created", "lms_tales_talesstep"."modified", "lms_tales_talesstep"."status_changed", "lms_tales_talesstep"."is_removed", "lms_tales_talesstep"."title", "lms_tales_talesstep"."title_de", "lms_tales_talesstep"."title_en", "lms_tales_talesstep"."title_fr", "lms_tales_talesstep"."subtitle", "lms_tales_talesstep"."subtitle_de", "lms_tales_talesstep"."subtitle_en", "lms_tales_talesstep"."subtitle_fr", "lms_tales_talesstep"."short_description", "lms_tales_talesstep"."short_description_de", "lms_tales_talesstep"."short_description_en", "lms_tales_talesstep"."short_description_fr", "lms_tales_talesstep"."title_image", "lms_tales_talesstep"."slug", "lms_tales_talesstep"."content", "lms_tales_talesstep"."content_de", "lms_tales_talesstep"."content_en", "lms_tales_talesstep"."content_fr", "lms_tales_talesstep"."content_html", "lms_tales_talesstep"."content_html_de", "lms_tales_talesstep"."content_html_en", "lms_tales_talesstep"."content_html_fr", "lms_tales_talesstep"."content_json", "lms_tales_talesstep"."content_json_de", "lms_tales_talesstep"."content_json_en", "lms_tales_talesstep"."content_json_fr", "lms_tales_talesstep"."copyright", "lms_tales_talesstep"."copyright_de", "lms_tales_talesstep"."copyright_en", "lms_tales_talesstep"."copyright_fr", "lms_tales_talesstep"."step_type", "lms_tales_talesstep"."duration", "lms_tales_talesstep"."order", "lms_tales_talesstep"."status", "lms_tales_talesstep"."allow_comments", "lms_tales_talesstep"."call_to_action", "lms_tales_talesstep"."call_to_action_de", "lms_tales_talesstep"."call_to_action_en", "lms_tales_talesstep"."call_to_action_fr", "lms_tales_talesstep"."chapter_id" FROM "lms_tales_talesstep" INNER JOIN "lms_tales_taleschapter" ON ("lms_tales_talesstep"."chapter_id" = "lms_tales_taleschapter"."id") WHERE ("lms_tales_talesstep"."chapter_id" = 225 AND NOT "lms_tales_talesstep"."is_removed" AND "lms_tales_talesstep"."status" = 'published') ORDER BY "lms_tales_taleschapter"."course_id" ASC, "lms_tales_taleschapter"."order" ASC, "lms_tales_talesstep"."order" ASCSELECT ••• 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" = 225 AND NOT "lms_tales_talesstep"."is_removed" AND "lms_tales_talesstep"."status" = 'published') ORDER BY "lms_tales_taleschapter"."course_id" ASC, "lms_tales_taleschapter"."order" ASC, "lms_tales_talesstep"."order" ASC |
1,72 | ||||
Verbindung: default Transaktionsstatus: Wartet /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in run(101) return _run_old_run_func() /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in _run_old_run_func(94) return old_run_func(self, *a, **kw) /usr/local/lib/python3.11/concurrent/futures/thread.py in _worker(83) work_item.run() /usr/local/lib/python3.11/concurrent/futures/thread.py in run(58) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56) result = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in middleware(32) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/allauth/account/middleware.py in middleware(36) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/simple_history/middleware.py in middleware(41) return get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/django_htmx/middleware.py in __call__(43) return self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in __call__(168) response = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/panels.py in process_request(41) return super(CachalotPanel, self).process_request(request) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in __call__(244) current_executor.run_until_future(call_result) /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run_until_future(81) work_item.run() /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run(40) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(90) return callback(request, *args, **kwargs) /app/project/utils/decorators.py in apply_cache(72) cache.set(CACHE_KEY, response.render(), ttl) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_patched_render(41) return old_render(self) /usr/local/lib/python3.11/site-packages/django/template/response.py in render(114) self.content = self.rendered_content /usr/local/lib/python3.11/site-packages/sentry_sdk/utils.py in runner(1788) return sentry_patched_function(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/templates.py in rendered_content(77) return real_rendered_content.fget(self) /usr/local/lib/python3.11/site-packages/django/template/response.py in rendered_content(92) return template.render(context, self._request) /usr/local/lib/python3.11/site-packages/django/template/backends/django.py in render(61) return self.template.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(175) return self._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157) return compiled_parent._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157) return compiled_parent._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63) result = block.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63) result = block.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(208) return template.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(177) return self._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(321) return nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(238) nodelist.append(node.render_annotated(context)) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(194) len_values = len(values) /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(37) return original(compiler, *args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(96) return _get_result_or_execute_query( /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in _get_result_or_execute_query(64) result = execute_query_func() /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in <lambda>(80) execute_query_func = lambda: original(compiler, *args, **kwargs) |
|||||
SELECT "lms_tales_talesstep"."id",
5 ähnliche Abfragen.
"lms_tales_talesstep"."created", "lms_tales_talesstep"."modified", "lms_tales_talesstep"."status_changed", "lms_tales_talesstep"."is_removed", "lms_tales_talesstep"."title", "lms_tales_talesstep"."title_de", "lms_tales_talesstep"."title_en", "lms_tales_talesstep"."title_fr", "lms_tales_talesstep"."subtitle", "lms_tales_talesstep"."subtitle_de", "lms_tales_talesstep"."subtitle_en", "lms_tales_talesstep"."subtitle_fr", "lms_tales_talesstep"."short_description", "lms_tales_talesstep"."short_description_de", "lms_tales_talesstep"."short_description_en", "lms_tales_talesstep"."short_description_fr", "lms_tales_talesstep"."title_image", "lms_tales_talesstep"."slug", "lms_tales_talesstep"."content", "lms_tales_talesstep"."content_de", "lms_tales_talesstep"."content_en", "lms_tales_talesstep"."content_fr", "lms_tales_talesstep"."content_html", "lms_tales_talesstep"."content_html_de", "lms_tales_talesstep"."content_html_en", "lms_tales_talesstep"."content_html_fr", "lms_tales_talesstep"."content_json", "lms_tales_talesstep"."content_json_de", "lms_tales_talesstep"."content_json_en", "lms_tales_talesstep"."content_json_fr", "lms_tales_talesstep"."copyright", "lms_tales_talesstep"."copyright_de", "lms_tales_talesstep"."copyright_en", "lms_tales_talesstep"."copyright_fr", "lms_tales_talesstep"."step_type", "lms_tales_talesstep"."duration", "lms_tales_talesstep"."order", "lms_tales_talesstep"."status", "lms_tales_talesstep"."allow_comments", "lms_tales_talesstep"."call_to_action", "lms_tales_talesstep"."call_to_action_de", "lms_tales_talesstep"."call_to_action_en", "lms_tales_talesstep"."call_to_action_fr", "lms_tales_talesstep"."chapter_id" FROM "lms_tales_talesstep" INNER JOIN "lms_tales_taleschapter" ON ("lms_tales_talesstep"."chapter_id" = "lms_tales_taleschapter"."id") WHERE ("lms_tales_talesstep"."chapter_id" = 226 AND NOT "lms_tales_talesstep"."is_removed" AND "lms_tales_talesstep"."status" = 'published') ORDER BY "lms_tales_taleschapter"."course_id" ASC, "lms_tales_taleschapter"."order" ASC, "lms_tales_talesstep"."order" ASCSELECT ••• 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" = 226 AND NOT "lms_tales_talesstep"."is_removed" AND "lms_tales_talesstep"."status" = 'published') ORDER BY "lms_tales_taleschapter"."course_id" ASC, "lms_tales_taleschapter"."order" ASC, "lms_tales_talesstep"."order" ASC |
1,18 | ||||
Verbindung: default Transaktionsstatus: Wartet /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in run(101) return _run_old_run_func() /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in _run_old_run_func(94) return old_run_func(self, *a, **kw) /usr/local/lib/python3.11/concurrent/futures/thread.py in _worker(83) work_item.run() /usr/local/lib/python3.11/concurrent/futures/thread.py in run(58) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56) result = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in middleware(32) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/allauth/account/middleware.py in middleware(36) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/simple_history/middleware.py in middleware(41) return get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/django_htmx/middleware.py in __call__(43) return self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in __call__(168) response = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/panels.py in process_request(41) return super(CachalotPanel, self).process_request(request) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in __call__(244) current_executor.run_until_future(call_result) /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run_until_future(81) work_item.run() /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run(40) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(90) return callback(request, *args, **kwargs) /app/project/utils/decorators.py in apply_cache(72) cache.set(CACHE_KEY, response.render(), ttl) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_patched_render(41) return old_render(self) /usr/local/lib/python3.11/site-packages/django/template/response.py in render(114) self.content = self.rendered_content /usr/local/lib/python3.11/site-packages/sentry_sdk/utils.py in runner(1788) return sentry_patched_function(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/templates.py in rendered_content(77) return real_rendered_content.fget(self) /usr/local/lib/python3.11/site-packages/django/template/response.py in rendered_content(92) return template.render(context, self._request) /usr/local/lib/python3.11/site-packages/django/template/backends/django.py in render(61) return self.template.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(175) return self._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157) return compiled_parent._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157) return compiled_parent._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63) result = block.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63) result = block.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(208) return template.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(177) return self._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(321) return nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(238) nodelist.append(node.render_annotated(context)) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(194) len_values = len(values) /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(37) return original(compiler, *args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(96) return _get_result_or_execute_query( /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in _get_result_or_execute_query(64) result = execute_query_func() /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in <lambda>(80) execute_query_func = lambda: original(compiler, *args, **kwargs) |
|||||
SELECT "lms_tales_talesstep"."id",
5 ähnliche Abfragen.
"lms_tales_talesstep"."created", "lms_tales_talesstep"."modified", "lms_tales_talesstep"."status_changed", "lms_tales_talesstep"."is_removed", "lms_tales_talesstep"."title", "lms_tales_talesstep"."title_de", "lms_tales_talesstep"."title_en", "lms_tales_talesstep"."title_fr", "lms_tales_talesstep"."subtitle", "lms_tales_talesstep"."subtitle_de", "lms_tales_talesstep"."subtitle_en", "lms_tales_talesstep"."subtitle_fr", "lms_tales_talesstep"."short_description", "lms_tales_talesstep"."short_description_de", "lms_tales_talesstep"."short_description_en", "lms_tales_talesstep"."short_description_fr", "lms_tales_talesstep"."title_image", "lms_tales_talesstep"."slug", "lms_tales_talesstep"."content", "lms_tales_talesstep"."content_de", "lms_tales_talesstep"."content_en", "lms_tales_talesstep"."content_fr", "lms_tales_talesstep"."content_html", "lms_tales_talesstep"."content_html_de", "lms_tales_talesstep"."content_html_en", "lms_tales_talesstep"."content_html_fr", "lms_tales_talesstep"."content_json", "lms_tales_talesstep"."content_json_de", "lms_tales_talesstep"."content_json_en", "lms_tales_talesstep"."content_json_fr", "lms_tales_talesstep"."copyright", "lms_tales_talesstep"."copyright_de", "lms_tales_talesstep"."copyright_en", "lms_tales_talesstep"."copyright_fr", "lms_tales_talesstep"."step_type", "lms_tales_talesstep"."duration", "lms_tales_talesstep"."order", "lms_tales_talesstep"."status", "lms_tales_talesstep"."allow_comments", "lms_tales_talesstep"."call_to_action", "lms_tales_talesstep"."call_to_action_de", "lms_tales_talesstep"."call_to_action_en", "lms_tales_talesstep"."call_to_action_fr", "lms_tales_talesstep"."chapter_id" FROM "lms_tales_talesstep" INNER JOIN "lms_tales_taleschapter" ON ("lms_tales_talesstep"."chapter_id" = "lms_tales_taleschapter"."id") WHERE ("lms_tales_talesstep"."chapter_id" = 227 AND NOT "lms_tales_talesstep"."is_removed" AND "lms_tales_talesstep"."status" = 'published') ORDER BY "lms_tales_taleschapter"."course_id" ASC, "lms_tales_taleschapter"."order" ASC, "lms_tales_talesstep"."order" ASCSELECT ••• 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" = 227 AND NOT "lms_tales_talesstep"."is_removed" AND "lms_tales_talesstep"."status" = 'published') ORDER BY "lms_tales_taleschapter"."course_id" ASC, "lms_tales_taleschapter"."order" ASC, "lms_tales_talesstep"."order" ASC |
1,68 | ||||
Verbindung: default Transaktionsstatus: Wartet /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in run(101) return _run_old_run_func() /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in _run_old_run_func(94) return old_run_func(self, *a, **kw) /usr/local/lib/python3.11/concurrent/futures/thread.py in _worker(83) work_item.run() /usr/local/lib/python3.11/concurrent/futures/thread.py in run(58) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56) result = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in middleware(32) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/allauth/account/middleware.py in middleware(36) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/simple_history/middleware.py in middleware(41) return get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/django_htmx/middleware.py in __call__(43) return self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in __call__(168) response = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/panels.py in process_request(41) return super(CachalotPanel, self).process_request(request) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in __call__(244) current_executor.run_until_future(call_result) /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run_until_future(81) work_item.run() /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run(40) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(90) return callback(request, *args, **kwargs) /app/project/utils/decorators.py in apply_cache(72) cache.set(CACHE_KEY, response.render(), ttl) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_patched_render(41) return old_render(self) /usr/local/lib/python3.11/site-packages/django/template/response.py in render(114) self.content = self.rendered_content /usr/local/lib/python3.11/site-packages/sentry_sdk/utils.py in runner(1788) return sentry_patched_function(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/templates.py in rendered_content(77) return real_rendered_content.fget(self) /usr/local/lib/python3.11/site-packages/django/template/response.py in rendered_content(92) return template.render(context, self._request) /usr/local/lib/python3.11/site-packages/django/template/backends/django.py in render(61) return self.template.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(175) return self._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157) return compiled_parent._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157) return compiled_parent._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63) result = block.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63) result = block.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(208) return template.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(177) return self._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(321) return nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(238) nodelist.append(node.render_annotated(context)) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(194) len_values = len(values) /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(37) return original(compiler, *args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(96) return _get_result_or_execute_query( /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in _get_result_or_execute_query(64) result = execute_query_func() /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in <lambda>(80) execute_query_func = lambda: original(compiler, *args, **kwargs) |
|||||
SELECT "lms_tales_talesstep"."id",
5 ähnliche Abfragen.
"lms_tales_talesstep"."created", "lms_tales_talesstep"."modified", "lms_tales_talesstep"."status_changed", "lms_tales_talesstep"."is_removed", "lms_tales_talesstep"."title", "lms_tales_talesstep"."title_de", "lms_tales_talesstep"."title_en", "lms_tales_talesstep"."title_fr", "lms_tales_talesstep"."subtitle", "lms_tales_talesstep"."subtitle_de", "lms_tales_talesstep"."subtitle_en", "lms_tales_talesstep"."subtitle_fr", "lms_tales_talesstep"."short_description", "lms_tales_talesstep"."short_description_de", "lms_tales_talesstep"."short_description_en", "lms_tales_talesstep"."short_description_fr", "lms_tales_talesstep"."title_image", "lms_tales_talesstep"."slug", "lms_tales_talesstep"."content", "lms_tales_talesstep"."content_de", "lms_tales_talesstep"."content_en", "lms_tales_talesstep"."content_fr", "lms_tales_talesstep"."content_html", "lms_tales_talesstep"."content_html_de", "lms_tales_talesstep"."content_html_en", "lms_tales_talesstep"."content_html_fr", "lms_tales_talesstep"."content_json", "lms_tales_talesstep"."content_json_de", "lms_tales_talesstep"."content_json_en", "lms_tales_talesstep"."content_json_fr", "lms_tales_talesstep"."copyright", "lms_tales_talesstep"."copyright_de", "lms_tales_talesstep"."copyright_en", "lms_tales_talesstep"."copyright_fr", "lms_tales_talesstep"."step_type", "lms_tales_talesstep"."duration", "lms_tales_talesstep"."order", "lms_tales_talesstep"."status", "lms_tales_talesstep"."allow_comments", "lms_tales_talesstep"."call_to_action", "lms_tales_talesstep"."call_to_action_de", "lms_tales_talesstep"."call_to_action_en", "lms_tales_talesstep"."call_to_action_fr", "lms_tales_talesstep"."chapter_id" FROM "lms_tales_talesstep" INNER JOIN "lms_tales_taleschapter" ON ("lms_tales_talesstep"."chapter_id" = "lms_tales_taleschapter"."id") WHERE ("lms_tales_talesstep"."chapter_id" = 228 AND NOT "lms_tales_talesstep"."is_removed" AND "lms_tales_talesstep"."status" = 'published') ORDER BY "lms_tales_taleschapter"."course_id" ASC, "lms_tales_taleschapter"."order" ASC, "lms_tales_talesstep"."order" ASCSELECT ••• 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" = 228 AND NOT "lms_tales_talesstep"."is_removed" AND "lms_tales_talesstep"."status" = 'published') ORDER BY "lms_tales_taleschapter"."course_id" ASC, "lms_tales_taleschapter"."order" ASC, "lms_tales_talesstep"."order" ASC |
1,53 | ||||
Verbindung: default Transaktionsstatus: Wartet /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in run(101) return _run_old_run_func() /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in _run_old_run_func(94) return old_run_func(self, *a, **kw) /usr/local/lib/python3.11/concurrent/futures/thread.py in _worker(83) work_item.run() /usr/local/lib/python3.11/concurrent/futures/thread.py in run(58) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56) result = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in middleware(32) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/allauth/account/middleware.py in middleware(36) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/simple_history/middleware.py in middleware(41) return get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/django_htmx/middleware.py in __call__(43) return self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in __call__(168) response = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/panels.py in process_request(41) return super(CachalotPanel, self).process_request(request) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in __call__(244) current_executor.run_until_future(call_result) /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run_until_future(81) work_item.run() /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run(40) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(90) return callback(request, *args, **kwargs) /app/project/utils/decorators.py in apply_cache(72) cache.set(CACHE_KEY, response.render(), ttl) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_patched_render(41) return old_render(self) /usr/local/lib/python3.11/site-packages/django/template/response.py in render(114) self.content = self.rendered_content /usr/local/lib/python3.11/site-packages/sentry_sdk/utils.py in runner(1788) return sentry_patched_function(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/templates.py in rendered_content(77) return real_rendered_content.fget(self) /usr/local/lib/python3.11/site-packages/django/template/response.py in rendered_content(92) return template.render(context, self._request) /usr/local/lib/python3.11/site-packages/django/template/backends/django.py in render(61) return self.template.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(175) return self._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157) return compiled_parent._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157) return compiled_parent._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63) result = block.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63) result = block.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(208) return template.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(177) return self._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(321) return nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(238) nodelist.append(node.render_annotated(context)) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(194) len_values = len(values) /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(37) return original(compiler, *args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(96) return _get_result_or_execute_query( /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in _get_result_or_execute_query(64) result = execute_query_func() /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in <lambda>(80) execute_query_func = lambda: original(compiler, *args, **kwargs) |
|||||
SELECT "lms_tales_talesstep"."id",
5 ähnliche Abfragen.
"lms_tales_talesstep"."created", "lms_tales_talesstep"."modified", "lms_tales_talesstep"."status_changed", "lms_tales_talesstep"."is_removed", "lms_tales_talesstep"."title", "lms_tales_talesstep"."title_de", "lms_tales_talesstep"."title_en", "lms_tales_talesstep"."title_fr", "lms_tales_talesstep"."subtitle", "lms_tales_talesstep"."subtitle_de", "lms_tales_talesstep"."subtitle_en", "lms_tales_talesstep"."subtitle_fr", "lms_tales_talesstep"."short_description", "lms_tales_talesstep"."short_description_de", "lms_tales_talesstep"."short_description_en", "lms_tales_talesstep"."short_description_fr", "lms_tales_talesstep"."title_image", "lms_tales_talesstep"."slug", "lms_tales_talesstep"."content", "lms_tales_talesstep"."content_de", "lms_tales_talesstep"."content_en", "lms_tales_talesstep"."content_fr", "lms_tales_talesstep"."content_html", "lms_tales_talesstep"."content_html_de", "lms_tales_talesstep"."content_html_en", "lms_tales_talesstep"."content_html_fr", "lms_tales_talesstep"."content_json", "lms_tales_talesstep"."content_json_de", "lms_tales_talesstep"."content_json_en", "lms_tales_talesstep"."content_json_fr", "lms_tales_talesstep"."copyright", "lms_tales_talesstep"."copyright_de", "lms_tales_talesstep"."copyright_en", "lms_tales_talesstep"."copyright_fr", "lms_tales_talesstep"."step_type", "lms_tales_talesstep"."duration", "lms_tales_talesstep"."order", "lms_tales_talesstep"."status", "lms_tales_talesstep"."allow_comments", "lms_tales_talesstep"."call_to_action", "lms_tales_talesstep"."call_to_action_de", "lms_tales_talesstep"."call_to_action_en", "lms_tales_talesstep"."call_to_action_fr", "lms_tales_talesstep"."chapter_id" FROM "lms_tales_talesstep" INNER JOIN "lms_tales_taleschapter" ON ("lms_tales_talesstep"."chapter_id" = "lms_tales_taleschapter"."id") WHERE ("lms_tales_talesstep"."chapter_id" = 229 AND NOT "lms_tales_talesstep"."is_removed" AND "lms_tales_talesstep"."status" = 'published') ORDER BY "lms_tales_taleschapter"."course_id" ASC, "lms_tales_taleschapter"."order" ASC, "lms_tales_talesstep"."order" ASCSELECT ••• 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" = 229 AND NOT "lms_tales_talesstep"."is_removed" AND "lms_tales_talesstep"."status" = 'published') ORDER BY "lms_tales_taleschapter"."course_id" ASC, "lms_tales_taleschapter"."order" ASC, "lms_tales_talesstep"."order" ASC |
1,21 | ||||
Verbindung: default Transaktionsstatus: Wartet /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in run(101) return _run_old_run_func() /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in _run_old_run_func(94) return old_run_func(self, *a, **kw) /usr/local/lib/python3.11/concurrent/futures/thread.py in _worker(83) work_item.run() /usr/local/lib/python3.11/concurrent/futures/thread.py in run(58) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56) result = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in middleware(32) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/allauth/account/middleware.py in middleware(36) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/simple_history/middleware.py in middleware(41) return get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/django_htmx/middleware.py in __call__(43) return self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in __call__(168) response = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/panels.py in process_request(41) return super(CachalotPanel, self).process_request(request) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in __call__(244) current_executor.run_until_future(call_result) /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run_until_future(81) work_item.run() /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run(40) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(90) return callback(request, *args, **kwargs) /app/project/utils/decorators.py in apply_cache(72) cache.set(CACHE_KEY, response.render(), ttl) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_patched_render(41) return old_render(self) /usr/local/lib/python3.11/site-packages/django/template/response.py in render(114) self.content = self.rendered_content /usr/local/lib/python3.11/site-packages/sentry_sdk/utils.py in runner(1788) return sentry_patched_function(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/templates.py in rendered_content(77) return real_rendered_content.fget(self) /usr/local/lib/python3.11/site-packages/django/template/response.py in rendered_content(92) return template.render(context, self._request) /usr/local/lib/python3.11/site-packages/django/template/backends/django.py in render(61) return self.template.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(175) return self._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157) return compiled_parent._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157) return compiled_parent._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63) result = block.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63) result = block.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(208) return template.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(177) return self._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(321) return nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(238) nodelist.append(node.render_annotated(context)) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(194) len_values = len(values) /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(37) return original(compiler, *args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(96) return _get_result_or_execute_query( /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in _get_result_or_execute_query(64) result = execute_query_func() /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in <lambda>(80) execute_query_func = lambda: original(compiler, *args, **kwargs) |
|||||
SELECT "lms_tales_talesstep"."id",
"lms_tales_talesstep"."created", "lms_tales_talesstep"."modified", "lms_tales_talesstep"."status_changed", "lms_tales_talesstep"."is_removed", "lms_tales_talesstep"."title", "lms_tales_talesstep"."title_de", "lms_tales_talesstep"."title_en", "lms_tales_talesstep"."title_fr", "lms_tales_talesstep"."subtitle", "lms_tales_talesstep"."subtitle_de", "lms_tales_talesstep"."subtitle_en", "lms_tales_talesstep"."subtitle_fr", "lms_tales_talesstep"."short_description", "lms_tales_talesstep"."short_description_de", "lms_tales_talesstep"."short_description_en", "lms_tales_talesstep"."short_description_fr", "lms_tales_talesstep"."title_image", "lms_tales_talesstep"."slug", "lms_tales_talesstep"."content", "lms_tales_talesstep"."content_de", "lms_tales_talesstep"."content_en", "lms_tales_talesstep"."content_fr", "lms_tales_talesstep"."content_html", "lms_tales_talesstep"."content_html_de", "lms_tales_talesstep"."content_html_en", "lms_tales_talesstep"."content_html_fr", "lms_tales_talesstep"."content_json", "lms_tales_talesstep"."content_json_de", "lms_tales_talesstep"."content_json_en", "lms_tales_talesstep"."content_json_fr", "lms_tales_talesstep"."copyright", "lms_tales_talesstep"."copyright_de", "lms_tales_talesstep"."copyright_en", "lms_tales_talesstep"."copyright_fr", "lms_tales_talesstep"."step_type", "lms_tales_talesstep"."duration", "lms_tales_talesstep"."order", "lms_tales_talesstep"."status", "lms_tales_talesstep"."allow_comments", "lms_tales_talesstep"."call_to_action", "lms_tales_talesstep"."call_to_action_de", "lms_tales_talesstep"."call_to_action_en", "lms_tales_talesstep"."call_to_action_fr", "lms_tales_talesstep"."chapter_id" FROM "lms_tales_talesstep" INNER JOIN "lms_tales_taleschapter" ON ("lms_tales_talesstep"."chapter_id" = "lms_tales_taleschapter"."id") WHERE ("lms_tales_talesstep"."chapter_id" = 229 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 1SELECT ••• 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" = 229 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 |
0,79 | ||||
Verbindung: default Transaktionsstatus: Wartet /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in run(101) return _run_old_run_func() /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in _run_old_run_func(94) return old_run_func(self, *a, **kw) /usr/local/lib/python3.11/concurrent/futures/thread.py in _worker(83) work_item.run() /usr/local/lib/python3.11/concurrent/futures/thread.py in run(58) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56) result = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in middleware(32) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/allauth/account/middleware.py in middleware(36) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/simple_history/middleware.py in middleware(41) return get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/django_htmx/middleware.py in __call__(43) return self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in __call__(168) response = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/panels.py in process_request(41) return super(CachalotPanel, self).process_request(request) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in __call__(244) current_executor.run_until_future(call_result) /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run_until_future(81) work_item.run() /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run(40) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(90) return callback(request, *args, **kwargs) /app/project/utils/decorators.py in apply_cache(72) cache.set(CACHE_KEY, response.render(), ttl) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_patched_render(41) return old_render(self) /usr/local/lib/python3.11/site-packages/django/template/response.py in render(114) self.content = self.rendered_content /usr/local/lib/python3.11/site-packages/sentry_sdk/utils.py in runner(1788) return sentry_patched_function(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/templates.py in rendered_content(77) return real_rendered_content.fget(self) /usr/local/lib/python3.11/site-packages/django/template/response.py in rendered_content(92) return template.render(context, self._request) /usr/local/lib/python3.11/site-packages/django/template/backends/django.py in render(61) return self.template.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(175) return self._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157) return compiled_parent._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157) return compiled_parent._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63) result = block.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63) result = block.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(541) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/library.py in render(237) output = self.func(*resolved_args, **resolved_kwargs) /app/project/lms_base/templatetags/utils.py in get_next_step(128) return step.get_next(published_only=True) /app/project/lms_base/models.py in get_next(249) return self._get_neighbour_step(is_next=True, published_only=published_only) /app/project/lms_base/models.py in _get_neighbour_step(201) step = self.__class__.next_previous_manager.get_next_previous( /app/project/lms_base/models.py in get_next_previous(71) return qs.first() /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(37) return original(compiler, *args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(96) return _get_result_or_execute_query( /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in _get_result_or_execute_query(64) result = execute_query_func() /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in <lambda>(80) execute_query_func = lambda: original(compiler, *args, **kwargs) |
|||||
SELECT "lms_tales_talesstep"."id",
"lms_tales_talesstep"."created", "lms_tales_talesstep"."modified", "lms_tales_talesstep"."status_changed", "lms_tales_talesstep"."is_removed", "lms_tales_talesstep"."title", "lms_tales_talesstep"."title_de", "lms_tales_talesstep"."title_en", "lms_tales_talesstep"."title_fr", "lms_tales_talesstep"."subtitle", "lms_tales_talesstep"."subtitle_de", "lms_tales_talesstep"."subtitle_en", "lms_tales_talesstep"."subtitle_fr", "lms_tales_talesstep"."short_description", "lms_tales_talesstep"."short_description_de", "lms_tales_talesstep"."short_description_en", "lms_tales_talesstep"."short_description_fr", "lms_tales_talesstep"."title_image", "lms_tales_talesstep"."slug", "lms_tales_talesstep"."content", "lms_tales_talesstep"."content_de", "lms_tales_talesstep"."content_en", "lms_tales_talesstep"."content_fr", "lms_tales_talesstep"."content_html", "lms_tales_talesstep"."content_html_de", "lms_tales_talesstep"."content_html_en", "lms_tales_talesstep"."content_html_fr", "lms_tales_talesstep"."content_json", "lms_tales_talesstep"."content_json_de", "lms_tales_talesstep"."content_json_en", "lms_tales_talesstep"."content_json_fr", "lms_tales_talesstep"."copyright", "lms_tales_talesstep"."copyright_de", "lms_tales_talesstep"."copyright_en", "lms_tales_talesstep"."copyright_fr", "lms_tales_talesstep"."step_type", "lms_tales_talesstep"."duration", "lms_tales_talesstep"."order", "lms_tales_talesstep"."status", "lms_tales_talesstep"."allow_comments", "lms_tales_talesstep"."call_to_action", "lms_tales_talesstep"."call_to_action_de", "lms_tales_talesstep"."call_to_action_en", "lms_tales_talesstep"."call_to_action_fr", "lms_tales_talesstep"."chapter_id" FROM "lms_tales_talesstep" INNER JOIN "lms_tales_taleschapter" ON ("lms_tales_talesstep"."chapter_id" = "lms_tales_taleschapter"."id") WHERE ("lms_tales_talesstep"."chapter_id" = 229 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 1SELECT ••• 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" = 229 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 |
0,71 | ||||
Verbindung: default Transaktionsstatus: Wartet /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in run(101) return _run_old_run_func() /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in _run_old_run_func(94) return old_run_func(self, *a, **kw) /usr/local/lib/python3.11/concurrent/futures/thread.py in _worker(83) work_item.run() /usr/local/lib/python3.11/concurrent/futures/thread.py in run(58) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56) result = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in middleware(32) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/allauth/account/middleware.py in middleware(36) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/simple_history/middleware.py in middleware(41) return get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/django_htmx/middleware.py in __call__(43) return self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in __call__(168) response = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/panels.py in process_request(41) return super(CachalotPanel, self).process_request(request) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in __call__(244) current_executor.run_until_future(call_result) /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run_until_future(81) work_item.run() /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run(40) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(90) return callback(request, *args, **kwargs) /app/project/utils/decorators.py in apply_cache(72) cache.set(CACHE_KEY, response.render(), ttl) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_patched_render(41) return old_render(self) /usr/local/lib/python3.11/site-packages/django/template/response.py in render(114) self.content = self.rendered_content /usr/local/lib/python3.11/site-packages/sentry_sdk/utils.py in runner(1788) return sentry_patched_function(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/templates.py in rendered_content(77) return real_rendered_content.fget(self) /usr/local/lib/python3.11/site-packages/django/template/response.py in rendered_content(92) return template.render(context, self._request) /usr/local/lib/python3.11/site-packages/django/template/backends/django.py in render(61) return self.template.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(175) return self._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157) return compiled_parent._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157) return compiled_parent._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63) result = block.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63) result = block.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(541) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/library.py in render(237) output = self.func(*resolved_args, **resolved_kwargs) /app/project/lms_base/templatetags/utils.py in get_previous_step(105) return step.get_previous(published_only=True) /app/project/lms_base/models.py in get_previous(255) return self._get_neighbour_step(is_next=False, published_only=published_only) /app/project/lms_base/models.py in _get_neighbour_step(201) step = self.__class__.next_previous_manager.get_next_previous( /app/project/lms_base/models.py in get_next_previous(72) return qs.last() /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(37) return original(compiler, *args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(96) return _get_result_or_execute_query( /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in _get_result_or_execute_query(64) result = execute_query_func() /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in <lambda>(80) execute_query_func = lambda: original(compiler, *args, **kwargs) |
|||||
SELECT "auth_group"."id",
"auth_group"."name" FROM "auth_group" INNER JOIN "lms_tales_talescourse_owner" ON ("auth_group"."id" = "lms_tales_talescourse_owner"."group_id") WHERE "lms_tales_talescourse_owner"."talescourse_id" = 44SELECT ••• FROM "auth_group" INNER JOIN "lms_tales_talescourse_owner" ON ("auth_group"."id" = "lms_tales_talescourse_owner"."group_id") WHERE "lms_tales_talescourse_owner"."talescourse_id" = 44 |
0,84 | ||||
Verbindung: default Transaktionsstatus: Wartet /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in run(101) return _run_old_run_func() /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in _run_old_run_func(94) return old_run_func(self, *a, **kw) /usr/local/lib/python3.11/concurrent/futures/thread.py in _worker(83) work_item.run() /usr/local/lib/python3.11/concurrent/futures/thread.py in run(58) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56) result = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in middleware(32) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/allauth/account/middleware.py in middleware(36) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/simple_history/middleware.py in middleware(41) return get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/django_htmx/middleware.py in __call__(43) return self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in __call__(168) response = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/panels.py in process_request(41) return super(CachalotPanel, self).process_request(request) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in __call__(244) current_executor.run_until_future(call_result) /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run_until_future(81) work_item.run() /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run(40) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(90) return callback(request, *args, **kwargs) /app/project/utils/decorators.py in apply_cache(72) cache.set(CACHE_KEY, response.render(), ttl) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_patched_render(41) return old_render(self) /usr/local/lib/python3.11/site-packages/django/template/response.py in render(114) self.content = self.rendered_content /usr/local/lib/python3.11/site-packages/sentry_sdk/utils.py in runner(1788) return sentry_patched_function(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/templates.py in rendered_content(77) return real_rendered_content.fget(self) /usr/local/lib/python3.11/site-packages/django/template/response.py in rendered_content(92) return template.render(context, self._request) /usr/local/lib/python3.11/site-packages/django/template/backends/django.py in render(61) return self.template.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(175) return self._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157) return compiled_parent._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157) return compiled_parent._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63) result = block.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63) result = block.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(541) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/library.py in render(237) output = self.func(*resolved_args, **resolved_kwargs) /usr/local/lib/python3.11/site-packages/rules/templatetags/rules.py in has_perm(18) return user.has_perm(perm, obj) /usr/local/lib/python3.11/site-packages/django/contrib/auth/models.py in has_perm(480) return _user_has_perm(self, perm, obj=obj) /usr/local/lib/python3.11/site-packages/django/contrib/auth/models.py in _user_has_perm(220) if backend.has_perm(user, perm, obj): /usr/local/lib/python3.11/site-packages/rules/permissions.py in has_perm(31) return has_perm(perm, user, *args, **kwargs) /usr/local/lib/python3.11/site-packages/rules/permissions.py in has_perm(23) return permissions.test_rule(name, *args, **kwargs) /usr/local/lib/python3.11/site-packages/rules/rulesets.py in test_rule(6) return name in self and self[name].test(*args, **kwargs) /usr/local/lib/python3.11/site-packages/rules/predicates.py in test(172) return bool(self._apply(*args)) /usr/local/lib/python3.11/site-packages/rules/predicates.py in _apply(235) result = self.fn(*callargs) /usr/local/lib/python3.11/site-packages/rules/predicates.py in OR(184) return self._combine(other, operator.or_, args) /usr/local/lib/python3.11/site-packages/rules/predicates.py in _combine(206) self_result = self._apply(*args) /usr/local/lib/python3.11/site-packages/rules/predicates.py in _apply(235) result = self.fn(*callargs) /app/project/lms_tales/rules.py in is_in_group(47) for owner in course.owner.all(): /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(37) return original(compiler, *args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(96) return _get_result_or_execute_query( /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in _get_result_or_execute_query(64) result = execute_query_func() /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in <lambda>(80) execute_query_func = lambda: original(compiler, *args, **kwargs) |
|||||
SELECT "waffle_flag"."id",
3 ähnliche Abfragen.
"waffle_flag"."name", "waffle_flag"."everyone", "waffle_flag"."percent", "waffle_flag"."testing", "waffle_flag"."superusers", "waffle_flag"."staff", "waffle_flag"."authenticated", "waffle_flag"."languages", "waffle_flag"."rollout", "waffle_flag"."note", "waffle_flag"."created", "waffle_flag"."modified" FROM "waffle_flag" WHERE "waffle_flag"."name" = 'show_language_warning' LIMIT 21SELECT ••• FROM "waffle_flag" WHERE "waffle_flag"."name" = 'show_language_warning' LIMIT 21 |
0,44 | ||||
Verbindung: default Transaktionsstatus: Wartet /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in run(101) return _run_old_run_func() /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in _run_old_run_func(94) return old_run_func(self, *a, **kw) /usr/local/lib/python3.11/concurrent/futures/thread.py in _worker(83) work_item.run() /usr/local/lib/python3.11/concurrent/futures/thread.py in run(58) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56) result = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in middleware(32) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/allauth/account/middleware.py in middleware(36) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/simple_history/middleware.py in middleware(41) return get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/django_htmx/middleware.py in __call__(43) return self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in __call__(168) response = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/panels.py in process_request(41) return super(CachalotPanel, self).process_request(request) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in __call__(244) current_executor.run_until_future(call_result) /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run_until_future(81) work_item.run() /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run(40) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(90) return callback(request, *args, **kwargs) /app/project/utils/decorators.py in apply_cache(72) cache.set(CACHE_KEY, response.render(), ttl) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_patched_render(41) return old_render(self) /usr/local/lib/python3.11/site-packages/django/template/response.py in render(114) self.content = self.rendered_content /usr/local/lib/python3.11/site-packages/sentry_sdk/utils.py in runner(1788) return sentry_patched_function(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/templates.py in rendered_content(77) return real_rendered_content.fget(self) /usr/local/lib/python3.11/site-packages/django/template/response.py in rendered_content(92) return template.render(context, self._request) /usr/local/lib/python3.11/site-packages/django/template/backends/django.py in render(61) return self.template.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(175) return self._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157) return compiled_parent._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157) return compiled_parent._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63) result = block.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63) result = block.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(541) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/waffle/templatetags/waffle_tags.py in render(36) if self.condition(context.get('request', None), name): /usr/local/lib/python3.11/site-packages/waffle/__init__.py in flag_is_active(19) flag = get_waffle_flag_model().get(flag_name) /usr/local/lib/python3.11/site-packages/waffle/models.py in get(59) obj = cls.get_from_db(name) /usr/local/lib/python3.11/site-packages/waffle/models.py in get_from_db(72) return objects.get(name=name) /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(37) return original(compiler, *args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(94) return execute_query_func() /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in <lambda>(80) execute_query_func = lambda: original(compiler, *args, **kwargs) |
|||||
SELECT "lms_tales_taleschapter"."id",
"lms_tales_taleschapter"."created", "lms_tales_taleschapter"."modified", "lms_tales_taleschapter"."status_changed", "lms_tales_taleschapter"."is_removed", "lms_tales_taleschapter"."title", "lms_tales_taleschapter"."title_de", "lms_tales_taleschapter"."title_en", "lms_tales_taleschapter"."title_fr", "lms_tales_taleschapter"."slug", "lms_tales_taleschapter"."order", "lms_tales_taleschapter"."status", "lms_tales_taleschapter"."course_id" FROM "lms_tales_taleschapter" WHERE ("lms_tales_taleschapter"."course_id" = 44 AND NOT "lms_tales_taleschapter"."is_removed" AND "lms_tales_taleschapter"."status" = 'published') ORDER BY "lms_tales_taleschapter"."order" ASCSELECT ••• FROM "lms_tales_taleschapter" WHERE ("lms_tales_taleschapter"."course_id" = 44 AND NOT "lms_tales_taleschapter"."is_removed" AND "lms_tales_taleschapter"."status" = 'published') ORDER BY "lms_tales_taleschapter"."order" ASC |
0,45 | ||||
Verbindung: default Transaktionsstatus: Wartet /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in run(101) return _run_old_run_func() /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in _run_old_run_func(94) return old_run_func(self, *a, **kw) /usr/local/lib/python3.11/concurrent/futures/thread.py in _worker(83) work_item.run() /usr/local/lib/python3.11/concurrent/futures/thread.py in run(58) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56) result = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in middleware(32) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/allauth/account/middleware.py in middleware(36) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/simple_history/middleware.py in middleware(41) return get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/django_htmx/middleware.py in __call__(43) return self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in __call__(168) response = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/panels.py in process_request(41) return super(CachalotPanel, self).process_request(request) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in __call__(244) current_executor.run_until_future(call_result) /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run_until_future(81) work_item.run() /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run(40) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(90) return callback(request, *args, **kwargs) /app/project/utils/decorators.py in apply_cache(72) cache.set(CACHE_KEY, response.render(), ttl) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_patched_render(41) return old_render(self) /usr/local/lib/python3.11/site-packages/django/template/response.py in render(114) self.content = self.rendered_content /usr/local/lib/python3.11/site-packages/sentry_sdk/utils.py in runner(1788) return sentry_patched_function(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/templates.py in rendered_content(77) return real_rendered_content.fget(self) /usr/local/lib/python3.11/site-packages/django/template/response.py in rendered_content(92) return template.render(context, self._request) /usr/local/lib/python3.11/site-packages/django/template/backends/django.py in render(61) return self.template.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(175) return self._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157) return compiled_parent._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157) return compiled_parent._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63) result = block.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63) result = block.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(541) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63) result = block.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1064) output = self.filter_expression.resolve(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in resolve(715) obj = self.var.resolve(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in resolve(847) value = self._resolve_lookup(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in _resolve_lookup(914) current = current() /app/project/lms_tales/models.py in get_step_number(107) chapter_list = list( /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(37) return original(compiler, *args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(96) return _get_result_or_execute_query( /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in _get_result_or_execute_query(64) result = execute_query_func() /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in <lambda>(80) execute_query_func = lambda: original(compiler, *args, **kwargs) |
|||||
SELECT "lms_tales_talesstep"."id",
"lms_tales_talesstep"."created", "lms_tales_talesstep"."modified", "lms_tales_talesstep"."status_changed", "lms_tales_talesstep"."is_removed", "lms_tales_talesstep"."title", "lms_tales_talesstep"."title_de", "lms_tales_talesstep"."title_en", "lms_tales_talesstep"."title_fr", "lms_tales_talesstep"."subtitle", "lms_tales_talesstep"."subtitle_de", "lms_tales_talesstep"."subtitle_en", "lms_tales_talesstep"."subtitle_fr", "lms_tales_talesstep"."short_description", "lms_tales_talesstep"."short_description_de", "lms_tales_talesstep"."short_description_en", "lms_tales_talesstep"."short_description_fr", "lms_tales_talesstep"."title_image", "lms_tales_talesstep"."slug", "lms_tales_talesstep"."content", "lms_tales_talesstep"."content_de", "lms_tales_talesstep"."content_en", "lms_tales_talesstep"."content_fr", "lms_tales_talesstep"."content_html", "lms_tales_talesstep"."content_html_de", "lms_tales_talesstep"."content_html_en", "lms_tales_talesstep"."content_html_fr", "lms_tales_talesstep"."content_json", "lms_tales_talesstep"."content_json_de", "lms_tales_talesstep"."content_json_en", "lms_tales_talesstep"."content_json_fr", "lms_tales_talesstep"."copyright", "lms_tales_talesstep"."copyright_de", "lms_tales_talesstep"."copyright_en", "lms_tales_talesstep"."copyright_fr", "lms_tales_talesstep"."step_type", "lms_tales_talesstep"."duration", "lms_tales_talesstep"."order", "lms_tales_talesstep"."status", "lms_tales_talesstep"."allow_comments", "lms_tales_talesstep"."call_to_action", "lms_tales_talesstep"."call_to_action_de", "lms_tales_talesstep"."call_to_action_en", "lms_tales_talesstep"."call_to_action_fr", "lms_tales_talesstep"."chapter_id" FROM "lms_tales_talesstep" WHERE ("lms_tales_talesstep"."chapter_id" = 229 AND NOT "lms_tales_talesstep"."is_removed" AND "lms_tales_talesstep"."status" = 'published') ORDER BY "lms_tales_talesstep"."order" ASCSELECT ••• FROM "lms_tales_talesstep" WHERE ("lms_tales_talesstep"."chapter_id" = 229 AND NOT "lms_tales_talesstep"."is_removed" AND "lms_tales_talesstep"."status" = 'published') ORDER BY "lms_tales_talesstep"."order" ASC |
0,85 | ||||
Verbindung: default Transaktionsstatus: Wartet /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in run(101) return _run_old_run_func() /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in _run_old_run_func(94) return old_run_func(self, *a, **kw) /usr/local/lib/python3.11/concurrent/futures/thread.py in _worker(83) work_item.run() /usr/local/lib/python3.11/concurrent/futures/thread.py in run(58) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56) result = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in middleware(32) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/allauth/account/middleware.py in middleware(36) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/simple_history/middleware.py in middleware(41) return get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/django_htmx/middleware.py in __call__(43) return self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in __call__(168) response = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/panels.py in process_request(41) return super(CachalotPanel, self).process_request(request) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in __call__(244) current_executor.run_until_future(call_result) /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run_until_future(81) work_item.run() /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run(40) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(90) return callback(request, *args, **kwargs) /app/project/utils/decorators.py in apply_cache(72) cache.set(CACHE_KEY, response.render(), ttl) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_patched_render(41) return old_render(self) /usr/local/lib/python3.11/site-packages/django/template/response.py in render(114) self.content = self.rendered_content /usr/local/lib/python3.11/site-packages/sentry_sdk/utils.py in runner(1788) return sentry_patched_function(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/templates.py in rendered_content(77) return real_rendered_content.fget(self) /usr/local/lib/python3.11/site-packages/django/template/response.py in rendered_content(92) return template.render(context, self._request) /usr/local/lib/python3.11/site-packages/django/template/backends/django.py in render(61) return self.template.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(175) return self._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157) return compiled_parent._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157) return compiled_parent._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63) result = block.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63) result = block.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(541) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63) result = block.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1064) output = self.filter_expression.resolve(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in resolve(715) obj = self.var.resolve(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in resolve(847) value = self._resolve_lookup(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in _resolve_lookup(914) current = current() /app/project/lms_tales/models.py in get_step_number(118) step_list = list(self.chapter.published_steps.all().order_by("order")) /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(37) return original(compiler, *args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(96) return _get_result_or_execute_query( /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in _get_result_or_execute_query(64) result = execute_query_func() /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in <lambda>(80) execute_query_func = lambda: original(compiler, *args, **kwargs) |
|||||
SELECT "waffle_flag"."id",
3 ähnliche Abfragen.
"waffle_flag"."name", "waffle_flag"."everyone", "waffle_flag"."percent", "waffle_flag"."testing", "waffle_flag"."superusers", "waffle_flag"."staff", "waffle_flag"."authenticated", "waffle_flag"."languages", "waffle_flag"."rollout", "waffle_flag"."note", "waffle_flag"."created", "waffle_flag"."modified" FROM "waffle_flag" WHERE "waffle_flag"."name" = 'comments_feature_is_active' LIMIT 21SELECT ••• FROM "waffle_flag" WHERE "waffle_flag"."name" = 'comments_feature_is_active' LIMIT 21 |
0,70 | ||||
Verbindung: default Transaktionsstatus: Wartet /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in run(101) return _run_old_run_func() /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in _run_old_run_func(94) return old_run_func(self, *a, **kw) /usr/local/lib/python3.11/concurrent/futures/thread.py in _worker(83) work_item.run() /usr/local/lib/python3.11/concurrent/futures/thread.py in run(58) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56) result = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in middleware(32) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/allauth/account/middleware.py in middleware(36) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/simple_history/middleware.py in middleware(41) return get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/django_htmx/middleware.py in __call__(43) return self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in __call__(168) response = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/panels.py in process_request(41) return super(CachalotPanel, self).process_request(request) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in __call__(244) current_executor.run_until_future(call_result) /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run_until_future(81) work_item.run() /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run(40) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(90) return callback(request, *args, **kwargs) /app/project/utils/decorators.py in apply_cache(72) cache.set(CACHE_KEY, response.render(), ttl) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_patched_render(41) return old_render(self) /usr/local/lib/python3.11/site-packages/django/template/response.py in render(114) self.content = self.rendered_content /usr/local/lib/python3.11/site-packages/sentry_sdk/utils.py in runner(1788) return sentry_patched_function(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/templates.py in rendered_content(77) return real_rendered_content.fget(self) /usr/local/lib/python3.11/site-packages/django/template/response.py in rendered_content(92) return template.render(context, self._request) /usr/local/lib/python3.11/site-packages/django/template/backends/django.py in render(61) return self.template.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(175) return self._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157) return compiled_parent._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157) return compiled_parent._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63) result = block.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63) result = block.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(541) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/waffle/templatetags/waffle_tags.py in render(36) if self.condition(context.get('request', None), name): /usr/local/lib/python3.11/site-packages/waffle/__init__.py in flag_is_active(19) flag = get_waffle_flag_model().get(flag_name) /usr/local/lib/python3.11/site-packages/waffle/models.py in get(59) obj = cls.get_from_db(name) /usr/local/lib/python3.11/site-packages/waffle/models.py in get_from_db(72) return objects.get(name=name) /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(37) return original(compiler, *args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(94) return execute_query_func() /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in <lambda>(80) execute_query_func = lambda: original(compiler, *args, **kwargs) |
|||||
SELECT "lms_tales_talescoursefile"."id",
2 ähnliche Abfragen.
"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" = 706 LIMIT 21SELECT ••• FROM "lms_tales_talescoursefile" WHERE "lms_tales_talescoursefile"."id" = 706 LIMIT 21 |
0,77 | ||||
Verbindung: default Transaktionsstatus: Wartet /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in run(101) return _run_old_run_func() /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in _run_old_run_func(94) return old_run_func(self, *a, **kw) /usr/local/lib/python3.11/concurrent/futures/thread.py in _worker(83) work_item.run() /usr/local/lib/python3.11/concurrent/futures/thread.py in run(58) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56) result = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in middleware(32) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/allauth/account/middleware.py in middleware(36) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/simple_history/middleware.py in middleware(41) return get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/django_htmx/middleware.py in __call__(43) return self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in __call__(168) response = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/panels.py in process_request(41) return super(CachalotPanel, self).process_request(request) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in __call__(244) current_executor.run_until_future(call_result) /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run_until_future(81) work_item.run() /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run(40) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(90) return callback(request, *args, **kwargs) /app/project/utils/decorators.py in apply_cache(72) cache.set(CACHE_KEY, response.render(), ttl) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_patched_render(41) return old_render(self) /usr/local/lib/python3.11/site-packages/django/template/response.py in render(114) self.content = self.rendered_content /usr/local/lib/python3.11/site-packages/sentry_sdk/utils.py in runner(1788) return sentry_patched_function(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/templates.py in rendered_content(77) return real_rendered_content.fget(self) /usr/local/lib/python3.11/site-packages/django/template/response.py in rendered_content(92) return template.render(context, self._request) /usr/local/lib/python3.11/site-packages/django/template/backends/django.py in render(61) return self.template.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(175) return self._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157) return compiled_parent._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157) return compiled_parent._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63) result = block.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63) result = block.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(541) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(321) return nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(238) nodelist.append(node.render_annotated(context)) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1064) output = self.filter_expression.resolve(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in resolve(715) obj = self.var.resolve(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in resolve(847) value = self._resolve_lookup(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in _resolve_lookup(890) current = getattr(current, bit) /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(37) return original(compiler, *args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(96) return _get_result_or_execute_query( /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in _get_result_or_execute_query(64) result = execute_query_func() /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in <lambda>(80) execute_query_func = lambda: original(compiler, *args, **kwargs) |
|||||
SELECT "lms_tales_talescoursefile"."id",
2 ähnliche Abfragen.
"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" = 705 LIMIT 21SELECT ••• FROM "lms_tales_talescoursefile" WHERE "lms_tales_talescoursefile"."id" = 705 LIMIT 21 |
0,40 | ||||
Verbindung: default Transaktionsstatus: Wartet /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in run(101) return _run_old_run_func() /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in _run_old_run_func(94) return old_run_func(self, *a, **kw) /usr/local/lib/python3.11/concurrent/futures/thread.py in _worker(83) work_item.run() /usr/local/lib/python3.11/concurrent/futures/thread.py in run(58) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56) result = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in middleware(32) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/allauth/account/middleware.py in middleware(36) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/simple_history/middleware.py in middleware(41) return get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/django_htmx/middleware.py in __call__(43) return self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in __call__(168) response = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/panels.py in process_request(41) return super(CachalotPanel, self).process_request(request) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in __call__(244) current_executor.run_until_future(call_result) /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run_until_future(81) work_item.run() /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run(40) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(90) return callback(request, *args, **kwargs) /app/project/utils/decorators.py in apply_cache(72) cache.set(CACHE_KEY, response.render(), ttl) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_patched_render(41) return old_render(self) /usr/local/lib/python3.11/site-packages/django/template/response.py in render(114) self.content = self.rendered_content /usr/local/lib/python3.11/site-packages/sentry_sdk/utils.py in runner(1788) return sentry_patched_function(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/templates.py in rendered_content(77) return real_rendered_content.fget(self) /usr/local/lib/python3.11/site-packages/django/template/response.py in rendered_content(92) return template.render(context, self._request) /usr/local/lib/python3.11/site-packages/django/template/backends/django.py in render(61) return self.template.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(175) return self._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157) return compiled_parent._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157) return compiled_parent._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63) result = block.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63) result = block.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(541) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(321) return nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(238) nodelist.append(node.render_annotated(context)) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1064) output = self.filter_expression.resolve(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in resolve(715) obj = self.var.resolve(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in resolve(847) value = self._resolve_lookup(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in _resolve_lookup(890) current = getattr(current, bit) /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(37) return original(compiler, *args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(96) return _get_result_or_execute_query( /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in _get_result_or_execute_query(64) result = execute_query_func() /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in <lambda>(80) execute_query_func = lambda: original(compiler, *args, **kwargs) |
Statische Dateien (273 gefunden, 7 benutzt)
Pfad mit statischen Dateien
- /app/project/static
Apps mit statischen Dateien
- modeltranslation
- django.contrib.admin
- django_extensions
- markdownx
- django_htmx
- rosetta
- notifications
- debug_toolbar
Statische Dateien
- images/icon_tales_white.png
- /app/project/static/images/icon_tales_white.png
- images/icon_tales_transp.png
- /app/project/static/images/icon_tales_transp.png
- lms_base/css/lms_base.css
- /app/project/static/lms_base/css/lms_base.css
- lms_tales/css/lms_tales.css
- None
- lms_base/js/lms_base.js
- /app/project/static/lms_base/js/lms_base.js
- lms_tales/js/lms_tales.js
- /app/project/static/lms_tales/js/lms_tales.js
- images/uni-basel-logo-de.svg
- /app/project/static/images/uni-basel-logo-de.svg
django.contrib.staticfiles.finders.FileSystemFinder (123 Dateien)
Pfad | Ort |
---|---|
robots.txt | /app/project/static/robots.txt |
alphorn_07.jpg | /app/project/static/alphorn_07.jpg |
browserconfig.xml | /app/project/static/browserconfig.xml |
alphorn_11.jpg | /app/project/static/alphorn_11.jpg |
lottie/optimized_tales_banner2.mp4 | /app/project/static/lottie/optimized_tales_banner2.mp4 |
lottie/optimized_tales_banner_av1.webm | /app/project/static/lottie/optimized_tales_banner_av1.webm |
lottie/tales_banner3.mp4 | /app/project/static/lottie/tales_banner3.mp4 |
lottie/optimized_tales_banner3.webm | /app/project/static/lottie/optimized_tales_banner3.webm |
lottie/optimized_tales_banner2.webm | /app/project/static/lottie/optimized_tales_banner2.webm |
lottie/tales_banner.json | /app/project/static/lottie/tales_banner.json |
lottie/optimized_tales_banner3.mp4 | /app/project/static/lottie/optimized_tales_banner3.mp4 |
lottie/optimized_tales_banner_av1.mp4 | /app/project/static/lottie/optimized_tales_banner_av1.mp4 |
lottie/optimized_tales_banner.mp4 | /app/project/static/lottie/optimized_tales_banner.mp4 |
lottie/tales_banner2.mp4 | /app/project/static/lottie/tales_banner2.mp4 |
lms_base/font/nmc.woff | /app/project/static/lms_base/font/nmc.woff |
lms_base/font/icon-left.woff2 | /app/project/static/lms_base/font/icon-left.woff2 |
lms_base/font/nmc.woff2 | /app/project/static/lms_base/font/nmc.woff2 |
lms_base/font/nmc.eot | /app/project/static/lms_base/font/nmc.eot |
lms_base/font/icon-left.woff | /app/project/static/lms_base/font/icon-left.woff |
lms_base/font/nmc.svg | /app/project/static/lms_base/font/nmc.svg |
lms_base/font/icon-left.svg | /app/project/static/lms_base/font/icon-left.svg |
lms_base/font/nmc.ttf | /app/project/static/lms_base/font/nmc.ttf |
lms_base/font/icon-left.eot | /app/project/static/lms_base/font/icon-left.eot |
lms_base/font/icon-left.ttf | /app/project/static/lms_base/font/icon-left.ttf |
lms_base/css/lms_base.css | /app/project/static/lms_base/css/lms_base.css |
lms_base/css/lms_base.css.map | /app/project/static/lms_base/css/lms_base.css.map |
lms_base/js/lms_base.js | /app/project/static/lms_base/js/lms_base.js |
lms_base/js/bootstrap.bundle.min.js | /app/project/static/lms_base/js/bootstrap.bundle.min.js |
reporting/css/report_pdf.css.map | /app/project/static/reporting/css/report_pdf.css.map |
reporting/css/report_pdf.css | /app/project/static/reporting/css/report_pdf.css |
reporting/images/nmcunilogo.png | /app/project/static/reporting/images/nmcunilogo.png |
reporting/images/background.jpg | /app/project/static/reporting/images/background.jpg |
dropzone/dropzone.min.css | /app/project/static/dropzone/dropzone.min.css |
dropzone/dropzone-amd-module.min.js | /app/project/static/dropzone/dropzone-amd-module.min.js |
dropzone/basic.min.css | /app/project/static/dropzone/basic.min.css |
dropzone/dropzone.min.js | /app/project/static/dropzone/dropzone.min.js |
lms_tales/font/nmc.woff | /app/project/static/lms_tales/font/nmc.woff |
lms_tales/font/icon-left.woff2 | /app/project/static/lms_tales/font/icon-left.woff2 |
lms_tales/font/nmc.woff2 | /app/project/static/lms_tales/font/nmc.woff2 |
lms_tales/font/nmc.eot | /app/project/static/lms_tales/font/nmc.eot |
lms_tales/font/icon-left.woff | /app/project/static/lms_tales/font/icon-left.woff |
lms_tales/font/nmc.svg | /app/project/static/lms_tales/font/nmc.svg |
lms_tales/font/icon-left.svg | /app/project/static/lms_tales/font/icon-left.svg |
lms_tales/font/nmc.ttf | /app/project/static/lms_tales/font/nmc.ttf |
lms_tales/font/icon-left.eot | /app/project/static/lms_tales/font/icon-left.eot |
lms_tales/font/icon-left.ttf | /app/project/static/lms_tales/font/icon-left.ttf |
lms_tales/js/lms_tales.js | /app/project/static/lms_tales/js/lms_tales.js |
opos/4_4.html | /app/project/static/opos/4_4.html |
opos/4_3.html | /app/project/static/opos/4_3.html |
opos/4_5.html | /app/project/static/opos/4_5.html |
opos/4_1.html | /app/project/static/opos/4_1.html |
tales_editor/favicon.ico | /app/project/static/tales_editor/favicon.ico |
tales_editor/index.html | /app/project/static/tales_editor/index.html |
tales_editor/css/chunk-vendors.css | /app/project/static/tales_editor/css/chunk-vendors.css |
tales_editor/css/app.css | /app/project/static/tales_editor/css/app.css |
tales_editor/img/bootstrap-icons.svg | /app/project/static/tales_editor/img/bootstrap-icons.svg |
tales_editor/img/remixicon.symbol.svg | /app/project/static/tales_editor/img/remixicon.symbol.svg |
tales_editor/js/app.js | /app/project/static/tales_editor/js/app.js |
tales_editor/js/app.js.map | /app/project/static/tales_editor/js/app.js.map |
tales_editor/js/chunk-vendors.js | /app/project/static/tales_editor/js/chunk-vendors.js |
tales_editor/js/chunk-vendors.js.map | /app/project/static/tales_editor/js/chunk-vendors.js.map |
images/opos_map_xs.png | /app/project/static/images/opos_map_xs.png |
images/opos_map_xl.png | /app/project/static/images/opos_map_xl.png |
images/edu-id-button-gray.png | /app/project/static/images/edu-id-button-gray.png |
images/icon_tales_mint.png | /app/project/static/images/icon_tales_mint.png |
images/favicon.ico | /app/project/static/images/favicon.ico |
images/door.jpg | /app/project/static/images/door.jpg |
images/icon_tales_transp_32x32.png | /app/project/static/images/icon_tales_transp_32x32.png |
images/uni-basel-logo-de.svg | /app/project/static/images/uni-basel-logo-de.svg |
images/raymond_ammann.jpg | /app/project/static/images/raymond_ammann.jpg |
images/help_en.jpg | /app/project/static/images/help_en.jpg |
images/opos_map_xs.avif | /app/project/static/images/opos_map_xs.avif |
images/opos_map_md.png | /app/project/static/images/opos_map_md.png |
images/help_de.jpg | /app/project/static/images/help_de.jpg |
images/bild.png | /app/project/static/images/bild.png |
images/help.jpg | /app/project/static/images/help.jpg |
images/Hochformat.jpg | /app/project/static/images/Hochformat.jpg |
images/empty_classroom.jpg | /app/project/static/images/empty_classroom.jpg |
images/uni-basel-logo-de.png | /app/project/static/images/uni-basel-logo-de.png |
images/contact-side-image-1.jpg | /app/project/static/images/contact-side-image-1.jpg |
images/icon_tales_white.png | /app/project/static/images/icon_tales_white.png |
images/portalflag.png | /app/project/static/images/portalflag.png |
images/uni-basel-logo-en.svg | /app/project/static/images/uni-basel-logo-en.svg |
images/contact-side-image-2.jpg | /app/project/static/images/contact-side-image-2.jpg |
images/alp_und_hirtenhorn.jpg | /app/project/static/images/alp_und_hirtenhorn.jpg |
images/icon_tales_transp.png | /app/project/static/images/icon_tales_transp.png |
images/Weltkarte_Opos.png | /app/project/static/images/Weltkarte_Opos.png |
images/batkitty.jpg | /app/project/static/images/batkitty.jpg |
images/help_fr.jpg | /app/project/static/images/help_fr.jpg |
nahtkurs_glossar/antikoagu.jpg | /app/project/static/nahtkurs_glossar/antikoagu.jpg |
nahtkurs_glossar/anamnese.jpg | /app/project/static/nahtkurs_glossar/anamnese.jpg |
nahtkurs_glossar/wundinfektion.jpg | /app/project/static/nahtkurs_glossar/wundinfektion.jpg |
nahtkurs_glossar/tensilestength.jpg | /app/project/static/nahtkurs_glossar/tensilestength.jpg |
nahtkurs_glossar/glucose.jpg | /app/project/static/nahtkurs_glossar/glucose.jpg |
nahtkurs_glossar/nacl.jpg | /app/project/static/nahtkurs_glossar/nacl.jpg |
sounds/temperiert_nr_7.mp3 | /app/project/static/sounds/temperiert_nr_7.mp3 |
sounds/alphorn_13.mp3 | /app/project/static/sounds/alphorn_13.mp3 |
sounds/alphorn_05.mp3 | /app/project/static/sounds/alphorn_05.mp3 |
sounds/alphorn_11.mp3 | /app/project/static/sounds/alphorn_11.mp3 |
sounds/naturton_nr_7.mp3 | /app/project/static/sounds/naturton_nr_7.mp3 |
sounds/hirtenhorn_04.mp3 | /app/project/static/sounds/hirtenhorn_04.mp3 |
sounds/alphorn_14.mp3 | /app/project/static/sounds/alphorn_14.mp3 |
sounds/alphorn_01.mp3 | /app/project/static/sounds/alphorn_01.mp3 |
sounds/alphorn_12.mp3 | /app/project/static/sounds/alphorn_12.mp3 |
sounds/alphorn_02.mp3 | /app/project/static/sounds/alphorn_02.mp3 |
sounds/alphorn_09.mp3 | /app/project/static/sounds/alphorn_09.mp3 |
sounds/alphorn_04.mp3 | /app/project/static/sounds/alphorn_04.mp3 |
sounds/alphorn_15.mp3 | /app/project/static/sounds/alphorn_15.mp3 |
sounds/hirtenhorn_07.mp3 | /app/project/static/sounds/hirtenhorn_07.mp3 |
sounds/alphorn_08.mp3 | /app/project/static/sounds/alphorn_08.mp3 |
sounds/alphorn_03.mp3 | /app/project/static/sounds/alphorn_03.mp3 |
sounds/hirtenhorn_02.mp3 | /app/project/static/sounds/hirtenhorn_02.mp3 |
sounds/alphorn_10.mp3 | /app/project/static/sounds/alphorn_10.mp3 |
sounds/hirtenhorn_01.mp3 | /app/project/static/sounds/hirtenhorn_01.mp3 |
sounds/hirtenhorn_06.mp3 | /app/project/static/sounds/hirtenhorn_06.mp3 |
sounds/alphorn_07.mp3 | /app/project/static/sounds/alphorn_07.mp3 |
sounds/temperiert_nr_11.mp3 | /app/project/static/sounds/temperiert_nr_11.mp3 |
sounds/hirtenhorn_08.mp3 | /app/project/static/sounds/hirtenhorn_08.mp3 |
sounds/naturton_nr_11.mp3 | /app/project/static/sounds/naturton_nr_11.mp3 |
sounds/alphorn_16.mp3 | /app/project/static/sounds/alphorn_16.mp3 |
sounds/hirtenhorn_05.mp3 | /app/project/static/sounds/hirtenhorn_05.mp3 |
sounds/hirtenhorn_03.mp3 | /app/project/static/sounds/hirtenhorn_03.mp3 |
sounds/alphorn_06.mp3 | /app/project/static/sounds/alphorn_06.mp3 |
django.contrib.staticfiles.finders.AppDirectoriesFinder (150 Dateien)
Pfad | Ort |
---|---|
modeltranslation/css/tabbed_translation_fields.css | /usr/local/lib/python3.11/site-packages/modeltranslation/static/modeltranslation/css/tabbed_translation_fields.css |
modeltranslation/js/clearable_inputs.js | /usr/local/lib/python3.11/site-packages/modeltranslation/static/modeltranslation/js/clearable_inputs.js |
modeltranslation/js/tabbed_translation_fields.js | /usr/local/lib/python3.11/site-packages/modeltranslation/static/modeltranslation/js/tabbed_translation_fields.js |
modeltranslation/js/force_jquery.js | /usr/local/lib/python3.11/site-packages/modeltranslation/static/modeltranslation/js/force_jquery.js |
admin/css/autocomplete.css | /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/css/autocomplete.css |
admin/css/responsive.css | /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/css/responsive.css |
admin/css/widgets.css | /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/css/widgets.css |
admin/css/changelists.css | /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/css/changelists.css |
admin/css/dark_mode.css | /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/css/dark_mode.css |
admin/css/responsive_rtl.css | /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/css/responsive_rtl.css |
admin/css/nav_sidebar.css | /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/css/nav_sidebar.css |
admin/css/dashboard.css | /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/css/dashboard.css |
admin/css/forms.css | /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/css/forms.css |
admin/css/rtl.css | /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/css/rtl.css |
admin/css/login.css | /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/css/login.css |
admin/css/base.css | /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/css/base.css |
admin/css/vendor/select2/select2.min.css | /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/css/vendor/select2/select2.min.css |
admin/css/vendor/select2/select2.css | /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/css/vendor/select2/select2.css |
admin/css/vendor/select2/LICENSE-SELECT2.md | /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/css/vendor/select2/LICENSE-SELECT2.md |
admin/img/icon-clock.svg | /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/img/icon-clock.svg |
admin/img/sorting-icons.svg | /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/img/sorting-icons.svg |
admin/img/icon-alert.svg | /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/img/icon-alert.svg |
admin/img/icon-changelink.svg | /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/img/icon-changelink.svg |
admin/img/selector-icons.svg | /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/img/selector-icons.svg |
admin/img/calendar-icons.svg | /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/img/calendar-icons.svg |
admin/img/tooltag-arrowright.svg | /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/img/tooltag-arrowright.svg |
admin/img/inline-delete.svg | /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/img/inline-delete.svg |
admin/img/icon-yes.svg | /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/img/icon-yes.svg |
admin/img/icon-unknown-alt.svg | /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/img/icon-unknown-alt.svg |
admin/img/icon-viewlink.svg | /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/img/icon-viewlink.svg |
admin/img/search.svg | /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/img/search.svg |
admin/img/icon-deletelink.svg | /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/img/icon-deletelink.svg |
admin/img/README.txt | /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/img/README.txt |
admin/img/LICENSE | /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/img/LICENSE |
admin/img/icon-calendar.svg | /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/img/icon-calendar.svg |
admin/img/tooltag-add.svg | /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/img/tooltag-add.svg |
admin/img/icon-unknown.svg | /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/img/icon-unknown.svg |
admin/img/icon-addlink.svg | /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/img/icon-addlink.svg |
admin/img/icon-no.svg | /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/img/icon-no.svg |
admin/img/gis/move_vertex_off.svg | /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/img/gis/move_vertex_off.svg |
admin/img/gis/move_vertex_on.svg | /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/img/gis/move_vertex_on.svg |
admin/js/SelectBox.js | /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/SelectBox.js |
admin/js/jquery.init.js | /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/jquery.init.js |
admin/js/inlines.js | /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/inlines.js |
admin/js/collapse.js | /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/collapse.js |
admin/js/filters.js | /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/filters.js |
admin/js/change_form.js | /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/change_form.js |
admin/js/autocomplete.js | /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/autocomplete.js |
admin/js/nav_sidebar.js | /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/nav_sidebar.js |
admin/js/popup_response.js | /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/popup_response.js |
admin/js/SelectFilter2.js | /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/SelectFilter2.js |
admin/js/actions.js | /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/actions.js |
admin/js/core.js | /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/core.js |
admin/js/cancel.js | /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/cancel.js |
admin/js/prepopulate.js | /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/prepopulate.js |
admin/js/urlify.js | /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/urlify.js |
admin/js/calendar.js | /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/calendar.js |
admin/js/prepopulate_init.js | /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/prepopulate_init.js |
admin/js/theme.js | /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/theme.js |
admin/js/admin/DateTimeShortcuts.js | /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/admin/DateTimeShortcuts.js |
admin/js/admin/RelatedObjectLookups.js | /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/admin/RelatedObjectLookups.js |
admin/js/vendor/select2/select2.full.js | /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/select2.full.js |
admin/js/vendor/select2/select2.full.min.js | /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/select2.full.min.js |
admin/js/vendor/select2/LICENSE.md | /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/LICENSE.md |
admin/js/vendor/select2/i18n/zh-CN.js | /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/zh-CN.js |
admin/js/vendor/select2/i18n/sr-Cyrl.js | /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/sr-Cyrl.js |
admin/js/vendor/select2/i18n/uk.js | /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/uk.js |
admin/js/vendor/select2/i18n/ar.js | /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/ar.js |
admin/js/vendor/select2/i18n/ka.js | /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/ka.js |
admin/js/vendor/select2/i18n/bn.js | /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/bn.js |
admin/js/vendor/select2/i18n/pt.js | /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/pt.js |
admin/js/vendor/select2/i18n/hi.js | /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/hi.js |
admin/js/vendor/select2/i18n/dsb.js | /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/dsb.js |
admin/js/vendor/select2/i18n/bs.js | /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/bs.js |
admin/js/vendor/select2/i18n/ru.js | /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/ru.js |
admin/js/vendor/select2/i18n/ms.js | /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/ms.js |
admin/js/vendor/select2/i18n/et.js | /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/et.js |
admin/js/vendor/select2/i18n/sl.js | /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/sl.js |
admin/js/vendor/select2/i18n/he.js | /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/he.js |
admin/js/vendor/select2/i18n/is.js | /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/is.js |
admin/js/vendor/select2/i18n/cs.js | /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/cs.js |
admin/js/vendor/select2/i18n/sq.js | /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/sq.js |
admin/js/vendor/select2/i18n/sv.js | /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/sv.js |
admin/js/vendor/select2/i18n/ne.js | /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/ne.js |
admin/js/vendor/select2/i18n/ko.js | /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/ko.js |
admin/js/vendor/select2/i18n/vi.js | /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/vi.js |
admin/js/vendor/select2/i18n/ca.js | /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/ca.js |
admin/js/vendor/select2/i18n/id.js | /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/id.js |
admin/js/vendor/select2/i18n/nb.js | /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/nb.js |
admin/js/vendor/select2/i18n/hr.js | /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/hr.js |
admin/js/vendor/select2/i18n/af.js | /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/af.js |
admin/js/vendor/select2/i18n/de.js | /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/de.js |
admin/js/vendor/select2/i18n/mk.js | /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/mk.js |
admin/js/vendor/select2/i18n/hy.js | /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/hy.js |
admin/js/vendor/select2/i18n/it.js | /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/it.js |
admin/js/vendor/select2/i18n/hu.js | /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/hu.js |
admin/js/vendor/select2/i18n/ja.js | /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/ja.js |
admin/js/vendor/select2/i18n/sk.js | /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/sk.js |
admin/js/vendor/select2/i18n/hsb.js | /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/hsb.js |
admin/js/vendor/select2/i18n/ro.js | /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/ro.js |
admin/js/vendor/select2/i18n/en.js | /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/en.js |
admin/js/vendor/select2/i18n/el.js | /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/el.js |
admin/js/vendor/select2/i18n/fa.js | /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/fa.js |
admin/js/vendor/select2/i18n/pt-BR.js | /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/pt-BR.js |
admin/js/vendor/select2/i18n/da.js | /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/da.js |
admin/js/vendor/select2/i18n/sr.js | /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/sr.js |
admin/js/vendor/select2/i18n/ps.js | /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/ps.js |
admin/js/vendor/select2/i18n/lt.js | /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/lt.js |
admin/js/vendor/select2/i18n/az.js | /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/az.js |
admin/js/vendor/select2/i18n/fr.js | /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/fr.js |
admin/js/vendor/select2/i18n/fi.js | /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/fi.js |
admin/js/vendor/select2/i18n/tk.js | /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/tk.js |
admin/js/vendor/select2/i18n/th.js | /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/th.js |
admin/js/vendor/select2/i18n/gl.js | /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/gl.js |
admin/js/vendor/select2/i18n/eu.js | /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/eu.js |
admin/js/vendor/select2/i18n/es.js | /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/es.js |
admin/js/vendor/select2/i18n/km.js | /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/km.js |
admin/js/vendor/select2/i18n/bg.js | /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/bg.js |
admin/js/vendor/select2/i18n/lv.js | /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/lv.js |
admin/js/vendor/select2/i18n/zh-TW.js | /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/zh-TW.js |
admin/js/vendor/select2/i18n/pl.js | /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/pl.js |
admin/js/vendor/select2/i18n/tr.js | /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/tr.js |
admin/js/vendor/select2/i18n/nl.js | /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/select2/i18n/nl.js |
admin/js/vendor/xregexp/xregexp.min.js | /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/xregexp/xregexp.min.js |
admin/js/vendor/xregexp/LICENSE.txt | /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/xregexp/LICENSE.txt |
admin/js/vendor/xregexp/xregexp.js | /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/xregexp/xregexp.js |
admin/js/vendor/jquery/jquery.min.js | /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/jquery/jquery.min.js |
admin/js/vendor/jquery/jquery.js | /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/jquery/jquery.js |
admin/js/vendor/jquery/LICENSE.txt | /usr/local/lib/python3.11/site-packages/django/contrib/admin/static/admin/js/vendor/jquery/LICENSE.txt |
django_extensions/css/jquery.autocomplete.css | /usr/local/lib/python3.11/site-packages/django_extensions/static/django_extensions/css/jquery.autocomplete.css |
django_extensions/img/indicator.gif | /usr/local/lib/python3.11/site-packages/django_extensions/static/django_extensions/img/indicator.gif |
django_extensions/js/jquery.ajaxQueue.js | /usr/local/lib/python3.11/site-packages/django_extensions/static/django_extensions/js/jquery.ajaxQueue.js |
django_extensions/js/jquery.autocomplete.js | /usr/local/lib/python3.11/site-packages/django_extensions/static/django_extensions/js/jquery.autocomplete.js |
django_extensions/js/jquery.bgiframe.js | /usr/local/lib/python3.11/site-packages/django_extensions/static/django_extensions/js/jquery.bgiframe.js |
markdownx/admin/css/markdownx.css | /usr/local/lib/python3.11/site-packages/markdownx/static/markdownx/admin/css/markdownx.css |
markdownx/admin/css/markdownx.min.css | /usr/local/lib/python3.11/site-packages/markdownx/static/markdownx/admin/css/markdownx.min.css |
markdownx/js/markdownx.min.js | /usr/local/lib/python3.11/site-packages/markdownx/static/markdownx/js/markdownx.min.js |
markdownx/js/markdownx.js | /usr/local/lib/python3.11/site-packages/markdownx/static/markdownx/js/markdownx.js |
django-htmx.js | /usr/local/lib/python3.11/site-packages/django_htmx/static/django-htmx.js |
admin/rosetta/css/rosetta.css | /usr/local/lib/python3.11/site-packages/rosetta/static/admin/rosetta/css/rosetta.css |
admin/rosetta/js/rosetta.js | /usr/local/lib/python3.11/site-packages/rosetta/static/admin/rosetta/js/rosetta.js |
admin/img/icon_searchbox_rosetta.png | /usr/local/lib/python3.11/site-packages/rosetta/static/admin/img/icon_searchbox_rosetta.png |
notifications/notify.js | /usr/local/lib/python3.11/site-packages/notifications/static/notifications/notify.js |
debug_toolbar/css/toolbar.css | /usr/local/lib/python3.11/site-packages/debug_toolbar/static/debug_toolbar/css/toolbar.css |
debug_toolbar/css/print.css | /usr/local/lib/python3.11/site-packages/debug_toolbar/static/debug_toolbar/css/print.css |
debug_toolbar/js/utils.js | /usr/local/lib/python3.11/site-packages/debug_toolbar/static/debug_toolbar/js/utils.js |
debug_toolbar/js/toolbar.js | /usr/local/lib/python3.11/site-packages/debug_toolbar/static/debug_toolbar/js/toolbar.js |
debug_toolbar/js/history.js | /usr/local/lib/python3.11/site-packages/debug_toolbar/static/debug_toolbar/js/history.js |
debug_toolbar/js/timer.js | /usr/local/lib/python3.11/site-packages/debug_toolbar/static/debug_toolbar/js/timer.js |
debug_toolbar/js/redirect.js | /usr/local/lib/python3.11/site-packages/debug_toolbar/static/debug_toolbar/js/redirect.js |
Templates (6 gerendert)
Template-Pfade
- /app/project/templates
- /usr/local/lib/python3.11/site-packages/django/forms/templates
Templates
- step/step_home.html
- /app/project/lms_tales/templates/step/step_home.html
-
Context zeigen
{'False': False, 'None': None, 'True': True} {'CI_COMMIT_SHORT_SHA': '484e3ae2', 'CI_COMMIT_TAG': '', 'DEFAULT_MESSAGE_LEVELS': {'DEBUG': 10, 'ERROR': 40, 'INFO': 20, 'SUCCESS': 25, 'WARNING': 30}, 'DEPLOY_ENV': 'staging', 'LANGUAGES': '<<languages>>', 'LANGUAGE_BIDI': False, 'LANGUAGE_CODE': 'de', 'MEDIA_URL': '/media/', 'RELEASE_NAME': '', 'STATIC_URL': '/static/', 'TIME_ZONE': 'Europe/Zurich', 'csrf_token': '<SimpleLazyObject: ' "'nWA178SU0XaVZ3d3tccYZFuwQbhMI3oGDKneaU2mWvXamvfNPAQ8nDwC0C4r8FRb'>", 'messages': <FallbackStorage: request=<ASGIRequest: GET '/de/exploring-possible-futures-44/putting-the-pieces-together-to-look-into-the-future-229/last-essential-steps-1311'>>, 'perms': PermWrapper(<SimpleLazyObject: <SimpleLazyObject: <django.contrib.auth.models.AnonymousUser object at 0x7910c1467690>>>), 'request': '<<request>>', 'user': '<SimpleLazyObject: <SimpleLazyObject: ' '<django.contrib.auth.models.AnonymousUser object at ' '0x7910c1467690>>>'} {'active_courseruns': [], 'active_courserunsteps': [], 'active_language_available': False, 'available_languages': [('en', 'Englisch')], 'course': <TalesCourse: Exploring Possible Futures>, 'course_contact': '', 'files': '<<queryset of lms_tales.TalesStepFileNew>>', 'object': <TalesStep: Last essential steps>, 'talesstep': <TalesStep: Last essential steps>, 'view': <lms_tales.views.step_views.StepDetails object at 0x7910c20f2750>}
- lms_tales_base.html
- /app/project/templates/lms_tales_base.html
-
Context zeigen
{'False': False, 'None': None, 'True': True} {'CI_COMMIT_SHORT_SHA': '484e3ae2', 'CI_COMMIT_TAG': '', 'DEFAULT_MESSAGE_LEVELS': {'DEBUG': 10, 'ERROR': 40, 'INFO': 20, 'SUCCESS': 25, 'WARNING': 30}, 'DEPLOY_ENV': 'staging', 'LANGUAGES': '<<languages>>', 'LANGUAGE_BIDI': False, 'LANGUAGE_CODE': 'de', 'MEDIA_URL': '/media/', 'RELEASE_NAME': '', 'STATIC_URL': '/static/', 'TIME_ZONE': 'Europe/Zurich', 'csrf_token': '<SimpleLazyObject: ' "'nWA178SU0XaVZ3d3tccYZFuwQbhMI3oGDKneaU2mWvXamvfNPAQ8nDwC0C4r8FRb'>", 'messages': <FallbackStorage: request=<ASGIRequest: GET '/de/exploring-possible-futures-44/putting-the-pieces-together-to-look-into-the-future-229/last-essential-steps-1311'>>, 'perms': PermWrapper(<SimpleLazyObject: <SimpleLazyObject: <django.contrib.auth.models.AnonymousUser object at 0x7910c1467690>>>), 'request': '<<request>>', 'user': '<SimpleLazyObject: <SimpleLazyObject: ' '<django.contrib.auth.models.AnonymousUser object at ' '0x7910c1467690>>>'} {'active_courseruns': [], 'active_courserunsteps': [], 'active_language_available': False, 'available_languages': [('en', 'Englisch')], 'course': <TalesCourse: Exploring Possible Futures>, 'course_contact': '', 'files': '<<queryset of lms_tales.TalesStepFileNew>>', 'object': <TalesStep: Last essential steps>, 'talesstep': <TalesStep: Last essential steps>, 'view': <lms_tales.views.step_views.StepDetails object at 0x7910c20f2750>}
- base.html
- /app/project/templates/base.html
-
Context zeigen
{'False': False, 'None': None, 'True': True} {'CI_COMMIT_SHORT_SHA': '484e3ae2', 'CI_COMMIT_TAG': '', 'DEFAULT_MESSAGE_LEVELS': {'DEBUG': 10, 'ERROR': 40, 'INFO': 20, 'SUCCESS': 25, 'WARNING': 30}, 'DEPLOY_ENV': 'staging', 'LANGUAGES': '<<languages>>', 'LANGUAGE_BIDI': False, 'LANGUAGE_CODE': 'de', 'MEDIA_URL': '/media/', 'RELEASE_NAME': '', 'STATIC_URL': '/static/', 'TIME_ZONE': 'Europe/Zurich', 'csrf_token': '<SimpleLazyObject: ' "'nWA178SU0XaVZ3d3tccYZFuwQbhMI3oGDKneaU2mWvXamvfNPAQ8nDwC0C4r8FRb'>", 'messages': <FallbackStorage: request=<ASGIRequest: GET '/de/exploring-possible-futures-44/putting-the-pieces-together-to-look-into-the-future-229/last-essential-steps-1311'>>, 'perms': PermWrapper(<SimpleLazyObject: <SimpleLazyObject: <django.contrib.auth.models.AnonymousUser object at 0x7910c1467690>>>), 'request': '<<request>>', 'user': '<SimpleLazyObject: <SimpleLazyObject: ' '<django.contrib.auth.models.AnonymousUser object at ' '0x7910c1467690>>>'} {'active_courseruns': [], 'active_courserunsteps': [], 'active_language_available': False, 'available_languages': [('en', 'Englisch')], 'course': <TalesCourse: Exploring Possible Futures>, 'course_contact': '', 'files': '<<queryset of lms_tales.TalesStepFileNew>>', 'object': <TalesStep: Last essential steps>, 'talesstep': <TalesStep: Last essential steps>, 'view': <lms_tales.views.step_views.StepDetails object at 0x7910c20f2750>}
- components/header.html
- /app/project/templates/components/header.html
-
Context zeigen
{'False': False, 'None': None, 'True': True} {'CI_COMMIT_SHORT_SHA': '484e3ae2', 'CI_COMMIT_TAG': '', 'DEFAULT_MESSAGE_LEVELS': {'DEBUG': 10, 'ERROR': 40, 'INFO': 20, 'SUCCESS': 25, 'WARNING': 30}, 'DEPLOY_ENV': 'staging', 'LANGUAGES': '<<languages>>', 'LANGUAGE_BIDI': False, 'LANGUAGE_CODE': 'de', 'MEDIA_URL': '/media/', 'RELEASE_NAME': '', 'STATIC_URL': '/static/', 'TIME_ZONE': 'Europe/Zurich', 'csrf_token': '<SimpleLazyObject: ' "'nWA178SU0XaVZ3d3tccYZFuwQbhMI3oGDKneaU2mWvXamvfNPAQ8nDwC0C4r8FRb'>", 'messages': <FallbackStorage: request=<ASGIRequest: GET '/de/exploring-possible-futures-44/putting-the-pieces-together-to-look-into-the-future-229/last-essential-steps-1311'>>, 'perms': PermWrapper(<SimpleLazyObject: <SimpleLazyObject: <django.contrib.auth.models.AnonymousUser object at 0x7910c1467690>>>), 'request': '<<request>>', 'user': '<SimpleLazyObject: <SimpleLazyObject: ' '<django.contrib.auth.models.AnonymousUser object at ' '0x7910c1467690>>>'} {'active_courseruns': [], 'active_courserunsteps': [], 'active_language_available': False, 'available_languages': [('en', 'Englisch')], 'course': <TalesCourse: Exploring Possible Futures>, 'course_contact': '', 'files': '<<queryset of lms_tales.TalesStepFileNew>>', 'object': <TalesStep: Last essential steps>, 'talesstep': <TalesStep: Last essential steps>, 'view': <lms_tales.views.step_views.StepDetails object at 0x7910c20f2750>} {'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
-
Context zeigen
{'False': False, 'None': None, 'True': True} {'CI_COMMIT_SHORT_SHA': '484e3ae2', 'CI_COMMIT_TAG': '', 'DEFAULT_MESSAGE_LEVELS': {'DEBUG': 10, 'ERROR': 40, 'INFO': 20, 'SUCCESS': 25, 'WARNING': 30}, 'DEPLOY_ENV': 'staging', 'LANGUAGES': '<<languages>>', 'LANGUAGE_BIDI': False, 'LANGUAGE_CODE': 'de', 'MEDIA_URL': '/media/', 'RELEASE_NAME': '', 'STATIC_URL': '/static/', 'TIME_ZONE': 'Europe/Zurich', 'csrf_token': '<SimpleLazyObject: ' "'nWA178SU0XaVZ3d3tccYZFuwQbhMI3oGDKneaU2mWvXamvfNPAQ8nDwC0C4r8FRb'>", 'messages': <FallbackStorage: request=<ASGIRequest: GET '/de/exploring-possible-futures-44/putting-the-pieces-together-to-look-into-the-future-229/last-essential-steps-1311'>>, 'perms': PermWrapper(<SimpleLazyObject: <SimpleLazyObject: <django.contrib.auth.models.AnonymousUser object at 0x7910c1467690>>>), 'request': '<<request>>', 'user': '<SimpleLazyObject: <SimpleLazyObject: ' '<django.contrib.auth.models.AnonymousUser object at ' '0x7910c1467690>>>'} {'active_courseruns': [], 'active_courserunsteps': [], 'active_language_available': False, 'available_languages': [('en', 'Englisch')], 'course': <TalesCourse: Exploring Possible Futures>, 'course_contact': '', 'files': '<<queryset of lms_tales.TalesStepFileNew>>', 'object': <TalesStep: Last essential steps>, 'talesstep': <TalesStep: Last essential steps>, 'view': <lms_tales.views.step_views.StepDetails object at 0x7910c20f2750>} {'block': <Block Node: sidebar-nav. Contents: [<TextNode: '\n <nav id="sid'>, <django.template.library.SimpleNode object at 0x7910c2e7f2d0>, <TextNode: '>\n '>, <django.templatetags.i18n.TranslateNode object at 0x7910c2e7ded0>, <TextNode: '</span>\n '>, <IfNode>, <TextNode: '\n '>, <django.template.library.SimpleNode object at 0x7910c2333910>, <TextNode: '>\n '>, <django.templatetags.i18n.TranslateNode object at 0x7910c2331d10>, <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
-
Context zeigen
{'False': False, 'None': None, 'True': True} {'CI_COMMIT_SHORT_SHA': '484e3ae2', 'CI_COMMIT_TAG': '', 'DEFAULT_MESSAGE_LEVELS': {'DEBUG': 10, 'ERROR': 40, 'INFO': 20, 'SUCCESS': 25, 'WARNING': 30}, 'DEPLOY_ENV': 'staging', 'LANGUAGES': '<<languages>>', 'LANGUAGE_BIDI': False, 'LANGUAGE_CODE': 'de', 'MEDIA_URL': '/media/', 'RELEASE_NAME': '', 'STATIC_URL': '/static/', 'TIME_ZONE': 'Europe/Zurich', 'csrf_token': '<SimpleLazyObject: ' "'nWA178SU0XaVZ3d3tccYZFuwQbhMI3oGDKneaU2mWvXamvfNPAQ8nDwC0C4r8FRb'>", 'messages': <FallbackStorage: request=<ASGIRequest: GET '/de/exploring-possible-futures-44/putting-the-pieces-together-to-look-into-the-future-229/last-essential-steps-1311'>>, 'perms': PermWrapper(<SimpleLazyObject: <SimpleLazyObject: <django.contrib.auth.models.AnonymousUser object at 0x7910c1467690>>>), 'request': '<<request>>', 'user': '<SimpleLazyObject: <SimpleLazyObject: ' '<django.contrib.auth.models.AnonymousUser object at ' '0x7910c1467690>>>'} {'active_courseruns': [], 'active_courserunsteps': [], 'active_language_available': False, 'available_languages': [('en', 'Englisch')], 'course': <TalesCourse: Exploring Possible Futures>, 'course_contact': '', 'files': '<<queryset of lms_tales.TalesStepFileNew>>', 'object': <TalesStep: Last essential steps>, 'talesstep': <TalesStep: Last essential steps>, 'view': <lms_tales.views.step_views.StepDetails object at 0x7910c20f2750>} {'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 0x7910c13daf10>, <TextNode: '\n '>, <django.templatetags.i18n.TranslateNode object at 0x7910c13d95d0>, <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-Prozessoren
- django.template.context_processors.csrf
-
Context zeigen
{'csrf_token': <SimpleLazyObject: 'nWA178SU0XaVZ3d3tccYZFuwQbhMI3oGDKneaU2mWvXamvfNPAQ8nDwC0C4r8FRb'>}
- django.template.context_processors.debug
-
Context zeigen
{}
- django.template.context_processors.request
-
Context zeigen
{'request': <ASGIRequest: GET '/de/exploring-possible-futures-44/putting-the-pieces-together-to-look-into-the-future-229/last-essential-steps-1311'>}
- django.contrib.auth.context_processors.auth
-
Context zeigen
{'user': <SimpleLazyObject: <SimpleLazyObject: <django.contrib.auth.models.AnonymousUser object at 0x7910c1467690>>>, 'perms': PermWrapper(<SimpleLazyObject: <SimpleLazyObject: <django.contrib.auth.models.AnonymousUser object at 0x7910c1467690>>>)}
- django.template.context_processors.i18n
-
Context zeigen
{'LANGUAGES': (('de', 'Deutsch'), ('en', 'Englisch'), ('fr', 'Franzoesisch')), 'LANGUAGE_CODE': 'de', 'LANGUAGE_BIDI': False}
- django.template.context_processors.media
-
Context zeigen
{'MEDIA_URL': '/media/'}
- django.template.context_processors.static
-
Context zeigen
{'STATIC_URL': '/static/'}
- django.template.context_processors.tz
-
Context zeigen
{'TIME_ZONE': 'Europe/Zurich'}
- django.contrib.messages.context_processors.messages
-
Context zeigen
{'messages': <FallbackStorage: request=<ASGIRequest: GET '/de/exploring-possible-futures-44/putting-the-pieces-together-to-look-into-the-future-229/last-essential-steps-1311'>>, 'DEFAULT_MESSAGE_LEVELS': {'DEBUG': 10, 'INFO': 20, 'SUCCESS': 25, 'WARNING': 30, 'ERROR': 40}}
- utils.context_processors.ci_info
-
Context zeigen
{'CI_COMMIT_TAG': '', 'CI_COMMIT_SHORT_SHA': '484e3ae2', 'RELEASE_NAME': '', 'DEPLOY_ENV': 'staging'}
Cache-Aufrufe von 1 Backend
Zusammenfassung
Aufrufe gesamt | Zeit gesamt | Cache erfolgreich | Cache verfehlt |
---|---|---|---|
61 | 25,190086103975773 ms | 167 | 3 |
Befehle
add | get | set | get_or_set | touch | delete | clear | get_many | set_many | delete_many | has_key | incr | decr | incr_version | decr_version |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
3 | 4 | 1 | 0 | 0 | 0 | 0 | 36 | 17 | 0 | 0 | 0 | 0 | 0 | 0 |
Aufrufe
Zeit (ms) | Typ | Argumente | Schlüsselwort-Argumente | Backend | |
---|---|---|---|---|---|
0,7237 | get_many | (dict_keys(['b5ac959681ff06eff632d25a5961a4d3cad09b42', '542c27005f4e84288827ce70a7d49bc73324a5e7', '887f8247d0ff979264c73b069f790024b2aa98e1', 'a2cec6efb2cb51d9fcdc73ec65d0d02848d3205f', 'af167bf678e72a9b2a64d8869d420b8d25e96148', 'f2b266a5acd7f191551fca80dea8475d456a300c', 'e5890f0f95e54c95fc7d85ffd3cd8f5079a384eb', '7d22fa9ec7aaf50b239b17bb4529f27be72f4b3d', 'fab86eaeb6f68c1bd14e3c42d6a32fc63fe5c10b', '1671d58e08fb6227d160e4add3baac34f778006f', '5634047d837b3106d3997f0611a298a16f6754cb', '38c0c9db04f183fb89086db2a3a02d20d5c1cbda', '33cd0b10f8c2fd53802b0948820b8b58da6bb27c', 'dbdc4e6f3de4931fbb7e39044291d87c49a581a7', 'bf555e2c224baeeac5838ee69c053900ce037b1d', '452aaa2adbf5d826d715538ebfd87013a599bacd', '5ef73f3d610667d7836abd847979ad8d02582140', '28b4f1c78186b497fc0611b76d5609a36a170804', 'acd1c2a120952e0445e89d8a2cc8faa99cc73454', '3fdb5b63faddfa01f5ebd09a89b74c9b3ec742bf', 'bc41695a90f568da6f9c44d14dbb30130bea76db', '6d6bdc7046f6d1410bd41d09cd570831af97fd31', '2288e6f142e998339c6d4985913358f76533a29e', 'f6e1a4d48790db63f8cb8c5653192a74ca00d34a', 'e19dd8b0e8a705c5914b55bbeb94d01f20e5368e', 'bf2a5aa392ac965fc14b9cc5fc8fcce588b2cf57', '9de26d60cec57eaab1ec19a62cf772073ae0e30f', '138549f5508bbba7283d6a0625e51c589d845e8f', '4f1f0b4dfbd30463b5587753e6f3e6ca21ddbf60', 'd890e5bc0b77c02793036efa76f50a25770a52a7', 'd00779073776b2287204a6fa5336494275fc73d5', '76e323efd8711853e13c9f7cf976845908364eb2', 'e3a5db5a670ad803efb866441f33de58309be2e2', '312c357d2eed306581bb334378808fbccf7019ea', 'd144abeb0db81d5dfea390a27c6d616aa1783141', 'b33158a576dd24b41063563867ce3f9044eb1acf', 'a78875b90f65061214a7b7eaa1a66176310060a1', 'd1accdb7a5e2af4fd7d0fc7e34b048f555cd65a0', '0b7593abe25ebbf222c98d71b199a17877e17478', 'da8bff0e0d25742e869a69b7508c37ccde5f8f33', '0098dff618e4e4ce8b226fb3dcd5d9042e69eb75', '8e3f73e6feaebee5ffbc4479f566917f08b4bbca', '5c50c6b3292213266ec6601a46b9ff857efec10a', '9ba11033f2e0b0478fa7ea0cfcde90c7ea880b1b', '810de96c2cc412e55eb18a19206c9b4f4879ec68', 'da75293c9ac4e9ae833da9fecd1ab668d629ce49', 'e4392949c2513e35c4d436a230e913efc13e4556', '9a3409722cd89bb29bc78c6bd4bca2cc2aad3e96', '5bd1ef7c64b457cbb725c42d97969db3ebe85f66', 'f3d241856fbbba355385868203e06010b65b882e', '1511f7c2f0ac6c43b58dfa27858c3d8561280f80', 'e2a6b84fc2a64f0ca59dd6e95fe6e1a5f3850ad5', 'b72f66480a030f14a954ea7eeb482d64fa1da084', '9e3a2b98ae55fa975425fa81a4e6e13342147b8a', '0e90ed3afbea5b3254d013a2b352642aaa2ce984', '2b2eb1f58e7ba0ac1ae04f9e9c95bde41f64e3fc', 'f38ac9d1db097d95b5062273e0a941d2da616361', 'cf84cec99a10af4507238b31bfce2171063a0c1d', 'c9b253ceb06244b30c24377ae68ae44353b4b3c4', '946a725506b18b4afe14d273540101238984908d', 'd34b8ed7c3bb0d3a712a5e42065744014bfe1542']),) | {} | <django_redis.cache.RedisCache object at 0x7910e287a790> | |
/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in run(101) return _run_old_run_func() /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in _run_old_run_func(94) return old_run_func(self, *a, **kw) /usr/local/lib/python3.11/concurrent/futures/thread.py in _worker(83) work_item.run() /usr/local/lib/python3.11/concurrent/futures/thread.py in run(58) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56) result = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in middleware(32) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/allauth/account/middleware.py in middleware(36) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/simple_history/middleware.py in middleware(41) return get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/django_htmx/middleware.py in __call__(43) return self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in __call__(168) response = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/panels.py in process_request(40) self.collect_invalidations() /usr/local/lib/python3.11/site-packages/cachalot/panels.py in collect_invalidations(52) for cache_key, timestamp in cache.get_many( |
|||||
0,3147 | get_many | (['138549f5508bbba7283d6a0625e51c589d845e8f', '559093d00af45a6d5b765a4cb2b013dc40259d1c'],) | {} | <django_redis.cache.RedisCache object at 0x7910e287a790> | |
/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in run(101) return _run_old_run_func() /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in _run_old_run_func(94) return old_run_func(self, *a, **kw) /usr/local/lib/python3.11/concurrent/futures/thread.py in _worker(83) work_item.run() /usr/local/lib/python3.11/concurrent/futures/thread.py in run(58) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56) result = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in middleware(32) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/allauth/account/middleware.py in middleware(36) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/simple_history/middleware.py in middleware(41) return get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/django_htmx/middleware.py in __call__(43) return self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in __call__(168) response = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/panels.py in process_request(41) return super(CachalotPanel, self).process_request(request) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in __call__(244) current_executor.run_until_future(call_result) /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run_until_future(81) work_item.run() /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run(40) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(90) return callback(request, *args, **kwargs) /app/project/utils/decorators.py in apply_cache(64) response = function(request, *args, **kwargs) /usr/local/lib/python3.11/site-packages/django/views/generic/base.py in view(104) return self.dispatch(request, *args, **kwargs) /app/project/lms_tales/views/mixins.py in dispatch(20) self.object = self.get_object() /usr/local/lib/python3.11/site-packages/django/views/generic/detail.py in get_object(53) obj = queryset.get() /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(37) return original(compiler, *args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(96) return _get_result_or_execute_query( /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in _get_result_or_execute_query(46) data = cache.get_many(table_cache_keys + [cache_key]) |
|||||
0,3305 | set_many | ({'559093d00af45a6d5b765a4cb2b013dc40259d1c': (1736881791.5488021, [[(1311, datetime.datetime(2022, 5, 5, 19, 21, 35, 955993, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 13, 59, 29, 223460, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 13, 59, 29, 173488, tzinfo=datetime.timezone.utc), False, 'Last essential steps', None, 'Last essential steps', None, '', None, None, None, 'Watch Hannes Weigt explaining how to put the different model phases into a consistent story.', None, 'Watch Hannes Weigt explaining how to put the different model phases into a consistent story.', None, '', 'last-essential-steps', 'Regardless, whether you have a conceptual model with complicated interactions hidden in the mathematical equations of your solution or a numerical model with a gazillion numbers, you will need to transfer your findings into something others can understand.\r\n{.lead}\r\n\r\n![embed](https://vimeo.com/734336359/96a965f5b3)\r\n \r\nModel interpretation therefore can be seen as a two-step process:\r\n\r\n![First](/media/markdownx/738d7c5a-eb3b-4830-9f32-ea55ac68b1e9.png)\r\n\r\nFirst, you need to **understand your own model results**. We covered aspects of this challenge throughout the course like interpreting activity and price variables or discussing the results of the model exercises. By digging into your model results, performing sensitivity analyses, testing the robustness, and figuring out what drives your results, you will get the elements needed for a good result presentation.\r\n\r\n![Second](/media/markdownx/129e248b-0311-4a90-95ac-c62c0643b5c7.png)\r\n\r\nSecond, you need to **transfer this understanding into a consistent storyline** linking back to your original problem. You will have to convince others that your model is a credible representation for your research question and that your findings provide added value. The four phases of modelling help you to structure your story.', '', 'Regardless, whether you have a conceptual model with complicated interactions hidden in the mathematical equations of your solution or a numerical model with a gazillion numbers, you will need to transfer your findings into something others can understand.\r\n{.lead}\r\n\r\n![embed](https://vimeo.com/734336359/96a965f5b3)\r\n \r\nModel interpretation therefore can be seen as a two-step process:\r\n\r\n![First](/media/markdownx/738d7c5a-eb3b-4830-9f32-ea55ac68b1e9.png)\r\n\r\nFirst, you need to **understand your own model results**. We covered aspects of this challenge throughout the course like interpreting activity and price variables or discussing the results of the model exercises. By digging into your model results, performing sensitivity analyses, testing the robustness, and figuring out what drives your results, you will get the elements needed for a good result presentation.\r\n\r\n![Second](/media/markdownx/129e248b-0311-4a90-95ac-c62c0643b5c7.png)\r\n\r\nSecond, you need to **transfer this understanding into a consistent storyline** linking back to your original problem. You will have to convince others that your model is a credible representation for your research question and that your findings provide added value. The four phases of modelling help you to structure your story.', '', '', '', '', '', None, None, None, None, '', '', '', '', 'TV', '', 8, 'published', False, None, None, None, None, 229)]])}, None) | {} | <django_redis.cache.RedisCache object at 0x7910e287a790> | |
/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in run(101) return _run_old_run_func() /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in _run_old_run_func(94) return old_run_func(self, *a, **kw) /usr/local/lib/python3.11/concurrent/futures/thread.py in _worker(83) work_item.run() /usr/local/lib/python3.11/concurrent/futures/thread.py in run(58) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56) result = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in middleware(32) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/allauth/account/middleware.py in middleware(36) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/simple_history/middleware.py in middleware(41) return get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/django_htmx/middleware.py in __call__(43) return self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in __call__(168) response = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/panels.py in process_request(41) return super(CachalotPanel, self).process_request(request) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in __call__(244) current_executor.run_until_future(call_result) /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run_until_future(81) work_item.run() /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run(40) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(90) return callback(request, *args, **kwargs) /app/project/utils/decorators.py in apply_cache(64) response = function(request, *args, **kwargs) /usr/local/lib/python3.11/site-packages/django/views/generic/base.py in view(104) return self.dispatch(request, *args, **kwargs) /app/project/lms_tales/views/mixins.py in dispatch(20) self.object = self.get_object() /usr/local/lib/python3.11/site-packages/django/views/generic/detail.py in get_object(53) obj = queryset.get() /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(37) return original(compiler, *args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(96) return _get_result_or_execute_query( /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in _get_result_or_execute_query(71) cache.set_many(to_be_set, cachalot_settings.CACHALOT_TIMEOUT) |
|||||
0,3955 | get_many | (['138549f5508bbba7283d6a0625e51c589d845e8f', '559093d00af45a6d5b765a4cb2b013dc40259d1c'],) | {} | <django_redis.cache.RedisCache object at 0x7910e287a790> | |
/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in run(101) return _run_old_run_func() /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in _run_old_run_func(94) return old_run_func(self, *a, **kw) /usr/local/lib/python3.11/concurrent/futures/thread.py in _worker(83) work_item.run() /usr/local/lib/python3.11/concurrent/futures/thread.py in run(58) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56) result = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in middleware(32) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/allauth/account/middleware.py in middleware(36) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/simple_history/middleware.py in middleware(41) return get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/django_htmx/middleware.py in __call__(43) return self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in __call__(168) response = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/panels.py in process_request(41) return super(CachalotPanel, self).process_request(request) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in __call__(244) current_executor.run_until_future(call_result) /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run_until_future(81) work_item.run() /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run(40) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(90) return callback(request, *args, **kwargs) /app/project/utils/decorators.py in apply_cache(64) response = function(request, *args, **kwargs) /usr/local/lib/python3.11/site-packages/django/views/generic/base.py in view(104) return self.dispatch(request, *args, **kwargs) /app/project/lms_tales/views/mixins.py in dispatch(31) return super().dispatch(request, *args, **kwargs) /usr/local/lib/python3.11/site-packages/django/views/generic/base.py in dispatch(143) return handler(request, *args, **kwargs) /app/project/lms_tales/views/step_views.py in get(36) response = super().get(request, *args, **kwargs) /usr/local/lib/python3.11/site-packages/django/views/generic/detail.py in get(108) self.object = self.get_object() /usr/local/lib/python3.11/site-packages/django/views/generic/detail.py in get_object(53) obj = queryset.get() /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(37) return original(compiler, *args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(96) return _get_result_or_execute_query( /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in _get_result_or_execute_query(46) data = cache.get_many(table_cache_keys + [cache_key]) |
|||||
0,4273 | get_many | (['138549f5508bbba7283d6a0625e51c589d845e8f', '4f1f0b4dfbd30463b5587753e6f3e6ca21ddbf60', '2ae6be7a900e8565254cefcb3b4a90bd8abeb7b1'],) | {} | <django_redis.cache.RedisCache object at 0x7910e287a790> | |
/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in run(101) return _run_old_run_func() /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in _run_old_run_func(94) return old_run_func(self, *a, **kw) /usr/local/lib/python3.11/concurrent/futures/thread.py in _worker(83) work_item.run() /usr/local/lib/python3.11/concurrent/futures/thread.py in run(58) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56) result = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in middleware(32) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/allauth/account/middleware.py in middleware(36) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/simple_history/middleware.py in middleware(41) return get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/django_htmx/middleware.py in __call__(43) return self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in __call__(168) response = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/panels.py in process_request(41) return super(CachalotPanel, self).process_request(request) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in __call__(244) current_executor.run_until_future(call_result) /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run_until_future(81) work_item.run() /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run(40) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(90) return callback(request, *args, **kwargs) /app/project/utils/decorators.py in apply_cache(64) response = function(request, *args, **kwargs) /usr/local/lib/python3.11/site-packages/django/views/generic/base.py in view(104) return self.dispatch(request, *args, **kwargs) /app/project/lms_tales/views/mixins.py in dispatch(31) return super().dispatch(request, *args, **kwargs) /usr/local/lib/python3.11/site-packages/django/views/generic/base.py in dispatch(143) return handler(request, *args, **kwargs) /app/project/lms_tales/views/step_views.py in get(36) response = super().get(request, *args, **kwargs) /usr/local/lib/python3.11/site-packages/django/views/generic/detail.py in get(109) context = self.get_context_data(object=self.object) /app/project/lms_tales/views/step_views.py in get_context_data(63) if len(step_files_new) == 0: /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(37) return original(compiler, *args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(96) return _get_result_or_execute_query( /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in _get_result_or_execute_query(46) data = cache.get_many(table_cache_keys + [cache_key]) |
|||||
0,3395 | set_many | ({'2ae6be7a900e8565254cefcb3b4a90bd8abeb7b1': (1736881791.5562196, [])}, None) | {} | <django_redis.cache.RedisCache object at 0x7910e287a790> | |
/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in run(101) return _run_old_run_func() /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in _run_old_run_func(94) return old_run_func(self, *a, **kw) /usr/local/lib/python3.11/concurrent/futures/thread.py in _worker(83) work_item.run() /usr/local/lib/python3.11/concurrent/futures/thread.py in run(58) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56) result = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in middleware(32) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/allauth/account/middleware.py in middleware(36) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/simple_history/middleware.py in middleware(41) return get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/django_htmx/middleware.py in __call__(43) return self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in __call__(168) response = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/panels.py in process_request(41) return super(CachalotPanel, self).process_request(request) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in __call__(244) current_executor.run_until_future(call_result) /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run_until_future(81) work_item.run() /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run(40) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(90) return callback(request, *args, **kwargs) /app/project/utils/decorators.py in apply_cache(64) response = function(request, *args, **kwargs) /usr/local/lib/python3.11/site-packages/django/views/generic/base.py in view(104) return self.dispatch(request, *args, **kwargs) /app/project/lms_tales/views/mixins.py in dispatch(31) return super().dispatch(request, *args, **kwargs) /usr/local/lib/python3.11/site-packages/django/views/generic/base.py in dispatch(143) return handler(request, *args, **kwargs) /app/project/lms_tales/views/step_views.py in get(36) response = super().get(request, *args, **kwargs) /usr/local/lib/python3.11/site-packages/django/views/generic/detail.py in get(109) context = self.get_context_data(object=self.object) /app/project/lms_tales/views/step_views.py in get_context_data(63) if len(step_files_new) == 0: /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(37) return original(compiler, *args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(96) return _get_result_or_execute_query( /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in _get_result_or_execute_query(71) cache.set_many(to_be_set, cachalot_settings.CACHALOT_TIMEOUT) |
|||||
0,3302 | get_many | (['138549f5508bbba7283d6a0625e51c589d845e8f', '4f1f0b4dfbd30463b5587753e6f3e6ca21ddbf60', '2ae6be7a900e8565254cefcb3b4a90bd8abeb7b1'],) | {} | <django_redis.cache.RedisCache object at 0x7910e287a790> | |
/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in run(101) return _run_old_run_func() /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in _run_old_run_func(94) return old_run_func(self, *a, **kw) /usr/local/lib/python3.11/concurrent/futures/thread.py in _worker(83) work_item.run() /usr/local/lib/python3.11/concurrent/futures/thread.py in run(58) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56) result = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in middleware(32) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/allauth/account/middleware.py in middleware(36) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/simple_history/middleware.py in middleware(41) return get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/django_htmx/middleware.py in __call__(43) return self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in __call__(168) response = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/panels.py in process_request(41) return super(CachalotPanel, self).process_request(request) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in __call__(244) current_executor.run_until_future(call_result) /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run_until_future(81) work_item.run() /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run(40) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(90) return callback(request, *args, **kwargs) /app/project/utils/decorators.py in apply_cache(64) response = function(request, *args, **kwargs) /usr/local/lib/python3.11/site-packages/django/views/generic/base.py in view(104) return self.dispatch(request, *args, **kwargs) /app/project/lms_tales/views/mixins.py in dispatch(31) return super().dispatch(request, *args, **kwargs) /usr/local/lib/python3.11/site-packages/django/views/generic/base.py in dispatch(143) return handler(request, *args, **kwargs) /app/project/lms_tales/views/step_views.py in get(36) response = super().get(request, *args, **kwargs) /usr/local/lib/python3.11/site-packages/django/views/generic/detail.py in get(109) context = self.get_context_data(object=self.object) /app/project/lms_tales/views/step_views.py in get_context_data(69) if len(step_files_new) > 0: /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(37) return original(compiler, *args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(96) return _get_result_or_execute_query( /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in _get_result_or_execute_query(46) data = cache.get_many(table_cache_keys + [cache_key]) |
|||||
0,3530 | get_many | (['138549f5508bbba7283d6a0625e51c589d845e8f', '4f1f0b4dfbd30463b5587753e6f3e6ca21ddbf60', 'f57a6e974f30c759efaee1766810e2e2b0a22128'],) | {} | <django_redis.cache.RedisCache object at 0x7910e287a790> | |
/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in run(101) return _run_old_run_func() /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in _run_old_run_func(94) return old_run_func(self, *a, **kw) /usr/local/lib/python3.11/concurrent/futures/thread.py in _worker(83) work_item.run() /usr/local/lib/python3.11/concurrent/futures/thread.py in run(58) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56) result = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in middleware(32) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/allauth/account/middleware.py in middleware(36) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/simple_history/middleware.py in middleware(41) return get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/django_htmx/middleware.py in __call__(43) return self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in __call__(168) response = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/panels.py in process_request(41) return super(CachalotPanel, self).process_request(request) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in __call__(244) current_executor.run_until_future(call_result) /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run_until_future(81) work_item.run() /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run(40) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(90) return callback(request, *args, **kwargs) /app/project/utils/decorators.py in apply_cache(64) response = function(request, *args, **kwargs) /usr/local/lib/python3.11/site-packages/django/views/generic/base.py in view(104) return self.dispatch(request, *args, **kwargs) /app/project/lms_tales/views/mixins.py in dispatch(31) return super().dispatch(request, *args, **kwargs) /usr/local/lib/python3.11/site-packages/django/views/generic/base.py in dispatch(143) return handler(request, *args, **kwargs) /app/project/lms_tales/views/step_views.py in get(36) response = super().get(request, *args, **kwargs) /usr/local/lib/python3.11/site-packages/django/views/generic/detail.py in get(109) context = self.get_context_data(object=self.object) /app/project/lms_tales/views/step_views.py in get_context_data(69) if len(step_files_new) > 0: /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(37) return original(compiler, *args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(96) return _get_result_or_execute_query( /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in _get_result_or_execute_query(46) data = cache.get_many(table_cache_keys + [cache_key]) |
|||||
0,3712 | set_many | ({'f57a6e974f30c759efaee1766810e2e2b0a22128': (1736881791.5622125, [[(672, datetime.datetime(2022, 5, 11, 10, 13, 41, 175866, tzinfo=datetime.timezone.utc), datetime.datetime(2022, 5, 11, 10, 13, 41, 175866, tzinfo=datetime.timezone.utc), 1311, 706, 'en'), (671, datetime.datetime(2022, 5, 11, 10, 13, 36, 577577, tzinfo=datetime.timezone.utc), datetime.datetime(2022, 5, 11, 10, 13, 36, 577577, tzinfo=datetime.timezone.utc), 1311, 705, 'en')]])}, None) | {} | <django_redis.cache.RedisCache object at 0x7910e287a790> | |
/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in run(101) return _run_old_run_func() /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in _run_old_run_func(94) return old_run_func(self, *a, **kw) /usr/local/lib/python3.11/concurrent/futures/thread.py in _worker(83) work_item.run() /usr/local/lib/python3.11/concurrent/futures/thread.py in run(58) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56) result = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in middleware(32) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/allauth/account/middleware.py in middleware(36) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/simple_history/middleware.py in middleware(41) return get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/django_htmx/middleware.py in __call__(43) return self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in __call__(168) response = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/panels.py in process_request(41) return super(CachalotPanel, self).process_request(request) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in __call__(244) current_executor.run_until_future(call_result) /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run_until_future(81) work_item.run() /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run(40) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(90) return callback(request, *args, **kwargs) /app/project/utils/decorators.py in apply_cache(64) response = function(request, *args, **kwargs) /usr/local/lib/python3.11/site-packages/django/views/generic/base.py in view(104) return self.dispatch(request, *args, **kwargs) /app/project/lms_tales/views/mixins.py in dispatch(31) return super().dispatch(request, *args, **kwargs) /usr/local/lib/python3.11/site-packages/django/views/generic/base.py in dispatch(143) return handler(request, *args, **kwargs) /app/project/lms_tales/views/step_views.py in get(36) response = super().get(request, *args, **kwargs) /usr/local/lib/python3.11/site-packages/django/views/generic/detail.py in get(109) context = self.get_context_data(object=self.object) /app/project/lms_tales/views/step_views.py in get_context_data(69) if len(step_files_new) > 0: /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(37) return original(compiler, *args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(96) return _get_result_or_execute_query( /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in _get_result_or_execute_query(71) cache.set_many(to_be_set, cachalot_settings.CACHALOT_TIMEOUT) |
|||||
0,6896 | get_many | (['76e323efd8711853e13c9f7cf976845908364eb2', '279cc63f281014577fded013f5b239a542a3a72b'],) | {} | <django_redis.cache.RedisCache object at 0x7910e287a790> | |
/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in run(101) return _run_old_run_func() /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in _run_old_run_func(94) return old_run_func(self, *a, **kw) /usr/local/lib/python3.11/concurrent/futures/thread.py in _worker(83) work_item.run() /usr/local/lib/python3.11/concurrent/futures/thread.py in run(58) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56) result = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in middleware(32) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/allauth/account/middleware.py in middleware(36) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/simple_history/middleware.py in middleware(41) return get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/django_htmx/middleware.py in __call__(43) return self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in __call__(168) response = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/panels.py in process_request(41) return super(CachalotPanel, self).process_request(request) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in __call__(244) current_executor.run_until_future(call_result) /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run_until_future(81) work_item.run() /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run(40) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(90) return callback(request, *args, **kwargs) /app/project/utils/decorators.py in apply_cache(64) response = function(request, *args, **kwargs) /usr/local/lib/python3.11/site-packages/django/views/generic/base.py in view(104) return self.dispatch(request, *args, **kwargs) /app/project/lms_tales/views/mixins.py in dispatch(31) return super().dispatch(request, *args, **kwargs) /usr/local/lib/python3.11/site-packages/django/views/generic/base.py in dispatch(143) return handler(request, *args, **kwargs) /app/project/lms_tales/views/step_views.py in get(36) response = super().get(request, *args, **kwargs) /usr/local/lib/python3.11/site-packages/django/views/generic/detail.py in get(109) context = self.get_context_data(object=self.object) /app/project/lms_tales/views/step_views.py in get_context_data(72) context["course"] = self.object.chapter.course /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(37) return original(compiler, *args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(96) return _get_result_or_execute_query( /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in _get_result_or_execute_query(46) data = cache.get_many(table_cache_keys + [cache_key]) |
|||||
0,4274 | get_many | (['e3a5db5a670ad803efb866441f33de58309be2e2', 'fd9d74e2f59f427ba11b19f890ef4207c0f2496f'],) | {} | <django_redis.cache.RedisCache object at 0x7910e287a790> | |
/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in run(101) return _run_old_run_func() /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in _run_old_run_func(94) return old_run_func(self, *a, **kw) /usr/local/lib/python3.11/concurrent/futures/thread.py in _worker(83) work_item.run() /usr/local/lib/python3.11/concurrent/futures/thread.py in run(58) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56) result = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in middleware(32) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/allauth/account/middleware.py in middleware(36) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/simple_history/middleware.py in middleware(41) return get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/django_htmx/middleware.py in __call__(43) return self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in __call__(168) response = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/panels.py in process_request(41) return super(CachalotPanel, self).process_request(request) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in __call__(244) current_executor.run_until_future(call_result) /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run_until_future(81) work_item.run() /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run(40) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(90) return callback(request, *args, **kwargs) /app/project/utils/decorators.py in apply_cache(64) response = function(request, *args, **kwargs) /usr/local/lib/python3.11/site-packages/django/views/generic/base.py in view(104) return self.dispatch(request, *args, **kwargs) /app/project/lms_tales/views/mixins.py in dispatch(31) return super().dispatch(request, *args, **kwargs) /usr/local/lib/python3.11/site-packages/django/views/generic/base.py in dispatch(143) return handler(request, *args, **kwargs) /app/project/lms_tales/views/step_views.py in get(36) response = super().get(request, *args, **kwargs) /usr/local/lib/python3.11/site-packages/django/views/generic/detail.py in get(109) context = self.get_context_data(object=self.object) /app/project/lms_tales/views/step_views.py in get_context_data(72) context["course"] = self.object.chapter.course /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(37) return original(compiler, *args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(96) return _get_result_or_execute_query( /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in _get_result_or_execute_query(46) data = cache.get_many(table_cache_keys + [cache_key]) |
|||||
0,3321 | get_many | (['e3a5db5a670ad803efb866441f33de58309be2e2', '312c357d2eed306581bb334378808fbccf7019ea', '18fc7e70c46bc13b0743370b4c0573f4f146f69f'],) | {} | <django_redis.cache.RedisCache object at 0x7910e287a790> | |
/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in run(101) return _run_old_run_func() /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in _run_old_run_func(94) return old_run_func(self, *a, **kw) /usr/local/lib/python3.11/concurrent/futures/thread.py in _worker(83) work_item.run() /usr/local/lib/python3.11/concurrent/futures/thread.py in run(58) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56) result = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in middleware(32) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/allauth/account/middleware.py in middleware(36) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/simple_history/middleware.py in middleware(41) return get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/django_htmx/middleware.py in __call__(43) return self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in __call__(168) response = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/panels.py in process_request(41) return super(CachalotPanel, self).process_request(request) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in __call__(244) current_executor.run_until_future(call_result) /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run_until_future(81) work_item.run() /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run(40) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(90) return callback(request, *args, **kwargs) /app/project/utils/decorators.py in apply_cache(72) cache.set(CACHE_KEY, response.render(), ttl) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_patched_render(41) return old_render(self) /usr/local/lib/python3.11/site-packages/django/template/response.py in render(114) self.content = self.rendered_content /usr/local/lib/python3.11/site-packages/sentry_sdk/utils.py in runner(1788) return sentry_patched_function(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/templates.py in rendered_content(77) return real_rendered_content.fget(self) /usr/local/lib/python3.11/site-packages/django/template/response.py in rendered_content(92) return template.render(context, self._request) /usr/local/lib/python3.11/site-packages/django/template/backends/django.py in render(61) return self.template.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(175) return self._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157) return compiled_parent._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157) return compiled_parent._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(314) match = condition.eval(context) /usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in eval(877) return self.value.resolve(context, ignore_failures=True) /usr/local/lib/python3.11/site-packages/django/template/base.py in resolve(715) obj = self.var.resolve(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in resolve(847) value = self._resolve_lookup(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in _resolve_lookup(890) current = getattr(current, bit) /app/project/lms_tales/models.py in meta(83) + ", ".join([author.name for author in self.get_course().authors.all()]), /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(37) return original(compiler, *args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(96) return _get_result_or_execute_query( /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in _get_result_or_execute_query(46) data = cache.get_many(table_cache_keys + [cache_key]) |
|||||
0,3800 | set_many | ({'18fc7e70c46bc13b0743370b4c0573f4f146f69f': (1736881791.5819945, [[(86, datetime.datetime(2022, 5, 5, 13, 51, 8, 925627, tzinfo=datetime.timezone.utc), datetime.datetime(2022, 7, 29, 8, 6, 54, 916113, tzinfo=datetime.timezone.utc), 'Prof. Dr. Hannes Weigt\r\n{.footnote-title}\r\n\r\nProfessor for energy economics at the [Department of Energy Economics](https://wwz.unibas.ch/en/faculty/people-and-areas/weigt-hannes-energy-economics/){:target=“_blank”}. Research interests include: Market Modeling and Electricity Market Design, Renewable Energies and Environmental Policies, Investment and Incentives in Network Industries, Competition Policy and Regulation.', 'Prof. Dr. Hannes Weigt\r\n{.footnote-title}\r\n\r\nProfessor for energy economics at the [Department of Energy Economics](https://wwz.unibas.ch/en/faculty/people-and-areas/weigt-hannes-energy-economics/){:target=“_blank”}. Research interests include: Market Modeling and Electricity Market Design, Renewable Energies and Environmental Policies, Investment and Incentives in Network Industries, Competition Policy and Regulation.', None, None, 'exploring-possible-futures/weight2.jpg', 18008, 44), (85, datetime.datetime(2022, 5, 5, 13, 43, 30, 747261, tzinfo=datetime.timezone.utc), datetime.datetime(2022, 7, 29, 8, 7, 19, 996046, tzinfo=datetime.timezone.utc), 'Prof. Dr. Frank Krysiak\r\n{.footnote-title}\r\n\r\nProfessor of environmental economics at the [Department of Environmental Economics](https://wwz.unibas.ch/en/faculty/people-and-areas/krysiak-frank-environmental-economics/){:target=“_blank”}. Research interests include the long-term impacts of environmental politics and economic theories of sustainability.', 'Prof. Dr. Frank Krysiak\r\n{.footnote-title}\r\n\r\nProfessor of environmental economics at the [Department of Environmental Economics](https://wwz.unibas.ch/en/faculty/people-and-areas/krysiak-frank-environmental-economics/){:target=“_blank”}. Research interests include the long-term impacts of environmental politics and economic theories of sustainability.', None, None, 'exploring-possible-futures/Krysiak2.jpg', 14015, 44)]])}, None) | {} | <django_redis.cache.RedisCache object at 0x7910e287a790> | |
/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in run(101) return _run_old_run_func() /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in _run_old_run_func(94) return old_run_func(self, *a, **kw) /usr/local/lib/python3.11/concurrent/futures/thread.py in _worker(83) work_item.run() /usr/local/lib/python3.11/concurrent/futures/thread.py in run(58) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56) result = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in middleware(32) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/allauth/account/middleware.py in middleware(36) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/simple_history/middleware.py in middleware(41) return get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/django_htmx/middleware.py in __call__(43) return self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in __call__(168) response = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/panels.py in process_request(41) return super(CachalotPanel, self).process_request(request) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in __call__(244) current_executor.run_until_future(call_result) /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run_until_future(81) work_item.run() /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run(40) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(90) return callback(request, *args, **kwargs) /app/project/utils/decorators.py in apply_cache(72) cache.set(CACHE_KEY, response.render(), ttl) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_patched_render(41) return old_render(self) /usr/local/lib/python3.11/site-packages/django/template/response.py in render(114) self.content = self.rendered_content /usr/local/lib/python3.11/site-packages/sentry_sdk/utils.py in runner(1788) return sentry_patched_function(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/templates.py in rendered_content(77) return real_rendered_content.fget(self) /usr/local/lib/python3.11/site-packages/django/template/response.py in rendered_content(92) return template.render(context, self._request) /usr/local/lib/python3.11/site-packages/django/template/backends/django.py in render(61) return self.template.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(175) return self._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157) return compiled_parent._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157) return compiled_parent._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(314) match = condition.eval(context) /usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in eval(877) return self.value.resolve(context, ignore_failures=True) /usr/local/lib/python3.11/site-packages/django/template/base.py in resolve(715) obj = self.var.resolve(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in resolve(847) value = self._resolve_lookup(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in _resolve_lookup(890) current = getattr(current, bit) /app/project/lms_tales/models.py in meta(83) + ", ".join([author.name for author in self.get_course().authors.all()]), /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(37) return original(compiler, *args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(96) return _get_result_or_execute_query( /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in _get_result_or_execute_query(71) cache.set_many(to_be_set, cachalot_settings.CACHALOT_TIMEOUT) |
|||||
0,2427 | get_many | (['e3a5db5a670ad803efb866441f33de58309be2e2', '312c357d2eed306581bb334378808fbccf7019ea', '18fc7e70c46bc13b0743370b4c0573f4f146f69f'],) | {} | <django_redis.cache.RedisCache object at 0x7910e287a790> | |
/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in run(101) return _run_old_run_func() /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in _run_old_run_func(94) return old_run_func(self, *a, **kw) /usr/local/lib/python3.11/concurrent/futures/thread.py in _worker(83) work_item.run() /usr/local/lib/python3.11/concurrent/futures/thread.py in run(58) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56) result = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in middleware(32) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/allauth/account/middleware.py in middleware(36) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/simple_history/middleware.py in middleware(41) return get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/django_htmx/middleware.py in __call__(43) return self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in __call__(168) response = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/panels.py in process_request(41) return super(CachalotPanel, self).process_request(request) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in __call__(244) current_executor.run_until_future(call_result) /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run_until_future(81) work_item.run() /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run(40) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(90) return callback(request, *args, **kwargs) /app/project/utils/decorators.py in apply_cache(72) cache.set(CACHE_KEY, response.render(), ttl) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_patched_render(41) return old_render(self) /usr/local/lib/python3.11/site-packages/django/template/response.py in render(114) self.content = self.rendered_content /usr/local/lib/python3.11/site-packages/sentry_sdk/utils.py in runner(1788) return sentry_patched_function(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/templates.py in rendered_content(77) return real_rendered_content.fget(self) /usr/local/lib/python3.11/site-packages/django/template/response.py in rendered_content(92) return template.render(context, self._request) /usr/local/lib/python3.11/site-packages/django/template/backends/django.py in render(61) return self.template.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(175) return self._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157) return compiled_parent._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157) return compiled_parent._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(321) return nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1064) output = self.filter_expression.resolve(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in resolve(715) obj = self.var.resolve(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in resolve(847) value = self._resolve_lookup(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in _resolve_lookup(890) current = getattr(current, bit) /app/project/lms_tales/models.py in meta(83) + ", ".join([author.name for author in self.get_course().authors.all()]), /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(37) return original(compiler, *args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(96) return _get_result_or_execute_query( /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in _get_result_or_execute_query(46) data = cache.get_many(table_cache_keys + [cache_key]) |
|||||
0,2659 | get_many | (['e3a5db5a670ad803efb866441f33de58309be2e2', '312c357d2eed306581bb334378808fbccf7019ea', '18fc7e70c46bc13b0743370b4c0573f4f146f69f'],) | {} | <django_redis.cache.RedisCache object at 0x7910e287a790> | |
/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in run(101) return _run_old_run_func() /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in _run_old_run_func(94) return old_run_func(self, *a, **kw) /usr/local/lib/python3.11/concurrent/futures/thread.py in _worker(83) work_item.run() /usr/local/lib/python3.11/concurrent/futures/thread.py in run(58) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56) result = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in middleware(32) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/allauth/account/middleware.py in middleware(36) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/simple_history/middleware.py in middleware(41) return get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/django_htmx/middleware.py in __call__(43) return self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in __call__(168) response = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/panels.py in process_request(41) return super(CachalotPanel, self).process_request(request) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in __call__(244) current_executor.run_until_future(call_result) /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run_until_future(81) work_item.run() /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run(40) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(90) return callback(request, *args, **kwargs) /app/project/utils/decorators.py in apply_cache(72) cache.set(CACHE_KEY, response.render(), ttl) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_patched_render(41) return old_render(self) /usr/local/lib/python3.11/site-packages/django/template/response.py in render(114) self.content = self.rendered_content /usr/local/lib/python3.11/site-packages/sentry_sdk/utils.py in runner(1788) return sentry_patched_function(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/templates.py in rendered_content(77) return real_rendered_content.fget(self) /usr/local/lib/python3.11/site-packages/django/template/response.py in rendered_content(92) return template.render(context, self._request) /usr/local/lib/python3.11/site-packages/django/template/backends/django.py in render(61) return self.template.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(175) return self._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157) return compiled_parent._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157) return compiled_parent._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(321) return nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1064) output = self.filter_expression.resolve(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in resolve(715) obj = self.var.resolve(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in resolve(847) value = self._resolve_lookup(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in _resolve_lookup(890) current = getattr(current, bit) /app/project/lms_tales/models.py in meta(83) + ", ".join([author.name for author in self.get_course().authors.all()]), /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(37) return original(compiler, *args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(96) return _get_result_or_execute_query( /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in _get_result_or_execute_query(46) data = cache.get_many(table_cache_keys + [cache_key]) |
|||||
0,2369 | get_many | (['e3a5db5a670ad803efb866441f33de58309be2e2', '312c357d2eed306581bb334378808fbccf7019ea', '18fc7e70c46bc13b0743370b4c0573f4f146f69f'],) | {} | <django_redis.cache.RedisCache object at 0x7910e287a790> | |
/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in run(101) return _run_old_run_func() /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in _run_old_run_func(94) return old_run_func(self, *a, **kw) /usr/local/lib/python3.11/concurrent/futures/thread.py in _worker(83) work_item.run() /usr/local/lib/python3.11/concurrent/futures/thread.py in run(58) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56) result = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in middleware(32) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/allauth/account/middleware.py in middleware(36) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/simple_history/middleware.py in middleware(41) return get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/django_htmx/middleware.py in __call__(43) return self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in __call__(168) response = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/panels.py in process_request(41) return super(CachalotPanel, self).process_request(request) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in __call__(244) current_executor.run_until_future(call_result) /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run_until_future(81) work_item.run() /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run(40) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(90) return callback(request, *args, **kwargs) /app/project/utils/decorators.py in apply_cache(72) cache.set(CACHE_KEY, response.render(), ttl) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_patched_render(41) return old_render(self) /usr/local/lib/python3.11/site-packages/django/template/response.py in render(114) self.content = self.rendered_content /usr/local/lib/python3.11/site-packages/sentry_sdk/utils.py in runner(1788) return sentry_patched_function(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/templates.py in rendered_content(77) return real_rendered_content.fget(self) /usr/local/lib/python3.11/site-packages/django/template/response.py in rendered_content(92) return template.render(context, self._request) /usr/local/lib/python3.11/site-packages/django/template/backends/django.py in render(61) return self.template.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(175) return self._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157) return compiled_parent._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157) return compiled_parent._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(321) return nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1064) output = self.filter_expression.resolve(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in resolve(715) obj = self.var.resolve(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in resolve(847) value = self._resolve_lookup(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in _resolve_lookup(890) current = getattr(current, bit) /app/project/lms_tales/models.py in meta(83) + ", ".join([author.name for author in self.get_course().authors.all()]), /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(37) return original(compiler, *args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(96) return _get_result_or_execute_query( /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in _get_result_or_execute_query(46) data = cache.get_many(table_cache_keys + [cache_key]) |
|||||
0,2517 | get_many | (['e3a5db5a670ad803efb866441f33de58309be2e2', '312c357d2eed306581bb334378808fbccf7019ea', '18fc7e70c46bc13b0743370b4c0573f4f146f69f'],) | {} | <django_redis.cache.RedisCache object at 0x7910e287a790> | |
/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in run(101) return _run_old_run_func() /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in _run_old_run_func(94) return old_run_func(self, *a, **kw) /usr/local/lib/python3.11/concurrent/futures/thread.py in _worker(83) work_item.run() /usr/local/lib/python3.11/concurrent/futures/thread.py in run(58) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56) result = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in middleware(32) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/allauth/account/middleware.py in middleware(36) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/simple_history/middleware.py in middleware(41) return get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/django_htmx/middleware.py in __call__(43) return self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in __call__(168) response = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/panels.py in process_request(41) return super(CachalotPanel, self).process_request(request) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in __call__(244) current_executor.run_until_future(call_result) /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run_until_future(81) work_item.run() /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run(40) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(90) return callback(request, *args, **kwargs) /app/project/utils/decorators.py in apply_cache(72) cache.set(CACHE_KEY, response.render(), ttl) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_patched_render(41) return old_render(self) /usr/local/lib/python3.11/site-packages/django/template/response.py in render(114) self.content = self.rendered_content /usr/local/lib/python3.11/site-packages/sentry_sdk/utils.py in runner(1788) return sentry_patched_function(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/templates.py in rendered_content(77) return real_rendered_content.fget(self) /usr/local/lib/python3.11/site-packages/django/template/response.py in rendered_content(92) return template.render(context, self._request) /usr/local/lib/python3.11/site-packages/django/template/backends/django.py in render(61) return self.template.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(175) return self._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157) return compiled_parent._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157) return compiled_parent._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(321) return nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1064) output = self.filter_expression.resolve(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in resolve(715) obj = self.var.resolve(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in resolve(847) value = self._resolve_lookup(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in _resolve_lookup(890) current = getattr(current, bit) /app/project/lms_tales/models.py in meta(83) + ", ".join([author.name for author in self.get_course().authors.all()]), /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(37) return original(compiler, *args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(96) return _get_result_or_execute_query( /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in _get_result_or_execute_query(46) data = cache.get_many(table_cache_keys + [cache_key]) |
|||||
0,2338 | get_many | (['e3a5db5a670ad803efb866441f33de58309be2e2', '312c357d2eed306581bb334378808fbccf7019ea', '18fc7e70c46bc13b0743370b4c0573f4f146f69f'],) | {} | <django_redis.cache.RedisCache object at 0x7910e287a790> | |
/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in run(101) return _run_old_run_func() /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in _run_old_run_func(94) return old_run_func(self, *a, **kw) /usr/local/lib/python3.11/concurrent/futures/thread.py in _worker(83) work_item.run() /usr/local/lib/python3.11/concurrent/futures/thread.py in run(58) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56) result = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in middleware(32) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/allauth/account/middleware.py in middleware(36) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/simple_history/middleware.py in middleware(41) return get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/django_htmx/middleware.py in __call__(43) return self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in __call__(168) response = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/panels.py in process_request(41) return super(CachalotPanel, self).process_request(request) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in __call__(244) current_executor.run_until_future(call_result) /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run_until_future(81) work_item.run() /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run(40) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(90) return callback(request, *args, **kwargs) /app/project/utils/decorators.py in apply_cache(72) cache.set(CACHE_KEY, response.render(), ttl) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_patched_render(41) return old_render(self) /usr/local/lib/python3.11/site-packages/django/template/response.py in render(114) self.content = self.rendered_content /usr/local/lib/python3.11/site-packages/sentry_sdk/utils.py in runner(1788) return sentry_patched_function(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/templates.py in rendered_content(77) return real_rendered_content.fget(self) /usr/local/lib/python3.11/site-packages/django/template/response.py in rendered_content(92) return template.render(context, self._request) /usr/local/lib/python3.11/site-packages/django/template/backends/django.py in render(61) return self.template.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(175) return self._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157) return compiled_parent._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157) return compiled_parent._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(321) return nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1064) output = self.filter_expression.resolve(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in resolve(715) obj = self.var.resolve(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in resolve(847) value = self._resolve_lookup(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in _resolve_lookup(890) current = getattr(current, bit) /app/project/lms_tales/models.py in meta(83) + ", ".join([author.name for author in self.get_course().authors.all()]), /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(37) return original(compiler, *args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(96) return _get_result_or_execute_query( /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in _get_result_or_execute_query(46) data = cache.get_many(table_cache_keys + [cache_key]) |
|||||
0,2420 | get_many | (['e3a5db5a670ad803efb866441f33de58309be2e2', '312c357d2eed306581bb334378808fbccf7019ea', '18fc7e70c46bc13b0743370b4c0573f4f146f69f'],) | {} | <django_redis.cache.RedisCache object at 0x7910e287a790> | |
/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in run(101) return _run_old_run_func() /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in _run_old_run_func(94) return old_run_func(self, *a, **kw) /usr/local/lib/python3.11/concurrent/futures/thread.py in _worker(83) work_item.run() /usr/local/lib/python3.11/concurrent/futures/thread.py in run(58) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56) result = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in middleware(32) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/allauth/account/middleware.py in middleware(36) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/simple_history/middleware.py in middleware(41) return get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/django_htmx/middleware.py in __call__(43) return self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in __call__(168) response = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/panels.py in process_request(41) return super(CachalotPanel, self).process_request(request) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in __call__(244) current_executor.run_until_future(call_result) /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run_until_future(81) work_item.run() /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run(40) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(90) return callback(request, *args, **kwargs) /app/project/utils/decorators.py in apply_cache(72) cache.set(CACHE_KEY, response.render(), ttl) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_patched_render(41) return old_render(self) /usr/local/lib/python3.11/site-packages/django/template/response.py in render(114) self.content = self.rendered_content /usr/local/lib/python3.11/site-packages/sentry_sdk/utils.py in runner(1788) return sentry_patched_function(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/templates.py in rendered_content(77) return real_rendered_content.fget(self) /usr/local/lib/python3.11/site-packages/django/template/response.py in rendered_content(92) return template.render(context, self._request) /usr/local/lib/python3.11/site-packages/django/template/backends/django.py in render(61) return self.template.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(175) return self._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157) return compiled_parent._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157) return compiled_parent._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(321) return nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1064) output = self.filter_expression.resolve(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in resolve(715) obj = self.var.resolve(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in resolve(847) value = self._resolve_lookup(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in _resolve_lookup(890) current = getattr(current, bit) /app/project/lms_tales/models.py in meta(83) + ", ".join([author.name for author in self.get_course().authors.all()]), /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(37) return original(compiler, *args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(96) return _get_result_or_execute_query( /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in _get_result_or_execute_query(46) data = cache.get_many(table_cache_keys + [cache_key]) |
|||||
0,1995 | get | ('waffle:4.1.0a156ed0e9d07cd12e770c8dca0575feb',) | {} | <django_redis.cache.RedisCache object at 0x7910e287a790> | |
/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in run(101) return _run_old_run_func() /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in _run_old_run_func(94) return old_run_func(self, *a, **kw) /usr/local/lib/python3.11/concurrent/futures/thread.py in _worker(83) work_item.run() /usr/local/lib/python3.11/concurrent/futures/thread.py in run(58) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56) result = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in middleware(32) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/allauth/account/middleware.py in middleware(36) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/simple_history/middleware.py in middleware(41) return get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/django_htmx/middleware.py in __call__(43) return self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in __call__(168) response = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/panels.py in process_request(41) return super(CachalotPanel, self).process_request(request) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in __call__(244) current_executor.run_until_future(call_result) /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run_until_future(81) work_item.run() /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run(40) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(90) return callback(request, *args, **kwargs) /app/project/utils/decorators.py in apply_cache(72) cache.set(CACHE_KEY, response.render(), ttl) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_patched_render(41) return old_render(self) /usr/local/lib/python3.11/site-packages/django/template/response.py in render(114) self.content = self.rendered_content /usr/local/lib/python3.11/site-packages/sentry_sdk/utils.py in runner(1788) return sentry_patched_function(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/templates.py in rendered_content(77) return real_rendered_content.fget(self) /usr/local/lib/python3.11/site-packages/django/template/response.py in rendered_content(92) return template.render(context, self._request) /usr/local/lib/python3.11/site-packages/django/template/backends/django.py in render(61) return self.template.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(175) return self._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157) return compiled_parent._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157) return compiled_parent._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63) result = block.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(208) return template.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(177) return self._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(321) return nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/waffle/templatetags/waffle_tags.py in render(36) if self.condition(context.get('request', None), name): /usr/local/lib/python3.11/site-packages/waffle/__init__.py in flag_is_active(19) flag = get_waffle_flag_model().get(flag_name) /usr/local/lib/python3.11/site-packages/waffle/models.py in get(52) cached = cache.get(cache_key) |
|||||
0,2681 | add | ('waffle:4.1.0a156ed0e9d07cd12e770c8dca0575feb', <Flag: show_login_button>) | {} | <django_redis.cache.RedisCache object at 0x7910e287a790> | |
/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in run(101) return _run_old_run_func() /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in _run_old_run_func(94) return old_run_func(self, *a, **kw) /usr/local/lib/python3.11/concurrent/futures/thread.py in _worker(83) work_item.run() /usr/local/lib/python3.11/concurrent/futures/thread.py in run(58) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56) result = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in middleware(32) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/allauth/account/middleware.py in middleware(36) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/simple_history/middleware.py in middleware(41) return get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/django_htmx/middleware.py in __call__(43) return self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in __call__(168) response = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/panels.py in process_request(41) return super(CachalotPanel, self).process_request(request) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in __call__(244) current_executor.run_until_future(call_result) /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run_until_future(81) work_item.run() /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run(40) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(90) return callback(request, *args, **kwargs) /app/project/utils/decorators.py in apply_cache(72) cache.set(CACHE_KEY, response.render(), ttl) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_patched_render(41) return old_render(self) /usr/local/lib/python3.11/site-packages/django/template/response.py in render(114) self.content = self.rendered_content /usr/local/lib/python3.11/site-packages/sentry_sdk/utils.py in runner(1788) return sentry_patched_function(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/templates.py in rendered_content(77) return real_rendered_content.fget(self) /usr/local/lib/python3.11/site-packages/django/template/response.py in rendered_content(92) return template.render(context, self._request) /usr/local/lib/python3.11/site-packages/django/template/backends/django.py in render(61) return self.template.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(175) return self._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157) return compiled_parent._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157) return compiled_parent._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63) result = block.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(208) return template.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(177) return self._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(321) return nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/waffle/templatetags/waffle_tags.py in render(36) if self.condition(context.get('request', None), name): /usr/local/lib/python3.11/site-packages/waffle/__init__.py in flag_is_active(19) flag = get_waffle_flag_model().get(flag_name) /usr/local/lib/python3.11/site-packages/waffle/models.py in get(64) cache.add(cache_key, obj) |
|||||
0,2771 | get_many | (['e3a5db5a670ad803efb866441f33de58309be2e2', '76e323efd8711853e13c9f7cf976845908364eb2', '8e45b64feee9cf30b30e96460e1ce31dcfbeeeb5'],) | {} | <django_redis.cache.RedisCache object at 0x7910e287a790> | |
/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in run(101) return _run_old_run_func() /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in _run_old_run_func(94) return old_run_func(self, *a, **kw) /usr/local/lib/python3.11/concurrent/futures/thread.py in _worker(83) work_item.run() /usr/local/lib/python3.11/concurrent/futures/thread.py in run(58) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56) result = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in middleware(32) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/allauth/account/middleware.py in middleware(36) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/simple_history/middleware.py in middleware(41) return get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/django_htmx/middleware.py in __call__(43) return self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in __call__(168) response = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/panels.py in process_request(41) return super(CachalotPanel, self).process_request(request) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in __call__(244) current_executor.run_until_future(call_result) /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run_until_future(81) work_item.run() /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run(40) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(90) return callback(request, *args, **kwargs) /app/project/utils/decorators.py in apply_cache(72) cache.set(CACHE_KEY, response.render(), ttl) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_patched_render(41) return old_render(self) /usr/local/lib/python3.11/site-packages/django/template/response.py in render(114) self.content = self.rendered_content /usr/local/lib/python3.11/site-packages/sentry_sdk/utils.py in runner(1788) return sentry_patched_function(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/templates.py in rendered_content(77) return real_rendered_content.fget(self) /usr/local/lib/python3.11/site-packages/django/template/response.py in rendered_content(92) return template.render(context, self._request) /usr/local/lib/python3.11/site-packages/django/template/backends/django.py in render(61) return self.template.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(175) return self._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157) return compiled_parent._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157) return compiled_parent._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63) result = block.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63) result = block.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(208) return template.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(177) return self._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(321) return nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(194) len_values = len(values) /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(37) return original(compiler, *args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(96) return _get_result_or_execute_query( /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in _get_result_or_execute_query(46) data = cache.get_many(table_cache_keys + [cache_key]) |
|||||
0,2913 | set_many | ({'8e45b64feee9cf30b30e96460e1ce31dcfbeeeb5': (1736881791.612821, [[(225, datetime.datetime(2022, 5, 5, 14, 20, 16, 172671, tzinfo=datetime.timezone.utc), datetime.datetime(2022, 5, 5, 14, 25, 13, 631521, tzinfo=datetime.timezone.utc), datetime.datetime(2022, 5, 5, 14, 25, 13, 605572, tzinfo=datetime.timezone.utc), False, 'Introduction on modeling', None, 'Introduction on modeling', None, 'introduction-on-modeling', 0, 'published', 44), (226, datetime.datetime(2022, 5, 5, 14, 20, 41, 654049, tzinfo=datetime.timezone.utc), datetime.datetime(2022, 5, 5, 14, 20, 41, 679212, tzinfo=datetime.timezone.utc), datetime.datetime(2022, 5, 5, 14, 20, 41, 654065, tzinfo=datetime.timezone.utc), False, 'System perspective', None, 'System perspective', None, 'system-perspective', 1, 'published', 44), (227, datetime.datetime(2022, 5, 5, 14, 21, 6, 541202, tzinfo=datetime.timezone.utc), datetime.datetime(2022, 5, 5, 14, 21, 6, 575174, tzinfo=datetime.timezone.utc), datetime.datetime(2022, 5, 5, 14, 21, 6, 541217, tzinfo=datetime.timezone.utc), False, 'Firm perspective', None, 'Firm perspective', None, 'firm-perspective', 2, 'published', 44), (228, datetime.datetime(2022, 5, 5, 14, 21, 27, 785933, tzinfo=datetime.timezone.utc), datetime.datetime(2022, 5, 5, 14, 22, 35, 912334, tzinfo=datetime.timezone.utc), datetime.datetime(2022, 5, 5, 14, 22, 35, 888771, tzinfo=datetime.timezone.utc), False, 'Second-best worlds', None, 'Second-best worlds', None, 'second-best-worlds', 3, 'published', 44), (229, datetime.datetime(2022, 5, 5, 14, 22, 10, 410829, tzinfo=datetime.timezone.utc), datetime.datetime(2022, 5, 5, 14, 22, 10, 437279, tzinfo=datetime.timezone.utc), datetime.datetime(2022, 5, 5, 14, 22, 10, 410843, tzinfo=datetime.timezone.utc), False, 'Putting the pieces together to look into the future', None, 'Putting the pieces together to look into the future', None, 'putting-the-pieces-together-to-look-into-the-future', 4, 'published', 44)]])}, None) | {} | <django_redis.cache.RedisCache object at 0x7910e287a790> | |
/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in run(101) return _run_old_run_func() /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in _run_old_run_func(94) return old_run_func(self, *a, **kw) /usr/local/lib/python3.11/concurrent/futures/thread.py in _worker(83) work_item.run() /usr/local/lib/python3.11/concurrent/futures/thread.py in run(58) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56) result = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in middleware(32) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/allauth/account/middleware.py in middleware(36) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/simple_history/middleware.py in middleware(41) return get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/django_htmx/middleware.py in __call__(43) return self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in __call__(168) response = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/panels.py in process_request(41) return super(CachalotPanel, self).process_request(request) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in __call__(244) current_executor.run_until_future(call_result) /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run_until_future(81) work_item.run() /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run(40) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(90) return callback(request, *args, **kwargs) /app/project/utils/decorators.py in apply_cache(72) cache.set(CACHE_KEY, response.render(), ttl) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_patched_render(41) return old_render(self) /usr/local/lib/python3.11/site-packages/django/template/response.py in render(114) self.content = self.rendered_content /usr/local/lib/python3.11/site-packages/sentry_sdk/utils.py in runner(1788) return sentry_patched_function(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/templates.py in rendered_content(77) return real_rendered_content.fget(self) /usr/local/lib/python3.11/site-packages/django/template/response.py in rendered_content(92) return template.render(context, self._request) /usr/local/lib/python3.11/site-packages/django/template/backends/django.py in render(61) return self.template.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(175) return self._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157) return compiled_parent._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157) return compiled_parent._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63) result = block.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63) result = block.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(208) return template.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(177) return self._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(321) return nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(194) len_values = len(values) /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(37) return original(compiler, *args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(96) return _get_result_or_execute_query( /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in _get_result_or_execute_query(71) cache.set_many(to_be_set, cachalot_settings.CACHALOT_TIMEOUT) |
|||||
0,5392 | get_many | (['e3a5db5a670ad803efb866441f33de58309be2e2', '76e323efd8711853e13c9f7cf976845908364eb2', '138549f5508bbba7283d6a0625e51c589d845e8f', 'b4863ff98fd65b2c3bca1c401183fd26f23a67c5'],) | {} | <django_redis.cache.RedisCache object at 0x7910e287a790> | |
/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in run(101) return _run_old_run_func() /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in _run_old_run_func(94) return old_run_func(self, *a, **kw) /usr/local/lib/python3.11/concurrent/futures/thread.py in _worker(83) work_item.run() /usr/local/lib/python3.11/concurrent/futures/thread.py in run(58) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56) result = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in middleware(32) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/allauth/account/middleware.py in middleware(36) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/simple_history/middleware.py in middleware(41) return get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/django_htmx/middleware.py in __call__(43) return self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in __call__(168) response = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/panels.py in process_request(41) return super(CachalotPanel, self).process_request(request) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in __call__(244) current_executor.run_until_future(call_result) /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run_until_future(81) work_item.run() /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run(40) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(90) return callback(request, *args, **kwargs) /app/project/utils/decorators.py in apply_cache(72) cache.set(CACHE_KEY, response.render(), ttl) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_patched_render(41) return old_render(self) /usr/local/lib/python3.11/site-packages/django/template/response.py in render(114) self.content = self.rendered_content /usr/local/lib/python3.11/site-packages/sentry_sdk/utils.py in runner(1788) return sentry_patched_function(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/templates.py in rendered_content(77) return real_rendered_content.fget(self) /usr/local/lib/python3.11/site-packages/django/template/response.py in rendered_content(92) return template.render(context, self._request) /usr/local/lib/python3.11/site-packages/django/template/backends/django.py in render(61) return self.template.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(175) return self._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157) return compiled_parent._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157) return compiled_parent._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63) result = block.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63) result = block.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(208) return template.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(177) return self._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(321) return nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(238) nodelist.append(node.render_annotated(context)) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(194) len_values = len(values) /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(37) return original(compiler, *args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(96) return _get_result_or_execute_query( /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in _get_result_or_execute_query(46) data = cache.get_many(table_cache_keys + [cache_key]) |
|||||
1,0981 | set_many | ({'b4863ff98fd65b2c3bca1c401183fd26f23a67c5': (1736881791.6213808, [[(1246, datetime.datetime(2022, 5, 5, 14, 39, 34, 706633, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 12, 27, 48, 931296, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 12, 27, 48, 883555, tzinfo=datetime.timezone.utc), False, 'Why do we need economic models?', None, 'Why do we need economic models?', None, '', None, None, None, 'Is our energy future sunny and windy or do we go on burning fossil fuels? Watch Frank Krysiak and Hannes Weigt explaining the need for modeling.', None, 'Is our energy future sunny and windy or do we go on burning fossil fuels? Watch Frank Krysiak and Hannes Weigt explaining the need for modeling.', None, 'exploring-possible-futures/introduction-on-modeling/why-do-we-need-economic-models/013_aXeLHzG.jpg', 'why-do-we-need-economic-models', 'In this course, you will explore how our environmental and energy economic models can be used to answer questions raised by environmental and energy policy.\r\n{.lead}\r\n\r\n![embed](https://vimeo.com/734309923/532e630d7c)\r\n\r\nWe will show you how to transfer a question to a model, solve the model, and interpret the results. Energy markets are currently facing significant changes and challenges all around the world. Models can help us to better understand and evaluate those developments.', '', 'In this course, you will explore how our environmental and energy economic models can be used to answer questions raised by environmental and energy policy.\r\n{.lead}\r\n\r\n![embed](https://vimeo.com/734309923/532e630d7c)\r\n\r\nWe will show you how to transfer a question to a model, solve the model, and interpret the results. Energy markets are currently facing significant changes and challenges all around the world. Models can help us to better understand and evaluate those developments.', '', '', '', '', '', None, None, None, None, '', '', '', '', 'TV', '', 0, 'published', False, None, None, None, None, 225), (1247, datetime.datetime(2022, 5, 5, 14, 39, 46, 534801, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 12, 32, 7, 36929, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 12, 32, 6, 985372, tzinfo=datetime.timezone.utc), False, 'Reflection: What about you?', None, 'Reflection: What about you?', None, '', None, None, None, 'Reflect your perspective on environmental and energy models as tools to explore possible futures.', None, 'Reflect your perspective on environmental and energy models as tools to explore possible futures.', None, '', 'reflection-what-about-you', 'Environmental and energy economic models are used to address very diverse questions and range from rather simple to highly sophisticated approaches.\r\n{.lead}\r\n\r\n\r\nWhere would you see possible applications in your work or education, and what prior experience (if any) do you have with (economic) modelling?\r\n\r\nDo you agree that mathematical models are a good tool to explore possible futures?\r\n\r\nTake time to consider these questions. We suggest that you make a note of your answers. This way you can come back to them during the course and think about whether you would answer differently at a later point. This also makes your learning progress evident.', '', 'Environmental and energy economic models are used to address very diverse questions and range from rather simple to highly sophisticated approaches.\r\n{.lead}\r\n\r\n\r\nWhere would you see possible applications in your work or education, and what prior experience (if any) do you have with (economic) modelling?\r\n\r\nDo you agree that mathematical models are a good tool to explore possible futures?\r\n\r\nTake time to consider these questions. We suggest that you make a note of your answers. This way you can come back to them during the course and think about whether you would answer differently at a later point. This also makes your learning progress evident.', '', '', '', '', '', None, None, None, None, '', '', '', '', 'TT', '', 1, 'published', True, 'Please share your answers to these questions and your thoughts in the [comments](#comments) section below.', None, 'Please share your answers to these questions and your thoughts in the [comments](#comments) section below.', None, 225), (1248, datetime.datetime(2022, 5, 5, 14, 40, 21, 200830, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 12, 33, 23, 924567, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 12, 33, 23, 838609, tzinfo=datetime.timezone.utc), False, 'What are economic models?', None, 'What are economic models?', None, '', None, None, None, 'Get a good overview of what economic modeling comprises. Watch Frank Krysiak explaining different types of models and why modeling is necessary.', None, 'Get a good overview of what economic modeling comprises. Watch Frank Krysiak explaining different types of models and why modeling is necessary.', None, '', 'what-are-economic-models', 'A model is a simplified depiction of a part of the real world. Such a depiction is always useful, if we want to test a new idea but not in the real world. All models are used to answer specific questions in cases where we cannot infer the answer from directly observing what happens in reality.\r\n{.lead}\r\n\r\n![embed](https://vimeo.com/734309480/63ab50deaa)\r\n\r\nIn economics, models consist of mathematical equations. Such equations describe how a part of our reality works in a simplified yet consistent way. We use these models to show how climate policy induces technological change or what economic consequences a transition to a renewable energy system might have.\r\n\r\nA model does not need to describe all aspects of reality, rather it has to be fit for purpose. Furthermore, it should be internally consistent and we need to show that it is both credible and that its results are robust.', '', 'A model is a simplified depiction of a part of the real world. Such a depiction is always useful, if we want to test a new idea but not in the real world. All models are used to answer specific questions in cases where we cannot infer the answer from directly observing what happens in reality.\r\n{.lead}\r\n\r\n![embed](https://vimeo.com/734309480/63ab50deaa)\r\n\r\nIn economics, models consist of mathematical equations. Such equations describe how a part of our reality works in a simplified yet consistent way. We use these models to show how climate policy induces technological change or what economic consequences a transition to a renewable energy system might have.\r\n\r\nA model does not need to describe all aspects of reality, rather it has to be fit for purpose. Furthermore, it should be internally consistent and we need to show that it is both credible and that its results are robust.', '', '', '', '', '', None, None, None, None, '', '', '', '', 'TV', '', 2, 'published', False, None, None, None, None, 225), (1249, datetime.datetime(2022, 5, 5, 14, 40, 32, 634059, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 12, 34, 55, 770585, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 12, 34, 55, 722178, tzinfo=datetime.timezone.utc), False, 'What do scientists think about economic modelling?', None, 'What do scientists think about economic modelling?', None, '', None, None, None, 'Gibbard & Varian, two well-known scientists, state their opinion about economic modeling. In this article, Frank Krysiak explains the two views.', None, 'Gibbard & Varian, two well-known scientists, state their opinion about economic modeling. In this article, Frank Krysiak explains the two views.', None, '', 'what-do-scientists-think-about-economic-modelling', "Similar to models used in physics or engineering, economic models are formal models. However, they cannot be easily tested and improved in experiments and thus often have limited power for making quantitative predictions. There has been a long scientific debate about what economic models are and for what purposes they are useful. \r\n{.lead}\r\n\r\n\r\n\r\n![Gibbard and Varian](/media/markdownx/5175fc69-ce9c-4848-96a2-703273912800.png)\r\n\r\n---\r\n\r\n#Models as stories with a structure \r\n\r\nGibbard and Varian (1978) have made an important contribution to this debate. They explain that:\r\n\r\n<br>\r\n\r\n>A [theoretical] model […] is a story with a specified structure. […] The structure is given by the logical and mathematical form of a set of postulates, the assumptions of the model. […] The theorems that follow from the postulates tell us things about the structure that may not be apparent from an examination of the postulates alone. Although the term 'model' is often applied to a structure alone, we shall use it in another sense. In economists' use of models, there is always an element of interpretation: the model always tells a story. (p. 666)\r\n\r\nThus, in their view, economic models are a combination of formal work (deriving results from equations) and a story that interprets these results and relates them to the actual world. \r\n\r\nA somewhat surprising element of their view is that the application of the model to the real world can be done in a rather casual way. Furthermore models are often only approximations:\r\n\r\n<br>\r\n\r\n>Much of economic theorizing consists not of an overt search for economic laws, not of forming explicit hypotheses about situations and testing them, but of investigating economic models. [...] The hypothesis may be that the conclusions of an applied model are approximately true, and that that is because its assumptions are sufficiently close to the truth. (p. 676).\r\n\r\n\r\n\r\n![Sugden](/media/markdownx/355ad9f9-8044-4ec7-a3bd-589e268210d6.png)\r\n\r\n---\r\n\r\n#Modeling credible worlds \r\n\r\nSugden (2000) uses this as a starting point and asks why we should believe that a model is indeed a good approximation if we cannot ensure this by using controlled experiments. \r\n\r\nHe uses two examples to highlight Gibbard and Varian’s view of modeling but then states that:\r\n\r\n<br>\r\n\r\n>[...] Gibbard and Varian have disappointingly little to say about how a casual model explains an aspect of the real world, or how it allows us to investigate the likely effects of real world factors on real world phenomena. (p. 13)\r\n\r\nSugden then argues that for applying economic models to reality, we often need an 'inductive leap': in our model some result X is caused by some economic mechanism Y. We observe that X holds in some cases in reality and thus – using an inductive step – conclude that the mechanism Y is at work in the real world. As the last step is not a logical conclusion (we cannot go from the specific to the general using only logic), we need to justify it. \r\n\r\nSugden provides several ways for such a justification. Among them is **robustness**. If a result is robust (it holds not only for some specific assumptions, but in a wide range of settings), it is obviously much easier to argue that this result is likely to hold in reality. \r\n\r\nHowever, robustness does not suffice. In addition, we need to be convinced that the model used to derive the result is **credible**, in the following sense:\r\n\r\n<br>\r\n\r\n>Credibility in models is, I think, rather like credibility in ‘realistic’ novels. In a realistic novel, the characters and locations are imaginary, but the author has to convince us that they are credible – that there could be people and places like those in the novel. As events occur in the novel, we should have the sense that these are natural outcomes of the way the characters think and behave, and of the way the world works. We judge the author to have failed if we find a person acting out of character […]. But we do not demand that the events of the novel did happen, or even that they are simplified representations of what really happened. \r\n[…] \r\nFor a model to have credibility, it is not enough that its assumptions cohere with one another; they must also cohere with what is known about causal processes in the real world. (pp. 25–26)\r\n\r\nThus in Sugden’s view, models need to be a credible description of the real world.\r\n\r\n<br>\r\n\r\n#Conclusion\r\nSumming up, economic models are neither accurate descriptions of the real world nor are they purely formal exercises without any link to the world we live in. Economic models are used to tell consistent stories in a model world that is a simplified but credible description of our real world. This is what makes them so useful for exploring possible futures.\r\n\r\n<br>\r\n\r\nReferences\r\n{.footnote-title}\r\n\r\nGibbard, A. & Varian H. R. (1978). [Economic Models](http://www.jstor.org/stable/2025484?seq=1#page_scan_tab_contents){:target=“_blank”}. The Journal of Philosophy, 75(11), pp. 664-677.\r\n{.citation-indented}\r\n\r\nSugden, R. (2000). [Credible worlds: the status of theoretical models in economics](http://www.tandfonline.com/doi/abs/10.1080/135017800362220){:target=“_blank”}. Journal of Economic Methodology, 7(1), pp. 1-31.\r\n{.citation-indented}", '', "Similar to models used in physics or engineering, economic models are formal models. However, they cannot be easily tested and improved in experiments and thus often have limited power for making quantitative predictions. There has been a long scientific debate about what economic models are and for what purposes they are useful. \r\n{.lead}\r\n\r\n\r\n\r\n![Gibbard and Varian](/media/markdownx/5175fc69-ce9c-4848-96a2-703273912800.png)\r\n\r\n---\r\n\r\n#Models as stories with a structure \r\n\r\nGibbard and Varian (1978) have made an important contribution to this debate. They explain that:\r\n\r\n<br>\r\n\r\n>A [theoretical] model […] is a story with a specified structure. […] The structure is given by the logical and mathematical form of a set of postulates, the assumptions of the model. […] The theorems that follow from the postulates tell us things about the structure that may not be apparent from an examination of the postulates alone. Although the term 'model' is often applied to a structure alone, we shall use it in another sense. In economists' use of models, there is always an element of interpretation: the model always tells a story. (p. 666)\r\n\r\nThus, in their view, economic models are a combination of formal work (deriving results from equations) and a story that interprets these results and relates them to the actual world. \r\n\r\nA somewhat surprising element of their view is that the application of the model to the real world can be done in a rather casual way. Furthermore models are often only approximations:\r\n\r\n<br>\r\n\r\n>Much of economic theorizing consists not of an overt search for economic laws, not of forming explicit hypotheses about situations and testing them, but of investigating economic models. [...] The hypothesis may be that the conclusions of an applied model are approximately true, and that that is because its assumptions are sufficiently close to the truth. (p. 676).\r\n\r\n\r\n\r\n![Sugden](/media/markdownx/355ad9f9-8044-4ec7-a3bd-589e268210d6.png)\r\n\r\n---\r\n\r\n#Modeling credible worlds \r\n\r\nSugden (2000) uses this as a starting point and asks why we should believe that a model is indeed a good approximation if we cannot ensure this by using controlled experiments. \r\n\r\nHe uses two examples to highlight Gibbard and Varian’s view of modeling but then states that:\r\n\r\n<br>\r\n\r\n>[...] Gibbard and Varian have disappointingly little to say about how a casual model explains an aspect of the real world, or how it allows us to investigate the likely effects of real world factors on real world phenomena. (p. 13)\r\n\r\nSugden then argues that for applying economic models to reality, we often need an 'inductive leap': in our model some result X is caused by some economic mechanism Y. We observe that X holds in some cases in reality and thus – using an inductive step – conclude that the mechanism Y is at work in the real world. As the last step is not a logical conclusion (we cannot go from the specific to the general using only logic), we need to justify it. \r\n\r\nSugden provides several ways for such a justification. Among them is **robustness**. If a result is robust (it holds not only for some specific assumptions, but in a wide range of settings), it is obviously much easier to argue that this result is likely to hold in reality. \r\n\r\nHowever, robustness does not suffice. In addition, we need to be convinced that the model used to derive the result is **credible**, in the following sense:\r\n\r\n<br>\r\n\r\n>Credibility in models is, I think, rather like credibility in ‘realistic’ novels. In a realistic novel, the characters and locations are imaginary, but the author has to convince us that they are credible – that there could be people and places like those in the novel. As events occur in the novel, we should have the sense that these are natural outcomes of the way the characters think and behave, and of the way the world works. We judge the author to have failed if we find a person acting out of character […]. But we do not demand that the events of the novel did happen, or even that they are simplified representations of what really happened. \r\n[…] \r\nFor a model to have credibility, it is not enough that its assumptions cohere with one another; they must also cohere with what is known about causal processes in the real world. (pp. 25–26)\r\n\r\nThus in Sugden’s view, models need to be a credible description of the real world.\r\n\r\n<br>\r\n\r\n#Conclusion\r\nSumming up, economic models are neither accurate descriptions of the real world nor are they purely formal exercises without any link to the world we live in. Economic models are used to tell consistent stories in a model world that is a simplified but credible description of our real world. This is what makes them so useful for exploring possible futures.\r\n\r\n<br>\r\n\r\nReferences\r\n{.footnote-title}\r\n\r\nGibbard, A. & Varian H. R. (1978). [Economic Models](http://www.jstor.org/stable/2025484?seq=1#page_scan_tab_contents){:target=“_blank”}. The Journal of Philosophy, 75(11), pp. 664-677.\r\n{.citation-indented}\r\n\r\nSugden, R. (2000). [Credible worlds: the status of theoretical models in economics](http://www.tandfonline.com/doi/abs/10.1080/135017800362220){:target=“_blank”}. Journal of Economic Methodology, 7(1), pp. 1-31.\r\n{.citation-indented}", '', '', '', '', '', None, None, None, None, '', '', '', '', 'TT', '', 3, 'published', False, None, None, None, None, 225), (1250, datetime.datetime(2022, 5, 5, 14, 40, 47, 720460, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 12, 38, 5, 630363, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 12, 38, 5, 578768, tzinfo=datetime.timezone.utc), False, 'Reflection: Making economic models useful', None, 'Reflection: Making economic models useful', None, '', None, None, None, 'Reflect on how to make economic models useful.', None, 'Reflect on how to make economic models useful.', None, '', 'reflection-making-economic-models-useful', 'In the preceding step, you have seen arguments from economists regarding what is necessary to make economic models useful.\r\n{.lead}\r\n\r\n\r\nWhat would in your opinion be necessary to make economic models useful? Under which conditions would you rely on the insights gained from an economic model to make important decisions?\r\n\r\nReflect on these questions. We suggest that you write down your answers in a short paragraph.', '', 'In the preceding step, you have seen arguments from economists regarding what is necessary to make economic models useful.\r\n{.lead}\r\n\r\n\r\nWhat would in your opinion be necessary to make economic models useful? Under which conditions would you rely on the insights gained from an economic model to make important decisions?\r\n\r\nReflect on these questions. We suggest that you write down your answers in a short paragraph.', '', '', '', '', '', None, None, None, None, '', '', '', '', 'TT', '', 4, 'published', True, 'Feel free to give your answers to the questions above in the discussion [section](#comments) below and exchange your thoughts with other learners.', None, 'Feel free to give your answers to the questions above in the discussion [section](#comments) below and exchange your thoughts with other learners.', None, 225), (1251, datetime.datetime(2022, 5, 5, 14, 40, 59, 109546, tzinfo=datetime.timezone.utc), datetime.datetime(2025, 1, 9, 12, 38, 55, 817022, tzinfo=datetime.timezone.utc), datetime.datetime(2025, 1, 9, 12, 38, 55, 758592, tzinfo=datetime.timezone.utc), False, 'Modelling structure and how this course works', None, 'Modelling structure and how this course works', None, '', None, None, None, 'In this article, Frank Krysiak and Hannes Weigt explain the four main phases along which modeling can be structured.', None, 'In this article, Frank Krysiak and Hannes Weigt explain the four main phases along which modeling can be structured.', None, '', 'modelling-structure-and-how-this-course-works', "Modelling can be structured into four main phases: \r\n{.lead}\r\n\r\n![modelling phases: problem](/media/markdownx/5715386d-4b48-445c-a597-198cd0ffe0c1.png)\r\n\r\n###1. First, we have to understand our *problem*. \r\n\r\nWhat question do we want to answer? Do we want to analyse an argument or a real world setting? What economic mechanisms may be important in our answer? What kind of results do we expect our model to yield? \r\n\r\n---\r\n![modeling phases: model](/media/markdownx/6fc46661-1e97-4d7d-a829-844f204c9425.png)\r\n\r\n###2. Second, we have to build the *model.* \r\n\r\nTo this end, we have to transfer our problem into a formal structure by combining different model parts, so-called 'building blocks'. We have to decide what has to be included in our model and how to include it. Furthermore, we have to be able to show that our model is a credible description of the problem at hand. \r\n\r\n---\r\n![modelling phases: solution](/media/markdownx/954b2559-c00c-4aeb-98b9-184f3b3f7750.png)\r\n\r\n###3. Third, we need to *solve* our model. \r\n\r\nWe have to use our model equations to get results that answer our questions. We have to find necessary data if we want to evaluate a real world setting. Furthermore, we have to check whether our results are robust. \r\n\r\n---\r\n![modelling phases: interpretation](/media/markdownx/5dbb759e-7161-4d4b-ae12-f26208492423.png)\r\n\r\n\r\n###4. Finally, we have to *interpret* the results and use the insights gained in the model to make an argument. \r\n\r\nIn particular, we have to discuss why and to what extent our results can be transferred to reality and what implications they might have. Thus we embed our model in a 'story'. \r\n\r\n---\r\n \r\n\r\n\r\nIt is important to note that in most cases, we cannot simply go through these phases step-by-step. Rather, we usually have to go back and forth until we have found the right model that yields interesting results that help us to answer our questions.\r\n \r\nMost importantly, we will often iterate between **phase 1 and 2** and between **phase 2 and 3**. The first iteration is useful, because by modelling a situation, we get to know it better and thus might want to adjust our original question or include new promising economic mechanisms. The second iteration is necessary, because not all models can be solved. We often have to make our first modelling attempts simpler to get a solution or we have to make them more complex to get a solution that is actually interesting.\r\n\r\n<br>\r\n\r\n#Course structure\r\nThis course is mostly structured with the above pathway of building a model in the back. In the **first chapter**, we have already discussed what economic models are and what we have to consider when building models so that our models are indeed useful. In the next steps of this chapter we will have a very first look at the basics of modelling.\r\n\r\nIn the **second chapter**, we will continue to familiarise ourselves with basic modelling concepts using a system perspective. This will cover phase 1 and 2 and introduce a simple toolbox to integrate numerous technical details into your models.\r\n \r\nIn the **third chapter**, we will extend our modelling knowledge by moving towards the company perspective and introduce the necessary building blocks for designing and understanding models for answering questions from environmental and energy economics. Thus we will again cover the first two phases but also have a closer look at the solution phase.\r\n \r\nIn the **fourth chapter**, we will explain how our models need to be adjusted to account for the complexities of real world markets by leaving our theoretic first-best world. Here phase 3 will become a crucial and often limiting element of our model design.\r\n \r\nFinally, we will use the **last chapter** of the course to put those model elements together and have a look at possible energy futures and discuss your and our visions. And we will return to the four modelling phases by adding the last phase to our cycle and learning how to check model results for robustness and how to embed them in a storyline.\r\n\r\nIn **all chapters** you will have the chance to explore the different modelling steps with simple interactive exercises that explain the needed model elements and already help you to explore different aspects of energy systems and environmental policy tools. You can access these interactive exercises and modelling simulations via a link. The exercises will then open in a new window. To be able to keep your solutions, you should take a screenshot of each of them. \r\n\r\n<br>\r\n\r\n# Additional learning resources\r\nDuring this course, you will benefit strongly from participating in the model exercises and by reading some papers that use environmental or energy economic models.\r\n\r\n<br>\r\n\r\n#Literature\r\nFor **environmental economic modelling** work, a good starting point is to look at the papers and the working papers listed under this topic in [RePEc](https://ideas.repec.org/j/Q5.html){:target=“_blank”}. Papers that can be accessed free of charge have a green download symbol. Look for interesting titles and then see whether the paper uses a formal model. In addition, you might look at the work of some environmental economists that use models similar to the ones taught in this course, such as [Michael Hoel](https://ideas.repec.org/f/pho549.html#articles){:target=“_blank”}, [Martin Weitzman](https://ideas.repec.org/e/pwe175.html#articles){:target=“_blank”}, [Carolyn Fischer](https://ideas.repec.org/e/pfi105.html#articles){:target=“_blank”}, [Scott Taylor](https://ideas.repec.org/e/pta60.html#articles){:target=“_blank”} or [Till Requate](https://ideas.repec.org/f/pre270.html#papers){:target=“_blank”}. Again, a green download symbol shows papers that you can directly access.\r\n \r\nFor **numerical modelling** in energy economics, a good starting point is the respective working paper series on [RePEc](https://ideas.repec.org/n/nep-ene/){:target=“_blank”}, with the possibility to subscribe in order to get a monthly update, or the subject matter listings on SSRN: [Politics & Energy eJournal](http://www.ssrn.com/link/Politics-Energy.html){:target=“_blank”} and [Renewable Energy eJournal](http://www.ssrn.com/link/Renewable-Energy.html){:target=“_blank”}. Those working papers are free access publications. Naturally, not all of those publications will include models.\r\n \r\nIf you want to get more familiar with **different energy models** you can also visit the [wiki](http://wiki.openmod-initiative.org){:target=“_blank”} of the openmod initiative. They provide an overview on different models that are at least partly accessible. Furthermore, they also provide information on how to obtain energy data. Similarly, the [Simulation Lab of the Swiss Competence Center for Research in Energy, Society and Transition](https://www.simlab.ethz.ch/index.html){:target=“_blank”} provides an overview on the different energy models used for socio-economic energy research in Switzerland.\r\n\r\n<br>\r\n\r\n#Software\r\nFinally, we would like to mention that you might benefit from using scientific software for exploring your model knowledge and building your very own models. **Theoretical models** can be done just using pen and paper, but using tools such as [Mathematica](https://www.wolfram.com/mathematica/){:target=“_blank”} or [Maple](http://www.maplesoft.com/products/maple/){:target=“_blank”} might reduce the time spent on calculations (if you already have some experience with these software packages). For designing **numerical models**, you could use scientific software, such as [GAMS](http://www.gams.com/){:target=“_blank”} or [Matlab](http://www.mathworks.com/?nocookie=true){:target=“_blank”}. However, often spreadsheet software (like Excel) is sufficient and the model development will also only require pen and paper.\r\n \r\nFor most scientific software packages, test or student versions are offered at no or strongly reduced costs, so it might be useful to have a look at these tools.\r\n\r\nBy following the above links you will be taken to third party websites. On these websites you might be asked to submit some information about yourself. Please make sure you are familiar with the terms and conditions and privacy policy of the third party websites before submitting your information. For the purposes of any personal information submitted to the respective third party website, you will be the data controller, not the University of Basel.", '', "Modelling can be structured into four main phases: \r\n{.lead}\r\n\r\n![modelling phases: problem](/media/markdownx/5715386d-4b48-445c-a597-198cd0ffe0c1.png)\r\n\r\n###1. First, we have to understand our *problem*. \r\n\r\nWhat question do we want to answer? Do we want to analyse an argument or a real world setting? What economic mechanisms may be important in our answer? What kind of results do we expect our model to yield? \r\n\r\n---\r\n![modeling phases: model](/media/markdownx/6fc46661-1e97-4d7d-a829-844f204c9425.png)\r\n\r\n###2. Second, we have to build the *model.* \r\n\r\nTo this end, we have to transfer our problem into a formal structure by combining different model parts, so-called 'building blocks'. We have to decide what has to be included in our model and how to include it. Furthermore, we have to be able to show that our model is a credible description of the problem at hand. \r\n\r\n---\r\n![modelling phases: solution](/media/markdownx/954b2559-c00c-4aeb-98b9-184f3b3f7750.png)\r\n\r\n###3. Third, we need to *solve* our model. \r\n\r\nWe have to use our model equations to get results that answer our questions. We have to find necessary data if we want to evaluate a real world setting. Furthermore, we have to check whether our results are robust. \r\n\r\n---\r\n![modelling phases: interpretation](/media/markdownx/5dbb759e-7161-4d4b-ae12-f26208492423.png)\r\n\r\n\r\n###4. Finally, we have to *interpret* the results and use the insights gained in the model to make an argument. \r\n\r\nIn particular, we have to discuss why and to what extent our results can be transferred to reality and what implications they might have. Thus we embed our model in a 'story'. \r\n\r\n---\r\n \r\n\r\n\r\nIt is important to note that in most cases, we cannot simply go through these phases step-by-step. Rather, we usually have to go back and forth until we have found the right model that yields interesting results that help us to answer our questions.\r\n \r\nMost importantly, we will often iterate between **phase 1 and 2** and between **phase 2 and 3**. The first iteration is useful, because by modelling a situation, we get to know it better and thus might want to adjust our original question or include new promising economic mechanisms. The second iteration is necessary, because not all models can be solved. We often have to make our first modelling attempts simpler to get a solution or we have to make them more complex to get a solution that is actually interesting.\r\n\r\n<br>\r\n\r\n#Course structure\r\nThis course is mostly structured with the above pathway of building a model in the back. In the **first chapter**, we have already discussed what economic models are and what we have to consider when building models so that our models are indeed useful. In the next steps of this chapter we will have a very first look at the basics of modelling.\r\n\r\nIn the **second chapter**, we will continue to familiarise ourselves with basic modelling concepts using a system perspective. This will cover phase 1 and 2 and introduce a simple toolbox to integrate numerous technical details into your models.\r\n \r\nIn the **third chapter**, we will extend our modelling knowledge by moving towards the company perspective and introduce the necessary building blocks for designing and understanding models for answering questions from environmental and energy economics. Thus we will again cover the first two phases but also have a closer look at the solution phase.\r\n \r\nIn the **fourth chapter**, we will explain how our models need to be adjusted to account for the complexities of real world markets by leaving our theoretic first-best world. Here phase 3 will become a crucial and often limiting element of our model design.\r\n \r\nFinally, we will use the **last chapter** of the course to put those model elements together and have a look at possible energy futures and discuss your and our visions. And we will return to the four modelling phases by adding the last phase to our cycle and learning how to check model results for robustness and how to embed them in a storyline.\r\n\r\nIn **all chapters** you will have the chance to explore the different modelling steps with simple interactive exercises that explain the needed model elements and already help you to explore different aspects of energy systems and environmental policy tools. You can access these interactive exercises and modelling simulations via a link. The exercises will then open in a new window. To be able to keep your solutions, you should take a screenshot of each of them. \r\n\r\n<br>\r\n\r\n# Additional learning resources\r\nDuring this course, you will benefit strongly from participating in the model exercises and by reading some papers that use environmental or energy economic models.\r\n\r\n<br>\r\n\r\n#Literature\r\nFor **environmental economic modelling** work, a good starting point is to look at the papers and the working papers listed under this topic in [RePEc](https://ideas.repec.org/j/Q5.html){:target=“_blank”}. Papers that can be accessed free of charge have a green download symbol. Look for interesting titles and then see whether the paper uses a formal model. In addition, you might look at the work of some environmental economists that use models similar to the ones taught in this course, such as [Michael Hoel](https://ideas.repec.org/f/pho549.html#articles){:target=“_blank”}, [Martin Weitzman](https://ideas.repec.org/e/pwe175.html#articles){:target=“_blank”}, [Carolyn Fischer](https://ideas.repec.org/e/pfi105.html#articles){:target=“_blank”}, [Scott Taylor](https://ideas.repec.org/e/pta60.html#articles){:target=“_blank”} or [Till Requate](https://ideas.repec.org/f/pre270.html#papers){:target=“_blank”}. Again, a green download symbol shows papers that you can directly access.\r\n \r\nFor **numerical modelling** in energy economics, a good starting point is the respective working paper series on [RePEc](https://ideas.repec.org/n/nep-ene/){:target=“_blank”}, with the possibility to subscribe in order to get a monthly update, or the subject matter listings on SSRN: [Politics & Energy eJournal](http://www.ssrn.com/link/Politics-Energy.html){:target=“_blank”} and [Renewable Energy eJournal](http://www.ssrn.com/link/Renewable-Energy.html){:target=“_blank”}. Those working papers are free access publications. Naturally, not all of those publications will include models.\r\n \r\nIf you want to get more familiar with **different energy models** you can also visit the [wiki](http://wiki.openmod-initiative.org){:target=“_blank”} of the openmod initiative. They provide an overview on different models that are at least partly accessible. Furthermore, they also provide information on how to obtain energy data. Similarly, the [Simulation Lab of the Swiss Competence Center for Research in Energy, Society and Transition](https://www.simlab.ethz.ch/index.html){:target=“_blank”} provides an overview on the different energy models used for socio-economic energy research in Switzerland.\r\n\r\n<br>\r\n\r\n#Software\r\nFinally, we would like to mention that you might benefit from using scientific software for exploring your model knowledge and building your very own models. **Theoretical models** can be done just using pen and paper, but using tools such as [Mathematica](https://www.wolfram.com/mathematica/){:target=“_blank”} or [Maple](http://www.maplesoft.com/products/maple/){:target=“_blank”} might reduce the time spent on calculations (if you already have some experience with these software packages). For designing **numerical models**, you could use scientific software, such as [GAMS](http://www.gams.com/){:target=“_blank”} or [Matlab](http://www.mathworks.com/?nocookie=true){:target=“_blank”}. However, often spreadsheet software (like Excel) is sufficient and the model development will also only require pen and paper.\r\n \r\nFor most scientific software packages, test or student versions are offered at no or strongly reduced costs, so it might be useful to have a look at these tools.\r\n\r\nBy following the above links you will be taken to third party websites. On these websites you might be asked to submit some information about yourself. Please make sure you are familiar with the terms and conditions and privacy policy of the third party websites before submitting your information. For the purposes of any personal information submitted to the respective third party website, you will be the data controller, not the University of Basel.", '', '', '', '', '', None, None, None, None, '', '', '', '', 'TT', '', 5, 'published', False, None, None, None, None, 225), (1252, datetime.datetime(2022, 5, 5, 14, 41, 10, 187087, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 12, 40, 1, 785693, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 12, 40, 1, 732831, tzinfo=datetime.timezone.utc), False, 'Models used in energy and environmental economics', None, 'Models used in energy and environmental economics', None, '', None, None, None, 'In this article, Hannes Weigt provides a short overview on the different model types used in energy and environmental economics.', None, 'In this article, Hannes Weigt provides a short overview on the different model types used in energy and environmental economics.', None, '', 'models-used-in-energy-and-environmental-economics', 'In economics we can generally differentiate *three types* of models for different purposes.\r\n{.lead}\r\n\r\n\r\n![First](/media/markdownx/b3d23882-2f35-4ceb-a10f-b26d7a2b021f.png)\r\n\r\nFirst, we have **explanatory models**. These models are used to make an argument. Such models are usually theoretical models. That is, they are not fully quantified. Their purpose is to make consistent arguments. For example, what consequences different climate policies might have for technological change. They do not give quantified results, but rather aim at capturing economic mechanisms.\r\n\r\n---\r\n\r\n![Second](/media/markdownx/54787407-b20a-48c8-9c8c-b9feb2ff5430.png)\r\n\r\nSecond, we have **simulation models**. These models are used to describe plausible scenarios; for example, different pathways towards a renewable energy system or a low carbon society. These models are usually based on simpler economic mechanisms than explanatory models. But they are calibrated so that they yield quantitative insights. Their purpose is to provide a detailed picture of future developments. But, they only show what is possible. They do not make predictions.\r\n\r\n---\r\n\r\n![third](/media/markdownx/7d4399f5-7090-4113-aa9f-8aed70bb57ba.png)\r\n\r\nFinally, we have **prediction models**. They are usually econometric models, often with some theoretical model in the background. However, modelling approaches similar to the ones for simulation models can be used as well. Their purpose is to predict future developments or the results of policy measures. As this is rather demanding, most models focus on short run predictions and are thus of limited use to most topics relevant in environmental and energy economics.\r\n\r\n---\r\n \r\nIn this course we will focus on the first two types of models. As each simulation model relies on a conceptual framework (even if it may be simplistic) a solid understanding of explanatory modelling is the basis for good models.\r\n \r\nWithin the field of energy and environmental modelling, we furthermore observe a large diversity of models in all shapes and sizes. They range from small scale exercises to visualise conceptual findings, over firm and market models focusing on microeconomic interactions, to large scale energy system models and global economy models covering macroeconomic aspects. In addition to the above described general model differentiation, a second classification is often used in energy and environmental modelling: **bottom-up (BU)** and **top-down (TD)** models.\r\n \r\nAs the name suggests, BU models focus on the details of a market or system and aim to capture the technical or environmental details of the modelled system. They are basically disaggregated representations. In contrast, TD models aim to capture the interaction among market actors, several sectors or the whole economy. They are aggregated models in the sense that they work with representative production functions and elasticities to represent substitution between different technologies or products.\r\n \r\nBoth model clusters have their advantages and drawbacks. The high detail of BU models allows capturing specific market characteristics. In addition, they are well suited for policy impact assessments of a specific sector and for the evaluation of technology or market design shifts. They can be used both for short-term evaluations (sometimes even for predictions) and long-term simulations. BU models have to omit the more general economic interactions and rely on a set of externally defined parameters capturing the elements not represented in the model.\r\n\r\nTD models allow capturing cross-sectoral effects, feedback effects across the economy, and macroeconomic impacts like employment, trade and income effects. They cannot represent the same technological detail as BU models. They are suited for long-term evaluations but not for short-term operational simulations. In a sense, also explanatory models can often be seen as a form of top-down modelling as they usually rely more heavily on economic interaction in line with the aggregations needed in large scale TD models.\r\n \r\nFor real world problems, often the detailed and the aggregated dimensions are important – especially for policy assessments. Therefore, approaches to combine BU and TD models, so called **hybrid models**, are increasingly emerging. Furthermore, to capture relevant system constraints models often need to account for specific technological (eg, power flows in electricity networks), environmental (eg, diffusion of pollution) or behavioural (eg, agent learning) aspects. Thus, economic modelling of energy and environmental topics is becoming more and more interdisciplinary.\r\n \r\nNaturally, there are also other lines of reasoning to cluster model approaches. These include the mathematical nature of the model (ie, whether it is linear or nonlinear, has a mixed integer nature, is an optimization or an equilibrium formulation), to the underlying time frame (ie, short- or long-term models), the choice variables (eg, operational or investment models/ static or dynamic models), uncertainty (ie, stochastic or deterministic models), the type of competition (ie, perfect competitive, monopoly, or oligopolistic) or the spatial dimension (eg, network models).\r\n \r\nWithin this course we will aim to provide a sound understanding of the model basics that are needed for designing explanatory and simulation models. We will also refer to the mathematical aspects of modelling and the differentiation in bottom-up and top-down perspectives, as well as the similarities and differences between optimizations and equilibrium modelling.\r\n\r\n<br>\r\n \r\nRecommended readings\r\n{.footnote-title}\r\n\r\nTo get more familiar with models used for energy and environmental assessments Herbst et al. (2012) and section two of Krysiak and Weigt (2015) are good starting points. They provide comprehensive reviews on existing energy models and model approaches.\r\n{.citation-indented}\r\n\r\nHerbst, A. et al. (2012). [Introduction to energy systems modelling](https://sjes.springeropen.com/track/pdf/10.1007/BF03399363){:target=“_blank”}. *Swiss Journal of Economics and Statistics*, 148(2), pp. 111-135.\r\n{.citation-indented}\r\n\r\nKrysiak, F. C., & Weigt, H. (2015). [The Demand Side in Economic Models of Energy Markets: The Challenge of Representing Consumer Behavior](http://journal.frontiersin.org/article/10.3389/fenrg.2015.00024/full){:target=“_blank”}. *Frontiers in Energy Research*, 3, p. 24.\r\n{.citation-indented}\r\n\r\nVentosa et al. (2005) and Weigt (2009) provide model overviews for electricity market models that will be helpful for getting more familiar with numerical simulation models. You may also want to explore the online version of the [DICE (Dynamic Integrated Climate-Economy) model](http://webdice.rdcep.org/){:target=“_blank”} of the economics of climate change by Prof. Nordhaus.\r\n{.citation-indented}\r\n\r\nVentosa, M. et al. (2005): [Electricity market modeling trends](http://www.sciencedirect.com/science/article/pii/S0301421503003161){:target=“_blank”}. *Energy Policy*, 33(7), pp. 897-913.\r\n{.citation-indented}\r\n\r\nWeigt, H. (2009). [A Review of Liberalization and Modeling of Electricity Markets](https://mpra.ub.uni-muenchen.de/65651/1/MPRA_paper_65651.pdf){:target=“_blank”}. Dresden University of Technology.\r\n{.citation-indented}\r\n\r\nWe will provide further references with specific model examples within the following steps also offering more insights on the functionality of energy markets.', '', 'In economics we can generally differentiate *three types* of models for different purposes.\r\n{.lead}\r\n\r\n\r\n![First](/media/markdownx/b3d23882-2f35-4ceb-a10f-b26d7a2b021f.png)\r\n\r\nFirst, we have **explanatory models**. These models are used to make an argument. Such models are usually theoretical models. That is, they are not fully quantified. Their purpose is to make consistent arguments. For example, what consequences different climate policies might have for technological change. They do not give quantified results, but rather aim at capturing economic mechanisms.\r\n\r\n---\r\n\r\n![Second](/media/markdownx/54787407-b20a-48c8-9c8c-b9feb2ff5430.png)\r\n\r\nSecond, we have **simulation models**. These models are used to describe plausible scenarios; for example, different pathways towards a renewable energy system or a low carbon society. These models are usually based on simpler economic mechanisms than explanatory models. But they are calibrated so that they yield quantitative insights. Their purpose is to provide a detailed picture of future developments. But, they only show what is possible. They do not make predictions.\r\n\r\n---\r\n\r\n![third](/media/markdownx/7d4399f5-7090-4113-aa9f-8aed70bb57ba.png)\r\n\r\nFinally, we have **prediction models**. They are usually econometric models, often with some theoretical model in the background. However, modelling approaches similar to the ones for simulation models can be used as well. Their purpose is to predict future developments or the results of policy measures. As this is rather demanding, most models focus on short run predictions and are thus of limited use to most topics relevant in environmental and energy economics.\r\n\r\n---\r\n \r\nIn this course we will focus on the first two types of models. As each simulation model relies on a conceptual framework (even if it may be simplistic) a solid understanding of explanatory modelling is the basis for good models.\r\n \r\nWithin the field of energy and environmental modelling, we furthermore observe a large diversity of models in all shapes and sizes. They range from small scale exercises to visualise conceptual findings, over firm and market models focusing on microeconomic interactions, to large scale energy system models and global economy models covering macroeconomic aspects. In addition to the above described general model differentiation, a second classification is often used in energy and environmental modelling: **bottom-up (BU)** and **top-down (TD)** models.\r\n \r\nAs the name suggests, BU models focus on the details of a market or system and aim to capture the technical or environmental details of the modelled system. They are basically disaggregated representations. In contrast, TD models aim to capture the interaction among market actors, several sectors or the whole economy. They are aggregated models in the sense that they work with representative production functions and elasticities to represent substitution between different technologies or products.\r\n \r\nBoth model clusters have their advantages and drawbacks. The high detail of BU models allows capturing specific market characteristics. In addition, they are well suited for policy impact assessments of a specific sector and for the evaluation of technology or market design shifts. They can be used both for short-term evaluations (sometimes even for predictions) and long-term simulations. BU models have to omit the more general economic interactions and rely on a set of externally defined parameters capturing the elements not represented in the model.\r\n\r\nTD models allow capturing cross-sectoral effects, feedback effects across the economy, and macroeconomic impacts like employment, trade and income effects. They cannot represent the same technological detail as BU models. They are suited for long-term evaluations but not for short-term operational simulations. In a sense, also explanatory models can often be seen as a form of top-down modelling as they usually rely more heavily on economic interaction in line with the aggregations needed in large scale TD models.\r\n \r\nFor real world problems, often the detailed and the aggregated dimensions are important – especially for policy assessments. Therefore, approaches to combine BU and TD models, so called **hybrid models**, are increasingly emerging. Furthermore, to capture relevant system constraints models often need to account for specific technological (eg, power flows in electricity networks), environmental (eg, diffusion of pollution) or behavioural (eg, agent learning) aspects. Thus, economic modelling of energy and environmental topics is becoming more and more interdisciplinary.\r\n \r\nNaturally, there are also other lines of reasoning to cluster model approaches. These include the mathematical nature of the model (ie, whether it is linear or nonlinear, has a mixed integer nature, is an optimization or an equilibrium formulation), to the underlying time frame (ie, short- or long-term models), the choice variables (eg, operational or investment models/ static or dynamic models), uncertainty (ie, stochastic or deterministic models), the type of competition (ie, perfect competitive, monopoly, or oligopolistic) or the spatial dimension (eg, network models).\r\n \r\nWithin this course we will aim to provide a sound understanding of the model basics that are needed for designing explanatory and simulation models. We will also refer to the mathematical aspects of modelling and the differentiation in bottom-up and top-down perspectives, as well as the similarities and differences between optimizations and equilibrium modelling.\r\n\r\n<br>\r\n \r\nRecommended readings\r\n{.footnote-title}\r\n\r\nTo get more familiar with models used for energy and environmental assessments Herbst et al. (2012) and section two of Krysiak and Weigt (2015) are good starting points. They provide comprehensive reviews on existing energy models and model approaches.\r\n{.citation-indented}\r\n\r\nHerbst, A. et al. (2012). [Introduction to energy systems modelling](https://sjes.springeropen.com/track/pdf/10.1007/BF03399363){:target=“_blank”}. *Swiss Journal of Economics and Statistics*, 148(2), pp. 111-135.\r\n{.citation-indented}\r\n\r\nKrysiak, F. C., & Weigt, H. (2015). [The Demand Side in Economic Models of Energy Markets: The Challenge of Representing Consumer Behavior](http://journal.frontiersin.org/article/10.3389/fenrg.2015.00024/full){:target=“_blank”}. *Frontiers in Energy Research*, 3, p. 24.\r\n{.citation-indented}\r\n\r\nVentosa et al. (2005) and Weigt (2009) provide model overviews for electricity market models that will be helpful for getting more familiar with numerical simulation models. You may also want to explore the online version of the [DICE (Dynamic Integrated Climate-Economy) model](http://webdice.rdcep.org/){:target=“_blank”} of the economics of climate change by Prof. Nordhaus.\r\n{.citation-indented}\r\n\r\nVentosa, M. et al. (2005): [Electricity market modeling trends](http://www.sciencedirect.com/science/article/pii/S0301421503003161){:target=“_blank”}. *Energy Policy*, 33(7), pp. 897-913.\r\n{.citation-indented}\r\n\r\nWeigt, H. (2009). [A Review of Liberalization and Modeling of Electricity Markets](https://mpra.ub.uni-muenchen.de/65651/1/MPRA_paper_65651.pdf){:target=“_blank”}. Dresden University of Technology.\r\n{.citation-indented}\r\n\r\nWe will provide further references with specific model examples within the following steps also offering more insights on the functionality of energy markets.', '', '', '', '', '', None, None, None, None, '', '', '', '', 'TT', '', 6, 'published', False, None, None, None, None, 225), (1253, datetime.datetime(2022, 5, 5, 14, 41, 22, 862821, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 12, 41, 39, 510892, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 12, 41, 39, 457872, tzinfo=datetime.timezone.utc), False, 'Assess your knowledge', None, 'Assess your knowledge', None, '', None, None, None, 'Assess your knowledge on modeling.', None, 'Assess your knowledge on modeling.', None, '', 'assess-your-knowledge', 'Select if the following statements are either true or false.\r\n{.lead}\r\n\r\n<br>\r\n\r\n<iframe src="https://h5p.nmc.unibas.ch/wp-admin/admin-ajax.php?action=h5p_embed&id=321" width="836" height="275" frameborder="0" allowfullscreen="allowfullscreen" title="Energy Economics 1_8"></iframe><script src="https://h5p.nmc.unibas.ch/wp-content/plugins/h5p/h5p-php-library/js/h5p-resizer.js" charset="UTF-8"></script>', '', 'Select if the following statements are either true or false.\r\n{.lead}\r\n\r\n<br>\r\n\r\n<iframe src="https://h5p.nmc.unibas.ch/wp-admin/admin-ajax.php?action=h5p_embed&id=321" width="836" height="275" frameborder="0" allowfullscreen="allowfullscreen" title="Energy Economics 1_8"></iframe><script src="https://h5p.nmc.unibas.ch/wp-content/plugins/h5p/h5p-php-library/js/h5p-resizer.js" charset="UTF-8"></script>', '', '', '', '', '', None, None, None, None, '', '', '', '', 'TQ', '', 7, 'published', False, None, None, None, None, 225), (1254, datetime.datetime(2022, 5, 5, 14, 41, 36, 110538, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 12, 42, 23, 836401, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 12, 42, 23, 752990, tzinfo=datetime.timezone.utc), False, 'Model fundamentals: supply and demand', None, 'Model fundamentals: supply and demand', None, '', None, None, None, 'In this video, Frank Krysiak explains the very first model element – the supply and demand balance – and how to use the model exercises.', None, 'In this video, Frank Krysiak explains the very first model element – the supply and demand balance – and how to use the model exercises.', None, '', 'model-fundamentals-supply-and-demand', 'When building a model to explore possible futures, it is often useful to start by investigating the constraints that need to be described in such a model. One of the most important constraints of economic models is the fact that we need to produce what we want to consume.\r\n{.lead}\r\n\r\n![embed](https://vimeo.com/734309279/fb682e0af6)\r\n \r\nIn other words, supply has to equal demand. This is of particular relevance in electricity systems as electricity cannot (yet) be stored easily in large amounts.\r\n \r\nFurthermore, there are multiple options on how electricity demand can be satisfied ranging from fossil and nuclear power plants to different renewable production technologies like wind and solar. As demand changes over time also the supply could change over time: solar power is not available at night and the production of wind turbines depends on seasons in most countries.\r\n \r\nThe two sides of the market have to be matched in all possible conditions. Thus, this will be your first task in using a model: design an electricity supply that can cope with different situations. We have designed a model exercise that describes this challenge in the next step.', '', 'When building a model to explore possible futures, it is often useful to start by investigating the constraints that need to be described in such a model. One of the most important constraints of economic models is the fact that we need to produce what we want to consume.\r\n{.lead}\r\n\r\n![embed](https://vimeo.com/734309279/fb682e0af6)\r\n \r\nIn other words, supply has to equal demand. This is of particular relevance in electricity systems as electricity cannot (yet) be stored easily in large amounts.\r\n \r\nFurthermore, there are multiple options on how electricity demand can be satisfied ranging from fossil and nuclear power plants to different renewable production technologies like wind and solar. As demand changes over time also the supply could change over time: solar power is not available at night and the production of wind turbines depends on seasons in most countries.\r\n \r\nThe two sides of the market have to be matched in all possible conditions. Thus, this will be your first task in using a model: design an electricity supply that can cope with different situations. We have designed a model exercise that describes this challenge in the next step.', '', '', '', '', '', None, None, None, None, '', '', '', '', 'TV', '', 8, 'published', False, None, None, None, None, 225), (1255, datetime.datetime(2022, 5, 5, 14, 41, 54, 509061, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 12, 44, 31, 88685, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 12, 44, 31, 43209, tzinfo=datetime.timezone.utc), False, 'Exercise: Ensure a balance in your first model', None, 'Exercise: Ensure a balance in your first model', None, '', None, None, None, 'Try this exercise about ensuring a balance in your first model.', None, 'Try this exercise about ensuring a balance in your first model.', None, '', 'exercise-ensure-a-balance-in-your-first-model', 'In your first model exercise we ask you to satisfy the electricity demand of our little example country by providing sufficient power plant capacities.\r\n{.lead}\r\n\r\nFirst look at this *screenshot* of what you should see when you click on the link of the exercise below: \r\n\r\n![screenshot of exercise 1](/media/exploring-possible-futures/1_10_screenshot_modelling_1_gross.png)\r\n\r\nScreenshot of simulation-exercise 1. \r\n{.thumb-caption} \r\n\r\nBy adjusting the sliders for the different plant types you can **increase or decrease the installed capacity of the specific plants**. In addition, you will have to decide in which order your fossil and nuclear power plants are to be used if they are needed.\r\n \r\nYou will need to ensure sufficient supply over all four hours representing the usual dynamics over summer and winter day and night.\r\n \r\nBe aware that your renewables will not produce the same amount of energy in each hour. This reflects the intermittent nature of wind and solar generation. You can install 1 gigawatt (GW) of capacity but if the sun is not shining or the wind is not blowing you will not be able to produce energy with your 1 GW in this specific hour. So expect to get more energy out of your photovoltaic (PV) plants during summer and not much during nighttime.\r\n\r\n**Note: if you want to keep a certain result for later use we suggest that you make a screenshot (Command-Shift-3 for Mac or CTRL+PrtScn for Windows) and download it.**\r\n\r\n<br>\r\n\r\n##Exercise\r\n\r\n###[Your first model: ensure a balance](https://nmc.unibas.ch/online-courses/exploring/2017/tm1/index.html){:target=“_blank”}', '', 'In your first model exercise we ask you to satisfy the electricity demand of our little example country by providing sufficient power plant capacities.\r\n{.lead}\r\n\r\nFirst look at this *screenshot* of what you should see when you click on the link of the exercise below: \r\n\r\n![screenshot of exercise 1](/media/exploring-possible-futures/1_10_screenshot_modelling_1_gross.png)\r\n\r\nScreenshot of simulation-exercise 1. \r\n{.thumb-caption} \r\n\r\nBy adjusting the sliders for the different plant types you can **increase or decrease the installed capacity of the specific plants**. In addition, you will have to decide in which order your fossil and nuclear power plants are to be used if they are needed.\r\n \r\nYou will need to ensure sufficient supply over all four hours representing the usual dynamics over summer and winter day and night.\r\n \r\nBe aware that your renewables will not produce the same amount of energy in each hour. This reflects the intermittent nature of wind and solar generation. You can install 1 gigawatt (GW) of capacity but if the sun is not shining or the wind is not blowing you will not be able to produce energy with your 1 GW in this specific hour. So expect to get more energy out of your photovoltaic (PV) plants during summer and not much during nighttime.\r\n\r\n**Note: if you want to keep a certain result for later use we suggest that you make a screenshot (Command-Shift-3 for Mac or CTRL+PrtScn for Windows) and download it.**\r\n\r\n<br>\r\n\r\n##Exercise\r\n\r\n###[Your first model: ensure a balance](https://nmc.unibas.ch/online-courses/exploring/2017/tm1/index.html){:target=“_blank”}', '', '', '', '', '', None, None, None, None, '', '', '', '', 'TT', '', 9, 'published', False, None, None, None, None, 225), (1256, datetime.datetime(2022, 5, 5, 14, 42, 39, 632521, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 12, 46, 22, 447736, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 12, 46, 22, 363727, tzinfo=datetime.timezone.utc), False, 'Which supply did you choose?', None, 'Which supply did you choose?', None, '', None, None, None, 'Reflect on which supply you chose in the previous exercise.', None, 'Reflect on which supply you chose in the previous exercise.', None, '', 'which-supply-did-you-choose', 'In the model exercise you were tasked to define your supply side of a simple electricity system representation.\r\n{.lead}\r\n\r\nWhich combination did you choose? You could try to achieve a complete renewable supply by wind and solar or use a mix of different plant types, compare completely different supply options or analyze small changes to your favored supply mix.\r\n\r\nWhy did you choose specific combinations? Did you observe some interesting interactions between your choice and the way demand was satisfied in your model?\r\n\r\nWe encourage you to make a note of your observations.', '', 'In the model exercise you were tasked to define your supply side of a simple electricity system representation.\r\n{.lead}\r\n\r\nWhich combination did you choose? You could try to achieve a complete renewable supply by wind and solar or use a mix of different plant types, compare completely different supply options or analyze small changes to your favored supply mix.\r\n\r\nWhy did you choose specific combinations? Did you observe some interesting interactions between your choice and the way demand was satisfied in your model?\r\n\r\nWe encourage you to make a note of your observations.', '', '', '', '', '', None, None, None, None, '', '', '', '', 'TT', '', 10, 'published', True, 'Feel free to give your answers to these questions in the discussion [section](#comments) below.', None, 'Feel free to give your answers to these questions in the discussion [section](#comments) below.', None, 225), (1257, datetime.datetime(2022, 5, 5, 14, 42, 48, 190978, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 12, 47, 30, 820417, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 12, 47, 30, 768020, tzinfo=datetime.timezone.utc), False, 'Your first model: the mathematics', None, 'Your first model: the mathematics', None, '', None, None, None, 'In this article, Hannes Weigt explains the mathematical formulation of a simple supply-demand balance.', None, 'In this article, Hannes Weigt explains the mathematical formulation of a simple supply-demand balance.', None, '', 'your-first-model-the-mathematics', 'The model that you have used two steps before depicts the task of finding a supply that is sufficient to satisfy a given demand. In reality, parts of this task have to be done by a market operator who makes dispatch decisions, that is, who decides which power plant runs at which load at which point of time.\r\n{.lead}\r\n\r\n![Mathematical equatations](/media/markdownx/2d43fb4e-d762-4dfe-b371-e0818c504f5f.png)\r\n \r\nLet us have a look at how we describe this in our model. First, the model has four hours $$(h=1,…,4)$$ that are spread over day and night and different seasons. For each of these hours, we have chosen a demand level $$d_{h}$$. Furthermore, each of these hours is characterized by the availability of photovoltaic (PV) and wind power (%), which we denote by $$\\phi_h^{PV}$$ and $$\\phi_h^{Wind}$$, respectively. These values show what share of possible production of a unit of PV or wind power is actually achievable at this time of day and this time of year.\r\n \r\nIn the model, you set capacities of five different technologies $$(i=1,…,5)$$: wind power, PV, coal-fired power plants, gas-fired power plants, and nuclear energy. Let us denote the capacities that you have chosen by $$q_{i}^{max}$$ ($$i$$ being the index that denotes the technology). Furthermore, you have made the decision in which order the controllable technologies are to be used. By assumption, the renewables (PV and wind power) are always used first.\r\n \r\nThus, for each hour $$h$$, we can calculate the supply provided by the renewables as $$\\phi_h^{PV}\\cdot\\\r\nq_{PV}^{max}+\r\n\\phi_h^{Wind}\\cdot\r\nq_{Wind}^{max}$$. \r\n\r\nIf, for this hour, demand is greater than this renewable supply, the controllable technology that is to be used first (say, coal) is deployed either until demand is met or up to its maximal capacity $$q_{Coal}^{max}$$.\r\n \r\nIf the maximal capacity is not sufficient to satisfy demand, the controllable technology that you want to use second (say, gas) is used, again either until demand is met or up to its maximal capacity $$q_{Gas}^{max}$$.\r\n \r\nFinally, the last controllable technology is used, again either until demand is met or up to its maximal capacity $$q_{Nuclear}^{max}$$.\r\n \r\nThis is done for all four hours. If demand is exactly met at each hour, then the system is balanced. This can fail for two reasons: first, if total production capacity of the controllable technologies (coal, gas, nuclear) is not sufficient to bridge the gap between demand and renewable supply in this hour. Second, if there is already more renewable supply than demand in this hour.\r\n \r\nLet’s use an example with two hours. Assume that demand in hour $$h=1$$ (equal to our model summer day) equals $$d_{1} = 17$$ GW and that PV can produce $$\\phi_1^{PV} = 55$$*%* of its capacity (or 5.5 GW) at this hour and wind $$\\phi_1^{Wind} = 35$$*%* (or 3.5 GW). The second hour (equal to our model winter night) has values of $$d_{2} = 14$$ GW, $$\\phi_2^{PV} = 0$$*%* and $$\\phi_2^{Wind} = 50$$*%* (5 GW). Furthermore, assume that you have chosen to deploy coal before gas before nuclear.\r\n \r\nNow consider the following three scenarios (all values in gigawatt (GW)):\r\n\r\n![Table showing different capacity scenarios for specific technologies](/media/markdownx/496a8296-d99a-4154-a943-60e852412d33.png)\r\n\r\n[Click to expand](/media/markdownx/496a8296-d99a-4154-a943-60e852412d33.png)\r\n{.footnote}\r\n\r\n<br>\r\n\r\nIn this example, the capacity in scenario 1 is sufficient for matching demand on a summer day but not on a winter night. In scenario 2, we have increased the capacity of the renewables, but this has led to a situation where there is too much renewable production on the summer day. Finally, in scenario 3, we have used scenario 1 but added gas. In this setting, only renewables and coal are used on the summer day and gas is used to bridge the remaining gap in the winter night. This is the only scenario where the market clears in both hours.\r\n \r\nOverall, we can write the model as a constraint for each hour that has to be met:\r\n\r\n<br>\r\n\r\n---\r\n\r\n(1) $$\\phi_1^{PV}\\cdot q_{PV}^{max}+\\phi_1^{Wind}\\cdot q_{Wind}^{max}+\\phi_{1}^{Coal}\\cdot q_{Coal}^{max}+\\phi_{1}^{Gas}\\cdot q_{Gas}^{max}+\\phi_{1}^{Nuclear}\\cdot q_{Nuclear}^{max} = d_{1},$$\r\n\r\n---\r\n\r\n(2) $$\\phi_2^{PV}\\cdot q_{PV}^{max}+\\phi_2^{Wind}\\cdot q_{Wind}^{max}+\\phi_{2}^{Coal}\\cdot q_{Coal}^{max}+\\phi_{2}^{Gas}\\cdot q_{Gas}^{max}+\\phi_{2}^{Nuclear}\\cdot q_{Nuclear}^{max} = d_{2},$$\r\n\r\n---\r\n\r\n(3) $$\\phi_3^{PV}\\cdot q_{PV}^{max}+\\phi_3^{Wind}\\cdot q_{Wind}^{max}+\\phi_{3}^{Coal}\\cdot q_{Coal}^{max}+\\phi_{3}^{Gas}\\cdot q_{Gas}^{max}+\\phi_{3}^{Nuclear}\\cdot q_{Nuclear}^{max} = d_{3},$$\r\n\r\n---\r\n\r\n(4) $$\\phi_4^{PV}\\cdot q_{PV}^{max}+\\phi_4^{Wind}\\cdot q_{Wind}^{max}+\\phi_{4}^{Coal}\\cdot q_{Coal}^{max}+\\phi_{4}^{Gas}\\cdot q_{Gas}^{max}+\\phi_{4}^{Nuclear}\\cdot q_{Nuclear}^{max} = d_{4}.$$\r\n\r\n---\r\n\r\n<br>\r\n\r\nIn this way of writing the model, the variables $$\\phi_i^{Coal}$$, $$\\phi_i^{Gas}$$, $$\\phi_i^{Nuclear}$$ take values between $$0$$ and $$13$$ and are chosen in the order in which the controllable technologies shall be used to match demand.\r\n \r\nThis is the complete model that you have used so far. In the following steps, we will add costs and emissions to this model. This will be done in the following way:\r\n \r\nCosts will consist of investment costs $$c_{i}^{inv}$$ that are proportional to the capacity for each technology and of variable costs (operating costs, such as fuel costs) $$c_{i}^{var}$$ that are proportional to the actual production in a given hour. For renewables, like PV and wind power, the variable costs are zero. Total costs are simply the sum of investment and variable costs.\r\n \r\nEmissions, by which we mean CO<sub>2</sub>-emissions, are generated by coal- and gas-fired power plants. Here, we assume that emissions are proportional to production in a given hour. Total emissions are the sum of emissions in all hours.\r\n \r\nFinally, let us explain how such a model is fit to actual data, that is, how we calculated the parameters of this model and the following models. Even if we use the model more for illustrative purposes we still aim to make credible assumptions. We need data for the different power plants, for the demand dynamics, and for the renewable availability.\r\n \r\nTo get variable costs for power plants you will need assumptions on fuel prices, carbon prices, plant efficiency, and emission content of the used fuel. The first two can be obtained from market data; we use average numbers representing European fuel prices in the last decade. Our efficiency values are based on Schröter (2013) as they provide a nice overview on average values. Finally the carbon content can be obtained for example at the [EIA webpage](https://www.eia.gov/environment/emissions/co2_vol_mass.php){:target=“_blank”}. We also use Schröter (2013) as a basis for our investment costs assumptions. As those are given in kilowatt (kW), we need to transfer those into annual fixed costs using classical economic net present value methods to derive meaningful cost levels.\r\n \r\nThe demand side will be based on the country or region you want to model. We use a fictional country with a peak load of about 20 GW and a total yearly consumption of 150 terawatt hours (TWh) as reference for our model. The respective demand dynamics for summer and winter times are based on the hourly demand levels for European countries as provided by the [ENTSO-E](https://www.entsoe.eu/data/power-stats/){:target=“_blank”}. We also assume that the four hours are equally representative for capturing the dynamics of a full year to derive yearly cost numbers.\r\n \r\nFinally, the renewable availabilities are derived from historic levels provided by the [Renewables.ninja project](https://www.renewables.ninja/){:target=“_blank”}.\r\n \r\nEven if the used model framework, with only four hours and highly aggregated power plant structures, looks rather simplistic it will allow us to derive plenty of meaningful conclusions already as you will see in the next steps.\r\n\r\nBy using this model as a start you can easily extend the framework by including more hours or more plant types or replacing the dataset with a specific country you are interested in. Starting with a rather simple small scale model first is a good way to ensure your model is doing what you want the model to do. You can always increase the data size later on.\r\n\r\n<br>\r\n\r\nReferences\r\n{.footnote-title}\r\n\r\nSchröder, A. et al. (2013). [Data Documentation 68. Current and prospective costs of electricity generation until 2050](http://www.diw.de/documents/publikationen/73/diw_01.c.424566.de/diw_datadoc_2013-068.pdf){:target=“_blank”}. Berlin, Deutsches Institut für Wirtschaftsforschung.\r\n{.citation-indented}', '', 'The model that you have used two steps before depicts the task of finding a supply that is sufficient to satisfy a given demand. In reality, parts of this task have to be done by a market operator who makes dispatch decisions, that is, who decides which power plant runs at which load at which point of time.\r\n{.lead}\r\n\r\n![Mathematical equatations](/media/markdownx/2d43fb4e-d762-4dfe-b371-e0818c504f5f.png)\r\n \r\nLet us have a look at how we describe this in our model. First, the model has four hours $$(h=1,…,4)$$ that are spread over day and night and different seasons. For each of these hours, we have chosen a demand level $$d_{h}$$. Furthermore, each of these hours is characterized by the availability of photovoltaic (PV) and wind power (%), which we denote by $$\\phi_h^{PV}$$ and $$\\phi_h^{Wind}$$, respectively. These values show what share of possible production of a unit of PV or wind power is actually achievable at this time of day and this time of year.\r\n \r\nIn the model, you set capacities of five different technologies $$(i=1,…,5)$$: wind power, PV, coal-fired power plants, gas-fired power plants, and nuclear energy. Let us denote the capacities that you have chosen by $$q_{i}^{max}$$ ($$i$$ being the index that denotes the technology). Furthermore, you have made the decision in which order the controllable technologies are to be used. By assumption, the renewables (PV and wind power) are always used first.\r\n \r\nThus, for each hour $$h$$, we can calculate the supply provided by the renewables as $$\\phi_h^{PV}\\cdot\\\r\nq_{PV}^{max}+\r\n\\phi_h^{Wind}\\cdot\r\nq_{Wind}^{max}$$. \r\n\r\nIf, for this hour, demand is greater than this renewable supply, the controllable technology that is to be used first (say, coal) is deployed either until demand is met or up to its maximal capacity $$q_{Coal}^{max}$$.\r\n \r\nIf the maximal capacity is not sufficient to satisfy demand, the controllable technology that you want to use second (say, gas) is used, again either until demand is met or up to its maximal capacity $$q_{Gas}^{max}$$.\r\n \r\nFinally, the last controllable technology is used, again either until demand is met or up to its maximal capacity $$q_{Nuclear}^{max}$$.\r\n \r\nThis is done for all four hours. If demand is exactly met at each hour, then the system is balanced. This can fail for two reasons: first, if total production capacity of the controllable technologies (coal, gas, nuclear) is not sufficient to bridge the gap between demand and renewable supply in this hour. Second, if there is already more renewable supply than demand in this hour.\r\n \r\nLet’s use an example with two hours. Assume that demand in hour $$h=1$$ (equal to our model summer day) equals $$d_{1} = 17$$ GW and that PV can produce $$\\phi_1^{PV} = 55$$*%* of its capacity (or 5.5 GW) at this hour and wind $$\\phi_1^{Wind} = 35$$*%* (or 3.5 GW). The second hour (equal to our model winter night) has values of $$d_{2} = 14$$ GW, $$\\phi_2^{PV} = 0$$*%* and $$\\phi_2^{Wind} = 50$$*%* (5 GW). Furthermore, assume that you have chosen to deploy coal before gas before nuclear.\r\n \r\nNow consider the following three scenarios (all values in gigawatt (GW)):\r\n\r\n![Table showing different capacity scenarios for specific technologies](/media/markdownx/496a8296-d99a-4154-a943-60e852412d33.png)\r\n\r\n[Click to expand](/media/markdownx/496a8296-d99a-4154-a943-60e852412d33.png)\r\n{.footnote}\r\n\r\n<br>\r\n\r\nIn this example, the capacity in scenario 1 is sufficient for matching demand on a summer day but not on a winter night. In scenario 2, we have increased the capacity of the renewables, but this has led to a situation where there is too much renewable production on the summer day. Finally, in scenario 3, we have used scenario 1 but added gas. In this setting, only renewables and coal are used on the summer day and gas is used to bridge the remaining gap in the winter night. This is the only scenario where the market clears in both hours.\r\n \r\nOverall, we can write the model as a constraint for each hour that has to be met:\r\n\r\n<br>\r\n\r\n---\r\n\r\n(1) $$\\phi_1^{PV}\\cdot q_{PV}^{max}+\\phi_1^{Wind}\\cdot q_{Wind}^{max}+\\phi_{1}^{Coal}\\cdot q_{Coal}^{max}+\\phi_{1}^{Gas}\\cdot q_{Gas}^{max}+\\phi_{1}^{Nuclear}\\cdot q_{Nuclear}^{max} = d_{1},$$\r\n\r\n---\r\n\r\n(2) $$\\phi_2^{PV}\\cdot q_{PV}^{max}+\\phi_2^{Wind}\\cdot q_{Wind}^{max}+\\phi_{2}^{Coal}\\cdot q_{Coal}^{max}+\\phi_{2}^{Gas}\\cdot q_{Gas}^{max}+\\phi_{2}^{Nuclear}\\cdot q_{Nuclear}^{max} = d_{2},$$\r\n\r\n---\r\n\r\n(3) $$\\phi_3^{PV}\\cdot q_{PV}^{max}+\\phi_3^{Wind}\\cdot q_{Wind}^{max}+\\phi_{3}^{Coal}\\cdot q_{Coal}^{max}+\\phi_{3}^{Gas}\\cdot q_{Gas}^{max}+\\phi_{3}^{Nuclear}\\cdot q_{Nuclear}^{max} = d_{3},$$\r\n\r\n---\r\n\r\n(4) $$\\phi_4^{PV}\\cdot q_{PV}^{max}+\\phi_4^{Wind}\\cdot q_{Wind}^{max}+\\phi_{4}^{Coal}\\cdot q_{Coal}^{max}+\\phi_{4}^{Gas}\\cdot q_{Gas}^{max}+\\phi_{4}^{Nuclear}\\cdot q_{Nuclear}^{max} = d_{4}.$$\r\n\r\n---\r\n\r\n<br>\r\n\r\nIn this way of writing the model, the variables $$\\phi_i^{Coal}$$, $$\\phi_i^{Gas}$$, $$\\phi_i^{Nuclear}$$ take values between $$0$$ and $$13$$ and are chosen in the order in which the controllable technologies shall be used to match demand.\r\n \r\nThis is the complete model that you have used so far. In the following steps, we will add costs and emissions to this model. This will be done in the following way:\r\n \r\nCosts will consist of investment costs $$c_{i}^{inv}$$ that are proportional to the capacity for each technology and of variable costs (operating costs, such as fuel costs) $$c_{i}^{var}$$ that are proportional to the actual production in a given hour. For renewables, like PV and wind power, the variable costs are zero. Total costs are simply the sum of investment and variable costs.\r\n \r\nEmissions, by which we mean CO<sub>2</sub>-emissions, are generated by coal- and gas-fired power plants. Here, we assume that emissions are proportional to production in a given hour. Total emissions are the sum of emissions in all hours.\r\n \r\nFinally, let us explain how such a model is fit to actual data, that is, how we calculated the parameters of this model and the following models. Even if we use the model more for illustrative purposes we still aim to make credible assumptions. We need data for the different power plants, for the demand dynamics, and for the renewable availability.\r\n \r\nTo get variable costs for power plants you will need assumptions on fuel prices, carbon prices, plant efficiency, and emission content of the used fuel. The first two can be obtained from market data; we use average numbers representing European fuel prices in the last decade. Our efficiency values are based on Schröter (2013) as they provide a nice overview on average values. Finally the carbon content can be obtained for example at the [EIA webpage](https://www.eia.gov/environment/emissions/co2_vol_mass.php){:target=“_blank”}. We also use Schröter (2013) as a basis for our investment costs assumptions. As those are given in kilowatt (kW), we need to transfer those into annual fixed costs using classical economic net present value methods to derive meaningful cost levels.\r\n \r\nThe demand side will be based on the country or region you want to model. We use a fictional country with a peak load of about 20 GW and a total yearly consumption of 150 terawatt hours (TWh) as reference for our model. The respective demand dynamics for summer and winter times are based on the hourly demand levels for European countries as provided by the [ENTSO-E](https://www.entsoe.eu/data/power-stats/){:target=“_blank”}. We also assume that the four hours are equally representative for capturing the dynamics of a full year to derive yearly cost numbers.\r\n \r\nFinally, the renewable availabilities are derived from historic levels provided by the [Renewables.ninja project](https://www.renewables.ninja/){:target=“_blank”}.\r\n \r\nEven if the used model framework, with only four hours and highly aggregated power plant structures, looks rather simplistic it will allow us to derive plenty of meaningful conclusions already as you will see in the next steps.\r\n\r\nBy using this model as a start you can easily extend the framework by including more hours or more plant types or replacing the dataset with a specific country you are interested in. Starting with a rather simple small scale model first is a good way to ensure your model is doing what you want the model to do. You can always increase the data size later on.\r\n\r\n<br>\r\n\r\nReferences\r\n{.footnote-title}\r\n\r\nSchröder, A. et al. (2013). [Data Documentation 68. Current and prospective costs of electricity generation until 2050](http://www.diw.de/documents/publikationen/73/diw_01.c.424566.de/diw_datadoc_2013-068.pdf){:target=“_blank”}. Berlin, Deutsches Institut für Wirtschaftsforschung.\r\n{.citation-indented}', '', '', '', '', '', None, None, None, None, '', '', '', '', 'TT', '', 11, 'published', False, None, None, None, None, 225), (1258, datetime.datetime(2022, 5, 5, 14, 42, 58, 941378, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 12, 48, 54, 847204, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 12, 48, 54, 791947, tzinfo=datetime.timezone.utc), False, 'Exercise: Ensure cost optimal supply', None, 'Exercise: Ensure cost optimal supply', None, '', None, None, None, 'Try this exercise about ensuring cost optimal supply.', None, 'Try this exercise about ensuring cost optimal supply.', None, '', 'exercise-ensure-cost-optimal-supply', 'Now that you know how to derive different supply options that can satisfy the demand of our example country, we ask you to choose the supply option that ensures this with the least costs possible.\r\n{.lead}\r\n \r\nWe extended the model framework by providing you with the overall costs your supply choice will induce on a yearly level. This includes the needed costs to install the power plant capacities and – in the case of fossil and nuclear power plants – their generation costs\r\n \r\nYou can again **adjust the sliders and chose which fossil or nuclear generation is to be used first**. Play around with some different options for mixing the power plant types to see if you can find the one with the lowest costs.\r\n\r\nWe will come back to your solution in chapter 2. So, you best take notes.\r\n\r\n**Note: if you want to keep a certain result for later use we suggest that you make a screenshot (Command-Shift-3 for Mac or CTRL+PrtScn for Windows) and download it.**\r\n\r\n<br>\r\n\r\n##Exercise\r\n\r\n###[Using the insights: ensure cost optimal supply](https://nmc.unibas.ch/online-courses/exploring/2017/tm2/index.html){:target=“_blank”}', '', 'Now that you know how to derive different supply options that can satisfy the demand of our example country, we ask you to choose the supply option that ensures this with the least costs possible.\r\n{.lead}\r\n \r\nWe extended the model framework by providing you with the overall costs your supply choice will induce on a yearly level. This includes the needed costs to install the power plant capacities and – in the case of fossil and nuclear power plants – their generation costs\r\n \r\nYou can again **adjust the sliders and chose which fossil or nuclear generation is to be used first**. Play around with some different options for mixing the power plant types to see if you can find the one with the lowest costs.\r\n\r\nWe will come back to your solution in chapter 2. So, you best take notes.\r\n\r\n**Note: if you want to keep a certain result for later use we suggest that you make a screenshot (Command-Shift-3 for Mac or CTRL+PrtScn for Windows) and download it.**\r\n\r\n<br>\r\n\r\n##Exercise\r\n\r\n###[Using the insights: ensure cost optimal supply](https://nmc.unibas.ch/online-courses/exploring/2017/tm2/index.html){:target=“_blank”}', '', '', '', '', '', None, None, None, None, '', '', '', '', 'TT', '', 12, 'published', False, None, None, None, None, 225), (1259, datetime.datetime(2022, 5, 5, 14, 43, 9, 196798, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 12, 49, 51, 234676, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 12, 49, 51, 180463, tzinfo=datetime.timezone.utc), False, 'Wrap up: models are helpful if you know how to use them', None, 'Wrap up: models are helpful if you know how to use them', None, '', None, None, None, 'In this article, Frank Krysiak and Hannes Weigt sum up what economic models are and why they are useful.', None, 'In this article, Frank Krysiak and Hannes Weigt sum up what economic models are and why they are useful.', None, '', 'wrap-up-models-are-helpful-if-you-know-how-to-use-them', 'In this chapter we had our first glimpse at the world of economic modelling in the context of energy and environmental questions. We learned that models are simplified depictions of the real world. A good economic model does not aim to represent the whole complexity of the world but only includes those parts needed to tell consistent stories. Thus, a model is a simplified but credible description of our real world.\r\n{.lead}\r\n\r\n![Supply Options](/media/markdownx/1cc1aabd-1d78-4f8e-821a-9ab8eaa0c4ff.png)\r\n\r\nAlways keep in mind that modelling is more than just building a model. It always starts with a problem or question you want to analyse and ends with you interpreting your model results and relating it to your question.\r\n \r\nWe have seen that there are different types of models for different purposes: explanatory models focusing on theoretic aspects aimed to make an argument and simulation models used to describe plausible scenarios yielding quantitative insights; bottom-up models capturing technical details; and top-down models focusing on aggregated interactions.\r\n\r\nFeel free to have a look at some of the references provided in this course or interesting papers and reports you find online and try to cluster them into which type of modelling they fall. You will see that all of them have their place when assessing the multiple energy and environmental related questions we face today. So if this course persuades you to go in one way or the other you will find yourself in good company.\r\n \r\nFinally, we had our first own model examples. We will gradually extend the aspects of modelling using examples like those to visualise and explain the concepts and thereby dive deeper into the world of economic modelling.', '', 'In this chapter we had our first glimpse at the world of economic modelling in the context of energy and environmental questions. We learned that models are simplified depictions of the real world. A good economic model does not aim to represent the whole complexity of the world but only includes those parts needed to tell consistent stories. Thus, a model is a simplified but credible description of our real world.\r\n{.lead}\r\n\r\n![Supply Options](/media/markdownx/1cc1aabd-1d78-4f8e-821a-9ab8eaa0c4ff.png)\r\n\r\nAlways keep in mind that modelling is more than just building a model. It always starts with a problem or question you want to analyse and ends with you interpreting your model results and relating it to your question.\r\n \r\nWe have seen that there are different types of models for different purposes: explanatory models focusing on theoretic aspects aimed to make an argument and simulation models used to describe plausible scenarios yielding quantitative insights; bottom-up models capturing technical details; and top-down models focusing on aggregated interactions.\r\n\r\nFeel free to have a look at some of the references provided in this course or interesting papers and reports you find online and try to cluster them into which type of modelling they fall. You will see that all of them have their place when assessing the multiple energy and environmental related questions we face today. So if this course persuades you to go in one way or the other you will find yourself in good company.\r\n \r\nFinally, we had our first own model examples. We will gradually extend the aspects of modelling using examples like those to visualise and explain the concepts and thereby dive deeper into the world of economic modelling.', '', '', '', '', '', None, None, None, None, '', '', '', '', 'TT', '', 13, 'published', False, None, None, None, None, 225)]])}, None) | {} | <django_redis.cache.RedisCache object at 0x7910e287a790> | |
/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in run(101) return _run_old_run_func() /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in _run_old_run_func(94) return old_run_func(self, *a, **kw) /usr/local/lib/python3.11/concurrent/futures/thread.py in _worker(83) work_item.run() /usr/local/lib/python3.11/concurrent/futures/thread.py in run(58) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56) result = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in middleware(32) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/allauth/account/middleware.py in middleware(36) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/simple_history/middleware.py in middleware(41) return get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/django_htmx/middleware.py in __call__(43) return self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in __call__(168) response = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/panels.py in process_request(41) return super(CachalotPanel, self).process_request(request) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in __call__(244) current_executor.run_until_future(call_result) /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run_until_future(81) work_item.run() /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run(40) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(90) return callback(request, *args, **kwargs) /app/project/utils/decorators.py in apply_cache(72) cache.set(CACHE_KEY, response.render(), ttl) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_patched_render(41) return old_render(self) /usr/local/lib/python3.11/site-packages/django/template/response.py in render(114) self.content = self.rendered_content /usr/local/lib/python3.11/site-packages/sentry_sdk/utils.py in runner(1788) return sentry_patched_function(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/templates.py in rendered_content(77) return real_rendered_content.fget(self) /usr/local/lib/python3.11/site-packages/django/template/response.py in rendered_content(92) return template.render(context, self._request) /usr/local/lib/python3.11/site-packages/django/template/backends/django.py in render(61) return self.template.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(175) return self._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157) return compiled_parent._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157) return compiled_parent._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63) result = block.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63) result = block.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(208) return template.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(177) return self._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(321) return nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(238) nodelist.append(node.render_annotated(context)) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(194) len_values = len(values) /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(37) return original(compiler, *args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(96) return _get_result_or_execute_query( /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in _get_result_or_execute_query(71) cache.set_many(to_be_set, cachalot_settings.CACHALOT_TIMEOUT) |
|||||
0,4035 | get_many | (['e3a5db5a670ad803efb866441f33de58309be2e2', '76e323efd8711853e13c9f7cf976845908364eb2', '138549f5508bbba7283d6a0625e51c589d845e8f', 'cd5479d1039c541add57ee82f62d7731713f41ea'],) | {} | <django_redis.cache.RedisCache object at 0x7910e287a790> | |
/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in run(101) return _run_old_run_func() /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in _run_old_run_func(94) return old_run_func(self, *a, **kw) /usr/local/lib/python3.11/concurrent/futures/thread.py in _worker(83) work_item.run() /usr/local/lib/python3.11/concurrent/futures/thread.py in run(58) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56) result = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in middleware(32) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/allauth/account/middleware.py in middleware(36) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/simple_history/middleware.py in middleware(41) return get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/django_htmx/middleware.py in __call__(43) return self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in __call__(168) response = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/panels.py in process_request(41) return super(CachalotPanel, self).process_request(request) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in __call__(244) current_executor.run_until_future(call_result) /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run_until_future(81) work_item.run() /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run(40) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(90) return callback(request, *args, **kwargs) /app/project/utils/decorators.py in apply_cache(72) cache.set(CACHE_KEY, response.render(), ttl) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_patched_render(41) return old_render(self) /usr/local/lib/python3.11/site-packages/django/template/response.py in render(114) self.content = self.rendered_content /usr/local/lib/python3.11/site-packages/sentry_sdk/utils.py in runner(1788) return sentry_patched_function(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/templates.py in rendered_content(77) return real_rendered_content.fget(self) /usr/local/lib/python3.11/site-packages/django/template/response.py in rendered_content(92) return template.render(context, self._request) /usr/local/lib/python3.11/site-packages/django/template/backends/django.py in render(61) return self.template.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(175) return self._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157) return compiled_parent._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157) return compiled_parent._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63) result = block.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63) result = block.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(208) return template.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(177) return self._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(321) return nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(238) nodelist.append(node.render_annotated(context)) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(194) len_values = len(values) /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(37) return original(compiler, *args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(96) return _get_result_or_execute_query( /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in _get_result_or_execute_query(46) data = cache.get_many(table_cache_keys + [cache_key]) |
|||||
0,7106 | set_many | ({'cd5479d1039c541add57ee82f62d7731713f41ea': (1736881791.6343942, [[(1260, datetime.datetime(2022, 5, 5, 14, 43, 41, 310105, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 12, 51, 3, 921109, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 12, 51, 3, 875220, tzinfo=datetime.timezone.utc), False, 'Systems and markets', None, 'Systems and markets', None, '', None, None, None, 'How to translate options into results? See Hannes Weigt explain the basic principles of obtaining model outcomes.', None, 'How to translate options into results? See Hannes Weigt explain the basic principles of obtaining model outcomes.', None, 'exploring-possible-futures/system-perspective/systems-and-markets/009_7gmnoxi.jpg', 'systems-and-markets', 'In the previous chapter we have seen that there are multiple options when deciding about a simple energy system’s supply. To decide which of those options is the one emerging we need some criteria to base this decision on, like costs, emissions or other factors.\r\n{.lead}\r\n\r\n![embed](https://vimeo.com/734309001/b9c074d44a)\r\n\r\nModels can then be designed either with a system perspective in mind – choosing the best option based on the decision criteria – or with a more market perspective in mind – modelling market actors that make decisions based on specified criteria. Both ways are equally valid modelling approaches.\r\n \r\nIn this chapter we will focus on the system perspective while addressing the basics of optimization models.', '', 'In the previous chapter we have seen that there are multiple options when deciding about a simple energy system’s supply. To decide which of those options is the one emerging we need some criteria to base this decision on, like costs, emissions or other factors.\r\n{.lead}\r\n\r\n![embed](https://vimeo.com/734309001/b9c074d44a)\r\n\r\nModels can then be designed either with a system perspective in mind – choosing the best option based on the decision criteria – or with a more market perspective in mind – modelling market actors that make decisions based on specified criteria. Both ways are equally valid modelling approaches.\r\n \r\nIn this chapter we will focus on the system perspective while addressing the basics of optimization models.', '', '', '', '', '', None, None, None, None, '', '', '', '', 'TV', '', 0, 'published', False, None, None, None, None, 226), (1261, datetime.datetime(2022, 5, 5, 14, 43, 50, 419349, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 12, 56, 23, 739269, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 12, 56, 23, 665812, tzinfo=datetime.timezone.utc), False, 'Reflect: What is the price tag?', None, 'Reflect: What is the price tag?', None, '', None, None, None, 'Reflect on the cheapest mix of power plants.', None, 'Reflect on the cheapest mix of power plants.', None, '', 'reflect-what-is-the-price-tag', 'In the last chapter you were tasked with figuring out what the least-cost supply option for our little example looks like.\r\n{.lead}\r\n\r\nCould you figure out which mix of power plants is the cheapest? And **how does this mix differ** from the system you designed before?\r\n\r\nWe encourage you to make a note of your observations.', '', 'In the last chapter you were tasked with figuring out what the least-cost supply option for our little example looks like.\r\n{.lead}\r\n\r\nCould you figure out which mix of power plants is the cheapest? And **how does this mix differ** from the system you designed before?\r\n\r\nWe encourage you to make a note of your observations.', '', '', '', '', '', None, None, None, None, '', '', '', '', 'TT', '', 1, 'published', True, 'Please share your thoughts and observations in the [comments](#comments) section below.', None, 'Please share your thoughts and observations in the [comments](#comments) section below.', None, 226), (1262, datetime.datetime(2022, 5, 5, 14, 44, 7, 884983, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 12, 57, 23, 988358, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 12, 57, 23, 937962, tzinfo=datetime.timezone.utc), False, 'Optimization models', None, 'Optimization models', None, '', None, None, None, 'Watch Hannes Weigt explaining the basic elements of optimization models.', None, 'Watch Hannes Weigt explaining the basic elements of optimization models.', None, '', 'optimization-models', 'Optimization models focus on identifying the best option out of all the possible ones by defining a single target that is either to be minimised or maximised while accounting for side constraints.\r\n{.lead}\r\n\r\n![embed](https://vimeo.com/734308900/06be9853d3)\r\n \r\nAn optimization problem has the general form of:\r\n \r\n---\r\n\r\n(1)   $$min$$ $$F(x)$$\r\n\r\n---\r\n\r\n(2) s.t. $$G(x)=0$$\r\n\r\n---\r\n\r\n(3)   $$H(x)\\leq0$$\r\n\r\n---\r\n \r\n**Equation (1)** represents the desired **objective** function, $$F(x)$$. Note that minimizations (or maximizations) can be transformed into maximizations (minimizations) by multiplying the objective function by -1 (ie, $$max$$ $$F(x) = min$$ $$ –F(x)$$). \r\n\r\n**Equation (2)** represents **equality constraints** covering all constraints that have to hold with equality (eg, flow conservation constraints or temporal balances) and definitions. \r\n\r\n**Equation (3)** represents **inequality constraints** covering upper and lower limits (eg, production capacities). Lower equal and greater equal formulations can be transferred into each other by multiplying the constraint by -1. \r\n \r\n<br>\r\n\r\nNote that you will not necessarily need all types of constraints for all models. Even if the detailed design depends on the underlying focus of your model, the overall model layout will always follow the above-described structure. For example, if you want to design a market model you will need constraints for the supply side, the demand side, and their market interaction. The structure of optimization models makes it easy to add or withdraw elements from a model by simply changing the formulation of the side constraints (ie, adding a further technical restriction).\r\n \r\nOptimization models are often used to represent benchmark market conditions. They can easily obtain least-cost or welfare maximizing solutions that correspond to a perfect competitive market environment. Many large scale, bottom-up energy market models follow an optimization approach and include several technical side constraints to capture the underlying energy conversion and transport mechanics.\r\n\r\n<br>\r\n\r\nRecommended readings\r\n{.footnote-title}\r\n\r\nIn the literature recommendation below, you will find a simple natural gas market model (Neumann et al. 2009) and an electricity network model (Leuthold et al. 2008) examples. Both models follow a welfare maximizing approach. In the gas model, the constraints capture the gas transport via pipelines, ship (both require a network topology), and intertemporal storage. In the electricity model, the physics of power flows have to be included (again requiring a network topology) as well as power plant characteristics (introducing binary variables, more on this in chapter 5) and pumped storage dynamics. Market models following those two examples are typically relatively easy to design as they have a limited set of needed equations. Nevertheless, they allow us to analyse and evaluate market challenges and thereby provide a good starting point for numerical modelers.\r\n \r\nNeumann, A. et al. (2009). [InTraGas - A Stylized Model of the European Natural Gas Network](https://mpra.ub.uni-muenchen.de/65652/1/wp-rm-16_neumann_etal_InTraGas.pdf){:target=“_blank”}. Dresden University of Technology.\r\n{.citation-indented}\r\n\r\n\r\nLeuthold, F. et al. (2008). [ELMOD - A Model of the European Electricity Market](https://mpra.ub.uni-muenchen.de/65660/1/wp_em_00_ELMOD.pdf){:target=“_blank”}. Dresden University of Technology. (Journal Version: Leuthold, F. et al. (2012). A large-scale spatial optimization model of the European electricity market. *Networks and spatial economics*, 12(1), pp. 75-107.)\r\n{.citation-indented}\r\n\r\n \r\nFor those who want to get more familiar with GAMS as modeling software: the initial [GAMS tutorial](https://www.gams.com/latest/docs/UG_Tutorial.html){:target=“_blank”} uses a simple transport optimization problem to introduce the different features of GAMS.\r\n{.citation-indented}', '', 'Optimization models focus on identifying the best option out of all the possible ones by defining a single target that is either to be minimised or maximised while accounting for side constraints.\r\n{.lead}\r\n\r\n![embed](https://vimeo.com/734308900/06be9853d3)\r\n \r\nAn optimization problem has the general form of:\r\n \r\n---\r\n\r\n(1)   $$min$$ $$F(x)$$\r\n\r\n---\r\n\r\n(2) s.t. $$G(x)=0$$\r\n\r\n---\r\n\r\n(3)   $$H(x)\\leq0$$\r\n\r\n---\r\n \r\n**Equation (1)** represents the desired **objective** function, $$F(x)$$. Note that minimizations (or maximizations) can be transformed into maximizations (minimizations) by multiplying the objective function by -1 (ie, $$max$$ $$F(x) = min$$ $$ –F(x)$$). \r\n\r\n**Equation (2)** represents **equality constraints** covering all constraints that have to hold with equality (eg, flow conservation constraints or temporal balances) and definitions. \r\n\r\n**Equation (3)** represents **inequality constraints** covering upper and lower limits (eg, production capacities). Lower equal and greater equal formulations can be transferred into each other by multiplying the constraint by -1. \r\n \r\n<br>\r\n\r\nNote that you will not necessarily need all types of constraints for all models. Even if the detailed design depends on the underlying focus of your model, the overall model layout will always follow the above-described structure. For example, if you want to design a market model you will need constraints for the supply side, the demand side, and their market interaction. The structure of optimization models makes it easy to add or withdraw elements from a model by simply changing the formulation of the side constraints (ie, adding a further technical restriction).\r\n \r\nOptimization models are often used to represent benchmark market conditions. They can easily obtain least-cost or welfare maximizing solutions that correspond to a perfect competitive market environment. Many large scale, bottom-up energy market models follow an optimization approach and include several technical side constraints to capture the underlying energy conversion and transport mechanics.\r\n\r\n<br>\r\n\r\nRecommended readings\r\n{.footnote-title}\r\n\r\nIn the literature recommendation below, you will find a simple natural gas market model (Neumann et al. 2009) and an electricity network model (Leuthold et al. 2008) examples. Both models follow a welfare maximizing approach. In the gas model, the constraints capture the gas transport via pipelines, ship (both require a network topology), and intertemporal storage. In the electricity model, the physics of power flows have to be included (again requiring a network topology) as well as power plant characteristics (introducing binary variables, more on this in chapter 5) and pumped storage dynamics. Market models following those two examples are typically relatively easy to design as they have a limited set of needed equations. Nevertheless, they allow us to analyse and evaluate market challenges and thereby provide a good starting point for numerical modelers.\r\n \r\nNeumann, A. et al. (2009). [InTraGas - A Stylized Model of the European Natural Gas Network](https://mpra.ub.uni-muenchen.de/65652/1/wp-rm-16_neumann_etal_InTraGas.pdf){:target=“_blank”}. Dresden University of Technology.\r\n{.citation-indented}\r\n\r\n\r\nLeuthold, F. et al. (2008). [ELMOD - A Model of the European Electricity Market](https://mpra.ub.uni-muenchen.de/65660/1/wp_em_00_ELMOD.pdf){:target=“_blank”}. Dresden University of Technology. (Journal Version: Leuthold, F. et al. (2012). A large-scale spatial optimization model of the European electricity market. *Networks and spatial economics*, 12(1), pp. 75-107.)\r\n{.citation-indented}\r\n\r\n \r\nFor those who want to get more familiar with GAMS as modeling software: the initial [GAMS tutorial](https://www.gams.com/latest/docs/UG_Tutorial.html){:target=“_blank”} uses a simple transport optimization problem to introduce the different features of GAMS.\r\n{.citation-indented}', '', '', '', '', '', None, None, None, None, '', '', '', '', 'TV', '', 2, 'published', False, None, None, None, None, 226), (1263, datetime.datetime(2022, 5, 5, 14, 44, 21, 737182, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 12, 58, 33, 617552, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 12, 58, 33, 570127, tzinfo=datetime.timezone.utc), False, 'Exercise: Ensure emission targets', None, 'Exercise: Ensure emission targets', None, '', None, None, None, 'Try this exercise about ensuring emission targets.', None, 'Try this exercise about ensuring emission targets.', None, '', 'exercise-ensure-emission-targets', 'Using the same model framework as in the cost exercise, you are now tasked to identify supply options that ensure that the overall emissions do not exceed a level of 20 mio tonnes.\r\n{.lead}\r\n \r\nWe further extended the model framework by providing you with the overall emissions your supply choice induces. The emissions are derived by accounting for fossil generation output and the related carbon content of coal and gas.\r\n \r\nYou can again **adjust the sliders and chose which fossil or nuclear generation is to be used first**. Have a look at the costs your choice induces and play around with different options to see if you can obtain a low-cost alternative that still keeps the emission target.\r\n\r\n**Note: if you want to keep a certain result for later use we suggest that you make a screenshot (Command-Shift-3 for Mac or CTRL+PrtScn for Windows) and download it.**\r\n\r\n<br>\r\n\r\n##Exercise\r\n\r\n###[A different example: ensure emission targets](https://nmc.unibas.ch/online-courses/exploring/2017/tm3/index.html){:target=“_blank”}', '', 'Using the same model framework as in the cost exercise, you are now tasked to identify supply options that ensure that the overall emissions do not exceed a level of 20 mio tonnes.\r\n{.lead}\r\n \r\nWe further extended the model framework by providing you with the overall emissions your supply choice induces. The emissions are derived by accounting for fossil generation output and the related carbon content of coal and gas.\r\n \r\nYou can again **adjust the sliders and chose which fossil or nuclear generation is to be used first**. Have a look at the costs your choice induces and play around with different options to see if you can obtain a low-cost alternative that still keeps the emission target.\r\n\r\n**Note: if you want to keep a certain result for later use we suggest that you make a screenshot (Command-Shift-3 for Mac or CTRL+PrtScn for Windows) and download it.**\r\n\r\n<br>\r\n\r\n##Exercise\r\n\r\n###[A different example: ensure emission targets](https://nmc.unibas.ch/online-courses/exploring/2017/tm3/index.html){:target=“_blank”}', '', '', '', '', '', None, None, None, None, '', '', '', '', 'TT', '', 3, 'published', False, None, None, None, None, 226), (1264, datetime.datetime(2022, 5, 5, 14, 44, 29, 182450, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 13, 0, 27, 512661, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 13, 0, 27, 428007, tzinfo=datetime.timezone.utc), False, 'Reflection: The costs of emissions', None, 'Reflection: The costs of emissions', None, '', None, None, None, 'Reflect on the costs of emissions.', None, 'Reflect on the costs of emissions.', None, '', 'reflection-the-costs-of-emissions', 'In the model exercise you were tasked with deciding about the supply mix while ensuring that your system’s emissions do not exceed 20 mio tonnes.\r\n{.lead}\r\n\r\nDid you keep an eye on the costs or were you only focusing on reaching the emission target? Could you identify a link between emissions and supply costs?\r\n\r\nWe encourage you to make a note of your observations.', '', 'In the model exercise you were tasked with deciding about the supply mix while ensuring that your system’s emissions do not exceed 20 mio tonnes.\r\n{.lead}\r\n\r\nDid you keep an eye on the costs or were you only focusing on reaching the emission target? Could you identify a link between emissions and supply costs?\r\n\r\nWe encourage you to make a note of your observations.', '', '', '', '', '', None, None, None, None, '', '', '', '', 'TT', '', 4, 'published', True, 'Please share your thoughts and observations in the [comments](#comments) section below.', None, 'Please share your thoughts and observations in the [comments](#comments) section below.', None, 226), (1265, datetime.datetime(2022, 5, 5, 14, 44, 40, 352614, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 13, 2, 9, 9903, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 13, 2, 8, 959149, tzinfo=datetime.timezone.utc), False, 'Social costs and welfare', None, 'Social costs and welfare', None, '', None, None, None, 'Watch Frank Krysiak explaining how we can use economic concepts to model trade-offs like our cost-emission example.', None, 'Watch Frank Krysiak explaining how we can use economic concepts to model trade-offs like our cost-emission example.', None, '', 'social-costs-and-welfare', 'Real world problems often come with more than one important criterion we want to consider. If we want to account for those complex decisions we need concepts that help us translate these trade-offs into something we can include in a model.\r\n{.lead}\r\n\r\n![embed](https://vimeo.com/734308732/a6593cad22)\r\n \r\nThere are two main ways of handling trade-offs in energy and environmental economics models: using social costs or social welfare as the objective.\r\n \r\nSocial costs aim to account for direct and indirect costs and derive the overall burden for the society. For example, besides the direct costs associated with investing in and operating power plants, the negative effects of carbon or other emissions on human health and the environment are also accounted for.\r\n \r\nThe social welfare approach extends the social cost logic by also accounting for the benefit derived from utilising different supply and consumption options. For example, we weigh the benefit from consuming more energy with the total costs associated with generating that energy.\r\n \r\nBoth approaches are well suited to design optimization models.', '', 'Real world problems often come with more than one important criterion we want to consider. If we want to account for those complex decisions we need concepts that help us translate these trade-offs into something we can include in a model.\r\n{.lead}\r\n\r\n![embed](https://vimeo.com/734308732/a6593cad22)\r\n \r\nThere are two main ways of handling trade-offs in energy and environmental economics models: using social costs or social welfare as the objective.\r\n \r\nSocial costs aim to account for direct and indirect costs and derive the overall burden for the society. For example, besides the direct costs associated with investing in and operating power plants, the negative effects of carbon or other emissions on human health and the environment are also accounted for.\r\n \r\nThe social welfare approach extends the social cost logic by also accounting for the benefit derived from utilising different supply and consumption options. For example, we weigh the benefit from consuming more energy with the total costs associated with generating that energy.\r\n \r\nBoth approaches are well suited to design optimization models.', '', '', '', '', '', None, None, None, None, '', '', '', '', 'TV', '', 5, 'published', False, None, None, None, None, 226), (1266, datetime.datetime(2022, 5, 5, 14, 44, 48, 617473, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 13, 3, 29, 501198, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 13, 3, 29, 456183, tzinfo=datetime.timezone.utc), False, 'Exercise: Find the allocative optimum in your first market model', None, 'Exercise: Find the allocative optimum in your first market model', None, '', None, None, None, 'Try this exercise on finding the allocative optimum in your first market model.', None, 'Try this exercise on finding the allocative optimum in your first market model.', None, '', 'exercise-find-the-allocative-optimum-in-your-first-market-model', 'In all previous models exercises, you had to do the hard work: you had to balance the system taking into account costs or emissions. Now, you are promoted to a higher position: you only choose objectives and let others (the model) figure out the details.\r\n{.lead}\r\n \r\nIn this setting, you only have to make two choices: how important is the damage of CO<sub>2</sub>-emissions compared to costs (the social costs of carbon) and how important is the risk induced by nuclear power compared to costs (the social costs of nuclear). \r\n\r\nYou can again **adjust the sliders for the two cost factors**. Once you chose these two numbers, the model automatically selects – by using the optimization logic described in the previous steps – the technologies that do best under your settings. Relax and enjoy!\r\n\r\nCan you replicate the results of your former work in this setting?\r\n\r\n**Note: if you want to keep a certain result for later use we suggest that you make a screenshot (Command-Shift-3 for Mac or CTRL+PrtScn for Windows) and download it.**\r\n\r\n<br>\r\n\r\n##Exercise\r\n\r\n###[Your first market model: allocative optimum](https://nmc.unibas.ch/online-courses/exploring/2017/tm4/index.html){:target=“_blank”}', '', 'In all previous models exercises, you had to do the hard work: you had to balance the system taking into account costs or emissions. Now, you are promoted to a higher position: you only choose objectives and let others (the model) figure out the details.\r\n{.lead}\r\n \r\nIn this setting, you only have to make two choices: how important is the damage of CO<sub>2</sub>-emissions compared to costs (the social costs of carbon) and how important is the risk induced by nuclear power compared to costs (the social costs of nuclear). \r\n\r\nYou can again **adjust the sliders for the two cost factors**. Once you chose these two numbers, the model automatically selects – by using the optimization logic described in the previous steps – the technologies that do best under your settings. Relax and enjoy!\r\n\r\nCan you replicate the results of your former work in this setting?\r\n\r\n**Note: if you want to keep a certain result for later use we suggest that you make a screenshot (Command-Shift-3 for Mac or CTRL+PrtScn for Windows) and download it.**\r\n\r\n<br>\r\n\r\n##Exercise\r\n\r\n###[Your first market model: allocative optimum](https://nmc.unibas.ch/online-courses/exploring/2017/tm4/index.html){:target=“_blank”}', '', '', '', '', '', None, None, None, None, '', '', '', '', 'TT', '', 6, 'published', False, None, None, None, None, 226), (1267, datetime.datetime(2022, 5, 5, 14, 44, 59, 603245, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 13, 5, 8, 404119, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 13, 5, 8, 350196, tzinfo=datetime.timezone.utc), False, 'Reflection: What is the correct price for carbon?', None, 'Reflection: What is the correct price for carbon?', None, '', None, None, None, 'Reflect on the correct price for carbon.', None, 'Reflect on the correct price for carbon.', None, '', 'reflection-what-is-the-correct-price-for-carbon', 'In the last step we asked you to choose a carbon price and a nuclear risk premium for our example energy system to see what the optimal resulting supply structure will be.\r\n{.lead}\r\n \r\nWhich prices for carbon and nuclear did you choose? Did you observe a relation between your choice and the resulting supply mix?\r\n\r\nWe encourage you to make a note of your observations.', '', 'In the last step we asked you to choose a carbon price and a nuclear risk premium for our example energy system to see what the optimal resulting supply structure will be.\r\n{.lead}\r\n \r\nWhich prices for carbon and nuclear did you choose? Did you observe a relation between your choice and the resulting supply mix?\r\n\r\nWe encourage you to make a note of your observations.', '', '', '', '', '', None, None, None, None, '', '', '', '', 'TT', '', 7, 'published', True, 'Please share your thoughts and observations in the [comments](#comments) section below. We look forward to reading them!', None, 'Please share your thoughts and observations in the [comments](#comments) section below. We look forward to reading them!', None, 226), (1268, datetime.datetime(2022, 5, 5, 14, 45, 10, 126999, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 13, 6, 6, 736452, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 13, 6, 6, 689901, tzinfo=datetime.timezone.utc), False, 'Your market model: the mathematics', None, 'Your market model: the mathematics', None, '', None, None, None, 'In this article, Frank Krysiak explains the mathematical formulation of an optimization model to figure out how the supply mix was defined.', None, 'In this article, Frank Krysiak explains the mathematical formulation of an optimization model to figure out how the supply mix was defined.', None, '', 'your-market-model-the-mathematics', 'Let us now have a somewhat more detailed look at the model that you have used two steps ago. On the surface, this model looks rather similar to the models that we have used and discussed before. However, behind the scenes, it has a very different structure.\r\n{.lead}\r\n\r\n\r\n ![Mathematical equatations](/media/markdownx/5f53824f-c822-4265-a992-58c8fd6e9ada.png)\r\n\r\nIn the models before, you had to choose how much to invest and which technology should be deployed first. Using this power, you have tried to minimise costs or to reduce emissions.\r\n \r\nIn the new model, you do not have to do this basic work anymore. Rather, you only specify general objectives and the model searches by itself for the best possible solution, given these objectives. Thus, the model is the first real **optimization model** used in this course.\r\n \r\nHow does this work? In the first three models, the mathematical structure was always the same; focusing on checking the supply-demand balance of your supply mix. We just added more information on costs and emissions resulting from the supply mix.\r\n \r\nHowever, for this model we first have to define an objective to obtain an optimization problem.\r\nAs discussed before, we want to minimise the social costs of satisfying a given electricity demand.\r\n\r\n<br>\r\n\r\n\r\n###These social costs stem from three major sources:\r\n\r\n**1.** The conventional costs of investment and operation (investment costs and variable costs). These are typically paid by the firms that own the technologies used to generate electricity.\r\n\r\n**2.** The costs of CO<sub>2</sub>-emissions. In many cases, these are **external costs**, that is, these costs are not directly paid by the firms causing the emissions, but rather by the society in general (ie by all persons that are harmed by climate change) not only by the firms.\r\n\r\n**3.** The potential costs of nuclear accidents. Again, these are external costs. \r\n \r\n\r\n<br>\r\n\r\n###In our model the social costs (SC) are therefore defined as:\r\n \r\n---\r\n\r\n(1) $$SC =\\sum_{k,l}(c_{k}^{inv}\\cdot\\\r\nq_{k}^{max}+\r\nq_{k}^{var} \\cdot\\\r\n\\phi_{l}^{k} \\cdot\\\r\nq_{k}^{max}) +\r\nscc \\cdot\\\r\n\\sum_ke_{k}+\r\nscn \\cdot\\\r\nq_{Nuclear}^{max}$$.\r\n \r\n---\r\n\r\nIn this formulation, emissions are weighed by the term $$scc$$, which describes the social costs\r\nof carbon. The costs of nuclear accidents are described by the term $$scn$$, which describe the contribution of one more unit of installed nuclear capacity to the social costs of nuclear accidents. In the model, you have chosen these two values, which describe central parts of the total social costs.\r\n \r\nSecond, we need to define the constraints that we need to take into account while looking for the lowest social costs.\r\n \r\nThe social costs have to be minimised subject to the constraint that demand has to be met in all four hours. As discussed in the last chapter, this constraint can be written in the following way:\r\n\r\n---\r\n\r\n(2) $$\\phi_1^{PV}\\cdot q_{PV}^{max}+\\phi_1^{Wind}\\cdot q_{Wind}^{max}+\\phi_{1}^{Coal}\\cdot q_{Coal}^{max}+\\phi_{1}^{Gas}\\cdot q_{Gas}^{max}+\\phi_{1}^{Nuclear}\\cdot q_{Nuclear}^{max} = d_{1},$$\r\n\r\n---\r\n\r\n(3) $$\\phi_2^{PV}\\cdot q_{PV}^{max}+\\phi_2^{Wind}\\cdot q_{Wind}^{max}+\\phi_{2}^{Coal}\\cdot q_{Coal}^{max}+\\phi_{2}^{Gas}\\cdot q_{Gas}^{max}+\\phi_{2}^{Nuclear}\\cdot q_{Nuclear}^{max} = d_{2},$$\r\n\r\n---\r\n\r\n(4) $$\\phi_3^{PV}\\cdot q_{PV}^{max}+\\phi_3^{Wind}\\cdot q_{Wind}^{max}+\\phi_{3}^{Coal}\\cdot q_{Coal}^{max}+\\phi_{3}^{Gas}\\cdot q_{Gas}^{max}+\\phi_{3}^{Nuclear}\\cdot q_{Nuclear}^{max} = d_{3},$$\r\n\r\n---\r\n\r\n(5) $$\\phi_4^{PV}\\cdot q_{PV}^{max}+\\phi_4^{Wind}\\cdot q_{Wind}^{max}+\\phi_{4}^{Coal}\\cdot q_{Coal}^{max}+\\phi_{4}^{Gas}\\cdot q_{Gas}^{max}+\\phi_{4}^{Nuclear}\\cdot q_{Nuclear}^{max} = d_{4}.$$\r\n \r\n---\r\n\r\nRemember that the deployment of the controllable technologies (ie, the $$\\phi_l^k$$) are decision variables that are chosen during the optimization. Furthermore, the production capacities, $$q_k^{max}$$, are also optimised.\r\n \r\nTo close the model, we have to link the emissions, $$e_{k}$$, to the other variables. We can do this by assuming that there is some given emission intensity of production for each technology, which we denote by $$\\epsilon_{k}$$. Thus emissions for technology $$k$$ are given by\r\n \r\n---\r\n\r\n(6)  $$e_{k} =\r\n\\epsilon_{k} \\cdot \\\r\n\\sum_{l=1}^4\r\n\\phi_l^k \\cdot \\\r\nq_k^{max}$$.\r\n\r\n---\r\n \r\nOf course, for many technologies (PV, wind power, nuclear), we have $$\\epsilon_{k} = 0$$.\r\n \r\nAltogether, the model thus consists of minimising our objective equation (1) over all $$\\phi_k^l$$ and $$q_k^{max}$$ and subject to the constraints given by equations (2-6).\r\n \r\nThis optimization is carried out behind the scenes for every value of $$scc$$ (social costs of carbon) and $$scn$$ (social costs of nuclear energy) that you chose.', '', 'Let us now have a somewhat more detailed look at the model that you have used two steps ago. On the surface, this model looks rather similar to the models that we have used and discussed before. However, behind the scenes, it has a very different structure.\r\n{.lead}\r\n\r\n\r\n ![Mathematical equatations](/media/markdownx/5f53824f-c822-4265-a992-58c8fd6e9ada.png)\r\n\r\nIn the models before, you had to choose how much to invest and which technology should be deployed first. Using this power, you have tried to minimise costs or to reduce emissions.\r\n \r\nIn the new model, you do not have to do this basic work anymore. Rather, you only specify general objectives and the model searches by itself for the best possible solution, given these objectives. Thus, the model is the first real **optimization model** used in this course.\r\n \r\nHow does this work? In the first three models, the mathematical structure was always the same; focusing on checking the supply-demand balance of your supply mix. We just added more information on costs and emissions resulting from the supply mix.\r\n \r\nHowever, for this model we first have to define an objective to obtain an optimization problem.\r\nAs discussed before, we want to minimise the social costs of satisfying a given electricity demand.\r\n\r\n<br>\r\n\r\n\r\n###These social costs stem from three major sources:\r\n\r\n**1.** The conventional costs of investment and operation (investment costs and variable costs). These are typically paid by the firms that own the technologies used to generate electricity.\r\n\r\n**2.** The costs of CO<sub>2</sub>-emissions. In many cases, these are **external costs**, that is, these costs are not directly paid by the firms causing the emissions, but rather by the society in general (ie by all persons that are harmed by climate change) not only by the firms.\r\n\r\n**3.** The potential costs of nuclear accidents. Again, these are external costs. \r\n \r\n\r\n<br>\r\n\r\n###In our model the social costs (SC) are therefore defined as:\r\n \r\n---\r\n\r\n(1) $$SC =\\sum_{k,l}(c_{k}^{inv}\\cdot\\\r\nq_{k}^{max}+\r\nq_{k}^{var} \\cdot\\\r\n\\phi_{l}^{k} \\cdot\\\r\nq_{k}^{max}) +\r\nscc \\cdot\\\r\n\\sum_ke_{k}+\r\nscn \\cdot\\\r\nq_{Nuclear}^{max}$$.\r\n \r\n---\r\n\r\nIn this formulation, emissions are weighed by the term $$scc$$, which describes the social costs\r\nof carbon. The costs of nuclear accidents are described by the term $$scn$$, which describe the contribution of one more unit of installed nuclear capacity to the social costs of nuclear accidents. In the model, you have chosen these two values, which describe central parts of the total social costs.\r\n \r\nSecond, we need to define the constraints that we need to take into account while looking for the lowest social costs.\r\n \r\nThe social costs have to be minimised subject to the constraint that demand has to be met in all four hours. As discussed in the last chapter, this constraint can be written in the following way:\r\n\r\n---\r\n\r\n(2) $$\\phi_1^{PV}\\cdot q_{PV}^{max}+\\phi_1^{Wind}\\cdot q_{Wind}^{max}+\\phi_{1}^{Coal}\\cdot q_{Coal}^{max}+\\phi_{1}^{Gas}\\cdot q_{Gas}^{max}+\\phi_{1}^{Nuclear}\\cdot q_{Nuclear}^{max} = d_{1},$$\r\n\r\n---\r\n\r\n(3) $$\\phi_2^{PV}\\cdot q_{PV}^{max}+\\phi_2^{Wind}\\cdot q_{Wind}^{max}+\\phi_{2}^{Coal}\\cdot q_{Coal}^{max}+\\phi_{2}^{Gas}\\cdot q_{Gas}^{max}+\\phi_{2}^{Nuclear}\\cdot q_{Nuclear}^{max} = d_{2},$$\r\n\r\n---\r\n\r\n(4) $$\\phi_3^{PV}\\cdot q_{PV}^{max}+\\phi_3^{Wind}\\cdot q_{Wind}^{max}+\\phi_{3}^{Coal}\\cdot q_{Coal}^{max}+\\phi_{3}^{Gas}\\cdot q_{Gas}^{max}+\\phi_{3}^{Nuclear}\\cdot q_{Nuclear}^{max} = d_{3},$$\r\n\r\n---\r\n\r\n(5) $$\\phi_4^{PV}\\cdot q_{PV}^{max}+\\phi_4^{Wind}\\cdot q_{Wind}^{max}+\\phi_{4}^{Coal}\\cdot q_{Coal}^{max}+\\phi_{4}^{Gas}\\cdot q_{Gas}^{max}+\\phi_{4}^{Nuclear}\\cdot q_{Nuclear}^{max} = d_{4}.$$\r\n \r\n---\r\n\r\nRemember that the deployment of the controllable technologies (ie, the $$\\phi_l^k$$) are decision variables that are chosen during the optimization. Furthermore, the production capacities, $$q_k^{max}$$, are also optimised.\r\n \r\nTo close the model, we have to link the emissions, $$e_{k}$$, to the other variables. We can do this by assuming that there is some given emission intensity of production for each technology, which we denote by $$\\epsilon_{k}$$. Thus emissions for technology $$k$$ are given by\r\n \r\n---\r\n\r\n(6)  $$e_{k} =\r\n\\epsilon_{k} \\cdot \\\r\n\\sum_{l=1}^4\r\n\\phi_l^k \\cdot \\\r\nq_k^{max}$$.\r\n\r\n---\r\n \r\nOf course, for many technologies (PV, wind power, nuclear), we have $$\\epsilon_{k} = 0$$.\r\n \r\nAltogether, the model thus consists of minimising our objective equation (1) over all $$\\phi_k^l$$ and $$q_k^{max}$$ and subject to the constraints given by equations (2-6).\r\n \r\nThis optimization is carried out behind the scenes for every value of $$scc$$ (social costs of carbon) and $$scn$$ (social costs of nuclear energy) that you chose.', '', '', '', '', '', None, None, None, None, '', '', '', '', 'TT', '', 8, 'published', False, None, None, None, None, 226), (1269, datetime.datetime(2022, 5, 5, 14, 45, 23, 207631, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 13, 7, 45, 410210, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 13, 7, 45, 359757, tzinfo=datetime.timezone.utc), False, 'Assess your knowledge', None, 'Assess your knowledge', None, '', None, None, None, 'Assess your knowledge on the system perspective of exploring possible futures.', None, 'Assess your knowledge on the system perspective of exploring possible futures.', None, '', 'assess-your-knowledge-1', 'Select if the following statements are either correct or false or choose the proper equation.\r\n{.lead}\r\n\r\n<br>\r\n\r\n<iframe src="https://h5p.nmc.unibas.ch/wp-admin/admin-ajax.php?action=h5p_embed&id=322" width="885" height="275" frameborder="0" allowfullscreen="allowfullscreen" title="Energy_Economics_2_10"></iframe><script src="https://h5p.nmc.unibas.ch/wp-content/plugins/h5p/h5p-php-library/js/h5p-resizer.js" charset="UTF-8"></script>', '', 'Select if the following statements are either correct or false or choose the proper equation.\r\n{.lead}\r\n\r\n<br>\r\n\r\n<iframe src="https://h5p.nmc.unibas.ch/wp-admin/admin-ajax.php?action=h5p_embed&id=322" width="885" height="275" frameborder="0" allowfullscreen="allowfullscreen" title="Energy_Economics_2_10"></iframe><script src="https://h5p.nmc.unibas.ch/wp-content/plugins/h5p/h5p-php-library/js/h5p-resizer.js" charset="UTF-8"></script>', '', '', '', '', '', None, None, None, None, '', '', '', '', 'TQ', '', 9, 'published', False, None, None, None, None, 226), (1270, datetime.datetime(2022, 5, 5, 14, 45, 32, 6985, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 13, 8, 28, 163071, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 13, 8, 28, 110280, tzinfo=datetime.timezone.utc), False, 'External vs. internal', None, 'External vs. internal', None, '', None, None, None, 'Through this article Hannes Weigt explains how models differentiate between exogenous and endogenous variables.', None, 'Through this article Hannes Weigt explains how models differentiate between exogenous and endogenous variables.', None, '', 'external-vs-internal', 'One important aspect when designing a model is to determine which variables are exogenous and which are endogenous. This determination is directly followed by the question of which is the variable you are actually interested in analysing.\r\n{.lead}\r\n \r\nLet’s use our cost minimization model as an example:\r\n\r\n---\r\n \r\n(1) $$\r\nSC =\r\n\\sum_{k, l}(c_{k}^{inv}\\cdot\\\r\nq_{k}^{max}+\r\nc_{k}^{var} \\cdot\\\r\n\\phi_l^k \\cdot\\\r\nq_{k}^{max}) +\r\nscc \\cdot\\\r\n\\sum_ke_{k}+\r\nsnc \\cdot\\\r\nq_{Nuclear}^{max}\r\n $$\r\n\r\ns.t.\r\n\r\n(2) $$\r\n\\sum_k\\phi_l^k \\cdot\\ q_k^{max} = d_l$$\r\n \r\n(3) $$\r\ne_k =\r\n\\epsilon_k \\cdot\\\r\n{\\sum}_{l=1}^4\r\n\\phi_l^k \\cdot\\\r\nq_k^{max}$$\r\n\r\n---\r\n\r\nFor the exercise you were asked to decide about $$scc$$ (social costs of carbon) and $$scn$$ (social costs of nuclear energy). So, you could think those are the relevant model variables, as those are the ones you are interested in and of which you want to test the impact.\r\n \r\nHowever, for the underlying mathematical model those are external values similar to the costs for the different power plants (exogenous variables). From a model’s perspective the ‘choice variables’ are those values that are determined by the model process (endogenous variables); the variables the model can adjust to obtain the optimal solution. In our minimization model, the choices are the amount of installed capacity $$q_k^{max}$$\r\nand for coal, gas, and nuclear, the share of production during the modelled hours $$\\phi_l^k$$.\r\n \r\nAll other values are fixed: the costs $$c_k^{inv}$$ and $$c_k^{var}$$, the demand for each hour $$d_l$$, the emission factors, $$\\epsilon_k$$, for the different power plants, the hourly supply factors for wind, $$\\phi_l^{Wind}$$, and PV, $$\\phi_ l^{PV}$$, and your choice of $$scc$$ and $$scn$$. For the model they are external variables (often termed parameters or exogenous variables). Values that do not change during the solving process and are not determined by the model but by the modeller – you!\r\n \r\nNow, that still leaves $$e_k$$. Within the model this is a definition of how the emission values for the different technologies are derived based on their hourly output, $$\\phi_l^k \\cdot\\\r\nq_k^{max}$$, and their emission factor, $$\\epsilon_k$$. You could replace the $$e_k$$ in the objective function with the formulation in equation (3) and would obtain the same model results. But often it is more helpful to include specific definitions of model aspects to keep the overall model more traceable for the user instead of minimising the number of variables within the model.\r\n \r\nSummarising, for the model all values that are fixed and not determined by the solution of the model are external or exogenous variables while those that are determined by the model are endogenous variables. Later in the course we will have a short look at how to address the data gathering and handling of those two variable types.\r\n \r\nNevertheless, this leaves the question how your two ‘choice variables’, *scc* and *scn*, fit into the bigger picture. After all, those are the economic variables you want to analyse. In the model exercise you were free to vary their values and obtained the resulting optimal supply mix as model output.\r\n \r\nNaturally, you could do the same with all other parameters; for example, how does the model outcome change if you assume a change in power plant costs or if you assume a higher wind and solar availability? To decide which set of external parameters to test for, you first have to answer the follow up question: which choices are you interested in analysing? Or, in other words, what was the problem you originally wanted to answer with your model?\r\n \r\nIf we assume that the impacts of carbon prices and nuclear risk premiums are your main concern, you should design your model with those two factors in mind. Keep all other external variables on reasonable levels and then derive a set of scenarios with different *scc* and *scn* values. This will allow you to determine the impact the two factors have on the supply mix and hopefully allow you to draw some first conclusions.\r\n \r\nYou are always free to extend and verify your finding by running sensitivity simulations and also by varying other external variables; for example, whether your conclusion about the impact of carbon prices still holds if renewable power plants become significantly cheaper. But don’t try to include all of those right from the start. You will likely end up not being able to identify whether your cost assumptions or your carbon price assumptions drive the result.', '', 'One important aspect when designing a model is to determine which variables are exogenous and which are endogenous. This determination is directly followed by the question of which is the variable you are actually interested in analysing.\r\n{.lead}\r\n \r\nLet’s use our cost minimization model as an example:\r\n\r\n---\r\n \r\n(1) $$\r\nSC =\r\n\\sum_{k, l}(c_{k}^{inv}\\cdot\\\r\nq_{k}^{max}+\r\nc_{k}^{var} \\cdot\\\r\n\\phi_l^k \\cdot\\\r\nq_{k}^{max}) +\r\nscc \\cdot\\\r\n\\sum_ke_{k}+\r\nsnc \\cdot\\\r\nq_{Nuclear}^{max}\r\n $$\r\n\r\ns.t.\r\n\r\n(2) $$\r\n\\sum_k\\phi_l^k \\cdot\\ q_k^{max} = d_l$$\r\n \r\n(3) $$\r\ne_k =\r\n\\epsilon_k \\cdot\\\r\n{\\sum}_{l=1}^4\r\n\\phi_l^k \\cdot\\\r\nq_k^{max}$$\r\n\r\n---\r\n\r\nFor the exercise you were asked to decide about $$scc$$ (social costs of carbon) and $$scn$$ (social costs of nuclear energy). So, you could think those are the relevant model variables, as those are the ones you are interested in and of which you want to test the impact.\r\n \r\nHowever, for the underlying mathematical model those are external values similar to the costs for the different power plants (exogenous variables). From a model’s perspective the ‘choice variables’ are those values that are determined by the model process (endogenous variables); the variables the model can adjust to obtain the optimal solution. In our minimization model, the choices are the amount of installed capacity $$q_k^{max}$$\r\nand for coal, gas, and nuclear, the share of production during the modelled hours $$\\phi_l^k$$.\r\n \r\nAll other values are fixed: the costs $$c_k^{inv}$$ and $$c_k^{var}$$, the demand for each hour $$d_l$$, the emission factors, $$\\epsilon_k$$, for the different power plants, the hourly supply factors for wind, $$\\phi_l^{Wind}$$, and PV, $$\\phi_ l^{PV}$$, and your choice of $$scc$$ and $$scn$$. For the model they are external variables (often termed parameters or exogenous variables). Values that do not change during the solving process and are not determined by the model but by the modeller – you!\r\n \r\nNow, that still leaves $$e_k$$. Within the model this is a definition of how the emission values for the different technologies are derived based on their hourly output, $$\\phi_l^k \\cdot\\\r\nq_k^{max}$$, and their emission factor, $$\\epsilon_k$$. You could replace the $$e_k$$ in the objective function with the formulation in equation (3) and would obtain the same model results. But often it is more helpful to include specific definitions of model aspects to keep the overall model more traceable for the user instead of minimising the number of variables within the model.\r\n \r\nSummarising, for the model all values that are fixed and not determined by the solution of the model are external or exogenous variables while those that are determined by the model are endogenous variables. Later in the course we will have a short look at how to address the data gathering and handling of those two variable types.\r\n \r\nNevertheless, this leaves the question how your two ‘choice variables’, *scc* and *scn*, fit into the bigger picture. After all, those are the economic variables you want to analyse. In the model exercise you were free to vary their values and obtained the resulting optimal supply mix as model output.\r\n \r\nNaturally, you could do the same with all other parameters; for example, how does the model outcome change if you assume a change in power plant costs or if you assume a higher wind and solar availability? To decide which set of external parameters to test for, you first have to answer the follow up question: which choices are you interested in analysing? Or, in other words, what was the problem you originally wanted to answer with your model?\r\n \r\nIf we assume that the impacts of carbon prices and nuclear risk premiums are your main concern, you should design your model with those two factors in mind. Keep all other external variables on reasonable levels and then derive a set of scenarios with different *scc* and *scn* values. This will allow you to determine the impact the two factors have on the supply mix and hopefully allow you to draw some first conclusions.\r\n \r\nYou are always free to extend and verify your finding by running sensitivity simulations and also by varying other external variables; for example, whether your conclusion about the impact of carbon prices still holds if renewable power plants become significantly cheaper. But don’t try to include all of those right from the start. You will likely end up not being able to identify whether your cost assumptions or your carbon price assumptions drive the result.', '', '', '', '', '', None, None, None, None, '', '', '', '', 'TT', '', 10, 'published', False, None, None, None, None, 226), (1271, datetime.datetime(2022, 5, 5, 14, 45, 42, 520404, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 13, 9, 12, 799992, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 13, 9, 12, 753979, tzinfo=datetime.timezone.utc), False, 'Wrap up: who do we steer?', None, 'Wrap up: who do we steer?', None, '', None, None, None, 'Through this article Hannes Weigt sums up how to translate a problem into a basic model design using optimization approaches as an example.', None, 'Through this article Hannes Weigt sums up how to translate a problem into a basic model design using optimization approaches as an example.', None, '', 'wrap-up-who-do-we-steer', 'In this chapter we focused on model designs from a system perspective. Using our energy system example, we gradually extended the included elements to end up with a full optimization model.\r\n{.lead}\r\n\r\n \r\nOptimization models are relatively easy to design and powerful tools to represent even large scale bottom-up type system representations. The main caveat is the need for a single objective that can be minimised or maximised. We learned that social costs or social welfare are common economic approaches to derive reasonable objectives in settings where more than one criteria needs to be considered.\r\n \r\nIf you think about the challenges we face in energy and environmental policy, there are a lot of problems that can be represented by some type of optimization model whether it is optimal power plant investment, the trade-off between environmental damage and the costs needed for abatement, or the impact that an energy tax would have on energy consumption. But also in other fields and even in your daily life a lot of aspects have properties of optimization problems. Just think about it the next time you buy groceries!\r\n\r\n![modeling phases: problem and model](/media/markdownx/dff8ffb6-b57a-4dc1-9bd2-254d54cdcc37.png)\r\n\r\nWe also captured how a research question – the impact of emission prices and nuclear risk premiums – can be tackled using such an optimization model. Always keep in mind that your research problem comes first and the model needs to be designed to provide insights on this problem, not the other way round.\r\n \r\nWe will extend the details on modelling design by shifting the focus towards the company and market perspective in the next chapter; in other words, we will shift the focus to perspectives we would like to steer with our policies.', '', 'In this chapter we focused on model designs from a system perspective. Using our energy system example, we gradually extended the included elements to end up with a full optimization model.\r\n{.lead}\r\n\r\n \r\nOptimization models are relatively easy to design and powerful tools to represent even large scale bottom-up type system representations. The main caveat is the need for a single objective that can be minimised or maximised. We learned that social costs or social welfare are common economic approaches to derive reasonable objectives in settings where more than one criteria needs to be considered.\r\n \r\nIf you think about the challenges we face in energy and environmental policy, there are a lot of problems that can be represented by some type of optimization model whether it is optimal power plant investment, the trade-off between environmental damage and the costs needed for abatement, or the impact that an energy tax would have on energy consumption. But also in other fields and even in your daily life a lot of aspects have properties of optimization problems. Just think about it the next time you buy groceries!\r\n\r\n![modeling phases: problem and model](/media/markdownx/dff8ffb6-b57a-4dc1-9bd2-254d54cdcc37.png)\r\n\r\nWe also captured how a research question – the impact of emission prices and nuclear risk premiums – can be tackled using such an optimization model. Always keep in mind that your research problem comes first and the model needs to be designed to provide insights on this problem, not the other way round.\r\n \r\nWe will extend the details on modelling design by shifting the focus towards the company and market perspective in the next chapter; in other words, we will shift the focus to perspectives we would like to steer with our policies.', '', '', '', '', '', None, None, None, None, '', '', '', '', 'TT', '', 11, 'published', False, None, None, None, None, 226)]])}, None) | {} | <django_redis.cache.RedisCache object at 0x7910e287a790> | |
/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in run(101) return _run_old_run_func() /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in _run_old_run_func(94) return old_run_func(self, *a, **kw) /usr/local/lib/python3.11/concurrent/futures/thread.py in _worker(83) work_item.run() /usr/local/lib/python3.11/concurrent/futures/thread.py in run(58) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56) result = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in middleware(32) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/allauth/account/middleware.py in middleware(36) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/simple_history/middleware.py in middleware(41) return get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/django_htmx/middleware.py in __call__(43) return self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in __call__(168) response = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/panels.py in process_request(41) return super(CachalotPanel, self).process_request(request) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in __call__(244) current_executor.run_until_future(call_result) /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run_until_future(81) work_item.run() /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run(40) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(90) return callback(request, *args, **kwargs) /app/project/utils/decorators.py in apply_cache(72) cache.set(CACHE_KEY, response.render(), ttl) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_patched_render(41) return old_render(self) /usr/local/lib/python3.11/site-packages/django/template/response.py in render(114) self.content = self.rendered_content /usr/local/lib/python3.11/site-packages/sentry_sdk/utils.py in runner(1788) return sentry_patched_function(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/templates.py in rendered_content(77) return real_rendered_content.fget(self) /usr/local/lib/python3.11/site-packages/django/template/response.py in rendered_content(92) return template.render(context, self._request) /usr/local/lib/python3.11/site-packages/django/template/backends/django.py in render(61) return self.template.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(175) return self._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157) return compiled_parent._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157) return compiled_parent._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63) result = block.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63) result = block.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(208) return template.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(177) return self._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(321) return nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(238) nodelist.append(node.render_annotated(context)) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(194) len_values = len(values) /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(37) return original(compiler, *args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(96) return _get_result_or_execute_query( /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in _get_result_or_execute_query(71) cache.set_many(to_be_set, cachalot_settings.CACHALOT_TIMEOUT) |
|||||
0,5834 | get_many | (['e3a5db5a670ad803efb866441f33de58309be2e2', '76e323efd8711853e13c9f7cf976845908364eb2', '138549f5508bbba7283d6a0625e51c589d845e8f', '59d2126086abc637de236a2bcdbcc350619e0f14'],) | {} | <django_redis.cache.RedisCache object at 0x7910e287a790> | |
/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in run(101) return _run_old_run_func() /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in _run_old_run_func(94) return old_run_func(self, *a, **kw) /usr/local/lib/python3.11/concurrent/futures/thread.py in _worker(83) work_item.run() /usr/local/lib/python3.11/concurrent/futures/thread.py in run(58) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56) result = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in middleware(32) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/allauth/account/middleware.py in middleware(36) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/simple_history/middleware.py in middleware(41) return get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/django_htmx/middleware.py in __call__(43) return self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in __call__(168) response = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/panels.py in process_request(41) return super(CachalotPanel, self).process_request(request) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in __call__(244) current_executor.run_until_future(call_result) /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run_until_future(81) work_item.run() /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run(40) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(90) return callback(request, *args, **kwargs) /app/project/utils/decorators.py in apply_cache(72) cache.set(CACHE_KEY, response.render(), ttl) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_patched_render(41) return old_render(self) /usr/local/lib/python3.11/site-packages/django/template/response.py in render(114) self.content = self.rendered_content /usr/local/lib/python3.11/site-packages/sentry_sdk/utils.py in runner(1788) return sentry_patched_function(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/templates.py in rendered_content(77) return real_rendered_content.fget(self) /usr/local/lib/python3.11/site-packages/django/template/response.py in rendered_content(92) return template.render(context, self._request) /usr/local/lib/python3.11/site-packages/django/template/backends/django.py in render(61) return self.template.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(175) return self._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157) return compiled_parent._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157) return compiled_parent._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63) result = block.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63) result = block.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(208) return template.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(177) return self._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(321) return nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(238) nodelist.append(node.render_annotated(context)) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(194) len_values = len(values) /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(37) return original(compiler, *args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(96) return _get_result_or_execute_query( /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in _get_result_or_execute_query(46) data = cache.get_many(table_cache_keys + [cache_key]) |
|||||
1,2165 | set_many | ({'59d2126086abc637de236a2bcdbcc350619e0f14': (1736881791.6471457, [[(1272, datetime.datetime(2022, 5, 5, 19, 13, 36, 964921, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 13, 11, 23, 654571, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 13, 11, 23, 591296, tzinfo=datetime.timezone.utc), False, 'From system to firms', None, 'From system to firms', None, '', None, None, None, 'Watch Frank Krysiak explaining the three standard building blocks for capturing firm behaviour used in environmental and energy economics.', None, 'Watch Frank Krysiak explaining the three standard building blocks for capturing firm behaviour used in environmental and energy economics.', None, 'exploring-possible-futures/firm-perspective/from-system-to-firms/006_kQOB2ky.jpg', 'from-system-to-firms', 'In general, many economic models consist of a small number of standard building blocks. These standard building blocks are parts of a model that are well understood and that have been found to be useful in a wide range of settings.\r\n{.lead}\r\n\r\n![embed](https://vimeo.com/734307405/85452e22c0)\r\n \r\nFor example, in environmental economic models, we tend to focus on describing emissions and environmental policy. As emissions are often caused by firms, the first building block is the most important one for us.\r\n \r\nFor describing firm behaviour, you can choose among three standard models:\r\n \r\n- The **Emission Choice Model (ECM)** describes how much a firm emits of a pollutant given an environmental policy. The firm maximises its benefit from emitting, such as gaining profits, minus the costs induced by the regulation, like a tax that has to be paid on emissions.\r\n \r\n- In the **Output Abatement Choice Model (OACM)**, a firm chooses how much it produces and how carefully it produces.\r\n \r\n- The **Input Choice Model (ICM)** describes how a firm chooses between different inputs when it is subject to an environmental regulation. The typical example is agricultural production, where a firm needs to choose how much labour, how much equipment, and how much fertiliser is to be used in production.', '', 'In general, many economic models consist of a small number of standard building blocks. These standard building blocks are parts of a model that are well understood and that have been found to be useful in a wide range of settings.\r\n{.lead}\r\n\r\n![embed](https://vimeo.com/734307405/85452e22c0)\r\n \r\nFor example, in environmental economic models, we tend to focus on describing emissions and environmental policy. As emissions are often caused by firms, the first building block is the most important one for us.\r\n \r\nFor describing firm behaviour, you can choose among three standard models:\r\n \r\n- The **Emission Choice Model (ECM)** describes how much a firm emits of a pollutant given an environmental policy. The firm maximises its benefit from emitting, such as gaining profits, minus the costs induced by the regulation, like a tax that has to be paid on emissions.\r\n \r\n- In the **Output Abatement Choice Model (OACM)**, a firm chooses how much it produces and how carefully it produces.\r\n \r\n- The **Input Choice Model (ICM)** describes how a firm chooses between different inputs when it is subject to an environmental regulation. The typical example is agricultural production, where a firm needs to choose how much labour, how much equipment, and how much fertiliser is to be used in production.', '', '', '', '', '', None, None, None, None, '', '', '', '', 'TV', '', 0, 'published', False, None, None, None, None, 227), (1273, datetime.datetime(2022, 5, 5, 19, 13, 46, 633599, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 13, 12, 22, 968205, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 13, 12, 22, 912403, tzinfo=datetime.timezone.utc), False, 'Building blocks: firm behaviour', None, 'Building blocks: firm behaviour', None, '', None, None, None, 'In this article, Frank Krysiak gives you insights into the most important type of building blocks: firm behaviour.', None, 'In this article, Frank Krysiak gives you insights into the most important type of building blocks: firm behaviour.', None, '', 'building-blocks-firm-behaviour', 'In the previous step, you have seen the main ideas that lead to the different building blocks of firm behaviour. Let us now go into somewhat more detail: let us investigate what a building block of firm behaviour has to do to fit into energy or environmental economic models and what kind of assumptions are typically used to achieve this.\r\n{.lead}\r\n\r\n![Firm](/media/markdownx/5c8baf41-9eb5-4eb1-a198-f0c3cd22632e.png)\r\n \r\nAs explained in the previous video, these building blocks describe the behaviour of some of the most important actors in our models: firms.\r\n \r\nFirms are important because they produce goods, such as electricity, and decide how much to produce and what kind of technologies are used in the production. Furthermore, as a side effect of these decisions, firms determine a substantial part of the emissions in an economy, such as CO<sub>2</sub>-emissions from electricity production. It is important to recognize that firms pursue their own objectives and might thus not decide in a way that is best for society. Thus, firm decisions should be modelled based on firm objectives.\r\n \r\n<br>\r\n\r\n###To describe the behaviour of firms, you will need four items: \r\n\r\n**1.** You have to determine which decisions the firms are able to make in your model: do they only decide how much to produce or also how to produce?\r\n\r\n**2.** You have to describe the circumstances under which the firms make these decisions, such as market prices, like the electricity price, and policy measures, like a tax on CO<sub>2</sub>-emissions.\r\n\r\n**3.** You have to describe how firms decide: what is their objective when choosing among different options?\r\n\r\n**4.** Finally, you have to include some technological constraints in your model: a firm using a coal-fired power plant can hardly decide to produce electricity without emissions.\r\n \r\n<br>\r\n\r\n###Let us go through these items and investigate what the three building blocks discussed in the video imply.\r\n \r\n**Which decisions can your firms make?** Answering this question determines which variables are chosen for the overall model according to the objectives of the modelled firms.\r\n \r\nIn reality, firms decide about how much and in which technology they invest, how their technologies are deployed in production, and what other inputs (such as labour, resources, materials) are used in addition. In our model, these decisions are usually described in much less detail.\r\n \r\nThe **Emission Choice Model (ECM)** lets firms decide only about how much they emit. Everything else, such as production, technology choice, use of labour, is not explicitly described in the model. This does not imply that these choices are not relevant nor implicitly accounted for. It is only not possible to calculate the results from the model. This model is thus of most use only if emissions are the central concern. Thus, if you want to describe the effects of climate policy on the emissions of the energy sector, it is the model to use. If you are concerned with more effects of climate policy, such as how much electricity will cost or how much unemployment the policy might generate, you will need more elaborate models.\r\n \r\nThe **Output Abatement Choice Model (OACM)** is one option to address more complex policy questions. This model lets firms decide how much and how carefully they produce. Thus, the OACM does not only track emissions (which are a result of the level of production and care in production) but also the output. You would, for example, be able to describe the effects of a climate policy on electricity production and the electricity price. However, you would still not know whether the policy generates unemployment.\r\n \r\nInformation about effects on the economy could be delivered by the **Input Choice Model (ICM)** that describes which factors of production, such as, labour, capital, fossil fuels, materials, are used, and to what extent, by a firm. This model can describe a process where a firm switches from a labour-intensive technology, such as coal, to a capital-intensive technology, such as PV, due to a CO<sub>2</sub> tax. It can thus describe, for example, employment effects of climate policies.\r\n \r\nIn each of these models, firms have to decide under given circumstances. For example, if you assume perfect competition, firms will treat all market prices as exogenously determined and only ask how much to produce under given prices and policies. Which prices and policies are **relevant factors** for the firms, depends on the model that you use.\r\n \r\nIn the ECM, your firm only chooses emissions. Thus the only relevant factor is the price of emissions, which could be set by a CO<sub>2</sub> tax. In the OACM, a firm chooses its output and (via the care used in production) also its emissions. Thus, it reacts to the output price (ie, the electricity price) and the price of emissions. Finally, in the ICM, a firm chooses how much to use each possible input and thereby (implicitly) also its level of production and its emissions. It thus reacts to all factor prices (such as wages, fuel prices, interest rates), the output price (eg, the electricity price), and the price of emissions.\r\n \r\nYou already see that the models do not only differ in their explanatory power but also in their complexity: the model that describes most (the ICM) also needs most information. Therefore, it is usually a good idea to choose the simplest possible model that can describe all effects that are relevant for your question.\r\n \r\nThe next choice that you must make is to determine what objective your firms follow in making their decisions. In this regard, the different building blocks are rather similar. They imply that the firm tries to maximise its benefit, which is usually measured as its profit. (In other models where the social planner is the main actor, the objective might be to maximise social welfare.)\r\n \r\nIn the ECM, the firm *i* (out of many firms) maximises the benefit of emitting (eg, the profit that can be attained if a certain level of emissions is allowed) minus the costs of emitting:\r\n\r\n---\r\n\r\n(1) \r\n$$\\max \\limits_{e_i \\ \\geq \\ 0} \\enspace {B}_i(e_i) - t \\cdot e_i$$\r\n\r\n\r\n---\r\n \r\n$$B_i(e_i)$$ describes the benefit of emitting and the costs of emitting are the tax $$t$$ times emissions $$e_i$$. As explained above, the firm chooses only emissions.\r\n \r\nIn the OACM, the firm *j* maximises its revenues (price, *p*, times produced quantity, $$q_i$$, minus the costs of production, $$c_i(q_i,a_i)$$. Here, the costs are composed of how much the firm produces, $$q_i$$, and the level of abatement, $$a_i$$, minus the costs of emissions (as above, but emissions are now also a function of production and abatement, $$e_i(q_i,a_i)$$):\r\n \r\n\r\n---\r\n\r\n(2) \r\n$$\\max \\limits_{q_i,a_i \\ \\geq \\ 0} \\enspace p \\cdot q_i \\ - \\ c_i(q_i,a_i) - t \\cdot e_i(q_i,a_i)$$\r\n\r\n---\r\n\r\nThis is simply a maximisation of profit (revenue minus costs).\r\n \r\nFinally, in the ICM, our firm *i* again maximises its profit, but now costs are described in a different way accounting for the factors *j* needed for production:\r\n\r\n---\r\n\r\n(3) \r\n$$\\max \\limits_{q_i,a_i \\ \\geq \\ 0} \\enspace p \\cdot f_i(x_{i,1}, x_{i,2}, \\ldots, x_{i,m})-\\sum_{j=1}^m W_j \\cdot x_{i,j} - t \\cdot e_i(x_{i,1}, x_{i,2}, \\ldots, x_{i,m})\r\n$$\r\n\r\n---\r\n\r\n\r\nCosts are now described by factor costs, that is, factor price, $$w_j$$, times amount used of the factor, $$x_{i,j}$$, and revenues are now the output price times the amount produced, which is a function of all the inputs used ($$f_i(x_{i,1}, x_{i,2}, \\ldots, x_{i,m})$$) Similarly, emissions are now a function of inputs ($$e_ix_{i,1}, x_{i,2}, \\ldots, x_{i,m})$$). Again, equation (3) is simply a maximisation of profit.\r\n \r\nThus, although the models differ in how they describe firm behaviour, they are based on the same main assumption: firms pursue the objective of maximising their profit.\r\n \r\nIn pursuing this objective, the firms face **technological constraints**. Such constraints describe what is feasible: how much can emissions per unit of production be reduced? How costly is this in terms of the use of other factors of production? How much output can be generated for a given amount of inputs? Overall, the setup for all three models is a classical optimization formulation with objective and side constraints.\r\n \r\nThese constraints are described in different ways in the three model types. In the ECM, the function $$B_i(e_i)$$ is used to this end. This function describes the maximal profit a firm *i* can achieve for different levels of emissions. It thus describes the technological options for and the implied costs of reducing emissions. Take note that this function is thought to not only account for the direct costs of reducing emissions (such as using filters or scrubbers) but also for indirect costs, such as producing less and thus having less revenue.\r\n \r\nIn the OACM, technological constraints are included in the function $$c_i(q_,a_i)$$ that describes how much it costs to produce a given output, $$q_i$$, at a given level of care, $$a_i$$, and thus (implicitly), which technologies and factors are used to this end. Also, the function $$e_i(q_i,a_i)$$ is based on technological considerations: how strongly can emissions be reduced by balancing care against the amount of production?\r\n \r\nFinally, the ICM describes technological constraints via a production function $$f_i(x_{i,1},x_{i,2}, \\ldots ,x_{i,m})$$, which explains how much output a given combination of inputs yield, and the emission function $$e_i(x_{i,1},x_{i,2}, \\ldots ,x_{i,m})$$, which describes the emissions resulting from the use of a given amount of inputs (such as fossil fuels).\r\n \r\nIn the upcoming examples of this chapter, you will see how such models can be filled with life and adjusted to real world data.', '', 'In the previous step, you have seen the main ideas that lead to the different building blocks of firm behaviour. Let us now go into somewhat more detail: let us investigate what a building block of firm behaviour has to do to fit into energy or environmental economic models and what kind of assumptions are typically used to achieve this.\r\n{.lead}\r\n\r\n![Firm](/media/markdownx/5c8baf41-9eb5-4eb1-a198-f0c3cd22632e.png)\r\n \r\nAs explained in the previous video, these building blocks describe the behaviour of some of the most important actors in our models: firms.\r\n \r\nFirms are important because they produce goods, such as electricity, and decide how much to produce and what kind of technologies are used in the production. Furthermore, as a side effect of these decisions, firms determine a substantial part of the emissions in an economy, such as CO<sub>2</sub>-emissions from electricity production. It is important to recognize that firms pursue their own objectives and might thus not decide in a way that is best for society. Thus, firm decisions should be modelled based on firm objectives.\r\n \r\n<br>\r\n\r\n###To describe the behaviour of firms, you will need four items: \r\n\r\n**1.** You have to determine which decisions the firms are able to make in your model: do they only decide how much to produce or also how to produce?\r\n\r\n**2.** You have to describe the circumstances under which the firms make these decisions, such as market prices, like the electricity price, and policy measures, like a tax on CO<sub>2</sub>-emissions.\r\n\r\n**3.** You have to describe how firms decide: what is their objective when choosing among different options?\r\n\r\n**4.** Finally, you have to include some technological constraints in your model: a firm using a coal-fired power plant can hardly decide to produce electricity without emissions.\r\n \r\n<br>\r\n\r\n###Let us go through these items and investigate what the three building blocks discussed in the video imply.\r\n \r\n**Which decisions can your firms make?** Answering this question determines which variables are chosen for the overall model according to the objectives of the modelled firms.\r\n \r\nIn reality, firms decide about how much and in which technology they invest, how their technologies are deployed in production, and what other inputs (such as labour, resources, materials) are used in addition. In our model, these decisions are usually described in much less detail.\r\n \r\nThe **Emission Choice Model (ECM)** lets firms decide only about how much they emit. Everything else, such as production, technology choice, use of labour, is not explicitly described in the model. This does not imply that these choices are not relevant nor implicitly accounted for. It is only not possible to calculate the results from the model. This model is thus of most use only if emissions are the central concern. Thus, if you want to describe the effects of climate policy on the emissions of the energy sector, it is the model to use. If you are concerned with more effects of climate policy, such as how much electricity will cost or how much unemployment the policy might generate, you will need more elaborate models.\r\n \r\nThe **Output Abatement Choice Model (OACM)** is one option to address more complex policy questions. This model lets firms decide how much and how carefully they produce. Thus, the OACM does not only track emissions (which are a result of the level of production and care in production) but also the output. You would, for example, be able to describe the effects of a climate policy on electricity production and the electricity price. However, you would still not know whether the policy generates unemployment.\r\n \r\nInformation about effects on the economy could be delivered by the **Input Choice Model (ICM)** that describes which factors of production, such as, labour, capital, fossil fuels, materials, are used, and to what extent, by a firm. This model can describe a process where a firm switches from a labour-intensive technology, such as coal, to a capital-intensive technology, such as PV, due to a CO<sub>2</sub> tax. It can thus describe, for example, employment effects of climate policies.\r\n \r\nIn each of these models, firms have to decide under given circumstances. For example, if you assume perfect competition, firms will treat all market prices as exogenously determined and only ask how much to produce under given prices and policies. Which prices and policies are **relevant factors** for the firms, depends on the model that you use.\r\n \r\nIn the ECM, your firm only chooses emissions. Thus the only relevant factor is the price of emissions, which could be set by a CO<sub>2</sub> tax. In the OACM, a firm chooses its output and (via the care used in production) also its emissions. Thus, it reacts to the output price (ie, the electricity price) and the price of emissions. Finally, in the ICM, a firm chooses how much to use each possible input and thereby (implicitly) also its level of production and its emissions. It thus reacts to all factor prices (such as wages, fuel prices, interest rates), the output price (eg, the electricity price), and the price of emissions.\r\n \r\nYou already see that the models do not only differ in their explanatory power but also in their complexity: the model that describes most (the ICM) also needs most information. Therefore, it is usually a good idea to choose the simplest possible model that can describe all effects that are relevant for your question.\r\n \r\nThe next choice that you must make is to determine what objective your firms follow in making their decisions. In this regard, the different building blocks are rather similar. They imply that the firm tries to maximise its benefit, which is usually measured as its profit. (In other models where the social planner is the main actor, the objective might be to maximise social welfare.)\r\n \r\nIn the ECM, the firm *i* (out of many firms) maximises the benefit of emitting (eg, the profit that can be attained if a certain level of emissions is allowed) minus the costs of emitting:\r\n\r\n---\r\n\r\n(1) \r\n$$\\max \\limits_{e_i \\ \\geq \\ 0} \\enspace {B}_i(e_i) - t \\cdot e_i$$\r\n\r\n\r\n---\r\n \r\n$$B_i(e_i)$$ describes the benefit of emitting and the costs of emitting are the tax $$t$$ times emissions $$e_i$$. As explained above, the firm chooses only emissions.\r\n \r\nIn the OACM, the firm *j* maximises its revenues (price, *p*, times produced quantity, $$q_i$$, minus the costs of production, $$c_i(q_i,a_i)$$. Here, the costs are composed of how much the firm produces, $$q_i$$, and the level of abatement, $$a_i$$, minus the costs of emissions (as above, but emissions are now also a function of production and abatement, $$e_i(q_i,a_i)$$):\r\n \r\n\r\n---\r\n\r\n(2) \r\n$$\\max \\limits_{q_i,a_i \\ \\geq \\ 0} \\enspace p \\cdot q_i \\ - \\ c_i(q_i,a_i) - t \\cdot e_i(q_i,a_i)$$\r\n\r\n---\r\n\r\nThis is simply a maximisation of profit (revenue minus costs).\r\n \r\nFinally, in the ICM, our firm *i* again maximises its profit, but now costs are described in a different way accounting for the factors *j* needed for production:\r\n\r\n---\r\n\r\n(3) \r\n$$\\max \\limits_{q_i,a_i \\ \\geq \\ 0} \\enspace p \\cdot f_i(x_{i,1}, x_{i,2}, \\ldots, x_{i,m})-\\sum_{j=1}^m W_j \\cdot x_{i,j} - t \\cdot e_i(x_{i,1}, x_{i,2}, \\ldots, x_{i,m})\r\n$$\r\n\r\n---\r\n\r\n\r\nCosts are now described by factor costs, that is, factor price, $$w_j$$, times amount used of the factor, $$x_{i,j}$$, and revenues are now the output price times the amount produced, which is a function of all the inputs used ($$f_i(x_{i,1}, x_{i,2}, \\ldots, x_{i,m})$$) Similarly, emissions are now a function of inputs ($$e_ix_{i,1}, x_{i,2}, \\ldots, x_{i,m})$$). Again, equation (3) is simply a maximisation of profit.\r\n \r\nThus, although the models differ in how they describe firm behaviour, they are based on the same main assumption: firms pursue the objective of maximising their profit.\r\n \r\nIn pursuing this objective, the firms face **technological constraints**. Such constraints describe what is feasible: how much can emissions per unit of production be reduced? How costly is this in terms of the use of other factors of production? How much output can be generated for a given amount of inputs? Overall, the setup for all three models is a classical optimization formulation with objective and side constraints.\r\n \r\nThese constraints are described in different ways in the three model types. In the ECM, the function $$B_i(e_i)$$ is used to this end. This function describes the maximal profit a firm *i* can achieve for different levels of emissions. It thus describes the technological options for and the implied costs of reducing emissions. Take note that this function is thought to not only account for the direct costs of reducing emissions (such as using filters or scrubbers) but also for indirect costs, such as producing less and thus having less revenue.\r\n \r\nIn the OACM, technological constraints are included in the function $$c_i(q_,a_i)$$ that describes how much it costs to produce a given output, $$q_i$$, at a given level of care, $$a_i$$, and thus (implicitly), which technologies and factors are used to this end. Also, the function $$e_i(q_i,a_i)$$ is based on technological considerations: how strongly can emissions be reduced by balancing care against the amount of production?\r\n \r\nFinally, the ICM describes technological constraints via a production function $$f_i(x_{i,1},x_{i,2}, \\ldots ,x_{i,m})$$, which explains how much output a given combination of inputs yield, and the emission function $$e_i(x_{i,1},x_{i,2}, \\ldots ,x_{i,m})$$, which describes the emissions resulting from the use of a given amount of inputs (such as fossil fuels).\r\n \r\nIn the upcoming examples of this chapter, you will see how such models can be filled with life and adjusted to real world data.', '', '', '', '', '', None, None, None, None, '', '', '', '', 'TT', '', 1, 'published', False, None, None, None, None, 227), (1274, datetime.datetime(2022, 5, 5, 19, 14, 0, 294599, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 13, 14, 19, 958809, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 13, 14, 19, 903436, tzinfo=datetime.timezone.utc), False, 'How to use and distinguish building blocks? I', None, 'How to use and distinguish building blocks? I', None, '', None, None, None, 'Reflect how to use and distinguish building blocks.', None, 'Reflect how to use and distinguish building blocks.', None, '', 'how-to-use-and-distinguish-building-blocks-i', 'You have seen different building blocks for describing firm behaviour. Now evaluate cases and decide, which blocks to use for which purpose and why.\r\n{.lead}\r\n\r\nConsider the following cases:\r\n\r\n**1.** A model is sought that can describe how fertilizer use in agriculture changes if a tax on some types of fertilizers is introduced. \r\n\r\n**2.** A model shall describe how electricity providers change their production if a CO<sub>2</sub>-tax is introduced and what consequences can be expected for the price of electricity. \r\n\r\n**3.** A model should be built that describes how the price on a market for CO<sub>2</sub>-emission permits changes if the total number of permits changes. \r\n\r\n**Which model should be used in each case?** Write down your choices for these three cases. Include why you chose a certain building block for 1, 2 and 3.', '', 'You have seen different building blocks for describing firm behaviour. Now evaluate cases and decide, which blocks to use for which purpose and why.\r\n{.lead}\r\n\r\nConsider the following cases:\r\n\r\n**1.** A model is sought that can describe how fertilizer use in agriculture changes if a tax on some types of fertilizers is introduced. \r\n\r\n**2.** A model shall describe how electricity providers change their production if a CO<sub>2</sub>-tax is introduced and what consequences can be expected for the price of electricity. \r\n\r\n**3.** A model should be built that describes how the price on a market for CO<sub>2</sub>-emission permits changes if the total number of permits changes. \r\n\r\n**Which model should be used in each case?** Write down your choices for these three cases. Include why you chose a certain building block for 1, 2 and 3.', '', '', '', '', '', None, None, None, None, '', '', '', '', 'TT', '', 2, 'published', True, 'Please share your answer in the [comments](#comments) section below.', None, 'Please share your answer in the [comments](#comments) section below.', None, 227), (1275, datetime.datetime(2022, 5, 5, 19, 14, 11, 746777, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 13, 15, 42, 97981, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 13, 15, 42, 41969, tzinfo=datetime.timezone.utc), False, 'Building blocks: additional observations', None, 'Building blocks: additional observations', None, '', None, None, None, 'Frank Krysiak describes the approaches to the modeling process. Read this article to understand how they play together.', None, 'Frank Krysiak describes the approaches to the modeling process. Read this article to understand how they play together.', None, '', 'building-blocks-additional-observations', 'After having addressed models of firm behaviour in detail, we conclude with some general observations. {.lead}\r\n\r\nFirst, you have seen that there are variables in the model that are explained by part of the model. For example, the Output Abatement Choice Model (OACM) explains the level of production and the emissions of a firm by assuming that the firm chooses these variables in a way that maximises the firm’s profit.\r\n\r\nAs presented in the last chapter, the variables explained in such a way in a model are called endogenous variables; variables that are calculated using the model. As you will see, once we add additional model structures, additional variables will be explained in this way. For example, the electricity price might be exogenous to a firm in the OACM but could be explained by a market model, and thus, electricity prices would be an endogenous variable in a market model.\r\n\r\nIn contrast, we have the exogenous variables like the carbon tax in the preceding models. This tax will be set by the government and, as long as you do not aim at explaining how a government sets this tax with the model, it will not be calculated from the model.\r\n\r\nOne rule that is useful in modelling is **that the number of equations for solving the model has to be as least as large as the number of endogenous variables**: we need at least one equation to calculate each of these variables. This is an important check for each model that you build: do you have enough equations to explain every endogenous variable of your model?\r\n\r\nLet us perform this check for the OACM model. Here, you have two endogenous variables (output and abatement) for each firm. Thus for $$n$$ firms, we have $$2 n$$ endogenous variables. In terms of equations, the model is an optimization model with two decision variables (output and abatement) in one objective function (profit) for each firm:\r\n\r\n---\r\n(1) $$p \\cdot q_i - c_i(q_i,a_i) - t \\cdot e_i(q_i,a_i)$$\r\n\r\n---\r\n\r\nAs is usual in optimization, the optimality conditions are obtained by differentiating the objective of each firm *i* with regard to the decision variables of this firm (that is, $$q_i$$ and $$a_i$$) and setting the result equal to zero:\r\n\r\n---\r\n\r\n(2) $$p - \\frac{\\partial c_i(q_i,a_i)}{\\partial q_i} - t \\cdot \\frac{\\partial e_i(q_i,a_i)}{\\partial q_i} = 0$$\r\n\r\n(3) $$- \\frac{\\partial c_i(q_i,a_i)}{\\partial a_i} - t \\cdot \\frac{\\partial e_i(q_i,a_i)}{\\partial a_i} = 0$$\r\n\r\n---\r\n\r\nThose are the two equations you will need to solve the model.\r\n\r\nEquations (2) and (3) are two equations for each firm, $$i$$, so that we have $$2 n$$ equations for $$n$$ firms. Thus, you have $$2 n$$ equations for $$2 n$$ endogenous variables, which is the minimal necessary number. This works as long as the model does not get corner solutions (that is, as long as the values of $$q_i$$ and $$a_i$$ implied by these equations are strictly greater than zero).\r\n\r\nA second general observation that can be made at this point of the course is that models should be built so that they are fit for a given purpose. It is not useful at all to always use the most general model available, nor is it useful to build models that are not sufficiently detailed to answer your questions. As Albert Einstein once said: ‘Everything should be made as simple as possible but not simpler.’\r\n\r\nSo again, you always need to think about ‘what is the problem you want to answer with the model?’ before starting to build a model. This will help to identify which variables have to be explained by the model (ie, which variables have to be endogenous) and which are exogenous variables.\r\n\r\nOnce you know this, you can build a model that is as simple as possible while still being able to answer your questions. To this end, you can ask which actors would choose the variables that you want to calculate. These actors will then be modelled by building blocks that are able to explain the variables of interest. This provides the core of your model.\r\n\r\nThe next step is then to add some additional building blocks to connect the actors in your model and to fill some gaps. We will address this in the following steps.', '', 'After having addressed models of firm behaviour in detail, we conclude with some general observations. {.lead}\r\n\r\nFirst, you have seen that there are variables in the model that are explained by part of the model. For example, the Output Abatement Choice Model (OACM) explains the level of production and the emissions of a firm by assuming that the firm chooses these variables in a way that maximises the firm’s profit.\r\n\r\nAs presented in the last chapter, the variables explained in such a way in a model are called endogenous variables; variables that are calculated using the model. As you will see, once we add additional model structures, additional variables will be explained in this way. For example, the electricity price might be exogenous to a firm in the OACM but could be explained by a market model, and thus, electricity prices would be an endogenous variable in a market model.\r\n\r\nIn contrast, we have the exogenous variables like the carbon tax in the preceding models. This tax will be set by the government and, as long as you do not aim at explaining how a government sets this tax with the model, it will not be calculated from the model.\r\n\r\nOne rule that is useful in modelling is **that the number of equations for solving the model has to be as least as large as the number of endogenous variables**: we need at least one equation to calculate each of these variables. This is an important check for each model that you build: do you have enough equations to explain every endogenous variable of your model?\r\n\r\nLet us perform this check for the OACM model. Here, you have two endogenous variables (output and abatement) for each firm. Thus for $$n$$ firms, we have $$2 n$$ endogenous variables. In terms of equations, the model is an optimization model with two decision variables (output and abatement) in one objective function (profit) for each firm:\r\n\r\n---\r\n(1) $$p \\cdot q_i - c_i(q_i,a_i) - t \\cdot e_i(q_i,a_i)$$\r\n\r\n---\r\n\r\nAs is usual in optimization, the optimality conditions are obtained by differentiating the objective of each firm *i* with regard to the decision variables of this firm (that is, $$q_i$$ and $$a_i$$) and setting the result equal to zero:\r\n\r\n---\r\n\r\n(2) $$p - \\frac{\\partial c_i(q_i,a_i)}{\\partial q_i} - t \\cdot \\frac{\\partial e_i(q_i,a_i)}{\\partial q_i} = 0$$\r\n\r\n(3) $$- \\frac{\\partial c_i(q_i,a_i)}{\\partial a_i} - t \\cdot \\frac{\\partial e_i(q_i,a_i)}{\\partial a_i} = 0$$\r\n\r\n---\r\n\r\nThose are the two equations you will need to solve the model.\r\n\r\nEquations (2) and (3) are two equations for each firm, $$i$$, so that we have $$2 n$$ equations for $$n$$ firms. Thus, you have $$2 n$$ equations for $$2 n$$ endogenous variables, which is the minimal necessary number. This works as long as the model does not get corner solutions (that is, as long as the values of $$q_i$$ and $$a_i$$ implied by these equations are strictly greater than zero).\r\n\r\nA second general observation that can be made at this point of the course is that models should be built so that they are fit for a given purpose. It is not useful at all to always use the most general model available, nor is it useful to build models that are not sufficiently detailed to answer your questions. As Albert Einstein once said: ‘Everything should be made as simple as possible but not simpler.’\r\n\r\nSo again, you always need to think about ‘what is the problem you want to answer with the model?’ before starting to build a model. This will help to identify which variables have to be explained by the model (ie, which variables have to be endogenous) and which are exogenous variables.\r\n\r\nOnce you know this, you can build a model that is as simple as possible while still being able to answer your questions. To this end, you can ask which actors would choose the variables that you want to calculate. These actors will then be modelled by building blocks that are able to explain the variables of interest. This provides the core of your model.\r\n\r\nThe next step is then to add some additional building blocks to connect the actors in your model and to fill some gaps. We will address this in the following steps.', '', '', '', '', '', None, None, None, None, '', '', '', '', 'TT', '', 3, 'published', False, None, None, None, None, 227), (1276, datetime.datetime(2022, 5, 5, 19, 14, 22, 327372, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 13, 16, 50, 734416, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 13, 16, 50, 680894, tzinfo=datetime.timezone.utc), False, 'Reflection: How to use and distinguish building blocks? II', None, 'Reflection: How to use and distinguish building blocks? II', None, '', None, None, None, 'Reflect how to use and distinguish building blocks.', None, 'Reflect how to use and distinguish building blocks.', None, '', 'reflection-how-to-use-and-distinguish-building-blocks-ii', 'Let’s take some time to recap and apply what we have learned about model purpose and model design as well as exogenous and endogenous model variables.\r\n{.lead}\r\n \r\nAssume that you want to model the behaviour of an electricity supplier that runs a coal-fired power plant. The supplier can run this plant at different levels of production and can use different types of coal. These choices will result in more or less emissions per kWh (kilowatt hour) electricity. You want to explain how this supplier would react to a tax on CO<sub>2</sub> emissions.\r\n \r\nReflect how this setting can be described in a model:\r\n\r\n**1.** What kind of building block would you use and why?\r\n \r\n**2.** Which variables do you have? Which are endogenous and which are exogenous variables? \r\n\r\n**3.** Assume that you also want to describe the effect of the CO<sub>2</sub> tax on the price of electricity. What would you need to change in your model?\r\n\r\nWe encourage you to make a note of your answers.', '', 'Let’s take some time to recap and apply what we have learned about model purpose and model design as well as exogenous and endogenous model variables.\r\n{.lead}\r\n \r\nAssume that you want to model the behaviour of an electricity supplier that runs a coal-fired power plant. The supplier can run this plant at different levels of production and can use different types of coal. These choices will result in more or less emissions per kWh (kilowatt hour) electricity. You want to explain how this supplier would react to a tax on CO<sub>2</sub> emissions.\r\n \r\nReflect how this setting can be described in a model:\r\n\r\n**1.** What kind of building block would you use and why?\r\n \r\n**2.** Which variables do you have? Which are endogenous and which are exogenous variables? \r\n\r\n**3.** Assume that you also want to describe the effect of the CO<sub>2</sub> tax on the price of electricity. What would you need to change in your model?\r\n\r\nWe encourage you to make a note of your answers.', '', '', '', '', '', None, None, None, None, '', '', '', '', 'TT', '', 4, 'published', True, 'Please share your answers in the [comments](#comments) section below.', None, 'Please share your answers in the [comments](#comments) section below.', None, 227), (1277, datetime.datetime(2022, 5, 5, 19, 14, 35, 130280, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 13, 18, 36, 561415, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 13, 18, 36, 503274, tzinfo=datetime.timezone.utc), False, 'How to complete a model', None, 'How to complete a model', None, '', None, None, None, 'Frank Krysiak introduces three more building blocks needed to describe an economic model: consumer behaviour, markets & the natural environment.', None, 'Frank Krysiak introduces three more building blocks needed to describe an economic model: consumer behaviour, markets & the natural environment.', None, '', 'how-to-complete-a-model', 'Economic models consist of building blocks. In addition to these blocks, you will need three more types of building blocks for your construction.\r\n{.lead}\r\n\r\n ![embed](https://vimeo.com/734305065/a36a201f55)\r\n\r\nThe three additional blocks are:\r\n\r\n* consumer behaviour\r\n* markets\r\n* natural environment\r\n\r\nThese blocks serve to connect the dots left open by your model of firm behaviour. They have to be chosen so that they fit to each other and to the model of firm behaviour that you have selected.\r\n\r\n\r\n![Consumer behaviour](/media/markdownx/d2afc6ce-f0cd-4291-87e5-ffff968df869.png)\r\n\r\n\r\n# Consumer behaviour \r\nIn general, economic models describe consumers as choosing between different goods while being subject to a budget constraint. However, in environmental economic models, we focus on emissions so that the choice among different goods is not that important. We rarely need much sophistication for the consumer side, and thus, we usually extend the model of firm behaviour in the simplest possible way.\r\n \r\nIf you have selected the **Emission Choice Model (ECM)** for firm behaviour, there is very little to do in depicting consumer behaviour. The Emission Choice Model describes only emissions. Thus, in the case of the Emission Choice Model, you only add a damage function to your description of firm behaviour.\r\n \r\nIf you selected the **Output Abatement Choice Model (OACM)**, firms produce output and emissions. On the consumer side, you thus have to describe the well-being derived from consuming the product and the damage caused by emissions.\r\n \r\nIn case of the **Input Choice Model (ICM)**, you also have to describe where the inputs come from. Thus, you will usually need a model that describes labour supply, capital supply, and the supply of all other factors.\r\n\r\n![Markets and the natural environment](/media/markdownx/e82fbb41-e9ed-4571-9a5c-2d59333abd33.png)\r\n\r\n# Markets and the natural environment \r\nIn most cases, we can use balancing equations to both ends. A market is modelled by assuming that what flows into the market has to equal what is drawn from the market. We already used this approach in your very first example where you analyzed the supply-demand balance of an electricity system. Similar, environmental aspects can often be added via definition or balance equations. For example how emissions accumulate in the atmosphere or wastewater of different firms gathers in a lake.', '', 'Economic models consist of building blocks. In addition to these blocks, you will need three more types of building blocks for your construction.\r\n{.lead}\r\n\r\n ![embed](https://vimeo.com/734305065/a36a201f55)\r\n\r\nThe three additional blocks are:\r\n\r\n* consumer behaviour\r\n* markets\r\n* natural environment\r\n\r\nThese blocks serve to connect the dots left open by your model of firm behaviour. They have to be chosen so that they fit to each other and to the model of firm behaviour that you have selected.\r\n\r\n\r\n![Consumer behaviour](/media/markdownx/d2afc6ce-f0cd-4291-87e5-ffff968df869.png)\r\n\r\n\r\n# Consumer behaviour \r\nIn general, economic models describe consumers as choosing between different goods while being subject to a budget constraint. However, in environmental economic models, we focus on emissions so that the choice among different goods is not that important. We rarely need much sophistication for the consumer side, and thus, we usually extend the model of firm behaviour in the simplest possible way.\r\n \r\nIf you have selected the **Emission Choice Model (ECM)** for firm behaviour, there is very little to do in depicting consumer behaviour. The Emission Choice Model describes only emissions. Thus, in the case of the Emission Choice Model, you only add a damage function to your description of firm behaviour.\r\n \r\nIf you selected the **Output Abatement Choice Model (OACM)**, firms produce output and emissions. On the consumer side, you thus have to describe the well-being derived from consuming the product and the damage caused by emissions.\r\n \r\nIn case of the **Input Choice Model (ICM)**, you also have to describe where the inputs come from. Thus, you will usually need a model that describes labour supply, capital supply, and the supply of all other factors.\r\n\r\n![Markets and the natural environment](/media/markdownx/e82fbb41-e9ed-4571-9a5c-2d59333abd33.png)\r\n\r\n# Markets and the natural environment \r\nIn most cases, we can use balancing equations to both ends. A market is modelled by assuming that what flows into the market has to equal what is drawn from the market. We already used this approach in your very first example where you analyzed the supply-demand balance of an electricity system. Similar, environmental aspects can often be added via definition or balance equations. For example how emissions accumulate in the atmosphere or wastewater of different firms gathers in a lake.', '', '', '', '', '', None, None, None, None, '', '', '', '', 'TV', '', 5, 'published', False, None, None, None, None, 227), (1278, datetime.datetime(2022, 5, 5, 19, 14, 47, 484931, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 13, 19, 37, 414349, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 13, 19, 37, 359557, tzinfo=datetime.timezone.utc), False, 'Exercise: Steering firms via prices', None, 'Exercise: Steering firms via prices', None, '', None, None, None, 'Try this exercise on steering firms via prices.', None, 'Try this exercise on steering firms via prices.', None, '', 'exercise-steering-firms-via-prices', 'In the last steps, you have seen the different building blocks and how they can be combined to design a firm-oriented model. Now let’s apply this knowledge to analyse how firms react to price signals.\r\n{.lead}\r\n \r\nSo far, all our model exercises were based on the assumption that some central planner decides about investments in the different technologies and which technologies are to be used first. In reality, such decisions are rarely made by one planner but rather by a number of independent firms. The best that we can do is to influence these firms via prices, taxes, and subsidies. In this model exercise, you can try out such an indirect steering of energy supply.\r\n \r\nThere are five firms in this model, each one uses one technology (coal-fired power plants, gas-fired power plants, nuclear power, wind, PV). Each of these firms decides how much it produces and some of them (coal and gas) can also decide how much effort they exert in reducing their CO<sub>2</sub>-emissions.\r\n \r\nTo steer the behaviour of these firms, you have five instruments: a tax on CO<sub>2</sub>, a deposit for nuclear accidents, a subsidy for electricity produced by wind power, a subsidy for electricity produced by PV, and the price of electricity.\r\n \r\nNote that consumers also react to electricity prices. They do not only pay the price that you set but also have to pay a surcharge that is used to pay the two subsidies. And your choice could result in a setting with under- or oversupply on the market\r\n \r\n**Try out such indirect steering**. In particular, see how firms react to your choices and what costs per unit of electricity result.\r\n\r\n**Note: If you want to keep a certain result for later use we suggest that you make a screenshot (Command-Shift-3 for Mac or CTRL+PrtScn for Windows) and download it.**\r\n\r\n<br>\r\n\r\n##Exercise\r\n\r\n###[Steering firms: prices](https://nmc.unibas.ch/online-courses/exploring/2017/tm5/index.html){:target=“_blank”}', '', 'In the last steps, you have seen the different building blocks and how they can be combined to design a firm-oriented model. Now let’s apply this knowledge to analyse how firms react to price signals.\r\n{.lead}\r\n \r\nSo far, all our model exercises were based on the assumption that some central planner decides about investments in the different technologies and which technologies are to be used first. In reality, such decisions are rarely made by one planner but rather by a number of independent firms. The best that we can do is to influence these firms via prices, taxes, and subsidies. In this model exercise, you can try out such an indirect steering of energy supply.\r\n \r\nThere are five firms in this model, each one uses one technology (coal-fired power plants, gas-fired power plants, nuclear power, wind, PV). Each of these firms decides how much it produces and some of them (coal and gas) can also decide how much effort they exert in reducing their CO<sub>2</sub>-emissions.\r\n \r\nTo steer the behaviour of these firms, you have five instruments: a tax on CO<sub>2</sub>, a deposit for nuclear accidents, a subsidy for electricity produced by wind power, a subsidy for electricity produced by PV, and the price of electricity.\r\n \r\nNote that consumers also react to electricity prices. They do not only pay the price that you set but also have to pay a surcharge that is used to pay the two subsidies. And your choice could result in a setting with under- or oversupply on the market\r\n \r\n**Try out such indirect steering**. In particular, see how firms react to your choices and what costs per unit of electricity result.\r\n\r\n**Note: If you want to keep a certain result for later use we suggest that you make a screenshot (Command-Shift-3 for Mac or CTRL+PrtScn for Windows) and download it.**\r\n\r\n<br>\r\n\r\n##Exercise\r\n\r\n###[Steering firms: prices](https://nmc.unibas.ch/online-courses/exploring/2017/tm5/index.html){:target=“_blank”}', '', '', '', '', '', None, None, None, None, '', '', '', '', 'TT', '', 6, 'published', False, None, None, None, None, 227), (1279, datetime.datetime(2022, 5, 5, 19, 14, 58, 883595, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 13, 21, 47, 293498, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 13, 21, 47, 241029, tzinfo=datetime.timezone.utc), False, 'Reflection: Price in, choice out', None, 'Reflection: Price in, choice out', None, '', None, None, None, 'Reflect on your previous results.', None, 'Reflect on your previous results.', None, '', 'reflection-price-in-choice-out', 'In the previous model exercise, you have chosen price signals, such as the electricity price, taxes, and subsidies to which the firms in the model react. The model calculates the results, but it is up to the modeller (you) to interpret and explain these results.\r\n{.lead}\r\n \r\nPick a result from your work with the model that you found surprising. Think about this result: what happened and why did it happen?\r\n \r\nFor example, if you implement a tax on CO<sub>2</sub>, the firm using coal produces less but emissions decrease even more strongly. Furthermore, supply goes down and your market will not be balanced anymore. So, the electricity price has to be increased to balance the market again, and this brings the coal-fired power plant back into the market.\r\n\r\nWhat happens here is that the CO<sub>2</sub> tax increases the costs of producing electricity with a coal-fired power plant. The firm using this plant will increase abatement efforts and produce less to cope with this. Thus, emissions and output go down. As the market price remains unchanged first, the firms using nuclear and renewables will not change their behaviour (they do not emit CO<sub>2</sub> and thus do not respond to the tax). Increasing the market price gives all firms an incentive to produce more, so that the market can be balanced.\r\n \r\nTry to understand your result in a similar way and write down what you did, what happened and how you explain what happened:\r\n<br>\r\n\r\n1. What kind of changes (prices, taxes, subsidy) did you implement? \r\n2. Which responses of the firms did you observe? \r\n3. How do you explain these responses?', '', 'In the previous model exercise, you have chosen price signals, such as the electricity price, taxes, and subsidies to which the firms in the model react. The model calculates the results, but it is up to the modeller (you) to interpret and explain these results.\r\n{.lead}\r\n \r\nPick a result from your work with the model that you found surprising. Think about this result: what happened and why did it happen?\r\n \r\nFor example, if you implement a tax on CO<sub>2</sub>, the firm using coal produces less but emissions decrease even more strongly. Furthermore, supply goes down and your market will not be balanced anymore. So, the electricity price has to be increased to balance the market again, and this brings the coal-fired power plant back into the market.\r\n\r\nWhat happens here is that the CO<sub>2</sub> tax increases the costs of producing electricity with a coal-fired power plant. The firm using this plant will increase abatement efforts and produce less to cope with this. Thus, emissions and output go down. As the market price remains unchanged first, the firms using nuclear and renewables will not change their behaviour (they do not emit CO<sub>2</sub> and thus do not respond to the tax). Increasing the market price gives all firms an incentive to produce more, so that the market can be balanced.\r\n \r\nTry to understand your result in a similar way and write down what you did, what happened and how you explain what happened:\r\n<br>\r\n\r\n1. What kind of changes (prices, taxes, subsidy) did you implement? \r\n2. Which responses of the firms did you observe? \r\n3. How do you explain these responses?', '', '', '', '', '', None, None, None, None, '', '', '', '', 'TT', '', 7, 'published', True, 'Please give your answers in the discussion [section](#comments) below and exchange your thoughts with other learners.', None, 'Please give your answers in the discussion [section](#comments) below and exchange your thoughts with other learners.', None, 227), (1280, datetime.datetime(2022, 5, 5, 19, 15, 7, 782833, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 13, 22, 49, 508493, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 13, 22, 49, 453792, tzinfo=datetime.timezone.utc), False, 'The firm model: the mathematics', None, 'The firm model: the mathematics', None, '', None, None, None, 'Through this article, Hannes Weigt explains the mathematical formulation of a firm model to figure out how the output decisions were defined.', None, 'Through this article, Hannes Weigt explains the mathematical formulation of a firm model to figure out how the output decisions were defined.', None, '', 'the-firm-model-the-mathematics', 'It is, again, time to have a look at our model in somewhat more detail. This model includes several new concepts and is based on the model paradigms learned in this chapter.\r\n{.lead}\r\n\r\n![Mathematical equatations](/media/markdownx/66a35e31-4c72-44c8-9fe8-325c613ddf36.png)\r\n\r\nIn all models before, we have used a modelling paradigm that is typical for bottom-up energy economic models: we have focused the model on a description of technologies and this description was set up in a way that makes it easy to connect the model to technological data. In particular, we have assumed that technologies have variable costs that are proportional to the number of units produced. The so-called marginal costs (the additional costs of producing an additional unit of output) are constant for each technology in all previous models. This makes it easy to connect the model to data.\r\n \r\nHowever, using marginal costs renders optimal behaviour in such models very simple. Imagine a firm that aims to maximise its profit. For each produced unit, the firm gets a price, *p*. Each unit that it produces has constant marginal costs, *mc*. As these values never change, regardless how much the firm produces, the firm will produce as much as it can, whenever *p>mc* (in this case, the firm makes a profit (*p-mc*) for each produced unit). In contrast, as soon as *p<mc*, the firm will not produce anything, as it would lose money for each produced unit. Thus at the boundary, where *p=mc*, the firm will switch from producing nothing to full production for a very slight change of the price, *p*.\r\n \r\nThis is hardly a realistic model of behaviour. Furthermore, most production technologies provide firms with some flexibility that the firm can use to adjust to market and policy conditions. For example, a coal-fired power plant can be run at different loads, some of which have higher technical efficiency than others and thus lead to less CO<sub>2</sub>-emissions per unit of output. Or, for wind power, there are more and less suitable sites. Assuming that the best sites will be used first (as they generate the highest profit), each new power plant will either be more costly to build or less efficient in operation.\r\n \r\nFrom now on, we will try to include such aspects in our model: the model will focus on firm behaviour and thus we will give firms a bit more leeway in using their technologies. The price of this is that the model becomes more abstract, needs assumptions that are only approximations of real technologies and uses variables that are less intuitive, and it will be harder to match the model to data. This new model paradigm is typical for environmental economic models or top-down energy economic models.\r\n\r\n![Firm](/media/markdownx/c6c8bfe8-1b1c-468b-b155-1f124910b406.png)\r\n\r\nLet’s start by looking at the objective of a firm. The typical assumption is that the firm wants to maximise its profit. To this end, it can change two variables: how much it produces (output, *q*) and how cleanly it produces (abatement of emissions, *a*). We thus use one of the building blocks that you already know: the Output Abatement Choice Model (OACM).\r\n \r\nIn this model a firm, *i*, maximises its profit: $$\\max_{q_i,a_i \\ \\geq \\ 0}(p+s_i) \\cdot q_i - c_i(q_i,a_i) - t \\cdot e_i(q_i,a_i) - t_i^{nuc}$$\r\n\r\nHere, *p* is the market price for electricity and $$s_i$$ is a subsidy, so that $$(p+s_i) \\cdot q_i$$ is the revenue of firm, *i*. The term $$c_i(q_i,a_i)$$ describes production and abatement costs. The term $$t \\cdot e_i(q_i, a_i)$$ denotes possible payments for emissions, due to an emissions tax, *t*. Finally, $$t_i^{nuc}$$ is a security deposit for the risk induced by nuclear power.\r\n \r\nProduction and abatement costs are defined by $$c_i(q_i,a_i)=\\alpha_i \\cdot q_i + \\frac{\\beta_i}{2} \\cdot q_i^2+\\gamma_i \\cdot q_i \\cdot a_i$$\r\n\r\nThe parameters $$\\alpha_i, \\beta_i, \\gamma_i$$ are non-negative. So, costs increase more than proportionally with production and the costs of reducing emissions (via abatement, $$a_i$$) are proportional to the production level.\r\n \r\nEmissions are given by $$e_i(q_i,a_i) = q_i \\cdot \\left(\\overline{e}_i + \\frac{\\delta_i}{a_i}\\right)$$. Thus, emissions increase proportionally with production. For very high values of $$a_i$$, emissions go to the lower boundary, $$\\overline{e}_i$$, which is the technically minimal level of emissions. For low values of $$a_i$$, emissions become much higher.\r\n \r\nAs explained a few steps ago, a model needs as many equations as endogenous variables to calculate the optimal solution. The optimality conditions are again derived by differentiating the profit with regard to $$q_i$$ and $$a_i$$, setting the results equal to zero and solving for $$q_i$$ and $$a_i$$. This leads to\r\n\r\n---\r\n\r\n(1) $$a_i = \\sqrt{\\frac{t \\cdot \\delta_i}{\\gamma_i}}$$ \r\n\r\n(2) $$q_i = \\frac {(p+s_i)-\\alpha_i - t \\ \\cdot \\ \\overline{e}_i - 2\\sqrt{t \\ \\cdot \\ \\gamma_i \\ \\cdot \\ \\delta_i}}{\\beta_i}$$\r\n\r\n---\r\n\r\nFor $$a_i$$, this approach always works because the above equations ensure that for all finite levels of the emission tax, $$t \\geq 0$$, the optimal level of abatement is between zero and infinity (we always have an interior optimum with regard to abatement).\r\n \r\nThis is not the case for $$q_i$$, as equation (2) shows. Depending on the price, $$p$$, the emission tax, $$t$$, and the parameters, the optimal production level, $$q_i$$, could be negative (in which case it is optimal to produce nothing, as negative production is not feasible). Thus, optimal production needs to be written as $$q_i = Max \\left( \\frac{(p+s_i)-a_i-t\\cdot \\overline{e}_i-2\\sqrt{t \\cdot \\gamma_i \\cdot \\delta_i}}{\\beta_i},0\\right)$$.\r\n \r\nThis holds for each firm, $$i$$. In our model, we assume that there is one firm using each technology, that is, one firm using coal, one firm using gas, one firm using a nuclear power plant, and one firm each for PV and wind power. All these firms are assumed to face perfect competition; that is, no firm’s decision influences the market price $$p$$ for electricity into account.\r\n \r\nFinally, we assume that demand is given by a function $$d= \\overline{Q}-\\eta \\cdot p$$\r\nwith $$\\overline{Q}, \\eta \\gt 0$$. Thus, demand is highest for $$p=0$$ (it takes on the value $$\\overline{Q}$$) and becomes smaller with an increasing price. Remember from your general economics course that demand slopes downward – here, $$\\eta$$ is an elasticity of demand that determines the slope of the line.\r\n \r\nIn the model exercise you were able to use the sliders to set the price $$p$$, the tax $$t$$, the deposit $$t_i^{nuc}$$, and the subsidies $$s_{PV}$$ and $$s_{Wind}$$. Only PV and wind power get subsidies, for all other firms $$s_i$$ equals zero. Furthermore, only the firm using nuclear power faces a security deposit $$t_i^{nuc}$$, this value is zero for all other firms. CO<sub>2</sub>-emissions occur only for gas-fired and coal-fired power plants, so that $$\\overline{e}_i=\\gamma_i=\\delta_i=0$$, for all other firms.\r\n \r\nBased on your inputs the model has calculated the optimal production, $$q_i$$, and abatement, $$a_i$$, decisions of all firms as well as the resulting emissions.\r\n \r\nNote that this model is clearly an approximation. In contrast to the previous models, it does not include investment costs. Furthermore, emissions would go to infinity if $$a_i$$ becomes zero. However, the model provides a much more detailed picture of how a firm reacts to different policy and market signals.\r\n \r\nAlthough the model is more aggregated in its technical detail it can still be connected to real world data, albeit somewhat more loosely than the previous models. To match the above model with your desired real world example you will need to capture the cost parameters $$\\alpha_i,\\beta_i,\\gamma_i$$ of the production and abatement costs function and $$\\overline{e}_i,\\delta_i$$ of the emission function. Finally, you will need to define the demand parameters, $$\\overline{Q},\\eta$$.\r\n \r\nFor our model we aimed to link the parameter assumptions to the first model exercises of our example country. Thus, the overall demand should be again in the range of 150 TWh (terawatt hours), the costs for coal, gas, and nuclear should be oriented at the costs figures of the last models, and the renewable production should account for investment costs.\r\n \r\nThe $$\\alpha_i$$ of the cost function is basically the lowest marginal cost level achievable. We fix this to the same cost level of the respective power plant type in our energy system models for coal, gas, and nuclear. The increase in costs can then be justified with two effects: the usage of less efficient power plants and/or the need to build new power plants which then requires investment costs in addition. As we have used variable and investment costs in our first model exercises we use the investment cost level as a proxy to define the increase parameter, $$\\beta_i$$. Namely, we assume that for a yearly output of 75 TWh (half the total demand), completely new plants would need to be constructed leading to a price level equal to the levelized costs of generation.\r\n \r\nFor renewable generation we define a slightly different cost structure justification. We expect a decrease in output per unit the more wind and PV plants are installed as the good sites are used first. To capture this dynamic we again use the investment costs as proxy. Assuming a decrease in the average utilisation for increasing capacity additions, we can obtain a cost function by dividing the investment costs per unit with the expected output per unit. For wind, we assume that the average output decreases from 3000 to 750 full load hours, and for PV from 2000 to 500 full load hours.\r\n \r\nA similar logic is used to define the abatement cost structures. Assuming the coal and gas firm can decide about the efficiency of their plant they can influence the emissions they have with each unit of output. However, a higher efficiency comes with the cost burden of installing those efficiency improvements. We fix the minimum achievable emission level by defining the maximum achievable efficiency level (50% for coal and 70% for gas) and the current emissions by using relatively low efficiencies (30% and 40%, respectively). We now assume that if a plant wants to obtain a reduction towards 90% of the maximum achievable reduction it will need to invest in a completely new set of power plants. This, again, defines the increase factor, $$\\gamma_i$$.\r\n \r\nFinally, we calibrate the demand function to achieve consumption of 150 TWh with a market price of ca. 35 dollars per MWh (megawatt hour).', '', 'It is, again, time to have a look at our model in somewhat more detail. This model includes several new concepts and is based on the model paradigms learned in this chapter.\r\n{.lead}\r\n\r\n![Mathematical equatations](/media/markdownx/66a35e31-4c72-44c8-9fe8-325c613ddf36.png)\r\n\r\nIn all models before, we have used a modelling paradigm that is typical for bottom-up energy economic models: we have focused the model on a description of technologies and this description was set up in a way that makes it easy to connect the model to technological data. In particular, we have assumed that technologies have variable costs that are proportional to the number of units produced. The so-called marginal costs (the additional costs of producing an additional unit of output) are constant for each technology in all previous models. This makes it easy to connect the model to data.\r\n \r\nHowever, using marginal costs renders optimal behaviour in such models very simple. Imagine a firm that aims to maximise its profit. For each produced unit, the firm gets a price, *p*. Each unit that it produces has constant marginal costs, *mc*. As these values never change, regardless how much the firm produces, the firm will produce as much as it can, whenever *p>mc* (in this case, the firm makes a profit (*p-mc*) for each produced unit). In contrast, as soon as *p<mc*, the firm will not produce anything, as it would lose money for each produced unit. Thus at the boundary, where *p=mc*, the firm will switch from producing nothing to full production for a very slight change of the price, *p*.\r\n \r\nThis is hardly a realistic model of behaviour. Furthermore, most production technologies provide firms with some flexibility that the firm can use to adjust to market and policy conditions. For example, a coal-fired power plant can be run at different loads, some of which have higher technical efficiency than others and thus lead to less CO<sub>2</sub>-emissions per unit of output. Or, for wind power, there are more and less suitable sites. Assuming that the best sites will be used first (as they generate the highest profit), each new power plant will either be more costly to build or less efficient in operation.\r\n \r\nFrom now on, we will try to include such aspects in our model: the model will focus on firm behaviour and thus we will give firms a bit more leeway in using their technologies. The price of this is that the model becomes more abstract, needs assumptions that are only approximations of real technologies and uses variables that are less intuitive, and it will be harder to match the model to data. This new model paradigm is typical for environmental economic models or top-down energy economic models.\r\n\r\n![Firm](/media/markdownx/c6c8bfe8-1b1c-468b-b155-1f124910b406.png)\r\n\r\nLet’s start by looking at the objective of a firm. The typical assumption is that the firm wants to maximise its profit. To this end, it can change two variables: how much it produces (output, *q*) and how cleanly it produces (abatement of emissions, *a*). We thus use one of the building blocks that you already know: the Output Abatement Choice Model (OACM).\r\n \r\nIn this model a firm, *i*, maximises its profit: $$\\max_{q_i,a_i \\ \\geq \\ 0}(p+s_i) \\cdot q_i - c_i(q_i,a_i) - t \\cdot e_i(q_i,a_i) - t_i^{nuc}$$\r\n\r\nHere, *p* is the market price for electricity and $$s_i$$ is a subsidy, so that $$(p+s_i) \\cdot q_i$$ is the revenue of firm, *i*. The term $$c_i(q_i,a_i)$$ describes production and abatement costs. The term $$t \\cdot e_i(q_i, a_i)$$ denotes possible payments for emissions, due to an emissions tax, *t*. Finally, $$t_i^{nuc}$$ is a security deposit for the risk induced by nuclear power.\r\n \r\nProduction and abatement costs are defined by $$c_i(q_i,a_i)=\\alpha_i \\cdot q_i + \\frac{\\beta_i}{2} \\cdot q_i^2+\\gamma_i \\cdot q_i \\cdot a_i$$\r\n\r\nThe parameters $$\\alpha_i, \\beta_i, \\gamma_i$$ are non-negative. So, costs increase more than proportionally with production and the costs of reducing emissions (via abatement, $$a_i$$) are proportional to the production level.\r\n \r\nEmissions are given by $$e_i(q_i,a_i) = q_i \\cdot \\left(\\overline{e}_i + \\frac{\\delta_i}{a_i}\\right)$$. Thus, emissions increase proportionally with production. For very high values of $$a_i$$, emissions go to the lower boundary, $$\\overline{e}_i$$, which is the technically minimal level of emissions. For low values of $$a_i$$, emissions become much higher.\r\n \r\nAs explained a few steps ago, a model needs as many equations as endogenous variables to calculate the optimal solution. The optimality conditions are again derived by differentiating the profit with regard to $$q_i$$ and $$a_i$$, setting the results equal to zero and solving for $$q_i$$ and $$a_i$$. This leads to\r\n\r\n---\r\n\r\n(1) $$a_i = \\sqrt{\\frac{t \\cdot \\delta_i}{\\gamma_i}}$$ \r\n\r\n(2) $$q_i = \\frac {(p+s_i)-\\alpha_i - t \\ \\cdot \\ \\overline{e}_i - 2\\sqrt{t \\ \\cdot \\ \\gamma_i \\ \\cdot \\ \\delta_i}}{\\beta_i}$$\r\n\r\n---\r\n\r\nFor $$a_i$$, this approach always works because the above equations ensure that for all finite levels of the emission tax, $$t \\geq 0$$, the optimal level of abatement is between zero and infinity (we always have an interior optimum with regard to abatement).\r\n \r\nThis is not the case for $$q_i$$, as equation (2) shows. Depending on the price, $$p$$, the emission tax, $$t$$, and the parameters, the optimal production level, $$q_i$$, could be negative (in which case it is optimal to produce nothing, as negative production is not feasible). Thus, optimal production needs to be written as $$q_i = Max \\left( \\frac{(p+s_i)-a_i-t\\cdot \\overline{e}_i-2\\sqrt{t \\cdot \\gamma_i \\cdot \\delta_i}}{\\beta_i},0\\right)$$.\r\n \r\nThis holds for each firm, $$i$$. In our model, we assume that there is one firm using each technology, that is, one firm using coal, one firm using gas, one firm using a nuclear power plant, and one firm each for PV and wind power. All these firms are assumed to face perfect competition; that is, no firm’s decision influences the market price $$p$$ for electricity into account.\r\n \r\nFinally, we assume that demand is given by a function $$d= \\overline{Q}-\\eta \\cdot p$$\r\nwith $$\\overline{Q}, \\eta \\gt 0$$. Thus, demand is highest for $$p=0$$ (it takes on the value $$\\overline{Q}$$) and becomes smaller with an increasing price. Remember from your general economics course that demand slopes downward – here, $$\\eta$$ is an elasticity of demand that determines the slope of the line.\r\n \r\nIn the model exercise you were able to use the sliders to set the price $$p$$, the tax $$t$$, the deposit $$t_i^{nuc}$$, and the subsidies $$s_{PV}$$ and $$s_{Wind}$$. Only PV and wind power get subsidies, for all other firms $$s_i$$ equals zero. Furthermore, only the firm using nuclear power faces a security deposit $$t_i^{nuc}$$, this value is zero for all other firms. CO<sub>2</sub>-emissions occur only for gas-fired and coal-fired power plants, so that $$\\overline{e}_i=\\gamma_i=\\delta_i=0$$, for all other firms.\r\n \r\nBased on your inputs the model has calculated the optimal production, $$q_i$$, and abatement, $$a_i$$, decisions of all firms as well as the resulting emissions.\r\n \r\nNote that this model is clearly an approximation. In contrast to the previous models, it does not include investment costs. Furthermore, emissions would go to infinity if $$a_i$$ becomes zero. However, the model provides a much more detailed picture of how a firm reacts to different policy and market signals.\r\n \r\nAlthough the model is more aggregated in its technical detail it can still be connected to real world data, albeit somewhat more loosely than the previous models. To match the above model with your desired real world example you will need to capture the cost parameters $$\\alpha_i,\\beta_i,\\gamma_i$$ of the production and abatement costs function and $$\\overline{e}_i,\\delta_i$$ of the emission function. Finally, you will need to define the demand parameters, $$\\overline{Q},\\eta$$.\r\n \r\nFor our model we aimed to link the parameter assumptions to the first model exercises of our example country. Thus, the overall demand should be again in the range of 150 TWh (terawatt hours), the costs for coal, gas, and nuclear should be oriented at the costs figures of the last models, and the renewable production should account for investment costs.\r\n \r\nThe $$\\alpha_i$$ of the cost function is basically the lowest marginal cost level achievable. We fix this to the same cost level of the respective power plant type in our energy system models for coal, gas, and nuclear. The increase in costs can then be justified with two effects: the usage of less efficient power plants and/or the need to build new power plants which then requires investment costs in addition. As we have used variable and investment costs in our first model exercises we use the investment cost level as a proxy to define the increase parameter, $$\\beta_i$$. Namely, we assume that for a yearly output of 75 TWh (half the total demand), completely new plants would need to be constructed leading to a price level equal to the levelized costs of generation.\r\n \r\nFor renewable generation we define a slightly different cost structure justification. We expect a decrease in output per unit the more wind and PV plants are installed as the good sites are used first. To capture this dynamic we again use the investment costs as proxy. Assuming a decrease in the average utilisation for increasing capacity additions, we can obtain a cost function by dividing the investment costs per unit with the expected output per unit. For wind, we assume that the average output decreases from 3000 to 750 full load hours, and for PV from 2000 to 500 full load hours.\r\n \r\nA similar logic is used to define the abatement cost structures. Assuming the coal and gas firm can decide about the efficiency of their plant they can influence the emissions they have with each unit of output. However, a higher efficiency comes with the cost burden of installing those efficiency improvements. We fix the minimum achievable emission level by defining the maximum achievable efficiency level (50% for coal and 70% for gas) and the current emissions by using relatively low efficiencies (30% and 40%, respectively). We now assume that if a plant wants to obtain a reduction towards 90% of the maximum achievable reduction it will need to invest in a completely new set of power plants. This, again, defines the increase factor, $$\\gamma_i$$.\r\n \r\nFinally, we calibrate the demand function to achieve consumption of 150 TWh with a market price of ca. 35 dollars per MWh (megawatt hour).', '', '', '', '', '', None, None, None, None, '', '', '', '', 'TT', '', 8, 'published', False, None, None, None, None, 227), (1281, datetime.datetime(2022, 5, 5, 19, 15, 20, 582858, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 13, 24, 3, 786909, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 13, 24, 3, 722123, tzinfo=datetime.timezone.utc), False, 'Assess your knowledge', None, 'Assess your knowledge', None, '', None, None, None, 'Assess your knowledge on the building blocks.', None, 'Assess your knowledge on the building blocks.', None, '', 'assess-your-knowledge-2', 'Let’s recap the building blocks! Multiple answers are possible.\r\n{.lead}\r\n\r\n<br>\r\n\r\n<iframe src="https://h5p.nmc.unibas.ch/wp-admin/admin-ajax.php?action=h5p_embed&id=323" width="885" height="372" frameborder="0" allowfullscreen="allowfullscreen" title="Energy_Economics_3_10"></iframe><script src="https://h5p.nmc.unibas.ch/wp-content/plugins/h5p/h5p-php-library/js/h5p-resizer.js" charset="UTF-8"></script>', '', 'Let’s recap the building blocks! Multiple answers are possible.\r\n{.lead}\r\n\r\n<br>\r\n\r\n<iframe src="https://h5p.nmc.unibas.ch/wp-admin/admin-ajax.php?action=h5p_embed&id=323" width="885" height="372" frameborder="0" allowfullscreen="allowfullscreen" title="Energy_Economics_3_10"></iframe><script src="https://h5p.nmc.unibas.ch/wp-content/plugins/h5p/h5p-php-library/js/h5p-resizer.js" charset="UTF-8"></script>', '', '', '', '', '', None, None, None, None, '', '', '', '', 'TQ', '', 9, 'published', False, None, None, None, None, 227), (1282, datetime.datetime(2022, 5, 5, 19, 15, 30, 400749, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 13, 25, 6, 553757, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 13, 25, 6, 479349, tzinfo=datetime.timezone.utc), False, 'From optimization to equilibria', None, 'From optimization to equilibria', None, '', None, None, None, 'To bridge the two sides of a market, the pure concept of optimization is often not enough. In this article, Hannes Weigt explains why.', None, 'To bridge the two sides of a market, the pure concept of optimization is often not enough. In this article, Hannes Weigt explains why.', None, '', 'from-optimization-to-equilibria', 'Up to now, we did not really have a look at markets! Your first models were following a system perspective with either you deciding about optimal investments and operation strategies or the underlying optimization model did this job based on the steering levers you chose.\r\n{.lead}\r\n\r\n![Market](/media/markdownx/3eb9e678-963c-4f62-a2f7-5468e068aadd.png)\r\n\r\nThe building blocks of this chapter describe how firms and consumers behave but do not yet contain any direct interaction between the two sides. In the last model exercise, you had to choose the relevant price levels but firms and consumers reacted independently: if you chose a high electricity price you obtained plenty of supply but demand went down. You could end up with a system that was not in balance.\r\n\r\nIf you want to bring the two sides together, you will need something more: a market. However, adding a market is not as straightforward as it may sound.\r\n \r\nThe ‘job’ of markets is to bring supply and demand together and let them define the market price of the product. This price will set the incentives for firms to produce and invest in new or cleaner production facilities and the price also defines how much consumers are willing to consume a product. While it is no problem deriving the former or the later once the price is given (basically what you did in the last model exercise), the question is how to integrate the price formation process itself into a model.\r\n \r\nAnd this is where optimization models often reach their limits. Both sides of the market aim to maximise their respective benefits: firms want to maximise their profit, consumers maximise the utility they get from buying the product. The interplay between those two sides then defines the market equilibrium.\r\n\r\n![Perfect competitive market equilibrium](/media/markdownx/6e7eb9ef-dad2-4fd7-9306-dc48e79c93fa.png)\r\n\r\nSimply adding up the respective objective functions of the supply and demand side is only possible under specific conditions (ie, in case of perfect competition, the market interaction can be replaced with a welfare maximisation) but not in general. Here equilibrium models enter the stage. They allow us to model the interaction of markets in a mathematical setup.\r\n \r\nIn the next steps, we will gradually introduce the concept and logic of equilibrium modelling. In the next chapter we will add the needed mathematical formulations and explain how equilibrium models allow us to interpret the economic aspects of our models.', '', 'Up to now, we did not really have a look at markets! Your first models were following a system perspective with either you deciding about optimal investments and operation strategies or the underlying optimization model did this job based on the steering levers you chose.\r\n{.lead}\r\n\r\n![Market](/media/markdownx/3eb9e678-963c-4f62-a2f7-5468e068aadd.png)\r\n\r\nThe building blocks of this chapter describe how firms and consumers behave but do not yet contain any direct interaction between the two sides. In the last model exercise, you had to choose the relevant price levels but firms and consumers reacted independently: if you chose a high electricity price you obtained plenty of supply but demand went down. You could end up with a system that was not in balance.\r\n\r\nIf you want to bring the two sides together, you will need something more: a market. However, adding a market is not as straightforward as it may sound.\r\n \r\nThe ‘job’ of markets is to bring supply and demand together and let them define the market price of the product. This price will set the incentives for firms to produce and invest in new or cleaner production facilities and the price also defines how much consumers are willing to consume a product. While it is no problem deriving the former or the later once the price is given (basically what you did in the last model exercise), the question is how to integrate the price formation process itself into a model.\r\n \r\nAnd this is where optimization models often reach their limits. Both sides of the market aim to maximise their respective benefits: firms want to maximise their profit, consumers maximise the utility they get from buying the product. The interplay between those two sides then defines the market equilibrium.\r\n\r\n![Perfect competitive market equilibrium](/media/markdownx/6e7eb9ef-dad2-4fd7-9306-dc48e79c93fa.png)\r\n\r\nSimply adding up the respective objective functions of the supply and demand side is only possible under specific conditions (ie, in case of perfect competition, the market interaction can be replaced with a welfare maximisation) but not in general. Here equilibrium models enter the stage. They allow us to model the interaction of markets in a mathematical setup.\r\n \r\nIn the next steps, we will gradually introduce the concept and logic of equilibrium modelling. In the next chapter we will add the needed mathematical formulations and explain how equilibrium models allow us to interpret the economic aspects of our models.', '', '', '', '', '', None, None, None, None, '', '', '', '', 'TT', '', 10, 'published', False, None, None, None, None, 227), (1283, datetime.datetime(2022, 5, 5, 19, 15, 44, 20732, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 13, 26, 3, 795680, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 13, 26, 3, 737310, tzinfo=datetime.timezone.utc), False, 'Equilibrium models', None, 'Equilibrium models', None, '', None, None, None, 'This video provides main insights into the basic principles of equilibrium models. Watch Hannes Weigt explain more.', None, 'This video provides main insights into the basic principles of equilibrium models. Watch Hannes Weigt explain more.', None, '', 'equilibrium-models', 'Contrary to an optimization problem, an equilibrium model has no objective but consists of the respective conditions that need to hold when the market or system is in equilibrium, meaning in a stable state. As explained in the tutorial, there are two general equilibrium conditions we need to account for: zero-profit conditions and market clearing conditions. Both conditions follow a simple logic: what economic incentives drive the behaviour of the market participants?\r\n{.lead}\r\n\r\n![embed](https://vimeo.com/734304487/69be462a8e)\r\n\r\n In case of the **zero-profit condition** the underlying question relates to the activity of the involved market actors: what incentivizes an actor to become active (i.e. produce or consume a good)? It’s the obtainable benefit! A firm will start to produce if the price it can get for its product is at least as high as its production costs. The firm will stop increasing its production when the price equals its production costs (at least in a perfect competitive market) → the condition is in equilibrium.\r\n \r\nIn case of the **market clearing conditions** the underlying question relates to the basic economic principle of supply and demand. If a market is undersupplied (supply < demand) the resulting high price will give producers an incentive to increase production (via the zero-profit condition) up to the point where the market is in equilibrium (supply = demand). If the market is oversupplied (supply > demand) the product has no value, as there are excess supplies available. The market at hand does not need to be a ‘real’ market; ie also production constraints represent a supply (available production capacity) and demand (requested output) logic.\r\n \r\nEquilibrium models are flexible designs suited for a large variety of model applications. Generally two types of equilibrium models are distinguished: **partial equilibrium models** that capture only one or a subset of markets/sectors while prices and quantities on other markets are taken as given; and **general equilibrium models** that capture the whole economy with many interacting markets/sectors. The latter is the main approach in large scale numerical top-down modelling; termed **Computable General Equilibrium (CGE)**, while the former is also used for numerical bottom-up models and for conceptual evaluations. In general, equilibrium models are the first choice when deviating from perfect competition or monopolistic competition in a market setting.\r\n \r\n<br>\r\n\r\nRecommended readings\r\n{.footnote-title}\r\n \r\nIn the literature recommendation below, you find a combined natural gas and electricity market model (Abrell and Weigt, 2010). As natural gas is a fuel input in electricity generation the two markets present a classical example of upstream and downstream markets. In addition both markets rely on networks introducing spatial components into the market design. The paper at hand provides a comprehensive design of both markets. As we did not yet cover the detailed mathematical functionalities of equilibrium models you may want to focus your reading on the above described decision conditions for zero-profit constraints and market clearing.\r\n \r\nAbrell, J. & Weigt, H. (2010). [Combining Energy Networks](https://mpra.ub.uni-muenchen.de/65504/1/MPRA_paper_65504.pdf). Dresden University of Technology. (Journal Version: Abrell, J. & Weigt, H. (2012). Combining energy networks. Networks and Spatial Economics, 12(3), pp. 377-401.)\r\n{.citation-indented}', '', 'Contrary to an optimization problem, an equilibrium model has no objective but consists of the respective conditions that need to hold when the market or system is in equilibrium, meaning in a stable state. As explained in the tutorial, there are two general equilibrium conditions we need to account for: zero-profit conditions and market clearing conditions. Both conditions follow a simple logic: what economic incentives drive the behaviour of the market participants?\r\n{.lead}\r\n\r\n![embed](https://vimeo.com/734304487/69be462a8e)\r\n\r\n In case of the **zero-profit condition** the underlying question relates to the activity of the involved market actors: what incentivizes an actor to become active (i.e. produce or consume a good)? It’s the obtainable benefit! A firm will start to produce if the price it can get for its product is at least as high as its production costs. The firm will stop increasing its production when the price equals its production costs (at least in a perfect competitive market) → the condition is in equilibrium.\r\n \r\nIn case of the **market clearing conditions** the underlying question relates to the basic economic principle of supply and demand. If a market is undersupplied (supply < demand) the resulting high price will give producers an incentive to increase production (via the zero-profit condition) up to the point where the market is in equilibrium (supply = demand). If the market is oversupplied (supply > demand) the product has no value, as there are excess supplies available. The market at hand does not need to be a ‘real’ market; ie also production constraints represent a supply (available production capacity) and demand (requested output) logic.\r\n \r\nEquilibrium models are flexible designs suited for a large variety of model applications. Generally two types of equilibrium models are distinguished: **partial equilibrium models** that capture only one or a subset of markets/sectors while prices and quantities on other markets are taken as given; and **general equilibrium models** that capture the whole economy with many interacting markets/sectors. The latter is the main approach in large scale numerical top-down modelling; termed **Computable General Equilibrium (CGE)**, while the former is also used for numerical bottom-up models and for conceptual evaluations. In general, equilibrium models are the first choice when deviating from perfect competition or monopolistic competition in a market setting.\r\n \r\n<br>\r\n\r\nRecommended readings\r\n{.footnote-title}\r\n \r\nIn the literature recommendation below, you find a combined natural gas and electricity market model (Abrell and Weigt, 2010). As natural gas is a fuel input in electricity generation the two markets present a classical example of upstream and downstream markets. In addition both markets rely on networks introducing spatial components into the market design. The paper at hand provides a comprehensive design of both markets. As we did not yet cover the detailed mathematical functionalities of equilibrium models you may want to focus your reading on the above described decision conditions for zero-profit constraints and market clearing.\r\n \r\nAbrell, J. & Weigt, H. (2010). [Combining Energy Networks](https://mpra.ub.uni-muenchen.de/65504/1/MPRA_paper_65504.pdf). Dresden University of Technology. (Journal Version: Abrell, J. & Weigt, H. (2012). Combining energy networks. Networks and Spatial Economics, 12(3), pp. 377-401.)\r\n{.citation-indented}', '', '', '', '', '', None, None, None, None, '', '', '', '', 'TV', '', 11, 'published', False, None, None, None, None, 227), (1284, datetime.datetime(2022, 5, 5, 19, 15, 58, 752101, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 13, 27, 9, 913356, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 13, 27, 9, 855203, tzinfo=datetime.timezone.utc), False, 'Exercise: Price-quantity relations to liberate demand', None, 'Exercise: Price-quantity relations to liberate demand', None, '', None, None, None, 'Try this exercise about price-quantity relations to liberate demand.', None, 'Try this exercise about price-quantity relations to liberate demand.', None, '', 'exercise-price-quantity-relations-to-liberate-demand', 'In the last model exercise, we asked you to steer the behaviour of firms by choosing the CO<sub>2</sub> tax level, the required deposit for nuclear accidents, subsidies for wind power and PV, and the electricity price.\r\n{.lead}\r\n \r\nThis time, we take away the choice of electricity prices and replace it with a market interaction between the supplying firms and the consumers.\r\n \r\nSo please **try again to steer the system in the direction you want by adjusting the sliders and observe the resulting firm and consumer reaction**.\r\n\r\n**Note: If you want to keep a certain result for later use we suggest that you make a screenshot (Command-Shift-3 for Mac or CTRL+PrtScn for Windows) and download it.**\r\n\r\n<br>\r\n\r\n##Exercise\r\n\r\n###[Liberating demand: price-quantity relations](https://nmc.unibas.ch/online-courses/exploring/2017/tm6/index.html){:target=“_blank”}', '', 'In the last model exercise, we asked you to steer the behaviour of firms by choosing the CO<sub>2</sub> tax level, the required deposit for nuclear accidents, subsidies for wind power and PV, and the electricity price.\r\n{.lead}\r\n \r\nThis time, we take away the choice of electricity prices and replace it with a market interaction between the supplying firms and the consumers.\r\n \r\nSo please **try again to steer the system in the direction you want by adjusting the sliders and observe the resulting firm and consumer reaction**.\r\n\r\n**Note: If you want to keep a certain result for later use we suggest that you make a screenshot (Command-Shift-3 for Mac or CTRL+PrtScn for Windows) and download it.**\r\n\r\n<br>\r\n\r\n##Exercise\r\n\r\n###[Liberating demand: price-quantity relations](https://nmc.unibas.ch/online-courses/exploring/2017/tm6/index.html){:target=“_blank”}', '', '', '', '', '', None, None, None, None, '', '', '', '', 'TT', '', 12, 'published', False, None, None, None, None, 227), (1285, datetime.datetime(2022, 5, 5, 19, 16, 7, 735242, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 13, 29, 27, 314646, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 13, 29, 27, 246865, tzinfo=datetime.timezone.utc), False, 'Reflection: Feedback from policy to consumer demand', None, 'Reflection: Feedback from policy to consumer demand', None, '', None, None, None, 'Reflect on feedback from policy to consumer demand.', None, 'Reflect on feedback from policy to consumer demand.', None, '', 'reflection-feedback-from-policy-to-consumer-demand', 'In the previous model exercise, you again chose price signals, but the electricity market itself was endogenously derived by the underlying model.\r\n{.lead}\r\n\r\nLast time you picked one case, analysed the response of the firms, and explained the underlying economic logic. Now please **compare your results of the new model with the previous exercise**:\r\nDid your interpretation change, now that the market balance is an endogenous model result?\r\n\r\nIs it easier for you to derive a result interpretation when the demand-supply reaction is endogenous or when you have to manually adjust the price level to ensure a balanced system?\r\n\r\nWe suggest you make a note of your observations.', '', 'In the previous model exercise, you again chose price signals, but the electricity market itself was endogenously derived by the underlying model.\r\n{.lead}\r\n\r\nLast time you picked one case, analysed the response of the firms, and explained the underlying economic logic. Now please **compare your results of the new model with the previous exercise**:\r\nDid your interpretation change, now that the market balance is an endogenous model result?\r\n\r\nIs it easier for you to derive a result interpretation when the demand-supply reaction is endogenous or when you have to manually adjust the price level to ensure a balanced system?\r\n\r\nWe suggest you make a note of your observations.', '', '', '', '', '', None, None, None, None, '', '', '', '', 'TT', '', 13, 'published', True, 'Please share your thoughts and comparisons in the [comments](#comments) section below.', None, 'Please share your thoughts and comparisons in the [comments](#comments) section below.', None, 227), (1286, datetime.datetime(2022, 5, 5, 19, 16, 15, 812587, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 13, 30, 28, 825843, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 13, 30, 28, 774795, tzinfo=datetime.timezone.utc), False, 'Price-quantity relations: the mathematics', None, 'Price-quantity relations: the mathematics', None, '', None, None, None, 'Through this article, Frank Krysiak explains the mathematical formulation of the first equilibrium model used in this chapter.', None, 'Through this article, Frank Krysiak explains the mathematical formulation of the first equilibrium model used in this chapter.', None, '', 'price-quantity-relations-the-mathematics', 'Let us now have a brief look at the details of the model. The building blocks for describing firm behaviour and demand have remained unchanged. We still employ the equations and parameter values described previously.\r\n{.lead}\r\n\r\n![Mathematical equatations](/media/markdownx/3a255097-bae3-4fd8-be0e-ae89990594cd.png)\r\n \r\nWhat has changed is that we have now taken this model to the next stage: instead of ‘only’ describing firm behaviour, it is now an equilibrium model that describes firm behaviour, consumer behaviour, **and** the linkage of these two implied by market clearing. The model not only calculates how much electricity each firm produces and how much electricity consumers demand for given prices and policies but it matches aggregate supply and demand by adjusting the market price for electricity.\r\n \r\nHow does this work? You have to add a balance between supply and demand, like in the very first model exercise.\r\n \r\nFirst, let’s define the production of each firm, $$i$$, (ie, the $$q_i$$) for a given price and sum them to obtain the aggregate production of all the firms at that price, $$Q^{supply}$$:\r\n\r\n---\r\n\r\n$$Q^{supply} = \\sum_{\\begin{gather}i=firm_{PV},firm_{Wind},firm_{Coal} \\\\ firm_{Gas}, firm_{Nuclear}\\end{gather}}q_i$$\r\n\r\n---\r\n\r\nSecond, demand is still given by\r\n\r\n---\r\n\r\n$$d= \\overline{Q}-\\eta \\cdot p$$\r\n\r\n---\r\n \r\nNow, you can add a balancing equation that models the fact that an electricity market must clear (electricity demand has to equal supply):\r\n \r\n---\r\n\r\n(1) $$d=Q^{supply}$$.\r\n\r\n---\r\n \r\nThis additional equation determines the electricity price, which, so far, has been an exogenous variable. Now, it becomes endogenous.\r\n \r\nNote that **equation (1)** cannot be easily solved analytically, as the equations for the different firms are too complex. Thus we use a numerical algorithm to solve this equation.\r\n \r\nThis is the first equilibrium model that we have used in this course. These models are important as they describe how a society consisting of different actors (firms, in our case) work if the connections between actors are taken into account. From now on, we will always use this type of model, as connected actors are what we usually encounter in modelling future energy systems.', '', 'Let us now have a brief look at the details of the model. The building blocks for describing firm behaviour and demand have remained unchanged. We still employ the equations and parameter values described previously.\r\n{.lead}\r\n\r\n![Mathematical equatations](/media/markdownx/3a255097-bae3-4fd8-be0e-ae89990594cd.png)\r\n \r\nWhat has changed is that we have now taken this model to the next stage: instead of ‘only’ describing firm behaviour, it is now an equilibrium model that describes firm behaviour, consumer behaviour, **and** the linkage of these two implied by market clearing. The model not only calculates how much electricity each firm produces and how much electricity consumers demand for given prices and policies but it matches aggregate supply and demand by adjusting the market price for electricity.\r\n \r\nHow does this work? You have to add a balance between supply and demand, like in the very first model exercise.\r\n \r\nFirst, let’s define the production of each firm, $$i$$, (ie, the $$q_i$$) for a given price and sum them to obtain the aggregate production of all the firms at that price, $$Q^{supply}$$:\r\n\r\n---\r\n\r\n$$Q^{supply} = \\sum_{\\begin{gather}i=firm_{PV},firm_{Wind},firm_{Coal} \\\\ firm_{Gas}, firm_{Nuclear}\\end{gather}}q_i$$\r\n\r\n---\r\n\r\nSecond, demand is still given by\r\n\r\n---\r\n\r\n$$d= \\overline{Q}-\\eta \\cdot p$$\r\n\r\n---\r\n \r\nNow, you can add a balancing equation that models the fact that an electricity market must clear (electricity demand has to equal supply):\r\n \r\n---\r\n\r\n(1) $$d=Q^{supply}$$.\r\n\r\n---\r\n \r\nThis additional equation determines the electricity price, which, so far, has been an exogenous variable. Now, it becomes endogenous.\r\n \r\nNote that **equation (1)** cannot be easily solved analytically, as the equations for the different firms are too complex. Thus we use a numerical algorithm to solve this equation.\r\n \r\nThis is the first equilibrium model that we have used in this course. These models are important as they describe how a society consisting of different actors (firms, in our case) work if the connections between actors are taken into account. From now on, we will always use this type of model, as connected actors are what we usually encounter in modelling future energy systems.', '', '', '', '', '', None, None, None, None, '', '', '', '', 'TT', '', 14, 'published', False, None, None, None, None, 227), (1287, datetime.datetime(2022, 5, 5, 19, 16, 24, 310618, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 13, 31, 24, 830401, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 13, 31, 24, 745051, tzinfo=datetime.timezone.utc), False, 'Wrap up: firms vs. markets', None, 'Wrap up: firms vs. markets', None, '', None, None, None, 'Through this article, Frank Krysiak and Hannes Weigt sum up what you have learned during this chapter.', None, 'Through this article, Frank Krysiak and Hannes Weigt sum up what you have learned during this chapter.', None, '', 'wrap-up-firms-vs-markets', 'This chapter included many challenges. We have moved away from the system perspective with a central planning (you have decided which technologies are to be used in the models before) to a market perspective where different actors (firms) pursue their own objectives and can only be steered indirectly by policy measures.\r\n{.lead}\r\n\r\n![Firm and market](/media/markdownx/9c182437-3193-4d50-991a-f41e25bb593b.png)\r\n\r\nTo achieve this, we have discussed in detail how actors, like firms, can be modelled. You have seen different ways of doing this like the Emission Choice Model (ECM), Output Abatement Choice Model (OACM) or Input Choice Model (ICM). Based on these approaches a new exercise model was designed that introduced the firm perspective.\r\n\r\nIn a final step, we have introduced the demand side and connected the two sides: we have introduced a market for electricity that clears automatically (by adjusting the market price). This market ensures that the actions taken by the different actors are compatible: it is an ‘invisible hand’ that steers firms and consumers to a situation where total demand for electricity exactly equals total supply.\r\n\r\nWith this final step, you are in a situation that is similar to the one in the second chapter of this course: you can describe aggregate electricity demand and aggregate supply and influence both via policy measures. However, now you have a model that takes into account that most societies do not have a dictator that makes all decisions but that these societies include a number of different actors. The basics of equilibrium modelling.\r\n\r\n![modeling phases: problem, model, solution](/media/markdownx/01e5a212-43a7-4add-b9cb-7250bd7922bc.png)\r\n\r\nThe building blocks provide you with a robust set of components to design your own market models. Together with the system models and optimization logic of the last chapter, you now have a sufficiently large toolkit to answer different problems and design fitting models. In addition, we have made our first attempt at using models. Remember, that in order to derive a solution out of your model, you will need as many equations as your model has endogenous variables. And those equations are derived by differentiating the objective of your model with respect to those endogenous variables. We will take a deeper look into how models are solved both for optimization and equilibrium models in the upcoming two chapters.\r\n\r\nSo far, the actors in our model have behaved nicely: they behave competitively, nobody tries to use market power to get an advantage. This will be changed in the coming chapter when we enrich our model by having an actor that is bigger than the other ones that tries to use its size to its own advantage (or exert market power). We thus go, again, one step closer to actual energy systems where market power is rather ubiquitous.', '', 'This chapter included many challenges. We have moved away from the system perspective with a central planning (you have decided which technologies are to be used in the models before) to a market perspective where different actors (firms) pursue their own objectives and can only be steered indirectly by policy measures.\r\n{.lead}\r\n\r\n![Firm and market](/media/markdownx/9c182437-3193-4d50-991a-f41e25bb593b.png)\r\n\r\nTo achieve this, we have discussed in detail how actors, like firms, can be modelled. You have seen different ways of doing this like the Emission Choice Model (ECM), Output Abatement Choice Model (OACM) or Input Choice Model (ICM). Based on these approaches a new exercise model was designed that introduced the firm perspective.\r\n\r\nIn a final step, we have introduced the demand side and connected the two sides: we have introduced a market for electricity that clears automatically (by adjusting the market price). This market ensures that the actions taken by the different actors are compatible: it is an ‘invisible hand’ that steers firms and consumers to a situation where total demand for electricity exactly equals total supply.\r\n\r\nWith this final step, you are in a situation that is similar to the one in the second chapter of this course: you can describe aggregate electricity demand and aggregate supply and influence both via policy measures. However, now you have a model that takes into account that most societies do not have a dictator that makes all decisions but that these societies include a number of different actors. The basics of equilibrium modelling.\r\n\r\n![modeling phases: problem, model, solution](/media/markdownx/01e5a212-43a7-4add-b9cb-7250bd7922bc.png)\r\n\r\nThe building blocks provide you with a robust set of components to design your own market models. Together with the system models and optimization logic of the last chapter, you now have a sufficiently large toolkit to answer different problems and design fitting models. In addition, we have made our first attempt at using models. Remember, that in order to derive a solution out of your model, you will need as many equations as your model has endogenous variables. And those equations are derived by differentiating the objective of your model with respect to those endogenous variables. We will take a deeper look into how models are solved both for optimization and equilibrium models in the upcoming two chapters.\r\n\r\nSo far, the actors in our model have behaved nicely: they behave competitively, nobody tries to use market power to get an advantage. This will be changed in the coming chapter when we enrich our model by having an actor that is bigger than the other ones that tries to use its size to its own advantage (or exert market power). We thus go, again, one step closer to actual energy systems where market power is rather ubiquitous.', '', '', '', '', '', None, None, None, None, '', '', '', '', 'TT', '', 15, 'published', False, None, None, None, None, 227)]])}, None) | {} | <django_redis.cache.RedisCache object at 0x7910e287a790> | |
/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in run(101) return _run_old_run_func() /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in _run_old_run_func(94) return old_run_func(self, *a, **kw) /usr/local/lib/python3.11/concurrent/futures/thread.py in _worker(83) work_item.run() /usr/local/lib/python3.11/concurrent/futures/thread.py in run(58) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56) result = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in middleware(32) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/allauth/account/middleware.py in middleware(36) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/simple_history/middleware.py in middleware(41) return get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/django_htmx/middleware.py in __call__(43) return self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in __call__(168) response = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/panels.py in process_request(41) return super(CachalotPanel, self).process_request(request) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in __call__(244) current_executor.run_until_future(call_result) /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run_until_future(81) work_item.run() /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run(40) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(90) return callback(request, *args, **kwargs) /app/project/utils/decorators.py in apply_cache(72) cache.set(CACHE_KEY, response.render(), ttl) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_patched_render(41) return old_render(self) /usr/local/lib/python3.11/site-packages/django/template/response.py in render(114) self.content = self.rendered_content /usr/local/lib/python3.11/site-packages/sentry_sdk/utils.py in runner(1788) return sentry_patched_function(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/templates.py in rendered_content(77) return real_rendered_content.fget(self) /usr/local/lib/python3.11/site-packages/django/template/response.py in rendered_content(92) return template.render(context, self._request) /usr/local/lib/python3.11/site-packages/django/template/backends/django.py in render(61) return self.template.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(175) return self._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157) return compiled_parent._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157) return compiled_parent._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63) result = block.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63) result = block.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(208) return template.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(177) return self._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(321) return nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(238) nodelist.append(node.render_annotated(context)) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(194) len_values = len(values) /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(37) return original(compiler, *args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(96) return _get_result_or_execute_query( /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in _get_result_or_execute_query(71) cache.set_many(to_be_set, cachalot_settings.CACHALOT_TIMEOUT) |
|||||
0,4345 | get_many | (['e3a5db5a670ad803efb866441f33de58309be2e2', '76e323efd8711853e13c9f7cf976845908364eb2', '138549f5508bbba7283d6a0625e51c589d845e8f', '87a90cfee50670e9c83f81b07e416a5bb6e0c423'],) | {} | <django_redis.cache.RedisCache object at 0x7910e287a790> | |
/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in run(101) return _run_old_run_func() /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in _run_old_run_func(94) return old_run_func(self, *a, **kw) /usr/local/lib/python3.11/concurrent/futures/thread.py in _worker(83) work_item.run() /usr/local/lib/python3.11/concurrent/futures/thread.py in run(58) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56) result = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in middleware(32) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/allauth/account/middleware.py in middleware(36) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/simple_history/middleware.py in middleware(41) return get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/django_htmx/middleware.py in __call__(43) return self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in __call__(168) response = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/panels.py in process_request(41) return super(CachalotPanel, self).process_request(request) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in __call__(244) current_executor.run_until_future(call_result) /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run_until_future(81) work_item.run() /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run(40) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(90) return callback(request, *args, **kwargs) /app/project/utils/decorators.py in apply_cache(72) cache.set(CACHE_KEY, response.render(), ttl) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_patched_render(41) return old_render(self) /usr/local/lib/python3.11/site-packages/django/template/response.py in render(114) self.content = self.rendered_content /usr/local/lib/python3.11/site-packages/sentry_sdk/utils.py in runner(1788) return sentry_patched_function(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/templates.py in rendered_content(77) return real_rendered_content.fget(self) /usr/local/lib/python3.11/site-packages/django/template/response.py in rendered_content(92) return template.render(context, self._request) /usr/local/lib/python3.11/site-packages/django/template/backends/django.py in render(61) return self.template.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(175) return self._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157) return compiled_parent._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157) return compiled_parent._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63) result = block.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63) result = block.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(208) return template.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(177) return self._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(321) return nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(238) nodelist.append(node.render_annotated(context)) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(194) len_values = len(values) /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(37) return original(compiler, *args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(96) return _get_result_or_execute_query( /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in _get_result_or_execute_query(46) data = cache.get_many(table_cache_keys + [cache_key]) |
|||||
1,4621 | set_many | ({'87a90cfee50670e9c83f81b07e416a5bb6e0c423': (1736881791.661198, [[(1288, datetime.datetime(2022, 5, 5, 19, 16, 51, 472944, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 13, 32, 46, 640902, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 13, 32, 46, 592334, tzinfo=datetime.timezone.utc), False, 'Which model type to choose', None, 'Which model type to choose', None, '', None, None, None, 'Watch Hannes Weigt explaining some basic guidelines on how to decide which model is the best choice for your problem.', None, 'Watch Hannes Weigt explaining some basic guidelines on how to decide which model is the best choice for your problem.', None, 'exploring-possible-futures/second-best-worlds/which-model-type-to-choose/019.jpg', 'which-model-type-to-choose', 'By now you have learned about system perspectives and how to build optimization models, and practised with your first bottom-up energy system model. You followed the explanation of basic building blocks and learned how to design aggregated firm and market models. So the natural question you will likely ask at this point is: which is the best model type to choose for a specific problem?\r\n{.lead}\r\n\r\n![embed](https://vimeo.com/734303964/2f7d8c11a7)\r\n \r\nThere is no general answer to this question as it heavily depends on the problem you want to analyse. One advantage of modelling is that many roads lead to Rome. In many cases you will be able to address your problem with different model types.\r\n \r\nIf you focus on the main characteristics of the different model concepts and designs we discussed, you often get a good idea for which type of question they are well fitted.\r\n \r\n\r\nFor example, think about the **scale** of your question:\r\n\r\n* Large scale energy system models often focus on capturing many technical bottom-up aspects. \r\n* Firm-oriented models allow you to capture the behaviour of profit oriented companies and how their decisions are influenced by external aspects like prices or policy regulations. \r\n* And market models focus on interaction of actors. \r\n \r\nOr whether you are looking for **qualitative** or **quantitative** answers: \r\n\r\n* Conceptual/theoretical models aim to understand mechanisms and arguments. \r\n* Numerical models can provide scenario assessments and are fitted to represent specific real world markets or systems. \r\n\r\nOr, how your **mathematical formulation** fits to your question: \r\n\r\n* Optimization problems need something to optimise like profits or costs. \r\n* Equilibrium problems capture the interaction of different actors. \r\n \r\nWith a bit of experience these considerations will become easier and a natural part of the back and forth between defining your research problem and designing your model.', '', 'By now you have learned about system perspectives and how to build optimization models, and practised with your first bottom-up energy system model. You followed the explanation of basic building blocks and learned how to design aggregated firm and market models. So the natural question you will likely ask at this point is: which is the best model type to choose for a specific problem?\r\n{.lead}\r\n\r\n![embed](https://vimeo.com/734303964/2f7d8c11a7)\r\n \r\nThere is no general answer to this question as it heavily depends on the problem you want to analyse. One advantage of modelling is that many roads lead to Rome. In many cases you will be able to address your problem with different model types.\r\n \r\nIf you focus on the main characteristics of the different model concepts and designs we discussed, you often get a good idea for which type of question they are well fitted.\r\n \r\n\r\nFor example, think about the **scale** of your question:\r\n\r\n* Large scale energy system models often focus on capturing many technical bottom-up aspects. \r\n* Firm-oriented models allow you to capture the behaviour of profit oriented companies and how their decisions are influenced by external aspects like prices or policy regulations. \r\n* And market models focus on interaction of actors. \r\n \r\nOr whether you are looking for **qualitative** or **quantitative** answers: \r\n\r\n* Conceptual/theoretical models aim to understand mechanisms and arguments. \r\n* Numerical models can provide scenario assessments and are fitted to represent specific real world markets or systems. \r\n\r\nOr, how your **mathematical formulation** fits to your question: \r\n\r\n* Optimization problems need something to optimise like profits or costs. \r\n* Equilibrium problems capture the interaction of different actors. \r\n \r\nWith a bit of experience these considerations will become easier and a natural part of the back and forth between defining your research problem and designing your model.', '', '', '', '', '', None, None, None, None, '', '', '', '', 'TV', '', 0, 'published', False, None, None, None, None, 228), (1289, datetime.datetime(2022, 5, 5, 19, 17, 2, 835890, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 13, 33, 38, 786946, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 13, 33, 38, 732789, tzinfo=datetime.timezone.utc), False, 'Two sides of the same coin', None, 'Two sides of the same coin', None, '', None, None, None, 'In this article Hannes Weigt explains how optimization problems can be transformed into equilibrium formulations.', None, 'In this article Hannes Weigt explains how optimization problems can be transformed into equilibrium formulations.', None, '', 'two-sides-of-the-same-coin', 'In the previous step you have learned that the choice of your model design will largely depend on your underlying problem, but also that some model approaches are exchangeable and lead to the same results.\r\n{.lead}\r\n\r\n![Coin](/media/markdownx/79a32575-7014-43f8-a8cb-42540817f6a8.png)\r\n\r\nThis is particularly important for optimization or equilibrium formulations. The model choice is often a matter of preference in model design and the underlying economic thinking than a strict necessity. In this step, you will see that there is also a mathematical reasoning behind the fact that most problems can be formulated as both model types.\r\n \r\nIn general, each optimization problem can be transformed into an equilibrium formulation. Remember, how in the examples of equilibria one was the ‘result of an optimization’? This relation is based on the so called **Karush–Kuhn–Tucker (KKT) conditions**.\r\n \r\nLet’s take a generic optimization problem as an example:\r\n\r\n---\r\n \r\n   $$\\min \\limits_X \\enspace {f(X)} $$\r\n\r\n s.t. $$ g_i(X)=0$$\r\n\r\n   $$h_i(X) \\le 0$$\r\n\r\n---\r\n\r\nwe can derive the solution by setting up the **Lagrange function** of this problem (by introducing the Lagrangian multiplier $$µ$$ for the equality constraints and $$λ$$ for the inequality constraints)\r\n \r\n---\r\n\r\n$$L=f(X)+\\sum\\mu_ig_i(X)+\\sum\\lambda_ih_i(X)$$\r\n \r\n---\r\n\r\nand obtain the necessary KKT conditions for a minimum (or first-order condition) by taking the partial derivative of the Lagrangian with respect to X and setting the equation equal to zero:\r\n \r\n---\r\n\r\n(1)   $$\\frac{\\partial f(X)}{\\partial X}+\\sum\\mu_i\\frac{\\partial g_i(X)}{\\partial X}+\\sum\\lambda_i\\frac{\\partial h_i(X)}{\\partial X}=0$$\r\n\r\n(2)   $$g_i(X)=0$$\r\n\r\n(3)   $$h_i(X) \\le 0$$\r\n\r\n(4)   $$λ_i h_i(X)=0$$\r\n\r\n(5)   $$λ_i \\ge 0$$\r\n\r\n---\r\n\r\n \r\n**Equation (1)** is the simple optimality criterion that the first-order condition with respect to the decision variables (X) need to equal zero. **Equation (2)** and **(3)** are the feasibility constraints imposed by the side constraints. **Equation (4)** is called the complementary slackness condition and results from inequality constraints. **Equation (5)** the non-negativity restriction on the multipliers of the inequalities. Technically, these equations state the conditions the system has to fulfil in the optimal equilibrium; this is an equilibrium formulation of the above designed optimization problem. (For more information and derivation of the KKT conditions follow the link to additional information below.)\r\n \r\nLet’s rephrase the conditions a little bit to obtain the same logic we have learned in the last chapter about equilibrium problems. For this we need so called **complementarity conditions**. In general, two variables (note: these are not the same variables from the above equations) are complementary to each other if the following holds:\r\n \r\n\r\n$$X\\cdot Y=0; X\\geq 0; Y\\geq 0$$   which is often written as   $$X\\leq0\\perp Y\\geq 0$$\r\n\r\n\r\nThis basically tells us that either X or Y needs to be zero.\r\n\r\n \r\nReturning to the Lagrange formulation of our minimization:\r\n\r\n\r\n$$L=f(X) + \\sum \\mu_i g_i (X) + \\sum \\lambda_i h_i(X)$$\r\n \r\nwe can derive our equilibrium formulation via these **complementarity conditions**, first for the choice variable:\r\n\r\n$$\\frac{\\partial L}{\\partial X}X=0;$$   $$\\frac{\\partial L}{\\partial X} \\leq0;$$   $$X\\geq0$$\r\n \r\nThese equations tell us that the product of the first-order condition, $$\\frac{\\partial L}{\\partial X}$$, with the respective variable, $$X$$, has to equal zero either the variable, $$X$$, or the derivative must be zero. This is equivalent to the economic logic introduced for equilibrium models. Either my decision variable X (eg, my output) is positive, in which case the respective first-order condition has to equal zero (my zero-profit condition), or my decision variable is zero (eg, I don’t produce any output because I won’t make a profit or breakeven).\r\n \r\nThe same holds for the multipliers on the equality and inequality constraints:\r\n \r\n---\r\n\r\n$$\\frac{\\partial L }{ \\partial{\\mu_i}}\\mu_i = 0;$$   $$\\frac{\\partial L}{ \\partial{\\mu_i}} = 0;$$   $$μ_i$$ is free \r\n$$\\frac{\\partial L}{\\partial \\lambda_i}\\lambda_i=0;$$   $$\\frac{\\partial L}{\\partial \\lambda_i}\\leq0;$$   $$λ_i \\ge 0$$\r\n \r\n---\r\n\r\nEither my side constraint is binding (eg, the production capacity limit is reached), in which case my multiplier has a positive value (eg, the shadow price of capacity), or it is not binding and the multiplier has to be zero. Note that for equality constraints the multiplier is free in sign as the enforced equality basically ensures that the derivative has to be zero.\r\n\r\nThe important point with this reformulation is that it is equivalent to the above formulated KKT conditions which are the solution of the optimization. In other words, if we have an optimization formulation, we can reformulate it as an equilibrium problem and obtain the same result. The reverse is not true, as not all equilibrium models can be transferred into optimization models. Consequently, there are some problems where only equilibrium approaches are feasible. This is the case if more than one actor has to be included in the model design (eg, in case of oligopolistic competition) and we lack a single objective that we can optimise.\r\n \r\nSummarising, each optimization formulation can be transformed into an equilibrium formulation. Therefore, many model designs can be realised via both approaches. In the next step, we will use our energy system example to get a more hands-on understanding of the linkage between optimization and equilibrium.\r\n \r\n<br>\r\n \r\nRecommended readings \r\n{.footnote-title}\r\n\r\nThe literature recommendation below takes up on the combined representation of natural gas and electricity market we already recommended in an earlier step. The model is an extension of the static model formulation presented in Abrell and Weigt (2014) to account for investments. Besides presenting an example of how to design a potential investment decision, the paper also shows the relation between optimization and equilibrium. Within the paper the different market actors are described using their respective profit maximizations and side constraints. This logic is then transferred into an equilibrium formulation in the Annex using the above described relation.\r\n \r\nAbrell, J. & Weigt, H. (2014). [Investments in a Combined Energy Network Model: Substitution between Natural Gas And Electricity?](https://ideas.repec.org/p/bsl/wpaper/2014-05.html){:target=“_blank”} WWZ, University Basel.\r\n{.citation-indented}', '', 'In the previous step you have learned that the choice of your model design will largely depend on your underlying problem, but also that some model approaches are exchangeable and lead to the same results.\r\n{.lead}\r\n\r\n![Coin](/media/markdownx/79a32575-7014-43f8-a8cb-42540817f6a8.png)\r\n\r\nThis is particularly important for optimization or equilibrium formulations. The model choice is often a matter of preference in model design and the underlying economic thinking than a strict necessity. In this step, you will see that there is also a mathematical reasoning behind the fact that most problems can be formulated as both model types.\r\n \r\nIn general, each optimization problem can be transformed into an equilibrium formulation. Remember, how in the examples of equilibria one was the ‘result of an optimization’? This relation is based on the so called **Karush–Kuhn–Tucker (KKT) conditions**.\r\n \r\nLet’s take a generic optimization problem as an example:\r\n\r\n---\r\n \r\n   $$\\min \\limits_X \\enspace {f(X)} $$\r\n\r\n s.t. $$ g_i(X)=0$$\r\n\r\n   $$h_i(X) \\le 0$$\r\n\r\n---\r\n\r\nwe can derive the solution by setting up the **Lagrange function** of this problem (by introducing the Lagrangian multiplier $$µ$$ for the equality constraints and $$λ$$ for the inequality constraints)\r\n \r\n---\r\n\r\n$$L=f(X)+\\sum\\mu_ig_i(X)+\\sum\\lambda_ih_i(X)$$\r\n \r\n---\r\n\r\nand obtain the necessary KKT conditions for a minimum (or first-order condition) by taking the partial derivative of the Lagrangian with respect to X and setting the equation equal to zero:\r\n \r\n---\r\n\r\n(1)   $$\\frac{\\partial f(X)}{\\partial X}+\\sum\\mu_i\\frac{\\partial g_i(X)}{\\partial X}+\\sum\\lambda_i\\frac{\\partial h_i(X)}{\\partial X}=0$$\r\n\r\n(2)   $$g_i(X)=0$$\r\n\r\n(3)   $$h_i(X) \\le 0$$\r\n\r\n(4)   $$λ_i h_i(X)=0$$\r\n\r\n(5)   $$λ_i \\ge 0$$\r\n\r\n---\r\n\r\n \r\n**Equation (1)** is the simple optimality criterion that the first-order condition with respect to the decision variables (X) need to equal zero. **Equation (2)** and **(3)** are the feasibility constraints imposed by the side constraints. **Equation (4)** is called the complementary slackness condition and results from inequality constraints. **Equation (5)** the non-negativity restriction on the multipliers of the inequalities. Technically, these equations state the conditions the system has to fulfil in the optimal equilibrium; this is an equilibrium formulation of the above designed optimization problem. (For more information and derivation of the KKT conditions follow the link to additional information below.)\r\n \r\nLet’s rephrase the conditions a little bit to obtain the same logic we have learned in the last chapter about equilibrium problems. For this we need so called **complementarity conditions**. In general, two variables (note: these are not the same variables from the above equations) are complementary to each other if the following holds:\r\n \r\n\r\n$$X\\cdot Y=0; X\\geq 0; Y\\geq 0$$   which is often written as   $$X\\leq0\\perp Y\\geq 0$$\r\n\r\n\r\nThis basically tells us that either X or Y needs to be zero.\r\n\r\n \r\nReturning to the Lagrange formulation of our minimization:\r\n\r\n\r\n$$L=f(X) + \\sum \\mu_i g_i (X) + \\sum \\lambda_i h_i(X)$$\r\n \r\nwe can derive our equilibrium formulation via these **complementarity conditions**, first for the choice variable:\r\n\r\n$$\\frac{\\partial L}{\\partial X}X=0;$$   $$\\frac{\\partial L}{\\partial X} \\leq0;$$   $$X\\geq0$$\r\n \r\nThese equations tell us that the product of the first-order condition, $$\\frac{\\partial L}{\\partial X}$$, with the respective variable, $$X$$, has to equal zero either the variable, $$X$$, or the derivative must be zero. This is equivalent to the economic logic introduced for equilibrium models. Either my decision variable X (eg, my output) is positive, in which case the respective first-order condition has to equal zero (my zero-profit condition), or my decision variable is zero (eg, I don’t produce any output because I won’t make a profit or breakeven).\r\n \r\nThe same holds for the multipliers on the equality and inequality constraints:\r\n \r\n---\r\n\r\n$$\\frac{\\partial L }{ \\partial{\\mu_i}}\\mu_i = 0;$$   $$\\frac{\\partial L}{ \\partial{\\mu_i}} = 0;$$   $$μ_i$$ is free \r\n$$\\frac{\\partial L}{\\partial \\lambda_i}\\lambda_i=0;$$   $$\\frac{\\partial L}{\\partial \\lambda_i}\\leq0;$$   $$λ_i \\ge 0$$\r\n \r\n---\r\n\r\nEither my side constraint is binding (eg, the production capacity limit is reached), in which case my multiplier has a positive value (eg, the shadow price of capacity), or it is not binding and the multiplier has to be zero. Note that for equality constraints the multiplier is free in sign as the enforced equality basically ensures that the derivative has to be zero.\r\n\r\nThe important point with this reformulation is that it is equivalent to the above formulated KKT conditions which are the solution of the optimization. In other words, if we have an optimization formulation, we can reformulate it as an equilibrium problem and obtain the same result. The reverse is not true, as not all equilibrium models can be transferred into optimization models. Consequently, there are some problems where only equilibrium approaches are feasible. This is the case if more than one actor has to be included in the model design (eg, in case of oligopolistic competition) and we lack a single objective that we can optimise.\r\n \r\nSummarising, each optimization formulation can be transformed into an equilibrium formulation. Therefore, many model designs can be realised via both approaches. In the next step, we will use our energy system example to get a more hands-on understanding of the linkage between optimization and equilibrium.\r\n \r\n<br>\r\n \r\nRecommended readings \r\n{.footnote-title}\r\n\r\nThe literature recommendation below takes up on the combined representation of natural gas and electricity market we already recommended in an earlier step. The model is an extension of the static model formulation presented in Abrell and Weigt (2014) to account for investments. Besides presenting an example of how to design a potential investment decision, the paper also shows the relation between optimization and equilibrium. Within the paper the different market actors are described using their respective profit maximizations and side constraints. This logic is then transferred into an equilibrium formulation in the Annex using the above described relation.\r\n \r\nAbrell, J. & Weigt, H. (2014). [Investments in a Combined Energy Network Model: Substitution between Natural Gas And Electricity?](https://ideas.repec.org/p/bsl/wpaper/2014-05.html){:target=“_blank”} WWZ, University Basel.\r\n{.citation-indented}', '', '', '', '', '', None, None, None, None, '', '', '', '', 'TT', '', 1, 'published', False, None, None, None, None, 228), (1290, datetime.datetime(2022, 5, 5, 19, 17, 15, 754592, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 13, 34, 30, 287912, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 13, 34, 30, 183736, tzinfo=datetime.timezone.utc), False, 'Perfect competition as example', None, 'Perfect competition as example', None, '', None, None, None, 'Through this article, Hannes Weigt explains how a simple energy system model can be formulated as optimization and as equilibrium market model.', None, 'Through this article, Hannes Weigt explains how a simple energy system model can be formulated as optimization and as equilibrium market model.', None, '', 'perfect-competition-as-example', 'In the last step we took a dive into the underlying mathematics of our models. To get a better understanding of what this means for your model design, we now use our simple energy system logic to design an optimization model and an equilibrium model that will result in the same outcomes.\r\n{.lead}\r\n \r\n![Perfect Competition](/media/markdownx/29fb3dea-0607-45e2-9a08-011fce2e760f.png)\r\n\r\nThe setup is the same for both. We assume a perfectly competitive market in which producers aim to maximise their short run profit given their cost function. Consumers aim to maximise their benefit derived from consuming electricity.\r\n \r\nIn an optimization setting, you know that you need to combine the individual objectives (firm’s profits and consumer benefit) into a single objective, $$B(d)$$. As we assume perfect competition, this is easily doable by maximising the welfare in our system (as discussed in an earlier step). Consequently, the objective function for the social planner looks like this:\r\n \r\n---\r\n\r\n(1)   $$\\max\\limits_{q_i,d\\geq 0} \\enspace B(d)-\\sum\\limits_{i}{c_i(q_i)}$$\r\n \r\n---\r\n\r\n$$B(d)$$ represents the benefit function of consumers (how much utility they derive from their demand $$d$$) and the profits from the firm. $$c_i(q_i)$$ represents the generation costs of firm $$i$$.\r\n \r\nAs side constraints you will again need to ensure that total supply is sufficient to cover demand. Clearly, demand cannot be less than 0:\r\n \r\n---\r\n\r\n(2)   $$\\sum\\limits_{i}{q_i} =d$$\r\n\r\n---\r\n \r\nIf you would derive the Karush–Kuhn–Tucker (KKT) conditions of the Lagrangian formulation of these two equations you would obtain the optimality conditions defining which level of supply and demand maximises welfare. Let’s just focus on the two decision variables: $$q_i$$ and $$d$$. Again, you will need to derive the first order condition of the model with respect to the two variables and set them equal to zero:\r\n \r\n\r\n\r\n---\r\n\r\n(3)   $$\\frac{∂B}{∂d}-μ=0$$ \r\n\r\n(4)   $$\\frac{∂c_i(q_i)}{∂q_i}+μ=0$$\r\n\r\n---\r\n\r\nThe $$µ$$ is again the Lagrangian multipliers on the side constraint.\r\n \r\nEquations (4) and (5) together with the side constraint (2) tell you the optimality criteria for your model.\r\n \r\nOk, let’s shortly switch to the equilibrium world and design the same problem in an equilibrium setting. Here we have firms maximizing profits, consumers maximizing their benefit, and a market that brings the two sides together.\r\n \r\nYou know that firms will only produce if the marginal costs are covered. Using this zero-profit logic you can write their equilibrium conditions as follows:\r\n\r\n---\r\n \r\n(5)   $$\\frac{∂c_i(q_i)}{∂q_i}\\geq p \\bot q_i\\geq0$$\r\n \r\n---\r\n\r\nThis formulation is the mathematical equivalent of our equilibrium logic. Either the firm has a positive output ($$q_i > 0$$) in which case the left hand side of equation (5) needs to hold with equality ($$\\frac{∂c_i(q_i)}{∂q_i}=p$$); or the firm does not produce ($$q_i = 0$$) in which case the left hand side is in inequality ($$\\frac{∂c_i(q_i)}{∂q_i}>p$$). The perpendicular sign $$\\bot$$ allows us to write this combination a bit more compactly.\r\n\r\nThe same logic holds for the consumer side:\r\n \r\n---\r\n\r\n(6)   $$p \\geq \\frac{∂B}{∂d} \\bot d \\geq 0$$\r\n \r\n---\r\n\r\nConsumers will only consume energy if the marginal benefit they can derive ($$\\frac{∂B}{∂d}$$) is at least as large as the price they have to pay for it.\r\n \r\nNow all you need is the market clearing condition to finalise your equilibrium model:\r\n\r\n---\r\n\r\n(7)   $$\\sum\\limits_{i}{q_i}\\geq d \\bot p \\geq 0$$\r\n \r\n---\r\n\r\nSimilar to the zero-profit equations this formulation is the mathematical way of describing the market clearing logic: if we have a positive market price ($$p > 0$$) it means the supply and demand side are in balance ($$\\sum\\limits_{i}{q_i}=d$$). If we have oversupply ($$\\sum\\limits_{i}{q_i}>d$$) the market price is zero ($$p = 0$$).\r\n \r\nNow if you compare equation (5) to (7) of the equilibrium model with equation (2) to (4) of the optimization model you may see some similarities: \r\nEquation (3) tells us that in the optimum, the marginal benefit of consumers is equal to $$µ$$. The same holds for the marginal costs of each firm in the optimum (equation (4)). And this $$µ$$ is linked to the constraint that in the equilibrium total supply and demand have to be balanced.\r\n \r\nNow this is basically the same story you designed with the equilibrium model. If supply and demand are equal, equation (7) tells us that the resulting market price, $$p$$, will be positive. And if you neglect the non-trivial equilibrium of having zero $$d$$ and production (which are balanced by definition) this also means positive production and demand levels. Equations (5) and (6) tell you that in this case the marginal costs of the firms have to be equal to the market price and the marginal benefit of consumers also has to be equal to the market price.\r\n \r\nIf you now replace the symbol for the market price, $$p$$, with some Greek letter, say $$µ$$, you see that those are basically the same results. The only difference is that the equilibrium model is formulated in a more general sense (those are conditions that need to hold for the market to be in equilibrium) whereas the optimization equations show the conditions that need to hold for the market to be in the equilibrium that optimises welfare.\r\n \r\nThis relation between the two model approaches means two things with respect to analysing your problem: \r\nFirst, you are often free to choose one or the other type of model. As long as you can derive a single objective for an optimization you can also formulate an equivalent equilibrium version of your model.\r\n\r\nSecond, the equilibrium logic of who is doing what (activity) when (zero-profit) and how market prices are related to supply and demand (market clearing) also holds when analysing your optimization model results. The underlying economic logic is the driving force of the two models. So, a solid understanding of incentives and market dynamics will help you to design, solve, and interpret your models, regardless of what specific model setup you have chosen.', '', 'In the last step we took a dive into the underlying mathematics of our models. To get a better understanding of what this means for your model design, we now use our simple energy system logic to design an optimization model and an equilibrium model that will result in the same outcomes.\r\n{.lead}\r\n \r\n![Perfect Competition](/media/markdownx/29fb3dea-0607-45e2-9a08-011fce2e760f.png)\r\n\r\nThe setup is the same for both. We assume a perfectly competitive market in which producers aim to maximise their short run profit given their cost function. Consumers aim to maximise their benefit derived from consuming electricity.\r\n \r\nIn an optimization setting, you know that you need to combine the individual objectives (firm’s profits and consumer benefit) into a single objective, $$B(d)$$. As we assume perfect competition, this is easily doable by maximising the welfare in our system (as discussed in an earlier step). Consequently, the objective function for the social planner looks like this:\r\n \r\n---\r\n\r\n(1)   $$\\max\\limits_{q_i,d\\geq 0} \\enspace B(d)-\\sum\\limits_{i}{c_i(q_i)}$$\r\n \r\n---\r\n\r\n$$B(d)$$ represents the benefit function of consumers (how much utility they derive from their demand $$d$$) and the profits from the firm. $$c_i(q_i)$$ represents the generation costs of firm $$i$$.\r\n \r\nAs side constraints you will again need to ensure that total supply is sufficient to cover demand. Clearly, demand cannot be less than 0:\r\n \r\n---\r\n\r\n(2)   $$\\sum\\limits_{i}{q_i} =d$$\r\n\r\n---\r\n \r\nIf you would derive the Karush–Kuhn–Tucker (KKT) conditions of the Lagrangian formulation of these two equations you would obtain the optimality conditions defining which level of supply and demand maximises welfare. Let’s just focus on the two decision variables: $$q_i$$ and $$d$$. Again, you will need to derive the first order condition of the model with respect to the two variables and set them equal to zero:\r\n \r\n\r\n\r\n---\r\n\r\n(3)   $$\\frac{∂B}{∂d}-μ=0$$ \r\n\r\n(4)   $$\\frac{∂c_i(q_i)}{∂q_i}+μ=0$$\r\n\r\n---\r\n\r\nThe $$µ$$ is again the Lagrangian multipliers on the side constraint.\r\n \r\nEquations (4) and (5) together with the side constraint (2) tell you the optimality criteria for your model.\r\n \r\nOk, let’s shortly switch to the equilibrium world and design the same problem in an equilibrium setting. Here we have firms maximizing profits, consumers maximizing their benefit, and a market that brings the two sides together.\r\n \r\nYou know that firms will only produce if the marginal costs are covered. Using this zero-profit logic you can write their equilibrium conditions as follows:\r\n\r\n---\r\n \r\n(5)   $$\\frac{∂c_i(q_i)}{∂q_i}\\geq p \\bot q_i\\geq0$$\r\n \r\n---\r\n\r\nThis formulation is the mathematical equivalent of our equilibrium logic. Either the firm has a positive output ($$q_i > 0$$) in which case the left hand side of equation (5) needs to hold with equality ($$\\frac{∂c_i(q_i)}{∂q_i}=p$$); or the firm does not produce ($$q_i = 0$$) in which case the left hand side is in inequality ($$\\frac{∂c_i(q_i)}{∂q_i}>p$$). The perpendicular sign $$\\bot$$ allows us to write this combination a bit more compactly.\r\n\r\nThe same logic holds for the consumer side:\r\n \r\n---\r\n\r\n(6)   $$p \\geq \\frac{∂B}{∂d} \\bot d \\geq 0$$\r\n \r\n---\r\n\r\nConsumers will only consume energy if the marginal benefit they can derive ($$\\frac{∂B}{∂d}$$) is at least as large as the price they have to pay for it.\r\n \r\nNow all you need is the market clearing condition to finalise your equilibrium model:\r\n\r\n---\r\n\r\n(7)   $$\\sum\\limits_{i}{q_i}\\geq d \\bot p \\geq 0$$\r\n \r\n---\r\n\r\nSimilar to the zero-profit equations this formulation is the mathematical way of describing the market clearing logic: if we have a positive market price ($$p > 0$$) it means the supply and demand side are in balance ($$\\sum\\limits_{i}{q_i}=d$$). If we have oversupply ($$\\sum\\limits_{i}{q_i}>d$$) the market price is zero ($$p = 0$$).\r\n \r\nNow if you compare equation (5) to (7) of the equilibrium model with equation (2) to (4) of the optimization model you may see some similarities: \r\nEquation (3) tells us that in the optimum, the marginal benefit of consumers is equal to $$µ$$. The same holds for the marginal costs of each firm in the optimum (equation (4)). And this $$µ$$ is linked to the constraint that in the equilibrium total supply and demand have to be balanced.\r\n \r\nNow this is basically the same story you designed with the equilibrium model. If supply and demand are equal, equation (7) tells us that the resulting market price, $$p$$, will be positive. And if you neglect the non-trivial equilibrium of having zero $$d$$ and production (which are balanced by definition) this also means positive production and demand levels. Equations (5) and (6) tell you that in this case the marginal costs of the firms have to be equal to the market price and the marginal benefit of consumers also has to be equal to the market price.\r\n \r\nIf you now replace the symbol for the market price, $$p$$, with some Greek letter, say $$µ$$, you see that those are basically the same results. The only difference is that the equilibrium model is formulated in a more general sense (those are conditions that need to hold for the market to be in equilibrium) whereas the optimization equations show the conditions that need to hold for the market to be in the equilibrium that optimises welfare.\r\n \r\nThis relation between the two model approaches means two things with respect to analysing your problem: \r\nFirst, you are often free to choose one or the other type of model. As long as you can derive a single objective for an optimization you can also formulate an equivalent equilibrium version of your model.\r\n\r\nSecond, the equilibrium logic of who is doing what (activity) when (zero-profit) and how market prices are related to supply and demand (market clearing) also holds when analysing your optimization model results. The underlying economic logic is the driving force of the two models. So, a solid understanding of incentives and market dynamics will help you to design, solve, and interpret your models, regardless of what specific model setup you have chosen.', '', '', '', '', '', None, None, None, None, '', '', '', '', 'TT', '', 2, 'published', False, None, None, None, None, 228), (1291, datetime.datetime(2022, 5, 5, 19, 17, 29, 193002, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 13, 35, 32, 392825, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 13, 35, 32, 329627, tzinfo=datetime.timezone.utc), False, 'Assess your knowledge', None, 'Assess your knowledge', None, '', None, None, None, 'Assess your knowledge on the basic concept of optimization and equilibrium models.', None, 'Assess your knowledge on the basic concept of optimization and equilibrium models.', None, '', 'assess-your-knowledge-3', 'Do you understand the basic concept of optimization and equilibrium models?\r\n{.lead}\r\n\r\n<br>\r\n\r\n<iframe src="https://h5p.nmc.unibas.ch/wp-admin/admin-ajax.php?action=h5p_embed&id=324" width="885" height="373" frameborder="0" allowfullscreen="allowfullscreen" title="Energy_Economics_4_4"></iframe><script src="https://h5p.nmc.unibas.ch/wp-content/plugins/h5p/h5p-php-library/js/h5p-resizer.js" charset="UTF-8"></script>', '', 'Do you understand the basic concept of optimization and equilibrium models?\r\n{.lead}\r\n\r\n<br>\r\n\r\n<iframe src="https://h5p.nmc.unibas.ch/wp-admin/admin-ajax.php?action=h5p_embed&id=324" width="885" height="373" frameborder="0" allowfullscreen="allowfullscreen" title="Energy_Economics_4_4"></iframe><script src="https://h5p.nmc.unibas.ch/wp-content/plugins/h5p/h5p-php-library/js/h5p-resizer.js" charset="UTF-8"></script>', '', '', '', '', '', None, None, None, None, '', '', '', '', 'TQ', '', 3, 'published', False, None, None, None, None, 228), (1292, datetime.datetime(2022, 5, 5, 19, 17, 44, 693986, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 13, 36, 32, 915420, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 13, 36, 32, 860504, tzinfo=datetime.timezone.utc), False, 'From perfect to imperfect', None, 'From perfect to imperfect', None, '', None, None, None, 'Watch Frank Krysiak explaining the challenges of modeling real world market distortions.', None, 'Watch Frank Krysiak explaining the challenges of modeling real world market distortions.', None, '', 'from-perfect-to-imperfect', 'The model elements we discussed so far were focused on representing perfect systems: companies take market prices as given, policies are easy to implement, and we possess perfect information on all relevant aspects. Reality is different!\r\n{.lead}\r\n\r\n![embed](https://vimeo.com/734336189/3faa9a46e3)\r\n \r\nIf you want to answer real world challenges and design a credible model for those questions you will also need to account for the imperfections in the world. Theoretic first-best results are always a good place to start your analysis. Especially, if you want to test whether a specific mechanism can achieve a desired outcome in the first place (if it does not work under the best of circumstances chances are small it works under more realistic assumptions).\r\n \r\nBut often you want to test whether a specific market or policy design still performs as intended when companies have the potential to abuse market power. For example, if large incumbents can keep competitors out of the market. Another common problem is the fact that we seldom possess perfect information on all relevant aspects. For example, firms typically have better knowledge on their production and abatement costs than regulators setting environmental policies.\r\n \r\nThose market failures and limitations are common in energy markets and when deciding about environmental policies and as a modeller you need to address those restrictions. This is where we leave the theoretical first-best world and start to aim for second-best solutions.', '', 'The model elements we discussed so far were focused on representing perfect systems: companies take market prices as given, policies are easy to implement, and we possess perfect information on all relevant aspects. Reality is different!\r\n{.lead}\r\n\r\n![embed](https://vimeo.com/734336189/3faa9a46e3)\r\n \r\nIf you want to answer real world challenges and design a credible model for those questions you will also need to account for the imperfections in the world. Theoretic first-best results are always a good place to start your analysis. Especially, if you want to test whether a specific mechanism can achieve a desired outcome in the first place (if it does not work under the best of circumstances chances are small it works under more realistic assumptions).\r\n \r\nBut often you want to test whether a specific market or policy design still performs as intended when companies have the potential to abuse market power. For example, if large incumbents can keep competitors out of the market. Another common problem is the fact that we seldom possess perfect information on all relevant aspects. For example, firms typically have better knowledge on their production and abatement costs than regulators setting environmental policies.\r\n \r\nThose market failures and limitations are common in energy markets and when deciding about environmental policies and as a modeller you need to address those restrictions. This is where we leave the theoretical first-best world and start to aim for second-best solutions.', '', '', '', '', '', None, None, None, None, '', '', '', '', 'TV', '', 4, 'published', False, None, None, None, None, 228), (1293, datetime.datetime(2022, 5, 5, 19, 17, 54, 777293, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 13, 37, 58, 159437, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 13, 37, 58, 46277, tzinfo=datetime.timezone.utc), False, 'First-best or second-best: coping with realities', None, 'First-best or second-best: coping with realities', None, '', None, None, None, 'In this article, F. Krysiak explains the difference between perfect competition and monopolies that distort markets and abatement policy design.', None, 'In this article, F. Krysiak explains the difference between perfect competition and monopolies that distort markets and abatement policy design.', None, '', 'first-best-or-second-best-coping-with-realities', 'Do you remember our discussion of firm behaviour from the last chapter? There, we have assumed that our firms behave competitively, that is, they take prices as given and do not try to manipulate markets to their advantage.\r\n{.lead}\r\n\r\n![Competition](/media/markdownx/aa6ef6e3-bf73-475f-9057-196f240d8f59.png)\r\n\r\nUnfortunately, this is a rather optimistic view of most energy markets. In particular, for electricity we often have one (or a few) big suppliers that are able to influence prices. In this step, we will use this example to highlight a crucial difference in designing energy and environmental policies, whether you aim for a first-best or a second-best outcome.\r\n \r\nLet’s start with a first-best case. For this, take the equations that you have used in the last chapter to describe firm behaviour in the Output Abatement Choice Model (OACM) model:\r\n\r\n---\r\n\r\n(1)  $$\\max\\limits_{q_i,a_i\\geq0}\\enspace{p\\cdot q_i}-c_i(q_i,a_i)-t\\cdot e_i(q_i,a_i)$$\r\n\r\n(2)  $$p-\\frac{∂c_i (q_i,a_i )}{∂q_i} -t\\cdot \\frac{∂e_i (q_i ,a_i )}{∂q_i}=0$$\r\n\r\n(3)  $$-\\frac{∂c_i (q_i,a_i )}{∂a_i}-t\\cdot\\frac{∂e_i (q_i ,a_i )}{∂a_i}=0$$\r\n \r\n---\r\n\r\n**Equation (1)** represents each firm’s optimization problem and **equations (2)** and **(3)** are the necessary conditions for optimality resulting from this problem (excluding corner solutions).\r\n \r\nThese equations describe what a **firm** will do. However, how do you know whether this behaviour is good or bad from a **societal** perspective? In chapter 2, we have introduced the concept of **social welfare** to this end. In the OACM model with $$n$$ firms, social welfare can be written as\r\n\r\n---\r\n\r\n(4)  $$\\int_{0}^{\\sum\\limits_{i=1}^{n}{q_i} }{p(q)dq-\\sum\\limits_{i=1}^{n}{c_i(q_i,a_i)-D(\\sum\\limits_{i=1}^{n}{e_i(q_i,a_i)} )} }\r\n$$\r\n \r\n---\r\n\r\nThe first term, $$\\int_{0}^{\\sum\\limits_{i=1}^{n}{q_i} }{p(q)dq}$$, describes the consumer rent; that is, the benefit that consumer have from consuming electricity (the area below the demand curve). The second term, $$\\sum\\limits_{i=1}^{n}{c_i(q_i,a_i)}$$, equals the costs of producing electricity and the final term is the damage (measured by a damage function, $$D$$) caused by the sum of all emissions, $$\\sum\\limits_{i=1}^{n}{e_i(q_i,a_i)}$$.\r\n \r\nA benevolent dictator would maximise **equation (4)** with regard to output and abatement for all firms. Doing this for firm $$i$$ (that is, differentiating with respect to $$q_i, a_i$$ and setting the result equal to zero) leads to the following necessary conditions:\r\n\r\n---\r\n\r\n(5)  $$p-\\frac{∂c_i (q_i,a_i )}{∂q_i} -\\frac{∂D (q_i,a_i )}{∂e_i (q_i ,a_i )}\\cdot \\frac{∂e_i (q_i ,a_i )}{∂q_i} =0$$,\r\n\r\n(6)  $$-\\frac{∂c_i (q_i,a_i )}{∂a_i} -\\frac{∂D (q_i,a_i )}{∂e_i (q_i ,a_i )}\\cdot \\frac{∂e_i (q_i ,a_i )}{∂a_i} =0$$\r\n\r\n---\r\n\r\nWhere $$D’$$ is the derivative of the damage function with regard to emissions.\r\n \r\nIf you compare **(2)** and **(5)** as well as **(3)** and **(6)**, you see that these equations become equal, if you set $$t =\\frac{∂D (q_i,a_i )}{∂e_i (q_i ,a_i )}$$. That is, there is a specific value of the emission tax that induces firms to produce exactly the right amount with exactly the right level of care (abatement). In fact, this is what is usually called a **Pigouvian tax**, which is a tax that internalises the emission externality by making each firm pay the social costs of the next unit of emissions (ie, $$\\frac{∂D (q_i,a_i )}{∂e_i (q_i ,a_i )}$$ ) for all of its emissions. Note that this value is the same for all firms.\r\n \r\nThis calculation has several remarkable implications. First, you have two decision variables (production quantity and abatement) for each firm (altogether $$2 n$$ variables) but a single policy instrument (a mandatory tax) suffices to set incentives so that each firm behaves in a socially optimal way. Second, it implies that all firms should pay the same tax for each unit of emissions, which is a pretty strong policy implication (in fact, all firms in all sectors of an economy that emit the same pollutant should pay the same tax).\r\n \r\nThese are rather strong results for a comparatively simple model. Furthermore, they nicely highlight what constitutes a **first-best solution**: you can achieve the best possible outcome, social welfare is maximized. In fact, by implementing a policy, you can align the interests of all firms in the economy with societal objectives. If the tax is chosen correctly (ie, $$t = \\frac{∂D (q_i,a_i )}{∂e_i (q_i ,a_i )}$$ ), the firms voluntarily do what is best for the society.\r\n \r\nThis holds in the benign situation where firms have no market power. Let us for a moment assume that this is not the case. Instead, assume that we only have a single firm, that is, a monopolist. What would this firm do?\r\n \r\nA monopolist would maximize his profit taking into account the willingness of consumers to consume at different prices. Thus, we would integrate the inverse demand function, $$p(q)$$, which describes the price consumers are willing to pay for a given amount, $$q$$, into the monopolist’s decision problem (we drop the indices now, as there is only a single firm):\r\n \r\n---\r\n\r\n(7)  $$\\max\\limits_{q,a\\geq0}\\enspace{p(q)\\cdot q - c(q,a)-t\\cdot e(q,a)}$$\r\n\r\n(8)  $$\\frac{∂p(q)}{∂q}q+p(q)-\\frac{∂c(q,a)}{∂q} -t\\cdot \\frac{∂e(q ,a)}{∂q} =0$$\r\n\r\n(9)  $$-\\frac{∂c(q,a)}{∂a} -t\\cdot\\frac{∂e(q,a)}{∂a} =0$$\r\n\r\n---\r\n \r\nAgain, you have described the maximisation problem in **equation (7)**, and then you derived the necessary conditions from it. The term $$\\frac{∂p(q)}{∂q}$$ denotes the derivative of the inverse demand function.\r\n\r\nComparing **(2)** and **(8)** as well as **(3)** and **(9)** shows that there is no value of the tax, $$t$$, that makes these equations identical. You can either choose to have the right amount of output (ie, make **(2)** and **(8)** identical) or the right amount of abatement (ie, make (3) and (9) identical); achieving both simultaneously is impossible.\r\n \r\nThis is typical for a **second-best solution**: you cannot achieve the best possible outcome but have to choose among less desirable ones. The reason is that the monopolist already produces too little to keep prices up. Thus, taxing the monopolist with the Pigouvian tax, $$t = \\frac{∂D (q_i,a_i )}{∂e_i (q_i ,a_i )}$$, leads to a too strong drop in output. But a lower tax leads to too little abatement effort by the monopolist. Both of these outcomes reduce social welfare.\r\n \r\nSo, you have to compromise: setting a tax that is somewhat lower than the Pigouvian tax will usually be the best that you can do.\r\n \r\nThis is a typical situation in most **real world problems**. We are faced with more problems (market power and emissions, in your example) that we can cope with in terms of policy instruments (you only have a single instrument here). Therefore, we have to make a compromise and accept some welfare losses. It is still possible to increase welfare by introducing a tax but not up to the theoretical benchmark of the first-best solution.\r\n \r\nOf course, this is a rather formal argument. What you should take out here is that there are two approaches to environmental and energy policy:\r\n\r\n<br>\r\n\r\n1. You can try to achieve the best possible outcome. But to this end, you will typically need a rather complex policy (if you want, you might think about what additional policy instrument could be used to achieve the first-best outcome in the market power case). This is a first-best approach. \r\n2. Or, you can accept some welfare losses and make do with the insufficient policy instruments that you have. You still can do some good, but the scope is more limited. This is a second-best approach.', '', 'Do you remember our discussion of firm behaviour from the last chapter? There, we have assumed that our firms behave competitively, that is, they take prices as given and do not try to manipulate markets to their advantage.\r\n{.lead}\r\n\r\n![Competition](/media/markdownx/aa6ef6e3-bf73-475f-9057-196f240d8f59.png)\r\n\r\nUnfortunately, this is a rather optimistic view of most energy markets. In particular, for electricity we often have one (or a few) big suppliers that are able to influence prices. In this step, we will use this example to highlight a crucial difference in designing energy and environmental policies, whether you aim for a first-best or a second-best outcome.\r\n \r\nLet’s start with a first-best case. For this, take the equations that you have used in the last chapter to describe firm behaviour in the Output Abatement Choice Model (OACM) model:\r\n\r\n---\r\n\r\n(1)  $$\\max\\limits_{q_i,a_i\\geq0}\\enspace{p\\cdot q_i}-c_i(q_i,a_i)-t\\cdot e_i(q_i,a_i)$$\r\n\r\n(2)  $$p-\\frac{∂c_i (q_i,a_i )}{∂q_i} -t\\cdot \\frac{∂e_i (q_i ,a_i )}{∂q_i}=0$$\r\n\r\n(3)  $$-\\frac{∂c_i (q_i,a_i )}{∂a_i}-t\\cdot\\frac{∂e_i (q_i ,a_i )}{∂a_i}=0$$\r\n \r\n---\r\n\r\n**Equation (1)** represents each firm’s optimization problem and **equations (2)** and **(3)** are the necessary conditions for optimality resulting from this problem (excluding corner solutions).\r\n \r\nThese equations describe what a **firm** will do. However, how do you know whether this behaviour is good or bad from a **societal** perspective? In chapter 2, we have introduced the concept of **social welfare** to this end. In the OACM model with $$n$$ firms, social welfare can be written as\r\n\r\n---\r\n\r\n(4)  $$\\int_{0}^{\\sum\\limits_{i=1}^{n}{q_i} }{p(q)dq-\\sum\\limits_{i=1}^{n}{c_i(q_i,a_i)-D(\\sum\\limits_{i=1}^{n}{e_i(q_i,a_i)} )} }\r\n$$\r\n \r\n---\r\n\r\nThe first term, $$\\int_{0}^{\\sum\\limits_{i=1}^{n}{q_i} }{p(q)dq}$$, describes the consumer rent; that is, the benefit that consumer have from consuming electricity (the area below the demand curve). The second term, $$\\sum\\limits_{i=1}^{n}{c_i(q_i,a_i)}$$, equals the costs of producing electricity and the final term is the damage (measured by a damage function, $$D$$) caused by the sum of all emissions, $$\\sum\\limits_{i=1}^{n}{e_i(q_i,a_i)}$$.\r\n \r\nA benevolent dictator would maximise **equation (4)** with regard to output and abatement for all firms. Doing this for firm $$i$$ (that is, differentiating with respect to $$q_i, a_i$$ and setting the result equal to zero) leads to the following necessary conditions:\r\n\r\n---\r\n\r\n(5)  $$p-\\frac{∂c_i (q_i,a_i )}{∂q_i} -\\frac{∂D (q_i,a_i )}{∂e_i (q_i ,a_i )}\\cdot \\frac{∂e_i (q_i ,a_i )}{∂q_i} =0$$,\r\n\r\n(6)  $$-\\frac{∂c_i (q_i,a_i )}{∂a_i} -\\frac{∂D (q_i,a_i )}{∂e_i (q_i ,a_i )}\\cdot \\frac{∂e_i (q_i ,a_i )}{∂a_i} =0$$\r\n\r\n---\r\n\r\nWhere $$D’$$ is the derivative of the damage function with regard to emissions.\r\n \r\nIf you compare **(2)** and **(5)** as well as **(3)** and **(6)**, you see that these equations become equal, if you set $$t =\\frac{∂D (q_i,a_i )}{∂e_i (q_i ,a_i )}$$. That is, there is a specific value of the emission tax that induces firms to produce exactly the right amount with exactly the right level of care (abatement). In fact, this is what is usually called a **Pigouvian tax**, which is a tax that internalises the emission externality by making each firm pay the social costs of the next unit of emissions (ie, $$\\frac{∂D (q_i,a_i )}{∂e_i (q_i ,a_i )}$$ ) for all of its emissions. Note that this value is the same for all firms.\r\n \r\nThis calculation has several remarkable implications. First, you have two decision variables (production quantity and abatement) for each firm (altogether $$2 n$$ variables) but a single policy instrument (a mandatory tax) suffices to set incentives so that each firm behaves in a socially optimal way. Second, it implies that all firms should pay the same tax for each unit of emissions, which is a pretty strong policy implication (in fact, all firms in all sectors of an economy that emit the same pollutant should pay the same tax).\r\n \r\nThese are rather strong results for a comparatively simple model. Furthermore, they nicely highlight what constitutes a **first-best solution**: you can achieve the best possible outcome, social welfare is maximized. In fact, by implementing a policy, you can align the interests of all firms in the economy with societal objectives. If the tax is chosen correctly (ie, $$t = \\frac{∂D (q_i,a_i )}{∂e_i (q_i ,a_i )}$$ ), the firms voluntarily do what is best for the society.\r\n \r\nThis holds in the benign situation where firms have no market power. Let us for a moment assume that this is not the case. Instead, assume that we only have a single firm, that is, a monopolist. What would this firm do?\r\n \r\nA monopolist would maximize his profit taking into account the willingness of consumers to consume at different prices. Thus, we would integrate the inverse demand function, $$p(q)$$, which describes the price consumers are willing to pay for a given amount, $$q$$, into the monopolist’s decision problem (we drop the indices now, as there is only a single firm):\r\n \r\n---\r\n\r\n(7)  $$\\max\\limits_{q,a\\geq0}\\enspace{p(q)\\cdot q - c(q,a)-t\\cdot e(q,a)}$$\r\n\r\n(8)  $$\\frac{∂p(q)}{∂q}q+p(q)-\\frac{∂c(q,a)}{∂q} -t\\cdot \\frac{∂e(q ,a)}{∂q} =0$$\r\n\r\n(9)  $$-\\frac{∂c(q,a)}{∂a} -t\\cdot\\frac{∂e(q,a)}{∂a} =0$$\r\n\r\n---\r\n \r\nAgain, you have described the maximisation problem in **equation (7)**, and then you derived the necessary conditions from it. The term $$\\frac{∂p(q)}{∂q}$$ denotes the derivative of the inverse demand function.\r\n\r\nComparing **(2)** and **(8)** as well as **(3)** and **(9)** shows that there is no value of the tax, $$t$$, that makes these equations identical. You can either choose to have the right amount of output (ie, make **(2)** and **(8)** identical) or the right amount of abatement (ie, make (3) and (9) identical); achieving both simultaneously is impossible.\r\n \r\nThis is typical for a **second-best solution**: you cannot achieve the best possible outcome but have to choose among less desirable ones. The reason is that the monopolist already produces too little to keep prices up. Thus, taxing the monopolist with the Pigouvian tax, $$t = \\frac{∂D (q_i,a_i )}{∂e_i (q_i ,a_i )}$$, leads to a too strong drop in output. But a lower tax leads to too little abatement effort by the monopolist. Both of these outcomes reduce social welfare.\r\n \r\nSo, you have to compromise: setting a tax that is somewhat lower than the Pigouvian tax will usually be the best that you can do.\r\n \r\nThis is a typical situation in most **real world problems**. We are faced with more problems (market power and emissions, in your example) that we can cope with in terms of policy instruments (you only have a single instrument here). Therefore, we have to make a compromise and accept some welfare losses. It is still possible to increase welfare by introducing a tax but not up to the theoretical benchmark of the first-best solution.\r\n \r\nOf course, this is a rather formal argument. What you should take out here is that there are two approaches to environmental and energy policy:\r\n\r\n<br>\r\n\r\n1. You can try to achieve the best possible outcome. But to this end, you will typically need a rather complex policy (if you want, you might think about what additional policy instrument could be used to achieve the first-best outcome in the market power case). This is a first-best approach. \r\n2. Or, you can accept some welfare losses and make do with the insufficient policy instruments that you have. You still can do some good, but the scope is more limited. This is a second-best approach.', '', '', '', '', '', None, None, None, None, '', '', '', '', 'TT', '', 5, 'published', False, None, None, None, None, 228), (1294, datetime.datetime(2022, 5, 5, 19, 18, 5, 725707, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 13, 40, 7, 411265, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 13, 40, 7, 357921, tzinfo=datetime.timezone.utc), False, 'Exercise: Steering firms – what a difference a monopoly makes', None, 'Exercise: Steering firms – what a difference a monopoly makes', None, '', None, None, None, 'Try this exercise about steering firms and what a difference a monopoly makes.', None, 'Try this exercise about steering firms and what a difference a monopoly makes.', None, '', 'exercise-steering-firms-what-a-difference-a-monopoly-makes', 'Up til now, your firms have behaved well: they competed nicely against each other, even if one firm became dominant, it did not abuse its power.\r\n{.lead}\r\n\r\nUnfortunately, this is a somewhat optimistic view. In reality, firms can have market power. In fact, in many countries, market power is ubiquitous in energy markets.\r\n \r\nLet us see how this alters your results. To this end, we revisit the setting of the previous model but make two fundamental changes: we assume that the firm using a coal-fired power plant is big and tends to abuse its power, that is, it tries to manipulate the market price to its advantage. All other firms behave competitively. Second, we take out nuclear power, as we only want to have one big firm to keep things simple (and nuclear power stations are typically as large as (or even larger than) coal-fired ones).\r\n \r\n**Try to manage this system**. Watch out for differences to the previous model.\r\n\r\n**Note: If you want to keep a certain result for later use we suggest that you make a screenshot (Command-Shift-3 for Mac or CTRL+PrtScn for Windows) and download it.**\r\n\r\n<br>\r\n\r\n##Exercise\r\n\r\n###[Steering firms: what a difference a monopoly makes](https://nmc.unibas.ch/online-courses/exploring/2017/tm7/index.html){:target=“_blank”}', '', 'Up til now, your firms have behaved well: they competed nicely against each other, even if one firm became dominant, it did not abuse its power.\r\n{.lead}\r\n\r\nUnfortunately, this is a somewhat optimistic view. In reality, firms can have market power. In fact, in many countries, market power is ubiquitous in energy markets.\r\n \r\nLet us see how this alters your results. To this end, we revisit the setting of the previous model but make two fundamental changes: we assume that the firm using a coal-fired power plant is big and tends to abuse its power, that is, it tries to manipulate the market price to its advantage. All other firms behave competitively. Second, we take out nuclear power, as we only want to have one big firm to keep things simple (and nuclear power stations are typically as large as (or even larger than) coal-fired ones).\r\n \r\n**Try to manage this system**. Watch out for differences to the previous model.\r\n\r\n**Note: If you want to keep a certain result for later use we suggest that you make a screenshot (Command-Shift-3 for Mac or CTRL+PrtScn for Windows) and download it.**\r\n\r\n<br>\r\n\r\n##Exercise\r\n\r\n###[Steering firms: what a difference a monopoly makes](https://nmc.unibas.ch/online-courses/exploring/2017/tm7/index.html){:target=“_blank”}', '', '', '', '', '', None, None, None, None, '', '', '', '', 'TT', '', 6, 'published', False, None, None, None, None, 228), (1295, datetime.datetime(2022, 5, 5, 19, 18, 15, 137309, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 13, 41, 38, 347012, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 13, 41, 38, 298827, tzinfo=datetime.timezone.utc), False, 'Reflection: Same prices different outcome', None, 'Reflection: Same prices different outcome', None, '', None, None, None, 'Reflect on the topic of same prices, different outcome.', None, 'Reflect on the topic of same prices, different outcome.', None, '', 'reflection-same-prices-different-outcome', 'In the previous model exercise, you have experienced your first market distortion by a dominant firm.\r\n{.lead}\r\n\r\n**Could you observe any change** in how your choice of CO<sub>2</sub> taxes and renewable subsidies impacted the market results? Did the coal firm deter your policies?\r\n\r\nWe suggest you make a note of your observations.', '', 'In the previous model exercise, you have experienced your first market distortion by a dominant firm.\r\n{.lead}\r\n\r\n**Could you observe any change** in how your choice of CO<sub>2</sub> taxes and renewable subsidies impacted the market results? Did the coal firm deter your policies?\r\n\r\nWe suggest you make a note of your observations.', '', '', '', '', '', None, None, None, None, '', '', '', '', 'TT', '', 7, 'published', True, 'Please share your thoughts and observations in the [comments](#comments) section below.', None, 'Please share your thoughts and observations in the [comments](#comments) section below.', None, 228), (1296, datetime.datetime(2022, 5, 5, 19, 18, 25, 989152, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 13, 42, 41, 171217, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 13, 42, 41, 90417, tzinfo=datetime.timezone.utc), False, 'Monopoly model: the mathematics I', None, 'Monopoly model: the mathematics I', None, '', None, None, None, 'In this article, Frank Krysiak explains the mathematics that underlie the monopoly model.', None, 'In this article, Frank Krysiak explains the mathematics that underlie the monopoly model.', None, '', 'monopoly-model-the-mathematics-i', 'Let’s examine the model in somewhat more detail. In this model, we assume that one firm has market power (the coal-based producer), whereas the other firms behave competitively.\r\n{.lead}\r\n\r\n![Mathematical equatations](/media/markdownx/f59d214e-f674-4a2b-a529-21d6a8cd8572.png)\r\n\r\nThey form a so-called **competitive fringe**. The monopolist takes the behaviour of all other actors in this model into account when making his decisions. To model this, we do the following in the underlying model.\r\n\r\n![Nuclear](/media/markdownx/ed034a9f-5726-456f-9458-6c0ab018dc94.png)\r\n \r\nFirst (for simplicity), we take out nuclear power as an option (we only want to have a single actor with market power and nuclear power stations are usually at least as large as coal-fired power stations).\r\n \r\nSecond, we leave all parts of the model as they have been in the preceding models, but do not solve the optimization problem of the coal-fired power plant yet. Rather, we calculate the production of the competitive fringe as: $$Q^{fringe} = \\sum\\limits_{i=PV,Wind,Coal,Gas}{q_i}$$\r\n\r\nDemand is again given by $$d=\\bar{Q} -η \\cdot p$$. \r\n\r\nRecall that $$\\bar{Q}$$ is the maximum demand when $$p=0$$.\r\n \r\nThe market clearing conditions is now\r\n\r\n---\r\n\r\n(1)   $$d=Q^{fringe}+q_{coal}$$\r\n\r\n---\r\n \r\nThis condition implies that production of the competitive fringe plus production of the non-competitive coal-fired power plant has to equal demand. Note that $$Q^{fringe}$$, that is, the total production of the competitive fringe is already fully specified as a function of the market clearing price, $$p$$, and the policy variables.\r\n \r\nThe coal-fired power plant wants to maximise its profit taking into account all this:\r\n\r\n---\r\n$$\\max \\limits_{q_{coal},a_{coal}\\geq 0}\\enspace \u2061p \\cdot q_{coal} - c_{coal} (q_{coal},a_{coal} ) - t \\cdot e_{coal} (q_{coal} ,a_{coal} )$$\r\n \r\n---\r\n\r\nThe optimization model is then solved numerically with regard to $$p_{coal}, a_{coal}$$, and $$p$$ under the constraint given by **equation (1)**. This yields the market outcome that is most desirable for the non-competitive producer, taking into account the behaviour of all other actors.', '', 'Let’s examine the model in somewhat more detail. In this model, we assume that one firm has market power (the coal-based producer), whereas the other firms behave competitively.\r\n{.lead}\r\n\r\n![Mathematical equatations](/media/markdownx/f59d214e-f674-4a2b-a529-21d6a8cd8572.png)\r\n\r\nThey form a so-called **competitive fringe**. The monopolist takes the behaviour of all other actors in this model into account when making his decisions. To model this, we do the following in the underlying model.\r\n\r\n![Nuclear](/media/markdownx/ed034a9f-5726-456f-9458-6c0ab018dc94.png)\r\n \r\nFirst (for simplicity), we take out nuclear power as an option (we only want to have a single actor with market power and nuclear power stations are usually at least as large as coal-fired power stations).\r\n \r\nSecond, we leave all parts of the model as they have been in the preceding models, but do not solve the optimization problem of the coal-fired power plant yet. Rather, we calculate the production of the competitive fringe as: $$Q^{fringe} = \\sum\\limits_{i=PV,Wind,Coal,Gas}{q_i}$$\r\n\r\nDemand is again given by $$d=\\bar{Q} -η \\cdot p$$. \r\n\r\nRecall that $$\\bar{Q}$$ is the maximum demand when $$p=0$$.\r\n \r\nThe market clearing conditions is now\r\n\r\n---\r\n\r\n(1)   $$d=Q^{fringe}+q_{coal}$$\r\n\r\n---\r\n \r\nThis condition implies that production of the competitive fringe plus production of the non-competitive coal-fired power plant has to equal demand. Note that $$Q^{fringe}$$, that is, the total production of the competitive fringe is already fully specified as a function of the market clearing price, $$p$$, and the policy variables.\r\n \r\nThe coal-fired power plant wants to maximise its profit taking into account all this:\r\n\r\n---\r\n$$\\max \\limits_{q_{coal},a_{coal}\\geq 0}\\enspace \u2061p \\cdot q_{coal} - c_{coal} (q_{coal},a_{coal} ) - t \\cdot e_{coal} (q_{coal} ,a_{coal} )$$\r\n \r\n---\r\n\r\nThe optimization model is then solved numerically with regard to $$p_{coal}, a_{coal}$$, and $$p$$ under the constraint given by **equation (1)**. This yields the market outcome that is most desirable for the non-competitive producer, taking into account the behaviour of all other actors.', '', '', '', '', '', None, None, None, None, '', '', '', '', 'TT', '', 8, 'published', False, None, None, None, None, 228), (1297, datetime.datetime(2022, 5, 5, 19, 18, 48, 778762, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 13, 43, 33, 981537, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 13, 43, 33, 912419, tzinfo=datetime.timezone.utc), False, 'Monopoly model: the mathematics II', None, 'Monopoly model: the mathematics II', None, '', None, None, None, 'In this article, Hannes Weigt recaps the optimization-equilibrium debate using a monopoly market as an example.', None, 'In this article, Hannes Weigt recaps the optimization-equilibrium debate using a monopoly market as an example.', None, '', 'monopoly-model-the-mathematics-ii', "Now that you have seen your first monopoly model, let's use the setting of our perfect competition example to analyse how such a model can be designed as an optimization model and as an equilibrium model and learn a bit on the economics of monopolies on the way.\r\n{.lead}\r\n \r\n![Mathematical equatations](/media/markdownx/3c28be7c-90bc-4a2b-a9c3-3c25996fc465.png)\r\n\r\nThe setup is the same with one change: we now assume monopolistic competition.\r\n \r\nSo instead of many firms, $$i$$, we just have one single firm. This firm does what every firm is doing, it maximises its profit.\r\n\r\n---\r\n\r\n(1)   $$\\max \\limits_{q\\geq 0}\u2061 \\enspace p(q)q-c(q)$$\r\n \r\n---\r\n\r\nBut, given that it is the sole supplier on the market, the firm knows that its output decision will have an impact on the market price. That is why, contrary to a perfectly competitive market, the income side is not only price times quantity, $$pq$$, but the price, $$p$$, is now a function of quantity, $$q$$.\r\n \r\nNow, how does the firm know how $$p$$ and $$q$$ are related?\r\n\r\nRecall the benefit function $$B(d)$$ we used in the perfectly competitive market to model the consumer behaviour. The first order derivative of this function ($$\\frac{∂B}{∂d}$$) tells us exactly this: how does the willingness of to pay for the product change with a marginal change in consumption $$(d)$$. In other words, you could rewrite the benefit-demand relation as a price-demand relation:\r\n\r\n$$\\frac{∂B}{∂d}=p$$\r\n\r\nFor example the demand-price relation we used in the last model exercises was given by:\r\n\r\n$$d=\\bar{Q} -η \\cdot p$$\r\n\r\nor, rearranging the equation,\r\n\r\n$$p=\\frac{d-\\bar{Q}}{\\eta }$$ to be closer to our $$p(d)$$ formulation.\r\n\r\nAs a last step, you now need to consider that the monopoly is the only supplier in this market. Thus, the normal demand balance is now simply $$q = d$$ making $$p(d) = p(q)$$. Therefore equation (1) is all you need for a monopoly optimization model.\r\n \r\nAgain, you will need to derive the first order conditions of the model with respect to the choice variable of the monopoly, $$(q)$$, and set it equal to zero:\r\n\r\n---\r\n \r\n(2)   $$p(q)+\\frac{∂p(q)}{∂q}q-\\frac{∂c(q)}{∂q}=0$$\r\n\r\n---\r\n \r\nNote that the first term in the objective function, $$p(q)q$$, requires you to use the product rule when making the derivation. This is the normal first-order condition of a monopoly.\r\n \r\nLet’s switch to the equilibrium formulation. Similar to the perfect competitive version, we have three elements: the monopoly maximising its profit, consumers maximising their benefit, and a market that brings the two sides together. Thus, we actually only need to change the firm block and can keep the other elements as before.\r\n \r\nConsumers are still described by their zero-profit logic:\r\n \r\n---\r\n\r\n(3)   $$p\\geq \\frac{∂B}{∂d} \\bot d\\geq 0$$\r\n\r\n---\r\n \r\nAnd in the market clearing we just need to replace the output of all firms with the single output of our monopoly:\r\n\r\n---\r\n \r\n(4)   $$q\\geq d \\bot p \\geq 0$$\r\n\r\n---\r\n \r\nThe zero-profit condition for the monopoly is a bit more tricky. You can either derive this logic by formulating the maximisation problem for the monopoly and make the first order derivation and implement this as the zero-profit condition; so basically what we did above for the optimization model. Or, you know the economic equilibrium condition for the behaviour of a monopoly: marginal revenue equals marginal costs.\r\n \r\nIn a perfectly competitive world, a firm simply sells its output on the market assuming that its own decision has no impact on the price. Thus, the marginal revenue a competitive firm can obtain is equal to the market price. Consequently the equilibrium condition was: market price equals marginal costs.\r\n \r\nBut a monopoly knows that its own output decision has an impact on the price. And since it is the only one selling this also has a feedback effect on the total sale revenue. Increasing the output by one unit increases the income by the market price, $$p$$, but as the price declines with higher demand (respective output by the monopolist) the revenue on the total output decreases due to the price reduction. This can be formalised as:\r\n\r\n---\r\n \r\n(5)   $$\\frac{∂c(q)}{∂q}\\geq p+\\frac{∂p(q)}{∂q}q \\bot q \\geq 0$$\r\n\r\n---\r\n \r\nThe left hand side is again the marginal costs, the right hand side is the marginal revenue. A monopoly will produce $$(q > 0)$$ up to the point where its marginal cost level is equal to the additional revenue is can obtain ($$\\frac{∂c(q)}{∂q}= p+\\frac{∂p(q)}{∂q}q$$) defined by the additional income for selling one more unit $$(p)$$ and the reduction in total income on all sold units $$(\\frac{∂p(q)}{∂q}q)$$. Note that $$\\frac{∂p(q)}{∂q}$$ is usually negative as the price-demand relation is downward sloping (with a higher demand prices need to decrease and vice versa).\r\n \r\n\r\nIn other words, the optimization and equilibrium model are again providing the same result: a monopoly will produce up to the point where its profit is maximised and this point is defined where the additional revenue it can obtain is equal to the cost it has for this additional output.\r\n\r\n![Monopolistic market equilibrium](/media/markdownx/021bc21b-8ac2-4c7b-af37-41445aa1af14.png)\r\n\r\n\r\nThis results in a significant shift between consumer and producer rent, a lower $$d$$ and level at higher market prices, and a total loss in welfare.", '', "Now that you have seen your first monopoly model, let's use the setting of our perfect competition example to analyse how such a model can be designed as an optimization model and as an equilibrium model and learn a bit on the economics of monopolies on the way.\r\n{.lead}\r\n \r\n![Mathematical equatations](/media/markdownx/3c28be7c-90bc-4a2b-a9c3-3c25996fc465.png)\r\n\r\nThe setup is the same with one change: we now assume monopolistic competition.\r\n \r\nSo instead of many firms, $$i$$, we just have one single firm. This firm does what every firm is doing, it maximises its profit.\r\n\r\n---\r\n\r\n(1)   $$\\max \\limits_{q\\geq 0}\u2061 \\enspace p(q)q-c(q)$$\r\n \r\n---\r\n\r\nBut, given that it is the sole supplier on the market, the firm knows that its output decision will have an impact on the market price. That is why, contrary to a perfectly competitive market, the income side is not only price times quantity, $$pq$$, but the price, $$p$$, is now a function of quantity, $$q$$.\r\n \r\nNow, how does the firm know how $$p$$ and $$q$$ are related?\r\n\r\nRecall the benefit function $$B(d)$$ we used in the perfectly competitive market to model the consumer behaviour. The first order derivative of this function ($$\\frac{∂B}{∂d}$$) tells us exactly this: how does the willingness of to pay for the product change with a marginal change in consumption $$(d)$$. In other words, you could rewrite the benefit-demand relation as a price-demand relation:\r\n\r\n$$\\frac{∂B}{∂d}=p$$\r\n\r\nFor example the demand-price relation we used in the last model exercises was given by:\r\n\r\n$$d=\\bar{Q} -η \\cdot p$$\r\n\r\nor, rearranging the equation,\r\n\r\n$$p=\\frac{d-\\bar{Q}}{\\eta }$$ to be closer to our $$p(d)$$ formulation.\r\n\r\nAs a last step, you now need to consider that the monopoly is the only supplier in this market. Thus, the normal demand balance is now simply $$q = d$$ making $$p(d) = p(q)$$. Therefore equation (1) is all you need for a monopoly optimization model.\r\n \r\nAgain, you will need to derive the first order conditions of the model with respect to the choice variable of the monopoly, $$(q)$$, and set it equal to zero:\r\n\r\n---\r\n \r\n(2)   $$p(q)+\\frac{∂p(q)}{∂q}q-\\frac{∂c(q)}{∂q}=0$$\r\n\r\n---\r\n \r\nNote that the first term in the objective function, $$p(q)q$$, requires you to use the product rule when making the derivation. This is the normal first-order condition of a monopoly.\r\n \r\nLet’s switch to the equilibrium formulation. Similar to the perfect competitive version, we have three elements: the monopoly maximising its profit, consumers maximising their benefit, and a market that brings the two sides together. Thus, we actually only need to change the firm block and can keep the other elements as before.\r\n \r\nConsumers are still described by their zero-profit logic:\r\n \r\n---\r\n\r\n(3)   $$p\\geq \\frac{∂B}{∂d} \\bot d\\geq 0$$\r\n\r\n---\r\n \r\nAnd in the market clearing we just need to replace the output of all firms with the single output of our monopoly:\r\n\r\n---\r\n \r\n(4)   $$q\\geq d \\bot p \\geq 0$$\r\n\r\n---\r\n \r\nThe zero-profit condition for the monopoly is a bit more tricky. You can either derive this logic by formulating the maximisation problem for the monopoly and make the first order derivation and implement this as the zero-profit condition; so basically what we did above for the optimization model. Or, you know the economic equilibrium condition for the behaviour of a monopoly: marginal revenue equals marginal costs.\r\n \r\nIn a perfectly competitive world, a firm simply sells its output on the market assuming that its own decision has no impact on the price. Thus, the marginal revenue a competitive firm can obtain is equal to the market price. Consequently the equilibrium condition was: market price equals marginal costs.\r\n \r\nBut a monopoly knows that its own output decision has an impact on the price. And since it is the only one selling this also has a feedback effect on the total sale revenue. Increasing the output by one unit increases the income by the market price, $$p$$, but as the price declines with higher demand (respective output by the monopolist) the revenue on the total output decreases due to the price reduction. This can be formalised as:\r\n\r\n---\r\n \r\n(5)   $$\\frac{∂c(q)}{∂q}\\geq p+\\frac{∂p(q)}{∂q}q \\bot q \\geq 0$$\r\n\r\n---\r\n \r\nThe left hand side is again the marginal costs, the right hand side is the marginal revenue. A monopoly will produce $$(q > 0)$$ up to the point where its marginal cost level is equal to the additional revenue is can obtain ($$\\frac{∂c(q)}{∂q}= p+\\frac{∂p(q)}{∂q}q$$) defined by the additional income for selling one more unit $$(p)$$ and the reduction in total income on all sold units $$(\\frac{∂p(q)}{∂q}q)$$. Note that $$\\frac{∂p(q)}{∂q}$$ is usually negative as the price-demand relation is downward sloping (with a higher demand prices need to decrease and vice versa).\r\n \r\n\r\nIn other words, the optimization and equilibrium model are again providing the same result: a monopoly will produce up to the point where its profit is maximised and this point is defined where the additional revenue it can obtain is equal to the cost it has for this additional output.\r\n\r\n![Monopolistic market equilibrium](/media/markdownx/021bc21b-8ac2-4c7b-af37-41445aa1af14.png)\r\n\r\n\r\nThis results in a significant shift between consumer and producer rent, a lower $$d$$ and level at higher market prices, and a total loss in welfare.", '', '', '', '', '', None, None, None, None, '', '', '', '', 'TT', '', 9, 'published', False, None, None, None, None, 228), (1298, datetime.datetime(2022, 5, 5, 19, 19, 1, 635533, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 13, 44, 28, 318376, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 13, 44, 28, 264783, tzinfo=datetime.timezone.utc), False, 'From one to many', None, 'From one to many', None, '', None, None, None, 'Watch Hannes Weigt explaining the basic idea of oligopolies and how they fit between perfect competition and monopolies.', None, 'Watch Hannes Weigt explaining the basic idea of oligopolies and how they fit between perfect competition and monopolies.', None, '', 'from-one-to-many', 'Now that we have introduced monopolies to our modelling world we can go one step further by introducing oligopolies.\r\n{.lead}\r\n\r\n![embed](https://vimeo.com/734337386/20fe4afa88)\r\n \r\nFor many markets perfect competition is more of a theoretic benchmark. But the same often also holds for monopolistic competition. While there are markets dominated by one large company many governments aim to prevent a pure monopoly market. Often real world markets are characterised by what economists term oligopolistic competition: a few large companies dominating the market.\r\n \r\nThe basic concept of oligopoly models is that the firms know that they have an influence on the price and take this into account when maximising their profits. However, compared to a monopoly each firm in an oligopoly only has partial influence on market prices. Consequently, equilibrium models are a preferred approach to model oligopolistic markets.\r\n \r\nThere are many different economic oligopoly concepts. Many of them follow the structure that with more firms the results tend towards a more competitive market behaviour and vice versa. Deriving the perfectly competitive and monopoly benchmark therefore provides valuable benchmark conditions for oligopoly models.', '', 'Now that we have introduced monopolies to our modelling world we can go one step further by introducing oligopolies.\r\n{.lead}\r\n\r\n![embed](https://vimeo.com/734337386/20fe4afa88)\r\n \r\nFor many markets perfect competition is more of a theoretic benchmark. But the same often also holds for monopolistic competition. While there are markets dominated by one large company many governments aim to prevent a pure monopoly market. Often real world markets are characterised by what economists term oligopolistic competition: a few large companies dominating the market.\r\n \r\nThe basic concept of oligopoly models is that the firms know that they have an influence on the price and take this into account when maximising their profits. However, compared to a monopoly each firm in an oligopoly only has partial influence on market prices. Consequently, equilibrium models are a preferred approach to model oligopolistic markets.\r\n \r\nThere are many different economic oligopoly concepts. Many of them follow the structure that with more firms the results tend towards a more competitive market behaviour and vice versa. Deriving the perfectly competitive and monopoly benchmark therefore provides valuable benchmark conditions for oligopoly models.', '', '', '', '', '', None, None, None, None, '', '', '', '', 'TV', '', 10, 'published', False, None, None, None, None, 228), (1299, datetime.datetime(2022, 5, 5, 19, 19, 11, 699629, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 13, 45, 25, 688906, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 13, 45, 25, 637764, tzinfo=datetime.timezone.utc), False, 'Exercise: Steering firms – from one to many', None, 'Exercise: Steering firms – from one to many', None, '', None, None, None, 'Try this exercise about steering firms: from one to many.', None, 'Try this exercise about steering firms: from one to many.', None, '', 'exercise-steering-firms-from-one-to-many', 'We are now indirectly revisiting the last two model exercises. This time we ask you to adjust the number of firms in our little electricity market.\r\n{.lead}\r\n \r\nAgain the coal firms are the dominant players in the market with all other firms behaving competitively. But this time, you are allowed to decide how many coal firms are active in the market and competing with each other. So you are free to design a monopoly market by reducing the number of firms to only one or move towards perfect competition by shifting the number up to the maximum.\r\n \r\nIn addition, you are tasked to decide about the CO<sub>2</sub> tax level. **Try to manage this system**. Watch out for differences your policy choice has with different levels of competition.\r\n\r\n**Note: If you want to keep a certain result for later use we suggest that you make a screenshot (Command-Shift-3 for Mac or CTRL+PrtScn for Windows) and download it.**\r\n\r\n\r\n<br>\r\n\r\n##Exercise\r\n\r\n###[Steering firms: from one to many](https://nmc.unibas.ch/online-courses/exploring/2017/tm8/index.html){:target=“_blank”}', '', 'We are now indirectly revisiting the last two model exercises. This time we ask you to adjust the number of firms in our little electricity market.\r\n{.lead}\r\n \r\nAgain the coal firms are the dominant players in the market with all other firms behaving competitively. But this time, you are allowed to decide how many coal firms are active in the market and competing with each other. So you are free to design a monopoly market by reducing the number of firms to only one or move towards perfect competition by shifting the number up to the maximum.\r\n \r\nIn addition, you are tasked to decide about the CO<sub>2</sub> tax level. **Try to manage this system**. Watch out for differences your policy choice has with different levels of competition.\r\n\r\n**Note: If you want to keep a certain result for later use we suggest that you make a screenshot (Command-Shift-3 for Mac or CTRL+PrtScn for Windows) and download it.**\r\n\r\n\r\n<br>\r\n\r\n##Exercise\r\n\r\n###[Steering firms: from one to many](https://nmc.unibas.ch/online-courses/exploring/2017/tm8/index.html){:target=“_blank”}', '', '', '', '', '', None, None, None, None, '', '', '', '', 'TT', '', 11, 'published', False, None, None, None, None, 228), (1300, datetime.datetime(2022, 5, 5, 19, 19, 21, 831522, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 13, 47, 21, 307878, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 13, 47, 21, 254507, tzinfo=datetime.timezone.utc), False, 'Reflection: Compare the results – same policy, different outcome?', None, 'Reflection: Compare the results – same policy, different outcome?', None, '', None, None, None, 'Reflect and compare the results – same policy, different outcome?', None, 'Reflect and compare the results – same policy, different outcome?', None, '', 'reflection-compare-the-results-same-policy-different-outcome', 'In the previous model exercise, you were tasked to analyse how the number of firms, and thereby the level of competition in the market, impacts the effect of your environmental policy.\r\n{.lead}\r\n\r\nDo the number of firms have an impact on the effect of your policy choice? And if so, what does this mean for policy design in the real world?\r\n\r\nWe suggest you make a note of your observations.', '', 'In the previous model exercise, you were tasked to analyse how the number of firms, and thereby the level of competition in the market, impacts the effect of your environmental policy.\r\n{.lead}\r\n\r\nDo the number of firms have an impact on the effect of your policy choice? And if so, what does this mean for policy design in the real world?\r\n\r\nWe suggest you make a note of your observations.', '', '', '', '', '', None, None, None, None, '', '', '', '', 'TT', '', 12, 'published', True, 'Please share your thoughts and observations in the [comments](#comments) section below.', None, 'Please share your thoughts and observations in the [comments](#comments) section below.', None, 228), (1301, datetime.datetime(2022, 5, 5, 19, 19, 30, 699198, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 13, 48, 15, 263116, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 13, 48, 15, 210563, tzinfo=datetime.timezone.utc), False, 'Oligopoly model: the mathematics', None, 'Oligopoly model: the mathematics', None, '', None, None, None, 'Through this article, Hannes Weigt explains the mathematical formulation of an oligopoly model.', None, 'Through this article, Hannes Weigt explains the mathematical formulation of an oligopoly model.', None, '', 'oligopoly-model-the-mathematics', 'Let’s examine how the oligopoly model is designed. It closely follows the monopoly model with respect to its general setup: we assume that coal-based producers have market power and the other firms behave competitively.\r\n{.lead}\r\n\r\n![Mathematical equatations](/media/markdownx/31e795c8-697e-4732-a662-673eee3b3c4e.png)\r\n\r\n\r\nHowever, as we can have more than one coal-producer the market clearing is now given by:\r\n\r\n\r\n \r\n$$d=Q^{fringe}+\\sum\\limits_{i=1}^{N}{q_i^{coal}}$$\r\n\r\n\r\nYou could choose how many ($$N$$) coal firms, $$i$$, are active in the market.\r\n \r\nThe remainder of the market interaction between supply and demand is unchanged with the downward sloping demand-price relation again defined as:\r\n\r\n\r\n$$d=\\bar{Q}-\\eta \\cdot p$$\r\n\r\nUsing those two components one can again derive the price relation independent of the coal firm’s output choice. Contrary to the monopoly case the choice of any single firm, $$i$$, is only a part of the total supply on the market. All other firms (termed $$–i$$ or ‘not i’) are also supplying the market and have an impact on the resulting market price.\r\n \r\nThe coal producers take this relation into account when maximising their profits. For each firm, $$i$$, the respective profit function is given by:\r\n \r\n\r\n(1)   $$\\max \\limits_{q_i^{coal},a_i^{coal}≥0} \\enspace p(q_i^{coal},q_{-i}^{coal})\\cdot q_i^{coal} - c_{coal} (q_i^{coal},a_i^{coal} ) - t\\cdot e_{coal} (q_i^{coal} ,a_i^{coal} )$$\r\n\r\n \r\nThe model follows the **Cournot-competition logic**: firms choose their output and simultaneously take the choice of the other firms as given. In other words, each firm $$i$$ optimises its own production decision ($$q_i^{coal}$$) while assuming all other firms make their own respective optimal output decision ($$q_{-i}^{coal}$$).\r\n \r\nFor the model formulation used in the exercise we make one further simplifying assumption: all firms are symmetric. But the formulation also holds if different firm characteristics are assumed (ie, different cost structures $$c_i^{coal}$$ for the different oligopoly firms instead of the generic $$c_{coal}$$).\r\n \r\nThe model is then again solved numerically with regard to $$q_i^{coal},a_i^{coal}$$ and $$p$$ for the number of firms, $$N$$, you have chosen.', '', 'Let’s examine how the oligopoly model is designed. It closely follows the monopoly model with respect to its general setup: we assume that coal-based producers have market power and the other firms behave competitively.\r\n{.lead}\r\n\r\n![Mathematical equatations](/media/markdownx/31e795c8-697e-4732-a662-673eee3b3c4e.png)\r\n\r\n\r\nHowever, as we can have more than one coal-producer the market clearing is now given by:\r\n\r\n\r\n \r\n$$d=Q^{fringe}+\\sum\\limits_{i=1}^{N}{q_i^{coal}}$$\r\n\r\n\r\nYou could choose how many ($$N$$) coal firms, $$i$$, are active in the market.\r\n \r\nThe remainder of the market interaction between supply and demand is unchanged with the downward sloping demand-price relation again defined as:\r\n\r\n\r\n$$d=\\bar{Q}-\\eta \\cdot p$$\r\n\r\nUsing those two components one can again derive the price relation independent of the coal firm’s output choice. Contrary to the monopoly case the choice of any single firm, $$i$$, is only a part of the total supply on the market. All other firms (termed $$–i$$ or ‘not i’) are also supplying the market and have an impact on the resulting market price.\r\n \r\nThe coal producers take this relation into account when maximising their profits. For each firm, $$i$$, the respective profit function is given by:\r\n \r\n\r\n(1)   $$\\max \\limits_{q_i^{coal},a_i^{coal}≥0} \\enspace p(q_i^{coal},q_{-i}^{coal})\\cdot q_i^{coal} - c_{coal} (q_i^{coal},a_i^{coal} ) - t\\cdot e_{coal} (q_i^{coal} ,a_i^{coal} )$$\r\n\r\n \r\nThe model follows the **Cournot-competition logic**: firms choose their output and simultaneously take the choice of the other firms as given. In other words, each firm $$i$$ optimises its own production decision ($$q_i^{coal}$$) while assuming all other firms make their own respective optimal output decision ($$q_{-i}^{coal}$$).\r\n \r\nFor the model formulation used in the exercise we make one further simplifying assumption: all firms are symmetric. But the formulation also holds if different firm characteristics are assumed (ie, different cost structures $$c_i^{coal}$$ for the different oligopoly firms instead of the generic $$c_{coal}$$).\r\n \r\nThe model is then again solved numerically with regard to $$q_i^{coal},a_i^{coal}$$ and $$p$$ for the number of firms, $$N$$, you have chosen.', '', '', '', '', '', None, None, None, None, '', '', '', '', 'TT', '', 13, 'published', False, None, None, None, None, 228), (1302, datetime.datetime(2022, 5, 5, 19, 19, 39, 82144, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 13, 49, 31, 941897, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 13, 49, 31, 889519, tzinfo=datetime.timezone.utc), False, 'Wrap up: perfect to imperfect', None, 'Wrap up: perfect to imperfect', None, '', None, None, None, 'In this article, Frank Krysiak and Hannes Weigt sum up how to model real world complexities after leaving the first-best theoretic world.', None, 'In this article, Frank Krysiak and Hannes Weigt sum up how to model real world complexities after leaving the first-best theoretic world.', None, '', 'wrap-up-perfect-to-imperfect', 'This has been a tough chapter with some complex mathematics and economics. So let’s recap the most important take home messages for this chapter.\r\n{.lead}\r\n \r\nFirst, we have examined more detailed aspects of designing equilibrium models and their linkage with optimization models. Remember, many problems can be addressed with both model types, so you can use the one you are more comfortable with. As the basic design of equilibrium models aims to represent the underlying incentive structure of the different market actors, a solid understanding of economics is helpful when designing them and a good understanding of equilibrium modelling can help you to interpret your model results (also optimization models!).\r\n \r\nSecond, we moved from the first-best models of the previous chapters into the challenges of modelling real world market imperfection – the second-best approach. We have added monopolies and oligopolies to the modelling world and seen how changing the level of competitiveness can alter the results of policy choices. Often you will have to live with the trade-off between an increasing complexity of your policy design to overcome all caveats of the underlying market or accept some imperfections and inefficiencies while keeping the policies reasonable.\r\n \r\nThe different forms of competition (perfect, monopoly, and oligopoly) also provide you with a set of market designs to test the robustness of your policy ideas. If a policy works as intended under perfect competition but fails in other markets it may not be the best solution to go for. And the setup also provides you with a good roadmap for designing your more complex models: start with a simple perfect competitive model first and add the complexities of strategic competition afterwards. You will not only learn a lot about the economic aspects of your problem but also more likely get to know your model better this way.\r\n\r\n![Graph showing the four modeling phases: problem, model, solution and interpretation](/media/markdownx/6cbb14b1-23ae-4551-9fa8-2ad542edd214.png)\r\n\r\nWe now have finalised the toolkit on model designs and toolkits for this course. There are plenty of more modelling aspects and challenges left, but the concepts of optimization and equilibrium, system and market perspective, building blocks, first-best and second-best covered in the last three chapters should provide you with a solid backpack to climb larger modelling mountains.\r\n\r\nWe also extended on the model solving aspects by going into detail on optimization and equilibrium modelling and their relation. By doing so, we had a first look at how to interpret your model findings and what they mean from an economic perspective.\r\n \r\nWe are not done yet. We will extend on the model solution and interpretation aspects in the upcoming chapter and also provide some hands-on recommendations for your model coding and data handling. But most importantly, we will finally explore the possible future of our little example market. Will you make it a fossil one or a green one? And what will it cost you?', '', 'This has been a tough chapter with some complex mathematics and economics. So let’s recap the most important take home messages for this chapter.\r\n{.lead}\r\n \r\nFirst, we have examined more detailed aspects of designing equilibrium models and their linkage with optimization models. Remember, many problems can be addressed with both model types, so you can use the one you are more comfortable with. As the basic design of equilibrium models aims to represent the underlying incentive structure of the different market actors, a solid understanding of economics is helpful when designing them and a good understanding of equilibrium modelling can help you to interpret your model results (also optimization models!).\r\n \r\nSecond, we moved from the first-best models of the previous chapters into the challenges of modelling real world market imperfection – the second-best approach. We have added monopolies and oligopolies to the modelling world and seen how changing the level of competitiveness can alter the results of policy choices. Often you will have to live with the trade-off between an increasing complexity of your policy design to overcome all caveats of the underlying market or accept some imperfections and inefficiencies while keeping the policies reasonable.\r\n \r\nThe different forms of competition (perfect, monopoly, and oligopoly) also provide you with a set of market designs to test the robustness of your policy ideas. If a policy works as intended under perfect competition but fails in other markets it may not be the best solution to go for. And the setup also provides you with a good roadmap for designing your more complex models: start with a simple perfect competitive model first and add the complexities of strategic competition afterwards. You will not only learn a lot about the economic aspects of your problem but also more likely get to know your model better this way.\r\n\r\n![Graph showing the four modeling phases: problem, model, solution and interpretation](/media/markdownx/6cbb14b1-23ae-4551-9fa8-2ad542edd214.png)\r\n\r\nWe now have finalised the toolkit on model designs and toolkits for this course. There are plenty of more modelling aspects and challenges left, but the concepts of optimization and equilibrium, system and market perspective, building blocks, first-best and second-best covered in the last three chapters should provide you with a solid backpack to climb larger modelling mountains.\r\n\r\nWe also extended on the model solving aspects by going into detail on optimization and equilibrium modelling and their relation. By doing so, we had a first look at how to interpret your model findings and what they mean from an economic perspective.\r\n \r\nWe are not done yet. We will extend on the model solution and interpretation aspects in the upcoming chapter and also provide some hands-on recommendations for your model coding and data handling. But most importantly, we will finally explore the possible future of our little example market. Will you make it a fossil one or a green one? And what will it cost you?', '', '', '', '', '', None, None, None, None, '', '', '', '', 'TT', '', 14, 'published', False, None, None, None, None, 228)]])}, None) | {} | <django_redis.cache.RedisCache object at 0x7910e287a790> | |
/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in run(101) return _run_old_run_func() /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in _run_old_run_func(94) return old_run_func(self, *a, **kw) /usr/local/lib/python3.11/concurrent/futures/thread.py in _worker(83) work_item.run() /usr/local/lib/python3.11/concurrent/futures/thread.py in run(58) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56) result = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in middleware(32) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/allauth/account/middleware.py in middleware(36) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/simple_history/middleware.py in middleware(41) return get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/django_htmx/middleware.py in __call__(43) return self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in __call__(168) response = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/panels.py in process_request(41) return super(CachalotPanel, self).process_request(request) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in __call__(244) current_executor.run_until_future(call_result) /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run_until_future(81) work_item.run() /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run(40) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(90) return callback(request, *args, **kwargs) /app/project/utils/decorators.py in apply_cache(72) cache.set(CACHE_KEY, response.render(), ttl) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_patched_render(41) return old_render(self) /usr/local/lib/python3.11/site-packages/django/template/response.py in render(114) self.content = self.rendered_content /usr/local/lib/python3.11/site-packages/sentry_sdk/utils.py in runner(1788) return sentry_patched_function(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/templates.py in rendered_content(77) return real_rendered_content.fget(self) /usr/local/lib/python3.11/site-packages/django/template/response.py in rendered_content(92) return template.render(context, self._request) /usr/local/lib/python3.11/site-packages/django/template/backends/django.py in render(61) return self.template.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(175) return self._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157) return compiled_parent._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157) return compiled_parent._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63) result = block.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63) result = block.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(208) return template.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(177) return self._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(321) return nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(238) nodelist.append(node.render_annotated(context)) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(194) len_values = len(values) /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(37) return original(compiler, *args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(96) return _get_result_or_execute_query( /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in _get_result_or_execute_query(71) cache.set_many(to_be_set, cachalot_settings.CACHALOT_TIMEOUT) |
|||||
0,4126 | get_many | (['e3a5db5a670ad803efb866441f33de58309be2e2', '76e323efd8711853e13c9f7cf976845908364eb2', '138549f5508bbba7283d6a0625e51c589d845e8f', '2ff10d6bc723cc34250e05f887461a5e094abe3f'],) | {} | <django_redis.cache.RedisCache object at 0x7910e287a790> | |
/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in run(101) return _run_old_run_func() /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in _run_old_run_func(94) return old_run_func(self, *a, **kw) /usr/local/lib/python3.11/concurrent/futures/thread.py in _worker(83) work_item.run() /usr/local/lib/python3.11/concurrent/futures/thread.py in run(58) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56) result = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in middleware(32) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/allauth/account/middleware.py in middleware(36) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/simple_history/middleware.py in middleware(41) return get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/django_htmx/middleware.py in __call__(43) return self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in __call__(168) response = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/panels.py in process_request(41) return super(CachalotPanel, self).process_request(request) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in __call__(244) current_executor.run_until_future(call_result) /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run_until_future(81) work_item.run() /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run(40) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(90) return callback(request, *args, **kwargs) /app/project/utils/decorators.py in apply_cache(72) cache.set(CACHE_KEY, response.render(), ttl) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_patched_render(41) return old_render(self) /usr/local/lib/python3.11/site-packages/django/template/response.py in render(114) self.content = self.rendered_content /usr/local/lib/python3.11/site-packages/sentry_sdk/utils.py in runner(1788) return sentry_patched_function(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/templates.py in rendered_content(77) return real_rendered_content.fget(self) /usr/local/lib/python3.11/site-packages/django/template/response.py in rendered_content(92) return template.render(context, self._request) /usr/local/lib/python3.11/site-packages/django/template/backends/django.py in render(61) return self.template.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(175) return self._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157) return compiled_parent._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157) return compiled_parent._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63) result = block.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63) result = block.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(208) return template.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(177) return self._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(321) return nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(238) nodelist.append(node.render_annotated(context)) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(194) len_values = len(values) /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(37) return original(compiler, *args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(96) return _get_result_or_execute_query( /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in _get_result_or_execute_query(46) data = cache.get_many(table_cache_keys + [cache_key]) |
|||||
0,8001 | set_many | ({'2ff10d6bc723cc34250e05f887461a5e094abe3f': (1736881791.6760302, [[(1303, datetime.datetime(2022, 5, 5, 19, 20, 3, 617217, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 13, 50, 19, 4518, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 13, 50, 18, 953011, tzinfo=datetime.timezone.utc), False, 'Putting the pieces together', None, 'Putting the pieces together', None, '', None, None, None, 'Throughout this article, Hannes Weigt shows what pieces are still missing if you want your model to produce numbers.', None, 'Throughout this article, Hannes Weigt shows what pieces are still missing if you want your model to produce numbers.', None, 'exploring-possible-futures/putting-the-pieces-together-to-look-into-the-future/putting-the-pieces-together/011.jpg', 'putting-the-pieces-together', 'Let’s start our last chapter by shortly reviewing how we started in the first chapter.\r\n{.lead}\r\n\r\nWe explained that modelling can be structured into four main phases:\r\n![Graph showing the four modeling phases: problem, model, solution and interpretation](/media/markdownx/ba1c8133-f840-42c1-90c2-a88a53d02b25.png)\r\n\r\nIn the last chapters, we explored how to transfer your problem into different kinds of models (do you remember what the differences between Emission Choice Model (ECM), Output Abatement Choice Model (OACM), and Input Choice Model (ICM) are?). We addressed the challenges of ensuring that your model is solvable (do you remember the ‘as many equations as variables’ rule?). And we explored how to make economic sense out of those mathematical equations (do you remember how activity variables, costs, and prices were linked?). And you could explore different modeling elements with the little exercises along the way.\r\n \r\nHowever, what we did not cover in detail in the last chapters is how to transfer all this knowledge into an actual computer model that can produce the numbers you have seen in the exercises. There is a large diversity in modelling software, coding approaches, and computer systems out there; however, a detailed lecture on numerical computational modelling is beyond the scope of this course. Nevertheless, we want to provide you with some basic guidelines on numerical modelling in the following steps: namely, data handling and computational restrictions.\r\n \r\n**Data handling** has large impacts on the model design and the interpretation of the model and its results. While a large share of modelling work is done with pen and paper (especially conceptual assessments can often be carried out without a computer using purely illustrative data), quantifications, simulations, and scenario analyses will need a computer and numerical model implementation. And as you seldom will get all the data you would like to get, you will likely circle between your problem and the modelling phase until you have a model design that can achieve both: answer your research question **and** rely on available data. Similarly, your model results will drive how you can interpret your model.\r\n \r\n**Computational restrictions** have a large impact on the solution phase and thereby again feedback effects on your model design choice. As you will see in the next steps, even with modern computational capabilities, there are still some problem types that are hard to solve, especially for large-scale models. It is likely that the model design you would need to solve your initial research questions is simply not solvable. So, you will be forced to make adjustments, simplifications, or vary your assumptions to account for those constraints.\r\n \r\nYou see that the four modelling phases are indeed not as linear as the picture above suggests. Until you have a running model with interpretable results you will likely have circled back and forth through multiple iterations of the four phases. That is perfectly normal. The more experience you get with modelling the easier it will become to move along those phases; even experienced modellers seldom get a perfect model up and running on their first attempt.\r\n \r\nAnd finally, **we encourage you to go out and start designing your own models**. Building models, applying modelling software and writing model codes can only be learned by doing it.', '', 'Let’s start our last chapter by shortly reviewing how we started in the first chapter.\r\n{.lead}\r\n\r\nWe explained that modelling can be structured into four main phases:\r\n![Graph showing the four modeling phases: problem, model, solution and interpretation](/media/markdownx/ba1c8133-f840-42c1-90c2-a88a53d02b25.png)\r\n\r\nIn the last chapters, we explored how to transfer your problem into different kinds of models (do you remember what the differences between Emission Choice Model (ECM), Output Abatement Choice Model (OACM), and Input Choice Model (ICM) are?). We addressed the challenges of ensuring that your model is solvable (do you remember the ‘as many equations as variables’ rule?). And we explored how to make economic sense out of those mathematical equations (do you remember how activity variables, costs, and prices were linked?). And you could explore different modeling elements with the little exercises along the way.\r\n \r\nHowever, what we did not cover in detail in the last chapters is how to transfer all this knowledge into an actual computer model that can produce the numbers you have seen in the exercises. There is a large diversity in modelling software, coding approaches, and computer systems out there; however, a detailed lecture on numerical computational modelling is beyond the scope of this course. Nevertheless, we want to provide you with some basic guidelines on numerical modelling in the following steps: namely, data handling and computational restrictions.\r\n \r\n**Data handling** has large impacts on the model design and the interpretation of the model and its results. While a large share of modelling work is done with pen and paper (especially conceptual assessments can often be carried out without a computer using purely illustrative data), quantifications, simulations, and scenario analyses will need a computer and numerical model implementation. And as you seldom will get all the data you would like to get, you will likely circle between your problem and the modelling phase until you have a model design that can achieve both: answer your research question **and** rely on available data. Similarly, your model results will drive how you can interpret your model.\r\n \r\n**Computational restrictions** have a large impact on the solution phase and thereby again feedback effects on your model design choice. As you will see in the next steps, even with modern computational capabilities, there are still some problem types that are hard to solve, especially for large-scale models. It is likely that the model design you would need to solve your initial research questions is simply not solvable. So, you will be forced to make adjustments, simplifications, or vary your assumptions to account for those constraints.\r\n \r\nYou see that the four modelling phases are indeed not as linear as the picture above suggests. Until you have a running model with interpretable results you will likely have circled back and forth through multiple iterations of the four phases. That is perfectly normal. The more experience you get with modelling the easier it will become to move along those phases; even experienced modellers seldom get a perfect model up and running on their first attempt.\r\n \r\nAnd finally, **we encourage you to go out and start designing your own models**. Building models, applying modelling software and writing model codes can only be learned by doing it.', '', '', '', '', '', None, None, None, None, '', '', '', '', 'TT', '', 0, 'published', False, None, None, None, None, 229), (1304, datetime.datetime(2022, 5, 5, 19, 20, 16, 802042, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 13, 51, 7, 191493, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 13, 51, 7, 141368, tzinfo=datetime.timezone.utc), False, 'Data handling', None, 'Data handling', None, '', None, None, None, "Watch Hannes Weigt explain some of the caveats when handling your model's input and output.", None, "Watch Hannes Weigt explain some of the caveats when handling your model's input and output.", None, '', 'data-handling', 'Data plays a crucial role in many models, especially large scale numerical scenario models. Getting the data needed to run your model is oftentimes the most frustrating part of the whole modeling process, simply for the fact that data is hard to get and seldom in the direct format you need for your model.\r\n{.lead}\r\n\r\n![embed](https://vimeo.com/734337062/87fd800b45)\r\n \r\nData availability has increased in recent years, with statistical offices, agencies and associations providing diverse databases on multiple energy and environmental related topics. Even if you cannot find the desired data you may still be able to generate reasonable estimates. Always think about the underlying technical or natural structures that define the numbers you would need; i.e. there are often no plant specific generation costs available, but using fuel prices and plant efficiencies you can generate a close proxy.\r\n \r\nAlbeit, as a modeller you are more interested in transferring your input data into output, don’t neglect the interesting information contained in your input data: can you see shifts in the hourly demand of the last years? Is there some underlying price trend in your fuel costs? Does the spatial distribution of pollution give you an insight on non-observable pollution sources? Your model will use this data to hopefully generate interesting findings, but sometimes the data itself already provides some findings that may motivate you to add or change elements of your model.\r\n \r\nWhen you finally get your model results there are two things to do: first, you need to make sure the numbers are correct; and second, you need to transfer the numbers into understandable results for your audience.\r\n \r\nIf you follow the steps provided during this course you hopefully have a working model that indeed produces correct results. But there is always the risk that you made some small errors while writing your model code or constructing your data upload. Always remember: your model software will do whatever you told it, not what you **think** you told it. So double-check that your coding is correct.\r\n \r\nPresenting your results can sometimes be a challenge as you literally produce thousands of numbers. Boil it down to a reasonable reader-friendly summary: use descriptive statistics, aggregate results, show examples, limit the number of scenarios and highlight the insights. Tables and figures are your friends when it comes to presenting your model outcomes; but always remember: it’s what you read out of those numbers, not the numbers that make your interpretation.', '', 'Data plays a crucial role in many models, especially large scale numerical scenario models. Getting the data needed to run your model is oftentimes the most frustrating part of the whole modeling process, simply for the fact that data is hard to get and seldom in the direct format you need for your model.\r\n{.lead}\r\n\r\n![embed](https://vimeo.com/734337062/87fd800b45)\r\n \r\nData availability has increased in recent years, with statistical offices, agencies and associations providing diverse databases on multiple energy and environmental related topics. Even if you cannot find the desired data you may still be able to generate reasonable estimates. Always think about the underlying technical or natural structures that define the numbers you would need; i.e. there are often no plant specific generation costs available, but using fuel prices and plant efficiencies you can generate a close proxy.\r\n \r\nAlbeit, as a modeller you are more interested in transferring your input data into output, don’t neglect the interesting information contained in your input data: can you see shifts in the hourly demand of the last years? Is there some underlying price trend in your fuel costs? Does the spatial distribution of pollution give you an insight on non-observable pollution sources? Your model will use this data to hopefully generate interesting findings, but sometimes the data itself already provides some findings that may motivate you to add or change elements of your model.\r\n \r\nWhen you finally get your model results there are two things to do: first, you need to make sure the numbers are correct; and second, you need to transfer the numbers into understandable results for your audience.\r\n \r\nIf you follow the steps provided during this course you hopefully have a working model that indeed produces correct results. But there is always the risk that you made some small errors while writing your model code or constructing your data upload. Always remember: your model software will do whatever you told it, not what you **think** you told it. So double-check that your coding is correct.\r\n \r\nPresenting your results can sometimes be a challenge as you literally produce thousands of numbers. Boil it down to a reasonable reader-friendly summary: use descriptive statistics, aggregate results, show examples, limit the number of scenarios and highlight the insights. Tables and figures are your friends when it comes to presenting your model outcomes; but always remember: it’s what you read out of those numbers, not the numbers that make your interpretation.', '', '', '', '', '', None, None, None, None, '', '', '', '', 'TV', '', 1, 'published', False, None, None, None, None, 229), (1305, datetime.datetime(2022, 5, 5, 19, 20, 30, 953442, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 13, 52, 28, 677081, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 13, 52, 28, 625732, tzinfo=datetime.timezone.utc), False, 'Let the computer do the work I: optimizations', None, 'Let the computer do the work I: optimizations', None, '', None, None, None, 'Through this article, Hannes Weigt provides a short introduction on different mathematical model limitations when designing optimization models.', None, 'Through this article, Hannes Weigt provides a short introduction on different mathematical model limitations when designing optimization models.', None, '', 'let-the-computer-do-the-work-i-optimizations', 'Modern computer capacities and advances in modelling software and algorithms make numerical modelling much more accessible than a few decades ago. Nevertheless, basic understandings of the mathematical model structure and its feedback on the design stage are requirements to ensure that the model is not only credible but can also produce meaningful results.\r\n{.lead}\r\n\r\n![Computer work](/media/markdownx/587303fd-f6fd-41ca-83f3-b9d04d16aa75.png)\r\n \r\n\r\nIn this step, we will take a short look into some computational aspects that you should keep in mind when designing your model as they often will have a direct impact on if and how your model will solve.\r\n \r\nWhen optimising models, one of the main choices is between linear or non-linear model designs. A **Linear Program (LP)** consists of a linear objective function and linear constraints. A common formulation is a cost minimising LP of the form used in chapter 2:\r\n \r\n---\r\n\r\n   $$\\min \\limits_q \\enspace {Cost}=\\sum{c_i q_i}$$  (Cost objective)\r\n\r\n\r\n s.t. $$q_i\\leq q_i^{max}$$  (Production constraints)\r\n\r\n\r\n   $$\\sum{q_i}\\geq d$$  (Demand constraints)\r\n\r\n---\r\n\r\nThe advantage of LP formulations is that they can be solved relatively fast even for large scale models. Furthermore, the obtained solution provides a global optimum: either a unique solution, a continuum of equivalent solutions, or no solution. LP models therefore provide a good starting point to get familiar with the problem at hand. Albeit many relations and restrictions in the real world are non-linear oftentimes, they can be reasonably approximated by linear formulations.\r\n \r\nNaturally, **Non-Linear Programs (NLP)** relax the linearity constraints and the functional relations can take on any form. The advantage of NLPs comes with the possibility to remain closer to real world conditions. However, this comes at a price. First, NLPs are harder to solve and will normally need longer to find a solution. Second, most NLP solutions don’t guarantee a global optimum.\r\n\r\n![Graph showing the exemplary solution space for a NLP](/media/markdownx/8d71eb46-8a7e-444e-81a6-6ae9724d891a.png)\r\n\r\nExemplary solution space for a NLP\r\n{.footnote}\r\n\r\n<br>\r\n\r\nTo ensure that a global maximum is reached, further criteria, in addition to the first-order conditions, are needed. There are global solvers that ensure that a solution is a global optima, but the computational effort is much higher than for local solvers. Therefore, most of the time, NLP models will only ensure that a local optima is obtained. From a modeller perspective, this means that one should ensure that the obtained solution is reasonable; for example, by providing starting points via LP approximations of the NLP model.\r\n \r\nA special form of NLP models are formulations with quadratic elements. This can either be **Quadratic Programs (QP)** that have a quadratic term in the objective but only linear constraints (for example typical welfare formulations) or **Quadratic Constraints Programs (QCP)** in which the side constraints can contain quadratic formulations. Those NLPs are easier to solve and many solvers have special routines for this kind of problem.\r\n \r\nA final important form for optimization models are formulations involving integer variables. The most common form of models with integer elements are coded as **Mixed-Integer Linear Programs (MILP)** that involve both continuous and integer variables while keeping the linearity restrictions. You can also design non-linear formulations with integer elements but the current solver capability for those problems is rather limited. Integer elements are rather common in real life (eg, most commodities are consumed in discrete amounts) but can often be reasonably approximated by continuous formulations for large-scale problems (eg, models with a consumption of 1000.4 units are less of a problem than models with 1.4 units).\r\n \r\nA common usage for integer elements are binary variables indicating choices (ie, binary 0-1 variables), like fixed costs added if a production site is constructed. A typical example in electricity markets is power plant status conditions:\r\n\r\n---\r\n\r\n   $$\\min_\\limits {q,s} \\enspace {Costs}=\\sum{c_i q_i}$$  (Cost objective)\r\n\r\n\r\n s.t. $$s_i q^{min} \\leq q_i \\leq s_i {cap}^{max}$$  (Generation constraint)\r\n\r\n   $$\\sum{q_i} \\geq d$$  (Demand constraint)\r\n\r\n---\r\n\r\nIn case a plant is online $$(s = 1)$$ the output, $$q$$, of a plant $$i$$ has to remain within the generation constraints defined by the lower and upper capacity limits. In case the plant is offline, $$(s = 0)$$, the output is fixed to zero. MILP models are harder to solve than pure LP models but still perform reasonably well, normally obtaining global optimality and they can handle large datasets.\r\n \r\nThe easy design of optimization problems and the good solver capabilities of modern computers make optimization models a good place to start your endeavour into numerical modelling. You will be able to design large system representations or complex firm optimizations. Even if you want to assess more complex real world challenges, like the oligopoly models we discussed in chapter 4, a simple benchmark optimization model representing first-best conditions is often helpful.', '', 'Modern computer capacities and advances in modelling software and algorithms make numerical modelling much more accessible than a few decades ago. Nevertheless, basic understandings of the mathematical model structure and its feedback on the design stage are requirements to ensure that the model is not only credible but can also produce meaningful results.\r\n{.lead}\r\n\r\n![Computer work](/media/markdownx/587303fd-f6fd-41ca-83f3-b9d04d16aa75.png)\r\n \r\n\r\nIn this step, we will take a short look into some computational aspects that you should keep in mind when designing your model as they often will have a direct impact on if and how your model will solve.\r\n \r\nWhen optimising models, one of the main choices is between linear or non-linear model designs. A **Linear Program (LP)** consists of a linear objective function and linear constraints. A common formulation is a cost minimising LP of the form used in chapter 2:\r\n \r\n---\r\n\r\n   $$\\min \\limits_q \\enspace {Cost}=\\sum{c_i q_i}$$  (Cost objective)\r\n\r\n\r\n s.t. $$q_i\\leq q_i^{max}$$  (Production constraints)\r\n\r\n\r\n   $$\\sum{q_i}\\geq d$$  (Demand constraints)\r\n\r\n---\r\n\r\nThe advantage of LP formulations is that they can be solved relatively fast even for large scale models. Furthermore, the obtained solution provides a global optimum: either a unique solution, a continuum of equivalent solutions, or no solution. LP models therefore provide a good starting point to get familiar with the problem at hand. Albeit many relations and restrictions in the real world are non-linear oftentimes, they can be reasonably approximated by linear formulations.\r\n \r\nNaturally, **Non-Linear Programs (NLP)** relax the linearity constraints and the functional relations can take on any form. The advantage of NLPs comes with the possibility to remain closer to real world conditions. However, this comes at a price. First, NLPs are harder to solve and will normally need longer to find a solution. Second, most NLP solutions don’t guarantee a global optimum.\r\n\r\n![Graph showing the exemplary solution space for a NLP](/media/markdownx/8d71eb46-8a7e-444e-81a6-6ae9724d891a.png)\r\n\r\nExemplary solution space for a NLP\r\n{.footnote}\r\n\r\n<br>\r\n\r\nTo ensure that a global maximum is reached, further criteria, in addition to the first-order conditions, are needed. There are global solvers that ensure that a solution is a global optima, but the computational effort is much higher than for local solvers. Therefore, most of the time, NLP models will only ensure that a local optima is obtained. From a modeller perspective, this means that one should ensure that the obtained solution is reasonable; for example, by providing starting points via LP approximations of the NLP model.\r\n \r\nA special form of NLP models are formulations with quadratic elements. This can either be **Quadratic Programs (QP)** that have a quadratic term in the objective but only linear constraints (for example typical welfare formulations) or **Quadratic Constraints Programs (QCP)** in which the side constraints can contain quadratic formulations. Those NLPs are easier to solve and many solvers have special routines for this kind of problem.\r\n \r\nA final important form for optimization models are formulations involving integer variables. The most common form of models with integer elements are coded as **Mixed-Integer Linear Programs (MILP)** that involve both continuous and integer variables while keeping the linearity restrictions. You can also design non-linear formulations with integer elements but the current solver capability for those problems is rather limited. Integer elements are rather common in real life (eg, most commodities are consumed in discrete amounts) but can often be reasonably approximated by continuous formulations for large-scale problems (eg, models with a consumption of 1000.4 units are less of a problem than models with 1.4 units).\r\n \r\nA common usage for integer elements are binary variables indicating choices (ie, binary 0-1 variables), like fixed costs added if a production site is constructed. A typical example in electricity markets is power plant status conditions:\r\n\r\n---\r\n\r\n   $$\\min_\\limits {q,s} \\enspace {Costs}=\\sum{c_i q_i}$$  (Cost objective)\r\n\r\n\r\n s.t. $$s_i q^{min} \\leq q_i \\leq s_i {cap}^{max}$$  (Generation constraint)\r\n\r\n   $$\\sum{q_i} \\geq d$$  (Demand constraint)\r\n\r\n---\r\n\r\nIn case a plant is online $$(s = 1)$$ the output, $$q$$, of a plant $$i$$ has to remain within the generation constraints defined by the lower and upper capacity limits. In case the plant is offline, $$(s = 0)$$, the output is fixed to zero. MILP models are harder to solve than pure LP models but still perform reasonably well, normally obtaining global optimality and they can handle large datasets.\r\n \r\nThe easy design of optimization problems and the good solver capabilities of modern computers make optimization models a good place to start your endeavour into numerical modelling. You will be able to design large system representations or complex firm optimizations. Even if you want to assess more complex real world challenges, like the oligopoly models we discussed in chapter 4, a simple benchmark optimization model representing first-best conditions is often helpful.', '', '', '', '', '', None, None, None, None, '', '', '', '', 'TT', '', 2, 'published', False, None, None, None, None, 229), (1306, datetime.datetime(2022, 5, 5, 19, 20, 40, 685239, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 13, 53, 18, 851369, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 13, 53, 18, 803782, tzinfo=datetime.timezone.utc), False, 'Let the computer do the work II: equilibriums', None, 'Let the computer do the work II: equilibriums', None, '', None, None, None, 'In this article, Hannes Weigt continues the presentation on mathematical model limitations for equilibrium models.', None, 'In this article, Hannes Weigt continues the presentation on mathematical model limitations for equilibrium models.', None, '', 'let-the-computer-do-the-work-ii-equilibriums', 'While optimization models are frequently used for techno-economic scenario simulations and system assessments, equilibrium models are more common for analysing detailed economic market interaction and dynamics.\r\n{.lead}\r\n\r\n\r\n![Computer work](/media/markdownx/9bb1efda-a364-4c68-a39d-4123e503cebf.png)\r\n \r\nThey are coded using the **Mixed Complementarity Problem (MCP)** format that formalizes the **Karush–Kuhn–Tucker (KKT)** structure we introduced in chapter 3. The general formulation in case of maximisation is:\r\n\r\n$$\\frac{\\partial{f}}{\\partial{x}}x=0; \\frac{\\partial{f}}{\\partial{x}} \\leq 0; x \\geq 0$$\r\n\r\nThe complementarity condition is often formulated as:\r\n\r\n \r\n$$\\frac{\\partial f}{\\partial x} \\leq 0 \\bot x \\geq 0$$\r\n\r\nThe interpretation is the same as we introduced in the basic design of equilibrium models: either $$x$$ is positive, then the derivative ($$\\frac{\\partial f}{\\partial x}$$) has to hold with equality, or $$x$$ is zero and the derivative can be an inequality. This corresponds to the economic intuition behind the zero-profit and market clearing constraints. The advantage of the MCP formulation is that dual variables (ie, the Lagrangian multipliers, in other words the prices) are direct variables of the model.\r\n \r\nAll continuous optimization problems can be formulated as MCP. Depending on the solver capabilities, you may prefer to keep them as optimization models, especially in the case of Linear Programs (LPs). Adding integer variables to an MCP is not possible without further model tweaking which is not recommended without sufficient knowledge on modeling and its mathematical background.\r\n \r\nMany equilibrium models follow a more aggregated top-down approach. Often, you will be forced to make a trade-off decision between including more technical details or focusing more on economic interactions. And this often also translates into a decision whether you will go for an optimization approach (in the former case) or an equilibrium setting (in the latter case).\r\n \r\nPartial equilibrium models, focusing on single markets or sectors, are often used when strategic competition is important, like in our oligopoly example from last chapter. Large-scale numerical models aiming to represent the whole economy are designed as **Computable General Equilibrium (CGE)** approach. If you plan to dig deeper into coding CGE models, you may want to have a look at [GAMS-MPSGE](https://www.gams.com/solvers/mpsge/){:target=“_blank”}.\r\n \r\n<br>\r\n\r\n\r\nRecommended readings\r\n{.footnote-title}\r\n\r\nNaturally this course cannot provide a complete overview on the mathematics of modelling. There are more complex model approaches, eg **Mathematical Programs with Equilibrium Constraints (MPECs)**, and there are techniques to reformulate models to obtain solutions for otherwise unsolvable problems. \r\n\r\nHowever, there are plenty of books out there on this topic. You may want to start with Dantzig and Thapa (1997) or Williams (2013) to get more familiar with optimizations, and Gabriel et al. (2013) for complementarity modeling in energy markets. An applied comparison between different optimization approaches is for example provided in Ommen et al. (2014). \r\n\r\nDantzig, G. B. & Thapa, M. N. (1997). Linear Programming 1: 1. Introduction (Vol. 1). Springer.\r\n{.citation-indented}\r\n\r\nWilliams, H. P. (2013). Model building in mathematical programming. John Wiley & Sons.\r\n{.citation-indented}\r\n\r\nGabriel, S. A. et al. (2012). Complementarity modeling in energy markets (Vol. 180). Springer Science & Business Media.\r\n{.citation-indented}\r\n\r\nOmmen, T., Markussen, W. B., & Elmegaard, B. (2014). [Comparison of linear, mixed integer and non-linear programming methods in energy system dispatch modelling](http://www.sciencedirect.com/science/article/pii/S0360544214004368){:target=“_blank”}. *Energy*, 74, pp. 109-118.\r\n{.citation-indented}\r\n\r\nA helpful reference for the design of electricity system models is Van den Bergh et al. (2014) that provides a comprehensive overview on approaches to model specific technical constraints in electricity markets. \r\n{.citation-indented}\r\n\r\nVan den Bergh, K. et al. (2013). [A Mixed Integer Linear Formulation of the Unit Commitment Problem](http://www.mech.kuleuven.be/en/tme/research/energy_environment/Pdf/wpen2014-07.pdf){:target=“_blank”}. KU Leuven Energy Institute Working papers.\r\n{.citation-indented}', '', 'While optimization models are frequently used for techno-economic scenario simulations and system assessments, equilibrium models are more common for analysing detailed economic market interaction and dynamics.\r\n{.lead}\r\n\r\n\r\n![Computer work](/media/markdownx/9bb1efda-a364-4c68-a39d-4123e503cebf.png)\r\n \r\nThey are coded using the **Mixed Complementarity Problem (MCP)** format that formalizes the **Karush–Kuhn–Tucker (KKT)** structure we introduced in chapter 3. The general formulation in case of maximisation is:\r\n\r\n$$\\frac{\\partial{f}}{\\partial{x}}x=0; \\frac{\\partial{f}}{\\partial{x}} \\leq 0; x \\geq 0$$\r\n\r\nThe complementarity condition is often formulated as:\r\n\r\n \r\n$$\\frac{\\partial f}{\\partial x} \\leq 0 \\bot x \\geq 0$$\r\n\r\nThe interpretation is the same as we introduced in the basic design of equilibrium models: either $$x$$ is positive, then the derivative ($$\\frac{\\partial f}{\\partial x}$$) has to hold with equality, or $$x$$ is zero and the derivative can be an inequality. This corresponds to the economic intuition behind the zero-profit and market clearing constraints. The advantage of the MCP formulation is that dual variables (ie, the Lagrangian multipliers, in other words the prices) are direct variables of the model.\r\n \r\nAll continuous optimization problems can be formulated as MCP. Depending on the solver capabilities, you may prefer to keep them as optimization models, especially in the case of Linear Programs (LPs). Adding integer variables to an MCP is not possible without further model tweaking which is not recommended without sufficient knowledge on modeling and its mathematical background.\r\n \r\nMany equilibrium models follow a more aggregated top-down approach. Often, you will be forced to make a trade-off decision between including more technical details or focusing more on economic interactions. And this often also translates into a decision whether you will go for an optimization approach (in the former case) or an equilibrium setting (in the latter case).\r\n \r\nPartial equilibrium models, focusing on single markets or sectors, are often used when strategic competition is important, like in our oligopoly example from last chapter. Large-scale numerical models aiming to represent the whole economy are designed as **Computable General Equilibrium (CGE)** approach. If you plan to dig deeper into coding CGE models, you may want to have a look at [GAMS-MPSGE](https://www.gams.com/solvers/mpsge/){:target=“_blank”}.\r\n \r\n<br>\r\n\r\n\r\nRecommended readings\r\n{.footnote-title}\r\n\r\nNaturally this course cannot provide a complete overview on the mathematics of modelling. There are more complex model approaches, eg **Mathematical Programs with Equilibrium Constraints (MPECs)**, and there are techniques to reformulate models to obtain solutions for otherwise unsolvable problems. \r\n\r\nHowever, there are plenty of books out there on this topic. You may want to start with Dantzig and Thapa (1997) or Williams (2013) to get more familiar with optimizations, and Gabriel et al. (2013) for complementarity modeling in energy markets. An applied comparison between different optimization approaches is for example provided in Ommen et al. (2014). \r\n\r\nDantzig, G. B. & Thapa, M. N. (1997). Linear Programming 1: 1. Introduction (Vol. 1). Springer.\r\n{.citation-indented}\r\n\r\nWilliams, H. P. (2013). Model building in mathematical programming. John Wiley & Sons.\r\n{.citation-indented}\r\n\r\nGabriel, S. A. et al. (2012). Complementarity modeling in energy markets (Vol. 180). Springer Science & Business Media.\r\n{.citation-indented}\r\n\r\nOmmen, T., Markussen, W. B., & Elmegaard, B. (2014). [Comparison of linear, mixed integer and non-linear programming methods in energy system dispatch modelling](http://www.sciencedirect.com/science/article/pii/S0360544214004368){:target=“_blank”}. *Energy*, 74, pp. 109-118.\r\n{.citation-indented}\r\n\r\nA helpful reference for the design of electricity system models is Van den Bergh et al. (2014) that provides a comprehensive overview on approaches to model specific technical constraints in electricity markets. \r\n{.citation-indented}\r\n\r\nVan den Bergh, K. et al. (2013). [A Mixed Integer Linear Formulation of the Unit Commitment Problem](http://www.mech.kuleuven.be/en/tme/research/energy_environment/Pdf/wpen2014-07.pdf){:target=“_blank”}. KU Leuven Energy Institute Working papers.\r\n{.citation-indented}', '', '', '', '', '', None, None, None, None, '', '', '', '', 'TT', '', 3, 'published', False, None, None, None, None, 229), (1307, datetime.datetime(2022, 5, 5, 19, 20, 49, 972322, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 13, 54, 12, 390917, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 13, 54, 12, 344782, tzinfo=datetime.timezone.utc), False, 'Getting ready for the future', None, 'Getting ready for the future', None, '', None, None, None, 'In this article, Frank Krysiak and Hannes Weigt combine the different model and policy elements discussed so far to have a look into the future.', None, 'In this article, Frank Krysiak and Hannes Weigt combine the different model and policy elements discussed so far to have a look into the future.', None, '', 'getting-ready-for-the-future', 'Now that you have learned about all the elements needed to design sophisticated models, it is time to put those pieces together to have a look at possible futures.\r\n{.lead}\r\n \r\nLet’s start with a problem. As this course is named ‘Exploring Possible Futures’, we will make this our driving research question for the last model: what are possible future developments for our little example market?\r\n \r\nBefore deciding what type of model to use, think about how many possible layers of detail the research question still leaves open: are you only interested in the future or also in the path towards this future? What are your ‘choice variables’: costs, market prices or policies? And what policies would be the ones to include? What level of competition does your market possess?\r\n \r\nAll those follow-up questions help you to decide which model design to choose. This is the iteration between the problem and model phase we mentioned throughout the course.\r\n \r\nFor our final model example we have chosen to test the policy choices we discussed in the last chapters, namely CO<sub>2</sub> taxes, nuclear premiums, and renewable subsidies. We will keep the model in the first-best world and stick with a competitive market framework. Namely, we will rely on the model discussed at the end of chapter 3, the first model exercise with a responsive demand.\r\n \r\nNow we have a research question and a basic model layout. However, there isn’t much future development involved yet. The model of chapter 3 was just a one period model. To analyze the future you could adjust the underlying data to represent future expectations (eg, change the investment costs or fuel prices according to your assumption on future developments). That is the simplest way of setting up a ‘future’ model.\r\n \r\nLet’s go a step further and aim to not only look into the future but link it to decisions we make today. There are again multiple ways how such a dynamic system can be modelled. For example, you could add a further model index to account for the flow of time (eg, years) and link each period with its preceding periods (eg, the capacity in year, $$t$$, is equal to the capacity in the previous year, $$t - 1$$, plus any additions, minus decommissioned units).\r\n \r\nFor our final model example, we follow this approach but implement it in a more simplified way: we design two individual models; one for today, one for the future, where the data input for the future-model depends on the results of the today-model. Namely, we assume that renewable investment costs will decrease in the future. The actual extent of this decrease will depend on the amount of renewables utilised today.\r\n \r\nAll other future parameters (demand dynamics, fuel costs, investment costs for fossil and nuclear plants) are unchanged. This allows us to trace back the future developments to the choices you will make (CO<sub>2</sub>, nuclear and renewable levels) and the renewable cost decrease.\r\n \r\nThe implementation is rather simple: the today-model is equivalent to the model of chapter 3 and solved for your choice variables. Given this market result the output of PV ($$q_{PV}^{today}$$) and wind ($$q_{wind}^{today}$$) generation is then used to calculate the future costs:\r\n\r\n---\r\n\r\n$$c_i (q_i )=α_i \\cdot q_i+\\frac{β_i-ηq_i^{today}}{2} \\cdot q_i^2$$\r\n\r\n---\r\n\r\nThe total costs for wind or PV generation again increase more than proportionally with production. However, the increasing cost block is now adjusted for today’s renewable output with $$η$$ representing how large the impact of today’s output on future cost levels is. As today’s output ($$q_i^{today}$$) is known and fixed in the future, it is treated as an external variable for the model; in other words, we only adjust the cost parameters for the future model.\r\n \r\nNow we have all the pieces together for an interesting model with some hopefully equally interesting results.', '', 'Now that you have learned about all the elements needed to design sophisticated models, it is time to put those pieces together to have a look at possible futures.\r\n{.lead}\r\n \r\nLet’s start with a problem. As this course is named ‘Exploring Possible Futures’, we will make this our driving research question for the last model: what are possible future developments for our little example market?\r\n \r\nBefore deciding what type of model to use, think about how many possible layers of detail the research question still leaves open: are you only interested in the future or also in the path towards this future? What are your ‘choice variables’: costs, market prices or policies? And what policies would be the ones to include? What level of competition does your market possess?\r\n \r\nAll those follow-up questions help you to decide which model design to choose. This is the iteration between the problem and model phase we mentioned throughout the course.\r\n \r\nFor our final model example we have chosen to test the policy choices we discussed in the last chapters, namely CO<sub>2</sub> taxes, nuclear premiums, and renewable subsidies. We will keep the model in the first-best world and stick with a competitive market framework. Namely, we will rely on the model discussed at the end of chapter 3, the first model exercise with a responsive demand.\r\n \r\nNow we have a research question and a basic model layout. However, there isn’t much future development involved yet. The model of chapter 3 was just a one period model. To analyze the future you could adjust the underlying data to represent future expectations (eg, change the investment costs or fuel prices according to your assumption on future developments). That is the simplest way of setting up a ‘future’ model.\r\n \r\nLet’s go a step further and aim to not only look into the future but link it to decisions we make today. There are again multiple ways how such a dynamic system can be modelled. For example, you could add a further model index to account for the flow of time (eg, years) and link each period with its preceding periods (eg, the capacity in year, $$t$$, is equal to the capacity in the previous year, $$t - 1$$, plus any additions, minus decommissioned units).\r\n \r\nFor our final model example, we follow this approach but implement it in a more simplified way: we design two individual models; one for today, one for the future, where the data input for the future-model depends on the results of the today-model. Namely, we assume that renewable investment costs will decrease in the future. The actual extent of this decrease will depend on the amount of renewables utilised today.\r\n \r\nAll other future parameters (demand dynamics, fuel costs, investment costs for fossil and nuclear plants) are unchanged. This allows us to trace back the future developments to the choices you will make (CO<sub>2</sub>, nuclear and renewable levels) and the renewable cost decrease.\r\n \r\nThe implementation is rather simple: the today-model is equivalent to the model of chapter 3 and solved for your choice variables. Given this market result the output of PV ($$q_{PV}^{today}$$) and wind ($$q_{wind}^{today}$$) generation is then used to calculate the future costs:\r\n\r\n---\r\n\r\n$$c_i (q_i )=α_i \\cdot q_i+\\frac{β_i-ηq_i^{today}}{2} \\cdot q_i^2$$\r\n\r\n---\r\n\r\nThe total costs for wind or PV generation again increase more than proportionally with production. However, the increasing cost block is now adjusted for today’s renewable output with $$η$$ representing how large the impact of today’s output on future cost levels is. As today’s output ($$q_i^{today}$$) is known and fixed in the future, it is treated as an external variable for the model; in other words, we only adjust the cost parameters for the future model.\r\n \r\nNow we have all the pieces together for an interesting model with some hopefully equally interesting results.', '', '', '', '', '', None, None, None, None, '', '', '', '', 'TT', '', 4, 'published', False, None, None, None, None, 229), (1308, datetime.datetime(2022, 5, 5, 19, 20, 58, 34010, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 13, 55, 17, 80019, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 13, 55, 16, 997503, tzinfo=datetime.timezone.utc), False, 'Exercise: Exploring possible futures', None, 'Exercise: Exploring possible futures', None, '', None, None, None, 'Try this exercise about exploring possible futures.', None, 'Try this exercise about exploring possible futures.', None, '', 'exercise-exploring-possible-futures', 'The final model exercise allows you to analyse the linkage between today’s choices and future results.\r\n{.lead}\r\n\r\nNow it is your task to design a future for our little market: you are free to choose the CO<sub>2</sub> tax, the deposit for nuclear accidents, and subsidies for wind power and PV; both for the current time frame (indicated by 2025) and the long term future time frame (indicated by 2050).\r\n \r\nAs explained in the last step, your choice of policies in 2025 can have an impact on the renewable costs in 2050 and thereby influence the market outcome, even if you do not implement any policies.\r\n \r\nDo whatever you think is a good energy mix and **see how your market will react and how much it will cost**.\r\n\r\n**Note: If you want to keep a certain result for later use we suggest that you make a screenshot (Command-Shift-3 for Mac or CTRL+PrtScn for Windows) and download it.**\r\n\r\n<br>\r\n\r\n##Exercise\r\n\r\n###[Exploring possible futures](https://nmc.unibas.ch/online-courses/exploring/2017/tm9/index.html){:target=“_blank”}', '', 'The final model exercise allows you to analyse the linkage between today’s choices and future results.\r\n{.lead}\r\n\r\nNow it is your task to design a future for our little market: you are free to choose the CO<sub>2</sub> tax, the deposit for nuclear accidents, and subsidies for wind power and PV; both for the current time frame (indicated by 2025) and the long term future time frame (indicated by 2050).\r\n \r\nAs explained in the last step, your choice of policies in 2025 can have an impact on the renewable costs in 2050 and thereby influence the market outcome, even if you do not implement any policies.\r\n \r\nDo whatever you think is a good energy mix and **see how your market will react and how much it will cost**.\r\n\r\n**Note: If you want to keep a certain result for later use we suggest that you make a screenshot (Command-Shift-3 for Mac or CTRL+PrtScn for Windows) and download it.**\r\n\r\n<br>\r\n\r\n##Exercise\r\n\r\n###[Exploring possible futures](https://nmc.unibas.ch/online-courses/exploring/2017/tm9/index.html){:target=“_blank”}', '', '', '', '', '', None, None, None, None, '', '', '', '', 'TT', '', 5, 'published', False, None, None, None, None, 229), (1309, datetime.datetime(2022, 5, 5, 19, 21, 7, 784685, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 13, 57, 13, 161591, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 13, 57, 13, 111260, tzinfo=datetime.timezone.utc), False, 'Reflection: How does your future look?', None, 'Reflection: How does your future look?', None, '', None, None, None, 'Reflect on this question: How does your future look?', None, 'Reflect on this question: How does your future look?', None, '', 'reflection-how-does-your-future-look', 'In the final model exercise, we asked you to design a policy set influencing the future of the example electricity market.\r\n{.lead}\r\n\r\n1. What policies have you chosen for 2025 and 2050? \r\n\r\n2. Why did you choose this particular set? \r\n\r\n3. What were the consequences of your choice?\r\n\r\nPlease record your findings before you go to the next step.', '', 'In the final model exercise, we asked you to design a policy set influencing the future of the example electricity market.\r\n{.lead}\r\n\r\n1. What policies have you chosen for 2025 and 2050? \r\n\r\n2. Why did you choose this particular set? \r\n\r\n3. What were the consequences of your choice?\r\n\r\nPlease record your findings before you go to the next step.', '', '', '', '', '', None, None, None, None, '', '', '', '', 'TT', '', 6, 'published', True, 'Please give your answers in the discussion [section](#comments) below and exchange your findings with other learners.', None, 'Please give your answers in the discussion [section](#comments) below and exchange your findings with other learners.', None, 229), (1310, datetime.datetime(2022, 5, 5, 19, 21, 25, 855061, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 13, 58, 44, 403269, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 13, 58, 44, 350527, tzinfo=datetime.timezone.utc), False, 'Our futures', None, 'Our futures', None, '', None, None, None, 'Watch Frank Krysiak and Hannes Weigt presenting their own choices for the future of the example system.', None, 'Watch Frank Krysiak and Hannes Weigt presenting their own choices for the future of the example system.', None, '', 'our-futures', 'You were not the only one tasked to design a policy system for our example market. We did the same.\r\n{.lead}\r\n\r\n![embed](https://vimeo.com/734336820/3d482871db)\r\n\r\n \r\nSo watch how Frank Krysiak is designing a system focused on internalising external costs while Hannes Weigt aims to support renewables today to get a payoff in the future.\r\n \r\nWhat do you think of our two policy sets?', '', 'You were not the only one tasked to design a policy system for our example market. We did the same.\r\n{.lead}\r\n\r\n![embed](https://vimeo.com/734336820/3d482871db)\r\n\r\n \r\nSo watch how Frank Krysiak is designing a system focused on internalising external costs while Hannes Weigt aims to support renewables today to get a payoff in the future.\r\n \r\nWhat do you think of our two policy sets?', '', '', '', '', '', None, None, None, None, '', '', '', '', 'TV', '', 7, 'published', False, None, None, None, None, 229), (1311, datetime.datetime(2022, 5, 5, 19, 21, 35, 955993, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 13, 59, 29, 223460, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 13, 59, 29, 173488, tzinfo=datetime.timezone.utc), False, 'Last essential steps', None, 'Last essential steps', None, '', None, None, None, 'Watch Hannes Weigt explaining how to put the different model phases into a consistent story.', None, 'Watch Hannes Weigt explaining how to put the different model phases into a consistent story.', None, '', 'last-essential-steps', 'Regardless, whether you have a conceptual model with complicated interactions hidden in the mathematical equations of your solution or a numerical model with a gazillion numbers, you will need to transfer your findings into something others can understand.\r\n{.lead}\r\n\r\n![embed](https://vimeo.com/734336359/96a965f5b3)\r\n \r\nModel interpretation therefore can be seen as a two-step process:\r\n\r\n![First](/media/markdownx/738d7c5a-eb3b-4830-9f32-ea55ac68b1e9.png)\r\n\r\nFirst, you need to **understand your own model results**. We covered aspects of this challenge throughout the course like interpreting activity and price variables or discussing the results of the model exercises. By digging into your model results, performing sensitivity analyses, testing the robustness, and figuring out what drives your results, you will get the elements needed for a good result presentation.\r\n\r\n![Second](/media/markdownx/129e248b-0311-4a90-95ac-c62c0643b5c7.png)\r\n\r\nSecond, you need to **transfer this understanding into a consistent storyline** linking back to your original problem. You will have to convince others that your model is a credible representation for your research question and that your findings provide added value. The four phases of modelling help you to structure your story.', '', 'Regardless, whether you have a conceptual model with complicated interactions hidden in the mathematical equations of your solution or a numerical model with a gazillion numbers, you will need to transfer your findings into something others can understand.\r\n{.lead}\r\n\r\n![embed](https://vimeo.com/734336359/96a965f5b3)\r\n \r\nModel interpretation therefore can be seen as a two-step process:\r\n\r\n![First](/media/markdownx/738d7c5a-eb3b-4830-9f32-ea55ac68b1e9.png)\r\n\r\nFirst, you need to **understand your own model results**. We covered aspects of this challenge throughout the course like interpreting activity and price variables or discussing the results of the model exercises. By digging into your model results, performing sensitivity analyses, testing the robustness, and figuring out what drives your results, you will get the elements needed for a good result presentation.\r\n\r\n![Second](/media/markdownx/129e248b-0311-4a90-95ac-c62c0643b5c7.png)\r\n\r\nSecond, you need to **transfer this understanding into a consistent storyline** linking back to your original problem. You will have to convince others that your model is a credible representation for your research question and that your findings provide added value. The four phases of modelling help you to structure your story.', '', '', '', '', '', None, None, None, None, '', '', '', '', 'TV', '', 8, 'published', False, None, None, None, None, 229), (1312, datetime.datetime(2022, 5, 5, 19, 21, 45, 107741, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 14, 0, 20, 928468, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 14, 0, 20, 878444, tzinfo=datetime.timezone.utc), False, 'From story to paper', None, 'From story to paper', None, '', None, None, None, 'Learn how to transfer the elements of your story into an understandable research paper.', None, 'Learn how to transfer the elements of your story into an understandable research paper.', None, '', 'from-story-to-paper', 'Let’s shortly look a bit more closer at how to transfer your model into a consistent story.\r\n{.lead}\r\n\r\nAs explained in the last step you can use the four phase structure presented in this course as a good guide on how to arrange your story. This structure also nicely lines up with the general hourglass structure of paper writing:\r\n\r\n![Graph showing the four modeling phases in comparison to the classic hourglass structure of paper writing](/media/markdownx/c3b8c245-0494-4050-8207-37b0624a0640.png)\r\n \r\nYou should always start and end broadly to ensure a consistent frame for your story and make it accessible to a wide audience. Motivate your research so that anyone understands why this is interesting. Provide a clear research question (your **‘Problem’**) and relate it to existing research and approaches thereby becoming more specific. In a classical paper, those are the ‘Introduction’ and ‘Literature Review’ sections.\r\n \r\nYour **‘Model’** and **‘Solution’** methods are the most specific parts and should provide sufficient detail for others to reproduce your work. They correspond to the ‘Method’ section within research papers. Those are the parts where you need to convince other modellers that your model is only wrong because it is a model and not a bad model. So make sure to provide a clear outline of your model design, assumptions, and simplifications.\r\n \r\nWith your results, you again broaden the scope. Usually, you first present your main findings followed by a discussion and interpretation. The **‘Interpretation’** will need to provide the link from your specific methods and results to the general problem you introduced. The conclusion will then close your story and should again be written in a way that anyone can understand what you have done.\r\n \r\nMake sure that you provide your readers with all the elements they need to follow your story and try to avoid opening up side-stories that distract from your main story-arch. A good way to learn how to write understandable papers or reports is examining good examples. So, whenever you find a reference you like, and consider good in getting its message across, check how they structured their story.\r\n\r\n<br>\r\n \r\nRecommended readings \r\n{.footnote-title}\r\n\r\n \r\n\r\nIf you want to have some more guidelines on how to write a consistent research paper you may want to have a look at one of the following references.\r\n{.citation-indented}\r\n \r\nBem, D. J. (2003). Writing the empirical journal. In: Darley, J. M. et al. (Eds) (2003). The Compleat Academic: A Practical Guide for the Beginning Social Scientist, 2nd Edition. Washington, DC: American Psychological Association.\r\n{.citation-indented}\r\n\r\nNikolov, P. (2013). Writing tips for economics research papers. Harvard University.\r\n{.citation-indented}\r\n\r\nVarian, H. R. (1997). How to build an economic model in your spare time. The American Economist, pp. 3-10.\r\n{.citation-indented}', '', 'Let’s shortly look a bit more closer at how to transfer your model into a consistent story.\r\n{.lead}\r\n\r\nAs explained in the last step you can use the four phase structure presented in this course as a good guide on how to arrange your story. This structure also nicely lines up with the general hourglass structure of paper writing:\r\n\r\n![Graph showing the four modeling phases in comparison to the classic hourglass structure of paper writing](/media/markdownx/c3b8c245-0494-4050-8207-37b0624a0640.png)\r\n \r\nYou should always start and end broadly to ensure a consistent frame for your story and make it accessible to a wide audience. Motivate your research so that anyone understands why this is interesting. Provide a clear research question (your **‘Problem’**) and relate it to existing research and approaches thereby becoming more specific. In a classical paper, those are the ‘Introduction’ and ‘Literature Review’ sections.\r\n \r\nYour **‘Model’** and **‘Solution’** methods are the most specific parts and should provide sufficient detail for others to reproduce your work. They correspond to the ‘Method’ section within research papers. Those are the parts where you need to convince other modellers that your model is only wrong because it is a model and not a bad model. So make sure to provide a clear outline of your model design, assumptions, and simplifications.\r\n \r\nWith your results, you again broaden the scope. Usually, you first present your main findings followed by a discussion and interpretation. The **‘Interpretation’** will need to provide the link from your specific methods and results to the general problem you introduced. The conclusion will then close your story and should again be written in a way that anyone can understand what you have done.\r\n \r\nMake sure that you provide your readers with all the elements they need to follow your story and try to avoid opening up side-stories that distract from your main story-arch. A good way to learn how to write understandable papers or reports is examining good examples. So, whenever you find a reference you like, and consider good in getting its message across, check how they structured their story.\r\n\r\n<br>\r\n \r\nRecommended readings \r\n{.footnote-title}\r\n\r\n \r\n\r\nIf you want to have some more guidelines on how to write a consistent research paper you may want to have a look at one of the following references.\r\n{.citation-indented}\r\n \r\nBem, D. J. (2003). Writing the empirical journal. In: Darley, J. M. et al. (Eds) (2003). The Compleat Academic: A Practical Guide for the Beginning Social Scientist, 2nd Edition. Washington, DC: American Psychological Association.\r\n{.citation-indented}\r\n\r\nNikolov, P. (2013). Writing tips for economics research papers. Harvard University.\r\n{.citation-indented}\r\n\r\nVarian, H. R. (1997). How to build an economic model in your spare time. The American Economist, pp. 3-10.\r\n{.citation-indented}', '', '', '', '', '', None, None, None, None, '', '', '', '', 'TT', '', 9, 'published', False, None, None, None, None, 229), (1313, datetime.datetime(2022, 5, 5, 19, 22, 1, 920311, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 14, 1, 55, 65628, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 14, 1, 54, 993567, tzinfo=datetime.timezone.utc), False, 'Assess your knowledge', None, 'Assess your knowledge', None, '', None, None, None, 'Assess your knowledge on this course about exploring possible futures.', None, 'Assess your knowledge on this course about exploring possible futures.', None, '', 'assess-your-knowledge-4', 'Let’s see what you learned!\r\nNote: multiple answers are possible.\r\n{.lead}\r\n\r\n<iframe src="https://h5p.nmc.unibas.ch/wp-admin/admin-ajax.php?action=h5p_embed&id=325" width="885" height="379" frameborder="0" allowfullscreen="allowfullscreen" title="Energy_Economics_5_11"></iframe><script src="https://h5p.nmc.unibas.ch/wp-content/plugins/h5p/h5p-php-library/js/h5p-resizer.js" charset="UTF-8"></script>', '', 'Let’s see what you learned!\r\nNote: multiple answers are possible.\r\n{.lead}\r\n\r\n<iframe src="https://h5p.nmc.unibas.ch/wp-admin/admin-ajax.php?action=h5p_embed&id=325" width="885" height="379" frameborder="0" allowfullscreen="allowfullscreen" title="Energy_Economics_5_11"></iframe><script src="https://h5p.nmc.unibas.ch/wp-content/plugins/h5p/h5p-php-library/js/h5p-resizer.js" charset="UTF-8"></script>', '', '', '', '', '', None, None, None, None, '', '', '', '', 'TQ', '', 10, 'published', False, None, None, None, None, 229), (1315, datetime.datetime(2022, 5, 5, 19, 22, 23, 226305, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 14, 2, 40, 1933, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 14, 2, 39, 951515, tzinfo=datetime.timezone.utc), False, 'Thanks and goodbye', None, 'Thanks and goodbye', None, '', None, None, None, 'Watch Frank Krysiak and Hannes Weigt thanking you for your participation, for your involvement and saying goodbye.', None, 'Watch Frank Krysiak and Hannes Weigt thanking you for your participation, for your involvement and saying goodbye.', None, '', 'thanks-and-goodbye', 'Thank you for joining this course on modelling in environmental and energy economics. We hope you enjoyed this course as much as we did.\r\n{.lead}\r\n\r\n![embed](https://vimeo.com/734336306/27ef7bde2f)\r\n \r\nHopefully, this course has provided you with an interesting overview on the capabilities of economic models. Given the multitude of challenges we face in environmental and energy economics, economic modelling can help us to design and evaluate different policy or market designs, assess the impact of technology innovations, and estimate feedback effects to and from the environment and our society.\r\n\r\nThereby, they play a crucial role in the ongoing debates on how to transfer our energy system or improve the environmental impact of our economy. We are already embedded in this debate and we would like to welcome you onboard for shaping our own future!\r\n \r\nPlease also have a look at the [SCCR CREST Webpage](http://www.sccer-crest.ch){:target=“_blank”} which you may find interesting if you consider deepening the knowledge you hopefully gained through this course.\r\n\r\nThank you for your participation, for your involvement and goodbye!', '', 'Thank you for joining this course on modelling in environmental and energy economics. We hope you enjoyed this course as much as we did.\r\n{.lead}\r\n\r\n![embed](https://vimeo.com/734336306/27ef7bde2f)\r\n \r\nHopefully, this course has provided you with an interesting overview on the capabilities of economic models. Given the multitude of challenges we face in environmental and energy economics, economic modelling can help us to design and evaluate different policy or market designs, assess the impact of technology innovations, and estimate feedback effects to and from the environment and our society.\r\n\r\nThereby, they play a crucial role in the ongoing debates on how to transfer our energy system or improve the environmental impact of our economy. We are already embedded in this debate and we would like to welcome you onboard for shaping our own future!\r\n \r\nPlease also have a look at the [SCCR CREST Webpage](http://www.sccer-crest.ch){:target=“_blank”} which you may find interesting if you consider deepening the knowledge you hopefully gained through this course.\r\n\r\nThank you for your participation, for your involvement and goodbye!', '', '', '', '', '', None, None, None, None, '', '', '', '', 'TV', '', 12, 'published', False, None, None, None, None, 229)]])}, None) | {} | <django_redis.cache.RedisCache object at 0x7910e287a790> | |
/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in run(101) return _run_old_run_func() /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in _run_old_run_func(94) return old_run_func(self, *a, **kw) /usr/local/lib/python3.11/concurrent/futures/thread.py in _worker(83) work_item.run() /usr/local/lib/python3.11/concurrent/futures/thread.py in run(58) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56) result = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in middleware(32) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/allauth/account/middleware.py in middleware(36) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/simple_history/middleware.py in middleware(41) return get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/django_htmx/middleware.py in __call__(43) return self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in __call__(168) response = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/panels.py in process_request(41) return super(CachalotPanel, self).process_request(request) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in __call__(244) current_executor.run_until_future(call_result) /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run_until_future(81) work_item.run() /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run(40) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(90) return callback(request, *args, **kwargs) /app/project/utils/decorators.py in apply_cache(72) cache.set(CACHE_KEY, response.render(), ttl) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_patched_render(41) return old_render(self) /usr/local/lib/python3.11/site-packages/django/template/response.py in render(114) self.content = self.rendered_content /usr/local/lib/python3.11/site-packages/sentry_sdk/utils.py in runner(1788) return sentry_patched_function(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/templates.py in rendered_content(77) return real_rendered_content.fget(self) /usr/local/lib/python3.11/site-packages/django/template/response.py in rendered_content(92) return template.render(context, self._request) /usr/local/lib/python3.11/site-packages/django/template/backends/django.py in render(61) return self.template.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(175) return self._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157) return compiled_parent._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157) return compiled_parent._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63) result = block.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63) result = block.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(208) return template.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(177) return self._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(321) return nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(238) nodelist.append(node.render_annotated(context)) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(194) len_values = len(values) /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(37) return original(compiler, *args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(96) return _get_result_or_execute_query( /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in _get_result_or_execute_query(71) cache.set_many(to_be_set, cachalot_settings.CACHALOT_TIMEOUT) |
|||||
0,3078 | get_many | (['e3a5db5a670ad803efb866441f33de58309be2e2', '76e323efd8711853e13c9f7cf976845908364eb2', '138549f5508bbba7283d6a0625e51c589d845e8f', '9bd259c9db8a06e6d0f2a98fa81a1a31033b1e45'],) | {} | <django_redis.cache.RedisCache object at 0x7910e287a790> | |
/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in run(101) return _run_old_run_func() /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in _run_old_run_func(94) return old_run_func(self, *a, **kw) /usr/local/lib/python3.11/concurrent/futures/thread.py in _worker(83) work_item.run() /usr/local/lib/python3.11/concurrent/futures/thread.py in run(58) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56) result = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in middleware(32) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/allauth/account/middleware.py in middleware(36) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/simple_history/middleware.py in middleware(41) return get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/django_htmx/middleware.py in __call__(43) return self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in __call__(168) response = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/panels.py in process_request(41) return super(CachalotPanel, self).process_request(request) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in __call__(244) current_executor.run_until_future(call_result) /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run_until_future(81) work_item.run() /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run(40) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(90) return callback(request, *args, **kwargs) /app/project/utils/decorators.py in apply_cache(72) cache.set(CACHE_KEY, response.render(), ttl) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_patched_render(41) return old_render(self) /usr/local/lib/python3.11/site-packages/django/template/response.py in render(114) self.content = self.rendered_content /usr/local/lib/python3.11/site-packages/sentry_sdk/utils.py in runner(1788) return sentry_patched_function(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/templates.py in rendered_content(77) return real_rendered_content.fget(self) /usr/local/lib/python3.11/site-packages/django/template/response.py in rendered_content(92) return template.render(context, self._request) /usr/local/lib/python3.11/site-packages/django/template/backends/django.py in render(61) return self.template.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(175) return self._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157) return compiled_parent._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157) return compiled_parent._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63) result = block.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63) result = block.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(541) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/library.py in render(237) output = self.func(*resolved_args, **resolved_kwargs) /app/project/lms_base/templatetags/utils.py in get_next_step(128) return step.get_next(published_only=True) /app/project/lms_base/models.py in get_next(249) return self._get_neighbour_step(is_next=True, published_only=published_only) /app/project/lms_base/models.py in _get_neighbour_step(201) step = self.__class__.next_previous_manager.get_next_previous( /app/project/lms_base/models.py in get_next_previous(71) return qs.first() /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(37) return original(compiler, *args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(96) return _get_result_or_execute_query( /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in _get_result_or_execute_query(46) data = cache.get_many(table_cache_keys + [cache_key]) |
|||||
0,3558 | set_many | ({'9bd259c9db8a06e6d0f2a98fa81a1a31033b1e45': (1736881791.6889398, [[(1312, datetime.datetime(2022, 5, 5, 19, 21, 45, 107741, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 14, 0, 20, 928468, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 14, 0, 20, 878444, tzinfo=datetime.timezone.utc), False, 'From story to paper', None, 'From story to paper', None, '', None, None, None, 'Learn how to transfer the elements of your story into an understandable research paper.', None, 'Learn how to transfer the elements of your story into an understandable research paper.', None, '', 'from-story-to-paper', 'Let’s shortly look a bit more closer at how to transfer your model into a consistent story.\r\n{.lead}\r\n\r\nAs explained in the last step you can use the four phase structure presented in this course as a good guide on how to arrange your story. This structure also nicely lines up with the general hourglass structure of paper writing:\r\n\r\n![Graph showing the four modeling phases in comparison to the classic hourglass structure of paper writing](/media/markdownx/c3b8c245-0494-4050-8207-37b0624a0640.png)\r\n \r\nYou should always start and end broadly to ensure a consistent frame for your story and make it accessible to a wide audience. Motivate your research so that anyone understands why this is interesting. Provide a clear research question (your **‘Problem’**) and relate it to existing research and approaches thereby becoming more specific. In a classical paper, those are the ‘Introduction’ and ‘Literature Review’ sections.\r\n \r\nYour **‘Model’** and **‘Solution’** methods are the most specific parts and should provide sufficient detail for others to reproduce your work. They correspond to the ‘Method’ section within research papers. Those are the parts where you need to convince other modellers that your model is only wrong because it is a model and not a bad model. So make sure to provide a clear outline of your model design, assumptions, and simplifications.\r\n \r\nWith your results, you again broaden the scope. Usually, you first present your main findings followed by a discussion and interpretation. The **‘Interpretation’** will need to provide the link from your specific methods and results to the general problem you introduced. The conclusion will then close your story and should again be written in a way that anyone can understand what you have done.\r\n \r\nMake sure that you provide your readers with all the elements they need to follow your story and try to avoid opening up side-stories that distract from your main story-arch. A good way to learn how to write understandable papers or reports is examining good examples. So, whenever you find a reference you like, and consider good in getting its message across, check how they structured their story.\r\n\r\n<br>\r\n \r\nRecommended readings \r\n{.footnote-title}\r\n\r\n \r\n\r\nIf you want to have some more guidelines on how to write a consistent research paper you may want to have a look at one of the following references.\r\n{.citation-indented}\r\n \r\nBem, D. J. (2003). Writing the empirical journal. In: Darley, J. M. et al. (Eds) (2003). The Compleat Academic: A Practical Guide for the Beginning Social Scientist, 2nd Edition. Washington, DC: American Psychological Association.\r\n{.citation-indented}\r\n\r\nNikolov, P. (2013). Writing tips for economics research papers. Harvard University.\r\n{.citation-indented}\r\n\r\nVarian, H. R. (1997). How to build an economic model in your spare time. The American Economist, pp. 3-10.\r\n{.citation-indented}', '', 'Let’s shortly look a bit more closer at how to transfer your model into a consistent story.\r\n{.lead}\r\n\r\nAs explained in the last step you can use the four phase structure presented in this course as a good guide on how to arrange your story. This structure also nicely lines up with the general hourglass structure of paper writing:\r\n\r\n![Graph showing the four modeling phases in comparison to the classic hourglass structure of paper writing](/media/markdownx/c3b8c245-0494-4050-8207-37b0624a0640.png)\r\n \r\nYou should always start and end broadly to ensure a consistent frame for your story and make it accessible to a wide audience. Motivate your research so that anyone understands why this is interesting. Provide a clear research question (your **‘Problem’**) and relate it to existing research and approaches thereby becoming more specific. In a classical paper, those are the ‘Introduction’ and ‘Literature Review’ sections.\r\n \r\nYour **‘Model’** and **‘Solution’** methods are the most specific parts and should provide sufficient detail for others to reproduce your work. They correspond to the ‘Method’ section within research papers. Those are the parts where you need to convince other modellers that your model is only wrong because it is a model and not a bad model. So make sure to provide a clear outline of your model design, assumptions, and simplifications.\r\n \r\nWith your results, you again broaden the scope. Usually, you first present your main findings followed by a discussion and interpretation. The **‘Interpretation’** will need to provide the link from your specific methods and results to the general problem you introduced. The conclusion will then close your story and should again be written in a way that anyone can understand what you have done.\r\n \r\nMake sure that you provide your readers with all the elements they need to follow your story and try to avoid opening up side-stories that distract from your main story-arch. A good way to learn how to write understandable papers or reports is examining good examples. So, whenever you find a reference you like, and consider good in getting its message across, check how they structured their story.\r\n\r\n<br>\r\n \r\nRecommended readings \r\n{.footnote-title}\r\n\r\n \r\n\r\nIf you want to have some more guidelines on how to write a consistent research paper you may want to have a look at one of the following references.\r\n{.citation-indented}\r\n \r\nBem, D. J. (2003). Writing the empirical journal. In: Darley, J. M. et al. (Eds) (2003). The Compleat Academic: A Practical Guide for the Beginning Social Scientist, 2nd Edition. Washington, DC: American Psychological Association.\r\n{.citation-indented}\r\n\r\nNikolov, P. (2013). Writing tips for economics research papers. Harvard University.\r\n{.citation-indented}\r\n\r\nVarian, H. R. (1997). How to build an economic model in your spare time. The American Economist, pp. 3-10.\r\n{.citation-indented}', '', '', '', '', '', None, None, None, None, '', '', '', '', 'TT', '', 9, 'published', False, None, None, None, None, 229)]])}, None) | {} | <django_redis.cache.RedisCache object at 0x7910e287a790> | |
/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in run(101) return _run_old_run_func() /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in _run_old_run_func(94) return old_run_func(self, *a, **kw) /usr/local/lib/python3.11/concurrent/futures/thread.py in _worker(83) work_item.run() /usr/local/lib/python3.11/concurrent/futures/thread.py in run(58) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56) result = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in middleware(32) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/allauth/account/middleware.py in middleware(36) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/simple_history/middleware.py in middleware(41) return get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/django_htmx/middleware.py in __call__(43) return self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in __call__(168) response = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/panels.py in process_request(41) return super(CachalotPanel, self).process_request(request) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in __call__(244) current_executor.run_until_future(call_result) /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run_until_future(81) work_item.run() /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run(40) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(90) return callback(request, *args, **kwargs) /app/project/utils/decorators.py in apply_cache(72) cache.set(CACHE_KEY, response.render(), ttl) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_patched_render(41) return old_render(self) /usr/local/lib/python3.11/site-packages/django/template/response.py in render(114) self.content = self.rendered_content /usr/local/lib/python3.11/site-packages/sentry_sdk/utils.py in runner(1788) return sentry_patched_function(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/templates.py in rendered_content(77) return real_rendered_content.fget(self) /usr/local/lib/python3.11/site-packages/django/template/response.py in rendered_content(92) return template.render(context, self._request) /usr/local/lib/python3.11/site-packages/django/template/backends/django.py in render(61) return self.template.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(175) return self._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157) return compiled_parent._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157) return compiled_parent._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63) result = block.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63) result = block.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(541) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/library.py in render(237) output = self.func(*resolved_args, **resolved_kwargs) /app/project/lms_base/templatetags/utils.py in get_next_step(128) return step.get_next(published_only=True) /app/project/lms_base/models.py in get_next(249) return self._get_neighbour_step(is_next=True, published_only=published_only) /app/project/lms_base/models.py in _get_neighbour_step(201) step = self.__class__.next_previous_manager.get_next_previous( /app/project/lms_base/models.py in get_next_previous(71) return qs.first() /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(37) return original(compiler, *args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(96) return _get_result_or_execute_query( /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in _get_result_or_execute_query(71) cache.set_many(to_be_set, cachalot_settings.CACHALOT_TIMEOUT) |
|||||
0,2689 | get_many | (['e3a5db5a670ad803efb866441f33de58309be2e2', '76e323efd8711853e13c9f7cf976845908364eb2', '138549f5508bbba7283d6a0625e51c589d845e8f', '16ffbb038db4553653cd7195e6100af4ba15f93f'],) | {} | <django_redis.cache.RedisCache object at 0x7910e287a790> | |
/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in run(101) return _run_old_run_func() /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in _run_old_run_func(94) return old_run_func(self, *a, **kw) /usr/local/lib/python3.11/concurrent/futures/thread.py in _worker(83) work_item.run() /usr/local/lib/python3.11/concurrent/futures/thread.py in run(58) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56) result = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in middleware(32) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/allauth/account/middleware.py in middleware(36) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/simple_history/middleware.py in middleware(41) return get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/django_htmx/middleware.py in __call__(43) return self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in __call__(168) response = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/panels.py in process_request(41) return super(CachalotPanel, self).process_request(request) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in __call__(244) current_executor.run_until_future(call_result) /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run_until_future(81) work_item.run() /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run(40) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(90) return callback(request, *args, **kwargs) /app/project/utils/decorators.py in apply_cache(72) cache.set(CACHE_KEY, response.render(), ttl) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_patched_render(41) return old_render(self) /usr/local/lib/python3.11/site-packages/django/template/response.py in render(114) self.content = self.rendered_content /usr/local/lib/python3.11/site-packages/sentry_sdk/utils.py in runner(1788) return sentry_patched_function(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/templates.py in rendered_content(77) return real_rendered_content.fget(self) /usr/local/lib/python3.11/site-packages/django/template/response.py in rendered_content(92) return template.render(context, self._request) /usr/local/lib/python3.11/site-packages/django/template/backends/django.py in render(61) return self.template.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(175) return self._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157) return compiled_parent._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157) return compiled_parent._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63) result = block.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63) result = block.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(541) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/library.py in render(237) output = self.func(*resolved_args, **resolved_kwargs) /app/project/lms_base/templatetags/utils.py in get_previous_step(105) return step.get_previous(published_only=True) /app/project/lms_base/models.py in get_previous(255) return self._get_neighbour_step(is_next=False, published_only=published_only) /app/project/lms_base/models.py in _get_neighbour_step(201) step = self.__class__.next_previous_manager.get_next_previous( /app/project/lms_base/models.py in get_next_previous(72) return qs.last() /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(37) return original(compiler, *args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(96) return _get_result_or_execute_query( /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in _get_result_or_execute_query(46) data = cache.get_many(table_cache_keys + [cache_key]) |
|||||
0,2606 | set_many | ({'16ffbb038db4553653cd7195e6100af4ba15f93f': (1736881791.6954875, [[(1310, datetime.datetime(2022, 5, 5, 19, 21, 25, 855061, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 13, 58, 44, 403269, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 13, 58, 44, 350527, tzinfo=datetime.timezone.utc), False, 'Our futures', None, 'Our futures', None, '', None, None, None, 'Watch Frank Krysiak and Hannes Weigt presenting their own choices for the future of the example system.', None, 'Watch Frank Krysiak and Hannes Weigt presenting their own choices for the future of the example system.', None, '', 'our-futures', 'You were not the only one tasked to design a policy system for our example market. We did the same.\r\n{.lead}\r\n\r\n![embed](https://vimeo.com/734336820/3d482871db)\r\n\r\n \r\nSo watch how Frank Krysiak is designing a system focused on internalising external costs while Hannes Weigt aims to support renewables today to get a payoff in the future.\r\n \r\nWhat do you think of our two policy sets?', '', 'You were not the only one tasked to design a policy system for our example market. We did the same.\r\n{.lead}\r\n\r\n![embed](https://vimeo.com/734336820/3d482871db)\r\n\r\n \r\nSo watch how Frank Krysiak is designing a system focused on internalising external costs while Hannes Weigt aims to support renewables today to get a payoff in the future.\r\n \r\nWhat do you think of our two policy sets?', '', '', '', '', '', None, None, None, None, '', '', '', '', 'TV', '', 7, 'published', False, None, None, None, None, 229)]])}, None) | {} | <django_redis.cache.RedisCache object at 0x7910e287a790> | |
/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in run(101) return _run_old_run_func() /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in _run_old_run_func(94) return old_run_func(self, *a, **kw) /usr/local/lib/python3.11/concurrent/futures/thread.py in _worker(83) work_item.run() /usr/local/lib/python3.11/concurrent/futures/thread.py in run(58) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56) result = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in middleware(32) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/allauth/account/middleware.py in middleware(36) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/simple_history/middleware.py in middleware(41) return get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/django_htmx/middleware.py in __call__(43) return self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in __call__(168) response = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/panels.py in process_request(41) return super(CachalotPanel, self).process_request(request) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in __call__(244) current_executor.run_until_future(call_result) /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run_until_future(81) work_item.run() /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run(40) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(90) return callback(request, *args, **kwargs) /app/project/utils/decorators.py in apply_cache(72) cache.set(CACHE_KEY, response.render(), ttl) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_patched_render(41) return old_render(self) /usr/local/lib/python3.11/site-packages/django/template/response.py in render(114) self.content = self.rendered_content /usr/local/lib/python3.11/site-packages/sentry_sdk/utils.py in runner(1788) return sentry_patched_function(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/templates.py in rendered_content(77) return real_rendered_content.fget(self) /usr/local/lib/python3.11/site-packages/django/template/response.py in rendered_content(92) return template.render(context, self._request) /usr/local/lib/python3.11/site-packages/django/template/backends/django.py in render(61) return self.template.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(175) return self._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157) return compiled_parent._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157) return compiled_parent._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63) result = block.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63) result = block.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(541) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/library.py in render(237) output = self.func(*resolved_args, **resolved_kwargs) /app/project/lms_base/templatetags/utils.py in get_previous_step(105) return step.get_previous(published_only=True) /app/project/lms_base/models.py in get_previous(255) return self._get_neighbour_step(is_next=False, published_only=published_only) /app/project/lms_base/models.py in _get_neighbour_step(201) step = self.__class__.next_previous_manager.get_next_previous( /app/project/lms_base/models.py in get_next_previous(72) return qs.last() /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(37) return original(compiler, *args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(96) return _get_result_or_execute_query( /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in _get_result_or_execute_query(71) cache.set_many(to_be_set, cachalot_settings.CACHALOT_TIMEOUT) |
|||||
0,2406 | get_many | (['e3a5db5a670ad803efb866441f33de58309be2e2', '53169bc24a037802f3e42b2df3d6e48b7ae8482f', '542c27005f4e84288827ce70a7d49bc73324a5e7', '46b014659328adf495daf4dffae82eb17fdee2b5'],) | {} | <django_redis.cache.RedisCache object at 0x7910e287a790> | |
/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in run(101) return _run_old_run_func() /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in _run_old_run_func(94) return old_run_func(self, *a, **kw) /usr/local/lib/python3.11/concurrent/futures/thread.py in _worker(83) work_item.run() /usr/local/lib/python3.11/concurrent/futures/thread.py in run(58) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56) result = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in middleware(32) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/allauth/account/middleware.py in middleware(36) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/simple_history/middleware.py in middleware(41) return get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/django_htmx/middleware.py in __call__(43) return self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in __call__(168) response = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/panels.py in process_request(41) return super(CachalotPanel, self).process_request(request) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in __call__(244) current_executor.run_until_future(call_result) /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run_until_future(81) work_item.run() /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run(40) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(90) return callback(request, *args, **kwargs) /app/project/utils/decorators.py in apply_cache(72) cache.set(CACHE_KEY, response.render(), ttl) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_patched_render(41) return old_render(self) /usr/local/lib/python3.11/site-packages/django/template/response.py in render(114) self.content = self.rendered_content /usr/local/lib/python3.11/site-packages/sentry_sdk/utils.py in runner(1788) return sentry_patched_function(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/templates.py in rendered_content(77) return real_rendered_content.fget(self) /usr/local/lib/python3.11/site-packages/django/template/response.py in rendered_content(92) return template.render(context, self._request) /usr/local/lib/python3.11/site-packages/django/template/backends/django.py in render(61) return self.template.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(175) return self._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157) return compiled_parent._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157) return compiled_parent._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63) result = block.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63) result = block.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(541) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/library.py in render(237) output = self.func(*resolved_args, **resolved_kwargs) /usr/local/lib/python3.11/site-packages/rules/templatetags/rules.py in has_perm(18) return user.has_perm(perm, obj) /usr/local/lib/python3.11/site-packages/django/contrib/auth/models.py in has_perm(480) return _user_has_perm(self, perm, obj=obj) /usr/local/lib/python3.11/site-packages/django/contrib/auth/models.py in _user_has_perm(220) if backend.has_perm(user, perm, obj): /usr/local/lib/python3.11/site-packages/rules/permissions.py in has_perm(31) return has_perm(perm, user, *args, **kwargs) /usr/local/lib/python3.11/site-packages/rules/permissions.py in has_perm(23) return permissions.test_rule(name, *args, **kwargs) /usr/local/lib/python3.11/site-packages/rules/rulesets.py in test_rule(6) return name in self and self[name].test(*args, **kwargs) /usr/local/lib/python3.11/site-packages/rules/predicates.py in test(172) return bool(self._apply(*args)) /usr/local/lib/python3.11/site-packages/rules/predicates.py in _apply(235) result = self.fn(*callargs) /usr/local/lib/python3.11/site-packages/rules/predicates.py in OR(184) return self._combine(other, operator.or_, args) /usr/local/lib/python3.11/site-packages/rules/predicates.py in _combine(206) self_result = self._apply(*args) /usr/local/lib/python3.11/site-packages/rules/predicates.py in _apply(235) result = self.fn(*callargs) /app/project/lms_tales/rules.py in is_in_group(47) for owner in course.owner.all(): /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(37) return original(compiler, *args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(96) return _get_result_or_execute_query( /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in _get_result_or_execute_query(46) data = cache.get_many(table_cache_keys + [cache_key]) |
|||||
0,2193 | set_many | ({'46b014659328adf495daf4dffae82eb17fdee2b5': (1736881791.7010083, [[(3, 'nmc_staff')]])}, None) | {} | <django_redis.cache.RedisCache object at 0x7910e287a790> | |
/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in run(101) return _run_old_run_func() /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in _run_old_run_func(94) return old_run_func(self, *a, **kw) /usr/local/lib/python3.11/concurrent/futures/thread.py in _worker(83) work_item.run() /usr/local/lib/python3.11/concurrent/futures/thread.py in run(58) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56) result = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in middleware(32) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/allauth/account/middleware.py in middleware(36) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/simple_history/middleware.py in middleware(41) return get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/django_htmx/middleware.py in __call__(43) return self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in __call__(168) response = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/panels.py in process_request(41) return super(CachalotPanel, self).process_request(request) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in __call__(244) current_executor.run_until_future(call_result) /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run_until_future(81) work_item.run() /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run(40) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(90) return callback(request, *args, **kwargs) /app/project/utils/decorators.py in apply_cache(72) cache.set(CACHE_KEY, response.render(), ttl) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_patched_render(41) return old_render(self) /usr/local/lib/python3.11/site-packages/django/template/response.py in render(114) self.content = self.rendered_content /usr/local/lib/python3.11/site-packages/sentry_sdk/utils.py in runner(1788) return sentry_patched_function(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/templates.py in rendered_content(77) return real_rendered_content.fget(self) /usr/local/lib/python3.11/site-packages/django/template/response.py in rendered_content(92) return template.render(context, self._request) /usr/local/lib/python3.11/site-packages/django/template/backends/django.py in render(61) return self.template.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(175) return self._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157) return compiled_parent._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157) return compiled_parent._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63) result = block.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63) result = block.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(541) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/library.py in render(237) output = self.func(*resolved_args, **resolved_kwargs) /usr/local/lib/python3.11/site-packages/rules/templatetags/rules.py in has_perm(18) return user.has_perm(perm, obj) /usr/local/lib/python3.11/site-packages/django/contrib/auth/models.py in has_perm(480) return _user_has_perm(self, perm, obj=obj) /usr/local/lib/python3.11/site-packages/django/contrib/auth/models.py in _user_has_perm(220) if backend.has_perm(user, perm, obj): /usr/local/lib/python3.11/site-packages/rules/permissions.py in has_perm(31) return has_perm(perm, user, *args, **kwargs) /usr/local/lib/python3.11/site-packages/rules/permissions.py in has_perm(23) return permissions.test_rule(name, *args, **kwargs) /usr/local/lib/python3.11/site-packages/rules/rulesets.py in test_rule(6) return name in self and self[name].test(*args, **kwargs) /usr/local/lib/python3.11/site-packages/rules/predicates.py in test(172) return bool(self._apply(*args)) /usr/local/lib/python3.11/site-packages/rules/predicates.py in _apply(235) result = self.fn(*callargs) /usr/local/lib/python3.11/site-packages/rules/predicates.py in OR(184) return self._combine(other, operator.or_, args) /usr/local/lib/python3.11/site-packages/rules/predicates.py in _combine(206) self_result = self._apply(*args) /usr/local/lib/python3.11/site-packages/rules/predicates.py in _apply(235) result = self.fn(*callargs) /app/project/lms_tales/rules.py in is_in_group(47) for owner in course.owner.all(): /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(37) return original(compiler, *args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(96) return _get_result_or_execute_query( /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in _get_result_or_execute_query(71) cache.set_many(to_be_set, cachalot_settings.CACHALOT_TIMEOUT) |
|||||
0,2346 | get_many | (['e3a5db5a670ad803efb866441f33de58309be2e2', '53169bc24a037802f3e42b2df3d6e48b7ae8482f', '542c27005f4e84288827ce70a7d49bc73324a5e7', '46b014659328adf495daf4dffae82eb17fdee2b5'],) | {} | <django_redis.cache.RedisCache object at 0x7910e287a790> | |
/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in run(101) return _run_old_run_func() /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in _run_old_run_func(94) return old_run_func(self, *a, **kw) /usr/local/lib/python3.11/concurrent/futures/thread.py in _worker(83) work_item.run() /usr/local/lib/python3.11/concurrent/futures/thread.py in run(58) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56) result = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in middleware(32) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/allauth/account/middleware.py in middleware(36) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/simple_history/middleware.py in middleware(41) return get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/django_htmx/middleware.py in __call__(43) return self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in __call__(168) response = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/panels.py in process_request(41) return super(CachalotPanel, self).process_request(request) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in __call__(244) current_executor.run_until_future(call_result) /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run_until_future(81) work_item.run() /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run(40) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(90) return callback(request, *args, **kwargs) /app/project/utils/decorators.py in apply_cache(72) cache.set(CACHE_KEY, response.render(), ttl) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_patched_render(41) return old_render(self) /usr/local/lib/python3.11/site-packages/django/template/response.py in render(114) self.content = self.rendered_content /usr/local/lib/python3.11/site-packages/sentry_sdk/utils.py in runner(1788) return sentry_patched_function(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/templates.py in rendered_content(77) return real_rendered_content.fget(self) /usr/local/lib/python3.11/site-packages/django/template/response.py in rendered_content(92) return template.render(context, self._request) /usr/local/lib/python3.11/site-packages/django/template/backends/django.py in render(61) return self.template.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(175) return self._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157) return compiled_parent._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157) return compiled_parent._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63) result = block.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63) result = block.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(541) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/library.py in render(237) output = self.func(*resolved_args, **resolved_kwargs) /usr/local/lib/python3.11/site-packages/rules/templatetags/rules.py in has_perm(18) return user.has_perm(perm, obj) /usr/local/lib/python3.11/site-packages/django/contrib/auth/models.py in has_perm(480) return _user_has_perm(self, perm, obj=obj) /usr/local/lib/python3.11/site-packages/django/contrib/auth/models.py in _user_has_perm(220) if backend.has_perm(user, perm, obj): /usr/local/lib/python3.11/site-packages/rules/permissions.py in has_perm(31) return has_perm(perm, user, *args, **kwargs) /usr/local/lib/python3.11/site-packages/rules/permissions.py in has_perm(23) return permissions.test_rule(name, *args, **kwargs) /usr/local/lib/python3.11/site-packages/rules/rulesets.py in test_rule(6) return name in self and self[name].test(*args, **kwargs) /usr/local/lib/python3.11/site-packages/rules/predicates.py in test(172) return bool(self._apply(*args)) /usr/local/lib/python3.11/site-packages/rules/predicates.py in _apply(235) result = self.fn(*callargs) /usr/local/lib/python3.11/site-packages/rules/predicates.py in OR(184) return self._combine(other, operator.or_, args) /usr/local/lib/python3.11/site-packages/rules/predicates.py in _combine(206) self_result = self._apply(*args) /usr/local/lib/python3.11/site-packages/rules/predicates.py in _apply(235) result = self.fn(*callargs) /app/project/lms_tales/rules.py in is_in_group(47) for owner in course.owner.all(): /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(37) return original(compiler, *args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(96) return _get_result_or_execute_query( /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in _get_result_or_execute_query(46) data = cache.get_many(table_cache_keys + [cache_key]) |
|||||
0,2394 | get_many | (['e3a5db5a670ad803efb866441f33de58309be2e2', '53169bc24a037802f3e42b2df3d6e48b7ae8482f', '542c27005f4e84288827ce70a7d49bc73324a5e7', '46b014659328adf495daf4dffae82eb17fdee2b5'],) | {} | <django_redis.cache.RedisCache object at 0x7910e287a790> | |
/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in run(101) return _run_old_run_func() /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in _run_old_run_func(94) return old_run_func(self, *a, **kw) /usr/local/lib/python3.11/concurrent/futures/thread.py in _worker(83) work_item.run() /usr/local/lib/python3.11/concurrent/futures/thread.py in run(58) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56) result = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in middleware(32) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/allauth/account/middleware.py in middleware(36) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/simple_history/middleware.py in middleware(41) return get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/django_htmx/middleware.py in __call__(43) return self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in __call__(168) response = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/panels.py in process_request(41) return super(CachalotPanel, self).process_request(request) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in __call__(244) current_executor.run_until_future(call_result) /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run_until_future(81) work_item.run() /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run(40) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(90) return callback(request, *args, **kwargs) /app/project/utils/decorators.py in apply_cache(72) cache.set(CACHE_KEY, response.render(), ttl) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_patched_render(41) return old_render(self) /usr/local/lib/python3.11/site-packages/django/template/response.py in render(114) self.content = self.rendered_content /usr/local/lib/python3.11/site-packages/sentry_sdk/utils.py in runner(1788) return sentry_patched_function(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/templates.py in rendered_content(77) return real_rendered_content.fget(self) /usr/local/lib/python3.11/site-packages/django/template/response.py in rendered_content(92) return template.render(context, self._request) /usr/local/lib/python3.11/site-packages/django/template/backends/django.py in render(61) return self.template.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(175) return self._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157) return compiled_parent._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157) return compiled_parent._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63) result = block.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63) result = block.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(541) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/library.py in render(237) output = self.func(*resolved_args, **resolved_kwargs) /usr/local/lib/python3.11/site-packages/rules/templatetags/rules.py in has_perm(18) return user.has_perm(perm, obj) /usr/local/lib/python3.11/site-packages/django/contrib/auth/models.py in has_perm(480) return _user_has_perm(self, perm, obj=obj) /usr/local/lib/python3.11/site-packages/django/contrib/auth/models.py in _user_has_perm(220) if backend.has_perm(user, perm, obj): /usr/local/lib/python3.11/site-packages/rules/permissions.py in has_perm(31) return has_perm(perm, user, *args, **kwargs) /usr/local/lib/python3.11/site-packages/rules/permissions.py in has_perm(23) return permissions.test_rule(name, *args, **kwargs) /usr/local/lib/python3.11/site-packages/rules/rulesets.py in test_rule(6) return name in self and self[name].test(*args, **kwargs) /usr/local/lib/python3.11/site-packages/rules/predicates.py in test(172) return bool(self._apply(*args)) /usr/local/lib/python3.11/site-packages/rules/predicates.py in _apply(235) result = self.fn(*callargs) /usr/local/lib/python3.11/site-packages/rules/predicates.py in OR(184) return self._combine(other, operator.or_, args) /usr/local/lib/python3.11/site-packages/rules/predicates.py in _combine(206) self_result = self._apply(*args) /usr/local/lib/python3.11/site-packages/rules/predicates.py in _apply(235) result = self.fn(*callargs) /app/project/lms_tales/rules.py in is_in_group(47) for owner in course.owner.all(): /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(37) return original(compiler, *args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(96) return _get_result_or_execute_query( /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in _get_result_or_execute_query(46) data = cache.get_many(table_cache_keys + [cache_key]) |
|||||
0,1884 | get | ('waffle:4.1.0f1f61030d824f38a8926961f0e221887',) | {} | <django_redis.cache.RedisCache object at 0x7910e287a790> | |
/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in run(101) return _run_old_run_func() /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in _run_old_run_func(94) return old_run_func(self, *a, **kw) /usr/local/lib/python3.11/concurrent/futures/thread.py in _worker(83) work_item.run() /usr/local/lib/python3.11/concurrent/futures/thread.py in run(58) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56) result = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in middleware(32) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/allauth/account/middleware.py in middleware(36) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/simple_history/middleware.py in middleware(41) return get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/django_htmx/middleware.py in __call__(43) return self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in __call__(168) response = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/panels.py in process_request(41) return super(CachalotPanel, self).process_request(request) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in __call__(244) current_executor.run_until_future(call_result) /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run_until_future(81) work_item.run() /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run(40) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(90) return callback(request, *args, **kwargs) /app/project/utils/decorators.py in apply_cache(72) cache.set(CACHE_KEY, response.render(), ttl) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_patched_render(41) return old_render(self) /usr/local/lib/python3.11/site-packages/django/template/response.py in render(114) self.content = self.rendered_content /usr/local/lib/python3.11/site-packages/sentry_sdk/utils.py in runner(1788) return sentry_patched_function(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/templates.py in rendered_content(77) return real_rendered_content.fget(self) /usr/local/lib/python3.11/site-packages/django/template/response.py in rendered_content(92) return template.render(context, self._request) /usr/local/lib/python3.11/site-packages/django/template/backends/django.py in render(61) return self.template.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(175) return self._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157) return compiled_parent._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157) return compiled_parent._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63) result = block.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63) result = block.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(541) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/waffle/templatetags/waffle_tags.py in render(36) if self.condition(context.get('request', None), name): /usr/local/lib/python3.11/site-packages/waffle/__init__.py in flag_is_active(19) flag = get_waffle_flag_model().get(flag_name) /usr/local/lib/python3.11/site-packages/waffle/models.py in get(52) cached = cache.get(cache_key) |
|||||
0,2768 | add | ('waffle:4.1.0f1f61030d824f38a8926961f0e221887', <Flag: show_language_warning>) | {} | <django_redis.cache.RedisCache object at 0x7910e287a790> | |
/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in run(101) return _run_old_run_func() /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in _run_old_run_func(94) return old_run_func(self, *a, **kw) /usr/local/lib/python3.11/concurrent/futures/thread.py in _worker(83) work_item.run() /usr/local/lib/python3.11/concurrent/futures/thread.py in run(58) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56) result = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in middleware(32) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/allauth/account/middleware.py in middleware(36) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/simple_history/middleware.py in middleware(41) return get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/django_htmx/middleware.py in __call__(43) return self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in __call__(168) response = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/panels.py in process_request(41) return super(CachalotPanel, self).process_request(request) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in __call__(244) current_executor.run_until_future(call_result) /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run_until_future(81) work_item.run() /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run(40) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(90) return callback(request, *args, **kwargs) /app/project/utils/decorators.py in apply_cache(72) cache.set(CACHE_KEY, response.render(), ttl) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_patched_render(41) return old_render(self) /usr/local/lib/python3.11/site-packages/django/template/response.py in render(114) self.content = self.rendered_content /usr/local/lib/python3.11/site-packages/sentry_sdk/utils.py in runner(1788) return sentry_patched_function(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/templates.py in rendered_content(77) return real_rendered_content.fget(self) /usr/local/lib/python3.11/site-packages/django/template/response.py in rendered_content(92) return template.render(context, self._request) /usr/local/lib/python3.11/site-packages/django/template/backends/django.py in render(61) return self.template.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(175) return self._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157) return compiled_parent._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157) return compiled_parent._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63) result = block.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63) result = block.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(541) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/waffle/templatetags/waffle_tags.py in render(36) if self.condition(context.get('request', None), name): /usr/local/lib/python3.11/site-packages/waffle/__init__.py in flag_is_active(19) flag = get_waffle_flag_model().get(flag_name) /usr/local/lib/python3.11/site-packages/waffle/models.py in get(64) cache.add(cache_key, obj) |
|||||
0,2412 | get_many | (['e3a5db5a670ad803efb866441f33de58309be2e2', '76e323efd8711853e13c9f7cf976845908364eb2', '0fca027ac8b1e71089a43ecc2d0e2c8376872594'],) | {} | <django_redis.cache.RedisCache object at 0x7910e287a790> | |
/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in run(101) return _run_old_run_func() /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in _run_old_run_func(94) return old_run_func(self, *a, **kw) /usr/local/lib/python3.11/concurrent/futures/thread.py in _worker(83) work_item.run() /usr/local/lib/python3.11/concurrent/futures/thread.py in run(58) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56) result = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in middleware(32) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/allauth/account/middleware.py in middleware(36) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/simple_history/middleware.py in middleware(41) return get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/django_htmx/middleware.py in __call__(43) return self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in __call__(168) response = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/panels.py in process_request(41) return super(CachalotPanel, self).process_request(request) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in __call__(244) current_executor.run_until_future(call_result) /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run_until_future(81) work_item.run() /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run(40) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(90) return callback(request, *args, **kwargs) /app/project/utils/decorators.py in apply_cache(72) cache.set(CACHE_KEY, response.render(), ttl) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_patched_render(41) return old_render(self) /usr/local/lib/python3.11/site-packages/django/template/response.py in render(114) self.content = self.rendered_content /usr/local/lib/python3.11/site-packages/sentry_sdk/utils.py in runner(1788) return sentry_patched_function(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/templates.py in rendered_content(77) return real_rendered_content.fget(self) /usr/local/lib/python3.11/site-packages/django/template/response.py in rendered_content(92) return template.render(context, self._request) /usr/local/lib/python3.11/site-packages/django/template/backends/django.py in render(61) return self.template.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(175) return self._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157) return compiled_parent._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157) return compiled_parent._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63) result = block.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63) result = block.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(541) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63) result = block.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1064) output = self.filter_expression.resolve(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in resolve(715) obj = self.var.resolve(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in resolve(847) value = self._resolve_lookup(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in _resolve_lookup(914) current = current() /app/project/lms_tales/models.py in get_step_number(107) chapter_list = list( /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(37) return original(compiler, *args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(96) return _get_result_or_execute_query( /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in _get_result_or_execute_query(46) data = cache.get_many(table_cache_keys + [cache_key]) |
|||||
0,2670 | set_many | ({'0fca027ac8b1e71089a43ecc2d0e2c8376872594': (1736881791.7157154, [[(225, datetime.datetime(2022, 5, 5, 14, 20, 16, 172671, tzinfo=datetime.timezone.utc), datetime.datetime(2022, 5, 5, 14, 25, 13, 631521, tzinfo=datetime.timezone.utc), datetime.datetime(2022, 5, 5, 14, 25, 13, 605572, tzinfo=datetime.timezone.utc), False, 'Introduction on modeling', None, 'Introduction on modeling', None, 'introduction-on-modeling', 0, 'published', 44), (226, datetime.datetime(2022, 5, 5, 14, 20, 41, 654049, tzinfo=datetime.timezone.utc), datetime.datetime(2022, 5, 5, 14, 20, 41, 679212, tzinfo=datetime.timezone.utc), datetime.datetime(2022, 5, 5, 14, 20, 41, 654065, tzinfo=datetime.timezone.utc), False, 'System perspective', None, 'System perspective', None, 'system-perspective', 1, 'published', 44), (227, datetime.datetime(2022, 5, 5, 14, 21, 6, 541202, tzinfo=datetime.timezone.utc), datetime.datetime(2022, 5, 5, 14, 21, 6, 575174, tzinfo=datetime.timezone.utc), datetime.datetime(2022, 5, 5, 14, 21, 6, 541217, tzinfo=datetime.timezone.utc), False, 'Firm perspective', None, 'Firm perspective', None, 'firm-perspective', 2, 'published', 44), (228, datetime.datetime(2022, 5, 5, 14, 21, 27, 785933, tzinfo=datetime.timezone.utc), datetime.datetime(2022, 5, 5, 14, 22, 35, 912334, tzinfo=datetime.timezone.utc), datetime.datetime(2022, 5, 5, 14, 22, 35, 888771, tzinfo=datetime.timezone.utc), False, 'Second-best worlds', None, 'Second-best worlds', None, 'second-best-worlds', 3, 'published', 44), (229, datetime.datetime(2022, 5, 5, 14, 22, 10, 410829, tzinfo=datetime.timezone.utc), datetime.datetime(2022, 5, 5, 14, 22, 10, 437279, tzinfo=datetime.timezone.utc), datetime.datetime(2022, 5, 5, 14, 22, 10, 410843, tzinfo=datetime.timezone.utc), False, 'Putting the pieces together to look into the future', None, 'Putting the pieces together to look into the future', None, 'putting-the-pieces-together-to-look-into-the-future', 4, 'published', 44)]])}, None) | {} | <django_redis.cache.RedisCache object at 0x7910e287a790> | |
/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in run(101) return _run_old_run_func() /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in _run_old_run_func(94) return old_run_func(self, *a, **kw) /usr/local/lib/python3.11/concurrent/futures/thread.py in _worker(83) work_item.run() /usr/local/lib/python3.11/concurrent/futures/thread.py in run(58) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56) result = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in middleware(32) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/allauth/account/middleware.py in middleware(36) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/simple_history/middleware.py in middleware(41) return get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/django_htmx/middleware.py in __call__(43) return self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in __call__(168) response = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/panels.py in process_request(41) return super(CachalotPanel, self).process_request(request) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in __call__(244) current_executor.run_until_future(call_result) /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run_until_future(81) work_item.run() /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run(40) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(90) return callback(request, *args, **kwargs) /app/project/utils/decorators.py in apply_cache(72) cache.set(CACHE_KEY, response.render(), ttl) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_patched_render(41) return old_render(self) /usr/local/lib/python3.11/site-packages/django/template/response.py in render(114) self.content = self.rendered_content /usr/local/lib/python3.11/site-packages/sentry_sdk/utils.py in runner(1788) return sentry_patched_function(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/templates.py in rendered_content(77) return real_rendered_content.fget(self) /usr/local/lib/python3.11/site-packages/django/template/response.py in rendered_content(92) return template.render(context, self._request) /usr/local/lib/python3.11/site-packages/django/template/backends/django.py in render(61) return self.template.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(175) return self._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157) return compiled_parent._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157) return compiled_parent._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63) result = block.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63) result = block.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(541) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63) result = block.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1064) output = self.filter_expression.resolve(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in resolve(715) obj = self.var.resolve(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in resolve(847) value = self._resolve_lookup(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in _resolve_lookup(914) current = current() /app/project/lms_tales/models.py in get_step_number(107) chapter_list = list( /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(37) return original(compiler, *args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(96) return _get_result_or_execute_query( /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in _get_result_or_execute_query(71) cache.set_many(to_be_set, cachalot_settings.CACHALOT_TIMEOUT) |
|||||
0,4004 | get_many | (['76e323efd8711853e13c9f7cf976845908364eb2', '138549f5508bbba7283d6a0625e51c589d845e8f', 'b0607e97d563980241c3a1fa30a4b6bcc0796bfa'],) | {} | <django_redis.cache.RedisCache object at 0x7910e287a790> | |
/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in run(101) return _run_old_run_func() /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in _run_old_run_func(94) return old_run_func(self, *a, **kw) /usr/local/lib/python3.11/concurrent/futures/thread.py in _worker(83) work_item.run() /usr/local/lib/python3.11/concurrent/futures/thread.py in run(58) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56) result = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in middleware(32) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/allauth/account/middleware.py in middleware(36) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/simple_history/middleware.py in middleware(41) return get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/django_htmx/middleware.py in __call__(43) return self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in __call__(168) response = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/panels.py in process_request(41) return super(CachalotPanel, self).process_request(request) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in __call__(244) current_executor.run_until_future(call_result) /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run_until_future(81) work_item.run() /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run(40) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(90) return callback(request, *args, **kwargs) /app/project/utils/decorators.py in apply_cache(72) cache.set(CACHE_KEY, response.render(), ttl) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_patched_render(41) return old_render(self) /usr/local/lib/python3.11/site-packages/django/template/response.py in render(114) self.content = self.rendered_content /usr/local/lib/python3.11/site-packages/sentry_sdk/utils.py in runner(1788) return sentry_patched_function(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/templates.py in rendered_content(77) return real_rendered_content.fget(self) /usr/local/lib/python3.11/site-packages/django/template/response.py in rendered_content(92) return template.render(context, self._request) /usr/local/lib/python3.11/site-packages/django/template/backends/django.py in render(61) return self.template.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(175) return self._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157) return compiled_parent._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157) return compiled_parent._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63) result = block.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63) result = block.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(541) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63) result = block.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1064) output = self.filter_expression.resolve(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in resolve(715) obj = self.var.resolve(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in resolve(847) value = self._resolve_lookup(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in _resolve_lookup(914) current = current() /app/project/lms_tales/models.py in get_step_number(118) step_list = list(self.chapter.published_steps.all().order_by("order")) /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(37) return original(compiler, *args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(96) return _get_result_or_execute_query( /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in _get_result_or_execute_query(46) data = cache.get_many(table_cache_keys + [cache_key]) |
|||||
0,7969 | set_many | ({'b0607e97d563980241c3a1fa30a4b6bcc0796bfa': (1736881791.722643, [[(1303, datetime.datetime(2022, 5, 5, 19, 20, 3, 617217, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 13, 50, 19, 4518, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 13, 50, 18, 953011, tzinfo=datetime.timezone.utc), False, 'Putting the pieces together', None, 'Putting the pieces together', None, '', None, None, None, 'Throughout this article, Hannes Weigt shows what pieces are still missing if you want your model to produce numbers.', None, 'Throughout this article, Hannes Weigt shows what pieces are still missing if you want your model to produce numbers.', None, 'exploring-possible-futures/putting-the-pieces-together-to-look-into-the-future/putting-the-pieces-together/011.jpg', 'putting-the-pieces-together', 'Let’s start our last chapter by shortly reviewing how we started in the first chapter.\r\n{.lead}\r\n\r\nWe explained that modelling can be structured into four main phases:\r\n![Graph showing the four modeling phases: problem, model, solution and interpretation](/media/markdownx/ba1c8133-f840-42c1-90c2-a88a53d02b25.png)\r\n\r\nIn the last chapters, we explored how to transfer your problem into different kinds of models (do you remember what the differences between Emission Choice Model (ECM), Output Abatement Choice Model (OACM), and Input Choice Model (ICM) are?). We addressed the challenges of ensuring that your model is solvable (do you remember the ‘as many equations as variables’ rule?). And we explored how to make economic sense out of those mathematical equations (do you remember how activity variables, costs, and prices were linked?). And you could explore different modeling elements with the little exercises along the way.\r\n \r\nHowever, what we did not cover in detail in the last chapters is how to transfer all this knowledge into an actual computer model that can produce the numbers you have seen in the exercises. There is a large diversity in modelling software, coding approaches, and computer systems out there; however, a detailed lecture on numerical computational modelling is beyond the scope of this course. Nevertheless, we want to provide you with some basic guidelines on numerical modelling in the following steps: namely, data handling and computational restrictions.\r\n \r\n**Data handling** has large impacts on the model design and the interpretation of the model and its results. While a large share of modelling work is done with pen and paper (especially conceptual assessments can often be carried out without a computer using purely illustrative data), quantifications, simulations, and scenario analyses will need a computer and numerical model implementation. And as you seldom will get all the data you would like to get, you will likely circle between your problem and the modelling phase until you have a model design that can achieve both: answer your research question **and** rely on available data. Similarly, your model results will drive how you can interpret your model.\r\n \r\n**Computational restrictions** have a large impact on the solution phase and thereby again feedback effects on your model design choice. As you will see in the next steps, even with modern computational capabilities, there are still some problem types that are hard to solve, especially for large-scale models. It is likely that the model design you would need to solve your initial research questions is simply not solvable. So, you will be forced to make adjustments, simplifications, or vary your assumptions to account for those constraints.\r\n \r\nYou see that the four modelling phases are indeed not as linear as the picture above suggests. Until you have a running model with interpretable results you will likely have circled back and forth through multiple iterations of the four phases. That is perfectly normal. The more experience you get with modelling the easier it will become to move along those phases; even experienced modellers seldom get a perfect model up and running on their first attempt.\r\n \r\nAnd finally, **we encourage you to go out and start designing your own models**. Building models, applying modelling software and writing model codes can only be learned by doing it.', '', 'Let’s start our last chapter by shortly reviewing how we started in the first chapter.\r\n{.lead}\r\n\r\nWe explained that modelling can be structured into four main phases:\r\n![Graph showing the four modeling phases: problem, model, solution and interpretation](/media/markdownx/ba1c8133-f840-42c1-90c2-a88a53d02b25.png)\r\n\r\nIn the last chapters, we explored how to transfer your problem into different kinds of models (do you remember what the differences between Emission Choice Model (ECM), Output Abatement Choice Model (OACM), and Input Choice Model (ICM) are?). We addressed the challenges of ensuring that your model is solvable (do you remember the ‘as many equations as variables’ rule?). And we explored how to make economic sense out of those mathematical equations (do you remember how activity variables, costs, and prices were linked?). And you could explore different modeling elements with the little exercises along the way.\r\n \r\nHowever, what we did not cover in detail in the last chapters is how to transfer all this knowledge into an actual computer model that can produce the numbers you have seen in the exercises. There is a large diversity in modelling software, coding approaches, and computer systems out there; however, a detailed lecture on numerical computational modelling is beyond the scope of this course. Nevertheless, we want to provide you with some basic guidelines on numerical modelling in the following steps: namely, data handling and computational restrictions.\r\n \r\n**Data handling** has large impacts on the model design and the interpretation of the model and its results. While a large share of modelling work is done with pen and paper (especially conceptual assessments can often be carried out without a computer using purely illustrative data), quantifications, simulations, and scenario analyses will need a computer and numerical model implementation. And as you seldom will get all the data you would like to get, you will likely circle between your problem and the modelling phase until you have a model design that can achieve both: answer your research question **and** rely on available data. Similarly, your model results will drive how you can interpret your model.\r\n \r\n**Computational restrictions** have a large impact on the solution phase and thereby again feedback effects on your model design choice. As you will see in the next steps, even with modern computational capabilities, there are still some problem types that are hard to solve, especially for large-scale models. It is likely that the model design you would need to solve your initial research questions is simply not solvable. So, you will be forced to make adjustments, simplifications, or vary your assumptions to account for those constraints.\r\n \r\nYou see that the four modelling phases are indeed not as linear as the picture above suggests. Until you have a running model with interpretable results you will likely have circled back and forth through multiple iterations of the four phases. That is perfectly normal. The more experience you get with modelling the easier it will become to move along those phases; even experienced modellers seldom get a perfect model up and running on their first attempt.\r\n \r\nAnd finally, **we encourage you to go out and start designing your own models**. Building models, applying modelling software and writing model codes can only be learned by doing it.', '', '', '', '', '', None, None, None, None, '', '', '', '', 'TT', '', 0, 'published', False, None, None, None, None, 229), (1304, datetime.datetime(2022, 5, 5, 19, 20, 16, 802042, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 13, 51, 7, 191493, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 13, 51, 7, 141368, tzinfo=datetime.timezone.utc), False, 'Data handling', None, 'Data handling', None, '', None, None, None, "Watch Hannes Weigt explain some of the caveats when handling your model's input and output.", None, "Watch Hannes Weigt explain some of the caveats when handling your model's input and output.", None, '', 'data-handling', 'Data plays a crucial role in many models, especially large scale numerical scenario models. Getting the data needed to run your model is oftentimes the most frustrating part of the whole modeling process, simply for the fact that data is hard to get and seldom in the direct format you need for your model.\r\n{.lead}\r\n\r\n![embed](https://vimeo.com/734337062/87fd800b45)\r\n \r\nData availability has increased in recent years, with statistical offices, agencies and associations providing diverse databases on multiple energy and environmental related topics. Even if you cannot find the desired data you may still be able to generate reasonable estimates. Always think about the underlying technical or natural structures that define the numbers you would need; i.e. there are often no plant specific generation costs available, but using fuel prices and plant efficiencies you can generate a close proxy.\r\n \r\nAlbeit, as a modeller you are more interested in transferring your input data into output, don’t neglect the interesting information contained in your input data: can you see shifts in the hourly demand of the last years? Is there some underlying price trend in your fuel costs? Does the spatial distribution of pollution give you an insight on non-observable pollution sources? Your model will use this data to hopefully generate interesting findings, but sometimes the data itself already provides some findings that may motivate you to add or change elements of your model.\r\n \r\nWhen you finally get your model results there are two things to do: first, you need to make sure the numbers are correct; and second, you need to transfer the numbers into understandable results for your audience.\r\n \r\nIf you follow the steps provided during this course you hopefully have a working model that indeed produces correct results. But there is always the risk that you made some small errors while writing your model code or constructing your data upload. Always remember: your model software will do whatever you told it, not what you **think** you told it. So double-check that your coding is correct.\r\n \r\nPresenting your results can sometimes be a challenge as you literally produce thousands of numbers. Boil it down to a reasonable reader-friendly summary: use descriptive statistics, aggregate results, show examples, limit the number of scenarios and highlight the insights. Tables and figures are your friends when it comes to presenting your model outcomes; but always remember: it’s what you read out of those numbers, not the numbers that make your interpretation.', '', 'Data plays a crucial role in many models, especially large scale numerical scenario models. Getting the data needed to run your model is oftentimes the most frustrating part of the whole modeling process, simply for the fact that data is hard to get and seldom in the direct format you need for your model.\r\n{.lead}\r\n\r\n![embed](https://vimeo.com/734337062/87fd800b45)\r\n \r\nData availability has increased in recent years, with statistical offices, agencies and associations providing diverse databases on multiple energy and environmental related topics. Even if you cannot find the desired data you may still be able to generate reasonable estimates. Always think about the underlying technical or natural structures that define the numbers you would need; i.e. there are often no plant specific generation costs available, but using fuel prices and plant efficiencies you can generate a close proxy.\r\n \r\nAlbeit, as a modeller you are more interested in transferring your input data into output, don’t neglect the interesting information contained in your input data: can you see shifts in the hourly demand of the last years? Is there some underlying price trend in your fuel costs? Does the spatial distribution of pollution give you an insight on non-observable pollution sources? Your model will use this data to hopefully generate interesting findings, but sometimes the data itself already provides some findings that may motivate you to add or change elements of your model.\r\n \r\nWhen you finally get your model results there are two things to do: first, you need to make sure the numbers are correct; and second, you need to transfer the numbers into understandable results for your audience.\r\n \r\nIf you follow the steps provided during this course you hopefully have a working model that indeed produces correct results. But there is always the risk that you made some small errors while writing your model code or constructing your data upload. Always remember: your model software will do whatever you told it, not what you **think** you told it. So double-check that your coding is correct.\r\n \r\nPresenting your results can sometimes be a challenge as you literally produce thousands of numbers. Boil it down to a reasonable reader-friendly summary: use descriptive statistics, aggregate results, show examples, limit the number of scenarios and highlight the insights. Tables and figures are your friends when it comes to presenting your model outcomes; but always remember: it’s what you read out of those numbers, not the numbers that make your interpretation.', '', '', '', '', '', None, None, None, None, '', '', '', '', 'TV', '', 1, 'published', False, None, None, None, None, 229), (1305, datetime.datetime(2022, 5, 5, 19, 20, 30, 953442, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 13, 52, 28, 677081, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 13, 52, 28, 625732, tzinfo=datetime.timezone.utc), False, 'Let the computer do the work I: optimizations', None, 'Let the computer do the work I: optimizations', None, '', None, None, None, 'Through this article, Hannes Weigt provides a short introduction on different mathematical model limitations when designing optimization models.', None, 'Through this article, Hannes Weigt provides a short introduction on different mathematical model limitations when designing optimization models.', None, '', 'let-the-computer-do-the-work-i-optimizations', 'Modern computer capacities and advances in modelling software and algorithms make numerical modelling much more accessible than a few decades ago. Nevertheless, basic understandings of the mathematical model structure and its feedback on the design stage are requirements to ensure that the model is not only credible but can also produce meaningful results.\r\n{.lead}\r\n\r\n![Computer work](/media/markdownx/587303fd-f6fd-41ca-83f3-b9d04d16aa75.png)\r\n \r\n\r\nIn this step, we will take a short look into some computational aspects that you should keep in mind when designing your model as they often will have a direct impact on if and how your model will solve.\r\n \r\nWhen optimising models, one of the main choices is between linear or non-linear model designs. A **Linear Program (LP)** consists of a linear objective function and linear constraints. A common formulation is a cost minimising LP of the form used in chapter 2:\r\n \r\n---\r\n\r\n   $$\\min \\limits_q \\enspace {Cost}=\\sum{c_i q_i}$$  (Cost objective)\r\n\r\n\r\n s.t. $$q_i\\leq q_i^{max}$$  (Production constraints)\r\n\r\n\r\n   $$\\sum{q_i}\\geq d$$  (Demand constraints)\r\n\r\n---\r\n\r\nThe advantage of LP formulations is that they can be solved relatively fast even for large scale models. Furthermore, the obtained solution provides a global optimum: either a unique solution, a continuum of equivalent solutions, or no solution. LP models therefore provide a good starting point to get familiar with the problem at hand. Albeit many relations and restrictions in the real world are non-linear oftentimes, they can be reasonably approximated by linear formulations.\r\n \r\nNaturally, **Non-Linear Programs (NLP)** relax the linearity constraints and the functional relations can take on any form. The advantage of NLPs comes with the possibility to remain closer to real world conditions. However, this comes at a price. First, NLPs are harder to solve and will normally need longer to find a solution. Second, most NLP solutions don’t guarantee a global optimum.\r\n\r\n![Graph showing the exemplary solution space for a NLP](/media/markdownx/8d71eb46-8a7e-444e-81a6-6ae9724d891a.png)\r\n\r\nExemplary solution space for a NLP\r\n{.footnote}\r\n\r\n<br>\r\n\r\nTo ensure that a global maximum is reached, further criteria, in addition to the first-order conditions, are needed. There are global solvers that ensure that a solution is a global optima, but the computational effort is much higher than for local solvers. Therefore, most of the time, NLP models will only ensure that a local optima is obtained. From a modeller perspective, this means that one should ensure that the obtained solution is reasonable; for example, by providing starting points via LP approximations of the NLP model.\r\n \r\nA special form of NLP models are formulations with quadratic elements. This can either be **Quadratic Programs (QP)** that have a quadratic term in the objective but only linear constraints (for example typical welfare formulations) or **Quadratic Constraints Programs (QCP)** in which the side constraints can contain quadratic formulations. Those NLPs are easier to solve and many solvers have special routines for this kind of problem.\r\n \r\nA final important form for optimization models are formulations involving integer variables. The most common form of models with integer elements are coded as **Mixed-Integer Linear Programs (MILP)** that involve both continuous and integer variables while keeping the linearity restrictions. You can also design non-linear formulations with integer elements but the current solver capability for those problems is rather limited. Integer elements are rather common in real life (eg, most commodities are consumed in discrete amounts) but can often be reasonably approximated by continuous formulations for large-scale problems (eg, models with a consumption of 1000.4 units are less of a problem than models with 1.4 units).\r\n \r\nA common usage for integer elements are binary variables indicating choices (ie, binary 0-1 variables), like fixed costs added if a production site is constructed. A typical example in electricity markets is power plant status conditions:\r\n\r\n---\r\n\r\n   $$\\min_\\limits {q,s} \\enspace {Costs}=\\sum{c_i q_i}$$  (Cost objective)\r\n\r\n\r\n s.t. $$s_i q^{min} \\leq q_i \\leq s_i {cap}^{max}$$  (Generation constraint)\r\n\r\n   $$\\sum{q_i} \\geq d$$  (Demand constraint)\r\n\r\n---\r\n\r\nIn case a plant is online $$(s = 1)$$ the output, $$q$$, of a plant $$i$$ has to remain within the generation constraints defined by the lower and upper capacity limits. In case the plant is offline, $$(s = 0)$$, the output is fixed to zero. MILP models are harder to solve than pure LP models but still perform reasonably well, normally obtaining global optimality and they can handle large datasets.\r\n \r\nThe easy design of optimization problems and the good solver capabilities of modern computers make optimization models a good place to start your endeavour into numerical modelling. You will be able to design large system representations or complex firm optimizations. Even if you want to assess more complex real world challenges, like the oligopoly models we discussed in chapter 4, a simple benchmark optimization model representing first-best conditions is often helpful.', '', 'Modern computer capacities and advances in modelling software and algorithms make numerical modelling much more accessible than a few decades ago. Nevertheless, basic understandings of the mathematical model structure and its feedback on the design stage are requirements to ensure that the model is not only credible but can also produce meaningful results.\r\n{.lead}\r\n\r\n![Computer work](/media/markdownx/587303fd-f6fd-41ca-83f3-b9d04d16aa75.png)\r\n \r\n\r\nIn this step, we will take a short look into some computational aspects that you should keep in mind when designing your model as they often will have a direct impact on if and how your model will solve.\r\n \r\nWhen optimising models, one of the main choices is between linear or non-linear model designs. A **Linear Program (LP)** consists of a linear objective function and linear constraints. A common formulation is a cost minimising LP of the form used in chapter 2:\r\n \r\n---\r\n\r\n   $$\\min \\limits_q \\enspace {Cost}=\\sum{c_i q_i}$$  (Cost objective)\r\n\r\n\r\n s.t. $$q_i\\leq q_i^{max}$$  (Production constraints)\r\n\r\n\r\n   $$\\sum{q_i}\\geq d$$  (Demand constraints)\r\n\r\n---\r\n\r\nThe advantage of LP formulations is that they can be solved relatively fast even for large scale models. Furthermore, the obtained solution provides a global optimum: either a unique solution, a continuum of equivalent solutions, or no solution. LP models therefore provide a good starting point to get familiar with the problem at hand. Albeit many relations and restrictions in the real world are non-linear oftentimes, they can be reasonably approximated by linear formulations.\r\n \r\nNaturally, **Non-Linear Programs (NLP)** relax the linearity constraints and the functional relations can take on any form. The advantage of NLPs comes with the possibility to remain closer to real world conditions. However, this comes at a price. First, NLPs are harder to solve and will normally need longer to find a solution. Second, most NLP solutions don’t guarantee a global optimum.\r\n\r\n![Graph showing the exemplary solution space for a NLP](/media/markdownx/8d71eb46-8a7e-444e-81a6-6ae9724d891a.png)\r\n\r\nExemplary solution space for a NLP\r\n{.footnote}\r\n\r\n<br>\r\n\r\nTo ensure that a global maximum is reached, further criteria, in addition to the first-order conditions, are needed. There are global solvers that ensure that a solution is a global optima, but the computational effort is much higher than for local solvers. Therefore, most of the time, NLP models will only ensure that a local optima is obtained. From a modeller perspective, this means that one should ensure that the obtained solution is reasonable; for example, by providing starting points via LP approximations of the NLP model.\r\n \r\nA special form of NLP models are formulations with quadratic elements. This can either be **Quadratic Programs (QP)** that have a quadratic term in the objective but only linear constraints (for example typical welfare formulations) or **Quadratic Constraints Programs (QCP)** in which the side constraints can contain quadratic formulations. Those NLPs are easier to solve and many solvers have special routines for this kind of problem.\r\n \r\nA final important form for optimization models are formulations involving integer variables. The most common form of models with integer elements are coded as **Mixed-Integer Linear Programs (MILP)** that involve both continuous and integer variables while keeping the linearity restrictions. You can also design non-linear formulations with integer elements but the current solver capability for those problems is rather limited. Integer elements are rather common in real life (eg, most commodities are consumed in discrete amounts) but can often be reasonably approximated by continuous formulations for large-scale problems (eg, models with a consumption of 1000.4 units are less of a problem than models with 1.4 units).\r\n \r\nA common usage for integer elements are binary variables indicating choices (ie, binary 0-1 variables), like fixed costs added if a production site is constructed. A typical example in electricity markets is power plant status conditions:\r\n\r\n---\r\n\r\n   $$\\min_\\limits {q,s} \\enspace {Costs}=\\sum{c_i q_i}$$  (Cost objective)\r\n\r\n\r\n s.t. $$s_i q^{min} \\leq q_i \\leq s_i {cap}^{max}$$  (Generation constraint)\r\n\r\n   $$\\sum{q_i} \\geq d$$  (Demand constraint)\r\n\r\n---\r\n\r\nIn case a plant is online $$(s = 1)$$ the output, $$q$$, of a plant $$i$$ has to remain within the generation constraints defined by the lower and upper capacity limits. In case the plant is offline, $$(s = 0)$$, the output is fixed to zero. MILP models are harder to solve than pure LP models but still perform reasonably well, normally obtaining global optimality and they can handle large datasets.\r\n \r\nThe easy design of optimization problems and the good solver capabilities of modern computers make optimization models a good place to start your endeavour into numerical modelling. You will be able to design large system representations or complex firm optimizations. Even if you want to assess more complex real world challenges, like the oligopoly models we discussed in chapter 4, a simple benchmark optimization model representing first-best conditions is often helpful.', '', '', '', '', '', None, None, None, None, '', '', '', '', 'TT', '', 2, 'published', False, None, None, None, None, 229), (1306, datetime.datetime(2022, 5, 5, 19, 20, 40, 685239, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 13, 53, 18, 851369, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 13, 53, 18, 803782, tzinfo=datetime.timezone.utc), False, 'Let the computer do the work II: equilibriums', None, 'Let the computer do the work II: equilibriums', None, '', None, None, None, 'In this article, Hannes Weigt continues the presentation on mathematical model limitations for equilibrium models.', None, 'In this article, Hannes Weigt continues the presentation on mathematical model limitations for equilibrium models.', None, '', 'let-the-computer-do-the-work-ii-equilibriums', 'While optimization models are frequently used for techno-economic scenario simulations and system assessments, equilibrium models are more common for analysing detailed economic market interaction and dynamics.\r\n{.lead}\r\n\r\n\r\n![Computer work](/media/markdownx/9bb1efda-a364-4c68-a39d-4123e503cebf.png)\r\n \r\nThey are coded using the **Mixed Complementarity Problem (MCP)** format that formalizes the **Karush–Kuhn–Tucker (KKT)** structure we introduced in chapter 3. The general formulation in case of maximisation is:\r\n\r\n$$\\frac{\\partial{f}}{\\partial{x}}x=0; \\frac{\\partial{f}}{\\partial{x}} \\leq 0; x \\geq 0$$\r\n\r\nThe complementarity condition is often formulated as:\r\n\r\n \r\n$$\\frac{\\partial f}{\\partial x} \\leq 0 \\bot x \\geq 0$$\r\n\r\nThe interpretation is the same as we introduced in the basic design of equilibrium models: either $$x$$ is positive, then the derivative ($$\\frac{\\partial f}{\\partial x}$$) has to hold with equality, or $$x$$ is zero and the derivative can be an inequality. This corresponds to the economic intuition behind the zero-profit and market clearing constraints. The advantage of the MCP formulation is that dual variables (ie, the Lagrangian multipliers, in other words the prices) are direct variables of the model.\r\n \r\nAll continuous optimization problems can be formulated as MCP. Depending on the solver capabilities, you may prefer to keep them as optimization models, especially in the case of Linear Programs (LPs). Adding integer variables to an MCP is not possible without further model tweaking which is not recommended without sufficient knowledge on modeling and its mathematical background.\r\n \r\nMany equilibrium models follow a more aggregated top-down approach. Often, you will be forced to make a trade-off decision between including more technical details or focusing more on economic interactions. And this often also translates into a decision whether you will go for an optimization approach (in the former case) or an equilibrium setting (in the latter case).\r\n \r\nPartial equilibrium models, focusing on single markets or sectors, are often used when strategic competition is important, like in our oligopoly example from last chapter. Large-scale numerical models aiming to represent the whole economy are designed as **Computable General Equilibrium (CGE)** approach. If you plan to dig deeper into coding CGE models, you may want to have a look at [GAMS-MPSGE](https://www.gams.com/solvers/mpsge/){:target=“_blank”}.\r\n \r\n<br>\r\n\r\n\r\nRecommended readings\r\n{.footnote-title}\r\n\r\nNaturally this course cannot provide a complete overview on the mathematics of modelling. There are more complex model approaches, eg **Mathematical Programs with Equilibrium Constraints (MPECs)**, and there are techniques to reformulate models to obtain solutions for otherwise unsolvable problems. \r\n\r\nHowever, there are plenty of books out there on this topic. You may want to start with Dantzig and Thapa (1997) or Williams (2013) to get more familiar with optimizations, and Gabriel et al. (2013) for complementarity modeling in energy markets. An applied comparison between different optimization approaches is for example provided in Ommen et al. (2014). \r\n\r\nDantzig, G. B. & Thapa, M. N. (1997). Linear Programming 1: 1. Introduction (Vol. 1). Springer.\r\n{.citation-indented}\r\n\r\nWilliams, H. P. (2013). Model building in mathematical programming. John Wiley & Sons.\r\n{.citation-indented}\r\n\r\nGabriel, S. A. et al. (2012). Complementarity modeling in energy markets (Vol. 180). Springer Science & Business Media.\r\n{.citation-indented}\r\n\r\nOmmen, T., Markussen, W. B., & Elmegaard, B. (2014). [Comparison of linear, mixed integer and non-linear programming methods in energy system dispatch modelling](http://www.sciencedirect.com/science/article/pii/S0360544214004368){:target=“_blank”}. *Energy*, 74, pp. 109-118.\r\n{.citation-indented}\r\n\r\nA helpful reference for the design of electricity system models is Van den Bergh et al. (2014) that provides a comprehensive overview on approaches to model specific technical constraints in electricity markets. \r\n{.citation-indented}\r\n\r\nVan den Bergh, K. et al. (2013). [A Mixed Integer Linear Formulation of the Unit Commitment Problem](http://www.mech.kuleuven.be/en/tme/research/energy_environment/Pdf/wpen2014-07.pdf){:target=“_blank”}. KU Leuven Energy Institute Working papers.\r\n{.citation-indented}', '', 'While optimization models are frequently used for techno-economic scenario simulations and system assessments, equilibrium models are more common for analysing detailed economic market interaction and dynamics.\r\n{.lead}\r\n\r\n\r\n![Computer work](/media/markdownx/9bb1efda-a364-4c68-a39d-4123e503cebf.png)\r\n \r\nThey are coded using the **Mixed Complementarity Problem (MCP)** format that formalizes the **Karush–Kuhn–Tucker (KKT)** structure we introduced in chapter 3. The general formulation in case of maximisation is:\r\n\r\n$$\\frac{\\partial{f}}{\\partial{x}}x=0; \\frac{\\partial{f}}{\\partial{x}} \\leq 0; x \\geq 0$$\r\n\r\nThe complementarity condition is often formulated as:\r\n\r\n \r\n$$\\frac{\\partial f}{\\partial x} \\leq 0 \\bot x \\geq 0$$\r\n\r\nThe interpretation is the same as we introduced in the basic design of equilibrium models: either $$x$$ is positive, then the derivative ($$\\frac{\\partial f}{\\partial x}$$) has to hold with equality, or $$x$$ is zero and the derivative can be an inequality. This corresponds to the economic intuition behind the zero-profit and market clearing constraints. The advantage of the MCP formulation is that dual variables (ie, the Lagrangian multipliers, in other words the prices) are direct variables of the model.\r\n \r\nAll continuous optimization problems can be formulated as MCP. Depending on the solver capabilities, you may prefer to keep them as optimization models, especially in the case of Linear Programs (LPs). Adding integer variables to an MCP is not possible without further model tweaking which is not recommended without sufficient knowledge on modeling and its mathematical background.\r\n \r\nMany equilibrium models follow a more aggregated top-down approach. Often, you will be forced to make a trade-off decision between including more technical details or focusing more on economic interactions. And this often also translates into a decision whether you will go for an optimization approach (in the former case) or an equilibrium setting (in the latter case).\r\n \r\nPartial equilibrium models, focusing on single markets or sectors, are often used when strategic competition is important, like in our oligopoly example from last chapter. Large-scale numerical models aiming to represent the whole economy are designed as **Computable General Equilibrium (CGE)** approach. If you plan to dig deeper into coding CGE models, you may want to have a look at [GAMS-MPSGE](https://www.gams.com/solvers/mpsge/){:target=“_blank”}.\r\n \r\n<br>\r\n\r\n\r\nRecommended readings\r\n{.footnote-title}\r\n\r\nNaturally this course cannot provide a complete overview on the mathematics of modelling. There are more complex model approaches, eg **Mathematical Programs with Equilibrium Constraints (MPECs)**, and there are techniques to reformulate models to obtain solutions for otherwise unsolvable problems. \r\n\r\nHowever, there are plenty of books out there on this topic. You may want to start with Dantzig and Thapa (1997) or Williams (2013) to get more familiar with optimizations, and Gabriel et al. (2013) for complementarity modeling in energy markets. An applied comparison between different optimization approaches is for example provided in Ommen et al. (2014). \r\n\r\nDantzig, G. B. & Thapa, M. N. (1997). Linear Programming 1: 1. Introduction (Vol. 1). Springer.\r\n{.citation-indented}\r\n\r\nWilliams, H. P. (2013). Model building in mathematical programming. John Wiley & Sons.\r\n{.citation-indented}\r\n\r\nGabriel, S. A. et al. (2012). Complementarity modeling in energy markets (Vol. 180). Springer Science & Business Media.\r\n{.citation-indented}\r\n\r\nOmmen, T., Markussen, W. B., & Elmegaard, B. (2014). [Comparison of linear, mixed integer and non-linear programming methods in energy system dispatch modelling](http://www.sciencedirect.com/science/article/pii/S0360544214004368){:target=“_blank”}. *Energy*, 74, pp. 109-118.\r\n{.citation-indented}\r\n\r\nA helpful reference for the design of electricity system models is Van den Bergh et al. (2014) that provides a comprehensive overview on approaches to model specific technical constraints in electricity markets. \r\n{.citation-indented}\r\n\r\nVan den Bergh, K. et al. (2013). [A Mixed Integer Linear Formulation of the Unit Commitment Problem](http://www.mech.kuleuven.be/en/tme/research/energy_environment/Pdf/wpen2014-07.pdf){:target=“_blank”}. KU Leuven Energy Institute Working papers.\r\n{.citation-indented}', '', '', '', '', '', None, None, None, None, '', '', '', '', 'TT', '', 3, 'published', False, None, None, None, None, 229), (1307, datetime.datetime(2022, 5, 5, 19, 20, 49, 972322, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 13, 54, 12, 390917, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 13, 54, 12, 344782, tzinfo=datetime.timezone.utc), False, 'Getting ready for the future', None, 'Getting ready for the future', None, '', None, None, None, 'In this article, Frank Krysiak and Hannes Weigt combine the different model and policy elements discussed so far to have a look into the future.', None, 'In this article, Frank Krysiak and Hannes Weigt combine the different model and policy elements discussed so far to have a look into the future.', None, '', 'getting-ready-for-the-future', 'Now that you have learned about all the elements needed to design sophisticated models, it is time to put those pieces together to have a look at possible futures.\r\n{.lead}\r\n \r\nLet’s start with a problem. As this course is named ‘Exploring Possible Futures’, we will make this our driving research question for the last model: what are possible future developments for our little example market?\r\n \r\nBefore deciding what type of model to use, think about how many possible layers of detail the research question still leaves open: are you only interested in the future or also in the path towards this future? What are your ‘choice variables’: costs, market prices or policies? And what policies would be the ones to include? What level of competition does your market possess?\r\n \r\nAll those follow-up questions help you to decide which model design to choose. This is the iteration between the problem and model phase we mentioned throughout the course.\r\n \r\nFor our final model example we have chosen to test the policy choices we discussed in the last chapters, namely CO<sub>2</sub> taxes, nuclear premiums, and renewable subsidies. We will keep the model in the first-best world and stick with a competitive market framework. Namely, we will rely on the model discussed at the end of chapter 3, the first model exercise with a responsive demand.\r\n \r\nNow we have a research question and a basic model layout. However, there isn’t much future development involved yet. The model of chapter 3 was just a one period model. To analyze the future you could adjust the underlying data to represent future expectations (eg, change the investment costs or fuel prices according to your assumption on future developments). That is the simplest way of setting up a ‘future’ model.\r\n \r\nLet’s go a step further and aim to not only look into the future but link it to decisions we make today. There are again multiple ways how such a dynamic system can be modelled. For example, you could add a further model index to account for the flow of time (eg, years) and link each period with its preceding periods (eg, the capacity in year, $$t$$, is equal to the capacity in the previous year, $$t - 1$$, plus any additions, minus decommissioned units).\r\n \r\nFor our final model example, we follow this approach but implement it in a more simplified way: we design two individual models; one for today, one for the future, where the data input for the future-model depends on the results of the today-model. Namely, we assume that renewable investment costs will decrease in the future. The actual extent of this decrease will depend on the amount of renewables utilised today.\r\n \r\nAll other future parameters (demand dynamics, fuel costs, investment costs for fossil and nuclear plants) are unchanged. This allows us to trace back the future developments to the choices you will make (CO<sub>2</sub>, nuclear and renewable levels) and the renewable cost decrease.\r\n \r\nThe implementation is rather simple: the today-model is equivalent to the model of chapter 3 and solved for your choice variables. Given this market result the output of PV ($$q_{PV}^{today}$$) and wind ($$q_{wind}^{today}$$) generation is then used to calculate the future costs:\r\n\r\n---\r\n\r\n$$c_i (q_i )=α_i \\cdot q_i+\\frac{β_i-ηq_i^{today}}{2} \\cdot q_i^2$$\r\n\r\n---\r\n\r\nThe total costs for wind or PV generation again increase more than proportionally with production. However, the increasing cost block is now adjusted for today’s renewable output with $$η$$ representing how large the impact of today’s output on future cost levels is. As today’s output ($$q_i^{today}$$) is known and fixed in the future, it is treated as an external variable for the model; in other words, we only adjust the cost parameters for the future model.\r\n \r\nNow we have all the pieces together for an interesting model with some hopefully equally interesting results.', '', 'Now that you have learned about all the elements needed to design sophisticated models, it is time to put those pieces together to have a look at possible futures.\r\n{.lead}\r\n \r\nLet’s start with a problem. As this course is named ‘Exploring Possible Futures’, we will make this our driving research question for the last model: what are possible future developments for our little example market?\r\n \r\nBefore deciding what type of model to use, think about how many possible layers of detail the research question still leaves open: are you only interested in the future or also in the path towards this future? What are your ‘choice variables’: costs, market prices or policies? And what policies would be the ones to include? What level of competition does your market possess?\r\n \r\nAll those follow-up questions help you to decide which model design to choose. This is the iteration between the problem and model phase we mentioned throughout the course.\r\n \r\nFor our final model example we have chosen to test the policy choices we discussed in the last chapters, namely CO<sub>2</sub> taxes, nuclear premiums, and renewable subsidies. We will keep the model in the first-best world and stick with a competitive market framework. Namely, we will rely on the model discussed at the end of chapter 3, the first model exercise with a responsive demand.\r\n \r\nNow we have a research question and a basic model layout. However, there isn’t much future development involved yet. The model of chapter 3 was just a one period model. To analyze the future you could adjust the underlying data to represent future expectations (eg, change the investment costs or fuel prices according to your assumption on future developments). That is the simplest way of setting up a ‘future’ model.\r\n \r\nLet’s go a step further and aim to not only look into the future but link it to decisions we make today. There are again multiple ways how such a dynamic system can be modelled. For example, you could add a further model index to account for the flow of time (eg, years) and link each period with its preceding periods (eg, the capacity in year, $$t$$, is equal to the capacity in the previous year, $$t - 1$$, plus any additions, minus decommissioned units).\r\n \r\nFor our final model example, we follow this approach but implement it in a more simplified way: we design two individual models; one for today, one for the future, where the data input for the future-model depends on the results of the today-model. Namely, we assume that renewable investment costs will decrease in the future. The actual extent of this decrease will depend on the amount of renewables utilised today.\r\n \r\nAll other future parameters (demand dynamics, fuel costs, investment costs for fossil and nuclear plants) are unchanged. This allows us to trace back the future developments to the choices you will make (CO<sub>2</sub>, nuclear and renewable levels) and the renewable cost decrease.\r\n \r\nThe implementation is rather simple: the today-model is equivalent to the model of chapter 3 and solved for your choice variables. Given this market result the output of PV ($$q_{PV}^{today}$$) and wind ($$q_{wind}^{today}$$) generation is then used to calculate the future costs:\r\n\r\n---\r\n\r\n$$c_i (q_i )=α_i \\cdot q_i+\\frac{β_i-ηq_i^{today}}{2} \\cdot q_i^2$$\r\n\r\n---\r\n\r\nThe total costs for wind or PV generation again increase more than proportionally with production. However, the increasing cost block is now adjusted for today’s renewable output with $$η$$ representing how large the impact of today’s output on future cost levels is. As today’s output ($$q_i^{today}$$) is known and fixed in the future, it is treated as an external variable for the model; in other words, we only adjust the cost parameters for the future model.\r\n \r\nNow we have all the pieces together for an interesting model with some hopefully equally interesting results.', '', '', '', '', '', None, None, None, None, '', '', '', '', 'TT', '', 4, 'published', False, None, None, None, None, 229), (1308, datetime.datetime(2022, 5, 5, 19, 20, 58, 34010, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 13, 55, 17, 80019, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 13, 55, 16, 997503, tzinfo=datetime.timezone.utc), False, 'Exercise: Exploring possible futures', None, 'Exercise: Exploring possible futures', None, '', None, None, None, 'Try this exercise about exploring possible futures.', None, 'Try this exercise about exploring possible futures.', None, '', 'exercise-exploring-possible-futures', 'The final model exercise allows you to analyse the linkage between today’s choices and future results.\r\n{.lead}\r\n\r\nNow it is your task to design a future for our little market: you are free to choose the CO<sub>2</sub> tax, the deposit for nuclear accidents, and subsidies for wind power and PV; both for the current time frame (indicated by 2025) and the long term future time frame (indicated by 2050).\r\n \r\nAs explained in the last step, your choice of policies in 2025 can have an impact on the renewable costs in 2050 and thereby influence the market outcome, even if you do not implement any policies.\r\n \r\nDo whatever you think is a good energy mix and **see how your market will react and how much it will cost**.\r\n\r\n**Note: If you want to keep a certain result for later use we suggest that you make a screenshot (Command-Shift-3 for Mac or CTRL+PrtScn for Windows) and download it.**\r\n\r\n<br>\r\n\r\n##Exercise\r\n\r\n###[Exploring possible futures](https://nmc.unibas.ch/online-courses/exploring/2017/tm9/index.html){:target=“_blank”}', '', 'The final model exercise allows you to analyse the linkage between today’s choices and future results.\r\n{.lead}\r\n\r\nNow it is your task to design a future for our little market: you are free to choose the CO<sub>2</sub> tax, the deposit for nuclear accidents, and subsidies for wind power and PV; both for the current time frame (indicated by 2025) and the long term future time frame (indicated by 2050).\r\n \r\nAs explained in the last step, your choice of policies in 2025 can have an impact on the renewable costs in 2050 and thereby influence the market outcome, even if you do not implement any policies.\r\n \r\nDo whatever you think is a good energy mix and **see how your market will react and how much it will cost**.\r\n\r\n**Note: If you want to keep a certain result for later use we suggest that you make a screenshot (Command-Shift-3 for Mac or CTRL+PrtScn for Windows) and download it.**\r\n\r\n<br>\r\n\r\n##Exercise\r\n\r\n###[Exploring possible futures](https://nmc.unibas.ch/online-courses/exploring/2017/tm9/index.html){:target=“_blank”}', '', '', '', '', '', None, None, None, None, '', '', '', '', 'TT', '', 5, 'published', False, None, None, None, None, 229), (1309, datetime.datetime(2022, 5, 5, 19, 21, 7, 784685, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 13, 57, 13, 161591, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 13, 57, 13, 111260, tzinfo=datetime.timezone.utc), False, 'Reflection: How does your future look?', None, 'Reflection: How does your future look?', None, '', None, None, None, 'Reflect on this question: How does your future look?', None, 'Reflect on this question: How does your future look?', None, '', 'reflection-how-does-your-future-look', 'In the final model exercise, we asked you to design a policy set influencing the future of the example electricity market.\r\n{.lead}\r\n\r\n1. What policies have you chosen for 2025 and 2050? \r\n\r\n2. Why did you choose this particular set? \r\n\r\n3. What were the consequences of your choice?\r\n\r\nPlease record your findings before you go to the next step.', '', 'In the final model exercise, we asked you to design a policy set influencing the future of the example electricity market.\r\n{.lead}\r\n\r\n1. What policies have you chosen for 2025 and 2050? \r\n\r\n2. Why did you choose this particular set? \r\n\r\n3. What were the consequences of your choice?\r\n\r\nPlease record your findings before you go to the next step.', '', '', '', '', '', None, None, None, None, '', '', '', '', 'TT', '', 6, 'published', True, 'Please give your answers in the discussion [section](#comments) below and exchange your findings with other learners.', None, 'Please give your answers in the discussion [section](#comments) below and exchange your findings with other learners.', None, 229), (1310, datetime.datetime(2022, 5, 5, 19, 21, 25, 855061, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 13, 58, 44, 403269, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 13, 58, 44, 350527, tzinfo=datetime.timezone.utc), False, 'Our futures', None, 'Our futures', None, '', None, None, None, 'Watch Frank Krysiak and Hannes Weigt presenting their own choices for the future of the example system.', None, 'Watch Frank Krysiak and Hannes Weigt presenting their own choices for the future of the example system.', None, '', 'our-futures', 'You were not the only one tasked to design a policy system for our example market. We did the same.\r\n{.lead}\r\n\r\n![embed](https://vimeo.com/734336820/3d482871db)\r\n\r\n \r\nSo watch how Frank Krysiak is designing a system focused on internalising external costs while Hannes Weigt aims to support renewables today to get a payoff in the future.\r\n \r\nWhat do you think of our two policy sets?', '', 'You were not the only one tasked to design a policy system for our example market. We did the same.\r\n{.lead}\r\n\r\n![embed](https://vimeo.com/734336820/3d482871db)\r\n\r\n \r\nSo watch how Frank Krysiak is designing a system focused on internalising external costs while Hannes Weigt aims to support renewables today to get a payoff in the future.\r\n \r\nWhat do you think of our two policy sets?', '', '', '', '', '', None, None, None, None, '', '', '', '', 'TV', '', 7, 'published', False, None, None, None, None, 229), (1311, datetime.datetime(2022, 5, 5, 19, 21, 35, 955993, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 13, 59, 29, 223460, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 13, 59, 29, 173488, tzinfo=datetime.timezone.utc), False, 'Last essential steps', None, 'Last essential steps', None, '', None, None, None, 'Watch Hannes Weigt explaining how to put the different model phases into a consistent story.', None, 'Watch Hannes Weigt explaining how to put the different model phases into a consistent story.', None, '', 'last-essential-steps', 'Regardless, whether you have a conceptual model with complicated interactions hidden in the mathematical equations of your solution or a numerical model with a gazillion numbers, you will need to transfer your findings into something others can understand.\r\n{.lead}\r\n\r\n![embed](https://vimeo.com/734336359/96a965f5b3)\r\n \r\nModel interpretation therefore can be seen as a two-step process:\r\n\r\n![First](/media/markdownx/738d7c5a-eb3b-4830-9f32-ea55ac68b1e9.png)\r\n\r\nFirst, you need to **understand your own model results**. We covered aspects of this challenge throughout the course like interpreting activity and price variables or discussing the results of the model exercises. By digging into your model results, performing sensitivity analyses, testing the robustness, and figuring out what drives your results, you will get the elements needed for a good result presentation.\r\n\r\n![Second](/media/markdownx/129e248b-0311-4a90-95ac-c62c0643b5c7.png)\r\n\r\nSecond, you need to **transfer this understanding into a consistent storyline** linking back to your original problem. You will have to convince others that your model is a credible representation for your research question and that your findings provide added value. The four phases of modelling help you to structure your story.', '', 'Regardless, whether you have a conceptual model with complicated interactions hidden in the mathematical equations of your solution or a numerical model with a gazillion numbers, you will need to transfer your findings into something others can understand.\r\n{.lead}\r\n\r\n![embed](https://vimeo.com/734336359/96a965f5b3)\r\n \r\nModel interpretation therefore can be seen as a two-step process:\r\n\r\n![First](/media/markdownx/738d7c5a-eb3b-4830-9f32-ea55ac68b1e9.png)\r\n\r\nFirst, you need to **understand your own model results**. We covered aspects of this challenge throughout the course like interpreting activity and price variables or discussing the results of the model exercises. By digging into your model results, performing sensitivity analyses, testing the robustness, and figuring out what drives your results, you will get the elements needed for a good result presentation.\r\n\r\n![Second](/media/markdownx/129e248b-0311-4a90-95ac-c62c0643b5c7.png)\r\n\r\nSecond, you need to **transfer this understanding into a consistent storyline** linking back to your original problem. You will have to convince others that your model is a credible representation for your research question and that your findings provide added value. The four phases of modelling help you to structure your story.', '', '', '', '', '', None, None, None, None, '', '', '', '', 'TV', '', 8, 'published', False, None, None, None, None, 229), (1312, datetime.datetime(2022, 5, 5, 19, 21, 45, 107741, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 14, 0, 20, 928468, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 14, 0, 20, 878444, tzinfo=datetime.timezone.utc), False, 'From story to paper', None, 'From story to paper', None, '', None, None, None, 'Learn how to transfer the elements of your story into an understandable research paper.', None, 'Learn how to transfer the elements of your story into an understandable research paper.', None, '', 'from-story-to-paper', 'Let’s shortly look a bit more closer at how to transfer your model into a consistent story.\r\n{.lead}\r\n\r\nAs explained in the last step you can use the four phase structure presented in this course as a good guide on how to arrange your story. This structure also nicely lines up with the general hourglass structure of paper writing:\r\n\r\n![Graph showing the four modeling phases in comparison to the classic hourglass structure of paper writing](/media/markdownx/c3b8c245-0494-4050-8207-37b0624a0640.png)\r\n \r\nYou should always start and end broadly to ensure a consistent frame for your story and make it accessible to a wide audience. Motivate your research so that anyone understands why this is interesting. Provide a clear research question (your **‘Problem’**) and relate it to existing research and approaches thereby becoming more specific. In a classical paper, those are the ‘Introduction’ and ‘Literature Review’ sections.\r\n \r\nYour **‘Model’** and **‘Solution’** methods are the most specific parts and should provide sufficient detail for others to reproduce your work. They correspond to the ‘Method’ section within research papers. Those are the parts where you need to convince other modellers that your model is only wrong because it is a model and not a bad model. So make sure to provide a clear outline of your model design, assumptions, and simplifications.\r\n \r\nWith your results, you again broaden the scope. Usually, you first present your main findings followed by a discussion and interpretation. The **‘Interpretation’** will need to provide the link from your specific methods and results to the general problem you introduced. The conclusion will then close your story and should again be written in a way that anyone can understand what you have done.\r\n \r\nMake sure that you provide your readers with all the elements they need to follow your story and try to avoid opening up side-stories that distract from your main story-arch. A good way to learn how to write understandable papers or reports is examining good examples. So, whenever you find a reference you like, and consider good in getting its message across, check how they structured their story.\r\n\r\n<br>\r\n \r\nRecommended readings \r\n{.footnote-title}\r\n\r\n \r\n\r\nIf you want to have some more guidelines on how to write a consistent research paper you may want to have a look at one of the following references.\r\n{.citation-indented}\r\n \r\nBem, D. J. (2003). Writing the empirical journal. In: Darley, J. M. et al. (Eds) (2003). The Compleat Academic: A Practical Guide for the Beginning Social Scientist, 2nd Edition. Washington, DC: American Psychological Association.\r\n{.citation-indented}\r\n\r\nNikolov, P. (2013). Writing tips for economics research papers. Harvard University.\r\n{.citation-indented}\r\n\r\nVarian, H. R. (1997). How to build an economic model in your spare time. The American Economist, pp. 3-10.\r\n{.citation-indented}', '', 'Let’s shortly look a bit more closer at how to transfer your model into a consistent story.\r\n{.lead}\r\n\r\nAs explained in the last step you can use the four phase structure presented in this course as a good guide on how to arrange your story. This structure also nicely lines up with the general hourglass structure of paper writing:\r\n\r\n![Graph showing the four modeling phases in comparison to the classic hourglass structure of paper writing](/media/markdownx/c3b8c245-0494-4050-8207-37b0624a0640.png)\r\n \r\nYou should always start and end broadly to ensure a consistent frame for your story and make it accessible to a wide audience. Motivate your research so that anyone understands why this is interesting. Provide a clear research question (your **‘Problem’**) and relate it to existing research and approaches thereby becoming more specific. In a classical paper, those are the ‘Introduction’ and ‘Literature Review’ sections.\r\n \r\nYour **‘Model’** and **‘Solution’** methods are the most specific parts and should provide sufficient detail for others to reproduce your work. They correspond to the ‘Method’ section within research papers. Those are the parts where you need to convince other modellers that your model is only wrong because it is a model and not a bad model. So make sure to provide a clear outline of your model design, assumptions, and simplifications.\r\n \r\nWith your results, you again broaden the scope. Usually, you first present your main findings followed by a discussion and interpretation. The **‘Interpretation’** will need to provide the link from your specific methods and results to the general problem you introduced. The conclusion will then close your story and should again be written in a way that anyone can understand what you have done.\r\n \r\nMake sure that you provide your readers with all the elements they need to follow your story and try to avoid opening up side-stories that distract from your main story-arch. A good way to learn how to write understandable papers or reports is examining good examples. So, whenever you find a reference you like, and consider good in getting its message across, check how they structured their story.\r\n\r\n<br>\r\n \r\nRecommended readings \r\n{.footnote-title}\r\n\r\n \r\n\r\nIf you want to have some more guidelines on how to write a consistent research paper you may want to have a look at one of the following references.\r\n{.citation-indented}\r\n \r\nBem, D. J. (2003). Writing the empirical journal. In: Darley, J. M. et al. (Eds) (2003). The Compleat Academic: A Practical Guide for the Beginning Social Scientist, 2nd Edition. Washington, DC: American Psychological Association.\r\n{.citation-indented}\r\n\r\nNikolov, P. (2013). Writing tips for economics research papers. Harvard University.\r\n{.citation-indented}\r\n\r\nVarian, H. R. (1997). How to build an economic model in your spare time. The American Economist, pp. 3-10.\r\n{.citation-indented}', '', '', '', '', '', None, None, None, None, '', '', '', '', 'TT', '', 9, 'published', False, None, None, None, None, 229), (1313, datetime.datetime(2022, 5, 5, 19, 22, 1, 920311, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 14, 1, 55, 65628, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 14, 1, 54, 993567, tzinfo=datetime.timezone.utc), False, 'Assess your knowledge', None, 'Assess your knowledge', None, '', None, None, None, 'Assess your knowledge on this course about exploring possible futures.', None, 'Assess your knowledge on this course about exploring possible futures.', None, '', 'assess-your-knowledge-4', 'Let’s see what you learned!\r\nNote: multiple answers are possible.\r\n{.lead}\r\n\r\n<iframe src="https://h5p.nmc.unibas.ch/wp-admin/admin-ajax.php?action=h5p_embed&id=325" width="885" height="379" frameborder="0" allowfullscreen="allowfullscreen" title="Energy_Economics_5_11"></iframe><script src="https://h5p.nmc.unibas.ch/wp-content/plugins/h5p/h5p-php-library/js/h5p-resizer.js" charset="UTF-8"></script>', '', 'Let’s see what you learned!\r\nNote: multiple answers are possible.\r\n{.lead}\r\n\r\n<iframe src="https://h5p.nmc.unibas.ch/wp-admin/admin-ajax.php?action=h5p_embed&id=325" width="885" height="379" frameborder="0" allowfullscreen="allowfullscreen" title="Energy_Economics_5_11"></iframe><script src="https://h5p.nmc.unibas.ch/wp-content/plugins/h5p/h5p-php-library/js/h5p-resizer.js" charset="UTF-8"></script>', '', '', '', '', '', None, None, None, None, '', '', '', '', 'TQ', '', 10, 'published', False, None, None, None, None, 229), (1315, datetime.datetime(2022, 5, 5, 19, 22, 23, 226305, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 14, 2, 40, 1933, tzinfo=datetime.timezone.utc), datetime.datetime(2024, 2, 1, 14, 2, 39, 951515, tzinfo=datetime.timezone.utc), False, 'Thanks and goodbye', None, 'Thanks and goodbye', None, '', None, None, None, 'Watch Frank Krysiak and Hannes Weigt thanking you for your participation, for your involvement and saying goodbye.', None, 'Watch Frank Krysiak and Hannes Weigt thanking you for your participation, for your involvement and saying goodbye.', None, '', 'thanks-and-goodbye', 'Thank you for joining this course on modelling in environmental and energy economics. We hope you enjoyed this course as much as we did.\r\n{.lead}\r\n\r\n![embed](https://vimeo.com/734336306/27ef7bde2f)\r\n \r\nHopefully, this course has provided you with an interesting overview on the capabilities of economic models. Given the multitude of challenges we face in environmental and energy economics, economic modelling can help us to design and evaluate different policy or market designs, assess the impact of technology innovations, and estimate feedback effects to and from the environment and our society.\r\n\r\nThereby, they play a crucial role in the ongoing debates on how to transfer our energy system or improve the environmental impact of our economy. We are already embedded in this debate and we would like to welcome you onboard for shaping our own future!\r\n \r\nPlease also have a look at the [SCCR CREST Webpage](http://www.sccer-crest.ch){:target=“_blank”} which you may find interesting if you consider deepening the knowledge you hopefully gained through this course.\r\n\r\nThank you for your participation, for your involvement and goodbye!', '', 'Thank you for joining this course on modelling in environmental and energy economics. We hope you enjoyed this course as much as we did.\r\n{.lead}\r\n\r\n![embed](https://vimeo.com/734336306/27ef7bde2f)\r\n \r\nHopefully, this course has provided you with an interesting overview on the capabilities of economic models. Given the multitude of challenges we face in environmental and energy economics, economic modelling can help us to design and evaluate different policy or market designs, assess the impact of technology innovations, and estimate feedback effects to and from the environment and our society.\r\n\r\nThereby, they play a crucial role in the ongoing debates on how to transfer our energy system or improve the environmental impact of our economy. We are already embedded in this debate and we would like to welcome you onboard for shaping our own future!\r\n \r\nPlease also have a look at the [SCCR CREST Webpage](http://www.sccer-crest.ch){:target=“_blank”} which you may find interesting if you consider deepening the knowledge you hopefully gained through this course.\r\n\r\nThank you for your participation, for your involvement and goodbye!', '', '', '', '', '', None, None, None, None, '', '', '', '', 'TV', '', 12, 'published', False, None, None, None, None, 229)]])}, None) | {} | <django_redis.cache.RedisCache object at 0x7910e287a790> | |
/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in run(101) return _run_old_run_func() /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in _run_old_run_func(94) return old_run_func(self, *a, **kw) /usr/local/lib/python3.11/concurrent/futures/thread.py in _worker(83) work_item.run() /usr/local/lib/python3.11/concurrent/futures/thread.py in run(58) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56) result = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in middleware(32) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/allauth/account/middleware.py in middleware(36) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/simple_history/middleware.py in middleware(41) return get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/django_htmx/middleware.py in __call__(43) return self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in __call__(168) response = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/panels.py in process_request(41) return super(CachalotPanel, self).process_request(request) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in __call__(244) current_executor.run_until_future(call_result) /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run_until_future(81) work_item.run() /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run(40) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(90) return callback(request, *args, **kwargs) /app/project/utils/decorators.py in apply_cache(72) cache.set(CACHE_KEY, response.render(), ttl) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_patched_render(41) return old_render(self) /usr/local/lib/python3.11/site-packages/django/template/response.py in render(114) self.content = self.rendered_content /usr/local/lib/python3.11/site-packages/sentry_sdk/utils.py in runner(1788) return sentry_patched_function(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/templates.py in rendered_content(77) return real_rendered_content.fget(self) /usr/local/lib/python3.11/site-packages/django/template/response.py in rendered_content(92) return template.render(context, self._request) /usr/local/lib/python3.11/site-packages/django/template/backends/django.py in render(61) return self.template.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(175) return self._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157) return compiled_parent._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157) return compiled_parent._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63) result = block.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63) result = block.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(541) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63) result = block.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1064) output = self.filter_expression.resolve(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in resolve(715) obj = self.var.resolve(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in resolve(847) value = self._resolve_lookup(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in _resolve_lookup(914) current = current() /app/project/lms_tales/models.py in get_step_number(118) step_list = list(self.chapter.published_steps.all().order_by("order")) /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(37) return original(compiler, *args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(96) return _get_result_or_execute_query( /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in _get_result_or_execute_query(71) cache.set_many(to_be_set, cachalot_settings.CACHALOT_TIMEOUT) |
|||||
0,3546 | get | ('waffle:4.1.0e9e267545e7f919d987e2d016e67ed7e',) | {} | <django_redis.cache.RedisCache object at 0x7910e287a790> | |
/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in run(101) return _run_old_run_func() /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in _run_old_run_func(94) return old_run_func(self, *a, **kw) /usr/local/lib/python3.11/concurrent/futures/thread.py in _worker(83) work_item.run() /usr/local/lib/python3.11/concurrent/futures/thread.py in run(58) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56) result = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in middleware(32) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/allauth/account/middleware.py in middleware(36) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/simple_history/middleware.py in middleware(41) return get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/django_htmx/middleware.py in __call__(43) return self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in __call__(168) response = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/panels.py in process_request(41) return super(CachalotPanel, self).process_request(request) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in __call__(244) current_executor.run_until_future(call_result) /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run_until_future(81) work_item.run() /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run(40) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(90) return callback(request, *args, **kwargs) /app/project/utils/decorators.py in apply_cache(72) cache.set(CACHE_KEY, response.render(), ttl) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_patched_render(41) return old_render(self) /usr/local/lib/python3.11/site-packages/django/template/response.py in render(114) self.content = self.rendered_content /usr/local/lib/python3.11/site-packages/sentry_sdk/utils.py in runner(1788) return sentry_patched_function(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/templates.py in rendered_content(77) return real_rendered_content.fget(self) /usr/local/lib/python3.11/site-packages/django/template/response.py in rendered_content(92) return template.render(context, self._request) /usr/local/lib/python3.11/site-packages/django/template/backends/django.py in render(61) return self.template.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(175) return self._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157) return compiled_parent._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157) return compiled_parent._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63) result = block.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63) result = block.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(541) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/waffle/templatetags/waffle_tags.py in render(36) if self.condition(context.get('request', None), name): /usr/local/lib/python3.11/site-packages/waffle/__init__.py in flag_is_active(19) flag = get_waffle_flag_model().get(flag_name) /usr/local/lib/python3.11/site-packages/waffle/models.py in get(52) cached = cache.get(cache_key) |
|||||
0,3132 | add | ('waffle:4.1.0e9e267545e7f919d987e2d016e67ed7e', <Flag: comments_feature_is_active>) | {} | <django_redis.cache.RedisCache object at 0x7910e287a790> | |
/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in run(101) return _run_old_run_func() /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in _run_old_run_func(94) return old_run_func(self, *a, **kw) /usr/local/lib/python3.11/concurrent/futures/thread.py in _worker(83) work_item.run() /usr/local/lib/python3.11/concurrent/futures/thread.py in run(58) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56) result = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in middleware(32) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/allauth/account/middleware.py in middleware(36) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/simple_history/middleware.py in middleware(41) return get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/django_htmx/middleware.py in __call__(43) return self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in __call__(168) response = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/panels.py in process_request(41) return super(CachalotPanel, self).process_request(request) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in __call__(244) current_executor.run_until_future(call_result) /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run_until_future(81) work_item.run() /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run(40) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(90) return callback(request, *args, **kwargs) /app/project/utils/decorators.py in apply_cache(72) cache.set(CACHE_KEY, response.render(), ttl) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_patched_render(41) return old_render(self) /usr/local/lib/python3.11/site-packages/django/template/response.py in render(114) self.content = self.rendered_content /usr/local/lib/python3.11/site-packages/sentry_sdk/utils.py in runner(1788) return sentry_patched_function(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/templates.py in rendered_content(77) return real_rendered_content.fget(self) /usr/local/lib/python3.11/site-packages/django/template/response.py in rendered_content(92) return template.render(context, self._request) /usr/local/lib/python3.11/site-packages/django/template/backends/django.py in render(61) return self.template.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(175) return self._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157) return compiled_parent._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157) return compiled_parent._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63) result = block.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63) result = block.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(541) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/waffle/templatetags/waffle_tags.py in render(36) if self.condition(context.get('request', None), name): /usr/local/lib/python3.11/site-packages/waffle/__init__.py in flag_is_active(19) flag = get_waffle_flag_model().get(flag_name) /usr/local/lib/python3.11/site-packages/waffle/models.py in get(64) cache.add(cache_key, obj) |
|||||
0,2778 | get_many | (['138549f5508bbba7283d6a0625e51c589d845e8f', '4f1f0b4dfbd30463b5587753e6f3e6ca21ddbf60', 'f57a6e974f30c759efaee1766810e2e2b0a22128'],) | {} | <django_redis.cache.RedisCache object at 0x7910e287a790> | |
/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in run(101) return _run_old_run_func() /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in _run_old_run_func(94) return old_run_func(self, *a, **kw) /usr/local/lib/python3.11/concurrent/futures/thread.py in _worker(83) work_item.run() /usr/local/lib/python3.11/concurrent/futures/thread.py in run(58) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56) result = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in middleware(32) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/allauth/account/middleware.py in middleware(36) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/simple_history/middleware.py in middleware(41) return get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/django_htmx/middleware.py in __call__(43) return self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in __call__(168) response = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/panels.py in process_request(41) return super(CachalotPanel, self).process_request(request) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in __call__(244) current_executor.run_until_future(call_result) /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run_until_future(81) work_item.run() /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run(40) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(90) return callback(request, *args, **kwargs) /app/project/utils/decorators.py in apply_cache(72) cache.set(CACHE_KEY, response.render(), ttl) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_patched_render(41) return old_render(self) /usr/local/lib/python3.11/site-packages/django/template/response.py in render(114) self.content = self.rendered_content /usr/local/lib/python3.11/site-packages/sentry_sdk/utils.py in runner(1788) return sentry_patched_function(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/templates.py in rendered_content(77) return real_rendered_content.fget(self) /usr/local/lib/python3.11/site-packages/django/template/response.py in rendered_content(92) return template.render(context, self._request) /usr/local/lib/python3.11/site-packages/django/template/backends/django.py in render(61) return self.template.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(175) return self._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157) return compiled_parent._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157) return compiled_parent._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63) result = block.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63) result = block.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(541) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(320) if match: /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(37) return original(compiler, *args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(96) return _get_result_or_execute_query( /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in _get_result_or_execute_query(46) data = cache.get_many(table_cache_keys + [cache_key]) |
|||||
0,2553 | get_many | (['138549f5508bbba7283d6a0625e51c589d845e8f', '4f1f0b4dfbd30463b5587753e6f3e6ca21ddbf60', 'f57a6e974f30c759efaee1766810e2e2b0a22128'],) | {} | <django_redis.cache.RedisCache object at 0x7910e287a790> | |
/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in run(101) return _run_old_run_func() /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in _run_old_run_func(94) return old_run_func(self, *a, **kw) /usr/local/lib/python3.11/concurrent/futures/thread.py in _worker(83) work_item.run() /usr/local/lib/python3.11/concurrent/futures/thread.py in run(58) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56) result = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in middleware(32) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/allauth/account/middleware.py in middleware(36) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/simple_history/middleware.py in middleware(41) return get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/django_htmx/middleware.py in __call__(43) return self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in __call__(168) response = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/panels.py in process_request(41) return super(CachalotPanel, self).process_request(request) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in __call__(244) current_executor.run_until_future(call_result) /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run_until_future(81) work_item.run() /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run(40) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(90) return callback(request, *args, **kwargs) /app/project/utils/decorators.py in apply_cache(72) cache.set(CACHE_KEY, response.render(), ttl) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_patched_render(41) return old_render(self) /usr/local/lib/python3.11/site-packages/django/template/response.py in render(114) self.content = self.rendered_content /usr/local/lib/python3.11/site-packages/sentry_sdk/utils.py in runner(1788) return sentry_patched_function(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/templates.py in rendered_content(77) return real_rendered_content.fget(self) /usr/local/lib/python3.11/site-packages/django/template/response.py in rendered_content(92) return template.render(context, self._request) /usr/local/lib/python3.11/site-packages/django/template/backends/django.py in render(61) return self.template.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(175) return self._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157) return compiled_parent._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157) return compiled_parent._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63) result = block.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63) result = block.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(541) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(321) return nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(194) len_values = len(values) /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(37) return original(compiler, *args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(96) return _get_result_or_execute_query( /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in _get_result_or_execute_query(46) data = cache.get_many(table_cache_keys + [cache_key]) |
|||||
0,2749 | get_many | (['d00779073776b2287204a6fa5336494275fc73d5', 'cb2c659bc318706cfc37be3263ce9168c470b352'],) | {} | <django_redis.cache.RedisCache object at 0x7910e287a790> | |
/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in run(101) return _run_old_run_func() /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in _run_old_run_func(94) return old_run_func(self, *a, **kw) /usr/local/lib/python3.11/concurrent/futures/thread.py in _worker(83) work_item.run() /usr/local/lib/python3.11/concurrent/futures/thread.py in run(58) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56) result = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in middleware(32) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/allauth/account/middleware.py in middleware(36) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/simple_history/middleware.py in middleware(41) return get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/django_htmx/middleware.py in __call__(43) return self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in __call__(168) response = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/panels.py in process_request(41) return super(CachalotPanel, self).process_request(request) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in __call__(244) current_executor.run_until_future(call_result) /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run_until_future(81) work_item.run() /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run(40) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(90) return callback(request, *args, **kwargs) /app/project/utils/decorators.py in apply_cache(72) cache.set(CACHE_KEY, response.render(), ttl) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_patched_render(41) return old_render(self) /usr/local/lib/python3.11/site-packages/django/template/response.py in render(114) self.content = self.rendered_content /usr/local/lib/python3.11/site-packages/sentry_sdk/utils.py in runner(1788) return sentry_patched_function(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/templates.py in rendered_content(77) return real_rendered_content.fget(self) /usr/local/lib/python3.11/site-packages/django/template/response.py in rendered_content(92) return template.render(context, self._request) /usr/local/lib/python3.11/site-packages/django/template/backends/django.py in render(61) return self.template.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(175) return self._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157) return compiled_parent._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157) return compiled_parent._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63) result = block.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63) result = block.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(541) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(321) return nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(238) nodelist.append(node.render_annotated(context)) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1064) output = self.filter_expression.resolve(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in resolve(715) obj = self.var.resolve(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in resolve(847) value = self._resolve_lookup(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in _resolve_lookup(890) current = getattr(current, bit) /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(37) return original(compiler, *args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(96) return _get_result_or_execute_query( /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in _get_result_or_execute_query(46) data = cache.get_many(table_cache_keys + [cache_key]) |
|||||
0,2819 | set_many | ({'cb2c659bc318706cfc37be3263ce9168c470b352': (1736881792.1478515, [[(706, datetime.datetime(2022, 5, 11, 10, 13, 40, 431610, tzinfo=datetime.timezone.utc), datetime.datetime(2022, 5, 16, 8, 54, 8, 191839, tzinfo=datetime.timezone.utc), 'English transcript: Last essential steps', 44, 'exploring-possible-futures/5_9_transcript.pdf')]])}, None) | {} | <django_redis.cache.RedisCache object at 0x7910e287a790> | |
/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in run(101) return _run_old_run_func() /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in _run_old_run_func(94) return old_run_func(self, *a, **kw) /usr/local/lib/python3.11/concurrent/futures/thread.py in _worker(83) work_item.run() /usr/local/lib/python3.11/concurrent/futures/thread.py in run(58) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56) result = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in middleware(32) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/allauth/account/middleware.py in middleware(36) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/simple_history/middleware.py in middleware(41) return get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/django_htmx/middleware.py in __call__(43) return self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in __call__(168) response = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/panels.py in process_request(41) return super(CachalotPanel, self).process_request(request) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in __call__(244) current_executor.run_until_future(call_result) /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run_until_future(81) work_item.run() /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run(40) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(90) return callback(request, *args, **kwargs) /app/project/utils/decorators.py in apply_cache(72) cache.set(CACHE_KEY, response.render(), ttl) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_patched_render(41) return old_render(self) /usr/local/lib/python3.11/site-packages/django/template/response.py in render(114) self.content = self.rendered_content /usr/local/lib/python3.11/site-packages/sentry_sdk/utils.py in runner(1788) return sentry_patched_function(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/templates.py in rendered_content(77) return real_rendered_content.fget(self) /usr/local/lib/python3.11/site-packages/django/template/response.py in rendered_content(92) return template.render(context, self._request) /usr/local/lib/python3.11/site-packages/django/template/backends/django.py in render(61) return self.template.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(175) return self._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157) return compiled_parent._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157) return compiled_parent._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63) result = block.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63) result = block.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(541) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(321) return nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(238) nodelist.append(node.render_annotated(context)) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1064) output = self.filter_expression.resolve(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in resolve(715) obj = self.var.resolve(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in resolve(847) value = self._resolve_lookup(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in _resolve_lookup(890) current = getattr(current, bit) /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(37) return original(compiler, *args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(96) return _get_result_or_execute_query( /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in _get_result_or_execute_query(71) cache.set_many(to_be_set, cachalot_settings.CACHALOT_TIMEOUT) |
|||||
0,2649 | get_many | (['d00779073776b2287204a6fa5336494275fc73d5', 'e50cab71f59adf1aef4102406a8a05f11f3f7125'],) | {} | <django_redis.cache.RedisCache object at 0x7910e287a790> | |
/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in run(101) return _run_old_run_func() /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in _run_old_run_func(94) return old_run_func(self, *a, **kw) /usr/local/lib/python3.11/concurrent/futures/thread.py in _worker(83) work_item.run() /usr/local/lib/python3.11/concurrent/futures/thread.py in run(58) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56) result = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in middleware(32) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/allauth/account/middleware.py in middleware(36) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/simple_history/middleware.py in middleware(41) return get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/django_htmx/middleware.py in __call__(43) return self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in __call__(168) response = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/panels.py in process_request(41) return super(CachalotPanel, self).process_request(request) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in __call__(244) current_executor.run_until_future(call_result) /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run_until_future(81) work_item.run() /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run(40) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(90) return callback(request, *args, **kwargs) /app/project/utils/decorators.py in apply_cache(72) cache.set(CACHE_KEY, response.render(), ttl) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_patched_render(41) return old_render(self) /usr/local/lib/python3.11/site-packages/django/template/response.py in render(114) self.content = self.rendered_content /usr/local/lib/python3.11/site-packages/sentry_sdk/utils.py in runner(1788) return sentry_patched_function(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/templates.py in rendered_content(77) return real_rendered_content.fget(self) /usr/local/lib/python3.11/site-packages/django/template/response.py in rendered_content(92) return template.render(context, self._request) /usr/local/lib/python3.11/site-packages/django/template/backends/django.py in render(61) return self.template.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(175) return self._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157) return compiled_parent._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157) return compiled_parent._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63) result = block.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63) result = block.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(541) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(321) return nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(238) nodelist.append(node.render_annotated(context)) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1064) output = self.filter_expression.resolve(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in resolve(715) obj = self.var.resolve(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in resolve(847) value = self._resolve_lookup(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in _resolve_lookup(890) current = getattr(current, bit) /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(37) return original(compiler, *args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(96) return _get_result_or_execute_query( /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in _get_result_or_execute_query(46) data = cache.get_many(table_cache_keys + [cache_key]) |
|||||
0,2470 | set_many | ({'e50cab71f59adf1aef4102406a8a05f11f3f7125': (1736881792.1526794, [[(705, datetime.datetime(2022, 5, 11, 10, 13, 36, 64043, tzinfo=datetime.timezone.utc), datetime.datetime(2022, 5, 16, 8, 53, 57, 111426, tzinfo=datetime.timezone.utc), 'Slides: Last essential steps', 44, 'exploring-possible-futures/5_9.pdf')]])}, None) | {} | <django_redis.cache.RedisCache object at 0x7910e287a790> | |
/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in run(101) return _run_old_run_func() /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in _run_old_run_func(94) return old_run_func(self, *a, **kw) /usr/local/lib/python3.11/concurrent/futures/thread.py in _worker(83) work_item.run() /usr/local/lib/python3.11/concurrent/futures/thread.py in run(58) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56) result = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in middleware(32) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/allauth/account/middleware.py in middleware(36) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/simple_history/middleware.py in middleware(41) return get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/django_htmx/middleware.py in __call__(43) return self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in __call__(168) response = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/panels.py in process_request(41) return super(CachalotPanel, self).process_request(request) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in __call__(244) current_executor.run_until_future(call_result) /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run_until_future(81) work_item.run() /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run(40) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(90) return callback(request, *args, **kwargs) /app/project/utils/decorators.py in apply_cache(72) cache.set(CACHE_KEY, response.render(), ttl) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_patched_render(41) return old_render(self) /usr/local/lib/python3.11/site-packages/django/template/response.py in render(114) self.content = self.rendered_content /usr/local/lib/python3.11/site-packages/sentry_sdk/utils.py in runner(1788) return sentry_patched_function(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/templates.py in rendered_content(77) return real_rendered_content.fget(self) /usr/local/lib/python3.11/site-packages/django/template/response.py in rendered_content(92) return template.render(context, self._request) /usr/local/lib/python3.11/site-packages/django/template/backends/django.py in render(61) return self.template.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(175) return self._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157) return compiled_parent._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157) return compiled_parent._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63) result = block.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63) result = block.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(541) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(321) return nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(238) nodelist.append(node.render_annotated(context)) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1064) output = self.filter_expression.resolve(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in resolve(715) obj = self.var.resolve(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in resolve(847) value = self._resolve_lookup(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in _resolve_lookup(890) current = getattr(current, bit) /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(37) return original(compiler, *args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(96) return _get_result_or_execute_query( /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in _get_result_or_execute_query(71) cache.set_many(to_be_set, cachalot_settings.CACHALOT_TIMEOUT) |
|||||
0,2363 | get_many | (['76e323efd8711853e13c9f7cf976845908364eb2', '279cc63f281014577fded013f5b239a542a3a72b'],) | {} | <django_redis.cache.RedisCache object at 0x7910e287a790> | |
/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in run(101) return _run_old_run_func() /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in _run_old_run_func(94) return old_run_func(self, *a, **kw) /usr/local/lib/python3.11/concurrent/futures/thread.py in _worker(83) work_item.run() /usr/local/lib/python3.11/concurrent/futures/thread.py in run(58) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56) result = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in middleware(32) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/allauth/account/middleware.py in middleware(36) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/simple_history/middleware.py in middleware(41) return get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/django_htmx/middleware.py in __call__(43) return self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in __call__(168) response = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/panels.py in process_request(41) return super(CachalotPanel, self).process_request(request) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in __call__(244) current_executor.run_until_future(call_result) /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run_until_future(81) work_item.run() /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run(40) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(90) return callback(request, *args, **kwargs) /app/project/utils/decorators.py in apply_cache(72) cache.set(CACHE_KEY, response.render(), ttl) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_patched_render(41) return old_render(self) /usr/local/lib/python3.11/site-packages/django/template/response.py in render(114) self.content = self.rendered_content /usr/local/lib/python3.11/site-packages/sentry_sdk/utils.py in runner(1788) return sentry_patched_function(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/templates.py in rendered_content(77) return real_rendered_content.fget(self) /usr/local/lib/python3.11/site-packages/django/template/response.py in rendered_content(92) return template.render(context, self._request) /usr/local/lib/python3.11/site-packages/django/template/backends/django.py in render(61) return self.template.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(175) return self._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157) return compiled_parent._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157) return compiled_parent._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63) result = block.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63) result = block.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(541) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(314) match = condition.eval(context) /usr/local/lib/python3.11/site-packages/django/template/smartif.py in eval(60) return func(context, self.first, self.second) /usr/local/lib/python3.11/site-packages/django/template/smartif.py in <lambda>(103) "is not": infix(10, lambda context, x, y: x.eval(context) is not y.eval(context)), /usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in eval(877) return self.value.resolve(context, ignore_failures=True) /usr/local/lib/python3.11/site-packages/django/template/base.py in resolve(715) obj = self.var.resolve(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in resolve(847) value = self._resolve_lookup(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in _resolve_lookup(914) current = current() /app/project/lms_tales/models.py in get_absolute_url(96) str(self.chapter.course.slug), /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(37) return original(compiler, *args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(96) return _get_result_or_execute_query( /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in _get_result_or_execute_query(46) data = cache.get_many(table_cache_keys + [cache_key]) |
|||||
0,2547 | get_many | (['e3a5db5a670ad803efb866441f33de58309be2e2', 'fd9d74e2f59f427ba11b19f890ef4207c0f2496f'],) | {} | <django_redis.cache.RedisCache object at 0x7910e287a790> | |
/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in run(101) return _run_old_run_func() /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in _run_old_run_func(94) return old_run_func(self, *a, **kw) /usr/local/lib/python3.11/concurrent/futures/thread.py in _worker(83) work_item.run() /usr/local/lib/python3.11/concurrent/futures/thread.py in run(58) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56) result = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in middleware(32) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/allauth/account/middleware.py in middleware(36) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/simple_history/middleware.py in middleware(41) return get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/django_htmx/middleware.py in __call__(43) return self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in __call__(168) response = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/panels.py in process_request(41) return super(CachalotPanel, self).process_request(request) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in __call__(244) current_executor.run_until_future(call_result) /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run_until_future(81) work_item.run() /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run(40) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(90) return callback(request, *args, **kwargs) /app/project/utils/decorators.py in apply_cache(72) cache.set(CACHE_KEY, response.render(), ttl) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_patched_render(41) return old_render(self) /usr/local/lib/python3.11/site-packages/django/template/response.py in render(114) self.content = self.rendered_content /usr/local/lib/python3.11/site-packages/sentry_sdk/utils.py in runner(1788) return sentry_patched_function(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/templates.py in rendered_content(77) return real_rendered_content.fget(self) /usr/local/lib/python3.11/site-packages/django/template/response.py in rendered_content(92) return template.render(context, self._request) /usr/local/lib/python3.11/site-packages/django/template/backends/django.py in render(61) return self.template.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(175) return self._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157) return compiled_parent._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157) return compiled_parent._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63) result = block.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63) result = block.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(541) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(314) match = condition.eval(context) /usr/local/lib/python3.11/site-packages/django/template/smartif.py in eval(60) return func(context, self.first, self.second) /usr/local/lib/python3.11/site-packages/django/template/smartif.py in <lambda>(103) "is not": infix(10, lambda context, x, y: x.eval(context) is not y.eval(context)), /usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in eval(877) return self.value.resolve(context, ignore_failures=True) /usr/local/lib/python3.11/site-packages/django/template/base.py in resolve(715) obj = self.var.resolve(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in resolve(847) value = self._resolve_lookup(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in _resolve_lookup(914) current = current() /app/project/lms_tales/models.py in get_absolute_url(96) str(self.chapter.course.slug), /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(37) return original(compiler, *args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(96) return _get_result_or_execute_query( /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in _get_result_or_execute_query(46) data = cache.get_many(table_cache_keys + [cache_key]) |
|||||
0,2278 | get_many | (['76e323efd8711853e13c9f7cf976845908364eb2', '279cc63f281014577fded013f5b239a542a3a72b'],) | {} | <django_redis.cache.RedisCache object at 0x7910e287a790> | |
/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in run(101) return _run_old_run_func() /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in _run_old_run_func(94) return old_run_func(self, *a, **kw) /usr/local/lib/python3.11/concurrent/futures/thread.py in _worker(83) work_item.run() /usr/local/lib/python3.11/concurrent/futures/thread.py in run(58) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56) result = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in middleware(32) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/allauth/account/middleware.py in middleware(36) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/simple_history/middleware.py in middleware(41) return get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/django_htmx/middleware.py in __call__(43) return self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in __call__(168) response = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/panels.py in process_request(41) return super(CachalotPanel, self).process_request(request) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in __call__(244) current_executor.run_until_future(call_result) /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run_until_future(81) work_item.run() /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run(40) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(90) return callback(request, *args, **kwargs) /app/project/utils/decorators.py in apply_cache(72) cache.set(CACHE_KEY, response.render(), ttl) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_patched_render(41) return old_render(self) /usr/local/lib/python3.11/site-packages/django/template/response.py in render(114) self.content = self.rendered_content /usr/local/lib/python3.11/site-packages/sentry_sdk/utils.py in runner(1788) return sentry_patched_function(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/templates.py in rendered_content(77) return real_rendered_content.fget(self) /usr/local/lib/python3.11/site-packages/django/template/response.py in rendered_content(92) return template.render(context, self._request) /usr/local/lib/python3.11/site-packages/django/template/backends/django.py in render(61) return self.template.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(175) return self._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157) return compiled_parent._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157) return compiled_parent._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63) result = block.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63) result = block.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(541) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(314) match = condition.eval(context) /usr/local/lib/python3.11/site-packages/django/template/smartif.py in eval(60) return func(context, self.first, self.second) /usr/local/lib/python3.11/site-packages/django/template/smartif.py in <lambda>(103) "is not": infix(10, lambda context, x, y: x.eval(context) is not y.eval(context)), /usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in eval(877) return self.value.resolve(context, ignore_failures=True) /usr/local/lib/python3.11/site-packages/django/template/base.py in resolve(715) obj = self.var.resolve(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in resolve(847) value = self._resolve_lookup(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in _resolve_lookup(914) current = current() /app/project/lms_tales/models.py in get_absolute_url(96) str(self.chapter.course.slug), /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(37) return original(compiler, *args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(96) return _get_result_or_execute_query( /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in _get_result_or_execute_query(46) data = cache.get_many(table_cache_keys + [cache_key]) |
|||||
0,2541 | get_many | (['e3a5db5a670ad803efb866441f33de58309be2e2', 'fd9d74e2f59f427ba11b19f890ef4207c0f2496f'],) | {} | <django_redis.cache.RedisCache object at 0x7910e287a790> | |
/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in run(101) return _run_old_run_func() /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in _run_old_run_func(94) return old_run_func(self, *a, **kw) /usr/local/lib/python3.11/concurrent/futures/thread.py in _worker(83) work_item.run() /usr/local/lib/python3.11/concurrent/futures/thread.py in run(58) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56) result = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in middleware(32) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/allauth/account/middleware.py in middleware(36) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/simple_history/middleware.py in middleware(41) return get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/django_htmx/middleware.py in __call__(43) return self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in __call__(168) response = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/panels.py in process_request(41) return super(CachalotPanel, self).process_request(request) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in __call__(244) current_executor.run_until_future(call_result) /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run_until_future(81) work_item.run() /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run(40) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(90) return callback(request, *args, **kwargs) /app/project/utils/decorators.py in apply_cache(72) cache.set(CACHE_KEY, response.render(), ttl) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_patched_render(41) return old_render(self) /usr/local/lib/python3.11/site-packages/django/template/response.py in render(114) self.content = self.rendered_content /usr/local/lib/python3.11/site-packages/sentry_sdk/utils.py in runner(1788) return sentry_patched_function(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/templates.py in rendered_content(77) return real_rendered_content.fget(self) /usr/local/lib/python3.11/site-packages/django/template/response.py in rendered_content(92) return template.render(context, self._request) /usr/local/lib/python3.11/site-packages/django/template/backends/django.py in render(61) return self.template.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(175) return self._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157) return compiled_parent._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157) return compiled_parent._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63) result = block.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63) result = block.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(541) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in render(314) match = condition.eval(context) /usr/local/lib/python3.11/site-packages/django/template/smartif.py in eval(60) return func(context, self.first, self.second) /usr/local/lib/python3.11/site-packages/django/template/smartif.py in <lambda>(103) "is not": infix(10, lambda context, x, y: x.eval(context) is not y.eval(context)), /usr/local/lib/python3.11/site-packages/django/template/defaulttags.py in eval(877) return self.value.resolve(context, ignore_failures=True) /usr/local/lib/python3.11/site-packages/django/template/base.py in resolve(715) obj = self.var.resolve(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in resolve(847) value = self._resolve_lookup(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in _resolve_lookup(914) current = current() /app/project/lms_tales/models.py in get_absolute_url(96) str(self.chapter.course.slug), /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(37) return original(compiler, *args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in inner(96) return _get_result_or_execute_query( /usr/local/lib/python3.11/site-packages/cachalot/monkey_patch.py in _get_result_or_execute_query(46) data = cache.get_many(table_cache_keys + [cache_key]) |
|||||
0,2349 | get | ('waffle:4.1.0e9e267545e7f919d987e2d016e67ed7e',) | {} | <django_redis.cache.RedisCache object at 0x7910e287a790> | |
/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in run(101) return _run_old_run_func() /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in _run_old_run_func(94) return old_run_func(self, *a, **kw) /usr/local/lib/python3.11/concurrent/futures/thread.py in _worker(83) work_item.run() /usr/local/lib/python3.11/concurrent/futures/thread.py in run(58) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56) result = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in middleware(32) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/allauth/account/middleware.py in middleware(36) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/simple_history/middleware.py in middleware(41) return get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/django_htmx/middleware.py in __call__(43) return self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in __call__(168) response = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/panels.py in process_request(41) return super(CachalotPanel, self).process_request(request) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in __call__(244) current_executor.run_until_future(call_result) /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run_until_future(81) work_item.run() /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run(40) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(90) return callback(request, *args, **kwargs) /app/project/utils/decorators.py in apply_cache(72) cache.set(CACHE_KEY, response.render(), ttl) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_patched_render(41) return old_render(self) /usr/local/lib/python3.11/site-packages/django/template/response.py in render(114) self.content = self.rendered_content /usr/local/lib/python3.11/site-packages/sentry_sdk/utils.py in runner(1788) return sentry_patched_function(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/templates.py in rendered_content(77) return real_rendered_content.fget(self) /usr/local/lib/python3.11/site-packages/django/template/response.py in rendered_content(92) return template.render(context, self._request) /usr/local/lib/python3.11/site-packages/django/template/backends/django.py in render(61) return self.template.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(175) return self._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157) return compiled_parent._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(157) return compiled_parent._render(context) /usr/local/lib/python3.11/site-packages/django/test/utils.py in instrumented_test_render(112) return self.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/django/template/loader_tags.py in render(63) result = block.nodelist.render(context) /usr/local/lib/python3.11/site-packages/django/template/base.py in render(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in <listcomp>(1005) return SafeString("".join([node.render_annotated(context) for node in self])) /usr/local/lib/python3.11/site-packages/django/template/base.py in render_annotated(966) return self.render(context) /usr/local/lib/python3.11/site-packages/waffle/templatetags/waffle_tags.py in render(36) if self.condition(context.get('request', None), name): /usr/local/lib/python3.11/site-packages/waffle/__init__.py in flag_is_active(19) flag = get_waffle_flag_model().get(flag_name) /usr/local/lib/python3.11/site-packages/waffle/models.py in get(52) cached = cache.get(cache_key) |
|||||
1,8306 | set | ('view_cache_view_/de/exploring-possible-futures-44/putting-the-pieces-together-to-look-into-the-future-229/last-essential-steps-1311_anonymous', <TemplateResponse status_code=200, "text/html; charset=utf-8">, 600) | {} | <django_redis.cache.RedisCache object at 0x7910e287a790> | |
/usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in run(101) return _run_old_run_func() /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/threading.py in _run_old_run_func(94) return old_run_func(self, *a, **kw) /usr/local/lib/python3.11/concurrent/futures/thread.py in _worker(83) work_item.run() /usr/local/lib/python3.11/concurrent/futures/thread.py in run(58) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/corsheaders/middleware.py in __call__(56) result = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in middleware(32) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/allauth/account/middleware.py in middleware(36) response = get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/simple_history/middleware.py in middleware(41) return get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/django_htmx/middleware.py in __call__(43) return self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /app/project/lms_tales/middleware.py in __call__(168) response = self.get_response(request) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/middleware.py in __call__(177) return f(*args, **kwargs) /usr/local/lib/python3.11/site-packages/cachalot/panels.py in process_request(41) return super(CachalotPanel, self).process_request(request) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in __call__(244) current_executor.run_until_future(call_result) /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run_until_future(81) work_item.run() /usr/local/lib/python3.11/site-packages/asgiref/current_thread_executor.py in run(40) result = self.fn(*self.args, **self.kwargs) /usr/local/lib/python3.11/site-packages/asgiref/sync.py in thread_handler(522) return func(*args, **kwargs) /usr/local/lib/python3.11/site-packages/sentry_sdk/integrations/django/views.py in sentry_wrapped_callback(90) return callback(request, *args, **kwargs) /app/project/utils/decorators.py in apply_cache(72) cache.set(CACHE_KEY, response.render(), ttl) |
Cachalot
Database 'default'
Application | Model | Last invalidation |
---|---|---|
django_q | Failure | 8 Stunden, 39 Minuten |
notifications | Notification | 8 Stunden, 39 Minuten |
django_q | Schedule | 8 Stunden, 39 Minuten |
reporting | Report | 11 Stunden, 2 Minuten |
lms_tales | CourseMetrics | 18 Stunden, 9 Minuten |
search | FulltextSearchModel | 20 Stunden, 9 Minuten |
search | TrigramSearchModel | 1 Tag, 5 Stunden |
lms_tales | HistoricalTalesCourse | 1 Tag, 5 Stunden |
lms_tales | TalesCourse | 1 Tag, 5 Stunden |
lms_tales | TalesStep | 1 Tag, 5 Stunden |
lms_tales | TalesChapter | 1 Tag, 5 Stunden |
lms_tales | HistoricalTalesStep | 1 Tag, 5 Stunden |
lms_tales | HistoricalTalesChapter | 1 Tag, 5 Stunden |
lms_roles | CourseRole | 1 Tag, 5 Stunden |
auth | Permission | 1 Tag, 6 Stunden |
contenttypes | ContentType | 1 Tag, 6 Stunden |
startpage | SliderItem | 1 Tag, 6 Stunden |
startpage | CategoryCourse | 1 Tag, 6 Stunden |
tags | Category | 1 Tag, 6 Stunden |
tags | Tag | 1 Tag, 6 Stunden |
lms_static_texts | StaticText | 1 Tag, 6 Stunden |
lms_static_texts | HistoricalStaticText | 1 Tag, 6 Stunden |
lms_comments | Comment | 1 Tag, 6 Stunden |
lms_comments | Reply | 1 Tag, 6 Stunden |
lms_comments | Reaction | 1 Tag, 6 Stunden |
lms_comments | Flag | 1 Tag, 6 Stunden |
lms_tales | TalesStepFileNew | 1 Tag, 6 Stunden |
lms_tales | TalesStepFile | 1 Tag, 6 Stunden |
lms_tales | TalesCourseFile | 1 Tag, 6 Stunden |
lms_tales | TalesAuthor | 1 Tag, 6 Stunden |
lms_tales | TalesPartner | 1 Tag, 6 Stunden |
lms_tales | TalesGlossaryItem | 1 Tag, 6 Stunden |
lms_tales | TalesPath | 1 Tag, 6 Stunden |
lms_tales | TalesPathStep | 1 Tag, 6 Stunden |
lms_tales | TalesCourseRun | 1 Tag, 6 Stunden |
lms_tales | TalesCourseRunStep | 1 Tag, 6 Stunden |
lms_tales | ScheduledMessage | 1 Tag, 6 Stunden |
lms_tales | HistoricalTalesStepFile | 1 Tag, 6 Stunden |
lms_tales | HistoricalTalesPath | 1 Tag, 6 Stunden |
lms_base | GlossaryMixin | 1 Tag, 6 Stunden |
lms_base | GlossaryItemMixin | 1 Tag, 6 Stunden |
users | User | 1 Tag, 6 Stunden |
users | UserSettings | 1 Tag, 6 Stunden |
auth | Group | 1 Tag, 6 Stunden |
sessions | Session | 1 Tag, 6 Stunden |
sites | Site | 1 Tag, 6 Stunden |
flatpages | FlatPage | 1 Tag, 6 Stunden |
admin | LogEntry | 1 Tag, 6 Stunden |
redirects | Redirect | 1 Tag, 6 Stunden |
account | EmailAddress | 1 Tag, 6 Stunden |
account | EmailConfirmation | 1 Tag, 6 Stunden |
socialaccount | SocialApp | 1 Tag, 6 Stunden |
socialaccount | SocialAccount | 1 Tag, 6 Stunden |
socialaccount | SocialToken | 1 Tag, 6 Stunden |
waffle | Flag | 1 Tag, 6 Stunden |
waffle | Switch | 1 Tag, 6 Stunden |
waffle | Sample | 1 Tag, 6 Stunden |
tos | TermsOfService | 1 Tag, 6 Stunden |
tos | UserAgreement | 1 Tag, 6 Stunden |
impersonate | ImpersonationLog | 1 Tag, 6 Stunden |
django_q | OrmQ | 1 Tag, 6 Stunden |
Signale
Signal | Empfänger |
---|---|
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, ImageField.update_dimension_fields, MonitorField._save_initial, ImageField.update_dimension_fields, MonitorField._save_initial, MonitorField._save_initial, ImageField.update_dimension_fields, ImageField.update_dimension_fields, ImageField.update_dimension_fields, 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, HistoricalRecords.post_save, HistoricalRecords.post_save, HistoricalRecords.post_save, HistoricalRecords.post_save, HistoricalRecords.post_save, HistoricalRecords.post_save, call_hook, create_user_settings, save_user_settings, update_search_index, update_search_index |
pre_delete | clear_site_cache |
pre_init | |
pre_migrate | inject_rename_contenttypes_operations |
pre_save | clear_site_cache |
request_finished | close_old_connections, close_caches, reset_urlconf |
request_started | reset_queries, close_old_connections |
setting_changed | reset_cache, reload_settings, clear_cache_handlers, update_installed_apps, update_connections_time_zone, clear_routers_cache, reset_template_engines, storages_changed, clear_serializers_cache, language_changed, localize_settings_changed, file_storage_changed, complex_setting_changed, root_urlconf_changed, static_storage_changed, static_finders_changed, auth_password_validators_changed, user_model_swapped, update_toolbar_config, reset_hashers, update_level_tags, clear_caches, FileSystemStorage._clear_cached_properties, StaticFilesStorage._clear_cached_properties, FileSystemStorage._clear_cached_properties, FileSystemStorage._clear_cached_properties, FileSystemStorage._clear_cached_properties, FileSystemStorage._clear_cached_properties, FileSystemStorage._clear_cached_properties, FileSystemStorage._clear_cached_properties, FileSystemStorage._clear_cached_properties, FileSystemStorage._clear_cached_properties, FileSystemStorage._clear_cached_properties |